Skip to main content
A manifest declares the desired state of an organization’s projects, environment, domains, and platform resources. The platform reconciles toward it — and never deletes: resources you stop declaring are reported as orphaned and left alone.

Full reference: korve.yaml

Field rules mirror the API: slugs match ^[a-z][a-z0-9-]{1,61}$, repos are owner/repo, env keys are UPPER_SNAKE. Runtime class is immutable after creation — changing it in the manifest is reported as invalid rather than applied.

plan / apply

A plan is a list of actions, each typed: API: GET /v1/orgs/{orgId}/manifest (export), POST .../manifest/plan, POST .../manifest/apply — all admin role; apply requires active billing. See the Manifest API. Over MCP: await korve.manifest.plan({ orgId, body: manifest }).

Exporting current state

Round-trips the organization’s live state into a manifest. Secret values are masked as ******** on export, and masked values are ignored on apply — so the export → commit → apply loop never moves secrets through git. Set real values with korve env set.

A good workflow

  1. korve manifest export -o korve.yaml — snapshot reality.
  2. Edit, commit, PR — your infrastructure is now reviewed like code.
  3. korve manifest plan -f korve.yaml in CI — the diff is the review.
  4. korve manifest apply -f korve.yaml --yes on merge.