social.colibri.beta.community.authorizeHost

Starts a sign-in as a community host account. The requesting user opens the returned URL, signs in as that account on its own server and allows the AppView to act for it. The AppView then adopts the account as a new community, or reconnects an existing community after its sign-in lapsed or its account moved. Poll getHostAuthorization with the returned request to learn the outcome.

Repository @colibri.social did:plc:mprdjqjluoswa7awzggaggj3 namespace authority
Details · procedure
Kindprocedure
Authoritycommunity.beta.colibri.social
Indexed
cid bafyreihw2q4mhuktmnz5t5gegt5six6mbttz5th773bcgt7an454wfns4u

Checks

Valid
  • unlimited-string defs.main.input.schema.properties.identifierNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.input.schema.properties.intentNo maxLength, maxGraphemes or format limits this string.
  • unlimited-string defs.main.output.schema.properties.requestNo maxLength, maxGraphemes or format limits this string.
JSONDownload
{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Starts a sign-in as a community host account. The requesting user opens the returned URL, signs in as that account on its own server and allows the AppView to act for it. The AppView then adopts the account as a new community, or reconnects an existing community after its sign-in lapsed or its account moved. Poll getHostAuthorization with the returned request to learn the outcome.",
      "errors": [
        {
          "description": "The request is missing, malformed, or unverifiable service auth.",
          "name": "AuthRequired"
        },
        {
          "description": "The requesting user lacks permission for this community.",
          "name": "Forbidden"
        },
        {
          "description": "The arguments are inconsistent or malformed beyond schema validation.",
          "name": "InvalidRequest"
        },
        {
          "description": "No community exists at that identifier.",
          "name": "CommunityNotFound"
        },
        {
          "description": "That account already hosts a community on this AppView.",
          "name": "AlreadyExists"
        },
        {
          "description": "This AppView has no host sign-in configured.",
          "name": "HostSignInUnavailable"
        },
        {
          "description": "A PDS or third-party call the AppView depends on failed.",
          "name": "UpstreamFailure"
        }
      ],
      "input": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "community": {
              "description": "The community to reconnect. Required when intent is reconnect.",
              "format": "did",
              "type": "string"
            },
            "description": {
              "description": "The new community's description.",
              "maxLength": 256,
              "type": "string"
            },
            "identifier": {
              "description": "The handle or DID of the account to sign in as.",
              "type": "string"
            },
            "intent": {
              "description": "adopt turns the account into a new community. reconnect restores the AppView's access to an existing community.",
              "knownValues": [
                "adopt",
                "reconnect"
              ],
              "type": "string"
            },
            "name": {
              "description": "The new community's name. Required when intent is adopt.",
              "maxLength": 32,
              "minLength": 1,
              "type": "string"
            },
            "requiresApprovalToJoin": {
              "description": "Whether joining the new community produces an application a moderator must approve. Defaults to false.",
              "type": "boolean"
            }
          },
          "required": [
            "identifier",
            "intent"
          ],
          "type": "object"
        }
      },
      "output": {
        "encoding": "application/json",
        "schema": {
          "properties": {
            "authorizeUrl": {
              "description": "The sign-in page to open in a browser.",
              "format": "uri",
              "type": "string"
            },
            "request": {
              "description": "An opaque identifier for this sign-in, used with getHostAuthorization.",
              "type": "string"
            }
          },
          "required": [
            "authorizeUrl",
            "request"
          ],
          "type": "object"
        }
      },
      "type": "procedure"
    }
  },
  "id": "social.colibri.beta.community.authorizeHost",
  "lexicon": 1
}