Skip to content

feat: add fail-closed package intake admission state machine - #118

Merged
the1mills merged 6 commits into
mainfrom
trend/package-intake-admission-state
Sep 30, 2026
Merged

the1mills merged 6 commits into
mainfrom
trend/package-intake-admission-state

Conversation

@ORESoftware

Copy link
Copy Markdown
Contributor

Advances #114 and prepares the API write plane to consume the package-security authority in zed-pkg/zed-interfaces#162.

Adds a pure, effect-free package_intake admission module with explicit states and evidence binding rules:

  • only quarantined/evaluated/pending-approval items can enter security admission;
  • missing rebuild or risk evidence fails closed to quarantine;
  • rebuild identity or rebuilt-artifact mismatch rejects;
  • risk rejection wins even when rebuild evidence is clean;
  • approval-required findings remain pending until an approval exists;
  • approval must bind the exact artifact/source/policy/risk-receipt/rebuild-receipt identities;
  • stale approvals from an earlier rebuild reject;
  • terminal/received states cannot re-enter admission;
  • clean, fully bound evidence yields Publishable, not Published—storage/DB effects remain a separate route-layer transition.

The module owns no transport, persistence, network access, scanner/model execution, or secret material. This is intentionally the pure policy boundary before wiring quarantine persistence and the final pre-store publication gate into routes/publish.rs.

@the1mills
the1mills merged commit 68cee47 into main Sep 30, 2026
9 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants