chat.yakka.resolveChannel

Resolve a URL's channel segment, which may be a name or a TID. Called by the client's route guard before anything renders. The five outcomes are distinct on purpose. Collapsing them would either lie about deleted channels or hide gated ones, and both are facts a reader is entitled to. `forbidden` deliberately reveals that a channel exists — which is safe only because channels are whole spaces and the credential mint has already made the same disclosure (ADR 0007).

Repository @yakka.chat did:plc:wpjoy2orkqq5m65vq7gg7liz namespace authority
Details · query
Kindquery
Authorityyakka.chat
Indexed
cid bafyreihnbno5my7zvoyfaifztguptwssbkzzbxizf6fdc5qbrwwttbighq

Checks

Valid
  • unlimited-string defs.main.parameters.properties.refNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.output.properties.kindNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.output.properties.nameNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Resolve a URL's channel segment, which may be a name or a TID. Called by the client's route guard before anything renders.\n\nThe five outcomes are distinct on purpose. Collapsing them would either lie about deleted channels or hide gated ones, and both are facts a reader is entitled to. `forbidden` deliberately reveals that a channel exists — which is safe only because channels are whole spaces and the credential mint has already made the same disclosure (ADR 0007).",
      "output": {
        "encoding": "application/json",
        "schema": {
          "ref": "#output",
          "type": "ref"
        }
      },
      "parameters": {
        "properties": {
          "ref": {
            "description": "A channel name or a channel TID.",
            "type": "string"
          },
          "server": {
            "description": "The server's DID.",
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "server",
          "ref"
        ],
        "type": "params"
      },
      "type": "query"
    },
    "output": {
      "properties": {
        "channel": {
          "ref": "chat.yakka.defs#channelView",
          "type": "ref"
        },
        "kind": {
          "description": "`renamed` means the ref matched by TID rather than by name — the caller should redirect to the name it now has.",
          "knownValues": [
            "ok",
            "renamed",
            "forbidden",
            "gone",
            "notFound"
          ],
          "type": "string"
        },
        "name": {
          "description": "The name a `gone` channel had, so a tombstone can say what it was.",
          "type": "string"
        }
      },
      "required": [
        "kind"
      ],
      "type": "object"
    }
  },
  "id": "chat.yakka.resolveChannel",
  "lexicon": 1
}