social.colibri.actor.profile
A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record.
Details · record, key literal:self
| Kind | record |
|---|---|
| Record key | literal:self |
| Authority | actor.colibri.social |
| Indexed |
Checks
Validfield-name-syntaxdefs.main.record.properties.$typeThe field name $type should be letters and digits, starting with a letter.
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "A Colibri-specific user profile. Singleton record on the user's own repo, kept separate from app.bsky.actor.profile so Colibri never needs write access to the Bluesky record.",
"key": "literal:self",
"record": {
"properties": {
"$type": {
"description": "The type of the record.",
"format": "nsid",
"type": "string"
},
"avatar": {
"accept": [
"image/jpeg",
"image/png",
"image/gif",
"image/webp"
],
"description": "The user's avatar image.",
"type": "blob"
},
"banner": {
"accept": [
"image/jpeg",
"image/png",
"image/gif",
"image/webp"
],
"description": "The user's profile banner image.",
"type": "blob"
},
"description": {
"description": "The user's profile description / bio.",
"maxGraphemes": 256,
"maxLength": 2560,
"type": "string"
},
"displayName": {
"description": "The user's display name.",
"maxGraphemes": 64,
"maxLength": 640,
"type": "string"
},
"preferredBadge": {
"description": "Label value of the badge the user chose to display as their primary badge. Absent means automatic (highest-priority badge).",
"maxLength": 64,
"type": "string"
},
"presenceService": {
"description": "DID of the AppView authorized to emit off-protocol presence (status, typing, voice) for this user via Humming. A receiving AppView MUST drop any Hum about this user whose authenticated origin does not equal this value. Absent means the user has not opted into cross-instance presence.",
"format": "did",
"type": "string"
},
"syncBluesky": {
"default": false,
"description": "When true, the AppView serves displayName/avatar/banner/description from the user's app.bsky.actor.profile record (Bluesky stays the live source); these mirrored fields may be omitted here.",
"type": "boolean"
},
"theme": {
"description": "Colibri-only profile theming. Always sourced from this record regardless of syncBluesky.",
"ref": "lex:social.colibri.actor.profile#theme",
"type": "ref"
}
},
"required": [],
"type": "object"
},
"type": "record"
},
"theme": {
"description": "Colibri-only profile theming.",
"properties": {
"accentColor": {
"description": "Accent color as a #rrggbb hex string.",
"maxLength": 7,
"type": "string"
},
"bannerColor": {
"description": "Solid fallback banner color as #rrggbb, used when no banner image is set.",
"maxLength": 7,
"type": "string"
},
"gradient": {
"description": "Two-color gradient profile theme.",
"ref": "lex:social.colibri.actor.profile#themeGradient",
"type": "ref"
}
},
"required": [],
"type": "object"
},
"themeGradient": {
"description": "Two-color gradient profile theme.",
"properties": {
"primary": {
"description": "Primary gradient color as #rrggbb.",
"maxLength": 7,
"type": "string"
},
"secondary": {
"description": "Secondary gradient color as #rrggbb.",
"maxLength": 7,
"type": "string"
}
},
"required": [],
"type": "object"
}
},
"id": "social.colibri.actor.profile",
"lexicon": 1,
"revision": 2
}