social.colibri.community.migrate

colibri.social

Documentation

Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise).

main procedure

Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise).

Parameters

description string Optional

No description available.

identifier string Optional

Bring-your-own DID or handle.

kind string Required

The migration to run. 'legacy-community' migrates a pre-rework community record.

name string Optional

No description available.

password string Optional

Bring-your-own account password.

pds string Optional

Bring-your-own PDS endpoint.

requiresApprovalToJoin boolean Optional

No description available.

source stringat-uri Required

The record being migrated (e.g. the legacy community).

Input

Encodingmultipart/form-data

Accepts raw binary data

Output

Encodingapplication/json
channelMap array Required

Maps each cloned channel from its old AT-URI to its new AT-URI.

community stringat-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

did stringdid Required

A decentralized identifier (DID).

Errors

AuthRequired Missing, malformed, or unverifiable service auth.
Forbidden The caller lacks the permission this method requires.
InvalidRequest A parameter or body field was missing or malformed.
NotFound The referenced record does not exist.
UpstreamFailure A service outside this AppView failed.
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "type": "procedure",
  "input": {
    "encoding": "multipart/form-data",
    "description": "Optional replacement community picture blob, as a `picture` part. Migrated communities have no banner."
  },
  "errors": [
    {
      "name": "AuthRequired",
      "description": "Missing, malformed, or unverifiable service auth."
    },
    {
      "name": "Forbidden",
      "description": "The caller lacks the permission this method requires."
    },
    {
      "name": "InvalidRequest",
      "description": "A parameter or body field was missing or malformed."
    },
    {
      "name": "NotFound",
      "description": "The referenced record does not exist."
    },
    {
      "name": "UpstreamFailure",
      "description": "A service outside this AppView failed."
    }
  ],
  "output": {
    "schema": {
      "type": "object",
      "required": [
        "did",
        "community",
        "channelMap"
      ],
      "properties": {
        "did": {
          "type": "string",
          "format": "did"
        },
        "community": {
          "type": "string",
          "format": "at-uri"
        },
        "channelMap": {
          "type": "array",
          "items": {
            "ref": "lex:social.colibri.community.migrate#channelMapping",
            "type": "ref"
          },
          "description": "Maps each cloned channel from its old AT-URI to its new AT-URI."
        }
      }
    },
    "encoding": "application/json"
  },
  "parameters": {
    "type": "params",
    "required": [
      "kind",
      "source"
    ],
    "properties": {
      "pds": {
        "type": "string",
        "description": "Bring-your-own PDS endpoint."
      },
      "kind": {
        "type": "string",
        "description": "The migration to run. 'legacy-community' migrates a pre-rework community record.",
        "knownValues": [
          "legacy-community"
        ]
      },
      "name": {
        "type": "string"
      },
      "source": {
        "type": "string",
        "format": "at-uri",
        "description": "The record being migrated (e.g. the legacy community)."
      },
      "password": {
        "type": "string",
        "description": "Bring-your-own account password."
      },
      "identifier": {
        "type": "string",
        "description": "Bring-your-own DID or handle."
      },
      "description": {
        "type": "string"
      },
      "requiresApprovalToJoin": {
        "type": "boolean"
      }
    }
  },
  "description": "Migrates a source record into a fresh community, cloning its structure and importing its members. The 'kind' discriminator selects the migration; today only legacy communities are supported, but the endpoint is designed to host future migrations. Provisioning mirrors community.create (managed when no PDS credentials are supplied, bring-your-own otherwise)."
}
channelMapping object

A single channel's old AT-URI mapped to its new AT-URI.

Properties

new string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

old string at-uri Required

An AT Protocol URI (e.g., at://did:plc:xyz/app.bsky.feed.post/abc).

View raw schema
{
  "type": "object",
  "required": [
    "old",
    "new"
  ],
  "properties": {
    "new": {
      "type": "string",
      "format": "at-uri"
    },
    "old": {
      "type": "string",
      "format": "at-uri"
    }
  },
  "description": "A single channel's old AT-URI mapped to its new AT-URI."
}

Lexicon Garden

@