full diff

social.colibri.beta.community.migrate

colibri.social +7 −3
From
bafyreidenb6x2yfonkhgdb5mui4ww476uo5al4gpphzuf3vyoj7jkzfyvq indexed 2026-08-23 17:25 UTC View this version
To
bafyreicxpyt33vqainpbwc5d7jdx3m3eg3radpwlee2v6xr5wh72ctknpm indexed 2026-10-22 14:03 UTC View this version

Compatibility

breaking 3 breaking changes, 2 non-breaking changes.

Breaking changes (3)
  • RemovedVertex RemovedVertex { vertex_id: "social.colibri.beta.community.defs#communityView" }
  • RemovedEdge RemovedEdge { src: "social.colibri.beta.community.migrate:output.community", tgt: "social.colibri.beta.community.defs#communityView", kind: "ref", name: None }
  • ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.beta.community.migrate:output.community", sort: "ref", old_value: "social.colibri.beta.community.defs#communityView", new_value: "social.colibri.beta.community.defs#legacyCommunityView" }
Non-breaking changes (2)
  • AddedVertex AddedVertex { vertex_id: "social.colibri.beta.community.defs#legacyCommunityView" }
  • AddedEdge AddedEdge { src: "social.colibri.beta.community.migrate:output.community", tgt: "social.colibri.beta.community.defs#legacyCommunityView", kind: "ref", name: None }

Migration guidance

Removed

  • RemovedVertex { vertex_id: "social.colibri.beta.community.defs#communityView" }

Added

  • AddedVertex { vertex_id: "social.colibri.beta.community.defs#legacyCommunityView" }

Constraint changes

  • ConstraintTightened ConstraintTightened { vertex_id: "social.colibri.beta.community.migrate:output.community", sort: "ref", old_value: "social.colibri.beta.community.defs#communityView", new_value: "social.colibri.beta.community.defs#legacyCommunityView" }

Notes

  • Breaking: RemovedEdge { src: "social.colibri.beta.community.migrate:output.community", tgt: "social.colibri.beta.community.defs#communityView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.colibri.beta.community.migrate:output.community", tgt: "social.colibri.beta.community.defs#legacyCommunityView", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
5 "description": "Migrates a repo-backed community onto spaces. Structure is recreated in new spaces and stamped with migratedFrom. Message history stays in the legacy public repos and is served alongside, because messages live in their authors' repos and only their authors can move them.",
5 "description": "Starts moving a repo-backed community onto spaces and returns once the move is queued. Structure, roles, members and bans are recreated in spaces stamped with migratedFrom. Message history of current members is copied from their public repos and served alongside as read-only legacy messages. The move runs in the background and reports progress through social.colibri.beta.sync.defs#communityProgressEvent. Calling it again while it runs returns the current state, and calling it after a failed attempt resumes from the last finished step.",
66 "errors": [
77 {
88 "description": "The request is missing, malformed, or unverifiable service auth.",
99 "name": "AuthRequired"
1010 },
1111 {
1212 "description": "The requesting user lacks permission to migrate this community.",
1313 "name": "Forbidden"
1414 },
1515 {
1616 "description": "No community exists at the legacy record's DID.",
1717 "name": "CommunityNotFound"
1818 },
1919 {
2020 "description": "This legacy community has already been migrated.",
2121 "name": "AlreadyExists"
2222 },
2323 {
24 "description": "The community cannot move onto spaces, for example because it lives inside its owner's repo.",
25 "name": "NotMigratable"
26 },
27 {
2428 "description": "The AppView's stored credentials for this community are missing or unusable.",
2529 "name": "CredentialsUnavailable"
2630 },
2731 {
2832 "description": "A PDS or third-party call the AppView depends on failed.",
2933 "name": "UpstreamFailure"
3034 }
3135 ],
3236 "input": {
3337 "encoding": "application/json",
3438 "schema": {
3539 "properties": {
3640 "community": {
3741 "description": "The legacy community to migrate, by handle or DID. Only a community that holds its own DID can be migrated, so the DID is the whole address: the record to read is always social.colibri.community at self in that repo.",
3842 "format": "at-identifier",
3943 "type": "string"
4044 }
4145 },
4246 "required": [
4347 "community"
4448 ],
4549 "type": "object"
4650 }
4751 },
4852 "output": {
4953 "encoding": "application/json",
5054 "schema": {
5155 "properties": {
5256 "community": {
53 "description": "The newly created, space-backed community.",
54 "ref": "social.colibri.beta.community.defs#communityView",
57 "description": "The legacy community, in state migrating with its progress.",
58 "ref": "social.colibri.beta.community.defs#legacyCommunityView",
5559 "type": "ref"
5660 }
5761 },
5862 "required": [
5963 "community"
6064 ],
6165 "type": "object"
6266 }
6367 },
6468 "type": "procedure"
6569 }
6670 },
6771 "id": "social.colibri.beta.community.migrate",
6872 "lexicon": 1
6973}

Compare other versions