dev.knotless.joinOrg

lexicons.knotless.dev

{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Refused when the organization did not invite the caller, the caller keeps no membership record naming it, or the invitation lapsed.",
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "org": {
              "description": "The organization.",
              "format": "did",
              "type": "string"
            },
            "visibility": {
              "description": "Which of the caller's membership records counts, should they keep one in public and one in the organization's space, as they do moving it: a hidden one, if asked for; else a public one first.",
              "knownValues": [
                "public",
                "hidden"
              ],
              "maxLength": 64,
              "type": "string"
            }
          },
          "required": [
            "org"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "org": {
              "description": "The organization's handle, or its DID when none resolves back to it.",
              "maxLength": 300,
              "type": "string"
            },
            "role": {
              "description": "The caller's role in it.",
              "knownValues": [
                "admin",
                "member"
              ],
              "maxLength": 64,
              "type": "string"
            },
            "visibility": {
              "description": "Who sees the membership: anyone, or the organization's members.",
              "knownValues": [
                "public",
                "hidden"
              ],
              "maxLength": 64,
              "type": "string"
            }
          },
          "required": [
            "org",
            "role",
            "visibility"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "description": "Takes the caller into an organization that invited them, once they keep a dev.knotless.membership record naming it, through the gateway the organization delegated writes to: names them in its public record when their membership record is public, and only in its space when it is in their repo there; lets them read its space and its private repositories. Called again after moving the record, it changes how the membership shows. Refused when the invitation lapsed. Requires a service token from the caller's PDS, audience the gateway's DID, for this method.",
  "id": "dev.knotless.joinOrg",
  "lexicon": 1
}

Validate Record

Validate a record against dev.knotless.joinOrg

Validation Options
Treat any remaining unresolved references as valid

Metadata

DID
did:plc:yqsg7znbbhfmj3a2nrpnaerk
CID
bafyreiftatzjlecexuw7duby5x2owch4seiwzfiqgye44ygtshma7sl3iq
Indexed At
2026-10-29 17:01 UTC
AT-URI
at://did:plc:yqsg7znbbhfmj3a2nrpnaerk/com.atproto.lexicon.schema/dev.knotless.joinOrg

Version History (2 versions)

Similar Lexicons

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • Invites an account to an organization, or changes a member's role, through the gateway the organization delegated writes to, which writes as the organization. The caller must be an admin of it who joined. Requires a ser…

  • Joins an organization as the account logged in to this appview's pages, or shows or hides that membership, as `knotless org join` does.

  • An organization's members on knotless.

  • Invites an account to an organization as the account logged in to this appview's pages, or changes its role, as `knotless org add` does.

  • An organization's side of its membership: an account it invited, and their roles.

Lexicon Garden

@