full diff

fyi.opensocial.updateSpace

From
bafyreibfewerefrwewxyracwtjo7iohbxulwx4cigitgskqnfmjp5imti4 indexed 2026-10-08 18:10 UTC View this version
To
bafyreidigyuyubfxgyuqjhlpx63djdv25ycklmp3ofb7xa24rb4yjftsoi indexed 2026-11-05 16:25 UTC View this version

Compatibility

breaking 16 breaking changes, 6 non-breaking changes.

Breaking changes (16)
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.access#roleScopes" }
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.credentialScopes" }
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.credentialScopes:items" }
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.readableBy" }
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.readableBy:items" }
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.writableBy" }
  • RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.writableBy:items" }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.credentialScopes", kind: "prop", name: Some("credentialScopes") }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.readableBy", kind: "prop", name: Some("readableBy") }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.writableBy", kind: "prop", name: Some("writableBy") }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input.credentialScopes", tgt: "fyi.opensocial.updateSpace:input.credentialScopes:items", kind: "items", name: None }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input.credentialScopes:items", tgt: "fyi.opensocial.access#roleScopes", kind: "ref", name: None }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input.readableBy", tgt: "fyi.opensocial.updateSpace:input.readableBy:items", kind: "items", name: None }
  • RemovedEdge RemovedEdge { src: "fyi.opensocial.updateSpace:input.writableBy", tgt: "fyi.opensocial.updateSpace:input.writableBy:items", kind: "items", name: None }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.updateSpace:input.name", sort: "maxGraphemes", value: "64" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.updateSpace:input.name", sort: "maxLength", value: "640" }
Non-breaking changes (6)
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#accessConfig" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateSpace:input.access" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateSpace:output" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.updateSpace", tgt: "fyi.opensocial.updateSpace:output", kind: "prop", name: Some("output") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.access", kind: "prop", name: Some("access") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.updateSpace:input.access", tgt: "fyi.opensocial.defs#accessConfig", kind: "ref", name: None }

Migration guidance

Removed

  • RemovedVertex { vertex_id: "fyi.opensocial.access#roleScopes" }
  • RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.credentialScopes" }
  • RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.credentialScopes:items" }
  • RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.readableBy" }
  • RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.readableBy:items" }
  • RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.writableBy" }
  • RemovedVertex { vertex_id: "fyi.opensocial.updateSpace:input.writableBy:items" }

Added

  • AddedVertex { vertex_id: "fyi.opensocial.defs#accessConfig" }
  • AddedVertex { vertex_id: "fyi.opensocial.updateSpace:input.access" }
  • AddedVertex { vertex_id: "fyi.opensocial.updateSpace:output" }

Constraint changes

  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.updateSpace:input.name", sort: "maxLength", value: "640" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.updateSpace:input.name", sort: "maxGraphemes", value: "64" }

Notes

  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.credentialScopes", kind: "prop", name: Some("credentialScopes") }
  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.readableBy", kind: "prop", name: Some("readableBy") }
  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.writableBy", kind: "prop", name: Some("writableBy") }
  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input.credentialScopes", tgt: "fyi.opensocial.updateSpace:input.credentialScopes:items", kind: "items", name: None }
  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input.credentialScopes:items", tgt: "fyi.opensocial.access#roleScopes", kind: "ref", name: None }
  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input.readableBy", tgt: "fyi.opensocial.updateSpace:input.readableBy:items", kind: "items", name: None }
  • Breaking: RemovedEdge { src: "fyi.opensocial.updateSpace:input.writableBy", tgt: "fyi.opensocial.updateSpace:input.writableBy:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.updateSpace", tgt: "fyi.opensocial.updateSpace:output", kind: "prop", name: Some("output") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.updateSpace:input", tgt: "fyi.opensocial.updateSpace:input.access", kind: "prop", name: Some("access") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.updateSpace:input.access", tgt: "fyi.opensocial.defs#accessConfig", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
5 "description": "Change a space's config: its name, who can read it, and which roles may act as the group in it. Requires space.configure.",
5 "description": "Change a space: its name in the group's index, and its access record, replaced whole. Requires space.configure.",
6 "errors": [
7 {
8 "description": "The group has no such space, or, to name it, none in its index.",
9 "name": "SpaceNotFound"
10 },
11 {
12 "description": "A grant names a role that doesn't exist.",
13 "name": "UnknownRole"
14 },
15 {
16 "description": "A grant isn't a space scope.",
17 "name": "InvalidScope"
18 }
19 ],
620 "input": {
721 "encoding": "application/json",
822 "schema": {
923 "properties": {
10 "credentialScopes": {
11 "description": "Replace which roles may act as the group in this space, and for which collections. Omitted means unchanged.",
12 "items": {
13 "ref": "fyi.opensocial.access#roleScopes",
14 "type": "ref"
15 },
16 "type": "array"
24 "access": {
25 "description": "The access record the space has now. Omitted means unchanged.",
26 "ref": "fyi.opensocial.defs#accessConfig",
27 "type": "ref"
1728 },
1829 "group": {
1930 "description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",
2031 "format": "did",
2132 "type": "string"
2233 },
2334 "name": {
35 "description": "What the group calls it, kept in its index entry.",
36 "maxGraphemes": 64,
37 "maxLength": 640,
2438 "type": "string"
2539 },
26 "readableBy": {
27 "items": {
28 "type": "string"
29 },
30 "type": "array"
31 },
3240 "space": {
3341 "format": "space-ref",
3442 "type": "string"
35 },
36 "writableBy": {
37 "description": "Who may write into the space in their own name: role ids, or 'public' for anyone signed in. Absent is any member. Empty puts it back to any member.",
38 "items": {
39 "type": "string"
40 },
41 "type": "array"
4243 }
4344 },
4445 "required": [
4546 "group",
4647 "space"
4748 ],
4849 "type": "object"
4950 }
5051 },
52 "output": {
53 "encoding": "application/json",
54 "schema": {
55 "properties": {},
56 "type": "object"
57 }
58 },
5159 "type": "procedure"
5260 }
5361 },
5462 "id": "fyi.opensocial.updateSpace",
5563 "lexicon": 1
5664}

Compare other versions