Metadata-Version: 2.4
Name: ignition-cli
Version: 0.3.0
Summary: CLI tool for Ignition SCADA 8.3+ REST API
Project-URL: Homepage, https://github.com/SFLOW-Ignition-CLI/ignition-cli
Project-URL: Repository, https://github.com/SFLOW-Ignition-CLI/ignition-cli
Author: SFLOW
License-Expression: MIT
License-File: LICENSE
Keywords: automation,cli,ics,ignition,scada
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.10
Requires-Dist: httpx<1.0,>=0.27.0
Requires-Dist: platformdirs<5.0,>=4.0
Requires-Dist: pydantic<3.0,>=2.0
Requires-Dist: pyyaml<7.0,>=6.0
Requires-Dist: tomli-w<2.0,>=1.0
Requires-Dist: typer[all]<1.0,>=0.12.0
Provides-Extra: dev
Requires-Dist: mypy>=1.10; extra == 'dev'
Requires-Dist: pytest-cov>=5.0; extra == 'dev'
Requires-Dist: pytest-ruff>=0.4; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
Provides-Extra: watch
Requires-Dist: watchfiles>=0.21; extra == 'watch'
Description-Content-Type: text/markdown

# ignition-cli

CLI tool for the Ignition SCADA 8.3+ REST API. Built with Typer, httpx, and Pydantic.

## Quick Start

```bash
# Install
pip install -e ".[dev]"

# Configure a gateway connection
ignition-cli config add dev --url https://gateway:8043 --token "keyId:secretKey"

# Test the connection
ignition-cli config test

# Check gateway status
ignition-cli gateway status
```

## Commands

| Command Group | Description | Key Commands |
|---|---|---|
| `config` | Manage gateway profiles | `init`, `add`, `list`, `show`, `test`, `set-default`, `remove` |
| `gateway` | Gateway operations | `status`, `info`, `backup`, `restore`, `modules`, `logs`, `loggers`, `log-download`, `scan-projects`, `scan-config`, `entity-browse` |
| `project` | Manage Ignition projects | `list`, `show`, `create`, `delete`, `export`, `import`, `copy`, `rename`, `resources`, `diff`, `watch` |
| `tag` | Tag operations | `browse`, `read`\*, `write`\*, `export`, `import`, `providers` |
| `device` | Device connections | `list`, `show`, `restart` (supports `--module`/`--type` for non-OPC-UA) |
| `resource` | Generic resource CRUD | `list`, `show`, `create`, `update`, `delete`, `names`, `types`, `upload`, `download` |
| `mode` | Deployment modes | `list`, `show`, `create`, `update`, `delete`, `assign`, `unassign` |
| `api` | Raw API access | `get`, `post`, `put`, `delete`, `discover`, `spec` |

\* Tag `read` and `write` are non-standard endpoints requiring a WebDev module or custom gateway extension.

## Output Formats

All list/show commands support `--format` / `-f` with: `table` (default), `json`, `yaml`, `csv`.

```bash
ignition-cli project list -f json | jq '.[].name'
ignition-cli gateway status -f yaml
```

## Authentication

- **API Token** (recommended): `--token "keyId:secretKey"` (sent as `X-Ignition-API-Token` header)
- **HTTP Basic Auth**: `--username admin --password secret`
- **Environment variables**: `IGNITION_GATEWAY_URL`, `IGNITION_API_TOKEN`

## Documentation

Run `ignition-cli --help` for full usage information. See [docs/usage.md](docs/usage.md) for the complete reference.

## License

MIT
