[READ-ONLY] Mirror of https://github.com/flo-bit/contrail. atproto backend in a bottle flo-bit.dev/contrail/
0

Configure Feed

Select the types of activity you want to include in your feed.

regenerate

Florian (Apr 18, 2026, 10:29 PM +0200) 89076441 247d1fcc

+393 -185
+8 -5
lexicons-generated/rsvp/atmo/permissionSet.json
··· 10 10 { 11 11 "type": "permission", 12 12 "resource": "rpc", 13 - "inheritAud": true, 13 + "aud": "*", 14 14 "lxm": [ 15 15 "rsvp.atmo.event.getRecord", 16 16 "rsvp.atmo.event.listRecords", ··· 20 20 "rsvp.atmo.notifyOfUpdate", 21 21 "rsvp.atmo.rsvp.getRecord", 22 22 "rsvp.atmo.rsvp.listRecords", 23 - "rsvp.atmo.space.admin.addMember", 24 - "rsvp.atmo.space.admin.createSpace", 25 - "rsvp.atmo.space.admin.removeMember", 23 + "rsvp.atmo.space.addMember", 24 + "rsvp.atmo.space.createSpace", 26 25 "rsvp.atmo.space.deleteRecord", 27 26 "rsvp.atmo.space.getRecord", 28 27 "rsvp.atmo.space.getSpace", ··· 30 29 "rsvp.atmo.space.invite.list", 31 30 "rsvp.atmo.space.invite.redeem", 32 31 "rsvp.atmo.space.invite.revoke", 32 + "rsvp.atmo.space.leaveSpace", 33 33 "rsvp.atmo.space.listMembers", 34 34 "rsvp.atmo.space.listRecords", 35 35 "rsvp.atmo.space.listSpaces", 36 - "rsvp.atmo.space.putRecord" 36 + "rsvp.atmo.space.putRecord", 37 + "rsvp.atmo.space.removeMember", 38 + "rsvp.atmo.space.transferOwnership", 39 + "rsvp.atmo.space.whoami" 37 40 ] 38 41 } 39 42 ]
+5 -1
lexicons-generated/rsvp/atmo/event/getRecord.json
··· 23 23 "spaceUri": { 24 24 "type": "string", 25 25 "format": "at-uri", 26 - "description": "If set, fetch from this permissioned space (requires service-auth JWT)." 26 + "description": "If set, fetch from this permissioned space (requires service-auth JWT or a read-grant invite token)." 27 + }, 28 + "inviteToken": { 29 + "type": "string", 30 + "description": "Read-grant invite token for anonymous bearer access. Replaces JWT auth when supplied." 27 31 }, 28 32 "hydrateRsvps": { 29 33 "type": "integer",
+5 -1
lexicons-generated/rsvp/atmo/event/listRecords.json
··· 29 29 "spaceUri": { 30 30 "type": "string", 31 31 "format": "at-uri", 32 - "description": "If set, query records inside this permissioned space (requires service-auth JWT)." 32 + "description": "If set, query records inside this permissioned space (requires service-auth JWT or a read-grant invite token)." 33 33 }, 34 34 "byUser": { 35 35 "type": "string", 36 36 "format": "did", 37 37 "description": "Only used with spaceUri — filter to records authored by this DID." 38 + }, 39 + "inviteToken": { 40 + "type": "string", 41 + "description": "Read-grant invite token for anonymous bearer access. Replaces JWT auth when supplied." 38 42 }, 39 43 "search": { 40 44 "type": "string",
+5 -1
lexicons-generated/rsvp/atmo/rsvp/getRecord.json
··· 23 23 "spaceUri": { 24 24 "type": "string", 25 25 "format": "at-uri", 26 - "description": "If set, fetch from this permissioned space (requires service-auth JWT)." 26 + "description": "If set, fetch from this permissioned space (requires service-auth JWT or a read-grant invite token)." 27 + }, 28 + "inviteToken": { 29 + "type": "string", 30 + "description": "Read-grant invite token for anonymous bearer access. Replaces JWT auth when supplied." 27 31 }, 28 32 "hydrateEvent": { 29 33 "type": "boolean",
+5 -1
lexicons-generated/rsvp/atmo/rsvp/listRecords.json
··· 29 29 "spaceUri": { 30 30 "type": "string", 31 31 "format": "at-uri", 32 - "description": "If set, query records inside this permissioned space (requires service-auth JWT)." 32 + "description": "If set, query records inside this permissioned space (requires service-auth JWT or a read-grant invite token)." 33 33 }, 34 34 "byUser": { 35 35 "type": "string", 36 36 "format": "did", 37 37 "description": "Only used with spaceUri — filter to records authored by this DID." 38 + }, 39 + "inviteToken": { 40 + "type": "string", 41 + "description": "Read-grant invite token for anonymous bearer access. Replaces JWT auth when supplied." 38 42 }, 39 43 "status": { 40 44 "type": "string",
+60
lexicons-generated/rsvp/atmo/space/addMember.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.addMember", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Add a member to a space. Caller must be the space owner.", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": [ 13 + "spaceUri", 14 + "did" 15 + ], 16 + "properties": { 17 + "spaceUri": { 18 + "type": "string", 19 + "format": "at-uri" 20 + }, 21 + "did": { 22 + "type": "string", 23 + "format": "did" 24 + }, 25 + "perms": { 26 + "type": "string", 27 + "knownValues": [ 28 + "read", 29 + "write" 30 + ], 31 + "default": "write" 32 + } 33 + } 34 + } 35 + }, 36 + "output": { 37 + "encoding": "application/json", 38 + "schema": { 39 + "type": "object", 40 + "required": [ 41 + "ok" 42 + ], 43 + "properties": { 44 + "ok": { 45 + "type": "boolean" 46 + } 47 + } 48 + } 49 + }, 50 + "errors": [ 51 + { 52 + "name": "NotFound" 53 + }, 54 + { 55 + "name": "Forbidden" 56 + } 57 + ] 58 + } 59 + } 60 + }
+59
lexicons-generated/rsvp/atmo/space/createSpace.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.createSpace", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Create a new space owned by the JWT issuer. The caller is added as an owner-perm member.", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "properties": { 13 + "type": { 14 + "type": "string", 15 + "format": "nsid", 16 + "description": "Space type NSID. Defaults to the service's configured type." 17 + }, 18 + "key": { 19 + "type": "string", 20 + "description": "Space key. Auto-generated (TID) if omitted." 21 + }, 22 + "memberListRef": { 23 + "type": "string", 24 + "format": "at-uri" 25 + }, 26 + "appPolicyRef": { 27 + "type": "string", 28 + "format": "at-uri" 29 + }, 30 + "appPolicy": { 31 + "type": "ref", 32 + "ref": "rsvp.atmo.space.defs#appPolicy" 33 + } 34 + } 35 + } 36 + }, 37 + "output": { 38 + "encoding": "application/json", 39 + "schema": { 40 + "type": "object", 41 + "required": [ 42 + "space" 43 + ], 44 + "properties": { 45 + "space": { 46 + "type": "ref", 47 + "ref": "rsvp.atmo.space.defs#spaceView" 48 + } 49 + } 50 + } 51 + }, 52 + "errors": [ 53 + { 54 + "name": "AlreadyExists" 55 + } 56 + ] 57 + } 58 + } 59 + }
+9
lexicons-generated/rsvp/atmo/space/defs.json
··· 145 145 "required": [ 146 146 "tokenHash", 147 147 "spaceUri", 148 + "kind", 148 149 "perms", 149 150 "usedCount", 150 151 "createdBy", ··· 157 158 "spaceUri": { 158 159 "type": "string", 159 160 "format": "at-uri" 161 + }, 162 + "kind": { 163 + "type": "string", 164 + "knownValues": [ 165 + "join", 166 + "read", 167 + "read-join" 168 + ] 160 169 }, 161 170 "perms": { 162 171 "type": "string",
+4
lexicons-generated/rsvp/atmo/space/getRecord.json
··· 28 28 }, 29 29 "rkey": { 30 30 "type": "string" 31 + }, 32 + "inviteToken": { 33 + "type": "string", 34 + "description": "Read-grant invite token. When supplied, replaces JWT auth for this read." 31 35 } 32 36 } 33 37 },
+5 -1
lexicons-generated/rsvp/atmo/space/getSpace.json
··· 4 4 "defs": { 5 5 "main": { 6 6 "type": "query", 7 - "description": "Get metadata for a single space. Caller must be a member or the owner.", 7 + "description": "Get metadata for a single space. Caller must be a member, the owner, or hold a read-grant invite token.", 8 8 "parameters": { 9 9 "type": "params", 10 10 "required": [ ··· 14 14 "uri": { 15 15 "type": "string", 16 16 "format": "at-uri" 17 + }, 18 + "inviteToken": { 19 + "type": "string", 20 + "description": "Read-grant invite token. When supplied, replaces JWT auth for this read." 17 21 } 18 22 } 19 23 },
+48
lexicons-generated/rsvp/atmo/space/leaveSpace.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.leaveSpace", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Remove the caller from a space's member list. The owner cannot leave — they must transferOwnership first.", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": [ 13 + "spaceUri" 14 + ], 15 + "properties": { 16 + "spaceUri": { 17 + "type": "string", 18 + "format": "at-uri" 19 + } 20 + } 21 + } 22 + }, 23 + "output": { 24 + "encoding": "application/json", 25 + "schema": { 26 + "type": "object", 27 + "required": [ 28 + "ok" 29 + ], 30 + "properties": { 31 + "ok": { 32 + "type": "boolean" 33 + } 34 + } 35 + } 36 + }, 37 + "errors": [ 38 + { 39 + "name": "NotFound" 40 + }, 41 + { 42 + "name": "InvalidRequest", 43 + "description": "Raised if the caller is the space owner." 44 + } 45 + ] 46 + } 47 + } 48 + }
+4
lexicons-generated/rsvp/atmo/space/listRecords.json
··· 33 33 "minimum": 1, 34 34 "maximum": 200, 35 35 "default": 50 36 + }, 37 + "inviteToken": { 38 + "type": "string", 39 + "description": "Read-grant invite token. When supplied, replaces JWT auth for this read." 36 40 } 37 41 } 38 42 },
+55
lexicons-generated/rsvp/atmo/space/removeMember.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.removeMember", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Remove a member from a space. Owner only. Cannot remove the owner.", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": [ 13 + "spaceUri", 14 + "did" 15 + ], 16 + "properties": { 17 + "spaceUri": { 18 + "type": "string", 19 + "format": "at-uri" 20 + }, 21 + "did": { 22 + "type": "string", 23 + "format": "did" 24 + } 25 + } 26 + } 27 + }, 28 + "output": { 29 + "encoding": "application/json", 30 + "schema": { 31 + "type": "object", 32 + "required": [ 33 + "ok" 34 + ], 35 + "properties": { 36 + "ok": { 37 + "type": "boolean" 38 + } 39 + } 40 + } 41 + }, 42 + "errors": [ 43 + { 44 + "name": "NotFound" 45 + }, 46 + { 47 + "name": "Forbidden" 48 + }, 49 + { 50 + "name": "InvalidRequest" 51 + } 52 + ] 53 + } 54 + } 55 + }
+57
lexicons-generated/rsvp/atmo/space/transferOwnership.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.transferOwnership", 4 + "defs": { 5 + "main": { 6 + "type": "procedure", 7 + "description": "Transfer space ownership to another DID. Caller must be the current owner. The new owner must already be a write member of the space. The previous owner becomes a regular write member.", 8 + "input": { 9 + "encoding": "application/json", 10 + "schema": { 11 + "type": "object", 12 + "required": [ 13 + "spaceUri", 14 + "newOwnerDid" 15 + ], 16 + "properties": { 17 + "spaceUri": { 18 + "type": "string", 19 + "format": "at-uri" 20 + }, 21 + "newOwnerDid": { 22 + "type": "string", 23 + "format": "did" 24 + } 25 + } 26 + } 27 + }, 28 + "output": { 29 + "encoding": "application/json", 30 + "schema": { 31 + "type": "object", 32 + "required": [ 33 + "space" 34 + ], 35 + "properties": { 36 + "space": { 37 + "type": "ref", 38 + "ref": "rsvp.atmo.space.defs#spaceView" 39 + } 40 + } 41 + } 42 + }, 43 + "errors": [ 44 + { 45 + "name": "NotFound" 46 + }, 47 + { 48 + "name": "Forbidden" 49 + }, 50 + { 51 + "name": "InvalidRequest", 52 + "description": "Raised if the new owner is not a write member of the space." 53 + } 54 + ] 55 + } 56 + } 57 + }
+53
lexicons-generated/rsvp/atmo/space/whoami.json
··· 1 + { 2 + "lexicon": 1, 3 + "id": "rsvp.atmo.space.whoami", 4 + "defs": { 5 + "main": { 6 + "type": "query", 7 + "description": "Report the caller's relationship to a space: whether they are the owner, a member, and at what permission level. Useful for clients to avoid a listMembers roundtrip.", 8 + "parameters": { 9 + "type": "params", 10 + "required": [ 11 + "spaceUri" 12 + ], 13 + "properties": { 14 + "spaceUri": { 15 + "type": "string", 16 + "format": "at-uri" 17 + } 18 + } 19 + }, 20 + "output": { 21 + "encoding": "application/json", 22 + "schema": { 23 + "type": "object", 24 + "required": [ 25 + "isOwner", 26 + "isMember" 27 + ], 28 + "properties": { 29 + "isOwner": { 30 + "type": "boolean" 31 + }, 32 + "isMember": { 33 + "type": "boolean" 34 + }, 35 + "perms": { 36 + "type": "string", 37 + "knownValues": [ 38 + "read", 39 + "write" 40 + ], 41 + "description": "Present only when the caller is a member or the owner." 42 + } 43 + } 44 + } 45 + }, 46 + "errors": [ 47 + { 48 + "name": "NotFound" 49 + } 50 + ] 51 + } 52 + } 53 + }
-60
lexicons-generated/rsvp/atmo/space/admin/addMember.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "rsvp.atmo.space.admin.addMember", 4 - "defs": { 5 - "main": { 6 - "type": "procedure", 7 - "description": "Add a member to a space. Caller must be the space owner.", 8 - "input": { 9 - "encoding": "application/json", 10 - "schema": { 11 - "type": "object", 12 - "required": [ 13 - "spaceUri", 14 - "did" 15 - ], 16 - "properties": { 17 - "spaceUri": { 18 - "type": "string", 19 - "format": "at-uri" 20 - }, 21 - "did": { 22 - "type": "string", 23 - "format": "did" 24 - }, 25 - "perms": { 26 - "type": "string", 27 - "knownValues": [ 28 - "read", 29 - "write" 30 - ], 31 - "default": "write" 32 - } 33 - } 34 - } 35 - }, 36 - "output": { 37 - "encoding": "application/json", 38 - "schema": { 39 - "type": "object", 40 - "required": [ 41 - "ok" 42 - ], 43 - "properties": { 44 - "ok": { 45 - "type": "boolean" 46 - } 47 - } 48 - } 49 - }, 50 - "errors": [ 51 - { 52 - "name": "NotFound" 53 - }, 54 - { 55 - "name": "Forbidden" 56 - } 57 - ] 58 - } 59 - } 60 - }
-59
lexicons-generated/rsvp/atmo/space/admin/createSpace.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "rsvp.atmo.space.admin.createSpace", 4 - "defs": { 5 - "main": { 6 - "type": "procedure", 7 - "description": "Create a new space owned by the JWT issuer. The caller is added as an owner-perm member.", 8 - "input": { 9 - "encoding": "application/json", 10 - "schema": { 11 - "type": "object", 12 - "properties": { 13 - "type": { 14 - "type": "string", 15 - "format": "nsid", 16 - "description": "Space type NSID. Defaults to the service's configured type." 17 - }, 18 - "key": { 19 - "type": "string", 20 - "description": "Space key. Auto-generated (TID) if omitted." 21 - }, 22 - "memberListRef": { 23 - "type": "string", 24 - "format": "at-uri" 25 - }, 26 - "appPolicyRef": { 27 - "type": "string", 28 - "format": "at-uri" 29 - }, 30 - "appPolicy": { 31 - "type": "ref", 32 - "ref": "rsvp.atmo.space.defs#appPolicy" 33 - } 34 - } 35 - } 36 - }, 37 - "output": { 38 - "encoding": "application/json", 39 - "schema": { 40 - "type": "object", 41 - "required": [ 42 - "space" 43 - ], 44 - "properties": { 45 - "space": { 46 - "type": "ref", 47 - "ref": "rsvp.atmo.space.defs#spaceView" 48 - } 49 - } 50 - } 51 - }, 52 - "errors": [ 53 - { 54 - "name": "AlreadyExists" 55 - } 56 - ] 57 - } 58 - } 59 - }
-55
lexicons-generated/rsvp/atmo/space/admin/removeMember.json
··· 1 - { 2 - "lexicon": 1, 3 - "id": "rsvp.atmo.space.admin.removeMember", 4 - "defs": { 5 - "main": { 6 - "type": "procedure", 7 - "description": "Remove a member from a space. Owner only. Cannot remove the owner.", 8 - "input": { 9 - "encoding": "application/json", 10 - "schema": { 11 - "type": "object", 12 - "required": [ 13 - "spaceUri", 14 - "did" 15 - ], 16 - "properties": { 17 - "spaceUri": { 18 - "type": "string", 19 - "format": "at-uri" 20 - }, 21 - "did": { 22 - "type": "string", 23 - "format": "did" 24 - } 25 - } 26 - } 27 - }, 28 - "output": { 29 - "encoding": "application/json", 30 - "schema": { 31 - "type": "object", 32 - "required": [ 33 - "ok" 34 - ], 35 - "properties": { 36 - "ok": { 37 - "type": "boolean" 38 - } 39 - } 40 - } 41 - }, 42 - "errors": [ 43 - { 44 - "name": "NotFound" 45 - }, 46 - { 47 - "name": "Forbidden" 48 - }, 49 - { 50 - "name": "InvalidRequest" 51 - } 52 - ] 53 - } 54 - } 55 - }
+11 -1
lexicons-generated/rsvp/atmo/space/invite/create.json
··· 17 17 "type": "string", 18 18 "format": "at-uri" 19 19 }, 20 + "kind": { 21 + "type": "string", 22 + "knownValues": [ 23 + "join", 24 + "read", 25 + "read-join" 26 + ], 27 + "default": "join", 28 + "description": "join: redeem to become a member. read: bearer-only read access, no membership. read-join: anonymous read + signed-in redeem to join." 29 + }, 20 30 "perms": { 21 31 "type": "string", 22 32 "knownValues": [ ··· 32 42 "maxUses": { 33 43 "type": "integer", 34 44 "minimum": 1, 35 - "description": "Omit for unlimited uses." 45 + "description": "Caps join redemptions only — read-token reads are unlimited. Omit for unlimited joins." 36 46 }, 37 47 "note": { 38 48 "type": "string",