cloud.substratum.passport.receipt
Schema Diff
+4 -8
Compatibility Analysis
Breaking Changes Detected
4 breaking changes, 2 non-breaking changes.
Breaking Changes (4)
- RemovedVertex RemovedVertex { vertex_id: "cloud.substratum.passport.receipt.access_control" }
- RemovedVertex RemovedVertex { vertex_id: "cloud.substratum.passport.receipt.access_control:items" }
- RemovedEdge RemovedEdge { src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.access_control", kind: "prop", name: Some("access_control") }
- RemovedEdge RemovedEdge { src: "cloud.substratum.passport.receipt.access_control", tgt: "cloud.substratum.passport.receipt.access_control:items", kind: "items", name: None }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "cloud.substratum.passport.receipt.aclCid" }
- AddedEdge AddedEdge { src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.aclCid", kind: "prop", name: Some("aclCid") }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "cloud.substratum.passport.receipt.access_control" }RemovedVertex { vertex_id: "cloud.substratum.passport.receipt.access_control:items" }
Added Elements
AddedVertex { vertex_id: "cloud.substratum.passport.receipt.aclCid" }
Additional Notes
- Breaking: RemovedEdge { src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.access_control", kind: "prop", name: Some("access_control") }
- Breaking: RemovedEdge { src: "cloud.substratum.passport.receipt.access_control", tgt: "cloud.substratum.passport.receipt.access_control:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.aclCid", kind: "prop", name: Some("aclCid") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
-
"description": "Cryptographic binding between an asset CID and its owner/Access Control.",
5
+
"description": "Cryptographic provenance binding between an asset CID and its owner. No grantee DIDs are stored here (ADR 91); the share ACL lives in the encrypted-at-rest metadata file on the private Swarm blockstore, referenced by aclCid.",
6
6
"properties": {
7
-
"access_control": {
8
-
"description": "List of DIDs authorized to access this asset.",
9
-
"items": {
10
-
"format": "did",
11
-
"type": "string"
12
-
},
13
-
"type": "array"
7
+
"aclCid": {
8
+
"description": "CID of the share-ACL block in the drive metadata file (ADR 91). Never the ACL itself.",
9
+
"type": "string"
14
10
},
15
11
"assetCid": {
16
12
"description": "The IPFS Content Identifier of the underlying asset",
17
13
"type": "string"
18
14
},
19
15
"metadata": {
20
16
"ref": "cloud.substratum.passport.assetMetadata#main",
21
17
"type": "ref"
22
18
},
23
19
"ownerDid": {
24
20
"description": "The DID of the user who owns the asset",
25
21
"format": "did",
26
22
"type": "string"
27
23
},
28
24
"timestamp": {
29
25
"description": "ISO 8601 timestamp of the upload",
30
26
"format": "datetime",
31
27
"type": "string"
32
28
},
33
29
"version": {
34
30
"description": "Schema version (e.g., '1.0.0')",
35
31
"type": "string"
36
32
}
37
33
},
38
34
"required": [
39
35
"version",
40
36
"assetCid",
41
37
"ownerDid",
42
38
"timestamp"
43
39
],
44
40
"type": "object"
45
41
}
46
42
},
47
43
"id": "cloud.substratum.passport.receipt",
48
44
"lexicon": 1
49
45
}