docs(m8): Transport site/instance transport, name-mapping, Myers diff, stale enumeration (M8 INT)

This commit is contained in:
Joseph Doherty
2026-06-18 07:53:25 -04:00
parent f881521cc9
commit 4d888c63a3
7 changed files with 136 additions and 45 deletions
+17 -5
View File
@@ -1667,8 +1667,10 @@ scadabridge --url <url> api-method delete --id <int>
Export, preview, and import Transport (#24) bundles. Bundles carry templates, shared
scripts, external systems, database connections, notification lists, SMTP configurations,
and API methods between environments. Inbound API keys are **not** transported — recreate
them on the destination via the CLI or UI.
and API methods between environments. As of M8 (T18) they also carry **site-scoped**
configuration — `Site` definitions, site-scoped `DataConnection`s (protocol connections),
and `Instance`s (with their override children and area membership). Inbound API keys are
**not** transported — recreate them on the destination via the CLI or UI.
Bundle commands use a 5-minute timeout (larger payloads may be slow over WAN).
@@ -1693,6 +1695,8 @@ scadabridge --url <url> bundle export --output <path> [--passphrase <string>] [-
| `--notification-lists` | no | Comma-separated notification-list names to include |
| `--smtp-configs` | no | Comma-separated SMTP host names to include |
| `--api-methods` | no | Comma-separated API-method names to include |
| `--sites` | no | Comma-separated site identifiers (preferred) or friendly names to include |
| `--instances` | no | Comma-separated instance unique-names to include (also pulls their site + bound data connections) |
| `--source-environment` | no | `SourceEnvironment` value stamped into the bundle manifest (default: `cli`) |
**Example** — export two templates and all their dependencies:
@@ -1704,7 +1708,7 @@ scadabridge --url <url> bundle export --output baseline.scadabundle \
#### `bundle preview`
Load a bundle and print the diff preview (Added / Modified / Unchanged per entity) without applying any changes.
Load a bundle and print the diff preview (Added / Modified / Unchanged per entity) without applying any changes. When the bundle carries sites or site-scoped connections, the preview also prints a **required-mapping summary**: for each source site/connection it states either the auto-match (`auto-matches 'X'`) or the directive to supply `--map-site` / `--map-connection` or `--create-missing-*`.
```sh
scadabridge --url <url> bundle preview --input <path> [--passphrase <string>]
@@ -1717,10 +1721,12 @@ scadabridge --url <url> bundle preview --input <path> [--passphrase <string>]
#### `bundle import`
Load and apply a bundle with a single global conflict policy. Preview first with `bundle preview` to review the diff.
Load and apply a bundle with a single global conflict policy. Preview first with `bundle preview` to review the diff and the required-mapping summary.
```sh
scadabridge --url <url> bundle import --input <path> [--passphrase <string>] [--on-conflict <policy>]
scadabridge --url <url> bundle import --input <path> [--passphrase <string>] [--on-conflict <policy>] \
[--map-site <src=dst> ...] [--map-connection <srcSite/srcName=dstName> ...] \
[--create-missing-sites] [--create-missing-connections]
```
| Option | Required | Default | Description |
@@ -1728,6 +1734,12 @@ scadabridge --url <url> bundle import --input <path> [--passphrase <string>] [--
| `--input` | yes | — | Bundle file path (`.scadabundle`) |
| `--passphrase` | no | — | Passphrase for encrypted bundles |
| `--on-conflict` | no | `overwrite` | Resolution policy for `Modified` rows: `skip`, `overwrite`, or `rename` |
| `--map-site` | no | — | Map a source site to a destination: `srcIdentifier=dstIdentifier`. A token with no/empty `=dst` means **create-new**. Repeatable. |
| `--map-connection` | no | — | Map a source connection to a destination: `srcSiteIdentifier/srcName=dstName`. A token with no/empty `=dst` means **create-new**. Repeatable. |
| `--create-missing-sites` | no | `false` | Create any still-unmapped/unmatched source site from the bundle payload instead of aborting |
| `--create-missing-connections` | no | `false` | Create any still-unmapped/unmatched source connection from the bundle payload instead of aborting |
Site identifiers and connection names are environment-specific; the importer first auto-matches them (sites by `SiteIdentifier`, connections by the site-qualified `{SiteIdentifier}/{Name}`). Any source reference that neither auto-matches nor is mapped/created aborts the import. Imported instances always land `NotDeployed` — redeploy via the normal flow.
---