com.publicdomainrelay.temp.market.receipt
Schema Diff
+19 -4
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 6 non-breaking changes.
Breaking Changes (3)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipt:body", src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.cid", kind: "prop", name: Some("cid") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipt:body", src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.signatures", kind: "prop", name: Some("signatures") }
- RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "com.publicdomainrelay.temp.market.receipt:body", src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.payload", kind: "prop", name: Some("payload") }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipt:body.cid" }
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipt:body.signatures" }
- AddedVertex AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipt:body.submitEvent" }
- AddedVertex AddedVertex { vertex_id: "network.attested.signature#signatures" }
- AddedEdge AddedEdge { src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.submitEvent", kind: "prop", name: Some("submitEvent") }
- AddedEdge AddedEdge { src: "com.publicdomainrelay.temp.market.receipt:body.signatures", tgt: "network.attested.signature#signatures", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipt:body.cid" }AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipt:body.signatures" }AddedVertex { vertex_id: "com.publicdomainrelay.temp.market.receipt:body.submitEvent" }AddedVertex { vertex_id: "network.attested.signature#signatures" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipt:body", src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.cid", kind: "prop", name: Some("cid") }
- Breaking: RequiredEdgeAdded { vertex_id: "com.publicdomainrelay.temp.market.receipt:body", src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.signatures", kind: "prop", name: Some("signatures") }
- Breaking: RequiredEdgeRemoved { vertex_id: "com.publicdomainrelay.temp.market.receipt:body", src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.payload", kind: "prop", name: Some("payload") }
- Non-breaking: AddedEdge { src: "com.publicdomainrelay.temp.market.receipt:body", tgt: "com.publicdomainrelay.temp.market.receipt:body.submitEvent", kind: "prop", name: Some("submitEvent") }
- Non-breaking: AddedEdge { src: "com.publicdomainrelay.temp.market.receipt:body.signatures", tgt: "network.attested.signature#signatures", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "Receipt for acceptance of a bid on an RFP",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"accept": {
10
-
"description": "Strong reference to the accept record (for example a com.publicdomainrelay.temp.accept.x402).",
10
+
"description": "Strong reference to the accept record (for example a com.publicdomainrelay.temp.market.accept.x402).",
11
11
"ref": "com.atproto.repo.strongRef",
12
12
"type": "ref"
13
13
},
14
14
"bid": {
15
-
"description": "Strong reference to the bid record (for example a com.publicdomainrelay.temp.bid.x402).",
15
+
"description": "Strong reference to the bid record (for example a com.publicdomainrelay.temp.market.bid.x402).",
16
16
"ref": "com.atproto.repo.strongRef",
17
17
"type": "ref"
18
18
},
19
+
"cid": {
20
+
"description": "badge.blue attestation CID over the referenced accept record, making this receipt a remote attestation proof: computed from the accept record (signatures stripped), this receipt's metadata (cid/signatures stripped, repository = accept's repo DID added) as $sig, via DAG-CBOR + SHA-256 + CIDv1. Binds the receipt to the accept's exact content in the requester's repository.",
21
+
"format": "cid",
22
+
"type": "string"
23
+
},
19
24
"payload": {
20
-
"description": "Strong reference to the receipt record (for example a com.publicdomainrelay.temp.receipt.x402).",
25
+
"description": "Strong reference to the receipt record if there is anything to note about the receipt (for example a com.publicdomainrelay.temp.market.receipt.x402).",
21
26
"ref": "com.atproto.repo.strongRef",
22
27
"type": "ref"
23
28
},
24
29
"rfp": {
25
30
"description": "Strong reference to the rfp record (for example a com.publicdomainrelay.temp.market.rfp).",
26
31
"ref": "com.atproto.repo.strongRef",
27
32
"type": "ref"
33
+
},
34
+
"signatures": {
35
+
"description": "badge.blue attestations over this receipt. Must include the provider's inline signature, attached at creation.",
36
+
"ref": "network.attested.signature#signatures",
37
+
"type": "ref"
38
+
},
39
+
"submitEvent": {
40
+
"description": "Service DID reference (did:web:HOST#compute_event) of the provider's compute-event service, scoped to this receipt's strongRef. The requester calls com.publicdomainrelay.temp.market.submitEvent via PDS service-proxying using this value as the atproto-proxy target, to report lifecycle events the provider cannot observe itself (e.g. compute.events.vm.delete when a workflow finishes or its policy engine never comes up), since the provider treats provisioned resources as a black box.",
41
+
"type": "string"
28
42
}
29
43
},
30
44
"required": [
31
45
"rfp",
32
46
"bid",
33
47
"accept",
34
-
"payload"
48
+
"cid",
49
+
"signatures"
35
50
],
36
51
"type": "object"
37
52
},
38
53
"type": "record"
39
54
}
40
55
},
41
56
"id": "com.publicdomainrelay.temp.market.receipt",
42
57
"lexicon": 1
43
58
}