@marinjursic/prc-windows-arm64 0.1.9 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/catalog/assertions/core-repository.yaml +28 -28
- package/bin/catalog/control-check-bindings.json.gz +0 -0
- package/bin/catalog/control-check-programs.json.gz +0 -0
- package/bin/catalog/control-contracts.json.gz +0 -0
- package/bin/fixtures/benchmarks/core-native/suite-comprehensive.yaml +10 -1
- package/bin/fixtures/benchmarks/core-native/suite.yaml +13 -2
- package/bin/packs/core-foundation.yaml +4 -4
- package/bin/packs/core-native.yaml +10 -10
- package/bin/prc.exe +0 -0
- package/bin/schemas/adapter-execution-v0.3.schema.json +145 -0
- package/bin/schemas/authoritative-evidence-bundle.schema.json +38 -0
- package/bin/schemas/authoritative-evidence-set.schema.json +38 -0
- package/bin/schemas/authoritative-evidence-verification.schema.json +54 -0
- package/bin/schemas/automatic-coverage.schema.json +49 -0
- package/bin/schemas/control-check-bindings.schema.json +119 -0
- package/bin/schemas/control-check-evidence-v0.1.schema.json +244 -0
- package/bin/schemas/control-check-evidence.schema.json +244 -0
- package/bin/schemas/control-check-program-catalog.schema.json +160 -0
- package/bin/schemas/control-check-program-definitions.schema.json +139 -0
- package/bin/schemas/control-check-program.schema.json +298 -0
- package/bin/schemas/control-classification-final.schema.json +64 -0
- package/bin/schemas/control-classification-review.schema.json +161 -0
- package/bin/schemas/control-classification-skeptic-review.schema.json +96 -0
- package/bin/schemas/control-classification-strength-review.schema.json +90 -0
- package/bin/schemas/control-contracts.schema.json +101 -12
- package/bin/schemas/control-review-output-v0.2.schema.json +66 -0
- package/bin/schemas/control-review-output.schema.json +22 -3
- package/bin/schemas/evidence-requirements.schema.json +144 -0
- package/bin/schemas/evidence-set-verification.schema.json +65 -0
- package/bin/schemas/provider-capabilities.schema.json +26 -0
- package/bin/schemas/run-result-v0.10.schema.json +5 -5
- package/bin/schemas/run-result-v0.11.schema.json +5 -5
- package/bin/schemas/run-result-v0.12.schema.json +270 -0
- package/bin/schemas/run-result.schema.json +166 -16
- package/bin/schemas/signature-verification.schema.json +8 -1
- package/bin/schemas/signature.schema.json +8 -1
- package/bin/schemas/trust-store.schema.json +8 -1
- package/manifest.json +142 -32
- package/package.json +1 -1
|
@@ -2,16 +2,16 @@ schema_version: prc.assertions/v0.1
|
|
|
2
2
|
catalog_version: 1.0.0
|
|
3
3
|
assertions:
|
|
4
4
|
- id: PRC-A-CORE-001
|
|
5
|
-
revision:
|
|
5
|
+
revision: 3
|
|
6
6
|
control_ids: [USEQ-FDCA6C71]
|
|
7
7
|
title: README is present
|
|
8
|
-
statement: A
|
|
8
|
+
statement: A README file containing non-whitespace UTF-8 text exists at the repository root.
|
|
9
9
|
applicability: "true"
|
|
10
10
|
evidence_required:
|
|
11
11
|
- kind: repository-file
|
|
12
12
|
minimum_authority: repository
|
|
13
|
-
description: A
|
|
14
|
-
implementation_id: prc.native.file-present@0.
|
|
13
|
+
description: A root README containing non-whitespace UTF-8 text from the scanned commit.
|
|
14
|
+
implementation_id: prc.native.file-present@0.2
|
|
15
15
|
parameters:
|
|
16
16
|
paths: [README.md, README.rst, README.txt]
|
|
17
17
|
minimum_bytes: 1
|
|
@@ -19,16 +19,16 @@ assertions:
|
|
|
19
19
|
gate: required
|
|
20
20
|
remediation_class: R2
|
|
21
21
|
- id: PRC-A-CORE-002
|
|
22
|
-
revision:
|
|
22
|
+
revision: 2
|
|
23
23
|
control_ids: [USEQ-6497B434]
|
|
24
24
|
title: License is present
|
|
25
|
-
statement: A
|
|
25
|
+
statement: A license file containing non-whitespace UTF-8 text exists at the repository root.
|
|
26
26
|
applicability: "true"
|
|
27
27
|
evidence_required:
|
|
28
28
|
- kind: repository-file
|
|
29
29
|
minimum_authority: repository
|
|
30
|
-
description: A
|
|
31
|
-
implementation_id: prc.native.file-present@0.
|
|
30
|
+
description: A root license file containing non-whitespace UTF-8 text from the scanned commit.
|
|
31
|
+
implementation_id: prc.native.file-present@0.2
|
|
32
32
|
parameters:
|
|
33
33
|
paths: [LICENSE, LICENSE.md, LICENSE.txt, COPYING]
|
|
34
34
|
minimum_bytes: 1
|
|
@@ -36,16 +36,16 @@ assertions:
|
|
|
36
36
|
gate: required
|
|
37
37
|
remediation_class: R0
|
|
38
38
|
- id: PRC-A-CORE-003
|
|
39
|
-
revision:
|
|
39
|
+
revision: 2
|
|
40
40
|
control_ids: [USEQ-89F5E97A]
|
|
41
41
|
title: Contribution guidance is present
|
|
42
|
-
statement: A
|
|
42
|
+
statement: A contribution guide containing non-whitespace UTF-8 text exists at the repository root.
|
|
43
43
|
applicability: "true"
|
|
44
44
|
evidence_required:
|
|
45
45
|
- kind: repository-file
|
|
46
46
|
minimum_authority: repository
|
|
47
|
-
description: A
|
|
48
|
-
implementation_id: prc.native.file-present@0.
|
|
47
|
+
description: A root contribution guide containing non-whitespace UTF-8 text from the scanned commit.
|
|
48
|
+
implementation_id: prc.native.file-present@0.2
|
|
49
49
|
parameters:
|
|
50
50
|
paths: [CONTRIBUTING.md, CONTRIBUTING.rst]
|
|
51
51
|
minimum_bytes: 1
|
|
@@ -53,16 +53,16 @@ assertions:
|
|
|
53
53
|
gate: advisory
|
|
54
54
|
remediation_class: R0
|
|
55
55
|
- id: PRC-A-CORE-004
|
|
56
|
-
revision:
|
|
56
|
+
revision: 2
|
|
57
57
|
control_ids: [USEQ-AC6AC548]
|
|
58
58
|
title: Security policy is present
|
|
59
|
-
statement: A
|
|
59
|
+
statement: A security policy containing non-whitespace UTF-8 text exists at the repository root.
|
|
60
60
|
applicability: "true"
|
|
61
61
|
evidence_required:
|
|
62
62
|
- kind: repository-file
|
|
63
63
|
minimum_authority: repository
|
|
64
|
-
description: A
|
|
65
|
-
implementation_id: prc.native.file-present@0.
|
|
64
|
+
description: A root security policy containing non-whitespace UTF-8 text from the scanned commit.
|
|
65
|
+
implementation_id: prc.native.file-present@0.2
|
|
66
66
|
parameters:
|
|
67
67
|
paths: [SECURITY.md, docs/SECURITY.md]
|
|
68
68
|
minimum_bytes: 1
|
|
@@ -70,16 +70,16 @@ assertions:
|
|
|
70
70
|
gate: required
|
|
71
71
|
remediation_class: R0
|
|
72
72
|
- id: PRC-A-CORE-005
|
|
73
|
-
revision:
|
|
73
|
+
revision: 2
|
|
74
74
|
control_ids: [USEQ-D73106BF]
|
|
75
75
|
title: Code of conduct is present
|
|
76
|
-
statement: A
|
|
76
|
+
statement: A code-of-conduct document containing non-whitespace UTF-8 text exists at the repository root.
|
|
77
77
|
applicability: "true"
|
|
78
78
|
evidence_required:
|
|
79
79
|
- kind: repository-file
|
|
80
80
|
minimum_authority: repository
|
|
81
|
-
description: A
|
|
82
|
-
implementation_id: prc.native.file-present@0.
|
|
81
|
+
description: A root code-of-conduct document containing non-whitespace UTF-8 text from the scanned commit.
|
|
82
|
+
implementation_id: prc.native.file-present@0.2
|
|
83
83
|
parameters:
|
|
84
84
|
paths: [CODE_OF_CONDUCT.md, CODE_OF_CONDUCT.rst]
|
|
85
85
|
minimum_bytes: 1
|
|
@@ -87,16 +87,16 @@ assertions:
|
|
|
87
87
|
gate: advisory
|
|
88
88
|
remediation_class: R0
|
|
89
89
|
- id: PRC-A-CORE-006
|
|
90
|
-
revision:
|
|
90
|
+
revision: 2
|
|
91
91
|
control_ids: [USEQ-CA602113]
|
|
92
92
|
title: Code ownership is declared
|
|
93
|
-
statement: A
|
|
93
|
+
statement: A CODEOWNERS file containing non-whitespace UTF-8 text exists in a supported repository location.
|
|
94
94
|
applicability: "true"
|
|
95
95
|
evidence_required:
|
|
96
96
|
- kind: repository-file
|
|
97
97
|
minimum_authority: repository
|
|
98
|
-
description: A
|
|
99
|
-
implementation_id: prc.native.file-present@0.
|
|
98
|
+
description: A CODEOWNERS file containing non-whitespace UTF-8 text from the scanned commit.
|
|
99
|
+
implementation_id: prc.native.file-present@0.2
|
|
100
100
|
parameters:
|
|
101
101
|
paths: [.github/CODEOWNERS, CODEOWNERS, docs/CODEOWNERS]
|
|
102
102
|
minimum_bytes: 1
|
|
@@ -244,16 +244,16 @@ assertions:
|
|
|
244
244
|
gate: required
|
|
245
245
|
remediation_class: R0
|
|
246
246
|
- id: PRC-A-CORE-016
|
|
247
|
-
revision:
|
|
247
|
+
revision: 2
|
|
248
248
|
control_ids: [PRC-36-011]
|
|
249
249
|
title: Dependency updates are configured
|
|
250
|
-
statement: A supported dependency-update automation configuration is present.
|
|
250
|
+
statement: A supported dependency-update automation configuration containing non-whitespace UTF-8 text is present.
|
|
251
251
|
applicability: inventory.package_ecosystems.size() > 0
|
|
252
252
|
evidence_required:
|
|
253
253
|
- kind: repository-file
|
|
254
254
|
minimum_authority: repository
|
|
255
|
-
description: A
|
|
256
|
-
implementation_id: prc.native.file-present@0.
|
|
255
|
+
description: A supported dependency-update configuration containing non-whitespace UTF-8 text.
|
|
256
|
+
implementation_id: prc.native.file-present@0.2
|
|
257
257
|
parameters:
|
|
258
258
|
paths: [.github/dependabot.yml, .github/dependabot.yaml, renovate.json, renovate.json5, .renovaterc, .renovaterc.json]
|
|
259
259
|
minimum_bytes: 1
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
schema_version: prc.benchmark-suite/v0.2
|
|
2
|
-
id: prc.benchmark.core-native@1.
|
|
2
|
+
id: prc.benchmark.core-native@1.1
|
|
3
3
|
title: Comprehensive core native assertion benchmark
|
|
4
4
|
profile_id: prc/core-repository
|
|
5
5
|
cases:
|
|
@@ -78,6 +78,15 @@ cases:
|
|
|
78
78
|
target: targets/readme-missing
|
|
79
79
|
expectations:
|
|
80
80
|
- {assertion_id: PRC-A-CORE-001, assessment: fail, execution: completed}
|
|
81
|
+
- id: readme-whitespace
|
|
82
|
+
target: targets/baseline
|
|
83
|
+
setup:
|
|
84
|
+
- operation: replace_text
|
|
85
|
+
path: README.md
|
|
86
|
+
find: "# Benchmark baseline\n\nThis fixture exercises repository, inapplicable, manual, and blocked outcomes.\n"
|
|
87
|
+
replace: "\uFEFF\u00A0\u2003\n"
|
|
88
|
+
expectations:
|
|
89
|
+
- {assertion_id: PRC-A-CORE-001, assessment: fail, execution: completed}
|
|
81
90
|
- id: test-declaration-valid
|
|
82
91
|
target: targets/test-declaration-valid
|
|
83
92
|
expectations:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
schema_version: prc.benchmark-suite/v0.
|
|
2
|
-
id: prc.benchmark.core-native@0.
|
|
1
|
+
schema_version: prc.benchmark-suite/v0.2
|
|
2
|
+
id: prc.benchmark.core-native@0.2
|
|
3
3
|
title: Core native assertion benchmark
|
|
4
4
|
profile_id: prc/core-repository
|
|
5
5
|
cases:
|
|
@@ -39,6 +39,17 @@ cases:
|
|
|
39
39
|
- assertion_id: PRC-A-CORE-001
|
|
40
40
|
assessment: fail
|
|
41
41
|
execution: completed
|
|
42
|
+
- id: readme-whitespace
|
|
43
|
+
target: targets/baseline
|
|
44
|
+
setup:
|
|
45
|
+
- operation: replace_text
|
|
46
|
+
path: README.md
|
|
47
|
+
find: "# Benchmark baseline\n\nThis fixture exercises repository, inapplicable, manual, and blocked outcomes.\n"
|
|
48
|
+
replace: "\uFEFF\u00A0\u2003\n"
|
|
49
|
+
expectations:
|
|
50
|
+
- assertion_id: PRC-A-CORE-001
|
|
51
|
+
assessment: fail
|
|
52
|
+
execution: completed
|
|
42
53
|
- id: workflow-malformed
|
|
43
54
|
target: targets/workflow-malformed
|
|
44
55
|
expectations:
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
schema_version: prc.pack/v0.1
|
|
2
|
-
id: prc.pack.core-foundation@0.
|
|
2
|
+
id: prc.pack.core-foundation@0.2
|
|
3
3
|
title: Core repository validated foundation
|
|
4
4
|
description: A small, measured foundation of deterministic repository checks.
|
|
5
5
|
publisher_id: prc-project
|
|
@@ -8,7 +8,7 @@ engine_apis: [prc.engine/v0.1]
|
|
|
8
8
|
profile_ids: [prc/core-repository]
|
|
9
9
|
assertions:
|
|
10
10
|
- assertion_id: PRC-A-CORE-001
|
|
11
|
-
implementation_id: prc.native.file-present@0.
|
|
11
|
+
implementation_id: prc.native.file-present@0.2
|
|
12
12
|
validated_outcomes: [pass, fail]
|
|
13
13
|
- assertion_id: PRC-A-CORE-007
|
|
14
14
|
implementation_id: prc.native.dependency-lock@0.1
|
|
@@ -17,9 +17,9 @@ assertions:
|
|
|
17
17
|
implementation_id: prc.native.github-workflow-valid@0.1
|
|
18
18
|
validated_outcomes: [pass, not_applicable, error]
|
|
19
19
|
benchmark:
|
|
20
|
-
suite_id: prc.benchmark.core-native@0.
|
|
20
|
+
suite_id: prc.benchmark.core-native@0.2
|
|
21
21
|
suite_path: fixtures/benchmarks/core-native/suite.yaml
|
|
22
|
-
suite_sha256:
|
|
22
|
+
suite_sha256: 06a20e9bf344e4a1684043f6a90a1aed714eca4efc59a015d84e890e5acd5395
|
|
23
23
|
limitations:
|
|
24
24
|
- The pack covers only three native assertions and is not the complete core profile.
|
|
25
25
|
- The initial fixtures do not establish cross-platform or large-repository performance.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
schema_version: prc.pack/v0.1
|
|
2
|
-
id: prc.pack.core-native@1.
|
|
2
|
+
id: prc.pack.core-native@1.1
|
|
3
3
|
title: Core native assertion pack
|
|
4
4
|
description: Catalog-wide deterministic checks measured against the comprehensive core fixture corpus.
|
|
5
5
|
publisher_id: prc-project
|
|
@@ -7,12 +7,12 @@ maintenance: active
|
|
|
7
7
|
engine_apis: [prc.engine/v0.1]
|
|
8
8
|
profile_ids: [prc/core-repository, prc/api, prc/kubernetes]
|
|
9
9
|
assertions:
|
|
10
|
-
- {assertion_id: PRC-A-CORE-001, implementation_id: prc.native.file-present@0.
|
|
11
|
-
- {assertion_id: PRC-A-CORE-002, implementation_id: prc.native.file-present@0.
|
|
12
|
-
- {assertion_id: PRC-A-CORE-003, implementation_id: prc.native.file-present@0.
|
|
13
|
-
- {assertion_id: PRC-A-CORE-004, implementation_id: prc.native.file-present@0.
|
|
14
|
-
- {assertion_id: PRC-A-CORE-005, implementation_id: prc.native.file-present@0.
|
|
15
|
-
- {assertion_id: PRC-A-CORE-006, implementation_id: prc.native.file-present@0.
|
|
10
|
+
- {assertion_id: PRC-A-CORE-001, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail]}
|
|
11
|
+
- {assertion_id: PRC-A-CORE-002, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail]}
|
|
12
|
+
- {assertion_id: PRC-A-CORE-003, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail]}
|
|
13
|
+
- {assertion_id: PRC-A-CORE-004, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail]}
|
|
14
|
+
- {assertion_id: PRC-A-CORE-005, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail]}
|
|
15
|
+
- {assertion_id: PRC-A-CORE-006, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail]}
|
|
16
16
|
- {assertion_id: PRC-A-CORE-007, implementation_id: prc.native.dependency-lock@0.1, validated_outcomes: [pass, fail, not_applicable]}
|
|
17
17
|
- {assertion_id: PRC-A-CORE-008, implementation_id: prc.native.github-action-pin@0.1, validated_outcomes: [pass, fail, not_applicable]}
|
|
18
18
|
- {assertion_id: PRC-A-CORE-009, implementation_id: prc.native.ci-present@0.1, validated_outcomes: [pass, fail]}
|
|
@@ -22,7 +22,7 @@ assertions:
|
|
|
22
22
|
- {assertion_id: PRC-A-CORE-013, implementation_id: prc.native.analysis-evidence@0.1, validated_outcomes: [blocked]}
|
|
23
23
|
- {assertion_id: PRC-A-CORE-014, implementation_id: prc.native.final-newline@0.1, validated_outcomes: [pass, fail]}
|
|
24
24
|
- {assertion_id: PRC-A-CORE-015, implementation_id: prc.native.git-revision@0.1, validated_outcomes: [pass, fail]}
|
|
25
|
-
- {assertion_id: PRC-A-CORE-016, implementation_id: prc.native.file-present@0.
|
|
25
|
+
- {assertion_id: PRC-A-CORE-016, implementation_id: prc.native.file-present@0.2, validated_outcomes: [pass, fail, not_applicable]}
|
|
26
26
|
- {assertion_id: PRC-A-CORE-017, implementation_id: prc.native.github-workflow-valid@0.1, validated_outcomes: [pass, not_applicable, error]}
|
|
27
27
|
- {assertion_id: PRC-A-CORE-018, implementation_id: prc.native.github-workflow-jobs@0.1, validated_outcomes: [pass, fail, not_applicable, error]}
|
|
28
28
|
- {assertion_id: PRC-A-CORE-019, implementation_id: prc.native.github-workflow-timeouts@0.1, validated_outcomes: [pass, fail, not_applicable, error]}
|
|
@@ -48,9 +48,9 @@ assertions:
|
|
|
48
48
|
- {assertion_id: PRC-A-K8S-003, implementation_id: prc.native.kubernetes-capabilities@0.1, validated_outcomes: [pass, fail, not_applicable]}
|
|
49
49
|
- {assertion_id: PRC-A-K8S-004, implementation_id: prc.native.kubernetes-seccomp@0.1, validated_outcomes: [pass, fail, not_applicable]}
|
|
50
50
|
benchmark:
|
|
51
|
-
suite_id: prc.benchmark.core-native@1.
|
|
51
|
+
suite_id: prc.benchmark.core-native@1.1
|
|
52
52
|
suite_path: fixtures/benchmarks/core-native/suite-comprehensive.yaml
|
|
53
|
-
suite_sha256:
|
|
53
|
+
suite_sha256: 532a5828a6e283d38ddcdbae71fdbbfd03159128067e5a8037dac3f6a36ac4b3
|
|
54
54
|
limitations:
|
|
55
55
|
- Manual-review and adapter-backed assertions are validated only in their fail-closed manual or blocked states.
|
|
56
56
|
- OpenAPI operation checks cover direct path and webhook operations; referenced Path Items, callbacks, multi-document descriptions, and referenced responses require a future bounded resolver or adapter.
|
package/bin/prc.exe
CHANGED
|
Binary file
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/adapter-execution-v0.3.schema.json",
|
|
4
|
+
"title": "Bound Production Readiness Adapter Execution v0.3",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "execution_id", "adapter_run_id", "adapter_id", "manifest_sha256", "image", "resolution", "data_inputs", "subject", "started_at", "completed_at", "duration_ms", "diagnostics_sha256", "diagnostics_bytes", "transcript"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {"const": "prc.adapter-execution/v0.3"},
|
|
10
|
+
"execution_id": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
11
|
+
"adapter_run_id": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
12
|
+
"adapter_id": {"type": "string", "pattern": "^prc\\.adapter\\.[a-z0-9.-]+@[0-9]+\\.[0-9]+$"},
|
|
13
|
+
"manifest_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
14
|
+
"image": {"type": "string", "pattern": "^.+@sha256:[0-9a-f]{64}$"},
|
|
15
|
+
"resolution": {"$ref": "#/$defs/resolution"},
|
|
16
|
+
"data_inputs": {
|
|
17
|
+
"type": "array",
|
|
18
|
+
"maxItems": 16,
|
|
19
|
+
"items": {"$ref": "#/$defs/data_input"}
|
|
20
|
+
},
|
|
21
|
+
"subject": {"$ref": "#/$defs/subject"},
|
|
22
|
+
"started_at": {"type": "string", "format": "date-time"},
|
|
23
|
+
"completed_at": {"type": "string", "format": "date-time"},
|
|
24
|
+
"duration_ms": {"type": "integer", "minimum": 0},
|
|
25
|
+
"diagnostics_sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
26
|
+
"diagnostics_bytes": {"type": "integer", "minimum": 0},
|
|
27
|
+
"transcript": {"$ref": "#/$defs/transcript"}
|
|
28
|
+
},
|
|
29
|
+
"$defs": {
|
|
30
|
+
"data_input": {
|
|
31
|
+
"type": "object",
|
|
32
|
+
"additionalProperties": false,
|
|
33
|
+
"required": ["name", "destination", "sha256", "files", "bytes"],
|
|
34
|
+
"properties": {
|
|
35
|
+
"name": {"type": "string", "pattern": "^[a-z0-9][a-z0-9.-]{0,127}$"},
|
|
36
|
+
"destination": {"type": "string", "pattern": "^/prc-inputs/[a-z0-9][a-z0-9.-]{0,127}$"},
|
|
37
|
+
"sha256": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
38
|
+
"files": {"type": "integer", "minimum": 1},
|
|
39
|
+
"bytes": {"type": "integer", "minimum": 1}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"resolution": {
|
|
43
|
+
"type": "object",
|
|
44
|
+
"additionalProperties": false,
|
|
45
|
+
"required": ["source", "publisher_id", "trust"],
|
|
46
|
+
"properties": {
|
|
47
|
+
"source": {"enum": ["explicit-local", "registry"]},
|
|
48
|
+
"publisher_id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9.-]{0,127}$"},
|
|
49
|
+
"trust": {"enum": ["local-explicit", "first-party-sandboxed", "verified-community", "unverified-community", "local"]},
|
|
50
|
+
"registry_id": {"type": "string", "pattern": "^prc\\.adapter-registry\\.[a-z0-9.-]+@[0-9]+\\.[0-9]+$"},
|
|
51
|
+
"registry_revision": {"type": "integer", "minimum": 1},
|
|
52
|
+
"registry_digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
53
|
+
},
|
|
54
|
+
"allOf": [
|
|
55
|
+
{
|
|
56
|
+
"if": {"properties": {"source": {"const": "registry"}}},
|
|
57
|
+
"then": {
|
|
58
|
+
"required": ["registry_id", "registry_revision", "registry_digest"],
|
|
59
|
+
"properties": {"trust": {"enum": ["first-party-sandboxed", "verified-community", "unverified-community", "local"]}}
|
|
60
|
+
},
|
|
61
|
+
"else": {
|
|
62
|
+
"properties": {"trust": {"const": "local-explicit"}},
|
|
63
|
+
"not": {"anyOf": [{"required": ["registry_id"]}, {"required": ["registry_revision"]}, {"required": ["registry_digest"]}]}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"subject": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"additionalProperties": false,
|
|
71
|
+
"required": ["target_name", "inventory_digest"],
|
|
72
|
+
"properties": {
|
|
73
|
+
"target_name": {"type": "string", "minLength": 1},
|
|
74
|
+
"target_commit": {"type": "string", "pattern": "^[0-9a-f]{40,64}$"},
|
|
75
|
+
"inventory_digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"}
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
"location": {
|
|
79
|
+
"type": "object",
|
|
80
|
+
"additionalProperties": false,
|
|
81
|
+
"required": ["path"],
|
|
82
|
+
"properties": {
|
|
83
|
+
"path": {"type": "string", "minLength": 1},
|
|
84
|
+
"line": {"type": "integer", "minimum": 0},
|
|
85
|
+
"column": {"type": "integer", "minimum": 0}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"observation": {
|
|
89
|
+
"type": "object",
|
|
90
|
+
"additionalProperties": false,
|
|
91
|
+
"required": ["id", "kind", "outcome", "summary", "locations"],
|
|
92
|
+
"properties": {
|
|
93
|
+
"id": {"type": "string", "minLength": 1},
|
|
94
|
+
"kind": {"type": "string", "minLength": 1},
|
|
95
|
+
"outcome": {"enum": ["found", "not_found", "value", "unsupported"]},
|
|
96
|
+
"summary": {"type": "string", "minLength": 1},
|
|
97
|
+
"locations": {"type": "array", "items": {"$ref": "#/$defs/location"}},
|
|
98
|
+
"data": {"type": "object"}
|
|
99
|
+
}
|
|
100
|
+
},
|
|
101
|
+
"artifact": {
|
|
102
|
+
"type": "object",
|
|
103
|
+
"additionalProperties": false,
|
|
104
|
+
"required": ["id", "media_type", "digest", "size"],
|
|
105
|
+
"properties": {
|
|
106
|
+
"id": {"type": "string", "minLength": 1},
|
|
107
|
+
"media_type": {"type": "string", "minLength": 1},
|
|
108
|
+
"digest": {"type": "string", "pattern": "^sha256:[0-9a-f]{64}$"},
|
|
109
|
+
"size": {"type": "integer", "minimum": 0},
|
|
110
|
+
"path": {"type": "string", "minLength": 1}
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"log": {
|
|
114
|
+
"type": "object",
|
|
115
|
+
"additionalProperties": false,
|
|
116
|
+
"required": ["level", "message"],
|
|
117
|
+
"properties": {
|
|
118
|
+
"level": {"enum": ["debug", "info", "warning", "error"]},
|
|
119
|
+
"message": {"type": "string", "minLength": 1}
|
|
120
|
+
}
|
|
121
|
+
},
|
|
122
|
+
"summary": {
|
|
123
|
+
"type": "object",
|
|
124
|
+
"additionalProperties": false,
|
|
125
|
+
"required": ["status", "counts"],
|
|
126
|
+
"properties": {
|
|
127
|
+
"status": {"enum": ["completed", "partial", "unsupported", "configuration_error", "execution_error", "timeout", "parse_error"]},
|
|
128
|
+
"counts": {"type": "object", "additionalProperties": {"type": "integer", "minimum": 0}},
|
|
129
|
+
"reason": {"type": "string", "minLength": 1}
|
|
130
|
+
},
|
|
131
|
+
"allOf": [{"if": {"properties": {"status": {"not": {"const": "completed"}}}}, "then": {"required": ["reason"]}}]
|
|
132
|
+
},
|
|
133
|
+
"transcript": {
|
|
134
|
+
"type": "object",
|
|
135
|
+
"additionalProperties": false,
|
|
136
|
+
"required": ["logs", "observations", "artifacts", "summary"],
|
|
137
|
+
"properties": {
|
|
138
|
+
"logs": {"type": "array", "items": {"$ref": "#/$defs/log"}},
|
|
139
|
+
"observations": {"type": "array", "items": {"$ref": "#/$defs/observation"}},
|
|
140
|
+
"artifacts": {"type": "array", "items": {"$ref": "#/$defs/artifact"}},
|
|
141
|
+
"summary": {"$ref": "#/$defs/summary"}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/authoritative-evidence-bundle.schema.json",
|
|
4
|
+
"title": "Production Readiness Authoritative Evidence Bundle v0.1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "id", "catalog_sha256", "inventory_sha256", "authority", "entries"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {"const": "prc.authoritative-evidence-bundle/v0.1"},
|
|
10
|
+
"id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9./@_-]{0,255}$"},
|
|
11
|
+
"catalog_sha256": {"$ref": "#/$defs/digest"},
|
|
12
|
+
"inventory_sha256": {"$ref": "#/$defs/digest"},
|
|
13
|
+
"authority": {"$ref": "#/$defs/authority"},
|
|
14
|
+
"entries": {
|
|
15
|
+
"type": "array",
|
|
16
|
+
"minItems": 1,
|
|
17
|
+
"maxItems": 765,
|
|
18
|
+
"items": {"$ref": "#/$defs/entry"}
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"$defs": {
|
|
22
|
+
"digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
23
|
+
"authority": {
|
|
24
|
+
"enum": ["repository", "artifact", "executed", "environment", "external_registry", "structured_record"]
|
|
25
|
+
},
|
|
26
|
+
"entry": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": ["template_id", "provider_id", "program", "evidence"],
|
|
30
|
+
"properties": {
|
|
31
|
+
"template_id": {"$ref": "#/$defs/digest"},
|
|
32
|
+
"provider_id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._/@:-]{0,255}$"},
|
|
33
|
+
"program": {"$ref": "control-check-program.schema.json"},
|
|
34
|
+
"evidence": {"$ref": "control-check-evidence.schema.json"}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/authoritative-evidence-set.schema.json",
|
|
4
|
+
"title": "Production Readiness Authoritative Evidence Set v0.1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": ["schema_version", "trust_store_file", "bundles"],
|
|
8
|
+
"properties": {
|
|
9
|
+
"schema_version": {"const": "prc.authoritative-evidence-set/v0.1"},
|
|
10
|
+
"trust_store_file": {"$ref": "#/$defs/file_name"},
|
|
11
|
+
"bundles": {
|
|
12
|
+
"type": "array",
|
|
13
|
+
"minItems": 1,
|
|
14
|
+
"maxItems": 6,
|
|
15
|
+
"items": {"$ref": "#/$defs/bundle"}
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"$defs": {
|
|
19
|
+
"file_name": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"pattern": "^[A-Za-z0-9][A-Za-z0-9._-]{0,127}$"
|
|
22
|
+
},
|
|
23
|
+
"authority": {
|
|
24
|
+
"enum": ["artifact", "environment", "executed", "external_registry", "repository", "structured_record"]
|
|
25
|
+
},
|
|
26
|
+
"bundle": {
|
|
27
|
+
"type": "object",
|
|
28
|
+
"additionalProperties": false,
|
|
29
|
+
"required": ["authority", "bundle_file", "policy_signature_file", "evidence_signature_file"],
|
|
30
|
+
"properties": {
|
|
31
|
+
"authority": {"$ref": "#/$defs/authority"},
|
|
32
|
+
"bundle_file": {"$ref": "#/$defs/file_name"},
|
|
33
|
+
"policy_signature_file": {"$ref": "#/$defs/file_name"},
|
|
34
|
+
"evidence_signature_file": {"$ref": "#/$defs/file_name"}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/authoritative-evidence-verification.schema.json",
|
|
4
|
+
"title": "Production Readiness Authoritative Evidence Verification v0.1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version", "bundle_id", "bundle_sha256", "policy_sha256", "catalog_sha256", "inventory_sha256",
|
|
9
|
+
"authority", "entry_count", "entries", "policy_signature", "evidence_signature"
|
|
10
|
+
],
|
|
11
|
+
"properties": {
|
|
12
|
+
"schema_version": {"const": "prc.authoritative-evidence-verification/v0.1"},
|
|
13
|
+
"bundle_id": {"type": "string", "pattern": "^[A-Za-z0-9][A-Za-z0-9./@_-]{0,255}$"},
|
|
14
|
+
"bundle_sha256": {"$ref": "#/$defs/digest"},
|
|
15
|
+
"policy_sha256": {"$ref": "#/$defs/digest"},
|
|
16
|
+
"catalog_sha256": {"$ref": "#/$defs/digest"},
|
|
17
|
+
"inventory_sha256": {"$ref": "#/$defs/digest"},
|
|
18
|
+
"authority": {
|
|
19
|
+
"enum": ["repository", "artifact", "executed", "environment", "external_registry", "structured_record"]
|
|
20
|
+
},
|
|
21
|
+
"entry_count": {"type": "integer", "minimum": 1, "maximum": 765},
|
|
22
|
+
"entries": {
|
|
23
|
+
"type": "array",
|
|
24
|
+
"minItems": 1,
|
|
25
|
+
"maxItems": 765,
|
|
26
|
+
"items": {"$ref": "#/$defs/entry"}
|
|
27
|
+
},
|
|
28
|
+
"policy_signature": {"$ref": "signature-verification.schema.json"},
|
|
29
|
+
"evidence_signature": {"$ref": "signature-verification.schema.json"}
|
|
30
|
+
},
|
|
31
|
+
"$defs": {
|
|
32
|
+
"digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
|
|
33
|
+
"entry": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": false,
|
|
36
|
+
"required": ["template_id", "provider_id", "program", "evidence_sha256", "outcome", "reason_code"],
|
|
37
|
+
"properties": {
|
|
38
|
+
"template_id": {"$ref": "#/$defs/digest"},
|
|
39
|
+
"provider_id": {"type": "string", "pattern": "^[a-z0-9][a-z0-9._/@:-]{0,255}$"},
|
|
40
|
+
"program": {"$ref": "control-check-program.schema.json"},
|
|
41
|
+
"evidence_sha256": {"$ref": "#/$defs/digest"},
|
|
42
|
+
"outcome": {"enum": ["pass", "fail", "blocked", "not_applicable"]},
|
|
43
|
+
"reason_code": {
|
|
44
|
+
"enum": [
|
|
45
|
+
"passed", "predicate_false", "not_applicable", "invalid_program", "invalid_evidence",
|
|
46
|
+
"evidence_binding_mismatch", "wrong_authority", "evidence_stale", "evidence_from_future",
|
|
47
|
+
"evidence_incomplete", "evidence_conflicting", "applicability_unknown",
|
|
48
|
+
"not_applicable_disallowed", "applicability_proof_missing", "fact_missing", "fact_type_mismatch"
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/automatic-coverage.schema.json",
|
|
4
|
+
"title": "Production Readiness Automatic Coverage v0.1",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"additionalProperties": false,
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version", "control_count", "reviewed_routing_control_count",
|
|
9
|
+
"deterministic_control_count", "nondeterministic_control_count", "advisory_ai_review_control_count", "exact_clause_count",
|
|
10
|
+
"exact_predicate_clause_count", "built_in_collector_clause_count",
|
|
11
|
+
"signed_import_supported_clause_count", "authorities"
|
|
12
|
+
],
|
|
13
|
+
"properties": {
|
|
14
|
+
"schema_version": {"const": "prc.automatic-coverage/v0.1"},
|
|
15
|
+
"control_count": {"type": "integer", "minimum": 1},
|
|
16
|
+
"reviewed_routing_control_count": {"type": "integer", "minimum": 0},
|
|
17
|
+
"deterministic_control_count": {"type": "integer", "minimum": 0},
|
|
18
|
+
"nondeterministic_control_count": {"type": "integer", "minimum": 0},
|
|
19
|
+
"advisory_ai_review_control_count": {"type": "integer", "minimum": 0},
|
|
20
|
+
"exact_clause_count": {"type": "integer", "minimum": 0},
|
|
21
|
+
"exact_predicate_clause_count": {"type": "integer", "minimum": 0},
|
|
22
|
+
"built_in_collector_clause_count": {"type": "integer", "minimum": 0},
|
|
23
|
+
"signed_import_supported_clause_count": {"type": "integer", "minimum": 0},
|
|
24
|
+
"authorities": {
|
|
25
|
+
"type": "array",
|
|
26
|
+
"minItems": 1,
|
|
27
|
+
"maxItems": 6,
|
|
28
|
+
"items": {"$ref": "#/$defs/authority"}
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"$defs": {
|
|
32
|
+
"authority": {
|
|
33
|
+
"type": "object",
|
|
34
|
+
"additionalProperties": false,
|
|
35
|
+
"required": [
|
|
36
|
+
"name", "exact_clause_count", "built_in_collector_clause_count",
|
|
37
|
+
"signed_import_supported_clause_count"
|
|
38
|
+
],
|
|
39
|
+
"properties": {
|
|
40
|
+
"name": {
|
|
41
|
+
"enum": ["artifact", "environment", "executed", "external_registry", "repository", "structured_record"]
|
|
42
|
+
},
|
|
43
|
+
"exact_clause_count": {"type": "integer", "minimum": 0},
|
|
44
|
+
"built_in_collector_clause_count": {"type": "integer", "minimum": 0},
|
|
45
|
+
"signed_import_supported_clause_count": {"type": "integer", "minimum": 0}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|