* ✨ 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
* ✨ 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
* Allow instantiating an api Agent with a string or URL
* changeset
* Update .changeset/stupid-spiders-buy.md
Co-authored-by: Bigint <69431456+bigint@users.noreply.github.com>
---------
Co-authored-by: Bigint <69431456+bigint@users.noreply.github.com>
* Properly negotiate response content-encoding
* negotiate acceptable encoding and type before building responses
* remove un-necessary async
* typo
* Remove response content-encoding logic
* Avoid using chunked encoding when writing a buffer to the response
* Improve error message when using invalid client_id during code exchange
* Extract SPA example OAuth client in own package
* wip
* remove dependency on get-port
* Properly configure jest to only transpile "get-port" from node_modules
https://jestjs.io/docs/configuration#transformignorepatterns-arraystring
* Use dynamically assigned port number during tests
* use puppeteer to run tests
* remove login input "id" attribute
* code style
* add missing declaration
* tidy
* headless
* remove get-port dependency
* fix tests/proxied/admin.test.ts
* fix tests
* Allow unsecure oauth providers through configuration
* transpile "lande" during ozone tests
* Cache Puppeteer browser binaries
* Use puppeteer cache during all workflow steps
* remove use of set-output
* use get-port in xrpc-server tests
* Renamed to allowHttp
* tidy
* tidy
* ✨ 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
* ✨ 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
* pinned posts lexicon
* codegen
* change lexicon, different approach
* codegen 2
* dataplane db migration
* move pinned post lexicon to right place
* add pinned posts optionally to getAuthorFeed
* remove type modification
* Clarify naming, add viewer state, add tests
* return pinnedPost with profileViewDetailed
* allow pinned replies in `posts_and_author_threads`
* clearer variable naming
* annotate type of `items`
* boolean --> varchar
* reuse authorDid in viewerPinned
* simplify test
* make pinned post not top post in test
* update snapshot
* changeset
---------
Co-authored-by: Eric Bailey <git@esb.lol>
Co-authored-by: dholms <dtholmgren@gmail.com>
* Improve reporting of metadata validation error
* Properly validate client metadata scope
* Allow loopback clients to define their scopes through client_id query parameters
* Require definition of "scope" in client metadata document
* Restrict the value used as code_challenge_methods_supported
* Remove `plain` from `code_challenge_methods_supported`
* Prevent use of empty string in unsupported oidc request parameters
* Centralize parsing of client metadata error
* Enfore code_challenge_method=S256 request parameter
* Improve error description in case of invalid loopback client_id
* Enfore single scope query param in loopback clients
* Disable request params scopes defaulting to client metadata scope
* Centralize loopback client validation logic
* add assertion utils for client ids
* Improve invalid client_id error messages from BrowserOAuthClient.from()
* Use scope from client metadata as default value
* Improve client side validation of client metadata
* Allow fetching of source maps files from browser debugger
* Use the clientId to configure the OAuth client
* Allow native clients to use https: redirect uris
* Explicitely forbid MTLS client auth method
* Improve error feedback in case of invalid client_id domain name
* Remove un-spec'ed restrictions on redirect_uris based on the client_uri
* Do not strip query string from URL after oauth redirect in fragment mode
* Add missing "expires_in" property to OAuthParResponse type definition
* Allow non canonical urls to be used as client ID
* Allow client metadata to contain other return type values than "code"
* Properly validate request_uri request parameter
* Improve parsing and validation of client_id's
* Return "invalid_client" on invalid client credentials
* improved error management & reporting
* performance improvement
* Allow loopback client ids to omit the (empty) path parameter
Co-authored-by: devin ivy <devinivy@gmail.com>
* Update email templates
* Update PLC
* Update test with new email string
* Format
* One more test update
* Use handle instead of identifier to match entryway
* Changeset
* Codegen
* Explicitly add Zod (already a peer dep) and validation to api
* Add Nux methods
* Match naming convention
* Remove id, it won't be used
* Add tests
* Use id instead of name, little clearer
* Update API contracts
* Update tests
* Changeset
* Don't mutate