Back to Simocracy

org.simocracy.alias

A globally unique URL slug pointing at a gathering or sim. Written by the facilitator account so that PDS-level rkey uniqueness inside the facilitator's repo gives us a single global namespace. The rkey IS the slug — there is at most one alias record per slug across the entire platform.

record · key any

A globally unique URL slug pointing at a gathering or sim. Written by the facilitator account so that PDS-level rkey uniqueness inside the facilitator's repo gives us a single global namespace. The rkey IS the slug — there is at most one alias record per slug across the entire platform.

slug*

URL-safe slug. Must equal the rkey of this record. Lowercase letters, digits, and hyphens only; no leading or trailing hyphen. Mirrored as a field so consumers that don't expose rkey can still read the slug.

string · min 2 · max 64
kind*

Which collection the target lives in. Used by routers to decide whether the alias resolves under /events/<slug> or /sims/<slug>.

string
values: gathering · sim
target*

StrongRef to the gathering or sim record this slug points to.

strongRef
owner*

DID of the user who claimed this slug. Must equal the DID in the target record's repo. Used for authorising release without re-fetching the target.

did
createdAt*

Timestamp when the alias was claimed.

datetime
Raw lexicon JSON
{
  "lexicon": 1,
  "id": "org.simocracy.alias",
  "defs": {
    "main": {
      "type": "record",
      "description": "A globally unique URL slug pointing at a gathering or sim. Written by the facilitator account so that PDS-level rkey uniqueness inside the facilitator's repo gives us a single global namespace. The rkey IS the slug — there is at most one alias record per slug across the entire platform.",
      "key": "any",
      "record": {
        "type": "object",
        "required": [
          "slug",
          "kind",
          "target",
          "owner",
          "createdAt"
        ],
        "properties": {
          "slug": {
            "type": "string",
            "minLength": 2,
            "maxLength": 64,
            "description": "URL-safe slug. Must equal the rkey of this record. Lowercase letters, digits, and hyphens only; no leading or trailing hyphen. Mirrored as a field so consumers that don't expose rkey can still read the slug."
          },
          "kind": {
            "type": "string",
            "knownValues": [
              "gathering",
              "sim"
            ],
            "description": "Which collection the target lives in. Used by routers to decide whether the alias resolves under /events/<slug> or /sims/<slug>."
          },
          "target": {
            "type": "ref",
            "ref": "com.atproto.repo.strongRef",
            "description": "StrongRef to the gathering or sim record this slug points to."
          },
          "owner": {
            "type": "string",
            "format": "did",
            "description": "DID of the user who claimed this slug. Must equal the DID in the target record's repo. Used for authorising release without re-fetching the target."
          },
          "createdAt": {
            "type": "string",
            "format": "datetime",
            "description": "Timestamp when the alias was claimed."
          }
        }
      }
    }
  }
}
org.simocracy.alias