social.colibri.beta.actor.defs

colibri.social

Documentation

activity object

Something the user is doing right now, read from another service they publish to. A client renders it beside their presence.

Properties

detail string Optional

A third line naming where the title sits, such as the album.

maxLength: 256 bytes
endsAt string datetime Optional

After this the activity is no longer current. The AppView clears it and says so, and a client treats a lapsed activity as absent.

imageUri string uri Optional

Artwork for the activity, served by this AppView. Absent when none could be resolved.

kind string Required

What sort of activity this is. A client that does not know a kind falls back to naming the source.

Known values: listening, playing, streaming
linkUri string uri Optional

Where the activity points, such as the track's page on the service it was played from.

source string Required

The service the activity was read from, such as 'teal.fm'.

maxLength: 64 bytes
startedAt string datetime Optional

When the activity began.

subtitle string Optional

The second line, such as the artist.

maxLength: 256 bytes
title string Required

The main line: a track, a game, or a stream title.

maxLength: 256 bytes
View raw schema
{
  "type": "object",
  "required": [
    "kind",
    "title",
    "source"
  ],
  "properties": {
    "kind": {
      "type": "string",
      "description": "What sort of activity this is. A client that does not know a kind falls back to naming the source.",
      "knownValues": [
        "listening",
        "playing",
        "streaming"
      ]
    },
    "title": {
      "type": "string",
      "maxLength": 256,
      "description": "The main line: a track, a game, or a stream title."
    },
    "detail": {
      "type": "string",
      "maxLength": 256,
      "description": "A third line naming where the title sits, such as the album."
    },
    "endsAt": {
      "type": "string",
      "format": "datetime",
      "description": "After this the activity is no longer current. The AppView clears it and says so, and a client treats a lapsed activity as absent."
    },
    "source": {
      "type": "string",
      "maxLength": 64,
      "description": "The service the activity was read from, such as 'teal.fm'."
    },
    "linkUri": {
      "type": "string",
      "format": "uri",
      "description": "Where the activity points, such as the track's page on the service it was played from."
    },
    "imageUri": {
      "type": "string",
      "format": "uri",
      "description": "Artwork for the activity, served by this AppView. Absent when none could be resolved."
    },
    "subtitle": {
      "type": "string",
      "maxLength": 256,
      "description": "The second line, such as the artist."
    },
    "startedAt": {
      "type": "string",
      "format": "datetime",
      "description": "When the activity began."
    }
  },
  "description": "Something the user is doing right now, read from another service they publish to. A client renders it beside their presence."
}
mute object

A muted subject.

Properties

createdAt string datetime Required

When the mute was created.

subject union Required

What is muted. A user or a community is named by DID, a channel by its space.

View raw schema
{
  "type": "object",
  "required": [
    "subject",
    "createdAt"
  ],
  "properties": {
    "subject": {
      "refs": [
        "#mutedActor",
        "#mutedChannel"
      ],
      "type": "union",
      "closed": true,
      "description": "What is muted. A user or a community is named by DID, a channel by its space."
    },
    "createdAt": {
      "type": "string",
      "format": "datetime",
      "description": "When the mute was created."
    }
  },
  "description": "A muted subject."
}
mutedActor object

A muted user or community.

Properties

did string did Required

The muted user or community.

View raw schema
{
  "type": "object",
  "required": [
    "did"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "The muted user or community."
    }
  },
  "description": "A muted user or community."
}
mutedChannel object

A muted channel. Muting a channel silences it without leaving the community it belongs to.

Properties

channel string space-ref Required

The muted channel's space.

View raw schema
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "channel": {
      "type": "string",
      "format": "space-ref",
      "description": "The muted channel's space."
    }
  },
  "description": "A muted channel. Muting a channel silences it without leaving the community it belongs to."
}
preferences object

The authenticated user's own settings, as the AppView currently holds them.

Properties

communityOrder array of stringdid Required

Communities in preferred sidebar order.

mutes array of ref#mute Required

Subjects the user has muted.

notificationLevel string Required

Which messages produce a notification.

Known values: all, mentionsAndReplies
shareActivity boolean Optional

Whether the AppView may read what the user is listening to and show it to others.

View raw schema
{
  "type": "object",
  "required": [
    "notificationLevel",
    "communityOrder",
    "mutes",
    "gifFavorites"
  ],
  "properties": {
    "mutes": {
      "type": "array",
      "items": {
        "ref": "#mute",
        "type": "ref"
      },
      "description": "Subjects the user has muted."
    },
    "gifFavorites": {
      "type": "array",
      "items": {
        "ref": "social.colibri.beta.embed.defs#gifView",
        "type": "ref"
      },
      "description": "GIFs saved from the picker, stored whole."
    },
    "shareActivity": {
      "type": "boolean",
      "description": "Whether the AppView may read what the user is listening to and show it to others."
    },
    "communityOrder": {
      "type": "array",
      "items": {
        "type": "string",
        "format": "did",
        "description": "A community."
      },
      "description": "Communities in preferred sidebar order."
    },
    "notificationLevel": {
      "type": "string",
      "description": "Which messages produce a notification.",
      "knownValues": [
        "all",
        "mentionsAndReplies"
      ]
    }
  },
  "description": "The authenticated user's own settings, as the AppView currently holds them."
}
presence object

