* Model post and profile aggs in bsky
* Add background, onCommit, db and background stats
* Add aggregations for post and profile
* Use background queue in bsky labeler, misc plumbing
* Process background throughout bsky tests
* bsky tidy and fixes
* Build views using agg tables in bsky
* ✨ Hydrate subject author's repo in moderation reports
* 🚧 Expose only handle of the subject repo on moderation reports
* 🚧 Regenerate lexicons off main
* 🧹 Cleanup unnecessary joins
* ✅ Updating snapshots
* ✨ Make handle optional to allow serving reports even if handle doesn't exist
* ✨ Port over subjectHandle implementation to bsky package
* ✨ Allow searching repo by DID
* ✨ Port over did search from pds
* ✅ Add tests for bsky implementation of admin searchRepos
* 🧹 Cleanup according to PR review
* Rename getLabelsForSubjects to getLabelsForUris
* Generic method for getting profiles organized by did or aturi subject
* Batch label fetching for posts and authors in feeds and threads
* Tidy
* To avoid performing many view refreshes in a row w/ different leaders, schedule them upfront
* Apply feed threshold to with-friends and mutuals algos
* Revert increase to getRepo commit chunk size
* Alter feed threshold approach to be tighter and relative to cursor
* ✨ Allow ignoring moderation reports by subject
* 🔧 Remove unwanted package.json change
* ✨ Remove subject format specifier
* ✨ Port over ignore subject implementation to bsky package
* Revert "✨ Port over ignore subject implementation to bsky package"
This reverts commit 3c782c1805548d1ebdbbd08b68b6e92ac97fdee5.
* 🚧 Port over ignore subject implementation to bsky package
* ✨ Generate lexicons for bsky
This makes the whole type of bugs like #1080 impossible,
Also fixes `app.bsky.feed.defs` in the bsky package as it was now throwing errors
Co-authored-by: Daniel Holmgren <dtholmgren@gmail.com>
* move handle resolution to .well-known
* required handle on resolveHandle
* rm test
* tidy
* tidy
* fix up appview
* missing await
* atproto-handle -> atproto-did
* shift did & handle resolution to new identity package
* fix up network mocks
* fix up another test
* one more
* drop lex comment
* rm handle param
* Update packages/identity/src/handle/index.ts
Co-authored-by: devin ivy <devinivy@gmail.com>
* still temporarily support xrpc handle resolution
* typo
* ensure return value is a string
---------
Co-authored-by: devin ivy <devinivy@gmail.com>
Lexicon required properties check wasn't rebased onto main
which introduced invalid lexicon(creator field was not defined despite being in the required fields list)
* Add lexicon LexXrpcParameters, Object required properties check
Now schemas like the one below won't validate
```
...
{
"type": "object",
"required": ["foo"],
"properties": {}
}
...
````
* Fix lexicons with missing required fields
* Improve lexicon user type error messages and document why it needs to be `z.custom`
* actor type in profiles
* skeleton lex
* more schemas
* first pass at feed composition
* cleanup services
* more tidying
* fix up tests
* bookmarking schemas
* make feeds records instead of actors
* some cleanup
* fleshing out feeds as records
* wip
* working into cfg & dev-env
* fix appview test util
* bookmarking + views
* tidy
* add displayName
* db migration
* wip test
* blob processing
* first test working!
* Sync-up snapshots
* wip
* Fix pds ctx type
* Sync lexicons on pds and api
* wip
* fully refactor
* Prep for open union in reply data in bsky appview, sync-up snapshots
* msgs & ports
* Make pds did cache sqlite-friendly
* Start scaffolding more feedgen tests
* revamp appview tests
* revamp pds tests
* merge in dev env utils
* ensure plc close
* add feed gen to dev-env
* second feed gen
* named feeds in mock
* fix issue with dev-env pds appview
* update bsky snaps
* Flesh-out some feed gen tests
* Fix feed gen reply test
* Test feed bookmarking
* update skeleton defs
* merge
* Sync-up pds with updated feed skeleton contract
* Fix feed bookmark viewer state
* add feed embeds
* Test inaccurate feed gen repost
* Tighten some error behaviors around feed gens
* generator view in record embed
* test
* bookmarked/subscribed -> saved
* updated snaps
* name & descript on alices feed
* add like counts
* proposed lex
* tweak
* fetch feed generator details
* add describeFeedGen to dev-env
* adds tests for getFeedGenerator
* Update lexicons/app/bsky/feed/getFeedGenerator.json
Co-authored-by: devin ivy <devinivy@gmail.com>
* update describe
* add cid to feed gen view
* add alice feed gen avatar
* generator displayName required
* update snaps
* Fix dev env public url (#1058)
* Fix the public url used by dev-env
* move publicUrl location
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* add defs for feed gen prefs & decrease displayName length
* build branch
* updated how saved feeds works
* cleanup lex
* mount route
* Starter bsky algos (#1046)
* implement some starter bsky algos
* add team dids
* tidy
* add quotepost check to whats hot classic
* tests
* carve out feedgen section of pds
* apply limits
* add describeFeedGenerator route
* Whats hot new (#1060)
* map out new whats hot
* only available in postgres
* Fix dev env public url (#1058)
* Fix the public url used by dev-env
* move publicUrl location
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* add defs for feed gen prefs & decrease displayName length
* build branch
* updated how saved feeds works
* build algos branch
* remove relative imports to @atproto/api
* update hot classic name
* rm build
---------
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* v0.3.6
* v0.3.7
* v0.1.10
* update name of skyline
* build branch
* aws build
* getFeedGenerators test
* For now only use new replyRef union for custom feeds, for compat
* Don't use replyRef union on new feeds yet
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: Paul Frazee <pfrazee@gmail.com>
* Update lexicon for missing repo/record data in admin views
* Serve missing repo/record variant in admin views
* Test actioning and presenting unknown records/repos, fix on pds
* Add lexicons for account preferences
* Move prefs to app.bsky, codegen
* Setup model and services for user prefs
* Setup xrpc methods for prefs
* Test preferences, fixes
* Tidy
* Tidy
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Normalize record datetimes used for sort to simplified iso
* Update tests and snapshots for alternate valid datetime formats
* Fix notifications race during record update
* lex: 'escalate' mod action type
* api: codegen for escalate mod action type
* pds: codegen+impl esclate mod action type
* bsky: codegen+impl esclate mod action type
* pds: prettier:fix
* Tidy
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* block lexicons
* table schema
* block processing
* Actor-block migration
* Add blocked post lexicon to getPostThread
* getBlocks routes
* Add missing lexicons to bsky
* Add block state to actor views
* throw on blocked accounts in getAuthorFeed
* blcok state in profile views
* Update getPostThread to support block views, update existing test
* strip out blocks out oof timeline & popular
* more routes
* Test blocked posts in threads
* Support blocks on record embeds
* notifs
* Update pds test snapshots w/ block state
* fix search
* Update pds actor search snapshots w/ blocks
* test
* tests
* update lex
* fix up from returning blocking as record
* ci for branch
* fix build issue in bsky
* more blocks tests
* fix actor search test
* hook getBlocks up to router
* bugfix & actually test lol
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Background notification creation/deletion
* Add todo
* Update tests for backgrounded notifs
* Add index to notifications supporting record deletion
* Use profile_agg to power getSuggestions
* Fetch record blocks separately from getting notification resultset
* Update background queue to drain pending tasks
* fix up a couple of tsc errors in app view merge
* wip
* simple proxy
* use dev-env for appview tests
* process all in blob resolver
* another test fix
* wip
* copy proxied tests & add mutes to getFollows/getFollowers
* tidy & add mutes to likes
* more routes + getAuthorFeed tests
* more testing
* tests for feed views
* thread testing
* finished tests for threads
* temporarily skip some tests
* cleaning up & updating test names
* separate db schema for appview
* rearrange
* typo
* add notifications
* re-enable notifs on pds appview
* update schemas
* updated some bsky snaps
* wip
* refactor did-resolver
* clean up deps
* some fixups + caching utilities
* fix up & move to appCtx
* neat its working
* update bsky tests to new auth
* rm unused pds config var
* tidy
* check exp in seconds
* cache dids in postgres
* add migration & did-cache
* start tests
* couple helpers around cache invalidation
* fix expired check
* wip
* change cache semantics
* did cache testing
* do some cache revalidation in indexing
* fix config
* fix issue w did-resolver test-env prototype
* use map instead of record
* stale + expired
* tests
* clear entry method
* fix up build
* expired dids
* clear missing dids
* better verify payload
* bump test timeout
* fix notifs test
* fix up proxied actor search tests
* update snaps to include labels
* fix dev env
* fix up moderation route auth
* fix more auth headers
* fix auth on getPosts
* increase jest timeouts
* fix snaps
* remove commited .env files; exclude in gitignore
* bsky: distinct postgresql database in dev mode
* github CI: build and upload 'bsky' container to GHCR
This isn't how we deploy, but is useful for public access and things
like integration tests.
* Makefile: run-dev-appview
* In-progress work on optimizing actor search
* Tidy-up approach to using trgm index on actor search, apply to bsky appview
* Set trigram on session rather than on db via migration
* Add moderation and labeling model to bsky appview
* Carry over moderation service from pds
* Pass over bsky moderation service to get it working, missing blob support
* Carry over label service from pds to bsky
* Reorg bsky http auth, implement admin auth
* Carry over relevant admin endpoints pds to bsky
* Retrofit bsky admin routes from pds impls
* Implement resolve handle on appview
* Avoid loop in bsky handle resolution
* Add bsky appview to dev-env, opt-in
* Fix bsky searchRepos with empty term, tidy
* Include blobs on bsky admin views
* Stop resolving taken-down blobs on appview
* Tidy
* Carry over pds moderation tests to bsky
* Support image cache invalidation on bsky appview
* Add missing changes for bsky tests
* Test takedowns in bsky views
* Test takedowns on bsky notifs
* Separate blob resolution logic into standalone helper
* Carry over labeler from pds to bsky
* Update labelers for bsky usage
* Configure labeler on appview, tidy blob-resolver
* Add labels to views for posts and actors
* Update snapshots on bsky appview to include labels
* Carry over labeler tests from pds to bsky
* Tidy-up labeler tests for bsky appview
* Update bsky seeds and snapshots for keyword labeling
* Tidy
* In bsky appview ensure label.neg is modeled as a boolean, not an integer bit. Add select column when checking blob takedown.
* Include labels on appview listNotifications, fix blob resolver content-type, tidy
* Add moderation and labeling model to bsky appview
* Carry over moderation service from pds
* Pass over bsky moderation service to get it working, missing blob support
* Carry over label service from pds to bsky
* Reorg bsky http auth, implement admin auth
* Carry over relevant admin endpoints pds to bsky
* Retrofit bsky admin routes from pds impls
* Implement resolve handle on appview
* Avoid loop in bsky handle resolution
* Add bsky appview to dev-env, opt-in
* Fix bsky searchRepos with empty term, tidy
* Include blobs on bsky admin views
* Stop resolving taken-down blobs on appview
* Tidy
* Carry over pds moderation tests to bsky
* Support image cache invalidation on bsky appview
* Add missing changes for bsky tests
* Test takedowns in bsky views
* Test takedowns on bsky notifs
* In bsky appview ensure label.neg is modeled as a boolean, not an integer bit. Add select column when checking blob takedown.