* add lexicon for unspecced applyLabels procedure
* implement label push to pds via unspecced.applyLabels
* add hive retry to bsky appview
* build
* update applyLabels to work with raw label data
* update bsky hive labeler
* remove build
* Allow setting a note when enabling/disabling invite codes
* Add inviteNote to repoView
* ✅ Add test for inviteNote
* ✨ Set to null when note is empty
* ✨ Change note from text to varchar
* 📝 Better description
* setup redis infra for appview indexer
* barebones bsky ingester
* add ioredis to bsky
* remove some indexer functionality from bsky api
* setup for bsky indexer
* tidy
* tidy, observe basic pipeline functioning
* process messages on bsky indexer pipeline, tidy tests and lifecycle
* trim partitions when moving cursor
* simplify config for partitions
* misc fixes for redis setup in bsky tests, add namespacing
* fix pds proxy tests
* remove cursor state from indexer partitions, simplify ingester state
* tidy
* utils for testing w/ multiple indexers, fix off-by-one xtrim
* test reingesting
* test indexer repartitioning
* add entrypoints for bsky ingester and indexer, fix db schema config, api entrypoint name, tidy
* setup and test bsky ingester backpressure, add config
* tidy
* add missing test file
* tidy redis calls, add redis sentinel config
* tidy/test some utils used in bsky pipeline
* tidy bsky pipeline tests, move helpers into dev-env
* fix pds crud test
* support redis host and password config
* better loggin/observability in ingester and indexer, make build
* add bsky ingester initial cursor config
* temporarily remove migrations from indexer/ingester
* allow ingester to batch
* packages/pg becomes packages/dev-infra with some cleanup (#1402)
* packages/dev-infra/
* Extract packages/dev-infra/_common.sh and use it
* Use period instead of source because of /bin/sh
* add docs for redis test script
* fix repartition test
* add logs to debug ci
* simplify repartitioning test, remove ci logs
---------
Co-authored-by: Jerry Chen <jerry@redelm.net>
* fix up bug in actor service
* add in hydrate methods
* build fix
* couple more fixes
* tidy
* port to appview
* dont build branch
* fix issue with items in list
* tidy
* dont build branch
* quick fix
tlds have not been appropriately checked since 6b51ecb due to what appears to be a typo/oversight.
this commit fixes it so that tlds are once again validated
* add index to support listRepos
* disable contents of user-account-cursor-idx migration, build
* ready for merge
---------
Co-authored-by: dholms <dtholmgren@gmail.com>
* apply block rules for third parties on replies and embeds
* tidy terminology around blocking and actor relationships
* apply third-party blocking functionality to appview
* tidy, bsky tests
* 🚧 WIP including takendown posts on author feed
* ✨ Add takedown id on posts when including taken down posts
* 🧹 Cleanup the auth verifier and other bsky package code
* ✅ Add test for admin getAuthorFeed
* 🧹 Cleanup lexicon and exclude takedownId
* more explicit plumbing for post hydration w/o requester or with takedown info
* pass along flag for soft-deleted actors
* cleanup getAuthorFeed w/ auth
* reorg getAuthorFeed logic around role/access-based auth
---------
Co-authored-by: Foysal Ahamed <cfaion341@gmail.com>
* proxy timeline skeleton construction to appview
* add getFeedSkeleton to appview
* mount route
* smart proxy feed skeletons
* tests
* proper error code
* only proxy specific feeds
* build branch
* update proxyable feed logic, should use feed publisher rather than generator
* fix feed proxy tests, configure feed publisher (in addition to generator)
* 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>
* add slurs to reserved words (#1318)
* add slurs to reserved words (#1314)
* Update reserved.ts
Add slurs to reserved words
* Update reserved.ts
fix typo
* Update reserved.ts to clean up the slur list
* linting
* pluralise
---------
Co-authored-by: jess <jesslarkdev+gh@gmail.com>
* identifier: tweaks and additions to slur list (#1319)
* Refactor appview repo subscription for memleak (#1308)
* refactor to remove closure in loop
* move consecutive item out of p-queue
* 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>
* Allow moderators to take and reverse actor takedowns (#1330)
allow moderators to take and reverse actor takedowns
* ✨ 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
* v0.4.1
* Make sequencer leader behavior optional on pds (#1250)
* make sequencer leader behavior optional on pds
* tidy
* use 127.0.0.1 in with-test-db.sh for colima (#1297)
So, since Docker Desktop has licensing issues, some folks use colima for
running containers on their macOS machines (The licensing exempted
CLI-only version of Docker only exists on Linux).
Unfortunately, colima binds host ports only on the IPv4 localhost
address (`127.0.0.1`) while the atproto postgres clients will attempt to
connect to the IPv6 localhost address (`::1`) that macOS sets in
/etc/hosts. See https://github.com/abiosoft/colima/issues/583 and
https://github.com/lima-vm/lima/issues/1330 for the tickets against
colima. (Docker Desktop binds to both IPv4 and IPv6 localhost addresses
and so doesn't have this issue.)
To workaround this silly issue, we can use `localhost` within the docker
containers and docker-compose, but need to set the `DB_POSTGRES_URL` env
var to use the IPv4 localhost explicitly.
(Asking folks to edit /etc/hosts causes other tools to break and will be
overridden on each OS upgrade.)
* Subscription util tests (#1295)
* consecutive list tests
* flesh out subscription util tests
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Content reporting on record fields (#1351)
* content reporting on record fields
* fix test
* tests
* tidy
* Check rkey contents just for non-tids (#1353)
check rkey content for non-tids
* ✨ Added new procedure for sending admin email (#1312)
* 🚧 Added new lexicon for sending admin email
* ✨ Add moderation mailer
* ✨ Switch to text email content from html
* 🧹 Cleanup some early implementation code and reflect PR reivew
* ✨ Use smtp host instead of gmail service config
* ✨ Move to using single smtp url
* v0.4.2
* Patch up a couple sqlite tests (#1355)
patch up a couple sqlite tests
* enable feeds & build branch
* disable branch building & enable without proxy header
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
Co-authored-by: David Buchanan <d@vidbuchanan.co.uk>
Co-authored-by: jess <jesslarkdev+gh@gmail.com>
Co-authored-by: bnewbold <bnewbold@robocracy.org>
Co-authored-by: Jaz Volpert <ericvolp12@gmail.com>
Co-authored-by: Foysal Ahamed <cfaion341@gmail.com>
Co-authored-by: Jeff Hodges <jeff@somethingsimilar.com>
* 🚧 Added new lexicon for sending admin email
* ✨ Add moderation mailer
* ✨ Switch to text email content from html
* 🧹 Cleanup some early implementation code and reflect PR reivew
* ✨ Use smtp host instead of gmail service config
* ✨ Move to using single smtp url
* 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
* 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>
* 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