@marinjursic/prc-linux-arm64 0.1.9 → 0.2.0

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.
Files changed (39) hide show
  1. package/bin/catalog/assertions/core-repository.yaml +28 -28
  2. package/bin/catalog/control-check-bindings.json.gz +0 -0
  3. package/bin/catalog/control-check-programs.json.gz +0 -0
  4. package/bin/catalog/control-contracts.json.gz +0 -0
  5. package/bin/fixtures/benchmarks/core-native/suite-comprehensive.yaml +10 -1
  6. package/bin/fixtures/benchmarks/core-native/suite.yaml +13 -2
  7. package/bin/packs/core-foundation.yaml +4 -4
  8. package/bin/packs/core-native.yaml +10 -10
  9. package/bin/prc +0 -0
  10. package/bin/schemas/adapter-execution-v0.3.schema.json +145 -0
  11. package/bin/schemas/authoritative-evidence-bundle.schema.json +38 -0
  12. package/bin/schemas/authoritative-evidence-set.schema.json +38 -0
  13. package/bin/schemas/authoritative-evidence-verification.schema.json +54 -0
  14. package/bin/schemas/automatic-coverage.schema.json +49 -0
  15. package/bin/schemas/control-check-bindings.schema.json +119 -0
  16. package/bin/schemas/control-check-evidence-v0.1.schema.json +244 -0
  17. package/bin/schemas/control-check-evidence.schema.json +244 -0
  18. package/bin/schemas/control-check-program-catalog.schema.json +160 -0
  19. package/bin/schemas/control-check-program-definitions.schema.json +139 -0
  20. package/bin/schemas/control-check-program.schema.json +298 -0
  21. package/bin/schemas/control-classification-final.schema.json +64 -0
  22. package/bin/schemas/control-classification-review.schema.json +161 -0
  23. package/bin/schemas/control-classification-skeptic-review.schema.json +96 -0
  24. package/bin/schemas/control-classification-strength-review.schema.json +90 -0
  25. package/bin/schemas/control-contracts.schema.json +101 -12
  26. package/bin/schemas/control-review-output-v0.2.schema.json +66 -0
  27. package/bin/schemas/control-review-output.schema.json +22 -3
  28. package/bin/schemas/evidence-requirements.schema.json +144 -0
  29. package/bin/schemas/evidence-set-verification.schema.json +65 -0
  30. package/bin/schemas/provider-capabilities.schema.json +26 -0
  31. package/bin/schemas/run-result-v0.10.schema.json +5 -5
  32. package/bin/schemas/run-result-v0.11.schema.json +5 -5
  33. package/bin/schemas/run-result-v0.12.schema.json +270 -0
  34. package/bin/schemas/run-result.schema.json +166 -16
  35. package/bin/schemas/signature-verification.schema.json +8 -1
  36. package/bin/schemas/signature.schema.json +8 -1
  37. package/bin/schemas/trust-store.schema.json +8 -1
  38. package/manifest.json +142 -32
  39. package/package.json +1 -1
