com.getorbyt.community.defs

getorbyt.com

{
  "id": "com.getorbyt.community.defs",
  "defs": {
    "rule": {
      "type": "object",
      "required": [
        "text"
      ],
      "properties": {
        "text": {
          "type": "string",
          "maxLength": 500
        }
      },
      "description": "One Community rule. An object rather than a bare string so a title, an ordinal or a createdAt can be added later without a schema break."
    },
    "view": {
      "type": "object",
      "required": [
        "uri",
        "cid",
        "name",
        "ownerDid",
        "createdAt"
      ],
      "properties": {
        "cid": {
          "type": "string",
          "format": "cid"
        },
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "name": {
          "type": "string",
          "maxLength": 63,
          "minLength": 2
        },
        "rules": {
          "type": "array",
          "items": {
            "ref": "#rule",
            "type": "ref"
          },
          "maxLength": 20
        },
        "avatar": {
          "type": "string",
          "format": "uri"
        },
        "labels": {
          "type": "array",
          "items": {
            "ref": "com.atproto.label.defs#label",
            "type": "ref"
          },
          "description": "Labels applied to this Community. Clients moderate against these exactly as they do app.bsky.feed.defs#postView labels."
        },
        "viewer": {
          "ref": "#viewerState",
          "type": "ref"
        },
        "ownerDid": {
          "type": "string",
          "format": "did",
          "description": "The account whose repository holds the Community declaration record. Clients hydrate it to a profile through their authenticated Bluesky AppView."
        },
        "createdAt": {
          "type": "string",
          "format": "datetime"
        },
        "postCount": {
          "type": "integer",
          "minimum": 0
        },
        "updatedAt": {
          "type": "string",
          "format": "datetime"
        },
        "postPolicy": {
          "type": "string",
          "description": "The raw value its owner wrote, not the value this service resolved. Absent means anyone, which is also how a server that predates this field behaves.",
          "knownValues": [
            "anyone",
            "members",
            "moderators"
          ]
        },
        "accentColor": {
          "type": "string",
          "maxLength": 32
        },
        "description": {
          "type": "string",
          "maxLength": 2000
        },
        "memberCount": {
          "type": "integer",
          "minimum": 0
        }
      },
      "description": "A hydrated Community. Only the fields that identify the Community are required; counts and viewer state are optional so a cheaper view can omit them without a schema break."
    },
    "feedItem": {
      "type": "object",
      "required": [
        "post"
      ],
      "properties": {
        "post": {
          "type": "string",
          "format": "at-uri",
          "description": "The linked app.bsky.feed.post URI. Clients hydrate it through their authenticated Bluesky AppView."
        },
        "pinned": {
          "type": "boolean",
          "default": false
        },
        "status": {
          "type": "string",
          "description": "Community-level state; absent means visible. `removed` is a moderator removal scoped to this Community; the underlying app.bsky.feed.post remains live on the network. Only the author and Community moderators receive removed items.",
          "knownValues": [
            "visible",
            "removed"
          ]
        },
        "removedAt": {
          "type": "string",
          "format": "datetime"
        },
        "removedBy": {
          "type": "string",
          "format": "did"
        },
        "removedReason": {
          "type": "string",
          "maxLength": 1000,
          "description": "Present only for the post author and Community moderators."
        }
      }
    },
    "memberView": {
      "type": "object",
      "required": [
        "did"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did"
        },
        "role": {
          "type": "string",
          "description": "Absent means member.",
          "knownValues": [
            "owner",
            "moderator",
            "member"
          ]
        },
        "status": {
          "type": "string",
          "description": "Absent means active.",
          "knownValues": [
            "active",
            "muted",
            "banned"
          ]
        },
        "joinedAt": {
          "type": "string",
          "format": "datetime"
        },
        "membershipUri": {
          "type": "string",
          "format": "at-uri"
        }
      }
    },
    "viewerState": {
      "type": "object",
      "properties": {
        "role": {
          "type": "string",
          "knownValues": [
            "owner",
            "moderator",
            "member"
          ]
        },
        "canPost": {
          "type": "boolean",
          "default": false
        },
        "canManage": {
          "type": "boolean",
          "default": false
        },
        "canModerate": {
          "type": "boolean",
          "default": false
        },
        "membershipUri": {
          "type": "string",
          "format": "at-uri"
        },
        "membershipStatus": {
          "type": "string",
          "description": "Absent means none.",
          "knownValues": [
            "none",
            "active",
            "muted",
            "banned"
          ]
        }
      },
      "description": "The requesting account's relationship to a Community. Every field is optional; an absent field means the viewer holds no membership and no privilege."
    },
    "writeStatus": {
      "type": "object",
      "required": [
        "uri",
        "status"
      ],
      "properties": {
        "uri": {
          "type": "string",
          "format": "at-uri"
        },
        "error": {
          "type": "string",
          "maxLength": 1000,
          "description": "Why the record was rejected. Present only for `rejected`."
        },
        "status": {
          "type": "string",
          "description": "`pending` means the record has not reached this service yet, which is the normal state for a few seconds after a write. `rejected` means it will never be indexed as written.",
          "knownValues": [
            "indexed",
            "pending",
            "rejected",
            "deleted"
          ]
        },
        "indexedAt": {
          "type": "string",
          "format": "datetime"
        }
      },
      "description": "The fate of one record the caller wrote to their own repository."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}

Validate Record

Validate a record against com.getorbyt.community.defs

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

Metadata

DID
did:plc:2xrqztnmzlckb3xfuuukupso
CID
bafyreifo5kwcblmukpxynrafqjt23cd7mb4zpsuk27ndqzmw5e23oejcqq
Indexed At
2026-08-28 23:34 UTC
AT-URI
at://did:plc:2xrqztnmzlckb3xfuuukupso/com.atproto.lexicon.schema/com.getorbyt.community.defs

Referenced Schemas (1)

Lexicon Garden

@