Import existing config
Snapshot a live organization into manifests with up0 import, so a first sync reports zero diff.
Import existing config
A brand new organization can start from an empty up0/ directory. An organization that already has monitors, tags, or other resources created by hand cannot: a first sync against an empty repository would report every one of those live resources as to_destroy, which is both alarming and wrong. Nothing should be destroyed; the repository just does not exist yet.
up0 importReads the organization's current live state and writes matching manifests under up0/, one file per resource at up0/<kind-plural>/<metadata.name>.yaml, plus the Organization reference manifest at up0/org.yaml. Immediately after running it, a sync against the generated files reports zero diff, by construction. It is a one-time snapshot, not something re-run on a schedule; re-running it after a manual console change is a valid way to pull that drift back into the repository, but it is a deliberate choice each time, not automatic.
--output-dir <dir> writes under a different directory instead of the current one (default: the current directory). --org-id selects an organization when the active CLI profile has none set. --json prints a machine-readable summary instead of the file list, for scripting.
What it actually exports today
Only Organization, Monitor, Tag, Rule, Service, and Objective have an export path today. The other two registered Kinds, StatusPage and Dashboard, and every Kind listed in Not yet as code, are not written to a manifest by up0 import yet, even though StatusPage is fully applyable through a sync once you write its manifest by hand. up0 import says so every time it runs, rather than reporting a clean "done" that reads as complete when it is not.
Real output
Run against a working organization that already held five monitors and a tag from earlier exploration, plus one monitor and one tag created for this page:
$ up0 import
Wrote 10 manifest(s) under up0/:
up0/monitors/1645 example.yaml
up0/monitors/1648 example dns.yaml
up0/monitors/1648 example heartbeat.yaml
up0/monitors/1648 example http.yaml
up0/monitors/1648 example ping.yaml
up0/monitors/1648 example tcp.yaml
up0/monitors/1651 example.yaml
up0/org.yaml
up0/tags/1648-example.yaml
up0/tags/1651-example.yaml
This snapshot is partial — some resource kinds aren't expressible as manifests
yet:
your org has 1 EscalationPolicy, which this import cannot yet express
your org has 8 IngestionTokens, which this import cannot yet express
DataView is not yet supported by this import eitherA StatusPage created in the same organization for this walk does not appear anywhere in that output, neither as a written manifest nor in the partial-snapshot warning: it is a registered, applyable Kind with no exporter built for it yet, and the count endpoint behind that warning does not currently track it either. Treat "not mentioned" the same as "not yet supported," not as "you have none."
One of the written files, showing the shape import produces:
# up0/monitors/1648 example dns.yaml
apiVersion: up0.io/v1
kind: Monitor
metadata:
name: 1648 example dns
spec:
type: dns
url: example.com
intervalSeconds: 300
config:
type: dns
record_type: AAnd the Organization reference manifest, written once regardless of how many other resources exist:
# up0/org.yaml
# Organization is reference-only -- see the Configuration as code overview.
# This file is never applied by a sync; it exists only so a sync can detect
# drift between this repository and the org it's connected to (name /
# dataRegion must match the live org exactly).
apiVersion: up0.io/v1
kind: Organization
metadata:
name: upzero docs
spec:
slug: upzero-docs
timezone: UTC
dataRegion: eu-centralexcludedKinds counts what you actually have
The partial-snapshot warning names live counts, not a generic list of what is missing in general: an org with three status pages would (once StatusPage gains an exporter) be told about those three specifically, the same way it is told about its escalation policy and its eight ingestion tokens above.