* add courier proto to bsky, build
* update registerPush on appview to support registering device tokens with courier
* setup bsky notifications to send to either gorush or courier
* wire courier push into indexer, test
* courier push retries
* tidy and build
* build bsync protos in appview, standardize per-package proto gen directory
* configure appview with bsync, allow mute endpoints to use bsync
* import fixes in bsync
* configure appview ingester with bsync, ingest mute ops into db
* test bsync mutes roundtrip w/ appview, setup bsync in dev-env
* build
* ensure to propagate errors when bsyncOnlyMutes is on
* ✨ Add initial lexicons to manage communication templates
* ✨ All 3 endpoints are functional
* ✨ Add list and delete endpoints
* ✅ Add tests for communication template CRUD
* 🔒 Allow only admins to create and update templates
* 🧹 Cleanup according to PR review
* ✨ Make updatedBy and createdBy optional in lexicon
* ✨ Typo
* ✨ Allow string id and update lexicon language
* ✅ Fix tests
* ✨ content -> contentMarkdown
* ✨ Change column name in db table
* add changeset
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* mv appview
* copy
* finalize copy
* package names
* big WIP
* first pass at mod servce
* some tidy
* tidy & fix compiler errors
* rename to ozone, db migrations, add to dev-env & pds cfg
* getRecord & getRepo mostly working
* fix open handle
* get record tests all working
* moderation events working
* statuses working
* tidy test suite
* search repos
* server & db tests
* moderation tests
* wip daemon + push events
* pds fanout working
* fix db test
* fanning takedowns out to appview
* rm try/catch
* bsky moderation test
* introduce mod subject wrappers
* more tidy
* refactor event reversal
* tidy some db stuff
* tidy
* rename service to mod-service
* fix test
* tidy config
* refactor auth in bsky
* wip patching up auto-mod
* add label ingester in appview
* fix a couple build issues
* fix some timing bugs
* tidy polling logic
* fix up tests
* fix some pds tests
* eslint ignore
* fix ozone tests
* move seeds to dev-env
* move images around
* fix db schemas
* use service auth admin reqs
* fix remaining tests
* auth tests bsky
* another test
* random tidy
* fix up search
* clean up bsky mod service
* more tidy
* default attempts to 0
* tidy old test
* random tidy
* tidy package.json
* tidy logger
* takedownId -> takedownRef
* misc pr feedback
* split daemon out from ozone application
* fix blob takedown mgiration
* refactor ozone config
* do push event fanout on write instead of on read
* make suspend error work again
* add attempts check & add supporting index
* fix takedown test ref
* get tests working
* rm old test
* fix timing bug in event pusher tests
* attempt another fix for timing bug
* await req
* service files
* remove labelerDid cfg
* update snaps for labeler did + some cfg changes
* fix more snaps
* pnpm i
* build ozone images
* build
* make label provider optional
* fix build issues
* fix build
* fix build
* build pds
* build on ghcr
* fix syntax in entry
* another fix
* use correct import
* export logger
* remove event reverser
* adjust push event fanout
* push out multiple
* remove builds
* ✨ Allow appealing a moderator decision through special report type
* ✨ Allow querying subjects by appealed status
* ✨ Move to appealed boolean state column
* ✨ Remove leftover
* ✨ Move appealed status to new boolean column
* ✨ Throw when non-author attempts to appeal a subject
* 🚨 Appease the linter gods
* build
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* limit external embed strings sizes
* set a (very large) alt text length limit
The motivation is to have *some* size limit on every string in post
records, to maximize interoperation. For example, we currently have a
CBOR library rejecting some records because of too-long strings.
We don't want to limit the ability of folks to be very descriptive in
alt text, specifically, so chose what seems to be a very large limit. If
this is not large enough, based on feedback, we can bump it even higher.
As context this is the largest string length limit in all of our
lexicons.
* make thumbnail URL fields format=uri
This mostly results in checks against the string being empty, or
unlimited size.
* codegen: string limits
* add changeset for string format lex updates
* Include own replies to own post roots in post_no_replies
* Updates
* Simplify
* snaps
* snaps
* Remove unused import
* Add new threads filter to getAuthorFeed
* Implement new filter
* Typo