One config file. Thirteen kinds of artifact. Every push.

Keep the system definition beside the code. The CLI reconciles that definition against the graph from the same commit.

sync/release
uigraph-cli syncdone

$ uigraph-cli sync

Syncing payments-service...

✓ apis openapi · 12 operations synced

✓ databases postgres · 18 tables synced

✓ testPacks regression · 6 cases synced

✓ docs 4 files synced

Sync Summary

Service payments-service

Commit a13f92e

Artifact types 4 synced

Duration 1.8s

✓ Sync complete · 4 artifact types synced · 1.8s

The wiki drifts because the code moves without it.

Code changes in a commit
The system definition changes with it

The answer is not another documentation ritual. It is one repository truth.

01 file

The whole system, declared once.

Review .uigraph.yaml like any other change to the repository.

.uigraph.yaml
version: 1
organization: acme

services:
  - name: payments-service
    owner: payments-team
    apiSpecs:
      - ./openapi.yaml

databases:
  - ./db/schema.sql

testPacks:
  - ./tests/checkout.yaml

docs:
  - ./docs

sync reconciles

13 kinds
  1. 01Service metadata
  2. 02API specs
  3. 03Dependencies
  4. 04Mermaid diagrams
  5. 05Test packs
  6. 06Test cases
  7. 07Database schemas
  8. 08Saved queries
  9. 09Documentation
  10. 10Maps, frames & focal points
  11. 11Cost rules
  12. 12Timeline events
  13. 13ML models & experiments

Every push

The graph moves in the same commit as the code.

Put sync in CI. A merge changes the code and its system description together, leaving no drift window to clean up later.

Commit

Code + .uigraph.yaml

CI

sync

Graph

Current

--dry-run

Preview the graph change first.

See what sync would change without applying anything. Use it while wiring up the repo, then keep it in pull-request checks.

01ReportLists the proposed graph changes
02ProtectApplies none of those changes
03ReviewFits a pull-request check

Setup

Three decisions, then sync.

Install

go install github.com/uigraph/cli@latest

or use the Docker image

Authenticate

Set UIGRAPH_TOKEN in the environment or CI secret store.

Target

Pass --enterprise when syncing to a self-hosted instance.

Frequently asked questions

Still have a question about the CLI? The docs cover installation, authentication, configuration, and sync behavior in detail.

Read the docs

$ uigraph-cli sync

Commit one definition, run one command in CI, and stop maintaining the graph by hand.