A user's live, off-protocol state.

Properties

activity ref #activity Optional

What the user is doing right now, when they share it and the AppView has something current.

onlineState string Required

Derived online state.

Known values: online, away, dnd, offline
status ref #status Optional

The user's status line.

voice ref #voiceState Optional

Where the user is connected for voice, if anywhere.

View raw schema
{
  "type": "object",
  "required": [
    "onlineState"
  ],
  "properties": {
    "voice": {
      "ref": "#voiceState",
      "type": "ref",
      "description": "Where the user is connected for voice, if anywhere."
    },
    "status": {
      "ref": "#status",
      "type": "ref",
      "description": "The user's status line."
    },
    "activity": {
      "ref": "#activity",
      "type": "ref",
      "description": "What the user is doing right now, when they share it and the AppView has something current."
    },
    "onlineState": {
      "type": "string",
      "description": "Derived online state.",
      "knownValues": [
        "online",
        "away",
        "dnd",
        "offline"
      ]
    }
  },
  "description": "A user's live, off-protocol state."
}
profileView object

A Colibri user as the AppView serves them: identity, resolved profile, and presence.

Properties

avatar string uri Optional

URL of the user's avatar, served by this AppView's blob proxy.

banner string uri Optional

URL of the user's profile banner, served by this AppView's blob proxy.

description string Optional

Resolved bio.

did string did Required

The user's DID.

displayName string Required

Resolved display name, falling back to the handle.

handle string handle Required

The user's handle, or 'handle.invalid' when it does not resolve.

isBot boolean Required

Whether the account is labelled as an automated account.

preferredBadge string Optional

Label value of the badge the user chose to display.

presence ref #presence Optional

Live presence, when the AppView is tracking any.

syncBluesky boolean Required

Whether the mirrored profile fields come from app.bsky.actor.profile.

View raw schema
{
  "type": "object",
  "required": [
    "did",
    "handle",
    "displayName",
    "isBot",
    "syncBluesky"
  ],
  "properties": {
    "did": {
      "type": "string",
      "format": "did",
      "description": "The user's DID."
    },
    "isBot": {
      "type": "boolean",
      "description": "Whether the account is labelled as an automated account."
    },
    "theme": {
      "ref": "social.colibri.beta.actor.profile#theme",
      "type": "ref",
      "description": "Colibri-only profile theming, read from the profile record even when the mirrored fields come from Bluesky."
    },
    "avatar": {
      "type": "string",
      "format": "uri",
      "description": "URL of the user's avatar, served by this AppView's blob proxy."
    },
    "banner": {
      "type": "string",
      "format": "uri",
      "description": "URL of the user's profile banner, served by this AppView's blob proxy."
    },
    "handle": {
      "type": "string",
      "format": "handle",
      "description": "The user's handle, or 'handle.invalid' when it does not resolve."
    },
    "presence": {
      "ref": "#presence",
      "type": "ref",
      "description": "Live presence, when the AppView is tracking any."
    },
    "description": {
      "type": "string",
      "description": "Resolved bio."
    },
    "displayName": {
      "type": "string",
      "description": "Resolved display name, falling back to the handle."
    },
    "syncBluesky": {
      "type": "boolean",
      "description": "Whether the mirrored profile fields come from app.bsky.actor.profile."
    },
    "preferredBadge": {
      "type": "string",
      "description": "Label value of the badge the user chose to display."
    }
  },
  "description": "A Colibri user as the AppView serves them: identity, resolved profile, and presence."
}
status object

A user's status line.

Properties

emoji string Optional

An emoji shown beside the status.

text string Required

The status text.

maxLength: 32 bytes
View raw schema
{
  "type": "object",
  "required": [
    "text"
  ],
  "properties": {
    "text": {
      "type": "string",
      "maxLength": 32,
      "description": "The status text."
    },
    "emoji": {
      "type": "string",
      "description": "An emoji shown beside the status."
    }
  },
  "description": "A user's status line."
}
voiceState object

A user's voice connection.

Properties

channel string space-ref Required

The voice channel the user is connected to.

deafened boolean Optional

Whether the user has incoming audio silenced, for any reason.

muted boolean Optional

Whether the user's microphone is muted, for any reason.

serverDeafened boolean Optional

Whether a moderator deafened them. When this is true they cannot undeafen themselves.

serverMuted boolean Optional

Whether a moderator muted them. When this is true they cannot unmute themselves, and a client must not offer them the control.

View raw schema
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "muted": {
      "type": "boolean",
      "description": "Whether the user's microphone is muted, for any reason."
    },
    "channel": {
      "type": "string",
      "format": "space-ref",
      "description": "The voice channel the user is connected to."
    },
    "deafened": {
      "type": "boolean",
      "description": "Whether the user has incoming audio silenced, for any reason."
    },
    "serverMuted": {
      "type": "boolean",
      "description": "Whether a moderator muted them. When this is true they cannot unmute themselves, and a client must not offer them the control."
    },
    "serverDeafened": {
      "type": "boolean",
      "description": "Whether a moderator deafened them. When this is true they cannot undeafen themselves."
    }
  },
  "description": "A user's voice connection."
}

Lexicon Garden

@