feat: add PolicyPackSelectorComponent with tests and integration

- Implemented PolicyPackSelectorComponent for selecting policy packs.
- Added unit tests for component behavior, including API success and error handling.
- Introduced monaco-workers type declarations for editor workers.
- Created acceptance tests for guardrails with stubs for AT1–AT10.
- Established SCA Failure Catalogue Fixtures for regression testing.
- Developed plugin determinism harness with stubs for PL1–PL10.
- Added scripts for evidence upload and verification processes.
This commit is contained in:
StellaOps Bot
2025-12-05 21:24:34 +02:00
parent 347c88342c
commit 18d87c64c5
220 changed files with 7700 additions and 518 deletions

View File

@@ -0,0 +1,18 @@
# Acceptance Tests Guardrail Pack (Placeholder)
Placeholder for the signed acceptance pack covering AT1AT10.
- Deterministic fixtures with fixed seeds and UTC timestamps.
- DSSE envelopes for pack manifests; offline verification only.
- Version pins live in `inputs.lock`.
- Map to AT1AT10:
- AT1 admission controls
- AT2 VEX handling
- AT3 authz flow
- AT4 replay parity
- AT5 policy DSSE negative tests
- AT6 PITR rehearsal
- AT7 offline guardrail pack
- AT8 gating thresholds
- AT9 reporting SLOs
- AT10 schema/signing coverage

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT1 admission control - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT10 schema/signing coverage - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT2 VEX handling - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT3 authz flow - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT4 replay parity - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT5 policy DSSE negative - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT6 PITR rehearsal - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT7 offline guardrail pack - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT8 gating thresholds - stub expected"}

View File

@@ -0,0 +1 @@
{"status":"pass","notes":"AT9 reporting SLO - stub expected"}

View File

@@ -0,0 +1,9 @@
scanner_version: "stella-scanner 0.9.0-offline"
db_version: "mongo 6.0.12"
policy_engine_version: "stella-policy 0.8.4"
seeds:
default: 1337
replay: 4242
feeds_snapshot: "offline-cache-2025-11-30"
tz: "UTC"
notes: "Deterministic replay; no network calls"

View File

@@ -0,0 +1,7 @@
{
"payloadType": "application/json",
"payload": "ewogICJwYWNrX2lkIjogImF0LWd1YXJkcmFpbHMiLAogICJ2ZXJzaW9uIjogIjAuMS4wLXN0dWIiLAogICJpbnB1dHNfbG9jayI6ICJ0ZXN0cy9hY2NlcHRhbmNlL3BhY2tzL2d1YXJkcmFpbHMvaW5wdXRzLmxvY2siLAogICJzaWduZXJzIjogWyJzdHViLWtleS1pZCJdLAogICJmaXh0dXJlcyI6IFsKICAgIHsiaWQiOiAiQVQxLWFkbWlzc2lvbiIsICJleHBlY3RlZCI6ICJleHBlY3RlZC9hdDEuanNvbiIsICJhcnRpZmFjdCI6ICJmaXh0dXJlcy9hdDEifSwKICAgIHsiaWQiOiAiQVQyLXZleCIsICJleHBlY3RlZCI6ICJleHBlY3RlZC9hdDIuanNvbiIsICJhcnRpZmFjdCI6ICJmaXh0dXJlcy9hdDIifSwKICAgIHsiaWQiOiAiQVQzLWF1dGh6IiwgImV4cGVjdGVkIjogImV4cGVjdGVkL2F0My5qc29uIiwgImFydGlmYWN0IjogImZpeHR1cmVzL2F0MyJ9LAogICAgeyJpZCI6ICJBVDQtcmVwbGF5LXBhcml0eSIsICJleHBlY3RlZCI6ICJleHBlY3RlZC9hdDQuanNvbiIsICJhcnRpZmFjdCI6ICJmaXh0dXJlcy9hdDQifSwKICAgIHsiaWQiOiAiQVQ1LXBvbGljeS1kc3NlLW5lZ2F0aXZlIiwgImV4cGVjdGVkIjogImV4cGVjdGVkL2F0NS5qc29uIiwgImFydGlmYWN0IjogImZpeHR1cmVzL2F0NSJ9LAogICAgeyJpZCI6ICJBVDYtcGl0ci1yZWhlYXJzYWwiLCAiZXhwZWN0ZWQiOiAiZXhwZWN0ZWQvYXQ2Lmpzb24iLCAiYXJ0aWZhY3QiOiAiZml4dHVyZXMvYXQ2In0sCiAgICB7ImlkIjogIkFUNy1vZmZsaW5lLWd1YXJkcmFpbC1wYWNrIiwgImV4cGVjdGVkIjogImV4cGVjdGVkL2F0Ny5qc29uIiwgImFydGlmYWN0IjogImZpeHR1cmVzL2F0NyJ9LAogICAgeyJpZCI6ICJBVDgtZ2F0aW5nLXRocmVzaG9sZHMiLCAiZXhwZWN0ZWQiOiAiZXhwZWN0ZWQvYXQ4Lmpzb24iLCAiYXJ0aWZhY3QiOiAiZml4dHVyZXMvYXQ4In0sCiAgICB7ImlkIjogIkFUOS1yZXBvcnRpbmctc2xvIiwgImV4cGVjdGVkIjogImV4cGVjdGVkL2F0OS5qc29uIiwgImFydGlmYWN0IjogImZpeHR1cmVzL2F0OSJ9LAogICAgeyJpZCI6ICJBVDEwLXNjaGVtYS1zaWduaW5nIiwgImV4cGVjdGVkIjogImV4cGVjdGVkL2F0MTAuanNvbiIsICJhcnRpZmFjdCI6ICJmaXh0dXJlcy9hdDEwIn0KICBdCn0K",
"signatures": [
{"keyid": "stub-key-id", "sig": ""}
]
}

View File

@@ -0,0 +1,18 @@
{
"pack_id": "at-guardrails",
"version": "0.1.0-stub",
"inputs_lock": "tests/acceptance/packs/guardrails/inputs.lock",
"signers": ["stub-key-id"],
"fixtures": [
{"id": "AT1-admission", "expected": "expected/at1.json", "artifact": "fixtures/at1"},
{"id": "AT2-vex", "expected": "expected/at2.json", "artifact": "fixtures/at2"},
{"id": "AT3-authz", "expected": "expected/at3.json", "artifact": "fixtures/at3"},
{"id": "AT4-replay-parity", "expected": "expected/at4.json", "artifact": "fixtures/at4"},
{"id": "AT5-policy-dsse-negative", "expected": "expected/at5.json", "artifact": "fixtures/at5"},
{"id": "AT6-pitr-rehearsal", "expected": "expected/at6.json", "artifact": "fixtures/at6"},
{"id": "AT7-offline-guardrail-pack", "expected": "expected/at7.json", "artifact": "fixtures/at7"},
{"id": "AT8-gating-thresholds", "expected": "expected/at8.json", "artifact": "fixtures/at8"},
{"id": "AT9-reporting-slo", "expected": "expected/at9.json", "artifact": "fixtures/at9"},
{"id": "AT10-schema-signing", "expected": "expected/at10.json", "artifact": "fixtures/at10"}
]
}