Appearance
Selective Export and Import
Last updated
Selective export writes chosen kinds of configuration to a JSON file; selective import loads such a file into another (or the same) appliance with a preview and a conflict rule. Use it to copy a line's devices, dashboards and alarm rules from a template appliance, without replacing users or anything else. Admin only; both cards are on the Backup page.
What can be exported
| Group | Types |
|---|---|
| Core Config | Devices, Tag Subscriptions, Expression Tags, Tag UDTs, Dashboards, Workflows, Scripts (with libraries), Custom Pages, Alarm Rules |
| Manufacturing | Recipes, Work Instructions, Shifts, Downtime Reasons, Quality Reasons, OEE Configs, Labor Standards |
| Advanced | SPC Charts, Andon Configs, Sparkplug, Custom Tables (data tables), Ladder Logic |
| System | System Config (except feature.*, license.* and cloud.* keys) |
Not exportable this way: users, notification groups, security levels, alarm pipelines, reports, work orders, secrets, files, and history.
Export
- In Selective Export, tick the types you need. Types another selected type depends on are ticked automatically and marked Required dependency (for example Alarm Rules need Tag Subscriptions, which need Devices).
- Optionally narrow a type to specific items.
- Tick Exclude sensitive data (passwords, credentials) if the file will leave the plant. This blanks the passwords, tokens and keys inside device driver settings (the rest of each device's settings is kept), and Sparkplug passwords and certificates. Re-enter those passwords on the imported devices.
- Click Download Export (N types). The file is
scadaink-partial-YYYY-MM-DDTHH-MM-SS.json.
Import
- In Selective Import, drop the
.jsonfile or click Browse Files. The file is validated (Validating file...). - Review the preview: Source: (the exporting appliance), Exported:, any warnings, and per type the Total, New and Conflicts counts with example names.
- Choose On conflict: — Skip existing (default) or Overwrite existing.
- Untick types you do not want.
- Click Import N Types and confirm.
- The result lists Inserted, Skipped and Overwritten per type, plus any row errors.
How matching and ids work:
- A row conflicts when an existing row has the same identity: name for most types; slug for dashboards and custom pages; device + tag path for tag subscriptions; device for OEE configs; part number + device for labor standards; table name for data tables; key for system config.
- Ids are renumbered on import, and references between imported items (a tag's device, an alarm rule's tag, ids inside dashboard widget JSON) are rewritten to the new ids.
- "Created by" fields are cleared, so imported items have no creator.
- The whole import runs in one database transaction.
- Files exported by a newer Scada.Ink version are refused (Export file version N is not supported by this instance).
Note: An import takes effect right away, with no restart: alarm rules, workflows, expression tags, ladder tasks, OEE, SPC, Sparkplug device maps and the OPC-UA server reload, and new enabled devices connect. A device that was overwritten keeps its current connection until you disconnect and reconnect it. An imported ladder task is not started for you.
Example: roll out Line 4 from Line 3
- On Line 3, export Devices, Tag Subscriptions, Dashboards and Alarm Rules, with Exclude sensitive data off (same network credentials).
- On Line 4, import with Skip existing. Check the preview shows only New rows.
- Change each device's IP address on the Devices page.
Troubleshooting
| Message | Cause | Fix |
|---|---|---|
| Only .json files are accepted | A .db backup was dropped here | Use Import Backup for .db files |
| Not a Scada.Ink export file / Invalid JSON file | Wrong or edited file | Export again |
| Export file is missing a valid _entityTypes list | Hand-edited or truncated file | Export again |
| This file does not match the one that was previewed. Preview it again before importing. | The file changed between preview and import (API callers) | Preview the same file again |
| …: ignored unknown column(s) … in the results | The file came from a version with extra columns | Harmless for those columns; check the items |
| Imported devices do not connect | Sensitive data was excluded, or the device was overwritten while connected | Re-enter the passwords; disconnect and reconnect the device |
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/admin/partial-export/schema | Exportable types, groups and dependencies |
| POST | /api/admin/partial-export | { "entityTypes": [...], "excludeSensitive": true, "entityIds": {...} } → JSON file |
| POST | /api/admin/partial-export/preview | Multipart field partial, ?conflictMode=skip |
| POST | /api/admin/partial-export/import | Multipart partial plus options = {"conflictMode":"overwrite","entityTypes":[...]} |
For scripted provisioning with API tokens, the Configuration API offers the same bundle format; see Configuration Bundles.