# social.colibri.beta.channel

> Published by [colibri.social](https://lexicon.garden/identity/did:plc:mprdjqjluoswa7awzggaggj3)

✓ This is the authoritative definition for this NSID.

## Links

- [View on Lexicon Garden](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.channel)
- [Documentation](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.channel/docs)
- [Examples](https://lexicon.garden/lexicon/did:plc:mprdjqjluoswa7awzggaggj3/social.colibri.beta.channel/examples)

## Definitions

### `social.colibri.beta.channel`

**Type**: `record`

A channel's configuration. Lives at key 'self' in the channel's own space. The space type says whether it is a text or voice channel, and the space key is the channel's identity.

**Key**: `literal:self`

| Property | Type | Required | Description |
|----------|------|----------|-------------|
| `name` | `string` | Yes | The channel's name. |
| `ownerOnly` | `boolean` | No | Whether only community admins may post. |
| `linkEmbeds` | `boolean` | No | Whether link previews are shown here. Absent means the community default. |
| `description` | `string` | No | The channel's topic. |
| `allowedRoles` | `array` | No | Roles allowed to post here. Empty means no role restriction. |
| `migratedFrom` | `string` (at-uri) | No | Set on a channel created by migrating a repo-backed community. Points at the legacy channel record whose history is served alongside this channel. |
| `allowedMembers` | `array` | No | Members allowed to post here in addition to allowedRoles. |
| `visibleToRoles` | `array` | No | Roles that may read this channel. Empty or absent means every member may read it. A non-empty list makes the channel private: the community declines space credentials for it to anyone outside the list, so it is enforced by the protocol rather than only by a read handler. |
| `visibleToMembers` | `array` | No | Members that may read this channel in addition to visibleToRoles. |

## Raw Schema

```json
{
  "id": "social.colibri.beta.channel",
  "defs": {
    "main": {
      "key": "literal:self",
      "type": "record",
      "record": {
        "type": "object",
        "required": [
          "name"
        ],
        "properties": {
          "name": {
            "type": "string",
            "maxLength": 32,
            "minLength": 1,
            "description": "The channel's name."
          },
          "ownerOnly": {
            "type": "boolean",
            "default": false,
            "description": "Whether only community admins may post."
          },
          "linkEmbeds": {
            "type": "boolean",
            "description": "Whether link previews are shown here. Absent means the community default."
          },
          "description": {
            "type": "string",
            "maxLength": 256,
            "description": "The channel's topic."
          },
          "allowedRoles": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "record-key",
              "description": "A role permitted to post."
            },
            "description": "Roles allowed to post here. Empty means no role restriction."
          },
          "migratedFrom": {
            "type": "string",
            "format": "at-uri",
            "description": "Set on a channel created by migrating a repo-backed community. Points at the legacy channel record whose history is served alongside this channel."
          },
          "allowedMembers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "did",
              "description": "A member permitted to post."
            },
            "description": "Members allowed to post here in addition to allowedRoles."
          },
          "visibleToRoles": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "record-key",
              "description": "A role permitted to read."
            },
            "description": "Roles that may read this channel. Empty or absent means every member may read it. A non-empty list makes the channel private: the community declines space credentials for it to anyone outside the list, so it is enforced by the protocol rather than only by a read handler."
          },
          "visibleToMembers": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "did",
              "description": "A member permitted to read."
            },
            "description": "Members that may read this channel in addition to visibleToRoles."
          }
        }
      },
      "description": "A channel's configuration. Lives at key 'self' in the channel's own space. The space type says whether it is a text or voice channel, and the space key is the channel's identity."
    }
  },
  "$type": "com.atproto.lexicon.schema",
  "lexicon": 1
}
```
