full diff

fyi.opensocial.createGroup

From
bafyreiee4hrxg2dmbouj6jssa6kp3qmlxtjztyhwihfw37zqj5ybhik6qi indexed 2026-10-22 19:00 UTC View this version
To
bafyreie4chvcctr4i7qhlabvmlg2iz6sjt6cddcwfvhdjc4jmt4m2rstge indexed 2026-11-05 16:25 UTC View this version

Compatibility

breaking 6 breaking changes, 10 non-breaking changes.

Breaking changes (6)
  • KindChanged KindChanged { vertex_id: "fyi.opensocial.createGroup:input.joinPolicy", old_kind: "string", new_kind: "ref" }
  • KindChanged KindChanged { vertex_id: "fyi.opensocial.createGroup:input.metaReadableBy:items", old_kind: "string", new_kind: "ref" }
  • KindChanged KindChanged { vertex_id: "fyi.opensocial.createGroup:input.stewards:items", old_kind: "string", new_kind: "ref" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.createGroup:input.metaReadableBy:items", sort: "ref", value: "fyi.opensocial.defs#audience" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.createGroup:input.joinPolicy", sort: "ref", value: "fyi.opensocial.defs#joinPolicy" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.createGroup:input.stewards:items", sort: "ref", value: "fyi.opensocial.defs#accountRef" }
Non-breaking changes (10)
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#accountRef" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#audience" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#joinPolicy" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.createGroup:input.joinPolicy", tgt: "fyi.opensocial.defs#joinPolicy", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.createGroup:input.metaReadableBy:items", tgt: "fyi.opensocial.defs#audience", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.createGroup:input.stewards:items", tgt: "fyi.opensocial.defs#accountRef", kind: "ref", name: None }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.createGroup:input.description", sort: "maxGraphemes", old_value: "300", new_value: "2000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.createGroup:input.description", sort: "maxLength", old_value: "3000", new_value: "20000" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.createGroup:input.joinPolicy", sort: "knownValues" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.createGroup:input.stewards:items", sort: "format" }

Migration guidance

Added

  • AddedVertex { vertex_id: "fyi.opensocial.defs#accountRef" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#audience" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#joinPolicy" }

Constraint changes

  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.createGroup:input.stewards:items", sort: "ref", value: "fyi.opensocial.defs#accountRef" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.createGroup:input.joinPolicy", sort: "ref", value: "fyi.opensocial.defs#joinPolicy" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.createGroup:input.metaReadableBy:items", sort: "ref", value: "fyi.opensocial.defs#audience" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.createGroup:input.description", sort: "maxLength", old_value: "3000", new_value: "20000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.createGroup:input.description", sort: "maxGraphemes", old_value: "300", new_value: "2000" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.createGroup:input.stewards:items", sort: "format" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.createGroup:input.joinPolicy", sort: "knownValues" }

Notes

  • Breaking: KindChanged { vertex_id: "fyi.opensocial.createGroup:input.joinPolicy", old_kind: "string", new_kind: "ref" }
  • Breaking: KindChanged { vertex_id: "fyi.opensocial.createGroup:input.metaReadableBy:items", old_kind: "string", new_kind: "ref" }
  • Breaking: KindChanged { vertex_id: "fyi.opensocial.createGroup:input.stewards:items", old_kind: "string", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.createGroup:input.joinPolicy", tgt: "fyi.opensocial.defs#joinPolicy", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.createGroup:input.metaReadableBy:items", tgt: "fyi.opensocial.defs#audience", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.createGroup:input.stewards:items", tgt: "fyi.opensocial.defs#accountRef", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "Host-level: create a new group on this host. Authenticated as the founder (service auth from their PDS). The founder and any listed stewards become its first admins. Mints the group DID, creates the meta and members spaces, writes the bootstrap records and, for a discoverable group, a declaration. Modality spaces are left to the apps that use them (createSpace).",
66 "errors": [
77 {
8 "description": "The handle is not one label under this host's handle domain.",
9 "name": "InvalidHandle"
10 },
11 {
812 "name": "HandleTaken"
913 },
1014 {
15 "description": "The PLC directory did not take the group's new DID.",
16 "name": "AccountCreationFailed"
17 },
18 {
1119 "description": "This host only lets the people it names start groups, and the caller isn't one.",
1220 "name": "NotAllowed"
1321 }
1422 ],
1523 "input": {
1624 "encoding": "application/json",
1725 "schema": {
1826 "properties": {
1927 "description": {
20 "maxGraphemes": 300,
21 "maxLength": 3000,
28 "maxGraphemes": 2000,
29 "maxLength": 20000,
2230 "type": "string"
2331 },
2432 "displayName": {
2533 "maxGraphemes": 64,
2634 "maxLength": 640,
2735 "type": "string"
2836 },
2937 "handle": {
3038 "format": "handle",
3139 "type": "string"
3240 },
3341 "joinPolicy": {
34 "knownValues": [
35 "fyi.opensocial.profile#open",
36 "fyi.opensocial.profile#request",
37 "fyi.opensocial.profile#invite"
38 ],
39 "type": "string"
42 "description": "Defaults to approval.",
43 "ref": "fyi.opensocial.defs#joinPolicy",
44 "type": "ref"
4045 },
4146 "metaReadableBy": {
4247 "description": "Defaults to ['public'].",
4348 "items": {
44 "type": "string"
49 "ref": "fyi.opensocial.defs#audience",
50 "type": "ref"
4551 },
4652 "type": "array"
4753 },
4854 "stewards": {
4955 "description": "Accounts that run the group alongside the founder, as admins from the start.",
5056 "items": {
51 "format": "did",
52 "type": "string"
57 "ref": "fyi.opensocial.defs#accountRef",
58 "type": "ref"
5359 },
5460 "type": "array"
5561 }
5662 },
5763 "required": [
5864 "handle",
5965 "displayName"
6066 ],
6167 "type": "object"
6268 }
6369 },
6470 "output": {
6571 "encoding": "application/json",
6672 "schema": {
6773 "properties": {
6874 "did": {
6975 "format": "did",
7076 "type": "string"
7177 },
7278 "members": {
7379 "format": "space-ref",
7480 "type": "string"
7581 },
7682 "meta": {
7783 "format": "space-ref",
7884 "type": "string"
7985 }
8086 },
8187 "required": [
8288 "did",
8389 "meta",
8490 "members"
8591 ],
8692 "type": "object"
8793 }
8894 },
8995 "type": "procedure"
9096 }
9197 },
9298 "id": "fyi.opensocial.createGroup",
9399 "lexicon": 1
94100}

Compare other versions