Skip to main content

Zero concepts

Five nouns explain the entire product. Understand these five and you understand Zero.

Organization → Project → Environment → Services, Domains,
Variables, Secrets,
Deployments, Versions
ConceptWhat it isWhat boundary it sets
OrganizationThe customer's tenantAccess, metering, audit, and data isolation
ProjectThe applicationPublic address, version history, configuration
EnvironmentThe deployment target (Production and others)Real isolation between environments
ServiceA unit that runs inside the projectThe process, its type, and its resources
DeploymentA deploymentThe state, the evidence, and the history of that attempt

Two decisions that save years​

An environment is a boundary, not a label. If an environment were a label, isolation would be a convention. In Zero, each environment has its own space, its own quota, and its own blast radius: a problem in one environment does not cross into another. The same holds between projects: over the internal network, nothing reaches anything without an explicit permission — see Networking between projects.

Nothing is overwritten. Every deployment creates a new version. Restoring a previous version undoes nothing — it reactivates something that is still whole. That is what lets the product promise that the version that worked comes back as it was, not as a rebuild of it.

The pages in this section​

The principles that hold everywhere​

These are not aspirations: each one has a mechanism behind it.

  1. You declare product concepts, never infrastructure objects.
  2. Whatever is not in the catalog is refused with an explanation and an alternative, never with a raw infrastructure error.
  3. The scope of your access comes from the authenticated session, never from a request body.
  4. A secret is protected on write, not on read.
  5. The artifact is immutable. Promoting reuses exactly the same artifact.
  6. A deployed version is never overwritten. Restoring is a first-class operation.
  7. No long operation is synchronous.
  8. Versions are pinned, with origin and date. No "latest".
  9. A backup with no restore test is not a backup.
  10. Nothing is declared ready because it compiled.

Next steps​