From
bafyreie62fj7vu7jrjv6lecejwqseeswshzc24hcmnqwse6hiuztmnyisq
indexed 2026-10-27 01:16 UTC
View this version
To
bafyreigkifrpahgal3attmlal6g6swscvok3ceeu7evm22whsqhcczyu6e
indexed 2026-10-27 17:22 UTC
View this version
Compatibility
breaking 3 breaking changes, 2 non-breaking changes.
Breaking changes (3)
- RemovedVertex RemovedVertex { vertex_id: "fyi.opensocial.permissions#action" }
- RemovedEdge RemovedEdge { src: "fyi.opensocial.putRole:input.actions:items", tgt: "fyi.opensocial.permissions#action", kind: "ref", name: None }
- ConstraintTightened ConstraintTightened { vertex_id: "fyi.opensocial.putRole:input.actions:items", sort: "ref", old_value: "fyi.opensocial.permissions#action", new_value: "fyi.opensocial.defs#action" }
Non-breaking changes (2)
- AddedVertex AddedVertex { vertex_id: "fyi.opensocial.defs#action" }
- AddedEdge AddedEdge { src: "fyi.opensocial.putRole:input.actions:items", tgt: "fyi.opensocial.defs#action", kind: "ref", name: None }
Migration guidance
Removed
RemovedVertex { vertex_id: "fyi.opensocial.permissions#action" }
Added
AddedVertex { vertex_id: "fyi.opensocial.defs#action" }
Constraint changes
- ConstraintTightened ConstraintTightened { vertex_id: "fyi.opensocial.putRole:input.actions:items", sort: "ref", old_value: "fyi.opensocial.permissions#action", new_value: "fyi.opensocial.defs#action" }
Notes
- Breaking: RemovedEdge { src: "fyi.opensocial.putRole:input.actions:items", tgt: "fyi.opensocial.permissions#action", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "fyi.opensocial.putRole:input.actions:items", tgt: "fyi.opensocial.defs#action", kind: "ref", name: None }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {5
"description": "Create or update a role and its action bindings. Requires group.configure.",5
"description": "Create or update a role and its grant. Requires group.configure.",66
"input": {77
"encoding": "application/json",88
"schema": {99
"properties": {1010
"actions": {11
"description": "What the role may do. Written as the scopes that grant each, beside any other scope the role already holds.",1112
"items": {12
"ref": "fyi.opensocial.permissions#action",13
"ref": "fyi.opensocial.defs#action",1314
"type": "ref"1415
},1516
"type": "array"1617
},1718
"assignable": {1819
"items": {1920
"maxLength": 64,2021
"type": "string"2122
},2223
"type": "array"2324
},2425
"bot": {2526
"description": "Whether people with this role are bots: accounts that act on their own, not a person. Giving someone a bot role is how they are marked as one.",2627
"type": "boolean"2728
},2829
"default": {2930
"description": "Whether members get this role when they join. Omitted keeps the role's current value.",3031
"type": "boolean"3132
},3233
"description": {3334
"type": "string"3435
},3536
"group": {3637
"description": "The group DID. Every method is served by the group's host and authorized against that group's roles.",3738
"format": "did",3839
"type": "string"3940
},4041
"name": {4142
"description": "What the role is called. Written as the role record's displayName.",4243
"type": "string"4344
},4445
"repoCollections": {45
"description": "See fyi.opensocial.permissions#binding. Omitted keeps the role's current value.",46
"description": "Collections holders may write in the group's public repo as the group, `*` for any; written as `repo:` scopes. Omitted keeps the role's current value.",4647
"items": {4748
"type": "string"4849
},4950
"type": "array"5051
},5152
"role": {5253
"maxLength": 64,5354
"type": "string"5455
}5556
},5657
"required": [5758
"group",5859
"role",5960
"name",6061
"actions"6162
],6263
"type": "object"6364
}6465
},6566
"output": {6667
"encoding": "application/json",6768
"schema": {6869
"properties": {6970
"cid": {7071
"format": "cid",7172
"type": "string"7273
},7374
"uri": {7475
"format": "at-uri",7576
"type": "string"7677
}7778
},7879
"required": [7980
"uri",8081
"cid"8182
],8283
"type": "object"8384
}8485
},8586
"type": "procedure"8687
}8788
},8889
"id": "fyi.opensocial.putRole",8990
"lexicon": 19091
}