An ephemeral story: visible until expiresAt, then hidden and eligible for deletion. Location is required. Belongs to exactly one persona via profileUri. For a gated persona this record lives inside the persona's Space; Spaces provide access control, not confidentiality.
tid
Timestamp-based ID
Properties
alt
string
Optional
No description available.
maxLength: 2000 bytesmaxGraphemes: 2000 graphemescreatedAt
string
datetime
Required
An RFC 3339 formatted timestamp.
expiresAt
string
datetime
Required
When the story stops being visible. The AppView should filter on this and a background job should eventually delete expired records.
location
ref
app.kalangitan.location.snapshot#geo
Required
Where this story was captured, coarsened to the persona's configured precision before writing.
media
blob
Required
No description available.
maxSize: 8.0 MBprofileUri
string
at-uri
Required
AT-URI of the app.kalangitan.actor.profile record this story belongs to.
View raw schema
{
"description": "An ephemeral story: visible until expiresAt, then hidden and eligible for deletion. Location is required. Belongs to exactly one persona via profileUri. For a gated persona this record lives inside the persona's Space; Spaces provide access control, not confidentiality.",
"key": "tid",
"record": {
"properties": {
"alt": {
"maxGraphemes": 2000,
"maxLength": 2000,
"type": "string"
},
"createdAt": {
"format": "datetime",
"type": "string"
},
"expiresAt": {
"description": "When the story stops being visible. The AppView should filter on this and a background job should eventually delete expired records.",
"format": "datetime",
"type": "string"
},
"location": {
"description": "Where this story was captured, coarsened to the persona's configured precision before writing.",
"ref": "app.kalangitan.location.snapshot#geo",
"type": "ref"
},
"media": {
"accept": [
"image/png",
"image/jpeg",
"image/webp"
],
"maxSize": 8000000,
"type": "blob"
},
"profileUri": {
"description": "AT-URI of the app.kalangitan.actor.profile record this story belongs to.",
"format": "at-uri",
"type": "string"
}
},
"required": [
"profileUri",
"media",
"location",
"expiresAt",
"createdAt"
],
"type": "object"
},
"type": "record"
}