* pds sql: add indices for feed and post aggregations
Seems like aggregations/stats/counts are likely to get changed up in the
near term future, but in the very short term, these simple index
additions yielded non-trivial speedups even at small database sizes, in
my laptop testing.
* pds migration: fix index drops in 'down'
* handle: disallow new 2-char handle registration
This should not impact existing handles, only new registrations.
We discussed blocking these to prevent possible future URL path
collisions with, eg, ISO country or language codes.
* handle: reserve some more famous handles
This isn't the full list of thousands of twitter handles that have more
than 5 million or more than 1 million followers. Instead, it is only the
top 100 or so, plus a handful of additional top-50 instagram accounts (when
different), and a couple recent famous figures. Pretty subjective.
* handle: overall and segment lengths; enforce ASCII; test dashes
The 'address' package we are using to check domains doesn't seem to do
any overall length checks. The values and examples i'm testing here are
based on general domain limits. Technically a web domain could be 255,
it is email domains limited to 253 chars, but that seems like a
reasonable value to cut off at.
* Scaffold xrpc-stream
* Write and test stream frames
* Write and test stream server
* Test bad stream frame parsing cases
* Proof of concept streaming on xrpc-server
* Test bad streaming endpoint
* Make frame stream to fix buffering frame bytes together
* reorg
* some lex-cli things
* better codegen for subscriptions
* scaffolding repo subscriptions
* wip
* remove repo ops
* setup notify/listen for db
* end pool to fix hanging test
* small comment in test
* basic sequencer
* some refactoring
* switch to event emitter
* reconnect on listener error
* rename notifyClient
* remove payload on channels
* pr feedback
* subscribeRepo outbox
* some cleanup
* wip
* wip
* bugfixin
* only send msgs after tx is committed
* better handle event-emitter -> generator
* max buffer size
* cleanup
* Sync-up xrpc subscriptions with current iteration of the spec
* Allow missing encoding for subscriptions
* track sequencedAt & eventType as well
* Resolve streaming type codes, streaming tests
* Fix interface for hooking into http server for streaming, fix stream routing
* Minor reorg how streaming is enabled in xrpc-server
* Server codegen for xrpc subscriptions, supporting types in xrpc-server
* fix up buffer overloading
* Rename data frame to message frame, rename subscription lex output to message
* Move body param first for streaming frames
* Tidy
* clean up evt types
* buff up tests
* missed merge conflict
* new schema
* blobs on subscriptions
* rm genned client subscription methods
* backfill limits
* testing subscription route & quick outbox bugfix
* fix up migration
* cascade on delete
* comments & naming
* fix dev env
* delete seqs on account deletion
* tidy
* fixing things up with db notify system for schemas
* fix duplicates in outbox
* tidy
* Break out of stream handler when socket closes
* fixing up some timing issues
* tidy
* terminate ws after using
* bump up timer on async reader
* fixing up NOTIFY in txns
* pr feedback
* pr bugfixes
* make order asc explicit
* bringing tests up to speed w atpagent
* bump up max listeners on sequencer
* increase timeouts for reading from generators
---------
Co-authored-by: Devin Ivy <devinivy@gmail.com>
* Add plc service
* Setup dockerfile for plc
* add build-and-push GitHub Action
* Try making the tag plc:sha-
* try with the tags in the correct place
* add push to push!
* use a long sha for the container tag
* only build-and-push containers on main branch
* only build-and-push containers on main branch
---------
Co-authored-by: Jake Gold <jake@blueskyweb.xyz>
* Refactor @atproto/api to use the simplified AtpAgent API
* xrpc package: Export the defaultFetchHandler to reuse in api
* api package: Use the defaultFetchHandler defined in xrpc
* Update all usages of the api for the new AtpAgent
* Clear promise on thrown codepath
* Avoid updating the atpagent session until ready to return
* Lexicon updates for moderating blobs
* Add tracking of blob takedowns to moderation system
* Handle blobs in record takedown reversal
* Apply blob takedowns w/ image invalidation
* Test blob takedowns
* Implement cloudfront image invalidator
* Update lexicons for current moderation action on records and blobs
* Fix migration for postgres
* Enforce single current action per repo and blob, present current action on repo and blob
* Test single active mod action per repo, record, and blob
* Continue to resolve handles for moderated repos
* setup notify/listen for db
* end pool to fix hanging test
* small comment in test
* switch to event emitter
* reconnect on listener error
* rename notifyClient
* remove payload on channels
* pr feedback
* poor guy cant spell