social.colibri.beta.role

A named bundle of permissions assignable to community members.

Repository @colibri.social did:plc:mprdjqjluoswa7awzggaggj3 namespace authority
Details · record, key tid
Kindrecord
Record keytid
Authoritybeta.colibri.social
Indexed

Showing version bafyreig64cfjfz2xosxspe6iujf3duarq24hmqocmjgvtaov5h7k2l3nya. Show the latest

cid bafyreig64cfjfz2xosxspe6iujf3duarq24hmqocmjgvtaov5h7k2l3nya

Checks

Valid
  • unlimited-string defs.channelOverride.properties.allow.itemsNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.channelOverride.properties.deny.itemsNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.record.properties.permissions.itemsNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "channelOverride": {
      "description": "Allow and deny lists scoped to a single channel.",
      "properties": {
        "allow": {
          "description": "Permissions granted within this channel.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "channel": {
          "description": "The space key of the channel this override applies to.",
          "format": "record-key",
          "type": "string"
        },
        "deny": {
          "description": "Permissions denied within this channel. Deny beats both the base permissions and allow.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "channel"
      ],
      "type": "object"
    },
    "emojiBadge": {
      "description": "A badge drawn from an emoji. Exactly one of emoji and customEmoji is set.",
      "properties": {
        "customEmoji": {
          "description": "The record of a custom emoji.",
          "ref": "social.colibri.beta.richtext.facet#customEmoji",
          "type": "ref"
        },
        "emoji": {
          "description": "A Unicode emoji.",
          "maxGraphemes": 1,
          "maxLength": 64,
          "type": "string"
        }
      },
      "type": "object"
    },
    "iconBadge": {
      "description": "A badge drawn from the client's curated icon set.",
      "properties": {
        "color": {
          "description": "Hex colour as #rrggbb. Absent means the role colour, or the client's default badge colour when the role has none.",
          "maxLength": 7,
          "type": "string"
        },
        "icon": {
          "description": "The icon's identifier in the curated set, for example shield-check.",
          "maxLength": 64,
          "minLength": 1,
          "type": "string"
        }
      },
      "required": [
        "icon"
      ],
      "type": "object"
    },
    "imageBadge": {
      "description": "A badge drawn from an uploaded image.",
      "properties": {
        "image": {
          "accept": [
            "image/jpeg",
            "image/png",
            "image/gif",
            "image/webp"
          ],
          "description": "A square image, shown at about 16 pixels.",
          "maxSize": 262144,
          "type": "blob"
        }
      },
      "required": [
        "image"
      ],
      "type": "object"
    },
    "main": {
      "description": "A named bundle of permissions assignable to community members.",
      "key": "tid",
      "record": {
        "properties": {
          "badge": {
            "description": "A small badge shown next to the names of members holding this role.",
            "refs": [
              "#iconBadge",
              "#imageBadge",
              "#emojiBadge"
            ],
            "type": "union"
          },
          "channelOverrides": {
            "description": "Per-channel permission overrides.",
            "items": {
              "ref": "#channelOverride",
              "type": "ref"
            },
            "type": "array"
          },
          "color": {
            "description": "Hex colour as #rrggbb.",
            "maxLength": 7,
            "type": "string"
          },
          "default": {
            "default": false,
            "description": "Whether every member holds this role from the moment they join. Set on the members role created with the community. A default role cannot be deleted.",
            "type": "boolean"
          },
          "hoisted": {
            "default": false,
            "description": "Whether holders are listed separately in the member list.",
            "type": "boolean"
          },
          "mentionable": {
            "default": false,
            "description": "Whether @role mentions resolve to this role.",
            "type": "boolean"
          },
          "name": {
            "description": "Display name.",
            "maxLength": 32,
            "minLength": 1,
            "type": "string"
          },
          "permissions": {
            "description": "Permissions granted by this role.",
            "items": {
              "description": "A namespaced permission identifier.",
              "type": "string"
            },
            "type": "array"
          },
          "position": {
            "description": "Hierarchy position. Higher outranks lower.",
            "type": "integer"
          },
          "protected": {
            "default": false,
            "description": "Whether this role is exempt from modification and deletion. Set on the owner role created with the community.",
            "type": "boolean"
          }
        },
        "required": [
          "name",
          "permissions",
          "position"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "social.colibri.beta.role",
  "lexicon": 1
}