Declares social sources (follow graph, explicit DIDs, hashtags) for gallery feed or album population.
tid
Timestamp-based ID
Properties
active
boolean
Optional
ATPix — inactive rules are ignored by listFeedPhotos.
truecreatedAt
string
datetime
Required
dc:date · schema:dateCreated — RFC 3339 UTC.
description
string
Optional
dc:description — optional explanation.
maxLength: 2000 bytesfollowedActors
array
of
string
did
Optional
schema:follows (conceptual) — explicit DID allow-list; unioned with follow graph when useFollowGraph is true.
maxLength: 500 itemshashtags
array
of
string
Optional
dc:subject — normalized hashtags (no #); matched against photo.keywords.
maxLength: 50 itemsincludeOwnPhotos
boolean
Optional
ATPix — include photos authored by the rule owner.
truemodifiedAt
string
datetime
Optional
schema:dateModified — RFC 3339 UTC.
name
string
Required
dc:title — human-readable rule name.
maxLength: 200 bytestargetAlbumUri
string
at-uri
Optional
ATPix — required when targetScope is album; target album AT URI.
targetScope
ref
net.atpix.gallery.defs#targetScope
Required
ATPix — gallery (social feed) or album (membership seeding).
useFollowGraph
boolean
Optional
ATPix — when true, resolve actors via app.bsky.graph.getFollows.
falseView raw schema
{
"key": "tid",
"type": "record",
"record": {
"type": "object",
"required": [
"name",
"targetScope",
"createdAt"
],
"properties": {
"name": {
"type": "string",
"maxLength": 200,
"description": "dc:title — human-readable rule name."
},
"active": {
"type": "boolean",
"default": true,
"description": "ATPix — inactive rules are ignored by listFeedPhotos."
},
"hashtags": {
"type": "array",
"items": {
"type": "string",
"maxLength": 64
},
"maxLength": 50,
"description": "dc:subject — normalized hashtags (no #); matched against photo.keywords."
},
"createdAt": {
"type": "string",
"format": "datetime",
"description": "dc:date · schema:dateCreated — RFC 3339 UTC."
},
"modifiedAt": {
"type": "string",
"format": "datetime",
"description": "schema:dateModified — RFC 3339 UTC."
},
"description": {
"type": "string",
"maxLength": 2000,
"description": "dc:description — optional explanation."
},
"targetScope": {
"ref": "net.atpix.gallery.defs#targetScope",
"type": "ref",
"description": "ATPix — gallery (social feed) or album (membership seeding)."
},
"followedActors": {
"type": "array",
"items": {
"type": "string",
"format": "did"
},
"maxLength": 500,
"description": "schema:follows (conceptual) — explicit DID allow-list; unioned with follow graph when useFollowGraph is true."
},
"targetAlbumUri": {
"type": "string",
"format": "at-uri",
"description": "ATPix — required when targetScope is album; target album AT URI."
},
"useFollowGraph": {
"type": "boolean",
"default": false,
"description": "ATPix — when true, resolve actors via app.bsky.graph.getFollows."
},
"includeOwnPhotos": {
"type": "boolean",
"default": true,
"description": "ATPix — include photos authored by the rule owner."
}
}
},
"description": "Declares social sources (follow graph, explicit DIDs, hashtags) for gallery feed or album population."
}