* Model mod actions for actor takedowns
* Add administration lex schemas for moderation actions
* Initial implementation of takedown mod action and reversal
* Refactor admin actions into a service
* Check for account takedown when creating new session or refreshing session
* Sweep usage of getUser() and getUserByEmail() for takedowns
* Begin sweep for account takedowns
* Tidy takedown checks
* Handle post author takedowns
* Fix tests and migrations for mod takedown
* Fix xrpc-server delayed read of blob payloads
* Test takedown mod action, misc fixes
* Remodel lex schemas for admin moderation actions
* Remove delcaration cid from actor takedowns, lex schema tidy
* Add notes
* Move moderation methods to com.atproto, based around repo rather than actor
* Moderation reports of repos and records
* Implement moderation report resolution method
* Tidy
* Place moderation-init migration after mute-init
* Allow services to reference each other
* Model record takedowns in db
* Lex schemas for record takedowns
* Service/methods for record takedowns, fix report view subject
* Apply record takedown to posts in feeds
* Test record takedown effects, fix reversal
* Support server moderation flag and acknowledge actions, fix action/report resolution for records
* Track repo takedowns on repo_root rather than did_handle
* Move repo/record reporting under com.atproto.report
* Colocate all moderation functionality into moderation service, combine from admin and repo services
* Tidy
* Tidy
* Unify mod report and action methods with new repo/record ref schemas
* Schemas for admin moderation views
* Tidy/codegen
* Fix test snapshot
* Break pds admin methods into separate files
* Implment admin repo search method
* Reorganize existing moderation views into the ModerationViews
* Lex schemas for admin get repo/record, implement get repo
* Implement admin get record view
* Tidy/codegen
* Tidy, fix snapshot
* Tidy, swap filenames
* Implement admin get moderation action view
* Implement admin get moderation report view
* Implement and test admin views for mod actions and reports
* Dry-up some admin and moderation-related seeds in the tests
* Fix xrpc fetch usage for newly required duplex option
* Admin view of repo and record details (#463)
* Reorganize existing moderation views into the ModerationViews
* Lex schemas for admin get repo/record, implement get repo
* Implement admin get record view
* Tidy/codegen
* Tidy, fix snapshot
* Model mod actions for actor takedowns
* Add administration lex schemas for moderation actions
* Initial implementation of takedown mod action and reversal
* Refactor admin actions into a service
* Check for account takedown when creating new session or refreshing session
* Sweep usage of getUser() and getUserByEmail() for takedowns
* Begin sweep for account takedowns
* Tidy takedown checks
* Handle post author takedowns
* Fix tests and migrations for mod takedown
* Fix xrpc-server delayed read of blob payloads
* Test takedown mod action, misc fixes
* Remodel lex schemas for admin moderation actions
* Remove delcaration cid from actor takedowns, lex schema tidy
* Add notes
* Move moderation methods to com.atproto, based around repo rather than actor
* Moderation reports of repos and records
* Implement moderation report resolution method
* Tidy
* Place moderation-init migration after mute-init
* Allow services to reference each other
* Model record takedowns in db
* Lex schemas for record takedowns
* Service/methods for record takedowns, fix report view subject
* Apply record takedown to posts in feeds
* Test record takedown effects, fix reversal
* Support server moderation flag and acknowledge actions, fix action/report resolution for records
* Track repo takedowns on repo_root rather than did_handle
* Move repo/record reporting under com.atproto.report
* Colocate all moderation functionality into moderation service, combine from admin and repo services
* Tidy
* Tidy
* Unify mod report and action methods with new repo/record ref schemas
* Procedures and view for user muting
* Update profile and feed/thread methods for muting, update tests
* Tidy
* Test muting for timeline, actor feed, thread, profile views, misc fixes
* Test mute views, misc fixes
* Add missing file
* Add per-user notification index
* Omit mention and reply notifications from muted users
* Test timing leeway
* introducing appcontext & pds class
* revamp rest of server + auth
* revamp tests
* add to dev-env
* fix api test
* add start method to pds
* hook up terminator before
* PLC AppContext (#425)
* convert plc server to app context
* add start method to plc
* hooke up terminator on server setup
* fix test
* cleanup & pr feedback
* fix up one more test
* Log emails to stdout if no smtp mailer is set (useful for debugging)
* Fancier reset-password email template
* Update reset password flow to use a human-enterable OTP
* Tidy
* Run the email template through prettier
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Begin to decouple message queue consumers from the queue itself
* Tidy
* Reorganize pds message queue code out of db
* Decouple message queue, repo, and actor functionality from db instance w/ services
* Move repo processing into repo service
* Tidy
* Move repo blobs functionality into service
* Tidy
* Ensure to close message queue in all pds tests
* Fix typo
* Force specifying a db when using a service
* Reorg pds record plugins into record service
* Rename pds stream/ to event-stream/
* Tidy and fixes
* Fix typo
* Add failing test for attaching image to a post
* Tidy failing test
* Fix
* Expand the available image resize fit modes
* Add proper validation of glob-prefixed mimes (eg image/*)
* Detect and handle blobs in post embeds
* evert "Expand the available image resize fit modes"
This reverts commit 3390fbe4d091a04f9b67a2885eae19d025747fc4.
* Use fit: inside for post media
* Update tests
* Make the thumbnail optional in external embeds
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Support compression in requests to xrpc-server
* Check payload streaming payload sizes in xrpc-server
* Tidy tests
* Move MaxSizeChecker into common stream utils
* adding in banners & some lex codegen improvements for server
* fix up spacing
* couple small fixes
* client codegen & remove media embed schemas
* hook up banners
* missed a couple of lexicons
* Setup interface for image processing
* Implement getInfo() on SharpImageProcessor
* Reorganize pds image processing code
* Implement initial resize() on SharpImageProcessor
* Test sharp image processor, apply a couple fixes
* Tidy
* Implement initial pds image uri builder/signer/verifier
* Initial implementation of image processing server
* Update node types for node v18
* Add disk caching to pds image service
* Test pds image process caching, tidy
* Move pds image processor away from an interface
* Add sharp to pds build externals
* Move away from xrpc-server errors to http-errors for pds image server
* Tidy pds image exports
* Tidy
* Add auth to xrpc-server, refactor to use per-route middleware stack
* Add xrpc-server error middleware, tidy
* Tests in xrpc for for catchall errors and auth
* Tidy
* Update lex-cli for new xrpc-server auth interface
* Update pds lexicon w/ codegen for xrpc auth
* Use xrpc-server auth in pds
* Update tests for newly-required auth
* Update LexXrpcBody encoding to always be a single string with comma-separated values
* Update lexicon union-type to use as a discriminator, and add closed flag to establish if new union members may be added
* Fix to generated code for open unions
* Implement types and validation for new NIH lexicon DSL
* Update xprc and xrpc-server to use new NIH lexicon DSL
* Simplification: dont allow lexicon definitions to be refs or ref arrays
* Add 'unknown' primitive type to NIH lexicon
* Implement client codegen for NIH Lexicon
* Implement server codegen for NIH Lexicon
* Add the 'datetime' primitive type to the NIH Lexicon
* Rework lexicons to use new NIH Lexicon DSL
* Readd tokens to code generation
* Update all code to use new NIH Lexicon (all tests passing!)
* Add imports from external files to lex-cli codegen
* Do not allow records, queries, or procedures outside of the main def
* Update packages/lex-cli/src/util.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* Linter pass
* Add knownValue output to codegen
* Add comments to codegen
* Use enum and const in codegen
* Rework lexicon 'properties' structure
* Treat falsy query params as undefined
Co-authored-by: devin ivy <devinivy@gmail.com>
* Remove now-redundant param presence validation
Co-authored-by: devin ivy <devinivy@gmail.com>
* Sketching out max payload size in xrpc-server
* Fixes and testing for external payload parsing
* Apply max json payload limit to pds and plc
* Move parsing middleware into xrpc-server w/ options
* Implement tuple keyset cursor to break pagination ties, apply to feeds and assertions
* Tuple keyset cursor on rest of views
* Tidy keysets for postgres
* Add default implementation to Keyset to remove some boilerplate
* Simplify Keyset interface
* Remove dead code
* Move to new Keyset interface, incl. TimeCidKeyset
* Make pds assertion view tests deterministic
* Apply pds keyset interface to user search
* record processor
* moving records to new processor
* plugins finished
* hook up to db
* migration
* yay tests working
* Tx migration (#355)
* migrations in txs
* fix tx issue
* testing
* test deduping
* test assertions
* rm types on migrations
* dont do migrations in txs, fixes pg issue
* Include scene trends in feeds
* Tidy
* Tidy
* Sweep app.bsky schemas for standard actor declarations, remove reference from com.atproto
* Replace declarationCid on follow, assertion, confirmation records
* Sweep pds for standard app.bsky actor declarations
* Fix dev-env
* Tidy after merge