@@ -0,0 +1,160 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/control-check-program-catalog.schema.json",
4
+ "title": "Authenticated exact deterministic clause programs v0.4",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schema_version", "generator_id", "program_schema_version", "program_schema_sha256",
9
+ "binding_schema_version", "binding_catalog_sha256", "definition_schema_sha256",
10
+ "definition_corpus_sha256", "registry_version", "registry_sha256", "methodology_sha256",
11
+ "classification_corpus_sha256", "control_count", "template_count", "predicate_defined_count",
12
+ "implementation_missing_count", "provider_capability_missing_count",
13
+ "end_to_end_runnable_template_count", "end_to_end_runnable_control_count",
14
+ "blocked_control_count", "classification_error_count", "predicate_shape_counts",
15
+ "templates", "catalog_sha256"
16
+ ],
17
+ "properties": {
18
+ "schema_version": {"const": "prc.control-check-program-catalog/v0.4"},
19
+ "generator_id": {"const": "prc.build-control-check-programs@0.4"},
20
+ "program_schema_version": {"const": "prc.control-check-program/v0.1"},
21
+ "program_schema_sha256": {"$ref": "#/$defs/digest"},
22
+ "binding_schema_version": {"const": "prc.control-check-bindings/v0.1"},
23
+ "binding_catalog_sha256": {"$ref": "#/$defs/digest"},
24
+ "definition_schema_sha256": {"$ref": "#/$defs/digest"},
25
+ "definition_corpus_sha256": {"$ref": "#/$defs/digest"},
26
+ "registry_version": {"type": "string", "pattern": "^[0-9]+\\.[0-9]+\\.[0-9]+$"},
27
+ "registry_sha256": {"$ref": "#/$defs/digest"},
28
+ "methodology_sha256": {"$ref": "#/$defs/digest"},
29
+ "classification_corpus_sha256": {"$ref": "#/$defs/digest"},
30
+ "control_count": {"const": 686},
31
+ "template_count": {"const": 765},
32
+ "predicate_defined_count": {"const": 765},
33
+ "implementation_missing_count": {"const": 0},
34
+ "provider_capability_missing_count": {"type": "integer", "minimum": 0, "maximum": 765},
35
+ "end_to_end_runnable_template_count": {"type": "integer", "minimum": 0, "maximum": 765},
36
+ "end_to_end_runnable_control_count": {"type": "integer", "minimum": 0, "maximum": 686},
37
+ "blocked_control_count": {"type": "integer", "minimum": 0, "maximum": 686},
38
+ "classification_error_count": {"const": 0},
39
+ "predicate_shape_counts": {
40
+ "type": "object", "minProperties": 1, "maxProperties": 128,
41
+ "propertyNames": {"pattern": "^[a-z][a-z0-9_]*$"},
42
+ "additionalProperties": {"type": "integer", "minimum": 1, "maximum": 765}
43
+ },
44
+ "templates": {
45
+ "type": "array", "minItems": 765, "maxItems": 765,
46
+ "items": {"$ref": "#/$defs/template"}
47
+ },
48
+ "catalog_sha256": {"$ref": "#/$defs/digest"}
49
+ },
50
+ "$defs": {
51
+ "digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
52
+ "control_id": {"type": "string", "pattern": "^(PRC-[0-9]{2}-[0-9]{3}|USEQ-[A-F0-9]{8})$"},
53
+ "fact_id": {"type": "string", "minLength": 3, "maxLength": 128, "pattern": "^[A-Za-z0-9_.-]+$"},
54
+ "bounded_text": {"type": "string", "minLength": 20, "maxLength": 12000},
55
+ "fact_type": {"enum": ["identity", "schema", "digest", "state", "string", "boolean", "number", "time", "string_set", "identity_map", "schema_map", "digest_map", "state_map", "string_map", "boolean_map", "number_map", "time_map", "directed_graph"]},
56
+ "authority": {"enum": ["repository", "artifact", "executed", "environment", "external_registry", "structured_record"]},
57
+ "checker_family": {"enum": ["inventory_fact", "structured_document", "package_metadata", "ci_policy", "container_iac", "source_ast", "artifact_integrity", "analysis_adapter", "execution_evidence", "environment_evidence", "structured_record"]},
58
+ "raw_fact_contract": {
59
+ "type": "object", "additionalProperties": false,
60
+ "required": ["fact_id", "fact_type", "authority", "raw_value_semantics", "source_requirement", "complete_required"],
61
+ "properties": {
62
+ "fact_id": {"$ref": "#/$defs/fact_id"},
63
+ "fact_type": {"$ref": "#/$defs/fact_type"},
64
+ "authority": {"$ref": "#/$defs/authority"},
65
+ "raw_value_semantics": {"$ref": "#/$defs/bounded_text"},
66
+ "source_requirement": {"$ref": "#/$defs/bounded_text"},
67
+ "complete_required": {"const": true}
68
+ }
69
+ },
70
+ "parameter_contract": {
71
+ "type": "object", "additionalProperties": false,
72
+ "required": ["parameter_id", "parameter_type", "value_origin", "source_requirement"],
73
+ "properties": {
74
+ "parameter_id": {"$ref": "#/$defs/fact_id"},
75
+ "parameter_type": {"$ref": "#/$defs/fact_type"},
76
+ "value_origin": {"enum": ["scanner_inventory", "independently_authenticated_policy", "independently_authenticated_context"]},
77
+ "source_requirement": {"$ref": "#/$defs/bounded_text"}
78
+ }
79
+ },
80
+ "collector_contract": {
81
+ "type": "object", "additionalProperties": false,
82
+ "required": ["collector_id", "required_sources", "inventory_contract", "normalization_contract", "completeness_contract", "freshness_contract", "provider_status"],
83
+ "properties": {
84
+ "collector_id": {"type": "string", "pattern": "^prc\\.collect\\.[a-z0-9.-]+@[0-9]+\\.[0-9]+$"},
85
+ "required_sources": {"type": "array", "minItems": 1, "maxItems": 20, "uniqueItems": true, "items": {"$ref": "#/$defs/bounded_text"}},
86
+ "inventory_contract": {"$ref": "#/$defs/bounded_text"},
87
+ "normalization_contract": {"$ref": "#/$defs/bounded_text"},
88
+ "completeness_contract": {"$ref": "#/$defs/bounded_text"},
89
+ "freshness_contract": {"$ref": "#/$defs/bounded_text"},
90
+ "provider_status": {"enum": ["registered", "unregistered"]}
91
+ }
92
+ },
93
+ "runtime_requirements": {
94
+ "type": "object", "additionalProperties": false,
95
+ "required": [
96
+ "subject_id", "subjects", "inventory_sha256", "maximum_evidence_age_seconds",
97
+ "allow_not_applicable", "applicability_proof_contract_sha256", "sealed_parameters",
98
+ "sealed_parameters_bound_by", "evidence_provider_may_supply_parameters",
99
+ "provider_registration", "provider_claimed", "domain_evidence_collector", "missing_capability_result"
100
+ ],
101
+ "properties": {
102
+ "subject_id": {"const": "inject_at_runtime"},
103
+ "subjects": {"const": "inject_complete_bounded_inventory_at_runtime"},
104
+ "inventory_sha256": {"const": "inject_at_runtime"},
105
+ "maximum_evidence_age_seconds": {"const": "inject_approved_freshness_at_runtime"},
106
+ "allow_not_applicable": {"const": "inject_reviewed_applicability_at_runtime"},
107
+ "applicability_proof_contract_sha256": {"const": "inject_at_runtime"},
108
+ "sealed_parameters": {"const": "compile_from_declared_trusted_origin_before_requesting_evidence"},
109
+ "sealed_parameters_bound_by": {"const": "program_sha256"},
110
+ "evidence_provider_may_supply_parameters": {"const": false},
111
+ "provider_registration": {"const": "required_before_evidence"},
112
+ "provider_claimed": {"type": "boolean"},
113
+ "domain_evidence_collector": {"enum": ["not_shipped_or_registered", "shipped_and_registered"]},
114
+ "missing_capability_result": {"const": "blocked"}
115
+ }
116
+ },
117
+ "template": {
118
+ "type": "object", "additionalProperties": false,
119
+ "required": [
120
+ "template_id", "program_schema_version", "program_schema_sha256", "control_id",
121
+ "control_revision", "control_semantic_sha256", "clause_ordinal", "clause_id",
122
+ "clause_statement", "clause_statement_sha256", "checker_family", "required_authority",
123
+ "implementation_id", "implementation_contract_sha256", "review_status", "predicate_defined",
124
+ "end_to_end_runnable", "predicate_shape", "review_reason", "counterexample_analysis",
125
+ "raw_fact_contracts", "sealed_parameter_contracts", "predicate", "required_runtime_ops",
126
+ "collector_contract", "provider_capability_status", "runtime_requirements", "template_sha256"
127
+ ],
128
+ "properties": {
129
+ "template_id": {"$ref": "#/$defs/digest"},
130
+ "program_schema_version": {"const": "prc.control-check-program/v0.1"},
131
+ "program_schema_sha256": {"$ref": "#/$defs/digest"},
132
+ "control_id": {"$ref": "#/$defs/control_id"},
133
+ "control_revision": {"type": "integer", "minimum": 1},
134
+ "control_semantic_sha256": {"$ref": "#/$defs/digest"},
135
+ "clause_ordinal": {"type": "integer", "minimum": 1, "maximum": 50},
136
+ "clause_id": {"$ref": "#/$defs/digest"},
137
+ "clause_statement": {"type": "string", "minLength": 1, "maxLength": 2000},
138
+ "clause_statement_sha256": {"$ref": "#/$defs/digest"},
139
+ "checker_family": {"$ref": "#/$defs/checker_family"},
140
+ "required_authority": {"$ref": "#/$defs/authority"},
141
+ "implementation_id": {"type": "string", "pattern": "^prc\\.check\\.[a-z0-9-]+@[0-9]+\\.[0-9]+$"},
142
+ "implementation_contract_sha256": {"$ref": "#/$defs/digest"},
143
+ "review_status": {"enum": ["predicate_defined_provider_registered", "predicate_defined_provider_unregistered"]},
144
+ "predicate_defined": {"const": true},
145
+ "end_to_end_runnable": {"type": "boolean"},
146
+ "predicate_shape": {"type": "string", "pattern": "^[a-z][a-z0-9_]*$"},
147
+ "review_reason": {"$ref": "#/$defs/bounded_text"},
148
+ "counterexample_analysis": {"$ref": "#/$defs/bounded_text"},
149
+ "raw_fact_contracts": {"type": "array", "minItems": 1, "maxItems": 128, "items": {"$ref": "#/$defs/raw_fact_contract"}},
150
+ "sealed_parameter_contracts": {"type": "array", "maxItems": 128, "items": {"$ref": "#/$defs/parameter_contract"}},
151
+ "predicate": {"type": "object", "minProperties": 1},
152
+ "required_runtime_ops": {"type": "array", "minItems": 1, "maxItems": 64, "uniqueItems": true, "items": {"type": "string", "pattern": "^[a-z][a-z0-9_]*$"}},
153
+ "collector_contract": {"$ref": "#/$defs/collector_contract"},
154
+ "provider_capability_status": {"enum": ["registered", "unregistered"]},
155
+ "runtime_requirements": {"$ref": "#/$defs/runtime_requirements"},
156
+ "template_sha256": {"$ref": "#/$defs/digest"}
157
+ }
158
+ }
159
+ }
160
+ }
@@ -0,0 +1,139 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/control-check-program-definitions.schema.json",
4
+ "title": "Reviewed clause-specific deterministic program definitions",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "scope", "source_binding_catalog_sha256", "definition_count", "definitions"],
8
+ "properties": {
9
+ "schema_version": {"const": "prc.control-check-program-definitions/v0.1"},
10
+ "scope": {"enum": ["structured_record", "non_structured"]},
11
+ "source_binding_catalog_sha256": {"$ref": "#/$defs/digest"},
12
+ "definition_count": {"type": "integer", "minimum": 1, "maximum": 765},
13
+ "definitions": {
14
+ "type": "array",
15
+ "minItems": 1,
16
+ "maxItems": 765,
17
+ "items": {"$ref": "#/$defs/definition"}
18
+ }
19
+ },
20
+ "$defs": {
21
+ "digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
22
+ "control_id": {"type": "string", "pattern": "^(PRC-[0-9]{2}-[0-9]{3}|USEQ-[A-F0-9]{8})$"},
23
+ "fact_id": {"type": "string", "minLength": 3, "maxLength": 128, "pattern": "^[A-Za-z0-9_.-]+$"},
24
+ "bounded_text": {"type": "string", "minLength": 20, "maxLength": 12000},
25
+ "fact_type": {"enum": ["identity", "schema", "digest", "state", "string", "boolean", "number", "time", "string_set", "identity_map", "schema_map", "digest_map", "state_map", "string_map", "boolean_map", "number_map", "time_map", "directed_graph"]},
26
+ "authority": {"enum": ["repository", "artifact", "executed", "environment", "external_registry", "structured_record"]},
27
+ "checker_family": {"enum": ["inventory_fact", "structured_document", "package_metadata", "ci_policy", "container_iac", "source_ast", "artifact_integrity", "analysis_adapter", "execution_evidence", "environment_evidence", "structured_record"]},
28
+ "raw_fact_contract": {
29
+ "type": "object",
30
+ "additionalProperties": false,
31
+ "required": ["fact_id", "fact_type", "authority", "raw_value_semantics", "source_requirement", "complete_required"],
32
+ "properties": {
33
+ "fact_id": {"$ref": "#/$defs/fact_id"},
34
+ "fact_type": {"$ref": "#/$defs/fact_type"},
35
+ "authority": {"$ref": "#/$defs/authority"},
36
+ "raw_value_semantics": {"$ref": "#/$defs/bounded_text"},
37
+ "source_requirement": {"$ref": "#/$defs/bounded_text"},
38
+ "complete_required": {"const": true}
39
+ }
40
+ },
41
+ "parameter_contract": {
42
+ "type": "object",
43
+ "additionalProperties": false,
44
+ "required": ["parameter_id", "parameter_type", "value_origin", "source_requirement"],
45
+ "properties": {
46
+ "parameter_id": {"$ref": "#/$defs/fact_id"},
47
+ "parameter_type": {"$ref": "#/$defs/fact_type"},
48
+ "value_origin": {"enum": ["scanner_inventory", "independently_authenticated_policy", "independently_authenticated_context"]},
49
+ "source_requirement": {"$ref": "#/$defs/bounded_text"}
50
+ }
51
+ },
52
+ "collector_contract": {
53
+ "type": "object",
54
+ "additionalProperties": false,
55
+ "required": ["collector_id", "required_sources", "inventory_contract", "normalization_contract", "completeness_contract", "freshness_contract", "provider_status"],
56
+ "properties": {
57
+ "collector_id": {"type": "string", "minLength": 8, "maxLength": 200, "pattern": "^prc\\.collect\\.[a-z0-9.-]+@[0-9]+\\.[0-9]+$"},
58
+ "required_sources": {"type": "array", "minItems": 1, "maxItems": 20, "uniqueItems": true, "items": {"$ref": "#/$defs/bounded_text"}},
59
+ "inventory_contract": {"$ref": "#/$defs/bounded_text"},
60
+ "normalization_contract": {"$ref": "#/$defs/bounded_text"},
61
+ "completeness_contract": {"$ref": "#/$defs/bounded_text"},
62
+ "freshness_contract": {"$ref": "#/$defs/bounded_text"},
63
+ "provider_status": {"const": "unregistered"}
64
+ }
65
+ },
66
+ "fixture": {
67
+ "type": "object",
68
+ "additionalProperties": false,
69
+ "required": ["description", "parameters", "facts", "expected_outcome"],
70
+ "properties": {
71
+ "description": {"$ref": "#/$defs/bounded_text"},
72
+ "parameters": {"type": "object", "maxProperties": 512, "additionalProperties": {"type": "object"}},
73
+ "facts": {"type": "object", "maxProperties": 512, "additionalProperties": {"type": "object"}},
74
+ "expected_outcome": {"enum": ["pass", "fail", "blocked"]}
75
+ }
76
+ },
77
+ "fixtures": {
78
+ "type": "object",
79
+ "additionalProperties": false,
80
+ "required": ["pass", "fail", "blocked", "counterexample"],
81
+ "properties": {
82
+ "pass": {"allOf": [{"$ref": "#/$defs/fixture"}, {"properties": {"expected_outcome": {"const": "pass"}}}]},
83
+ "fail": {"allOf": [{"$ref": "#/$defs/fixture"}, {"properties": {"expected_outcome": {"const": "fail"}}}]},
84
+ "blocked": {"allOf": [{"$ref": "#/$defs/fixture"}, {"properties": {"expected_outcome": {"const": "blocked"}}}]},
85
+ "counterexample": {"allOf": [{"$ref": "#/$defs/fixture"}, {"properties": {"expected_outcome": {"const": "fail"}}}]}
86
+ }
87
+ },
88
+ "definition": {
89
+ "type": "object",
90
+ "additionalProperties": false,
91
+ "required": [
92
+ "control_id", "control_revision", "control_semantic_sha256", "clause_ordinal", "clause_id", "clause_statement",
93
+ "checker_family", "required_authority", "corrected_checker_family", "corrected_required_authority",
94
+ "classification_status", "classification_error_reason", "raw_fact_contracts", "sealed_parameter_contracts",
95
+ "predicate", "required_runtime_ops", "collector_contract", "fixtures", "review_reason", "counterexample_analysis"
96
+ ],
97
+ "properties": {
98
+ "control_id": {"$ref": "#/$defs/control_id"},
99
+ "control_revision": {"type": "integer", "minimum": 1},
100
+ "control_semantic_sha256": {"$ref": "#/$defs/digest"},
101
+ "clause_ordinal": {"type": "integer", "minimum": 1, "maximum": 50},
102
+ "clause_id": {"$ref": "#/$defs/digest"},
103
+ "clause_statement": {"type": "string", "minLength": 1, "maxLength": 2000},
104
+ "checker_family": {"$ref": "#/$defs/checker_family"},
105
+ "required_authority": {"$ref": "#/$defs/authority"},
106
+ "corrected_checker_family": {"$ref": "#/$defs/checker_family"},
107
+ "corrected_required_authority": {"$ref": "#/$defs/authority"},
108
+ "classification_status": {"enum": ["exact_predicate", "classification_error"]},
109
+ "classification_error_reason": {"type": ["string", "null"], "minLength": 20, "maxLength": 12000},
110
+ "raw_fact_contracts": {"type": "array", "maxItems": 128, "items": {"$ref": "#/$defs/raw_fact_contract"}},
111
+ "sealed_parameter_contracts": {"type": "array", "maxItems": 128, "items": {"$ref": "#/$defs/parameter_contract"}},
112
+ "predicate": {"type": ["object", "null"]},
113
+ "required_runtime_ops": {"type": "array", "maxItems": 32, "uniqueItems": true, "items": {"type": "string", "minLength": 2, "maxLength": 128, "pattern": "^[a-z][a-z0-9_]*$"}},
114
+ "collector_contract": {"$ref": "#/$defs/collector_contract"},
115
+ "fixtures": {"$ref": "#/$defs/fixtures"},
116
+ "review_reason": {"$ref": "#/$defs/bounded_text"},
117
+ "counterexample_analysis": {"$ref": "#/$defs/bounded_text"}
118
+ },
119
+ "allOf": [
120
+ {
121
+ "if": {"properties": {"classification_status": {"const": "exact_predicate"}}},
122
+ "then": {
123
+ "properties": {
124
+ "classification_error_reason": {"type": "null"},
125
+ "raw_fact_contracts": {"minItems": 1},
126
+ "predicate": {"type": "object"}
127
+ }
128
+ },
129
+ "else": {
130
+ "properties": {
131
+ "classification_error_reason": {"type": "string", "minLength": 20},
132
+ "predicate": {"type": "null"}
133
+ }
134
+ }
135
+ }
136
+ ]
137
+ }
138
+ }
139
+ }
@@ -0,0 +1,298 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://marinjursic.github.io/production-readiness-checklist/schemas/control-check-program.schema.json",
4
+ "title": "Bounded deterministic control predicate program v0.1",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schema_version", "control_id", "control_revision", "control_semantic_sha256", "clause_id", "clause_sha256", "implementation_contract_sha256", "subject_id", "subjects", "inventory_sha256", "required_authority", "allow_not_applicable", "applicability_proof_contract_sha256", "maximum_evidence_age_seconds", "parameters", "predicate"],
8
+ "properties": {
9
+ "schema_version": {"const": "prc.control-check-program/v0.1"},
10
+ "control_id": {"$ref": "#/$defs/control_id"},
11
+ "control_revision": {"type": "integer", "minimum": 1},
12
+ "control_semantic_sha256": {"$ref": "#/$defs/digest"},
13
+ "clause_id": {"$ref": "#/$defs/digest"},
14
+ "clause_sha256": {"$ref": "#/$defs/digest"},
15
+ "implementation_contract_sha256": {"$ref": "#/$defs/digest"},
16
+ "subject_id": {"$ref": "#/$defs/nonempty_string"},
17
+ "subjects": {"$ref": "#/$defs/nonempty_string_set"},
18
+ "inventory_sha256": {"$ref": "#/$defs/digest"},
19
+ "required_authority": {"$ref": "#/$defs/authority"},
20
+ "allow_not_applicable": {"type": "boolean"},
21
+ "applicability_proof_contract_sha256": {"$ref": "#/$defs/digest"},
22
+ "maximum_evidence_age_seconds": {"type": "integer", "minimum": 1, "maximum": 31536000},
23
+ "parameters": {
24
+ "type": "object",
25
+ "maxProperties": 512,
26
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
27
+ "additionalProperties": {"$ref": "#/$defs/parameter"}
28
+ },
29
+ "predicate": {"$ref": "#/$defs/expression"}
30
+ },
31
+ "$defs": {
32
+ "digest": {"type": "string", "pattern": "^[0-9a-f]{64}$"},
33
+ "control_id": {"type": "string", "pattern": "^(PRC-[0-9]{2}-[0-9]{3}|USEQ-[A-F0-9]{8})$"},
34
+ "fact_id": {"type": "string", "minLength": 1, "maxLength": 128, "pattern": "^[A-Za-z0-9_.-]+$"},
35
+ "bounded_string": {"type": "string", "maxLength": 4096},
36
+ "nonempty_string": {"type": "string", "minLength": 1, "maxLength": 4096},
37
+ "authority": {"enum": ["repository", "artifact", "executed", "environment", "external_registry", "structured_record"]},
38
+ "string_set": {"type": "array", "maxItems": 1024, "uniqueItems": true, "items": {"$ref": "#/$defs/nonempty_string"}},
39
+ "nonempty_string_set": {"type": "array", "minItems": 1, "maxItems": 1024, "uniqueItems": true, "items": {"$ref": "#/$defs/nonempty_string"}},
40
+ "number_map": {
41
+ "type": "object", "maxProperties": 1024,
42
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
43
+ "additionalProperties": {"type": "number"}
44
+ },
45
+ "string_map": {
46
+ "type": "object", "maxProperties": 1024,
47
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
48
+ "additionalProperties": {"type": "string", "maxLength": 4096}
49
+ },
50
+ "nonempty_string_map": {
51
+ "type": "object", "maxProperties": 1024,
52
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
53
+ "additionalProperties": {"$ref": "#/$defs/nonempty_string"}
54
+ },
55
+ "digest_map": {
56
+ "type": "object", "maxProperties": 1024,
57
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
58
+ "additionalProperties": {"$ref": "#/$defs/digest"}
59
+ },
60
+ "boolean_map": {
61
+ "type": "object", "maxProperties": 1024,
62
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
63
+ "additionalProperties": {"type": "boolean"}
64
+ },
65
+ "directed_edge": {
66
+ "type": "object", "additionalProperties": false,
67
+ "required": ["from", "to"],
68
+ "properties": {
69
+ "from": {"$ref": "#/$defs/nonempty_string"},
70
+ "to": {"$ref": "#/$defs/nonempty_string"}
71
+ }
72
+ },
73
+ "time_map": {
74
+ "type": "object", "maxProperties": 1024,
75
+ "propertyNames": {"$ref": "#/$defs/fact_id"},
76
+ "additionalProperties": {"type": "string", "format": "date-time", "maxLength": 64}
77
+ },
78
+ "parameter": {
79
+ "oneOf": [
80
+ {
81
+ "type": "object", "additionalProperties": false,
82
+ "required": ["type", "string"],
83
+ "properties": {"type": {"enum": ["identity", "schema", "state"]}, "string": {"$ref": "#/$defs/nonempty_string"}}
84
+ },
85
+ {
86
+ "type": "object", "additionalProperties": false,
87
+ "required": ["type", "string"],
88
+ "properties": {"type": {"const": "digest"}, "string": {"$ref": "#/$defs/digest"}}
89
+ },
90
+ {
91
+ "type": "object", "additionalProperties": false,
92
+ "required": ["type", "string"],
93
+ "properties": {"type": {"const": "string"}, "string": {"$ref": "#/$defs/bounded_string"}}
94
+ },
95
+ {
96
+ "type": "object", "additionalProperties": false,
97
+ "required": ["type", "boolean"],
98
+ "properties": {"type": {"const": "boolean"}, "boolean": {"type": "boolean"}}
99
+ },
100
+ {
101
+ "type": "object", "additionalProperties": false,
102
+ "required": ["type", "number"],
103
+ "properties": {"type": {"const": "number"}, "number": {"type": "number"}}
104
+ },
105
+ {
106
+ "type": "object", "additionalProperties": false,
107
+ "required": ["type", "timestamp"],
108
+ "properties": {"type": {"const": "time"}, "timestamp": {"type": "string", "format": "date-time", "maxLength": 64}}
109
+ },
110
+ {
111
+ "type": "object", "additionalProperties": false,
112
+ "required": ["type", "strings"],
113
+ "properties": {"type": {"const": "string_set"}, "strings": {"$ref": "#/$defs/string_set"}}
114
+ },
115
+ {
116
+ "type": "object", "additionalProperties": false,
117
+ "required": ["type", "values"],
118
+ "properties": {"type": {"enum": ["identity_map", "schema_map", "state_map"]}, "values": {"$ref": "#/$defs/nonempty_string_map"}}
119
+ },
120
+ {
121
+ "type": "object", "additionalProperties": false,
122
+ "required": ["type", "values"],
123
+ "properties": {"type": {"const": "digest_map"}, "values": {"$ref": "#/$defs/digest_map"}}
124
+ },
125
+ {
126
+ "type": "object", "additionalProperties": false,
127
+ "required": ["type", "values"],
128
+ "properties": {"type": {"const": "string_map"}, "values": {"$ref": "#/$defs/string_map"}}
129
+ },
130
+ {
131
+ "type": "object", "additionalProperties": false,
132
+ "required": ["type", "booleans"],
133
+ "properties": {"type": {"const": "boolean_map"}, "booleans": {"$ref": "#/$defs/boolean_map"}}
134
+ },
135
+ {
136
+ "type": "object", "additionalProperties": false,
137
+ "required": ["type", "numbers"],
138
+ "properties": {"type": {"const": "number_map"}, "numbers": {"$ref": "#/$defs/number_map"}}
139
+ },
140
+ {
141
+ "type": "object", "additionalProperties": false,
142
+ "required": ["type", "timestamps"],
143
+ "properties": {"type": {"const": "time_map"}, "timestamps": {"$ref": "#/$defs/time_map"}}
144
+ },
145
+ {
146
+ "type": "object", "additionalProperties": false,
147
+ "required": ["type", "edges"],
148
+ "properties": {
149
+ "type": {"const": "directed_graph"},
150
+ "edges": {"type": "array", "minItems": 1, "maxItems": 1024, "uniqueItems": true, "items": {"$ref": "#/$defs/directed_edge"}}
151
+ }
152
+ }
153
+ ]
154
+ },
155
+ "expression": {
156
+ "oneOf": [
157
+ {
158
+ "type": "object", "additionalProperties": false,
159
+ "required": ["op", "args"],
160
+ "properties": {
161
+ "op": {"enum": ["all", "any"]},
162
+ "args": {"type": "array", "minItems": 1, "maxItems": 64, "items": {"$ref": "#/$defs/expression"}}
163
+ }
164
+ },
165
+ {
166
+ "type": "object", "additionalProperties": false,
167
+ "required": ["op", "arg"],
168
+ "properties": {"op": {"const": "not"}, "arg": {"$ref": "#/$defs/expression"}}
169
+ },
170
+ {
171
+ "type": "object", "additionalProperties": false,
172
+ "required": ["op", "fact", "string"],
173
+ "properties": {
174
+ "op": {"enum": ["identity_eq", "schema_eq", "string_eq"]},
175
+ "fact": {"$ref": "#/$defs/fact_id"},
176
+ "string": {"$ref": "#/$defs/bounded_string"}
177
+ }
178
+ },
179
+ {
180
+ "type": "object", "additionalProperties": false,
181
+ "required": ["op", "fact", "string"],
182
+ "properties": {"op": {"const": "digest_eq"}, "fact": {"$ref": "#/$defs/fact_id"}, "string": {"$ref": "#/$defs/digest"}}
183
+ },
184
+ {
185
+ "type": "object", "additionalProperties": false,
186
+ "required": ["op", "fact", "strings"],
187
+ "properties": {"op": {"const": "state_in"}, "fact": {"$ref": "#/$defs/fact_id"}, "strings": {"$ref": "#/$defs/nonempty_string_set"}}
188
+ },
189
+ {
190
+ "type": "object", "additionalProperties": false,
191
+ "required": ["op", "fact", "boolean"],
192
+ "properties": {"op": {"enum": ["boolean_eq", "boolean_map_all_eq"]}, "fact": {"$ref": "#/$defs/fact_id"}, "boolean": {"type": "boolean"}}
193
+ },
194
+ {
195
+ "type": "object", "additionalProperties": false,
196
+ "required": ["op", "fact", "number"],
197
+ "properties": {
198
+ "op": {"enum": ["number_eq", "number_lt", "number_lte", "number_gt", "number_gte"]},
199
+ "fact": {"$ref": "#/$defs/fact_id"},
200
+ "number": {"type": "number"}
201
+ }
202
+ },
203
+ {
204
+ "type": "object", "additionalProperties": false,
205
+ "required": ["op", "fact"],
206
+ "properties": {
207
+ "op": {"enum": ["directed_graph_acyclic", "string_map_all_nonempty", "identity_map_values_unique"]},
208
+ "fact": {"$ref": "#/$defs/fact_id"}
209
+ }
210
+ },
211
+ {
212
+ "type": "object", "additionalProperties": false,
213
+ "required": ["op", "fact", "timestamp"],
214
+ "properties": {
215
+ "op": {"enum": ["time_before", "time_lte", "time_after", "time_gte"]},
216
+ "fact": {"$ref": "#/$defs/fact_id"},
217
+ "timestamp": {"type": "string", "format": "date-time", "maxLength": 64}
218
+ }
219
+ },
220
+ {
221
+ "type": "object", "additionalProperties": false,
222
+ "required": ["op", "fact", "strings"],
223
+ "properties": {
224
+ "op": {"enum": ["set_eq", "set_contains_all", "set_disjoint", "map_keys_eq_set", "identity_map_values_in", "state_map_values_in", "string_map_values_in"]},
225
+ "fact": {"$ref": "#/$defs/fact_id"},
226
+ "strings": {"$ref": "#/$defs/string_set"}
227
+ }
228
+ },
229
+ {
230
+ "type": "object", "additionalProperties": false,
231
+ "required": ["op", "fact", "other_fact"],
232
+ "properties": {
233
+ "op": {
234
+ "enum": [
235
+ "identity_eq_fact", "schema_eq_fact", "digest_eq_fact", "string_eq_fact",
236
+ "state_in_set_fact", "boolean_eq_fact",
237
+ "number_eq_fact", "number_lt_fact", "number_lte_fact", "number_gt_fact", "number_gte_fact",
238
+ "time_before_fact", "time_lte_fact", "time_after_fact", "time_gte_fact",
239
+ "set_eq_fact", "set_contains_all_fact", "set_disjoint_fact",
240
+ "identity_map_eq_fact", "identity_map_values_in_fact", "identity_map_values_not_in_fact", "identity_map_values_not_equal_fact", "schema_map_eq_fact", "digest_map_eq_fact",
241
+ "state_map_eq_fact", "string_map_eq_fact", "boolean_map_eq_fact", "map_keys_eq_set_fact",
242
+ "boolean_map_any_true_fact", "boolean_map_implies_fact", "string_map_any_nonempty_fact",
243
+ "number_map_eq_fact", "number_map_lt_fact", "number_map_lte_fact",
244
+ "number_map_gt_fact", "number_map_gte_fact",
245
+ "time_map_eq_fact", "time_map_before_fact", "time_map_lte_fact", "time_map_after_fact", "time_map_gte_fact"
246
+ ]
247
+ },
248
+ "fact": {"$ref": "#/$defs/fact_id"},
249
+ "other_fact": {"$ref": "#/$defs/fact_id"}
250
+ }
251
+ },
252
+ {
253
+ "type": "object", "additionalProperties": false,
254
+ "required": ["op", "fact", "parameter"],
255
+ "properties": {
256
+ "op": {
257
+ "enum": [
258
+ "identity_eq_parameter", "schema_eq_parameter", "digest_eq_parameter", "string_eq_parameter",
259
+ "state_in_parameter", "boolean_eq_parameter",
260
+ "number_eq_parameter", "number_lt_parameter", "number_lte_parameter", "number_gt_parameter", "number_gte_parameter",
261
+ "time_before_parameter", "time_lte_parameter", "time_after_parameter", "time_gte_parameter",
262
+ "set_eq_parameter", "set_contains_all_parameter", "set_disjoint_parameter",
263
+ "identity_map_eq_parameter", "identity_map_values_differ_for_pairs_parameter", "schema_map_eq_parameter", "digest_map_eq_parameter",
264
+ "state_map_eq_parameter", "string_map_eq_parameter", "boolean_map_eq_parameter",
265
+ "map_keys_eq_set_parameter", "identity_map_values_in_parameter", "identity_map_values_biject_set_parameter", "state_map_values_in_parameter",
266
+ "string_map_values_in_parameter", "boolean_map_all_eq_parameter",
267
+ "number_map_eq_parameter", "number_map_lt_parameter", "number_map_lte_parameter", "number_map_gt_parameter", "number_map_gte_parameter",
268
+ "time_map_eq_parameter", "time_map_before_parameter", "time_map_lte_parameter", "time_map_after_parameter", "time_map_gte_parameter"
269
+ ]
270
+ },
271
+ "fact": {"$ref": "#/$defs/fact_id"},
272
+ "parameter": {"$ref": "#/$defs/fact_id"}
273
+ }
274
+ },
275
+ {
276
+ "type": "object", "additionalProperties": false,
277
+ "required": ["op", "fact", "other_fact", "parameter"],
278
+ "properties": {
279
+ "op": {"enum": ["time_map_delta_lte_parameter", "map_key_partition_eq_set_parameter"]},
280
+ "fact": {"$ref": "#/$defs/fact_id"},
281
+ "other_fact": {"$ref": "#/$defs/fact_id"},
282
+ "parameter": {"$ref": "#/$defs/fact_id"}
283
+ }
284
+ },
285
+ {
286
+ "type": "object", "additionalProperties": false,
287
+ "required": ["op", "fact", "other_fact", "third_fact"],
288
+ "properties": {
289
+ "op": {"const": "time_map_delta_eq_number_map_fact"},
290
+ "fact": {"$ref": "#/$defs/fact_id"},
291
+ "other_fact": {"$ref": "#/$defs/fact_id"},
292
+ "third_fact": {"$ref": "#/$defs/fact_id"}
293
+ }
294
+ }
295
+ ]
296
+ }
297
+ }
298
+ }