app.atmobb.moderation.action

A moderation action taken by a forum. Lives in the forum account's repo, making moderation portable and auditable — any appview can honor it at read time.

Details · record, key tid
Kindrecord
Record keytid
Authoritymoderation.atmobb.app
Indexed
cid bafyreieafxfzycmfhlhfaq6mf56l5qs7ynrihj2wdv4fijs6yqak5tkvey

Checks

Valid Lint pass
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "account": {
      "description": "An account as the subject of an action.",
      "properties": {
        "did": {
          "format": "did",
          "type": "string"
        }
      },
      "required": [
        "did"
      ],
      "type": "object"
    },
    "main": {
      "description": "A moderation action taken by a forum. Lives in the forum account's repo, making moderation portable and auditable — any appview can honor it at read time.",
      "key": "tid",
      "record": {
        "properties": {
          "action": {
            "knownValues": [
              "hide",
              "unhide",
              "lock",
              "unlock",
              "pin",
              "unpin",
              "ban",
              "unban",
              "warn",
              "block",
              "unblock",
              "grantAccess",
              "denyAccess",
              "revokeAccess",
              "acceptMember",
              "revokeMember",
              "holdApplication",
              "gateForum",
              "openForum",
              "awardStamp",
              "revokeStamp"
            ],
            "maxLength": 64,
            "type": "string"
          },
          "actor": {
            "description": "The staff member who performed the action, when it differs from the signing forum account.",
            "format": "did",
            "type": "string"
          },
          "board": {
            "description": "Scopes account-level actions (e.g. a ban) to one board. Absent means forum-wide.",
            "format": "at-uri",
            "type": "string"
          },
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "expiresAt": {
            "description": "When a temporary action lapses. Absent means until reversed.",
            "format": "datetime",
            "type": "string"
          },
          "mode": {
            "description": "For gateForum: the join mode entered (apply or invite). gateForum and openForum take the forum's own account as subject and mark the periods during which membership is enforced; a post written while the forum was open is served regardless of membership.",
            "knownValues": [
              "apply",
              "invite"
            ],
            "maxLength": 32,
            "type": "string"
          },
          "reason": {
            "maxGraphemes": 1000,
            "maxLength": 10000,
            "type": "string"
          },
          "ref": {
            "description": "For acceptMember, denyAccess, or holdApplication: the accessRequest record this decision answers. For awardStamp or revokeStamp: the app.atmobb.forum.stamp record being awarded to or taken from the subject account.",
            "ref": "com.atproto.repo.strongRef",
            "type": "ref"
          },
          "sponsor": {
            "description": "For acceptMember: the person who brought the subject in — the inviter, or the staffer who approved the application. Absent for founding members accepted when the forum first gated.",
            "format": "did",
            "type": "string"
          },
          "subject": {
            "refs": [
              "com.atproto.repo.strongRef",
              "#account"
            ],
            "type": "union"
          },
          "via": {
            "description": "For acceptMember: how the subject was accepted.",
            "knownValues": [
              "invite",
              "application",
              "founding"
            ],
            "maxLength": 32,
            "type": "string"
          }
        },
        "required": [
          "subject",
          "action"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "app.atmobb.moderation.action",
  "lexicon": 1
}