-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtool-surface-interop.v0.json
More file actions
67 lines (67 loc) · 1.78 KB
/
Copy pathtool-surface-interop.v0.json
File metadata and controls
67 lines (67 loc) · 1.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://getinterlock.dev/schemas/tool-surface-interop.v0.json",
"title": "Interlock Tool Surface Interop Record (v0)",
"description": "A strict, bounded tool-surface replay/composition record. Unlike Interlock's richer internal runtime receipts, this interop projection only emits drifted when evidence is verified, coverage is complete, and the finding is not based solely on inferred metadata. Partial or unverified evidence remains not_verifiable.",
"type": "object",
"additionalProperties": false,
"required": [
"profile",
"action_id",
"run_id",
"coverage",
"approved_tool_surface_hash",
"observed_tool_surface_hash",
"evidence",
"verdict",
"finding",
"finding_types"
],
"properties": {
"profile": {
"const": "interlock.tool-surface.v0"
},
"action_id": {
"type": "string"
},
"run_id": {
"type": "string"
},
"coverage": {
"type": "string",
"enum": ["complete", "partial", "missing", "unknown", ""]
},
"approved_tool_surface_hash": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$|^$"
},
"observed_tool_surface_hash": {
"type": "string",
"pattern": "^sha256:[0-9a-f]{64}$|^$"
},
"evidence": {
"type": "object",
"additionalProperties": false,
"required": ["evidence_verified"],
"properties": {
"evidence_verified": {
"type": "boolean"
}
}
},
"verdict": {
"type": "string",
"enum": ["unchanged", "drifted", "not_verifiable"]
},
"finding": {
"type": "string"
},
"finding_types": {
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
}
}
}