csw-tools
A collection of automation utilities for Cisco Secure Workload (CSW, formerly Tetration), available through a single command-line package.
Available Commands
| Command | Status | What it does | Docs |
|---|---|---|---|
init |
Core | Create or replace the user's config.toml. |
Guide |
configure-credentials |
Core | Set user CSW API credentials in the OS keyring | Guide |
create-scopes |
Production | Create scopes in bulk from .CSV | Guide |
clean-stale-labels |
DEV/TESTING | Remove static labels for workloads absent from inventory | Guide |
convert-labels |
DEV/TESTING | Persist dynamic labels as static labels | Guide |
prune-agents |
DEV/TESTING | Preview and decommission stale agents and related objects | Guide |
prune-policy |
DEV/TESTING | Remove or filter entries within a workspace policy | Guide |
sync-collection-rules |
DEV/TESTING | Validate collection rules against scope and filter IPs | Guide |
Installation
The project requires Python 3.12 or later. uv is the preferred installation and development tool, although normal Python package installation also works.
Once uv is installed, install the package as a tool:
uv tool install csw-tools
Usage
List the available commands, common options, and project version information:
csw-tools --help
csw-tools --version
Global options must appear before the command name. The command and its own options follow:
csw-tools create-scopes scopes.csv
csw-tools --dashboard my-company.tetrationcloud.com prune-agents
csw-tools -d my-company configure-credentials
Command-generated files use csw-tools-outputs/ in the current working
directory and a basic CLI log is enabled by default.
Every command's guide is linked from the tables above. The command help is the authoritative option list:
csw-tools COMMAND --help
CSW Dashboard Selection
A dashboard may be supplied as its short SaaS name, a full FQDN, or an HTTPS origin:
csw-tools -d my-company COMMAND
csw-tools -d my-company.tetrationcloud.com COMMAND
csw-tools -d mycsw.example.org COMMAND
csw-tools -d https://mycsw.example.org COMMAND
A short name is auto-appended by default with .tetrationcloud.com. Any FQDN is used as
given with HTTPS. IP addresses and single-label on-premises hosts require HTTPS:// explicitly, such as -d https://192.0.2.10 or
-d https://csw-local.
TLS certificate verification is enabled by default. Use
--no-dashboard-verify-tls only for a trusted deployment whose certificate
cannot be validated normally.
Configuration
Settings are resolved in this order:
- CLI arguments
config.tomlvalues- Backend defaults from
config_defaults.py - Interactive prompt for an unresolved required value
config.toml is optional but useful for values that are reused often. Create
or replace it interactively with:
csw-tools init
This copies the packaged
config.example.toml to the OS-native
per-user location:
- macOS:
~/Library/Application Support/csw-tools/config.toml - Linux:
${XDG_CONFIG_HOME:-~/.config}/csw-tools/config.toml - Windows:
%APPDATA%\csw-tools\config.toml
If needed, use --config PATH before the command name to select a different file.
Credentials
Secrets are stored through the operating system keyring. For a dashboard named my-company, the default identifiers are:
| Service name | Username | Stored value |
|---|---|---|
csw-tools:my-company |
csw:api_key |
CSW API key |
csw-tools:my-company |
csw:api_secret |
CSW API secret |
Inspect/replace the credential pair with:
csw-tools -d my-company configure-credentials
(If using a CSW Dashboard that is not .tetrationcloud.com, then the full HTTPS url is used instead as part of the service name)
Safe Change Workflow
Most edit/write commands default to --dry-run; review the complete plan before using
--apply. Supported commands create a timestamped JSON backup before the first
API change in the common output directory and update it around each attempted
operation.
Rollback support and limitations differ by command. Read the individual command guide before applying or recovering changes.
Development
See DEV-GUIDELINES.md for architecture, shared APIs, contributor workflow, and project checks.
Release files for csw-tools 0.3.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| csw_tools-0.3.2.tar.gz | 80.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| csw_tools-0.3.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 158.7 kB
Release files / csw_tools-0.3.2.tar.gz
| Download URL | csw_tools-0.3.2.tar.gz |
|---|---|
| Size | 80.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8ae6a0759e3291bd40dffefc54847d33485412ccd457e80fc19e078dad49b138
|
|
BLAKE2b-256 checksum How to use checksums |
c9119867cad108f9aef14c71a45aa129b3cfd058338e9ac3c6e50bff54be2ea5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / csw_tools-0.3.2-py3-none-any.whl
| Download URL | csw_tools-0.3.2-py3-none-any.whl |
|---|---|
| Size | 77.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1341fcafa68c1d2de27e512b4079067fc9a3cc15c52e915d05f8665a9385e6b4
|
|
BLAKE2b-256 checksum How to use checksums |
f810bb00451751ff97127c42b2ee634275f61ce10223c50a976c5e3c1259af7d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.8 {"installer":{"name":"uv","version":"0.10.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|