Commit Graph

1347 Commits

Author SHA1 Message Date
devin ivy 1ebda12b9d Make sequencer leader behavior optional on pds (#1250)
* make sequencer leader behavior optional on pds

* tidy
2023-07-17 10:53:22 -04:00
Foysal Ahamed b9ca76f012 Allow searching reports by moderator did (#1283)
*  Allow searching reports by moderator did

*  Remove .only flags on tests

*  Update snapshot

*  Add checks for did match in actions
2023-07-14 16:05:56 -07:00
devin ivy 53c4956146 Allow moderators to take and reverse actor takedowns (#1330)
allow moderators to take and reverse actor takedowns
2023-07-14 14:37:32 -07:00
Daniel Holmgren 6b51ecbbb2 Handle validation improvements (#1336)
* Handle matches and false positives for unacceptable words in handles

* move handle validation logic to pds

* missed merge

* add cfg flag

* encode lists

* fix build issues

* move words to cfg

* tidy

---------

Co-authored-by: Jaz Volpert <ericvolp12@gmail.com>
2023-07-13 22:29:01 -05:00
David Buchanan c78d30f363 hotfix: prevent user-supplied rkey on posts with createRecord (#1313)
* prevent user-supplied rkey on posts with createRecord

* allow empty-string rkey parameter

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

---------

Co-authored-by: devin ivy <devinivy@gmail.com>
2023-07-12 01:00:26 -05:00
devin ivy 2e52f382a1 Perform pessimistic handle check when updating handle (#1300)
perform pessimistic handle check when updating handle
2023-07-07 13:49:47 -05:00
Ansh 08dc2b725d Pagination on getPopularFeedGenerators (#1293)
* add temporary page-based pagination

* use cursor & limit for pagination

* tests

* add to appview

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
2023-07-07 13:49:02 -05:00
devin ivy 0d3a5559cf Do not sequence handle updates in slow path (#1292)
* do not sequence handle updates in slow path

* build

* bail early if invite code doesn't exist
2023-07-06 15:52:16 -04:00
devin ivy 3ea892bc57 Add administrative triage role, update moderator role (#1216)
* setup triage user on pds, update moderator username (invalidates old token)

* initial pass on triage access on pds, limit access to email addrs

* apply moderator vs triage rules on taking and reversing mod actions for pds

* update pds tests for triage auth role

* setup moderator and triage roles on bsky appview

* apply mod and triage access rules to bsky admin endpoints

* reframe admin auth as role-based auth, tidy auth apis

* tidy

* build

* revert change to basic auth username for role-based auth
2023-07-06 15:18:52 -04:00
Daniel Holmgren 60e8284b15 Fix flaky db test (#1287)
fix flaky db test
2023-07-06 09:57:41 -04:00
Daniel Holmgren fde94736bc Desanctify hellthread (#1289)
* remove blessed hellthread

* tweak hot classic labels
2023-07-05 20:40:49 -05:00
Daniel Holmgren 05a7c46192 Add migrations for handmade indices (#1266)
* add indices

* add record index to bsky

* sync-up bsky index migration, remove duplicate index

* backpressure on bsky backfill indexing (#1268)

* backpressure on bsky backfill indexing

* skip image resolution for text labeler

* increase background queue concurrency for backfill

* tidy

* Proxy timeline skeleton construction (#1264)

proxy timeline skeleton construction to appview

* Only pass through known params on timeline skeleton (#1270)

only pass through own params

* Require headers on getRecord proxy (#1271)

require headers on getRecord proxy

* Add boolean for enabling generic appview proxying (#1273)

* add boolean config for enabling generic proxying

* tweak

* tweak cfg var name

* tweak

* 🐛 Only ignore reports for specific at-uri when ignoreSubject contains at-uri (#1251)

* Move timeline construction to appview (#1274)

full switch timeline construction to appview

* Better propagate errors on repo streams (#1276)

better propgate errors on repo streams

* Log pds sequencer leader stats (#1277)

log pds sequencer leader stats

* Explicit dns servers (#1281)

* add ability to setup explicit dns servers

* cleanup

* fix

* reorder

* pr feedback

* Thread through id-resolver cfg (#1282)

thread through id-resolver-cfg

* Bsky log commit error (#1275)

* don't bail on bad record index

* add build

* temporarily disable check, full reindex on rabase

* don't bail on bad record index during rebase, track last commit on rebase

* log bsky repo subscription stats

* add running and waiting count to repo sub stats

* re-enable fast path for happy rebases

* only hold onto seq in cursor consecutivelist, don't hold onto whole completed messages

* Misc scaling (#1284)

* limit backsearch to 1 day instead of 3

* lower like count threshold

* bump to 6

* disable like count check

* disable with friends

* preemptively cache last commit

* inline list mutes

* actor service

* label cache

* placehodler on popular with friends

* bulk sequence

* no limit but chunk

* bump chunk to 5k

* try 10k

* fix notify

* tweaking

* syntax

* one more fix

* increase backfill allowance

* full refresh label cache

* limit 1 on mute list

* reserve aclu handle

* clean up testing with label cache

* note on with-friends

* rm defer from label cache

* label cache error handling

* rm branch build

* build appview

* update indices

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: Foysal Ahamed <cfaion341@gmail.com>
2023-07-05 17:22:53 -05:00
Daniel Holmgren 4d1f8d3289 Misc scaling (#1284)
* limit backsearch to 1 day instead of 3

* lower like count threshold

* bump to 6

* disable like count check

* disable with friends

* preemptively cache last commit

* inline list mutes

* actor service

* label cache

* placehodler on popular with friends

* bulk sequence

* no limit but chunk

* bump chunk to 5k

* try 10k

* fix notify

* tweaking

* syntax

* one more fix

* increase backfill allowance

* full refresh label cache

* limit 1 on mute list

* reserve aclu handle

* clean up testing with label cache

* note on with-friends

* rm defer from label cache

* label cache error handling

* rm branch build
2023-07-05 16:41:08 -05:00
Daniel Holmgren 0ceed96b11 Explicit dns servers (#1281)
* add ability to setup explicit dns servers

* cleanup

* fix

* reorder

* pr feedback
2023-07-04 18:40:43 -05:00
devin ivy dd4d91ce6b Log pds sequencer leader stats (#1277)
log pds sequencer leader stats
2023-07-04 00:15:13 -04:00
Daniel Holmgren 8815efd86e Move timeline construction to appview (#1274)
full switch timeline construction to appview
2023-07-03 15:03:04 -05:00
Foysal Ahamed 03200c1d8b 🐛 Only ignore reports for specific at-uri when ignoreSubject contains at-uri (#1251) 2023-07-03 15:21:16 -04:00
Daniel Holmgren c793ff9103 Add boolean for enabling generic appview proxying (#1273)
* add boolean config for enabling generic proxying

* tweak

* tweak cfg var name

* tweak
2023-07-03 14:14:49 -05:00
Daniel Holmgren 9610ba061c Require headers on getRecord proxy (#1271)
require headers on getRecord proxy
2023-07-03 13:19:56 -05:00
Daniel Holmgren 6695e6c9e4 Only pass through known params on timeline skeleton (#1270)
only pass through own params
2023-07-03 12:38:33 -05:00
Daniel Holmgren e7a0d27f1f Proxy timeline skeleton construction (#1264)
proxy timeline skeleton construction to appview
2023-07-03 11:28:39 -05:00
Daniel Holmgren 4db7aeca57 Rework record embeds (#1262)
* wip

wip

wip

fix tests

tidy

* small fix

* fix flaky proxy test
2023-07-02 20:37:27 -05:00
Daniel Holmgren e5dc790eda Ensure not to serve repo endpoints for taken-down actor (#1263)
ensure not to serve repo endpoints for taken-down actor

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2023-07-02 20:22:35 -05:00
Daniel Holmgren ee68a4037b Appview - Invalid handles (#1244)
* run with-test-db in monorepo test

* improve pg script

* tidy

* namespace bsky pg schemas

* differentiate schemas

* clean up script

* first pass at invalid handles in appview

* tests for handle invalidation

* move mock to instance instead of prototype

* change network mocks in general

* fixing pagination on actor-search

* fix snap & normalize handles on index

* handling did pagination + update tests

* one last update
2023-06-30 16:02:47 -05:00
Daniel Holmgren e81ff25f02 Throw concurrent write error on prev mismatch (#1254)
* throw concurrent write error

* build branch

* remove branch build
2023-06-29 15:44:19 -05:00
Daniel Holmgren 7cb8c62b54 Repo update advisory lock (#1230)
* use for no key update

* use a tx advisory lock for repo updates

* skip tests for sqlite

* move check of commit swap on rebase

* do lock before formatting rebase

* hash schema in for lock id

* no tx lock in sqlite

* move rebase formatting to tx

* move dialect check

* rm log

* make the lock ids a bit safer

* change how we do lock id

* refactor id generator
2023-06-29 13:42:10 -05:00
Daniel Holmgren 9263ddc64d Add compression in http res (#1022)
* add compression

* compress carfiles

* update package version

* add tests

* one more test

* remove compressible dep

* add gzip to appview

* fix package.json
2023-06-29 10:24:48 -05:00
Daniel Holmgren ab6621e017 Ensure rebase recovers repos in a broken state (#1247)
rebase recovers from repos in a broken state
2023-06-29 10:24:13 -05:00
Daniel Holmgren ba870d3dbe Run test DB for full monorepo tests (#1225)
* run with-test-db in monorepo test

* improve pg script

* tidy

* namespace bsky pg schemas

* differentiate schemas

* clean up script

* tweaking script
2023-06-28 15:12:37 -05:00
Jess Porter d9ac72e647 firehose tombstones (#1017)
* firehose tombstones

* return tombstones from sequencer requestSeqRange

* firehose tombstone test

* oops semicolons :3

* yes this can be const

* fix verifyTombstoneEvent func signature

* invalidate all sequence events upon tombstone

* don't manually purge all seqs, test for tombstone after delete

* actually fully delete account

* fix linting

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2023-06-26 18:48:00 -05:00
Daniel Holmgren 2e94c43010 Cleanup @atproto/crypto (#1218)
* remove webcrypto, upgrade @noble/curves, normalize p256 interface

* cleanup

* Test vectors for secp and p256 signature verification (#737)

Add test vectors for secp and p256 signature verification

* fix up test vectors

* add explicit test vectors for high-s signatures

* tidy json to pass verify check

---------

Co-authored-by: devin ivy <devinivy@gmail.com>
2023-06-26 18:47:28 -05:00
devin ivy 733325317e Miscellaneous perf improvements and bsky sync-up (#1239)
* sync-up bsky appview to apply takedowns during hydration from #1232

* apply blocks and mutes on bsky appview custom algos

* hit index on with-friends algo pagination

* more performant query for fetching invite codes with uses

* tidy

* simplify query for actor typeahead for maximal use of trigram index
2023-06-26 14:36:16 -04:00
Daniel Holmgren 0ee6dc45a5 Improve invite code counting (#1234)
* dont count admin codes for routine codes

* better tests for invites

* variable naming

* change approach

* update comment

* tidy
2023-06-24 13:07:37 -05:00
Ansh 0306f81d37 Add ability to embed lists (#1188)
* add cid to ListView and ListViewBasic

* add test for mute list embed

* add support for list embeds views

* test

* port to appview

* update missing snap

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
2023-06-23 16:30:52 -04:00
devin ivy 3da0324873 Post record language tagging, lexicon language format (#1219)
* Add languages field to post record

* helper for parsing bcp47

* add language format to lexicon

* codegen for post record langs field

* re-export language parsing in api package

* tests and tidy for lexicon language format

* index post langs, in-progress

* update snapshots, fixes record-with-media embed issue

* index post langs on bsky appview

* don't bother indexing post langs in pds appview, tidy
2023-06-23 16:23:16 -04:00
Daniel Holmgren 57b87908c2 Optimize reverse chron feeds (#1232)
* temporarily lower scroll window to 3 days

* lower feed date threshold to 1 day

* verify at least one follow

* tidy

* follow count level

* fix limi

* up low follow count

* pare down with-friends query, control join order

* do takedown checks in hydration

* move more takedown checks

* don't include placeholders for takendown replies in threads

* remove follow count logic

* bump cutoff from 1 to 3

* tidy

* add back in date threshold

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2023-06-22 18:41:51 -05:00
devin ivy e651ed67a4 Respect takedowns on feedgen records, sync routes (#1119)
* Don't serve high-level details about taken-down feedgens

* Takedown checks on sync routes

* Use simpler check for takedowns on sync routes

* ensure takendown feedgens are handled in bsky appview
2023-06-21 15:07:16 -04:00
devin ivy 23c623583a Surface sequencer leader pg client errors in the logs (#1221)
surface sequencer leader pg client errors in the logs
2023-06-20 11:12:29 -04:00
Daniel Holmgren 2768fb9e45 Make requestCrawl & notifyOfUpdate procedures (#1217)
make requestCrawl & notifyOfUpdate procedures
2023-06-20 09:36:09 -05:00
devin ivy ffc6451254 Backport: fallback to getRecord on appview, misc fixes (#1210)
* bugfixing sandbox issues

* tidy after backport

---------

Co-authored-by: dholms <dtholmgren@gmail.com>
2023-06-15 16:41:45 -04:00
devin ivy fc577f5dc0 Allow pds to fallback to appview for handle resolution (#1209)
Allow pds to fallback to appview for handle resolution before going to the source
2023-06-15 13:34:27 -04:00
Daniel Holmgren 08c6bffc9f Fix epoch env (#1206)
fix epoch env
2023-06-13 18:26:03 -05:00
Daniel Holmgren 5d85188509 Invite epochs (#1205)
* add invite epoch

* reorg test

* fix dev env

* tidy
2023-06-13 17:49:47 -05:00
Daniel Holmgren 33f3a0bf12 Cleanup PDS proxy (#1197)
remove proxy file
2023-06-12 19:21:10 -05:00
Daniel Holmgren 8c4fa530d6 Pds proxy to appview based on headers (#1191)
* pds proxy to appview based on headers

* reorg appview routes forwarding mutes to appview

* tidy

* clean up ctx

* track notif state

* use notif state for notif routes

* add back in missing file

* pr feedback

* wip

* more views

* more views

* update snaps & suggestions test

* better choices for like & reposted

* note

* better block test

* Test pds-proxied mute and notif state

* Update bsky snaps, remove unnecessary #postView

* Update bsky notification tests to use updateSeen

* add getList getFeedGen tests

* Re-disconnect pds from in-process appview indexing for tests

* clean up forSnapshot

* tidy

* feed gen view tests

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2023-06-12 17:29:32 -05:00
devin ivy 84032a6c77 Bsky appview: resolve long transactions, tombstone behavior (#1192)
* Loosen indexing txn boundaries to record-level in bsky appview, no long transactions

* Add explicit HeadNotFound error to sync.getHead

* Update tombstone behavior on bsky appview, use more specific error on sync.getHead
2023-06-12 17:51:38 -04:00
devin ivy 0ed0eb5d5f Remove appview repo subscription from PDS (#1195)
* Remove repo subscription from pds appview

* Remove appview repo subscription config from pds
2023-06-12 17:01:59 -04:00
Daniel Holmgren 7f9d2c1ebe Notify crawlers on write (#1194)
* notify crawlers on write

* pr feedback

* more resilient config
2023-06-12 15:00:17 -05:00
Daniel Holmgren 08fbb33fdf Appview blocks (#1187)
* 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

* Views of feedgens on bsky

* hook up indexing

* Setup custom feeds on bsky

* graph service + getList routes

* migration

* Feed views refactor for bsky, implement getFeed w/ auth passthrough

* mute lists

* add getListMutes

* mute list tests

* add mutes table & mute/unmuteActor routes

* Passthrough auth from bsky appview to feedgen, fixes/tidy/tests

* add getMutes

* implement mute functionality

* remove unspecced

* mute tests

* mute impl tests

* remove proxy tests

* Test custom algos on bsky

* add mute state to snapshots

* table & indexing plugin

* getBlocks

* bail out of mute subquery when no viewer

* fleshing out services

* Test pds getFeed proxy

* tidy, fix build

* tidy

* Fix minor race in bsky mutelist tests

* blocks in feed views

* db migration, impl block logic & tests

* Update pds proxy snaps based on appview mutes

* missed some files on last commit

* ensure process after unmute

* update snap

* move adminAuth to seedclient param

* apply blocks in getFeed

* update snaps

* upadate one last snap

* pr feedback

---------

Co-authored-by: Devin Ivy <devinivy@gmail.com>
2023-06-12 11:05:22 -05:00
devin ivy 5951d9347f Misc. syncing-up bsky appview with on-pds appview (pt. 2) (#1190)
* Misc notification and optimization in bsky, tidy

* Handle notifs on message queue in bsky appview

* Sync-up profile labeling behavior in bsky

* No async work during actor unindexing in bsky, include additional indexes

* Prevent deeply nested notifs w/ hellthread exception in bsky appview

* Add indexes to bsky appview for more efficient actor deletion/unindexing

* Update pds proxy snaps for updated bsky profile labeling

* Return custom suggestions in bsky appview

* Test out-of-order indexing of aggregations on bsky appview

* Proxy pds getPopular to hot-classic feed on appview. Proxy getPopularFeedGenerators to appview.

* Make did field required on feedgen view
2023-06-11 15:48:20 -04:00