From
bafyreidqtmx2ivfrmj5cfki2zej5fgjqux4svdv3rrkv2evs5f2jdld5yi
indexed 2026-09-06 01:26 UTC
View this version
To
bafyreibp4c3t62qubqcymdudsyhh2x6cuzjoko7wvozuxwuvtv3lhs4yhm
indexed 2026-03-19 20:28 UTC
View this version
Compatibility
breaking 4 breaking changes, 0 non-breaking changes.
Breaking changes (4)
- RemovedVertex RemovedVertex { vertex_id: "io.atcr.hold.scan:body.reason" }
- RemovedVertex RemovedVertex { vertex_id: "io.atcr.hold.scan:body.status" }
- RemovedEdge RemovedEdge { src: "io.atcr.hold.scan:body", tgt: "io.atcr.hold.scan:body.reason", kind: "prop", name: Some("reason") }
- RemovedEdge RemovedEdge { src: "io.atcr.hold.scan:body", tgt: "io.atcr.hold.scan:body.status", kind: "prop", name: Some("status") }
Migration guidance
Removed
RemovedVertex { vertex_id: "io.atcr.hold.scan:body.reason" }RemovedVertex { vertex_id: "io.atcr.hold.scan:body.status" }
Notes
- Breaking: RemovedEdge { src: "io.atcr.hold.scan:body", tgt: "io.atcr.hold.scan:body.reason", kind: "prop", name: Some("reason") }
- Breaking: RemovedEdge { src: "io.atcr.hold.scan:body", tgt: "io.atcr.hold.scan:body.status", kind: "prop", name: Some("status") }
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"main": {55
"description": "Vulnerability scan results for a container manifest. Stored in the hold's embedded PDS. Record key is deterministic: the manifest digest hex without the 'sha256:' prefix, so re-scans upsert the existing record.",66
"key": "any",77
"record": {88
"properties": {99
"critical": {1010
"description": "Count of critical severity vulnerabilities",1111
"minimum": 0,1212
"type": "integer"1313
},1414
"high": {1515
"description": "Count of high severity vulnerabilities",1616
"minimum": 0,1717
"type": "integer"1818
},1919
"low": {2020
"description": "Count of low severity vulnerabilities",2121
"minimum": 0,2222
"type": "integer"2323
},2424
"manifest": {2525
"description": "AT-URI of the scanned manifest (e.g., at://did:plc:xyz/io.atcr.manifest/abc123...)",2626
"format": "at-uri",2727
"type": "string"2828
},2929
"medium": {3030
"description": "Count of medium severity vulnerabilities",3131
"minimum": 0,3232
"type": "integer"3333
},34
"reason": {35
"description": "Optional human-readable explanation for non-ok status (e.g. 'unscannable artifact type application/vnd.cncf.helm.config.v1+json').",36
"maxLength": 256,37
"type": "string"38
},3934
"repository": {4035
"description": "Repository name (e.g., myapp)",4136
"maxLength": 256,4237
"type": "string"4338
},4439
"sbomBlob": {4540
"accept": [4641
"application/spdx+json"4742
],4843
"description": "SBOM blob (SPDX JSON format) uploaded to the hold's blob storage",4944
"type": "blob"5045
},5146
"scannedAt": {5247
"description": "RFC3339 timestamp of when the scan completed",5348
"format": "datetime",5449
"type": "string"5550
},5651
"scannerVersion": {5752
"description": "Version of the scanner that produced this result (e.g., atcr-scanner-v1.0.0)",5853
"maxLength": 64,59
"type": "string"60
},61
"status": {62
"description": "Outcome of the scan attempt. 'ok' (or omitted, for back-compat) means the scanner produced an SBOM. 'failed' means the scanner ran but errored. 'skipped' means the scanner intentionally bypassed this artifact type (e.g. helm charts).",63
"knownValues": [64
"ok",65
"failed",66
"skipped"67
],68
"maxLength": 32,6954
"type": "string"7055
},7156
"total": {7257
"description": "Total vulnerability count",7358
"minimum": 0,7459
"type": "integer"7560
},7661
"userDid": {7762
"description": "DID of the image owner",7863
"format": "did",7964
"type": "string"8065
},8166
"vulnReportBlob": {8267
"accept": [8368
"application/vnd.atcr.vulnerabilities+json"8469
],8570
"description": "Grype vulnerability report blob (JSON) with full CVE details",8671
"type": "blob"8772
}8873
},8974
"required": [9075
"manifest",9176
"repository",9277
"userDid",9378
"critical",9479
"high",9580
"medium",9681
"low",9782
"total",9883
"scannerVersion",9984
"scannedAt"10085
],10186
"type": "object"10287
},10388
"type": "record"10489
}10590
},10691
"id": "io.atcr.hold.scan",10792
"lexicon": 110893
}