-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtabellio.github-release.validation.json
More file actions
98 lines (98 loc) · 4.48 KB
/
Copy pathtabellio.github-release.validation.json
File metadata and controls
98 lines (98 loc) · 4.48 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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{
"schemaVersion": "tabellio-validation/v0.2",
"id": "intb-261-p4-github-release-evidence",
"failFast": false,
"requireEntireCheckpoint": true,
"acceptance": {
"id": "INTB-261-P4",
"source": "INTB-261 and docs/intb-261-p4-execution-contract.md",
"risk": "high",
"outcomes": [
"GitHub release inventory is complete, bounded, and temporally coherent.",
"Release links use landed squash commits and verified containment.",
"Portable release evidence remains repository-bound and input-safe."
],
"invariants": [
"Provider pagination and tag resolution stay inside committed limits.",
"Malformed evidence blocks while post-cutoff releases are excluded.",
"The earliest eligible containing release is selected.",
"All validators report complete zero-cost telemetry."
],
"forbiddenOutcomes": [
"A truncated provider page is reported as complete.",
"A pre-merge or unrelated release is linked.",
"A provider source version is rolled backward.",
"An output aliases or overwrites an input snapshot."
],
"requiredValidatorTypes": [
"static",
"schema",
"semantic",
"workflow",
"operational",
"security"
]
},
"validators": [
{
"id": "github-release-static",
"type": "static",
"argv": ["node", "scripts/tabellio-validator.mjs", "--profile", "github-release-static"],
"cwd": ".",
"timeoutMs": 300000,
"required": true,
"evidence": null,
"policy": {"metricThresholds": [], "maxCostUsd": null, "requireCostTelemetry": false}
},
{
"id": "github-release-schema",
"type": "schema",
"argv": ["node", "scripts/tabellio-validator.mjs", "--profile", "github-release-schema", "--validator-id", "github-release-schema", "--out", ".artifacts/tabellio/github-release-schema.json"],
"cwd": ".",
"timeoutMs": 300000,
"required": true,
"evidence": {"path": ".artifacts/tabellio/github-release-schema.json"},
"policy": {"metricThresholds": [{"metric": "github_release_schema_pass", "operator": "eq", "value": 1}], "maxCostUsd": 0, "requireCostTelemetry": true}
},
{
"id": "github-release-semantic",
"type": "semantic",
"argv": ["node", "scripts/tabellio-validator.mjs", "--profile", "github-release-semantic", "--validator-id", "github-release-semantic", "--out", ".artifacts/tabellio/github-release-semantic.json"],
"cwd": ".",
"timeoutMs": 300000,
"required": true,
"evidence": {"path": ".artifacts/tabellio/github-release-semantic.json"},
"policy": {"metricThresholds": [{"metric": "github_release_semantic_pass", "operator": "eq", "value": 1}], "maxCostUsd": 0, "requireCostTelemetry": true}
},
{
"id": "github-release-workflow",
"type": "workflow",
"argv": ["node", "scripts/tabellio-validator.mjs", "--profile", "github-release-workflow", "--validator-id", "github-release-workflow", "--out", ".artifacts/tabellio/github-release-workflow.json"],
"cwd": ".",
"timeoutMs": 300000,
"required": true,
"evidence": {"path": ".artifacts/tabellio/github-release-workflow.json"},
"policy": {"metricThresholds": [{"metric": "github_release_workflow_pass", "operator": "eq", "value": 1}], "maxCostUsd": 0, "requireCostTelemetry": true}
},
{
"id": "github-release-operational",
"type": "operational",
"argv": ["node", "scripts/tabellio-validator.mjs", "--profile", "github-release-operational", "--validator-id", "github-release-operational", "--out", ".artifacts/tabellio/github-release-operational.json"],
"cwd": ".",
"timeoutMs": 300000,
"required": true,
"evidence": {"path": ".artifacts/tabellio/github-release-operational.json"},
"policy": {"metricThresholds": [{"metric": "github_release_page_limit", "operator": "lte", "value": 100}], "maxCostUsd": 0, "requireCostTelemetry": true}
},
{
"id": "github-release-security",
"type": "security",
"argv": ["node", "scripts/tabellio-validator.mjs", "--profile", "github-release-security", "--validator-id", "github-release-security", "--out", ".artifacts/tabellio/github-release-security.json"],
"cwd": ".",
"timeoutMs": 300000,
"required": true,
"evidence": {"path": ".artifacts/tabellio/github-release-security.json"},
"policy": {"metricThresholds": [{"metric": "github_release_security_pass", "operator": "eq", "value": 1}], "maxCostUsd": 0, "requireCostTelemetry": true}
}
]
}