social.colibri.beta.community.defs

colibri.social

{
  "id": "social.colibri.beta.community.defs",
  "defs": {
    "roleView": {
      "type": "object",
      "required": [
        "rkey",
        "name",
        "permissions",
        "position"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "Display name."
        },
        "rkey": {
          "type": "string",
          "format": "record-key",
          "description": "The role's record key."
        },
        "color": {
          "type": "string",
          "maxLength": 7,
          "description": "Hex colour as #rrggbb."
        },
        "hoisted": {
          "type": "boolean",
          "description": "Whether holders are listed separately."
        },
        "position": {
          "type": "integer",
          "description": "Hierarchy position. Higher outranks lower."
        },
        "protected": {
          "type": "boolean",
          "description": "Whether the role is exempt from modification and deletion."
        },
        "memberCount": {
          "type": "integer",
          "description": "Number of members holding this role."
        },
        "mentionable": {
          "type": "boolean",
          "description": "Whether @role mentions resolve to this role."
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "A permission identifier."
          },
          "description": "Permissions granted."
        },
        "channelOverrides": {
          "type": "array",
          "items": {
            "ref": "#roleChannelOverride",
            "type": "ref"
          },
          "description": "Per-channel overrides."
        }
      },
      "description": "A role."
    },
    "labelView": {
      "type": "object",
      "required": [
        "src",
        "val",
        "createdAt"
      ],
      "properties": {
        "src": {
          "type": "string",
          "format": "did",
          "description": "The labeler that applied it."
        },
        "val": {
          "type": "string",
          "description": "The label value."
        },
        "scope": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "uri",
            "description": "A URI within the labelled record."
          },
          "description": "What the label narrows to."
        },
        "reason": {
          "type": "string",
          "maxLength": 512,
          "description": "Human-readable reason."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "When it was applied."
        }
      },
      "description": "A label applied to a record."
    },
    "memberView": {
      "type": "object",
      "required": [
        "actor",
        "roles",
        "joinedAt"
      ],
      "properties": {
        "actor": {
          "ref": "social.colibri.beta.actor.defs#profileView",
          "type": "ref",
          "description": "The member."
        },
        "roles": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "record-key",
            "description": "A role."
          },
          "description": "Roles held, highest first."
        },
        "joinedAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the member was admitted."
        },
        "nickname": {
          "type": "string",
          "maxLength": 32,
          "description": "Per-community display name override."
        }
      },
      "description": "An admitted community member."
    },
    "channelView": {
      "type": "object",
      "required": [
        "space",
        "type",
        "name",
        "viewer"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The channel's name."
        },
        "type": {
          "type": "string",
          "description": "The channel's space type.",
          "knownValues": [
            "social.colibri.beta.channel.text",
            "social.colibri.beta.channel.voice"
          ]
        },
        "space": {
          "type": "string",
          "format": "space-ref",
          "description": "The channel's space, which is its identity."
        },
        "viewer": {
          "ref": "#channelViewerState",
          "type": "ref",
          "description": "The requesting user's access to this channel."
        },
        "private": {
          "type": "boolean",
          "description": "Whether the channel restricts who may read it, rather than only who may post."
        },
        "category": {
          "type": "string",
          "format": "record-key",
          "description": "The category this channel is listed under."
        },
        "ownerOnly": {
          "type": "boolean",
          "description": "Whether only admins may post."
        },
        "linkEmbeds": {
          "type": "boolean",
          "description": "Whether link previews are shown here."
        },
        "description": {
          "type": "string",
          "description": "The channel's topic."
        },
        "allowedRoles": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "record-key",
            "description": "A role."
          },
          "description": "Roles allowed to post."
        },
        "migratedFrom": {
          "type": "string",
          "format": "at-uri",
          "description": "The legacy channel whose history is served alongside this one."
        },
        "allowedMembers": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "did",
            "description": "A member."
          },
          "description": "Members allowed to post."
        },
        "visibleToRoles": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "record-key",
            "description": "A role."
          },
          "description": "Roles that may read this channel. Empty means every member may."
        },
        "visibleToMembers": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "did",
            "description": "A member."
          },
          "description": "Members that may read this channel beyond visibleToRoles."
        }
      },
      "description": "A channel as the AppView serves it. The channel's identity is its space."
    },
    "viewerState": {
      "type": "object",
      "required": [
        "isMember"
      ],
      "properties": {
        "roles": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "record-key",
            "description": "A role the user holds."
          },
          "description": "Roles the user holds."
        },
        "isOwner": {
          "type": "boolean",
          "description": "Whether the user holds a protected role."
        },
        "isBanned": {
          "type": "boolean",
          "description": "Whether the user is banned."
        },
        "isMember": {
          "type": "boolean",
          "description": "Whether the user holds a member record."
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "A permission identifier."
          },
          "description": "Effective community-wide permissions."
        },
        "applicationPending": {
          "type": "boolean",
          "description": "Whether the user has an unapproved application."
        }
      },
      "description": "The requesting user's relationship to a community."
    },
    "categoryView": {
      "type": "object",
      "required": [
        "rkey",
        "name",
        "channels"
      ],
      "properties": {
        "name": {
          "type": "string",
          "description": "The category's name."
        },
        "rkey": {
          "type": "string",
          "format": "record-key",
          "description": "The category's record key."
        },
        "channels": {
          "type": "array",
          "items": {
            "ref": "#channelView",
            "type": "ref"
          },
          "description": "Channels in display order."
        }
      },
      "description": "A category and the channels in it."
    },
    "communityView": {
      "type": "object",
      "required": [
        "did",
        "handle",
        "name",
        "requiresApprovalToJoin",
        "linkEmbeds",
        "viewer"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did",
          "description": "The community's DID, which is the authority for all of its spaces."
        },
        "name": {
          "type": "string",
          "description": "The community's name."
        },
        "banner": {
          "type": "string",
          "format": "uri",
          "description": "URL of the community's banner, served by this AppView's blob proxy."
        },
        "handle": {
          "type": "string",
          "format": "handle",
          "description": "The community's handle."
        },
        "viewer": {
          "ref": "#viewerState",
          "type": "ref",
          "description": "The requesting user's relationship to this community."
        },
        "picture": {
          "type": "string",
          "format": "uri",
          "description": "URL of the community's icon, served by this AppView's blob proxy."
        },
        "labelers": {
          "type": "array",
          "items": {
            "type": "string",
            "format": "did",
            "description": "A labeler."
          },
          "description": "DIDs whose labels this community honours."
        },
        "linkEmbeds": {
          "type": "boolean",
          "description": "Whether link previews are shown by default."
        },
        "description": {
          "type": "string",
          "description": "The community's description."
        },
        "memberCount": {
          "type": "integer",
          "description": "Number of admitted members."
        },
        "migratedFrom": {
          "type": "string",
          "format": "at-uri",
          "description": "The repo-backed community this one replaces, if any."
        },
        "requiresApprovalToJoin": {
          "type": "boolean",
          "description": "Whether joining produces an application to approve."
        }
      },
      "description": "A community as the AppView serves it."
    },
    "invitationView": {
      "type": "object",
      "required": [
        "code",
        "createdBy",
        "active",
        "createdAt"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "The invitation code."
        },
        "uses": {
          "type": "integer",
          "description": "How many times it has been redeemed."
        },
        "active": {
          "type": "boolean",
          "description": "Whether it can still be redeemed."
        },
        "maxUses": {
          "type": "integer",
          "description": "How many times it may be redeemed, if limited."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "When it was created."
        },
        "createdBy": {
          "type": "string",
          "format": "did",
          "description": "Who created it."
        },
        "expiresAt": {
          "type": "string",
          "format": "datetime",
          "description": "When it stops being redeemable, if ever."
        }
      },
      "description": "An invitation code."
    },
    "moderationView": {
      "type": "object",
      "required": [
        "rkey",
        "action",
        "subject",
        "createdBy",
        "createdAt"
      ],
      "properties": {
        "rkey": {
          "type": "string",
          "format": "record-key",
          "description": "The log entry's record key."
        },
        "action": {
          "type": "string",
          "description": "The action taken.",
          "knownValues": [
            "ban",
            "unban",
            "kick"
          ]
        },
        "reason": {
          "type": "string",
          "maxLength": 512,
          "description": "Human-readable reason."
        },
        "subject": {
          "ref": "social.colibri.beta.actor.defs#profileView",
          "type": "ref",
          "description": "Who it was taken against."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "When it was taken."
        },
        "createdBy": {
          "type": "string",
          "format": "did",
          "description": "Which moderator took it."
        }
      },
      "description": "An entry in a community's moderation log."
    },
    "applicationView": {
      "type": "object",
      "required": [
        "actor",
        "createdAt",
        "dismissed"
      ],
      "properties": {
        "actor": {
          "ref": "social.colibri.beta.actor.defs#profileView",
          "type": "ref",
          "description": "The applicant."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the application was made."
        },
        "dismissed": {
          "type": "boolean",
          "description": "Whether a moderator has hidden this from the active queue."
        }
      },
      "description": "A pending request to join a community that requires approval."
    },
    "bannedActorView": {
      "type": "object",
      "required": [
        "actor",
        "bannedBy",
        "bannedAt"
      ],
      "properties": {
        "actor": {
          "ref": "social.colibri.beta.actor.defs#profileView",
          "type": "ref",
          "description": "The banned member."
        },
        "reason": {
          "type": "string",
          "maxLength": 512,
          "description": "Why they were banned."
        },
        "bannedAt": {
          "type": "string",
          "format": "datetime",
          "description": "When the ban took effect."
        },
        "bannedBy": {
          "type": "string",
          "format": "did",
          "description": "Which moderator banned them."
        }
      },
      "description": "A member who is currently banned from a community. Derived from the moderation log, which records bans and unbans as separate entries."
    },
    "channelViewerState": {
      "type": "object",
      "required": [
        "canRead",
        "canPost"
      ],
      "properties": {
        "canPost": {
          "type": "boolean",
          "description": "Whether the user may post in this channel."
        },
        "canRead": {
          "type": "boolean",
          "description": "Whether the user may read this channel."
        },
        "permissions": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "A permission identifier."
          },
          "description": "Effective permissions in this channel, after per-channel role overrides."
        }
      },
      "description": "The requesting user's access to a channel."
    },
    "roleChannelOverride": {
      "type": "object",
      "required": [
        "channel"
      ],
      "properties": {
        "deny": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "A permission identifier."
          },
          "description": "Permissions denied here."
        },
        "allow": {
          "type": "array",
          "items": {
            "type": "string",
            "description": "A permission identifier."
          },
          "description": "Permissions granted here."
        },
        "channel": {
          "type": "string",
          "format": "record-key",
          "description": "The channel's space key."
        }
      },
      "description": "Allow and deny lists scoped to one channel."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against social.colibri.beta.community.defs

Validation Options
Automatically resolve and include external schemas for full validation
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:mprdjqjluoswa7awzggaggj3
CID
bafyreihblzvuk445s36js5lbt4oebylpbimhg4y6dmnvusz22irnsvydd4
Indexed At
2026-08-23 12:32 UTC
AT-URI
at://did:plc:mprdjqjluoswa7awzggaggj3/com.atproto.lexicon.schema/social.colibri.beta.community.defs

Version History (3 versions)

Referenced Schemas (1)

Lexicon Garden

@