Configuration as code
Connect a repository, declare resources as manifests, and let upzero apply and reconcile them on every push.
Configuration as code
Most of upzero's operational surface (monitors, tags, rules, services, status pages, objectives, dashboards) can be declared as YAML in a git repository. Connect that repository once, and upzero's own GitHub App picks up every push, computes a plan, and applies it, either directly or gated behind a pull request.
There is no up0 apply command and no local up0 plan. The only thing that ever applies a declared change is a push to the branch your repository is connected on. A plan preview exists too, but only as a comment upzero posts on the pull request itself, when the connection is set to PR-gated sync.
Connect a repository
The GitHub App, PR-gated and direct sync, and what a sync run does.
Repository layout
apiVersion, kind, metadata.name as the natural key, one file or many.
Import existing config
Snapshot a live org into manifests with up0 import.
Sync history and drift
What ran, what changed, and how a conflict is reported.
Not yet as code
The five Kinds with no manifest path yet, and why.
Kind reference
Seven Kinds are registered and applyable today. Each page below shows the full field list, generated from the live registry, and a complete example manifest.
Organization
Every connected repository also carries one Organization manifest, usually at up0/org.yaml. It is reference-only: syncing a repository never creates or renames an organization, and it never touches billing. Its only job is drift detection, comparing its metadata.name and spec.dataRegion against the live org so a repository pointed at the wrong org is caught before anything else applies. See Repository layout for the manifest shape and Not yet as code for what a connected repository still cannot express.