cloud.substratum.passport.receipt
Schema Diff
+11 -11
Compatibility Analysis
Breaking Changes Detected
6 breaking changes, 3 non-breaking changes.
Breaking Changes (6)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "cloud.substratum.passport.receipt", src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.manifestCid", kind: "prop", name: Some("manifestCid") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "cloud.substratum.passport.receipt", src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.assetCid", kind: "prop", name: Some("assetCid") }
- 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 (3)
- AddedVertex AddedVertex { vertex_id: "cloud.substratum.passport.receipt.aclCid" }
- AddedVertex AddedVertex { vertex_id: "cloud.substratum.passport.receipt.manifestCid" }
- 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" }AddedVertex { vertex_id: "cloud.substratum.passport.receipt.manifestCid" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "cloud.substratum.passport.receipt", src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.manifestCid", kind: "prop", name: Some("manifestCid") }
- Breaking: RequiredEdgeRemoved { vertex_id: "cloud.substratum.passport.receipt", src: "cloud.substratum.passport.receipt", tgt: "cloud.substratum.passport.receipt.assetCid", kind: "prop", name: Some("assetCid") }
- 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 a metadata manifest 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
-
"description": "The IPFS Content Identifier of the underlying asset",
12
+
"description": "File byte CID. Same meaning as driveEntry assetCid. Omitted for a drive or folder receipt.",
17
13
"type": "string"
18
14
},
15
+
"manifestCid": {
16
+
"description": "The metadata manifest CID this receipt governs: the drive index for a drive, or that entry's name leaf for a folder or file.",
17
+
"type": "string"
18
+
},
19
19
"metadata": {
20
20
"ref": "cloud.substratum.passport.assetMetadata#main",
21
21
"type": "ref"
22
22
},
23
23
"ownerDid": {
24
24
"description": "The DID of the user who owns the asset",
25
25
"format": "did",
26
26
"type": "string"
27
27
},
28
28
"timestamp": {
29
29
"description": "ISO 8601 timestamp of the upload",
30
30
"format": "datetime",
31
31
"type": "string"
32
32
},
33
33
"version": {
34
-
"description": "Schema version (e.g., '1.0.0')",
34
+
"description": "Schema version (e.g., '2.0.0')",
35
35
"type": "string"
36
36
}
37
37
},
38
38
"required": [
39
39
"version",
40
-
"assetCid",
40
+
"manifestCid",
41
41
"ownerDid",
42
42
"timestamp"
43
43
],
44
44
"type": "object"
45
45
}
46
46
},
47
47
"id": "cloud.substratum.passport.receipt",
48
48
"lexicon": 1
49
49
}