Skip to main content

Release Gate Criteria

Document control

FieldValue
OwnerRon Benisty — CTO & CSO (ron.b@iontwrks.com)
StatusApproved
Version1.0
ClassificationConfidential
Approved byRon Benisty — CTO & CSO
Approval date2026-05-26 (Tuesday)
Last reviewed2026-05-26
Review cycleAnnual — next review due May 2027
Parent policySecure SDLC (SSDLC)

Satisfies NIST SSDF PO.4 (define and use criteria for software security checks); supports SOC 2 CC8.1 (change management) and ISO/IEC 27001:2022 A.8.29 (security testing in dev & acceptance). Codifies the implicit gates already implemented in Supply Chain & CI/CD Security as a named, version-controlled "definition of done."


1. Purpose

Make it explicit — for any developer, reviewer, or auditor — exactly what must be true for a change to advance from a draft branch into nonprod, and from nonprod into production. Removes the "is this ready to merge?" ambiguity at every stage.

2. The two gates

Gate 1 — Pull-Request gate (must pass before merge to develop)

A PR may be merged only when all of the following are green:

CheckToolBlocking
Branch protection — direct push to main/develop is blockedGitHubYes
Secrets at pushGitHub Push ProtectionYes
Secret scan (CI) — verified secrets onlyTruffleHog --only-verifiedYes
Dependency vulnerability scan — no high/criticalOSV-ScannerYes
Container image scan — no high/critical CVEsTrivyYes
SAST — no high findingsSemgrep OSSYes
Workflow security analysiszizmor + actionlintYes
Lockfile integrity + no postinstall executionnpm ci --ignore-scriptsYes
LintESLint + security pluginsYes
Unit + integration testsProject test suiteYes
Cross-tenant isolation testsProject test suite (Multi-Tenancy)Yes
Coverage thresholds met per Secure Coding Standard §3.15Vitest + @vitest/coverage-v8Yes
Container build + Trivy image scanGitHub ActionsYes
Install-time malicious-package blockSocket Firewall FreeYes (confirmed-malicious); warn-only (unconfirmed)
All third-party Actions SHA-pinnedpinact CI checkYes
PR template complete (Change Management §5)Manual + reviewerYes
CODEOWNER review approved — author ≠ approverGitHub + CODEOWNERSYes
No secrets / credentials in the diffReviewerYes
Docs / runbook updated where behavior changedReviewerYes

Gate 2 — Production-deploy gate (must pass before deploy to main)

The image that passed Gate 1 and was tested in nonprod may be promoted to production only when:

CheckMechanismBlocking
Same image that passed Gate 1 and nonprod testingECR digest matchYes
GitHub Environment "production" required-reviewer gateGitHub EnvironmentsYes
Two-reviewer (four-eyes) approval where staffing allowsSeparation of Duties §4Yes when staffed
Deploy job is separate from validationGitHub Actions job splitYes
Short-lived OIDC credentials onlyAWS OIDC trustYes
Least-privilege deploy roleIAM roleYes
Rolling deploy + circuit breaker + auto-rollbackECS FargateYes

3. Exception process

Exceptions are rare and individually approved:

  1. The PR description states the exception (which check, why it cannot be satisfied, mitigations).
  2. CTO & CSO approves the exception inline on the PR before merge.
  3. The exception is recorded against the Evidence Register.
  4. A follow-up PR closing the exception is filed within 30 days, or the exception is re-approved with a new target.

A scanner false-positive is documented and suppressed at the tool level (e.g. .semgrepignore with a comment + linked issue), not as a recurring exception.

4. Emergency deploys

Per Change Management §8, Emergency PRs may bypass non-blocking checks under an expedited review — but the security blocking checks in Gate 1 are NOT bypassable even in emergencies; they exist to prevent the emergency from becoming a worse incident. Retroactive CODEOWNER review within 1 business day still applies.

5. Evidence

Every CI run + deploy log linked to a merged PR is the gate evidence. Retained ≥ 12 months per the Evidence Collection & Retention Policy. Type II will sample.

6. Document change history

VersionDateAuthorDescription of changeApproved by
1.02026-05-26Ron Benisty (CTO & CSO)Initial version — codifies the Release Gate Criteria.Ron Benisty (CTO & CSO)