sylo-ignition 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,30 @@
1
+ # Publishes to npm via Trusted Publishing (OIDC — no tokens).
2
+ # npm side: package Settings -> Trusted publishing -> GitHub Actions ->
3
+ # user Yeti-Trix, this repo, workflow filename publish.yml.
4
+ # Release flow: bump package.json version -> commit -> tag vX.Y.Z -> push tag.
5
+ # Provenance attestations are generated automatically (public repo + package).
6
+ name: Publish Package
7
+
8
+ on:
9
+ push:
10
+ tags:
11
+ - 'v*'
12
+ workflow_dispatch:
13
+
14
+ permissions:
15
+ id-token: write
16
+ contents: read
17
+
18
+ jobs:
19
+ publish:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v6
23
+ - uses: actions/setup-node@v6
24
+ with:
25
+ node-version: '24'
26
+ registry-url: 'https://registry.npmjs.org'
27
+ package-manager-cache: false
28
+ - run: npm install
29
+ - run: npm run build --if-present
30
+ - run: npm publish
package/package.json CHANGED
@@ -1,22 +1,11 @@
1
1
  {
2
2
  "name": "sylo-ignition",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "Ignition 8.3 gateway + project assistant — file-based resource authoring, REST scan/hot-reload, tag scaffolding, screenshot-verified Perspective UI",
5
5
  "type": "module",
6
6
  "keywords": [
7
7
  "pi-package"
8
8
  ],
9
- "files": [
10
- "assets",
11
- "extensions",
12
- "scripts",
13
- "skills",
14
- "references/README.md",
15
- "references/gateway-rest-api-8.3.md",
16
- "references/quickref",
17
- "README.md",
18
- "LICENSE"
19
- ],
20
9
  "pi": {
21
10
  "extensions": [
22
11
  "./extensions/index.ts"
@@ -32,5 +21,30 @@
32
21
  "dependencies": {
33
22
  "typebox": "^1.1.24"
34
23
  },
35
- "license": "MIT"
24
+ "license": "MIT",
25
+ "gitHead": "f05700bce9bf8ef8574894f24a8a3fa71da11d61",
26
+ "dist": {
27
+ "integrity": "sha512-TZQaPVwyV8vcMQOV7Oa/GeQGtr+W3vIN3AlG3m3iQvUcIy4u9hDDE0kb4WOZHMJH05KCj/jKGIM9G/ZjumUsHA==",
28
+ "shasum": "f1e03d13b3b95da6b0c0a9fd3595cb8f5fc2ba41",
29
+ "tarball": "https://registry.npmjs.org/sylo-ignition/-/sylo-ignition-0.1.0.tgz",
30
+ "fileCount": 28,
31
+ "unpackedSize": 118677,
32
+ "signatures": [
33
+ {
34
+ "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U",
35
+ "sig": "MEYCIQDRNu/ocosEo1RAAnKzjvIB2xu/S+KLK5vmm0Y6uzlvygIhAMtbI0Vou7mRlwEXfyjcGwWwzrlXdft2KOL4LYOaKxmk"
36
+ }
37
+ ]
38
+ },
39
+ "directories": {},
40
+ "maintainers": [
41
+ {
42
+ "name": "yeti-trix",
43
+ "email": "spencer.current@gmail.com"
44
+ }
45
+ ],
46
+ "repository": {
47
+ "type": "git",
48
+ "url": "git+https://github.com/Yeti-Trix/sylo-ignition.git"
49
+ }
36
50
  }
@@ -1,45 +0,0 @@
1
- # Ignition reference docs (offline)
2
-
3
- Offline Ignition documentation for the **sylo-ignition** package. Fetched
4
- 2026-08-30 with `packages/sylo-ignition/scripts/fetch_docs.py` (requires
5
- pandoc 3.x; re-run any time to refresh — downloads are cached/resumable in
6
- `~/igscrape/html/`).
7
-
8
- > **Provenance.** Content is © Inductive Automation, scraped from their public
9
- > documentation sites for internal offline use. Every page records its source
10
- > URL under the title. Do not redistribute.
11
-
12
- ## What's here
13
-
14
- | Path | Contents | Size |
15
- |------|----------|------|
16
- | `user-manual-8.3/` | **Ignition 8.3 User Manual** — 1566 pages as Markdown (tables, code blocks, internal links preserved). Mirrors `docs.inductiveautomation.com/docs/8.3/…` paths. | 28 MB |
17
- | `sdk-docs/` | **Ignition SDK Programmer's Guide (8.3)** — 63 pages as Markdown. Mirrors `sdk-docs.inductiveautomation.com/docs/8.3/…`. | 0.6 MB |
18
- | `user-manual-8.1-pdfs/` | **Official 8.1 manual PDF exports** (IA legacy-docs, taken 2024-02-21) — 17 files incl. Platform, Scripting Functions, Expression Functions, Perspective/Vision Components refs. Use with the **pdf-reader** skill (`search_schematic_pdf` etc.). *Git-ignored — re-fetch with `fetch_docs.py`.* | 262 MB |
19
-
20
- ## How to use (agent notes)
21
-
22
- - **Search:** `grep -rn "<term>" user-manual-8.3 --include="*.md"` — pipe-table
23
- and grid-table contents are all greppable. Prefer searching here over the web
24
- for Ignition facts; cite the `> Source:` line when referencing.
25
- - **Key pages for the package:**
26
- - `user-manual-8.3/platform/tags/tag-properties.md` — tag JSON property names + on-disk tag file paths
27
- - `user-manual-8.3/tutorials/version-control-guide.md` — file-based config, `.gitignore`, scan endpoints
28
- - `user-manual-8.3/platform/gateway/openapi.md` — REST API + API keys
29
- - `user-manual-8.3/appendix/components/perspective-components/` — Perspective component catalog (per-component props/events)
30
- - `user-manual-8.3/appendix/scripting-functions/` — Jython `system.*` function reference
31
- - `user-manual-8.3/new-in-this-version.md` — 8.3.0→8.3.9 changelog deltas
32
- - `sdk-docs/programming-for-the-gateway/storing-data-using-resource-collections.md` — the config resource model
33
- - **8.1 questions:** use the PDFs (`user-manual-8.1-pdfs/DOC-81-3-platform.pdf`,
34
- `DOC-81-4-scripting-functions.pdf`, `DOC-81-6-2-perspective-components.pdf`, …)
35
- via pdf-reader tools.
36
-
37
- ## Known limitations
38
-
39
- - 4 pages skipped (no extractable content): the visual `/scopes/*` pages
40
- (`scopes`, `gateway`, `perspective-session`, `vision-client`). Read them online if needed.
41
- - Images are **not** mirrored; image links point at the live site.
42
- - 1 page retains a raw HTML table (grid conversion failed) — content still greppable.
43
- - Admonitions (note/tip boxes) are flattened into plain paragraphs — look for
44
- the bold title line ("Note", "Danger", …) that precedes them.
45
- - The 8.1 PDFs snapshot Feb 2024 — later 8.1.x point releases are not covered.
@@ -1,119 +0,0 @@
1
- # Ignition 8.3 Gateway REST API — verified route map
2
-
3
- Verified live 2026-08-30 against a **native Windows Ignition 8.3.9** install
4
- (Perspective module 3.3.9), gateway at `http://localhost:8088`. Full OpenAPI
5
- spec: `GET /openapi.json` with the `X-Ignition-API-Token` header (12 MB on a
6
- full-module install, 588 routes). This file is the curated subset the
7
- sylo-ignition tools actually use.
8
-
9
- ## Auth (verified recipe)
10
-
11
- - Create API key: **Platform → Security → API Keys → Create API Key +**
12
- (Basic Token). Token shown once.
13
- - Key must have **"Require secure connections" unchecked** for plain-HTTP
14
- local gateways (checked → 403 over HTTP).
15
- - Role-derived levels (Roles→Administrator) are **greyed out** for API keys.
16
- Custom levels are assignable. Working setup (verified):
17
- 1. **Platform → Security → Levels**: add custom level `SyloAPI` under
18
- `Authenticated`
19
- 2. Assign `SyloAPI` to the API key
20
- 3. **Platform → Security → General Settings → Roles and Permissions**:
21
- check `SyloAPI` for Gateway Read AND Gateway Write permissions
22
- - Every request: header `X-Ignition-API-Token: <token>`.
23
- - Status codes: bad/dead token → 401; insufficient security level → 403
24
- (route exists); no such route → 404 (`No route match for path: /v1/...`).
25
-
26
- ## Scan / safe-edit protocol
27
-
28
- | Method | Route | Purpose |
29
- |--------|-------|---------|
30
- | GET | `/data/api/v1/scan/projects` | Project scan status (`scanActive`, `lastScanTimestamp`) |
31
- | POST | `/data/api/v1/scan/projects` | **Trigger project scan** — hot-loads disk edits into gateway + Designer |
32
- | GET/POST | `/data/api/v1/scan/config` | Same for gateway config (`data/config/**`) |
33
- | GET | `/data/api/v1/scan-lock/projects` | Scan-lock info |
34
- | POST | `/data/api/v1/scan-lock/projects` | Acquire project scan lock (mutual exclusion while writing on disk) |
35
- | GET | `/data/api/v1/sync/items` | Config sync status |
36
- | POST | `/data/api/v1/sync/reset` | Reset config sync |
37
-
38
- ## Projects API
39
-
40
- | Method | Route | Purpose |
41
- |--------|-------|---------|
42
- | GET | `/data/api/v1/projects/list` | List all projects (with resource counts) |
43
- | GET | `/data/api/v1/projects/names` | Project names |
44
- | POST | `/data/api/v1/projects` | Create project |
45
- | GET | `/data/api/v1/projects/find/{name}` | Project details |
46
- | PUT | `/data/api/v1/projects/{name}` | Modify project (title/description/enabled/parent) |
47
- | DELETE | `/data/api/v1/projects/{name}` | Delete project |
48
- | POST | `/data/api/v1/projects/copy` | Copy project |
49
- | POST | `/data/api/v1/projects/rename/{name}` | Rename project |
50
- | GET | `/data/api/v1/projects/export/{name}` | **Export project zip** |
51
- | POST | `/data/api/v1/projects/import/{name}` | **Import project zip** |
52
-
53
- ## Resources API (gateway config, pattern per type)
54
-
55
- Pattern per resource type (393 routes total):
56
- `GET /data/api/v1/resources/list|names|type|find|rename|delete/{moduleId}/{typeId}`,
57
- `PUT|POST /data/api/v1/resources/{moduleId}/{typeId}` (create/update),
58
- `GET|PUT|DELETE .../datafile/{moduleId}/{typeId}/{name}/{filename}` (attached files),
59
- `GET .../singleton/{moduleId}/{typeId}` (singletons).
60
-
61
- Key types for sylo-ignition:
62
-
63
- | Module | Type | Use |
64
- |--------|------|-----|
65
- | `ignition` | `tag-provider` | Tag provider CRUD |
66
- | `com.inductiveautomation.opcua` | `device` | OPC UA device connections |
67
- | `ignition` | `opc-connection` | Legacy OPC connections |
68
- | `ignition` | `database-connection` | DB connections |
69
- | `com.inductiveautomation.perspective` | `themes` | **Theme resources** (theme.json + css files via datafile routes) |
70
- | `com.inductiveautomation.perspective` | `fonts`, `icons` | Fonts / icon sets |
71
- | `ignition` | `security-levels`, `security-properties`, `security-zone` | Security config |
72
- | `ignition` | `identity-provider`, `user-source` | Authn config |
73
-
74
- ## Tags
75
-
76
- | Method | Route | Purpose |
77
- |--------|-------|---------|
78
- | GET | `/data/api/v1/tags/export` | **Download tag export (JSON)** — provider/tag paths, recursive |
79
- | POST | `/data/api/v1/tags/import` | **Import tags (JSON)** — create/override, collision handling |
80
- | PUT | `/data/api/v1/managed-tag-provider` | Write managed tag provider definitions |
81
-
82
- No REST route for tag **values** (definitions only). Value read/write goes
83
- through the gateway's OPC-UA server or scripting, not this API.
84
-
85
- ## Perspective module API
86
-
87
- | Method | Route | Purpose |
88
- |--------|-------|---------|
89
- | GET | `/data/perspective/api/v1/sessions/` | Live sessions |
90
- | GET | `/data/perspective/api/v1/session/{sessionId}` | Session detail |
91
- | GET | `/data/perspective/api/v1/session/{sessionId}/pages` | Pages in session |
92
- | GET | `/data/perspective/api/v1/session/{sessionId}/page/{pageId}/views` | Mounted views |
93
- | DELETE | `/data/perspective/api/v1/sessions` | Terminate session(s) |
94
- | POST | `/data/perspective/api/v1/themes/copy-base-themes` | **Copy base themes into project** (start of theme customization) |
95
-
96
- ## Gateway status / diagnostics
97
-
98
- | Method | Route | Purpose |
99
- |--------|-------|---------|
100
- | GET | `/data/api/v1/gateway-info` | Version/edition/platform info |
101
- | GET | `/data/api/v1/overview` | Gateway overview (modules, system) |
102
- | GET | `/data/api/v1/overview/problems` | Health problems list |
103
- | GET | `/data/api/v1/overview/connections` | Connection statuses |
104
- | GET | `/data/api/v1/logs` | Gateway logs (debug scan failures etc.) |
105
- | GET | `/data/api/v1/logs/download` | Download logs |
106
- | GET | `/data/api/v1/backup` | **Gateway backup download** (pre-change safety) |
107
- | POST | `/data/api/v1/backup` | Restore backup |
108
- | GET | `/data/api/v1/designers` | Open Designer sessions (conflict detection!) |
109
- | GET | `/data/api/v1/entity/browse` | Browse config entities |
110
- | GET/POST/PUT/DELETE | `/data/api/v1/mode*` | Deployment modes |
111
- | GET | `/data/api/v1/licenses` | License info |
112
- | GET | `/data/api/v1/trial` | Trial info |
113
-
114
- ## OPC-UA module API (client/server PKI)
115
-
116
- `/data/opc-ua/api/v1/...` — trust/reject/download/upload certificates for
117
- client & server PKI, regenerate server certificate. Needed for connecting to
118
- real PLCs (Logix/Modbus/Siemens etc. are driver configs via resources API:
119
- `com.inductiveautomation.opcua/device`).
@@ -1,12 +0,0 @@
1
- # Ignition 8.3 quick reference (bundled with the skill)
2
-
3
- This small folder is copied to `~/.pi/agent/references/ignition/` so the
4
- essentials travel with the skill. The **full** corpus (1,566-page User Manual +
5
- SDK docs as Markdown) stays in the Sylo repo at
6
- `packages/sylo-ignition/references/` — see `ignition-reference` SKILL.md.
7
-
8
- - `gateway-rest-api-8.3.md` — verified route map of the 588-route REST API,
9
- the working API-key security-level recipe, and per-area tables (projects,
10
- scan, resources, tags, Perspective, diagnostics).
11
- - `formats-quickref.md` — on-disk layout, view.json, bindings, resource.json,
12
- Jython 2.7 notes.
@@ -1,94 +0,0 @@
1
- # Ignition 8.3 formats quickref
2
-
3
- Verified against a live 8.3.9 install (2026-08-30).
4
-
5
- ## On-disk project layout
6
-
7
- ```
8
- data/projects/<Name>/
9
- ├── project.json # {"title","description","enabled","inheritable","parent"}
10
- └── com.inductiveautomation.perspective/
11
- ├── views/<viewPath>/ # resource.json + view.json + thumbnail.png
12
- ├── page-config/config.json/ # page config resource
13
- ├── page-startup/onPageStartup.py/
14
- └── session-props/props.json/
15
- ```
16
-
17
- ## resource.json (per resource folder — gateway-owned, never hand-edit existing)
18
-
19
- ```json
20
- {
21
- "scope": "G",
22
- "version": 1,
23
- "restricted": false,
24
- "overridable": true,
25
- "files": ["view.json", "thumbnail.png"],
26
- "attributes": {
27
- "lastModificationSignature": "<sha256-hex>",
28
- "lastModification": { "actor": "operator", "timestamp": "2026-08-30T20:54:34Z" }
29
- }
30
- }
31
- ```
32
-
33
- ## Perspective view.json skeleton (VERIFIED live on 8.3.9)
34
-
35
- ```json
36
- {
37
- "custom": {},
38
- "params": {},
39
- "props": {},
40
- "root": {
41
- "type": "ia.container.coord",
42
- "meta": { "name": "root" },
43
- "children": [
44
- {
45
- "type": "ia.display.label",
46
- "meta": { "name": "titleLabel" },
47
- "position": { "x": 24, "y": 24, "width": 400, "height": 40 },
48
- "props": { "text": "Overview", "style": { "fontSize": "24px" } }
49
- }
50
- ]
51
- }
52
- }
53
- ```
54
-
55
- - `root` is a **top-level key holding the root component** — NOT `props.root.children`.
56
- Malformed views are silently dropped by the scan.
57
- - `meta.name` unique per view. Position: absolute px inside coord (verified);
58
- `mode: "flow"` inside flex containers (verified); `mode: "percent"` unverified —
59
- labels stacked at 0,0 in live testing.
60
- - Bindings wrap values: `"text": {"binding": {"type": "property", "config": {"path": "view.params.title"}}}`
61
- — types: property, tag (`[provider]path/to/tag`), expr (Perspective expression
62
- language), query; `config.transforms` chain output transforms.
63
-
64
- ## Page-config (required for a view to be reachable)
65
-
66
- `com.inductiveautomation.perspective/page-config/config.json`:
67
-
68
- ```json
69
- {
70
- "pages": { "/": { "viewPath": "Home" } },
71
- "sharedDocks": { "cornerPriority": "top-bottom" }
72
- }
73
- ```
74
-
75
- The URL after the project name is the PAGE path; pages map to view paths here.
76
-
77
- ## project.json
78
-
79
- ```json
80
- { "title": "Example Project", "description": "", "enabled": true, "inheritable": false, "parent": "" }
81
- ```
82
-
83
- ## Gateway scripts = Jython 2.7
84
-
85
- No f-strings / async / pathlib / match. Use `%`/`.format()`. `system.*` functions
86
- (e.g. `system.tag.readBlocking(["[default]Line1/Speed"])`).
87
-
88
- ## Auth (API key)
89
-
90
- Header `X-Ignition-API-Token`. Working recipe (8.3.9): API key (Basic Token,
91
- secure-connections unchecked for plain HTTP) holding a custom security level
92
- (e.g. `SyloAPI` under `Authenticated`), granted Gateway Read + Write in
93
- Security > General Settings > Roles and Permissions. 401 = bad token;
94
- 403 = insufficient level; 404 = route doesn't exist.
@@ -1,119 +0,0 @@
1
- # Ignition 8.3 Gateway REST API — verified route map
2
-
3
- Verified live 2026-08-30 against a **native Windows Ignition 8.3.9** install
4
- (Perspective module 3.3.9), gateway at `http://localhost:8088`. Full OpenAPI
5
- spec: `GET /openapi.json` with the `X-Ignition-API-Token` header (12 MB on a
6
- full-module install, 588 routes). This file is the curated subset the
7
- sylo-ignition tools actually use.
8
-
9
- ## Auth (verified recipe)
10
-
11
- - Create API key: **Platform → Security → API Keys → Create API Key +**
12
- (Basic Token). Token shown once.
13
- - Key must have **"Require secure connections" unchecked** for plain-HTTP
14
- local gateways (checked → 403 over HTTP).
15
- - Role-derived levels (Roles→Administrator) are **greyed out** for API keys.
16
- Custom levels are assignable. Working setup (verified):
17
- 1. **Platform → Security → Levels**: add custom level `SyloAPI` under
18
- `Authenticated`
19
- 2. Assign `SyloAPI` to the API key
20
- 3. **Platform → Security → General Settings → Roles and Permissions**:
21
- check `SyloAPI` for Gateway Read AND Gateway Write permissions
22
- - Every request: header `X-Ignition-API-Token: <token>`.
23
- - Status codes: bad/dead token → 401; insufficient security level → 403
24
- (route exists); no such route → 404 (`No route match for path: /v1/...`).
25
-
26
- ## Scan / safe-edit protocol
27
-
28
- | Method | Route | Purpose |
29
- |--------|-------|---------|
30
- | GET | `/data/api/v1/scan/projects` | Project scan status (`scanActive`, `lastScanTimestamp`) |
31
- | POST | `/data/api/v1/scan/projects` | **Trigger project scan** — hot-loads disk edits into gateway + Designer |
32
- | GET/POST | `/data/api/v1/scan/config` | Same for gateway config (`data/config/**`) |
33
- | GET | `/data/api/v1/scan-lock/projects` | Scan-lock info |
34
- | POST | `/data/api/v1/scan-lock/projects` | Acquire project scan lock (mutual exclusion while writing on disk) |
35
- | GET | `/data/api/v1/sync/items` | Config sync status |
36
- | POST | `/data/api/v1/sync/reset` | Reset config sync |
37
-
38
- ## Projects API
39
-
40
- | Method | Route | Purpose |
41
- |--------|-------|---------|
42
- | GET | `/data/api/v1/projects/list` | List all projects (with resource counts) |
43
- | GET | `/data/api/v1/projects/names` | Project names |
44
- | POST | `/data/api/v1/projects` | Create project |
45
- | GET | `/data/api/v1/projects/find/{name}` | Project details |
46
- | PUT | `/data/api/v1/projects/{name}` | Modify project (title/description/enabled/parent) |
47
- | DELETE | `/data/api/v1/projects/{name}` | Delete project |
48
- | POST | `/data/api/v1/projects/copy` | Copy project |
49
- | POST | `/data/api/v1/projects/rename/{name}` | Rename project |
50
- | GET | `/data/api/v1/projects/export/{name}` | **Export project zip** |
51
- | POST | `/data/api/v1/projects/import/{name}` | **Import project zip** |
52
-
53
- ## Resources API (gateway config, pattern per type)
54
-
55
- Pattern per resource type (393 routes total):
56
- `GET /data/api/v1/resources/list|names|type|find|rename|delete/{moduleId}/{typeId}`,
57
- `PUT|POST /data/api/v1/resources/{moduleId}/{typeId}` (create/update),
58
- `GET|PUT|DELETE .../datafile/{moduleId}/{typeId}/{name}/{filename}` (attached files),
59
- `GET .../singleton/{moduleId}/{typeId}` (singletons).
60
-
61
- Key types for sylo-ignition:
62
-
63
- | Module | Type | Use |
64
- |--------|------|-----|
65
- | `ignition` | `tag-provider` | Tag provider CRUD |
66
- | `com.inductiveautomation.opcua` | `device` | OPC UA device connections |
67
- | `ignition` | `opc-connection` | Legacy OPC connections |
68
- | `ignition` | `database-connection` | DB connections |
69
- | `com.inductiveautomation.perspective` | `themes` | **Theme resources** (theme.json + css files via datafile routes) |
70
- | `com.inductiveautomation.perspective` | `fonts`, `icons` | Fonts / icon sets |
71
- | `ignition` | `security-levels`, `security-properties`, `security-zone` | Security config |
72
- | `ignition` | `identity-provider`, `user-source` | Authn config |
73
-
74
- ## Tags
75
-
76
- | Method | Route | Purpose |
77
- |--------|-------|---------|
78
- | GET | `/data/api/v1/tags/export` | **Download tag export (JSON)** — provider/tag paths, recursive |
79
- | POST | `/data/api/v1/tags/import` | **Import tags (JSON)** — create/override, collision handling |
80
- | PUT | `/data/api/v1/managed-tag-provider` | Write managed tag provider definitions |
81
-
82
- No REST route for tag **values** (definitions only). Value read/write goes
83
- through the gateway's OPC-UA server or scripting, not this API.
84
-
85
- ## Perspective module API
86
-
87
- | Method | Route | Purpose |
88
- |--------|-------|---------|
89
- | GET | `/data/perspective/api/v1/sessions/` | Live sessions |
90
- | GET | `/data/perspective/api/v1/session/{sessionId}` | Session detail |
91
- | GET | `/data/perspective/api/v1/session/{sessionId}/pages` | Pages in session |
92
- | GET | `/data/perspective/api/v1/session/{sessionId}/page/{pageId}/views` | Mounted views |
93
- | DELETE | `/data/perspective/api/v1/sessions` | Terminate session(s) |
94
- | POST | `/data/perspective/api/v1/themes/copy-base-themes` | **Copy base themes into project** (start of theme customization) |
95
-
96
- ## Gateway status / diagnostics
97
-
98
- | Method | Route | Purpose |
99
- |--------|-------|---------|
100
- | GET | `/data/api/v1/gateway-info` | Version/edition/platform info |
101
- | GET | `/data/api/v1/overview` | Gateway overview (modules, system) |
102
- | GET | `/data/api/v1/overview/problems` | Health problems list |
103
- | GET | `/data/api/v1/overview/connections` | Connection statuses |
104
- | GET | `/data/api/v1/logs` | Gateway logs (debug scan failures etc.) |
105
- | GET | `/data/api/v1/logs/download` | Download logs |
106
- | GET | `/data/api/v1/backup` | **Gateway backup download** (pre-change safety) |
107
- | POST | `/data/api/v1/backup` | Restore backup |
108
- | GET | `/data/api/v1/designers` | Open Designer sessions (conflict detection!) |
109
- | GET | `/data/api/v1/entity/browse` | Browse config entities |
110
- | GET/POST/PUT/DELETE | `/data/api/v1/mode*` | Deployment modes |
111
- | GET | `/data/api/v1/licenses` | License info |
112
- | GET | `/data/api/v1/trial` | Trial info |
113
-
114
- ## OPC-UA module API (client/server PKI)
115
-
116
- `/data/opc-ua/api/v1/...` — trust/reject/download/upload certificates for
117
- client & server PKI, regenerate server certificate. Needed for connecting to
118
- real PLCs (Logix/Modbus/Siemens etc. are driver configs via resources API:
119
- `com.inductiveautomation.opcua/device`).