very fast at protocol indexer with flexible filtering, xrpc queries, cursor-backed event stream, and more, built on fjall
rust
fjall
at-protocol
atproto
indexer
title: filter management#
GET /filter: get the current filter configuration.PATCH /filter: update the filter configuration.
filter mode#
the mode field controls what gets indexed:
| mode | behaviour |
|---|---|
filter |
auto-discovers and backfills any account whose firehose commit touches a collection matching one of the signals patterns. you can also explicitly track individual repositories via the /repos endpoint regardless of matching signals. |
full |
index the entire network. signals are ignored for discovery, but excludes and collections still apply. |
fields#
| field | type | description |
|---|---|---|
mode |
"filter" | "full" |
indexing mode (see above). |
signals |
set update | NSID patterns (e.g. app.bsky.feed.post or app.bsky.*) that trigger auto-discovery in filter mode. |
collections |
set update | NSID patterns used to filter which records are stored. if empty, all collections are stored. applies in all modes. |
excludes |
set update | set of DIDs to always skip, regardless of mode. checked before any other filter logic. |
set updates#
each set field accepts one of two forms:
- replace: an array replaces the entire set, eg.
["app.bsky.feed.post", "app.bsky.graph.*"] - patch: an object maps items to
true(add) orfalse(remove), eg.{"app.bsky.feed.post": true, "app.bsky.graph.*": false}
NSID patterns#
signals and collections support an optional .* suffix to match an entire namespace:
app.bsky.feed.post: exact match onlyapp.bsky.feed.*: matches any collection underapp.bsky.feed