social.colibri.beta.thread

A thread's configuration, including the link to the channel it belongs to. Lives at key 'self' in the thread's own space and is written only by the community.

Repository @colibri.social did:plc:mprdjqjluoswa7awzggaggj3 namespace authority
Details · record, key literal:self
Kindrecord
Record keyliteral:self
Authoritybeta.colibri.social
Indexed
cid bafyreidzzftsusudmllzjs75p2rbqavliszduvzh2soah37343fukzqk24

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A thread's configuration, including the link to the channel it belongs to. Lives at key 'self' in the thread's own space and is written only by the community.",
      "key": "literal:self",
      "record": {
        "properties": {
          "anchor": {
            "description": "The message the thread was opened from. Absent on a thread opened from scratch. Its space stays where the thread was opened even after the thread moves to another channel, which is what drops the thread's marker out of the old channel without losing the quoted message.",
            "ref": "social.colibri.beta.defs#spaceRecordRef",
            "type": "ref"
          },
          "bridged": {
            "description": "Who opened this thread on another service. Honoured only when the community itself wrote the record.",
            "ref": "social.colibri.beta.bridge.defs#attribution",
            "type": "ref"
          },
          "channel": {
            "description": "The text channel this thread belongs to. Moving the thread to another channel rewrites this field.",
            "format": "space-ref",
            "type": "string"
          },
          "closedAt": {
            "description": "When the thread was closed. Absent on an open thread. A closed thread still accepts messages, and the next one reopens it.",
            "format": "datetime",
            "type": "string"
          },
          "createdAt": {
            "description": "When the thread was opened.",
            "format": "datetime",
            "type": "string"
          },
          "createdBy": {
            "description": "Who opened the thread.",
            "format": "did",
            "type": "string"
          },
          "locked": {
            "description": "Whether only members who may manage threads can write in this thread. Absent means unlocked.",
            "type": "boolean"
          },
          "name": {
            "description": "The thread's title.",
            "maxLength": 128,
            "minLength": 1,
            "type": "string"
          },
          "visibleToMembers": {
            "description": "Members that may read this thread in addition to visibleToRoles.",
            "items": {
              "description": "A member permitted to read.",
              "format": "did",
              "type": "string"
            },
            "type": "array"
          },
          "visibleToRoles": {
            "description": "Roles that may read this thread. Empty or absent means everyone who can read the parent channel can read the thread. A non-empty list makes the thread 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.",
            "items": {
              "description": "A role permitted to read.",
              "format": "record-key",
              "type": "string"
            },
            "type": "array"
          }
        },
        "required": [
          "name",
          "channel",
          "createdBy",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "social.colibri.beta.thread",
  "lexicon": 1
}