NetEngine alpha has two important persistence surfaces: local runtime state and the database. Treat both as operationally sensitive.
The runtime state file is written after each phase so interrupted runs can resume. The default path is netengines_state.json, configurable with NETENGINE_STATE_FILE.
Runtime state includes phase completion, outputs needed by later phases, schema metadata, and potentially generated secrets. Do not commit it or attach it to support tickets.
Postgres with pgmq stores runtime persistence, event queues, and migration state. Inspect migrations with:
psql "$NETENGINE_DB_URL" -c "SELECT version, dirty FROM schema_migrations;"Queue state can be inspected with:
poetry run netengine eventsCreate a redacted support bundle:
poetry run netengine export --out netengine-support-bundle.jsonImport a compatible bundle:
poetry run netengine import netengine-support-bundle.jsonBundles include schema metadata, the spec, phase completion, public CA material, and sanitized phase outputs. They are intended for support and compatible restores, not for long-term secret escrow.
For alpha environments with durable data:
- Back up Postgres before migrations, reloads, imports, and teardown.
- Back up the runtime state file with filesystem permissions preserved.
- Store backups encrypted and access-controlled.
- Keep the spec revision that produced the world.
- Test restore into an isolated environment before relying on a backup plan.
Disposable local/dev environments may be rebuilt from specs and migrations instead of restored.
Prefer importing a redacted compatible bundle, then rotating or re-entering live credentials. If restoring from raw runtime state, ensure it came from the same trusted operator environment and compatible schema version.