75 Commits

Author SHA1 Message Date
Foysal Ahamed
ac6b604e7a
🐛 Pass auth headers when fetching profiles for ozone subjects (#3683)
* 🐛 Pass auth headers when fetching profiles for ozone subjects

*  Update snapshot
2025-03-27 17:07:05 -04:00
Foysal Ahamed
076c2f9872
Add getSubjects endpoint to ozone for full view of subjects (#3651)
*  Add getSubjects endpoint to ozone for full view of subjects

* 📝 Better lexicon description

* 📝 Add changeset

*  Add subject to subject view

*  Update snapshot

* :rotating_lights: Fix lint issue

*  Make subject required in subjectView

* 🐛 Add subject check before attempting to run queries

*  Keed the order of subjects from the request in the responding array

*  Use a union for profile field

* 🐛 Remove minLength and address profile value

* 📝 Bring back minLength
2025-03-27 10:50:44 -04:00
Foysal Ahamed
18fbfa0005
Add team member handle and displayName (#3587)
*  Add team member handle and displayName

*  Add periodic profile details sync

* 📝 Add changeset

*  Update team service instantiation

* 🐛 Cleanup

* 🧹 Cleanup unnecessary index
2025-03-07 23:00:25 +00:00
Foysal Ahamed
7449f8607c
Allow filtering ozone team list by role and status (#3554)
*  Allow filtering ozone team list by role and status

* fix style

* changeset

---------

Co-authored-by: Matthieu Sieben <matthieu.sieben@gmail.com>
2025-02-19 10:15:58 +01:00
Foysal Ahamed
b41ff4b4e3
Add reporter_stats materialized view and endpoint to fetch reporter stats (#3509)
*  Add reporter_stats materialized view and endpoint to fetch reporter stats

* 🚨 Fix linter issues

*  Change reporter stats query from materialized view to on demand select

* Add "createdAt" as part of the index

---------

Co-authored-by: Matthieu Sieben <matthieu.sieben@gmail.com>
Co-authored-by: Matthieu Sieben <matthieusieben@users.noreply.github.com>
2025-02-17 22:17:43 +01:00
Matthieu Sieben
c53d943c8b
Improve codegen typings (#2999)
* Make codegen types stricter
* Add .js file extension to import statements in generated code
* Fixes a bug that would clear interests prefs when updating hidden posts prefs.
2025-02-13 15:21:00 +01:00
Foysal Ahamed
709a85b0b6
Add a priority score value for ozone subjects (#3495)
*  Add a priority score value for ozone subjects

* 🚨 Bring back lock file

*  Update snapshot for pds proxied tests

*  Update takedown appeal snapshot

*  Update takedown appeal snapshot

*  Update repo and record snapshots

* :rotating_lights: Fix lint issue

*  Update moderation events snapshot

*  Update moderation statuses snapshot

* 🧹 Cleanup unnecessary durationInHours field

*  Allow filtering by priority score

*  Add test for priorityScore filter

* 🚨 Fix import order

*  Allow 0 priority score filter

* 📝 Add changeset
2025-02-06 20:54:27 +00:00
Matthieu Sieben
61dc0d60e1
Add linting rule to sort imports (#3220)
* Add linting rule to sort imports

* remove spacing between import groups

* changeset

* changeset

* prettier config fine tuning

* forbid use of deprecated imports

* tidy
2025-02-05 15:06:58 +01:00
Foysal Ahamed
d377d1a9be
Allow creating labels with expiry (#3476)
*  Allow creating labels with expiry

* 🧹 Cleanup
2025-01-31 11:48:10 -08:00
Matthieu Sieben
8810885b8e
fix pds tests flakiness (#3463) 2025-01-26 13:24:03 -08:00
Matthieu Sieben
ee9779d074
Add account details to queryStatuses (#3236)
* Moderation subjectStatusView with statistics

* add account stats to queue entries

* fix

* adapt

* review changes

* style

* review comments

* wip

* add indexes

* refresh materialized view

* use the background queue to refresh materialized views

* tidy

* fix verrify

* tidy

* Add filtering based on "minAccountSuspendCount"

* fix tests

* Update test snapshots

* update materialized views when running `processAll`

* tidy

* processAll sequentially

* tidy

* tidy

* fix dead lock
2025-01-20 15:36:02 +01:00
Matthieu Sieben
72eba67af1
Drop axios dependency (#3177)
* Minor adaptation of VerifyCidTransform implementation

* refactor: factorize content-encoding negotiation into new lib

* bsky: Use undici to stream blob

* fixup! bsky: Use undici to stream blob

* disable ssrf bsky protection in dev-env

* remove http requests to self to host "/img/"

* drop axios from tests

* fixes

* fix tests

* reviex changes

* properly handle HEAD requests

* handle client disconnection

* fix tests

* drop unrelated change

* tidy

* tidy

* tidy

* remove axios from dev-env

* remove axios from identity package

* use undici 6

* remove axios dependency from ozone

* tidy

* remove axios from PDS package

* avoid killing bsky-pds connections

* improve debugging data

* Better handle invalid CID

* tidy

* tidy

* refactor "allFulfilled" util in @atproto/common

* tidy

---------

Co-authored-by: devin ivy <devinivy@gmail.com>
2025-01-06 18:34:11 +01:00
Foysal Ahamed
53621f8e10
Add a policy property to takedown events (#3271)
*  Add a policy property to takedown events

*  Add policy list setting validation

*  Make multiple policies possible for takedown and event search

* 📝 Add changeset

*  Use , as policies separator
2025-01-02 20:46:53 -05:00
Foysal Ahamed
c559e7e3de
Add subject tags with report type (#3260)
*  Add subject tags with report type

*  Update snapshots

*  Update snpshot for pds admin

*  Update ozone snapshot

*  Update ozone snapshot

* 🧹 Cleanup
2024-12-18 22:57:27 +00:00
Foysal Ahamed
6a3e781b98
Add && separator for tags filter param on queryStatuses endpoint (#3261)
*  Add && separator for tags filter param on queryStatuses endpoint

* 🐛 Handle potential empty tag search input

* 🐛 Handle empty condition
2024-12-18 22:46:05 +00:00
Foysal Ahamed
e9240c8b5e
🐛 Retrieve takendown profiles from app.bsky.actor.getProfiles based on auth (#3206) 2024-12-07 16:47:02 -05:00
Foysal Ahamed
32baddf4a9
🐛 Fix auth level check for protected tags (#3205) 2024-12-07 12:02:42 -05:00
Foysal Ahamed
ed22362209
Optionally ack all open subjects from the author with acknowledge event (#3171)
*  Acknowledge all open subjects of an account when acknowledging account level reports

* 📝 Add changeset
2024-12-05 11:45:28 +00:00
Foysal Ahamed
c72145dbeb
Allow querying events by multiple keywords using OR condition (#3070)
*  Allow querying events by multiple keywords using OR condition

* 📝 Update comment

*  Update operator to ||

*  Fix test

* 🐛 Handle edge cases around search query

*  Codgen
2024-11-29 18:00:48 +00:00
Foysal Ahamed
011e73ec05
Add protected tag setting (#3050)
*  Add protected tag setting

*  Add tests for protected tag options

*  Validate mod and role list

* 🧹 Replace usage of objects with Map

* 🐛 Fix setting validator getter
2024-11-22 15:28:53 +00:00
Matthieu Sieben
c34426fc55
Fix ozone preferences test (#3001)
use consistent ordering of insertion
2024-11-14 14:27:49 +01:00
Matthieu Sieben
879a74f7b8
Fix failing CI (#3000)
* fix

* use distinct pg schemas for all tests
2024-11-14 14:13:58 +01:00
Foysal Ahamed
d6f33b4742
Add events for account and record update/delete/deactivation (#2661)
*  Add events for account and record update/delete/deactivation

*  Add handle change event

*  Reduce account events to 2 types and record events to 1

*  Store metadata from account, identity and record events

*  Add created event for record

*  Add ndd the new events to allowed types in emitEvent

*  Use string value for record op and add tombstone flag to identity event

*  Add active flag on account events

*  Change accountStatus -> status to match with firehose event

*  Make active flag required

* 🚨 fix prettier style issue

*  Track record/account delete and update data in subject status (#2804)

*  Store deleted/updated event data in subject_status

* 🐛 Fix query for recordDeletedAt and recordUpdatedAt

*  Add tombstoned status

*  Move from record to hosting term

*  Add tests for hosting params

*  Update lexicons for hostingStatuses

*  Update snapshots

*  Update snapshots

*  Update snapshots

*  Adjust hosting statuses

* 📝 Add changeset
2024-11-07 22:51:44 +01:00
Foysal Ahamed
c4b5e53957
Ozone instance-wide and user-specific settings (#2905)
*  Settings endpoints are working

* 🧹 Rename file

*  Replace ad-hoc manage roles to match team member roles

* ♻️ Refactor role names

*  Polish up

*  Move to using id for pagination

* 📝 Add changeset

*  Update snapshots

*  Change column order in setting table index and add did in all queries
2024-11-07 22:43:30 +01:00
Foysal Ahamed
19e36afb2c
Add collection and subjectType filters to queryEvents and queryStatuses (#2914)
*  Add collection and subjectType filters to queryEvents and queryStatuses

* 📝 Add changeset

* ♻️ Refactor or query builder
2024-10-30 16:20:38 +01:00
Foysal Ahamed
22d039a229
Ozone sets (#2636)
*  Initial implementation of sets api on ozone

*  Introduce sortDirection to querySets

* 🧹 Cleanup and refactor

*  Align setView for response

* ♻️ Rename and add specific error

* 🐛 Cleanup unnecessary check that is covered by lexicon

*  Rename remove to delete and add set suffix

*  Use id and createdAt for values pagination

*  Add index on createdAt for query perf and other cleanups

* 🐛 Set createdAt when inserting values

* 📝 Add changeset

*  Add index on setId and createdAt
2024-10-08 19:16:09 +02:00
Foysal Ahamed
a2bad977a8
Ozone batch repo and record getters (#2836)
*  Add getRepos and getRecords endpoints for bulk fetching

*  Fix issues and add tests for get repos and get records

*  Use the right lxm

* 🐛 Revert changes in lockfile

*  Add getAccountInfos in PDS

* 🐛 Fix type def for repo and record view detail

*  Update snapshots

*  Update snapshots

*  Consolidate error type for com.atproto and tools.ozone getRecord error type

* 🧹 Cleanup

*  Update snapshots

*  Update snapshots

*  Changeset
2024-10-01 19:37:23 +02:00
Foysal Ahamed
62a8225f36
Optionally ack all open subjects from the author with takedown event and get all mod subjects of a user (#2793)
*  Add acknowledgeAllSubjectsOfAccount flag with takedown event

* 📝 better documentation of forAccount and subject params

* 🧹 Cleanup tests

*  Change wording according to review

*  Refactor tests

* ♻️ Rename acknowledge flag
2024-09-11 18:26:53 +02:00
Foysal Ahamed
372ed4c519
Apply embed specific tag on subjects for video, image and external (#2703)
*  Refactor subject tagging to facilitate video content tagging

* ♻️ Refactor tag check

*  Fix tagging logic

* ♻️ Refactor content tagger and fix image content type check

*  Add embed tag check for video and external

*  Add tagging for both media and image embed
2024-08-29 18:23:48 +02:00
Daniel Holmgren
50c0ec176c
Service auth method binding (lxm) (#2663)
* add scopes to service auth impl

* add error to getServiceAuth

* send scoped tokens from pds

* clean up privileged access scopes & allow simple service auth tokens for app passwords

* integration into ozone

* fix up bsky tests

* cleanup xrpc-server tests

* fix up tests & types

* one more test

* fix read after write tests

* fix mod auth test

* convert scopes to be a single method name

* add scope check callback for auth verifier

* pds changes only

* fix feed generation tests

* use scope for ozone service profile

* dont verify scopes on pds yet

* tidy

* tidy imports

* changeset

* add tests

* tidy

* another changeset

* scope -> lxm

* tidy

* clean up scope references

* update nonce size

* pr feedback

* trim trailing slash

* nonce -> jti

* fix xrpc-server test

* allow service auth on uploadBlob

* fix build error

* changeset

* build, tidy

* xrpc-server: update lxm claim check error

* appview: temporarily permit labeler service calls to omit lxm claim

* xrpc-server: fix test

* changeset

* fix merged tests

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2024-08-18 15:46:07 -04:00
Matthieu Sieben
b934b396b1
Client SDK rework (#2483)
* feat(api): support creation of oauth based AtpAgents

* oauth: misc fixes for confidential clients

* fix(xprc): remove ReadableStream.from polyfill

* OAuth docs tweaks (#2679)

* OAuth: clarification about client_name being shown

* OAuth: re-write handle resolution privacy concern

* avoid relying on ReadableStream.from in xrpc-server tests

* feat(oauth-types): expose "ALLOW_UNSECURE_ORIGINS" constant

* feat(handle-resolver): expose "AtprotoIdentityDidMethods" type

* fix(oauth-client): ensure that the oauth metadata document contains client_id_metadata_document_supported

* fix(oauth-types): prevent unknown query string in loopback client id

* fix(identity-resolver): check that handle is in did doc's "alsoKnownAs"

* feat(oauth-client:oauth-resolver): allow logging in using either the PDS URL or Entryway URL

* fix(oauth-client): return better error in case of invalid "oauth-protected-resource" status code

* refactor(did): group atproto specific checks in own

* feat(api): relax typing of "appLabelers" and "labelers" AtpClient properties

* allow any did as labeller (for tests mainly)

* fix(api): allow to override "atproto-proxy" on a per-request basis

* remove release candidate versions from changelog

* update changeset for api and xrpc packages

* Add missing changeset

* revert RC versions

* Proper wording in OAUTH.md api example

* remove "pre" changeset file

* xrpc: restore original behavior of setHEader and unsetHeader

* docs: add comment for XrpcClient 's constructor arg

* feat(api): expose "schemas" publicly

* feat(api): allow customizing the whatwg fetch function of the AtpAgent

* docs(api): improve migration docs

* docs: change reference to BskyAgent to AtpAgent

* docs: mention the breaking change regarding setSessionPersistHandler

* fix(api): better split AtpClient concerns

* fix(xrpc): remove unused import

* refactor(api): simplify class hierarchu by removeing AtpClient

* fix(api): mock proper method for facets detection

* restore ability to restore session asynchronously

* feat(api): allow instantiating Agent with same argument as super class

* docs(api): properly extend Agent class

* style(xrpc): var name

* docs(api): remove "async" to header getter

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: bnewbold <bnewbold@robocracy.org>
Co-authored-by: Hailey <me@haileyok.com>
2024-08-12 19:57:21 +02:00
devin ivy
f05539db4c
Appview: apply hosting status in getRecord (#2620)
appview: apply hosting status in getRecord
2024-07-02 17:43:21 -04:00
devin ivy
af7d3912a3
Starter packs (#2553)
* lexicon: initial starter pack record lexicons

* lexicon: first pass on views for starter packs

* lexicon: add starter pack query endpoints, misc fixes

* lexicon: add starter pack related fields to profile views

* lexicon: codegen

* api prerelease

* bsky: protos for starter packs

* appview: implement starter pack endpoints in dataplane, protos update

* appview: starter pack hydration and view, mock dataplane indexing

* appview: wire-up starter pack graph endpoints

* appview: test basic starter packs functionality, update dev-env

* fix snaps for profile createdAt

* appview: fix list item count for starter packs in dataplane

* fix ozone snaps, tidy

* appview: reorg list aggs for starter packs

* appview: starter pack lexicon and proto tweaks, move around aggregations

* appview: fix views and snaps

* api prerelease

* fix snaps

* appview: misc proto updates for starter packs, snaps

* appview: add starter pack counts to profile detail

* build

* api prerelease

* pds: starter pack slur detection

* lexicon: starter pack notifications and batch fetch

* appview: starter pack notification and batch fetch

* appview: add starterpack-joined notif to dataplane and test

* api prerelease

* ozone: fix snaps

* pds build

*  Proxy starterpack requests through ozone and include takedowns (#2594)

*  Proxy starterpack requests through ozone and include takedowns

* 🧹 Cleanup

*  Commit snapshots

*  Update snapshot

* lexicon: move starterpacks back to TIDs

* changeset

---------

Co-authored-by: Foysal Ahamed <foysal@blueskyweb.xyz>
2024-06-24 21:04:33 -04:00
tsinghuacoder
15cc6ff37c
chore: fix some comments (#2584)
Signed-off-by: tsinghuacoder <tsinghuacoder@icloud.com>
2024-06-20 17:04:47 -07:00
Foysal Ahamed
3ad0519961
Ozone team member manager (#2460)
* 🚧 Proposal for moderator manager lexicons

*  CRUD for moderator management works

*  Add profile view to moderator user list

*  Seed mod users from env var to db

*  Adjust tests

*  Update snapshots

*  Fix type and lexicon token issues

*  Add pagination to listUsers

*  Use sort order in pagination

* 📝 Change error name

*  Update snapshots

*  seed mods in sync to avoid re-order

* 🧹 Remove unnecessary import

* 🐛 Re-run codegen

* 🧹 Some cleanup

* 🧹 Cleanup unnecessary properties on auth-verifier

*  Rename terminologies from moderator to team and member

* 🧹 Cleanup

*  Allow admin tokens to update/add member

*  Delete members in transaction

*  Use db transactions and move profile hydration to the service layer

*  Add test for addMember endpoint

* 🐛 wait on adding admin DID

*  Do not allow updating/deleting service owner and always give service owner admin access

* 🧹 Cleanup

*  Make timestamp columns non null

* 🧹 Cleanup

*  Update mod role definition in getConfig

*  Deletion and update guards

* 🐛 don't prefill service did

* 📝 Add changeset
2024-06-18 18:47:20 -04:00
Daniel Holmgren
71e3edc8a4
Fix some linting warnings (#2532)
fix some linting warnings
2024-06-10 12:59:21 -05:00
devin ivy
6e323fb6b5
Fix flaky tests surrounding ozone/pds (#2561)
fix flaky tests surrounding ozone/pds
2024-06-07 13:04:22 -04:00
Foysal Ahamed
8d2d3ac9e0
Add server.getConfig endpoint to ozone (#2494)
*  Add server.getConfig endpoint to ozone

*  Fix tests

*  Cleanup snapshot

* 🧹 Tidy up lexicons

*  Change role values to match with upcoming mod-manager roles

*  Add chat service config

* Update lexicons/tools/ozone/server/getConfig.json

Co-authored-by: devin ivy <devinivy@gmail.com>

*  Update lexicons

---------

Co-authored-by: devin ivy <devinivy@gmail.com>
2024-06-05 11:05:21 -04:00
Daniel Holmgren
255d5ea1f0
Account deactivation (#2531)
* subscribe repos lex: new #account event type

* lex: getAccountStatus endpoint

* lex: add account status errors to sync methods

* tweak type of token union

* fix getAccountStatus parameter name

* codegen

* Account -> Repo

* re-codegen

* update errors in sync methods

* add getRepoStatus route

* add account events to sequencer

* emit account evts

* fix test + small bugfixin

* handle evt on bsky side

* codegen

* loggable message

* schema tweaks

* build errors & tidy

* tidy account deactivation tests

* more subscribe repos tests

* identity evt tests + tidy

* return optional did doc on identity evts

* update identity evt

* update impl for identity evt handles

* add description to handle field

* status on listRepos & notate deprecated firehose events

* return status on listRepos

* pr feedback

* tests

* protos

* add status to session schemas

* codegen

* revamp auth-verifier

* thread through agent

* fix tests

* fix account deletion test

* fix more tests

* fix type error in repo.test

* bsky index account evts

* apply in appview

* add to admin route

* add deactivatedAt to ozone views

* pds tests

* appview tests

* ozone test

* fix bsky test

* fix agent test

* fix indexing test

* tweak session schemas

* update session routes & clean up status handling in pds & agent

* changeset

* patch pds test

* rm active from knownValues

---------

Co-authored-by: bryan newbold <bnewbold@robocracy.org>
2024-05-31 16:39:21 -05:00
devin ivy
75b7848940
Ozone: temporary workaround for message refs on createReport (#2521)
* ozone: temporary workaround for message refs on createReport

* ozone: defensive around query label failure
2024-05-24 10:29:44 -04:00
Foysal Ahamed
1f560f021c
Allow dynamic labeler header through ozone (#2442)
*  Allow dynamic labeler header through ozone

*  Close third party ozone

*  Add 3p labels in for repos

*  Update snapshots

*  Update pds snapshots

*  Update ozone snapshots

*  Fix typing for labels

*  Add queryLabels endpoint in appview

*  Use queryLabels to hydrate labels

* 🧹 Cleanup

*  Update pds snapshots

 Update pds snapshots

 Update ozone snapshots

 Update pds snapshots

 Update pds snapshots

 Update pds snapshots

 Update pds snapshots

*  Update pds snapshots

*  Checking if tests fail

*  Don't default to labelers in header

*  Adjust tests

* 🧹 Cleanup

* 🧹 Remove unnecessary auth header

* 📝 Add changeset

* 📝 Add @atproto/api to patch update list
2024-05-22 17:55:50 +02:00
Foysal Ahamed
eeff39314d
Add getLists endpoint to proxied routes via ozone (#2493)
*  Add getLists endpoint to proxied routes via ozone

*  Add tests for getLists via ozone

* insert takedown label manually

* ✏️ Fix typo in test

* 🧹 Cleanup

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
2024-05-21 20:46:49 +02:00
devin ivy
06d2328eeb
Lexicon: misc fixes to chat lexicons (#2499)
* lexicon: misc chat-related tweaks/fixes

* ozone: track convo ids on chat message reports

* add changeset

* fix tests

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
2024-05-20 10:13:12 -04:00
Daniel Holmgren
265ce86e15
Ozone chat integration (#2490)
* wip

* schema tweaks

* room -> chat

* missed one

* missed another

* deleted messages + incoming message settings

* add schemas for blocking users

* chat update schemas

* make updateUserSettings more generic

* fix dangling ref

* fix dangling refs

* mute chats & leave chats

* schema consistency, naming

* lexicon for updating chat read state

* dm lexicon updates, add batch send endpoint

* dm sender on deleted message

* Add codegen for temp lex

* lexicon: switch temp.dm to chat.bsky namespace, misc fixes

* lexicon: codegen

* lexicon: fix some chat/convo terminology

* lexicon: codegen

* moderator schemas

* codegen

* lexicon: consistency in chat lexicons

* lexicon: add chat to associated profile info

* add ref to updateActorAccess

* add annotation on convoView for disabled members

* codegen

* ozone lexicons

* scaffold routes

* hook up chat moderation routes to ozone

* add message subject for reports/events

* remove dm references from ozone schemas

* ensure report exists before serving getMessageContext

* 🐛 Fix typo in column name

* adjust before/after instead of throwing

* add dev script

* add dev-env introspection server

* hook up chat mod routes to pds & ozone

*  Add message ref subject in eventView def

* fix typo

* add chat reporting test

* fix test

* update dev-env chat did

* update dms server routes name

* pr feedback

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: Foysal Ahamed <foysal@blueskyweb.xyz>
2024-05-15 18:52:47 -05:00
Foysal Ahamed
1c616b023e
Configure labeler service account in dev-env (#2363)
* 🚧 WIP attempting to make ozone work with local

*  Labeler service set up works

* Renmae account details for mod authority

* 🧹 Clean up createOzoneDid signature

* 🚨 Fix typedef

*  Adjust snapshot

*  Fix test with invite code

* 🚧 WIP

* 🚧 WIP

* 🚧 bring back test

* 🚧 bring back test

*  Update ozone snapshots

*  Update ozone snapshots
2024-05-01 17:06:45 +02:00
Foysal Ahamed
58551bbe05
Allow muting reporter (#2390)
*  Allow muting reporter

*  Allow fetching ONLY muted subjects

* 🚨 re-run linter on fixed main

*  Track muted reports

*  Adjust snapshot

*  Adjust snapshot

*  Adjust snapshot

* 📝 Add changesets

* ♻️ Refactor muted reporter check

*  Use new event type for muting/unmuting reporter

* 🧹 Cleanup
2024-04-25 10:43:04 -04:00
Foysal Ahamed
6f1f54493e
Detect language from record content if lang property is not set (#2301)
*  Detect language from record content if lang property is not set

*  Update test snapshots for auto detected language

*  Update pds test snapshots

*  Adjust test to use the right method

* 🧹 Make list override param optional

* 🧹 Fix import

* 🚨 fix linter issues

* ♻️ Use record type for getting text from record

*  process records for appview to pick it up

* 🧹 Cleanup
2024-04-18 20:15:39 +02:00
bnewbold
a40b054812
fix test errors in "relax restriction on handle length in PDS" (#2410)
* relax restriction on handle length in PDS.

* add test to validate restriction on handle length.

* make fmt

* resolve test issues with too-long handles

* attempt to resolve appview test issues with too-long handles

---------

Co-authored-by: itaru2622 <itaru2622@gmail.com>
2024-04-15 20:05:49 -07:00
Foysal Ahamed
d4d5a6edba
When multiple tags are ex/included, use OR operator instead of AND (#2386)
*  When multiple tags are ex/included, use OR operator instead of AND

* 🧹 Remove unnecessary casting
2024-04-15 11:15:21 -04:00
Foysal Ahamed
0f915a6337
🔒 Allow moderators to manage communication templates (#2364)
* 🔒 Allow moderators to manage communication templates

*  Adjust test to check errors properly
2024-04-15 08:51:30 -04:00