Import / export (manifest)
Describe your architecture in a YAML or JSON file and import it; or export the map to version it.
The “import” button opens the panel: load a file (.yaml, .yml, .json) or paste text; “export map” downloads xnode360-map.yaml.
Minimal example
nodes:
- id: web
kind: domain
label: app.example.com
group: prod
check: { type: tls, target: app.example.com, runner: cloud }
- id: db
kind: database
label: postgres
group: prod
edges:
- { from: web, to: db, kind: network, label: "5432" }
Here web is checked by the cloud worker and db stays tracked (no check).
Node fields
| Field | Notes |
|---|---|
id | Only used to link edges within the file. Generated if missing. It doesn’t become the database id. |
kind | vps, database, domain, service, module. Any other value becomes service. |
moduleRef | Only for kind: module: { wsId }, the id of the linked map (you must be a member). A module has no check, reach or provider. |
label | The displayed name (or name). |
group | A plain name; the group is created if missing. It is not a nested path. |
check | Object: type, target, runner (cloud, agent, manual), agentId, timeoutMs, authSecretName; for manual nodes status. Not validated on import. |
provider | { name, console, account }. |
reach | public or private (behind a VPN or internal network). Optional: it’s only a label on the card and doesn’t change checks. |
position | { x, y }. If missing, nodes are laid out in a grid. |
secrets | List of { name, vaultType, vaultRef, path, owner, notes, expires, at }. at lists the locations. |
Edge fields
from and to (or source and target) with the ids of nodes in the file, plus kind, label and secrets. If an end is a module, fromInner and toInner name the inner node (its id in the linked map) the edge points to. An edge pointing to an id not in the file is dropped without a warning.
What to expect
- Import is additive only: it never edits or deletes anything. Importing the same file twice duplicates nodes and edges.
- A node without
checkimported from the panel staystracked. Imported via MCP it starts as manual and online instead. - If you write
tcpto a private address (e.g.127.0.0.1:5432) withoutrunner: agentandagentId, the check would run on the cloud, where that address is meaningless. - Export doesn’t include: the state of non-manual nodes, group colors and nesting, saved layouts, rotation and sync dates.
- Very large imports (over roughly 500 operations) may fail.