Security
Protected runners, ephemeral customer jobs, per-project isolation, signed artifacts, audit logs, branch protection, and deploy approvals.
Protected runners
Deploy-scoped runners are protected and tagged separately from build/test runners. A build or test runner carries a no-deploy tag and can never run a production deploy. Deploy jobs run only on protected, deploy-scoped runners.
Ephemeral customer jobs
Customer build and test jobs run in ephemeral workspaces — separate filesystem and process space — that are cleaned up when the job ends. Nothing persists between jobs except the project-isolated cache, which is content-addressed and never crosses project or tenant boundaries.
Per-project cache and secret isolation
Cache and secrets are isolated per project. There is no shared global cache or secret store that could leak between customers. Tenant and org boundaries are enforced at every layer. See BuildKit cache and Secrets.
Signed artifacts
Artifacts are signed with an SBOM and provenance, and the deploy gate fails closed on anything it cannot verify. See Artifact signing.
Audit logs
Every action emits a typed audit receipt — what ran, on which host, under which route, with what approvals, and at what cost — attached to a canonical work item. Audit and compliance trails are kept separate from product telemetry.
Branch protection and deploy approvals
Branch protection is enforced at the gate — a change that doesn't satisfy the protected-branch rules doesn't promote. Deploy approvals put a human at the production traffic shift, which is manual by default. Approvals are recorded in the receipt chain.
Ready to try it?
Open NOME