social.colibri.role

colibri.social

Documentation

A named bundle of permissions assignable to community members. Lives on the community repo.

main record

A named bundle of permissions assignable to community members. Lives on the community repo.

Record Key tid Timestamp-based ID

Properties

$type string nsid Optional

The type of the record.

color string Optional

Optional hex color displayed alongside the role (e.g. '#ff8800').

hoisted boolean Optional

Whether members of this role are displayed separately in the member list.

Default: false
mentionable boolean Optional

Whether `@role`-style mentions resolve to this role.

Default: false
name string Required

Display name of the role.

maxLength: 32 bytesminLength: 1 bytes
permissions array of string Required

Permission identifiers granted by this role.

position integer Required

Hierarchy position. Higher values sit higher in the role hierarchy and outrank lower values.

protected boolean Optional

Whether this role is protected from modification or deletion. Set true for system-managed roles (e.g. the bootstrap 'Owner' role minted by `community.create`).

Default: false
View raw schema
{
  "key": "tid",
  "type": "record",
  "record": {
    "type": "object",
    "required": [
      "name",
      "permissions",
      "position"
    ],
    "properties": {
      "name": {
        "type": "string",
        "maxLength": 32,
        "minLength": 1,
        "description": "Display name of the role."
      },
      "$type": {
        "type": "string",
        "format": "nsid",
        "description": "The type of the record."
      },
      "color": {
        "type": "string",
        "description": "Optional hex color displayed alongside the role (e.g. '#ff8800')."
      },
      "hoisted": {
        "type": "boolean",
        "default": false,
        "description": "Whether members of this role are displayed separately in the member list."
      },
      "position": {
        "type": "integer",
        "description": "Hierarchy position. Higher values sit higher in the role hierarchy and outrank lower values."
      },
      "protected": {
        "type": "boolean",
        "default": false,
        "description": "Whether this role is protected from modification or deletion. Set true for system-managed roles (e.g. the bootstrap 'Owner' role minted by `community.create`)."
      },
      "mentionable": {
        "type": "boolean",
        "default": false,
        "description": "Whether `@role`-style mentions resolve to this role."
      },
      "permissions": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "A namespaced permission identifier. See AppView permission catalog."
        },
        "description": "Permission identifiers granted by this role."
      },
      "channelOverrides": {
        "type": "array",
        "items": {
          "ref": "lex:social.colibri.role#channelOverride",
          "type": "ref"
        },
        "description": "Per-channel permission overrides for this role."
      }
    }
  },
  "description": "A named bundle of permissions assignable to community members. Lives on the community repo."
}
channelOverride object

Allow / deny lists scoped to a single channel.

Properties

allow array of string Optional

Permissions granted within this channel.

channel string record-key Required

The channel this override applies to.

deny array of string Optional

Permissions denied within this channel. Deny wins over base permissions and overrides allow.

View raw schema
{
  "type": "object",
  "required": [
    "channel"
  ],
  "properties": {
    "deny": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Permissions denied within this channel. Deny wins over base permissions and overrides allow."
    },
    "allow": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Permissions granted within this channel."
    },
    "channel": {
      "type": "string",
      "format": "record-key",
      "description": "The channel this override applies to."
    }
  },
  "description": "Allow / deny lists scoped to a single channel."
}

Lexicon Garden

@