feat: add HTTP Management API, migrate CLI from Akka ClusterClient to HTTP
Replace the CLI's Akka.NET ClusterClient transport with a simple HTTP client targeting a new POST /management endpoint on the Central Host. The endpoint handles Basic Auth, LDAP authentication, role resolution, and ManagementActor dispatch in a single round-trip — eliminating the CLI's Akka, LDAP, and Security dependencies. Also fixes DCL ReSubscribeAll losing subscriptions on repeated reconnect by deriving the tag list from _subscriptionsByInstance instead of _subscriptionIds.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# ScadaLink CLI
|
||||
|
||||
Command-line tool for managing the ScadaLink SCADA system. Connects to a Central node via Akka.NET ClusterClient and routes commands through the ManagementActor.
|
||||
Command-line tool for managing the ScadaLink SCADA system. Connects to a Central node via HTTP and routes commands through the Management API endpoint (`POST /management`), which dispatches to the ManagementActor. Authentication is handled server-side via LDAP.
|
||||
|
||||
## Installation
|
||||
|
||||
@@ -12,27 +12,23 @@ The output binary is `scadalink` (or `scadalink.exe` on Windows).
|
||||
|
||||
## Connection
|
||||
|
||||
Every command requires a connection to a running Central node. Contact points can be supplied three ways, evaluated in this priority order:
|
||||
Every command requires a connection to a running Central node. The management URL can be supplied three ways, evaluated in this priority order:
|
||||
|
||||
1. `--contact-points` flag on the command line
|
||||
2. `SCADALINK_CONTACT_POINTS` environment variable
|
||||
3. `contactPoints` array in `~/.scadalink/config.json`
|
||||
1. `--url` flag on the command line
|
||||
2. `SCADALINK_MANAGEMENT_URL` environment variable
|
||||
3. `managementUrl` field in `~/.scadalink/config.json`
|
||||
|
||||
```sh
|
||||
scadalink --contact-points akka.tcp://scadalink@central-host:8081 <command>
|
||||
scadalink --url http://central-host:5000 <command>
|
||||
```
|
||||
|
||||
For a two-node HA cluster, supply both nodes comma-separated:
|
||||
**Docker:** With the Docker setup, the Central UI (and management API) is available at `http://localhost:9001`:
|
||||
|
||||
```sh
|
||||
scadalink --contact-points akka.tcp://scadalink@node1:8081,akka.tcp://scadalink@node2:8082 <command>
|
||||
scadalink --url http://localhost:9001 <command>
|
||||
```
|
||||
|
||||
**Docker (OrbStack):** When running against Docker containers, the contact point hostname must match the central container's Akka `NodeHostname` config. With OrbStack, add `/etc/hosts` entries mapping the container names to their IPs (see `docker/README.md`). Example:
|
||||
|
||||
```sh
|
||||
scadalink --contact-points akka.tcp://scadalink@scadalink-central-a:8081 <command>
|
||||
```
|
||||
For HA failover, use a load balancer URL. The management API is stateless (Basic Auth per request), so any central node can handle any request without sticky sessions.
|
||||
|
||||
## Global Options
|
||||
|
||||
@@ -40,7 +36,7 @@ These options are accepted by the root command and inherited by all subcommands.
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| `--contact-points <value>` | Comma-separated Akka cluster contact point URIs |
|
||||
| `--url <value>` | Management API URL (e.g., `http://localhost:9001`) |
|
||||
| `--username <value>` | LDAP username for authentication |
|
||||
| `--password <value>` | LDAP password for authentication |
|
||||
| `--format <json\|table>` | Output format (default: `json`) |
|
||||
@@ -51,29 +47,17 @@ These options are accepted by the root command and inherited by all subcommands.
|
||||
|
||||
```json
|
||||
{
|
||||
"contactPoints": ["akka.tcp://scadalink@central-host:8081"],
|
||||
"ldap": {
|
||||
"server": "ldap.company.com",
|
||||
"port": 636,
|
||||
"useTls": true,
|
||||
"searchBase": "dc=example,dc=com",
|
||||
"serviceAccountDn": "cn=admin,dc=example,dc=com",
|
||||
"serviceAccountPassword": "secret"
|
||||
},
|
||||
"defaultFormat": "json"
|
||||
"managementUrl": "http://localhost:9001"
|
||||
}
|
||||
```
|
||||
|
||||
The `searchBase` and `serviceAccountDn`/`serviceAccountPassword` fields are required for LDAP servers that need search-then-bind authentication (including the test GLAuth server). Without them, direct bind with `cn={username},{searchBase}` is attempted, which may fail if the user's DN doesn't follow that pattern.
|
||||
|
||||
For the Docker test environment, see `docker/README.md` for a ready-to-use config.
|
||||
|
||||
## Environment Variables
|
||||
|
||||
| Variable | Description |
|
||||
|----------|-------------|
|
||||
| `SCADALINK_CONTACT_POINTS` | Comma-separated contact point URIs (overrides config file) |
|
||||
| `SCADALINK_LDAP_SERVER` | LDAP server hostname (overrides config file) |
|
||||
| `SCADALINK_MANAGEMENT_URL` | Management API URL (overrides config file) |
|
||||
| `SCADALINK_FORMAT` | Default output format (overrides config file) |
|
||||
|
||||
## Output
|
||||
@@ -103,7 +87,7 @@ Exit codes:
|
||||
List all templates with their full attribute, alarm, script, and composition definitions.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template list
|
||||
scadalink --url <url> template list
|
||||
```
|
||||
|
||||
#### `template get`
|
||||
@@ -111,7 +95,7 @@ scadalink --contact-points <uri> template list
|
||||
Get a single template by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template get --id <int>
|
||||
scadalink --url <url> template get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -123,7 +107,7 @@ scadalink --contact-points <uri> template get --id <int>
|
||||
Create a new template, optionally inheriting from a parent.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template create --name <string> [--description <string>] [--parent-id <int>]
|
||||
scadalink --url <url> template create --name <string> [--description <string>] [--parent-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -137,7 +121,7 @@ scadalink --contact-points <uri> template create --name <string> [--description
|
||||
Update an existing template's name, description, or parent.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template update --id <int> [--name <string>] [--description <string>] [--parent-id <int>]
|
||||
scadalink --url <url> template update --id <int> [--name <string>] [--description <string>] [--parent-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -152,7 +136,7 @@ scadalink --contact-points <uri> template update --id <int> [--name <string>] [-
|
||||
Delete a template by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template delete --id <int>
|
||||
scadalink --url <url> template delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -164,7 +148,7 @@ scadalink --contact-points <uri> template delete --id <int>
|
||||
Run pre-deployment validation on a template (flattening, naming collisions, script compilation).
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template validate --id <int>
|
||||
scadalink --url <url> template validate --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -176,7 +160,7 @@ scadalink --contact-points <uri> template validate --id <int>
|
||||
Add an attribute to a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template attribute add --template-id <int> --name <string> --data-type <string> [--default-value <string>] [--tag-path <string>]
|
||||
scadalink --url <url> template attribute add --template-id <int> --name <string> --data-type <string> [--default-value <string>] [--tag-path <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -192,7 +176,7 @@ scadalink --contact-points <uri> template attribute add --template-id <int> --na
|
||||
Update an attribute on a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template attribute update --template-id <int> --name <string> [--data-type <string>] [--default-value <string>] [--tag-path <string>]
|
||||
scadalink --url <url> template attribute update --template-id <int> --name <string> [--data-type <string>] [--default-value <string>] [--tag-path <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -208,7 +192,7 @@ scadalink --contact-points <uri> template attribute update --template-id <int> -
|
||||
Remove an attribute from a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template attribute delete --template-id <int> --name <string>
|
||||
scadalink --url <url> template attribute delete --template-id <int> --name <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -221,7 +205,7 @@ scadalink --contact-points <uri> template attribute delete --template-id <int> -
|
||||
Add an alarm definition to a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template alarm add --template-id <int> --name <string> --trigger-attribute <string> --condition <string> --setpoint <string> [--severity <string>] [--notification-list <string>]
|
||||
scadalink --url <url> template alarm add --template-id <int> --name <string> --trigger-attribute <string> --condition <string> --setpoint <string> [--severity <string>] [--notification-list <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -239,7 +223,7 @@ scadalink --contact-points <uri> template alarm add --template-id <int> --name <
|
||||
Update an alarm definition on a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template alarm update --template-id <int> --name <string> [--condition <string>] [--setpoint <string>] [--severity <string>] [--notification-list <string>]
|
||||
scadalink --url <url> template alarm update --template-id <int> --name <string> [--condition <string>] [--setpoint <string>] [--severity <string>] [--notification-list <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -256,7 +240,7 @@ scadalink --contact-points <uri> template alarm update --template-id <int> --nam
|
||||
Remove an alarm definition from a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template alarm delete --template-id <int> --name <string>
|
||||
scadalink --url <url> template alarm delete --template-id <int> --name <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -269,7 +253,7 @@ scadalink --contact-points <uri> template alarm delete --template-id <int> --nam
|
||||
Add a script to a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template script add --template-id <int> --name <string> --trigger-type <string> [--trigger-attribute <string>] [--interval <int>] --code <string>
|
||||
scadalink --url <url> template script add --template-id <int> --name <string> --trigger-type <string> [--trigger-attribute <string>] [--interval <int>] --code <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -286,7 +270,7 @@ scadalink --contact-points <uri> template script add --template-id <int> --name
|
||||
Update a script on a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template script update --template-id <int> --name <string> [--trigger-type <string>] [--trigger-attribute <string>] [--interval <int>] [--code <string>]
|
||||
scadalink --url <url> template script update --template-id <int> --name <string> [--trigger-type <string>] [--trigger-attribute <string>] [--interval <int>] [--code <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -303,7 +287,7 @@ scadalink --contact-points <uri> template script update --template-id <int> --na
|
||||
Remove a script from a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template script delete --template-id <int> --name <string>
|
||||
scadalink --url <url> template script delete --template-id <int> --name <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -316,7 +300,7 @@ scadalink --contact-points <uri> template script delete --template-id <int> --na
|
||||
Add a feature module composition to a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template composition add --template-id <int> --module-template-id <int> --instance-name <string>
|
||||
scadalink --url <url> template composition add --template-id <int> --module-template-id <int> --instance-name <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -330,7 +314,7 @@ scadalink --contact-points <uri> template composition add --template-id <int> --
|
||||
Remove a feature module composition from a template.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> template composition delete --template-id <int> --instance-name <string>
|
||||
scadalink --url <url> template composition delete --template-id <int> --instance-name <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -347,7 +331,7 @@ scadalink --contact-points <uri> template composition delete --template-id <int>
|
||||
Get a single instance by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance get --id <int>
|
||||
scadalink --url <url> instance get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -359,7 +343,7 @@ scadalink --contact-points <uri> instance get --id <int>
|
||||
List instances, with optional filters.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance list [--site-id <int>] [--template-id <int>] [--search <string>]
|
||||
scadalink --url <url> instance list [--site-id <int>] [--template-id <int>] [--search <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -373,7 +357,7 @@ scadalink --contact-points <uri> instance list [--site-id <int>] [--template-id
|
||||
Create a new instance of a template at a site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance create --name <string> --template-id <int> --site-id <int> [--area-id <int>]
|
||||
scadalink --url <url> instance create --name <string> --template-id <int> --site-id <int> [--area-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -388,7 +372,7 @@ scadalink --contact-points <uri> instance create --name <string> --template-id <
|
||||
Deploy an instance to its site. Acquires the per-instance operation lock.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance deploy --id <int>
|
||||
scadalink --url <url> instance deploy --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -400,7 +384,7 @@ scadalink --contact-points <uri> instance deploy --id <int>
|
||||
Enable a previously disabled instance.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance enable --id <int>
|
||||
scadalink --url <url> instance enable --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -412,7 +396,7 @@ scadalink --contact-points <uri> instance enable --id <int>
|
||||
Disable a running instance without deleting it.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance disable --id <int>
|
||||
scadalink --url <url> instance disable --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -424,7 +408,7 @@ scadalink --contact-points <uri> instance disable --id <int>
|
||||
Delete an instance. The instance must be disabled first.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance delete --id <int>
|
||||
scadalink --url <url> instance delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -436,7 +420,7 @@ scadalink --contact-points <uri> instance delete --id <int>
|
||||
Set data connection bindings for an instance's attributes.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> instance set-bindings --id <int> --bindings <json>
|
||||
scadalink --url <url> instance set-bindings --id <int> --bindings <json>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -453,7 +437,7 @@ scadalink --contact-points <uri> instance set-bindings --id <int> --bindings <js
|
||||
Get a single site by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site get --id <int>
|
||||
scadalink --url <url> site get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -465,7 +449,7 @@ scadalink --contact-points <uri> site get --id <int>
|
||||
List all registered sites.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site list
|
||||
scadalink --url <url> site list
|
||||
```
|
||||
|
||||
#### `site create`
|
||||
@@ -473,7 +457,7 @@ scadalink --contact-points <uri> site list
|
||||
Register a new site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site create --name <string> --identifier <string> [--description <string>]
|
||||
scadalink --url <url> site create --name <string> --identifier <string> [--description <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -487,7 +471,7 @@ scadalink --contact-points <uri> site create --name <string> --identifier <strin
|
||||
Delete a site. Fails if any instances are assigned to it.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site delete --id <int>
|
||||
scadalink --url <url> site delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -499,7 +483,7 @@ scadalink --contact-points <uri> site delete --id <int>
|
||||
Push compiled artifacts to one or all sites.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site deploy-artifacts [--site-id <int>]
|
||||
scadalink --url <url> site deploy-artifacts [--site-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -511,7 +495,7 @@ scadalink --contact-points <uri> site deploy-artifacts [--site-id <int>]
|
||||
List all areas for a site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site area list --site-id <int>
|
||||
scadalink --url <url> site area list --site-id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -523,7 +507,7 @@ scadalink --contact-points <uri> site area list --site-id <int>
|
||||
Create an area within a site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site area create --site-id <int> --name <string> [--parent-area-id <int>]
|
||||
scadalink --url <url> site area create --site-id <int> --name <string> [--parent-area-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -537,7 +521,7 @@ scadalink --contact-points <uri> site area create --site-id <int> --name <string
|
||||
Update an area's name or parent.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site area update --id <int> [--name <string>] [--parent-area-id <int>]
|
||||
scadalink --url <url> site area update --id <int> [--name <string>] [--parent-area-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -551,7 +535,7 @@ scadalink --contact-points <uri> site area update --id <int> [--name <string>] [
|
||||
Delete an area. Fails if any instances are assigned to it.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> site area delete --id <int>
|
||||
scadalink --url <url> site area delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -567,7 +551,7 @@ scadalink --contact-points <uri> site area delete --id <int>
|
||||
Deploy a single instance (same as `instance deploy`).
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> deploy instance --id <int>
|
||||
scadalink --url <url> deploy instance --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -579,7 +563,7 @@ scadalink --contact-points <uri> deploy instance --id <int>
|
||||
Deploy compiled artifacts to one or all sites (same as `site deploy-artifacts`).
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> deploy artifacts [--site-id <int>]
|
||||
scadalink --url <url> deploy artifacts [--site-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -591,7 +575,7 @@ scadalink --contact-points <uri> deploy artifacts [--site-id <int>]
|
||||
Query deployment records, with optional filters and pagination.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> deploy status [--instance-id <int>] [--status <string>] [--page <int>] [--page-size <int>]
|
||||
scadalink --url <url> deploy status [--instance-id <int>] [--status <string>] [--page <int>] [--page-size <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Default | Description |
|
||||
@@ -610,7 +594,7 @@ scadalink --contact-points <uri> deploy status [--instance-id <int>] [--status <
|
||||
Get a single data connection by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection get --id <int>
|
||||
scadalink --url <url> data-connection get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -622,7 +606,7 @@ scadalink --contact-points <uri> data-connection get --id <int>
|
||||
List all configured data connections.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection list
|
||||
scadalink --url <url> data-connection list
|
||||
```
|
||||
|
||||
#### `data-connection create`
|
||||
@@ -630,7 +614,7 @@ scadalink --contact-points <uri> data-connection list
|
||||
Create a new data connection definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection create --name <string> --protocol <string> [--configuration <json>]
|
||||
scadalink --url <url> data-connection create --name <string> --protocol <string> [--configuration <json>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -644,7 +628,7 @@ scadalink --contact-points <uri> data-connection create --name <string> --protoc
|
||||
Update a data connection definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection update --id <int> [--name <string>] [--protocol <string>] [--configuration <json>]
|
||||
scadalink --url <url> data-connection update --id <int> [--name <string>] [--protocol <string>] [--configuration <json>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -659,7 +643,7 @@ scadalink --contact-points <uri> data-connection update --id <int> [--name <stri
|
||||
Delete a data connection.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection delete --id <int>
|
||||
scadalink --url <url> data-connection delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -671,7 +655,7 @@ scadalink --contact-points <uri> data-connection delete --id <int>
|
||||
Assign a data connection to a site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection assign --connection-id <int> --site-id <int>
|
||||
scadalink --url <url> data-connection assign --connection-id <int> --site-id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -684,7 +668,7 @@ scadalink --contact-points <uri> data-connection assign --connection-id <int> --
|
||||
Remove a data connection assignment from a site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> data-connection unassign --connection-id <int> --site-id <int>
|
||||
scadalink --url <url> data-connection unassign --connection-id <int> --site-id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -701,7 +685,7 @@ scadalink --contact-points <uri> data-connection unassign --connection-id <int>
|
||||
Get a single external system definition by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> external-system get --id <int>
|
||||
scadalink --url <url> external-system get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -713,7 +697,7 @@ scadalink --contact-points <uri> external-system get --id <int>
|
||||
List all external system definitions.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> external-system list
|
||||
scadalink --url <url> external-system list
|
||||
```
|
||||
|
||||
#### `external-system create`
|
||||
@@ -721,7 +705,7 @@ scadalink --contact-points <uri> external-system list
|
||||
Register an external HTTP system that scripts can call.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> external-system create --name <string> --endpoint-url <url> --auth-type <string> [--auth-config <json>]
|
||||
scadalink --url <url> external-system create --name <string> --endpoint-url <url> --auth-type <string> [--auth-config <json>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -736,7 +720,7 @@ scadalink --contact-points <uri> external-system create --name <string> --endpoi
|
||||
Update an external system definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> external-system update --id <int> [--name <string>] [--endpoint-url <url>] [--auth-type <string>] [--auth-config <json>]
|
||||
scadalink --url <url> external-system update --id <int> [--name <string>] [--endpoint-url <url>] [--auth-type <string>] [--auth-config <json>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -752,7 +736,7 @@ scadalink --contact-points <uri> external-system update --id <int> [--name <stri
|
||||
Delete an external system definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> external-system delete --id <int>
|
||||
scadalink --url <url> external-system delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -768,7 +752,7 @@ scadalink --contact-points <uri> external-system delete --id <int>
|
||||
Get a single notification list by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification get --id <int>
|
||||
scadalink --url <url> notification get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -780,7 +764,7 @@ scadalink --contact-points <uri> notification get --id <int>
|
||||
List all notification lists.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification list
|
||||
scadalink --url <url> notification list
|
||||
```
|
||||
|
||||
#### `notification create`
|
||||
@@ -788,7 +772,7 @@ scadalink --contact-points <uri> notification list
|
||||
Create a notification list with one or more recipients.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification create --name <string> --emails <email1,email2,...>
|
||||
scadalink --url <url> notification create --name <string> --emails <email1,email2,...>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -801,7 +785,7 @@ scadalink --contact-points <uri> notification create --name <string> --emails <e
|
||||
Update a notification list's name or recipients.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification update --id <int> [--name <string>] [--emails <email1,email2,...>]
|
||||
scadalink --url <url> notification update --id <int> [--name <string>] [--emails <email1,email2,...>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -815,7 +799,7 @@ scadalink --contact-points <uri> notification update --id <int> [--name <string>
|
||||
Delete a notification list.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification delete --id <int>
|
||||
scadalink --url <url> notification delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -827,7 +811,7 @@ scadalink --contact-points <uri> notification delete --id <int>
|
||||
Show the current SMTP configuration.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification smtp list
|
||||
scadalink --url <url> notification smtp list
|
||||
```
|
||||
|
||||
#### `notification smtp update`
|
||||
@@ -835,7 +819,7 @@ scadalink --contact-points <uri> notification smtp list
|
||||
Update the SMTP configuration.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> notification smtp update --host <string> --port <int> --auth-type <string> [--username <string>] [--password <string>] [--from-address <string>]
|
||||
scadalink --url <url> notification smtp update --host <string> --port <int> --auth-type <string> [--username <string>] [--password <string>] [--from-address <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -856,7 +840,7 @@ scadalink --contact-points <uri> notification smtp update --host <string> --port
|
||||
List all inbound API keys.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security api-key list
|
||||
scadalink --url <url> security api-key list
|
||||
```
|
||||
|
||||
#### `security api-key create`
|
||||
@@ -864,7 +848,7 @@ scadalink --contact-points <uri> security api-key list
|
||||
Create a new inbound API key. The generated key value is returned in the response and not stored in plaintext — save it immediately.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security api-key create --name <string>
|
||||
scadalink --url <url> security api-key create --name <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -876,7 +860,7 @@ scadalink --contact-points <uri> security api-key create --name <string>
|
||||
Update an API key's name or enabled status.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security api-key update --id <int> [--name <string>] [--enabled <bool>]
|
||||
scadalink --url <url> security api-key update --id <int> [--name <string>] [--enabled <bool>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -890,7 +874,7 @@ scadalink --contact-points <uri> security api-key update --id <int> [--name <str
|
||||
Revoke and delete an API key.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security api-key delete --id <int>
|
||||
scadalink --url <url> security api-key delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -902,7 +886,7 @@ scadalink --contact-points <uri> security api-key delete --id <int>
|
||||
List all LDAP group → role mappings.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security role-mapping list
|
||||
scadalink --url <url> security role-mapping list
|
||||
```
|
||||
|
||||
#### `security role-mapping create`
|
||||
@@ -910,7 +894,7 @@ scadalink --contact-points <uri> security role-mapping list
|
||||
Map an LDAP group to a ScadaLink role.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security role-mapping create --ldap-group <string> --role <string>
|
||||
scadalink --url <url> security role-mapping create --ldap-group <string> --role <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -923,7 +907,7 @@ scadalink --contact-points <uri> security role-mapping create --ldap-group <stri
|
||||
Update an LDAP role mapping.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security role-mapping update --id <int> [--ldap-group <string>] [--role <string>]
|
||||
scadalink --url <url> security role-mapping update --id <int> [--ldap-group <string>] [--role <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -937,7 +921,7 @@ scadalink --contact-points <uri> security role-mapping update --id <int> [--ldap
|
||||
Remove an LDAP role mapping.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security role-mapping delete --id <int>
|
||||
scadalink --url <url> security role-mapping delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -949,7 +933,7 @@ scadalink --contact-points <uri> security role-mapping delete --id <int>
|
||||
List all site scope rules for role mappings.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security scope-rule list [--role-mapping-id <int>]
|
||||
scadalink --url <url> security scope-rule list [--role-mapping-id <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -961,7 +945,7 @@ scadalink --contact-points <uri> security scope-rule list [--role-mapping-id <in
|
||||
Add a site scope rule to a role mapping, restricting it to a specific site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security scope-rule add --role-mapping-id <int> --site-id <int>
|
||||
scadalink --url <url> security scope-rule add --role-mapping-id <int> --site-id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -974,7 +958,7 @@ scadalink --contact-points <uri> security scope-rule add --role-mapping-id <int>
|
||||
Remove a site scope rule from a role mapping.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> security scope-rule delete --id <int>
|
||||
scadalink --url <url> security scope-rule delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -990,7 +974,7 @@ scadalink --contact-points <uri> security scope-rule delete --id <int>
|
||||
Return the current health state for all known sites as a JSON object keyed by site identifier.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> health summary
|
||||
scadalink --url <url> health summary
|
||||
```
|
||||
|
||||
#### `health site`
|
||||
@@ -998,7 +982,7 @@ scadalink --contact-points <uri> health summary
|
||||
Return the health state for a single site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> health site --identifier <string>
|
||||
scadalink --url <url> health site --identifier <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1010,7 +994,7 @@ scadalink --contact-points <uri> health site --identifier <string>
|
||||
Query the site event log for a specific site. Events are fetched remotely from the site's local SQLite store.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> health event-log --site-identifier <string> [--from <datetime>] [--to <datetime>] [--search <string>] [--page <int>] [--page-size <int>]
|
||||
scadalink --url <url> health event-log --site-identifier <string> [--from <datetime>] [--to <datetime>] [--search <string>] [--page <int>] [--page-size <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Default | Description |
|
||||
@@ -1027,7 +1011,7 @@ scadalink --contact-points <uri> health event-log --site-identifier <string> [--
|
||||
Query parked (dead-letter) messages at a specific site.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> health parked-messages --site-identifier <string> [--page <int>] [--page-size <int>]
|
||||
scadalink --url <url> health parked-messages --site-identifier <string> [--page <int>] [--page-size <int>]
|
||||
```
|
||||
|
||||
| Option | Required | Default | Description |
|
||||
@@ -1045,7 +1029,7 @@ scadalink --contact-points <uri> health parked-messages --site-identifier <strin
|
||||
Request a point-in-time snapshot of a running instance's current attribute values and alarm states from the site. The instance must be deployed and enabled.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> debug snapshot --id <int>
|
||||
scadalink --url <url> debug snapshot --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1063,7 +1047,7 @@ The command resolves the instance's site internally and routes the request to th
|
||||
Query the central audit log with optional filters and pagination.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> audit-log query [options]
|
||||
scadalink --url <url> audit-log query [options]
|
||||
```
|
||||
|
||||
| Option | Required | Default | Description |
|
||||
@@ -1085,7 +1069,7 @@ scadalink --contact-points <uri> audit-log query [options]
|
||||
List all shared script definitions.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> shared-script list
|
||||
scadalink --url <url> shared-script list
|
||||
```
|
||||
|
||||
#### `shared-script get`
|
||||
@@ -1093,7 +1077,7 @@ scadalink --contact-points <uri> shared-script list
|
||||
Get a single shared script by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> shared-script get --id <int>
|
||||
scadalink --url <url> shared-script get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1105,7 +1089,7 @@ scadalink --contact-points <uri> shared-script get --id <int>
|
||||
Create a new shared script.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> shared-script create --name <string> --code <string>
|
||||
scadalink --url <url> shared-script create --name <string> --code <string>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1118,7 +1102,7 @@ scadalink --contact-points <uri> shared-script create --name <string> --code <st
|
||||
Update a shared script's name or code.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> shared-script update --id <int> [--name <string>] [--code <string>]
|
||||
scadalink --url <url> shared-script update --id <int> [--name <string>] [--code <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1132,7 +1116,7 @@ scadalink --contact-points <uri> shared-script update --id <int> [--name <string
|
||||
Delete a shared script.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> shared-script delete --id <int>
|
||||
scadalink --url <url> shared-script delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1148,7 +1132,7 @@ scadalink --contact-points <uri> shared-script delete --id <int>
|
||||
List all database connection definitions.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> db-connection list
|
||||
scadalink --url <url> db-connection list
|
||||
```
|
||||
|
||||
#### `db-connection get`
|
||||
@@ -1156,7 +1140,7 @@ scadalink --contact-points <uri> db-connection list
|
||||
Get a single database connection by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> db-connection get --id <int>
|
||||
scadalink --url <url> db-connection get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1168,7 +1152,7 @@ scadalink --contact-points <uri> db-connection get --id <int>
|
||||
Create a new database connection definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> db-connection create --name <string> --connection-string <string> [--provider <string>]
|
||||
scadalink --url <url> db-connection create --name <string> --connection-string <string> [--provider <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1182,7 +1166,7 @@ scadalink --contact-points <uri> db-connection create --name <string> --connecti
|
||||
Update a database connection definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> db-connection update --id <int> [--name <string>] [--connection-string <string>] [--provider <string>]
|
||||
scadalink --url <url> db-connection update --id <int> [--name <string>] [--connection-string <string>] [--provider <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1197,7 +1181,7 @@ scadalink --contact-points <uri> db-connection update --id <int> [--name <string
|
||||
Delete a database connection definition.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> db-connection delete --id <int>
|
||||
scadalink --url <url> db-connection delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1213,7 +1197,7 @@ scadalink --contact-points <uri> db-connection delete --id <int>
|
||||
List all inbound API method definitions.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> api-method list
|
||||
scadalink --url <url> api-method list
|
||||
```
|
||||
|
||||
#### `api-method get`
|
||||
@@ -1221,7 +1205,7 @@ scadalink --contact-points <uri> api-method list
|
||||
Get a single inbound API method by ID.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> api-method get --id <int>
|
||||
scadalink --url <url> api-method get --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1233,7 +1217,7 @@ scadalink --contact-points <uri> api-method get --id <int>
|
||||
Create a new inbound API method.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> api-method create --name <string> --code <string> [--description <string>]
|
||||
scadalink --url <url> api-method create --name <string> --code <string> [--description <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1247,7 +1231,7 @@ scadalink --contact-points <uri> api-method create --name <string> --code <strin
|
||||
Update an inbound API method.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> api-method update --id <int> [--name <string>] [--code <string>] [--description <string>]
|
||||
scadalink --url <url> api-method update --id <int> [--name <string>] [--code <string>] [--description <string>]
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
@@ -1262,7 +1246,7 @@ scadalink --contact-points <uri> api-method update --id <int> [--name <string>]
|
||||
Delete an inbound API method.
|
||||
|
||||
```sh
|
||||
scadalink --contact-points <uri> api-method delete --id <int>
|
||||
scadalink --url <url> api-method delete --id <int>
|
||||
```
|
||||
|
||||
| Option | Required | Description |
|
||||
|
||||
Reference in New Issue
Block a user