2.3 KiB
2.3 KiB
Promotion Gate Ownership Contract
Purpose
This contract freezes ownership for promotion gate decisions and defines the Policy-to-Orchestrator interface.
Ownership Rules
- Policy Engine owns PASS/FAIL gate evaluation semantics.
- Concelier owns advisory ingestion and linkset publication only.
- Release Orchestrator executes promotion state transitions using Policy outputs.
- Authority enforces identity/scope boundaries for all callers.
Explicit Non-Goals for Concelier
- No PASS/FAIL decisioning for promotion gates.
- No direct production of promotion allow/deny verdicts.
- No mutation of Policy-derived effective findings.
Policy Evaluation Interface
{
"request": {
"tenantId": "string",
"promotionId": "guid",
"targetEnvironment": "string",
"artifactDigest": "sha256:...",
"evidenceRef": "guid",
"policyBundleDigest": "sha256:..."
},
"response": {
"decision": "allow|deny|pending",
"reasonCodes": ["string"],
"policyDigest": "sha256:...",
"determinismHash": "sha256:...",
"evaluatedAtUtc": "2026-02-10T00:00:00Z"
}
}
Determinism and Fail-Closed Rules
- Identical request payloads must produce identical decision outputs.
- Missing or invalid policy inputs MUST return explicit deny or pending according to policy profile; no implicit allow.
- Reason codes must be stable and sortable for replay/audit.
Required Test Coverage
Promotion/Orchestrator side:
src/ReleaseOrchestrator/__Tests/StellaOps.ReleaseOrchestrator.Promotion.Tests/Gate/PolicyGateTests.cssrc/ReleaseOrchestrator/__Tests/StellaOps.ReleaseOrchestrator.Promotion.Tests/Decision/DecisionEngineTests.cssrc/ReleaseOrchestrator/__Tests/StellaOps.ReleaseOrchestrator.Promotion.Tests/Gate/GateEvaluatorTests.cs
Policy side:
src/Policy/__Tests/StellaOps.Policy.Engine.Tests/Gates/PolicyGateEvaluatorTests.cssrc/Policy/__Tests/StellaOps.Policy.Engine.Tests/Determinism/PolicyEngineDeterminismTests.cssrc/Policy/__Tests/StellaOps.Policy.Engine.Tests/Gates/Determinization/DeterminizationGateTests.cs
Integration References
- Evidence contract:
docs/modules/evidence-locker/promotion-evidence-contract.md - Promotion APIs:
docs/modules/release-jobengine/api/promotions.md - Runtime closure plan:
docs/modules/release-jobengine/promotion-runtime-gap-closure-plan.md