full diff

fyi.opensocial.profile

From
bafyreieicpkmprbdvcadiyb2nb6m6q6d74mijrmnli2ttdl6fim5n7g2ke indexed 2026-10-27 01:16 UTC View this version
To
bafyreigkmvmk36n7cpxt4fcsh63h37rf4upo4yxiaziu6fnmrfbxyf2o5q indexed 2026-11-05 16:25 UTC View this version

Compatibility

breaking 6 breaking changes, 19 non-breaking changes.

Breaking changes (6)
  • KindChanged KindChanged { vertex_id: "fyi.opensocial.profile:body.joinPolicy", old_kind: "string", new_kind: "ref" }
  • KindChanged KindChanged { vertex_id: "fyi.opensocial.profile:body.languages:items", old_kind: "string", new_kind: "ref" }
  • KindChanged KindChanged { vertex_id: "fyi.opensocial.profile:body.topics:items", old_kind: "string", new_kind: "ref" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.profile:body.topics:items", sort: "ref", value: "fyi.opensocial.defs#topicRef" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.profile:body.languages:items", sort: "ref", value: "fyi.opensocial.defs#languageRef" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.profile:body.joinPolicy", sort: "ref", value: "fyi.opensocial.defs#joinPolicy" }
Non-breaking changes (19)
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#joinPolicy" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#languageRef" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#link" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#topicRef" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.profile:body.links" }
  • AddedVertex AddedVertex { vertex_id: "fyi.opensocial.profile:body.links:items" }
  • AddedEdge AddedEdge { src: "fyi.opensocial.profile:body", tgt: "fyi.opensocial.profile:body.links", kind: "prop", name: Some("links") }
  • AddedEdge AddedEdge { src: "fyi.opensocial.profile:body.joinPolicy", tgt: "fyi.opensocial.defs#joinPolicy", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.profile:body.languages:items", tgt: "fyi.opensocial.defs#languageRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.profile:body.links", tgt: "fyi.opensocial.profile:body.links:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.profile:body.links:items", tgt: "fyi.opensocial.defs#link", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "fyi.opensocial.profile:body.topics:items", tgt: "fyi.opensocial.defs#topicRef", kind: "ref", name: None }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.topics:items", sort: "maxGraphemes" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.topics:items", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.languages:items", sort: "format" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.profile:body.description", sort: "maxGraphemes", old_value: "300", new_value: "2000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.profile:body.description", sort: "maxLength", old_value: "3000", new_value: "20000" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.joinPolicy", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.joinPolicy", sort: "knownValues" }

Migration guidance

Added

  • AddedVertex { vertex_id: "fyi.opensocial.defs#joinPolicy" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#languageRef" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#link" }
  • AddedVertex { vertex_id: "fyi.opensocial.defs#topicRef" }
  • AddedVertex { vertex_id: "fyi.opensocial.profile:body.links" }
  • AddedVertex { vertex_id: "fyi.opensocial.profile:body.links:items" }

Constraint changes

  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.profile:body.languages:items", sort: "ref", value: "fyi.opensocial.defs#languageRef" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.profile:body.joinPolicy", sort: "ref", value: "fyi.opensocial.defs#joinPolicy" }
  • ConstraintAdded ConstraintAdded { vertex_id: "fyi.opensocial.profile:body.topics:items", sort: "ref", value: "fyi.opensocial.defs#topicRef" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.languages:items", sort: "format" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.joinPolicy", sort: "maxLength" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.joinPolicy", sort: "knownValues" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.topics:items", sort: "maxGraphemes" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "fyi.opensocial.profile:body.topics:items", sort: "maxLength" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.profile:body.description", sort: "maxLength", old_value: "3000", new_value: "20000" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "fyi.opensocial.profile:body.description", sort: "maxGraphemes", old_value: "300", new_value: "2000" }

Notes

  • Breaking: KindChanged { vertex_id: "fyi.opensocial.profile:body.joinPolicy", old_kind: "string", new_kind: "ref" }
  • Breaking: KindChanged { vertex_id: "fyi.opensocial.profile:body.languages:items", old_kind: "string", new_kind: "ref" }
  • Breaking: KindChanged { vertex_id: "fyi.opensocial.profile:body.topics:items", old_kind: "string", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.profile:body", tgt: "fyi.opensocial.profile:body.links", kind: "prop", name: Some("links") }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.profile:body.joinPolicy", tgt: "fyi.opensocial.defs#joinPolicy", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.profile:body.languages:items", tgt: "fyi.opensocial.defs#languageRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.profile:body.links", tgt: "fyi.opensocial.profile:body.links:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.profile:body.links:items", tgt: "fyi.opensocial.defs#link", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "fyi.opensocial.profile:body.topics:items", tgt: "fyi.opensocial.defs#topicRef", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "main": {
55 "description": "The group's profile. Written by the group authority into the meta space.",
66 "key": "literal:self",
77 "record": {
88 "properties": {
99 "avatar": {
1010 "accept": [
1111 "image/png",
12 "image/jpeg"
12 "image/jpeg",
13 "image/webp"
1314 ],
14 "maxSize": 1000000,
15 "maxSize": 2000000,
1516 "type": "blob"
1617 },
1718 "banner": {
1819 "accept": [
1920 "image/png",
20 "image/jpeg"
21 "image/jpeg",
22 "image/webp"
2123 ],
22 "maxSize": 1000000,
24 "maxSize": 2000000,
2325 "type": "blob"
2426 },
2527 "createdAt": {
2628 "format": "datetime",
2729 "type": "string"
2830 },
2931 "description": {
30 "maxGraphemes": 300,
31 "maxLength": 3000,
32 "maxGraphemes": 2000,
33 "maxLength": 20000,
3234 "type": "string"
3335 },
3436 "displayName": {
3537 "maxGraphemes": 64,
3638 "maxLength": 640,
3739 "type": "string"
3840 },
3941 "joinPolicy": {
40 "description": "How new members get in: open admits anyone, approval queues a join request for review, invite requires an invitation. An invitation admits its recipient under any policy.",
41 "knownValues": [
42 "open",
43 "approval",
44 "invite"
45 ],
46 "maxLength": 128,
47 "type": "string"
42 "ref": "fyi.opensocial.defs#joinPolicy",
43 "type": "ref"
4844 },
4945 "languages": {
5046 "description": "The languages it uses, as BCP 47 tags: en, pl, sl.",
5147 "items": {
52 "format": "language",
53 "type": "string"
48 "ref": "fyi.opensocial.defs#languageRef",
49 "type": "ref"
5450 },
5551 "maxLength": 5,
5652 "type": "array"
5753 },
54 "links": {
55 "description": "Where else the group is, in the order it shows them: each an http or https address, and what it is.",
56 "items": {
57 "ref": "fyi.opensocial.defs#link",
58 "type": "ref"
59 },
60 "maxLength": 5,
61 "type": "array"
62 },
5863 "location": {
5964 "description": "Where it meets, if it meets somewhere: a town or city is enough.",
6065 "refs": [
6166 "community.lexicon.location.address",
6267 "community.lexicon.location.geo",
6368 "community.lexicon.location.fsq",
6469 "community.lexicon.location.hthree"
6570 ],
6671 "type": "union"
6772 },
6873 "online": {
6974 "description": "It meets online, as well as or instead of somewhere.",
7075 "type": "boolean"
7176 },
7277 "topics": {
7378 "description": "What it's about, a few words each, as the group puts it: climbing, choir, renters' union.",
7479 "items": {
75 "maxGraphemes": 64,
76 "maxLength": 640,
77 "type": "string"
80 "ref": "fyi.opensocial.defs#topicRef",
81 "type": "ref"
7882 },
7983 "maxLength": 10,
8084 "type": "array"
8185 },
8286 "url": {
8387 "description": "The group's own site, if it keeps one. A third-party app that shows the group can link back to it.",
8488 "format": "uri",
8589 "type": "string"
8690 }
8791 },
8892 "required": [
8993 "displayName",
9094 "joinPolicy"
9195 ],
9296 "type": "object"
9397 },
9498 "type": "record"
9599 }
96100 },
97101 "id": "fyi.opensocial.profile",
98102 "lexicon": 1
99103}

Compare other versions