From
bafyreifo2uxr6w55564hcm3fxcqz7o5ce46p54teq4ui6iijtlwfbh6s3e
indexed 2026-09-24 00:10 UTC
View this version
To
bafyreicksbqxai35glouwdyhzyqems767dalijxa6nr25e7yk6lfg3tl7e
indexed 2026-10-18 18:50 UTC
View this version
Compatibility
backward compatible Backward compatible. 28 non-breaking changes.
Non-breaking changes (28)
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.address" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.fsq" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.geo" }
- AddedVertex AddedVertex { vertex_id: "community.lexicon.location.hthree" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.languages" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.languages:items" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant0" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant1" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant2" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant3" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.online" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.topics" }
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.topics:items" }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.languages", kind: "prop", name: Some("languages") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.location", kind: "prop", name: Some("location") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.online", kind: "prop", name: Some("online") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.topics", kind: "prop", name: Some("topics") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.languages", tgt: "fyi.opensocial.updateProfile:input.languages:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "fyi.opensocial.updateProfile:input.topics", tgt: "fyi.opensocial.updateProfile:input.topics:items", kind: "items", name: None }
Migration guidance
Added
AddedVertex { vertex_id: "community.lexicon.location.address" }AddedVertex { vertex_id: "community.lexicon.location.fsq" }AddedVertex { vertex_id: "community.lexicon.location.geo" }AddedVertex { vertex_id: "community.lexicon.location.hthree" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.languages" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.languages:items" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant0" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant1" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant2" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.location:variant3" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.online" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.topics" }AddedVertex { vertex_id: "fyi.opensocial.updateProfile:input.topics:items" }
Notes
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.languages", kind: "prop", name: Some("languages") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.location", kind: "prop", name: Some("location") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.online", kind: "prop", name: Some("online") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input", tgt: "fyi.opensocial.updateProfile:input.topics", kind: "prop", name: Some("topics") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.languages", tgt: "fyi.opensocial.updateProfile:input.languages:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant0", kind: "variant", name: Some("community.lexicon.location.address") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant1", kind: "variant", name: Some("community.lexicon.location.geo") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant2", kind: "variant", name: Some("community.lexicon.location.fsq") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location", tgt: "fyi.opensocial.updateProfile:input.location:variant3", kind: "variant", name: Some("community.lexicon.location.hthree") }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant0", tgt: "community.lexicon.location.address", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant1", tgt: "community.lexicon.location.geo", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant2", tgt: "community.lexicon.location.fsq", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.location:variant3", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.updateProfile:input.topics", tgt: "fyi.opensocial.updateProfile:input.topics:items", kind: "items", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {5
"description": "Replace the profile: name, description, join policy. Requires group.configure. Fields are inlined rather than referencing fyi.opensocial.profile, because a record def cannot be used as an input object — mirrors createGroup.",5
"description": "Replace the profile: name, description, join policy, where it meets, its topics and languages. Requires group.configure. Fields are inlined rather than referencing fyi.opensocial.profile, because a record def cannot be used as an input object — mirrors createGroup.",66
"input": {77
"encoding": "application/json",88
"schema": {99
"properties": {1010
"avatar": {1111
"accept": [1212
"image/png",1313
"image/jpeg"1414
],1515
"description": "The group's avatar, as returned by uploadImage. Omit to keep the current one; null to clear it.",1616
"maxSize": 1000000,1717
"type": "blob"1818
},1919
"banner": {2020
"accept": [2121
"image/png",2222
"image/jpeg"2323
],2424
"description": "The group's banner, as returned by uploadImage. Omit to keep the current one; null to clear it.",2525
"maxSize": 1000000,2626
"type": "blob"2727
},2828
"description": {2929
"maxGraphemes": 300,3030
"maxLength": 3000,3131
"type": "string"3232
},3333
"displayName": {3434
"maxGraphemes": 64,3535
"maxLength": 640,3636
"type": "string"3737
},3838
"group": {3939
"description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",4040
"format": "did",4141
"type": "string"4242
},4343
"joinPolicy": {4444
"knownValues": [4545
"fyi.opensocial.profile#open",4646
"fyi.opensocial.profile#request",4747
"fyi.opensocial.profile#invite"4848
],4949
"type": "string"5050
},51
"languages": {52
"description": "The languages it uses, as BCP 47 tags: en, pl, sl.",53
"items": {54
"format": "language",55
"type": "string"56
},57
"maxLength": 5,58
"type": "array"59
},60
"location": {61
"description": "Where it meets, if it meets somewhere: a town or city is enough.",62
"refs": [63
"community.lexicon.location.address",64
"community.lexicon.location.geo",65
"community.lexicon.location.fsq",66
"community.lexicon.location.hthree"67
],68
"type": "union"69
},70
"online": {71
"description": "It meets online, as well as or instead of somewhere.",72
"type": "boolean"73
},74
"topics": {75
"description": "What it's about, a few words each, as the group puts it: climbing, choir, renters' union.",76
"items": {77
"maxGraphemes": 64,78
"maxLength": 640,79
"type": "string"80
},81
"maxLength": 10,82
"type": "array"83
},5184
"url": {5285
"description": "The group's own site.",5386
"format": "uri",5487
"type": "string"5588
}5689
},5790
"required": [5891
"group",5992
"displayName"6093
],6194
"type": "object"6295
}6396
},6497
"output": {6598
"encoding": "application/json",6699
"schema": {67100
"properties": {68101
"cid": {69102
"format": "cid",70103
"type": "string"71104
},72105
"uri": {73106
"format": "at-uri",74107
"type": "string"75108
}76109
},77110
"required": [78111
"uri",79112
"cid"80113
],81114
"type": "object"82115
}83116
},84117
"type": "procedure"85118
}86119
},87120
"id": "fyi.opensocial.updateProfile",88121
"lexicon": 189122
}