CLI reference
Every nistor command, sub-command and option, generated from the CLI's own argument parser.
This page is generated from the nistor command's own argument parser (package nistor-cli), so it lists exactly what the installed CLI accepts. nistor <command> --help prints the same information in a terminal.
Global options#
Given before the command (nistor --api-url https://… rules list).
usage: nistor [-h] [--version] [--api-url API_URL] [--token TOKEN]
{rules,odcs,patterns,env-mapping,compiler,alerts,deployments,auth,admin,migrate,iam,dist,release,serve,runner,connections,tool}
...
Options
| Option | Value | Default | Description |
|---|---|---|---|
--version |
— | — | show program's version number and exit |
--api-url |
API_URL |
— | Backend API base URL (or set NISTOR_API_URL env var) |
--token |
TOKEN |
— | Bearer token for authentication (or set NISTOR_API_TOKEN env var) |
Commands
| Command | Description |
|---|---|
nistor rules |
Manage scheduling rules |
nistor odcs |
Manage ODCS data contracts (config-as-code) |
nistor patterns |
Manage resource patterns |
nistor env-mapping |
Manage environment mappings |
nistor compiler |
Manage compiler configuration |
nistor alerts |
Manage alert channels, policies & email settings |
nistor deployments |
Deployment provenance: report what a deploy put in place |
nistor auth |
Authentication utilities |
nistor admin |
Tenant admin operations (users, permissions, audit) |
nistor migrate |
Migrate the database: core, then tools, then plugins |
nistor iam |
IAM operations run inside the runtime image |
nistor dist |
The distribution's lock: make it, check it |
nistor release |
Release trains: versions, tags, changelog, names |
nistor serve |
Start one server role of the runtime image |
nistor runner |
Edge runner utilities |
nistor connections |
Manage tool connections |
nistor tool |
Build a tool package for Nistor |
nistor rules#
Manage scheduling rules
usage: nistor rules [-h]
{sync,list,approve-match,reject-match,check-platform-targets,validate} ...
Commands
| Command | Description |
|---|---|
nistor rules sync |
Sync rules from JSON/YAML files to the API |
nistor rules list |
List all rules from the API |
nistor rules approve-match |
Approve nodes matched by a rule that requires match approval (applies_to.require_match_approval) |
nistor rules reject-match |
Reject nodes matched by a rule that requires match approval (applies_to.require_match_approval) |
nistor rules check-platform-targets |
Fail unless every platform-job rule the rule files make active in --env is active in the backend and matches a node in the compiled graph: an active rule on no node never fires and nothing reports it. Retried for --wait-seconds (the backend lists rules from a lagging read replica). With --compile-job, rules that still match no node start one compile (the graph may predate the compiler just deployed) and the check re-runs for --compile-wait-seconds. CI runs it right after the rules sync in the deploy job's config sync |
nistor rules validate |
Check rule files offline (no API): parse, code_id/name duplicates, and every payload the sync would send against this checkout's rule schema, including fields the backend would silently drop |
nistor rules sync#
Sync rules from JSON/YAML files to the API
usage: nistor rules sync [-h] --env {dev,test,prod} [--files FILES [FILES ...] | --all | --dir
RULES_DIR] [--dry-run] [--delete-orphaned] [--source-repo SOURCE_REPO]
[--adopt-rules-without-source-repo] [--source-branch SOURCE_BRANCH]
[--continue-on-error] [--output-json OUTPUT_JSON] [--validate]
[--require-rules-format] [--record-sync-event]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env |
dev | test | prod |
required | Environment name |
--files |
FILES (one or more) |
— | Rule JSON/YAML files to sync |
--all |
— | — | Sync all default rule files |
--dir |
RULES_DIR |
— | Directory to recursively discover rule files (*.json, *.yaml, *.yml) |
--dry-run |
— | — | Preview changes without making them |
--delete-orphaned |
— | — | Delete DB rules not in synced files (scoped to --source-repo when set) |
--source-repo |
SOURCE_REPO |
— | GitLab project path that owns these rules (e.g., 'org/team-rules'). Scopes orphan cleanup to this repo only. |
--adopt-rules-without-source-repo |
— | — | With --source-repo and --delete-orphaned: also treat code-managed rules whose source_repo is empty as this repo's (rules pushed before the sync sent --source-repo keep it NULL). Only the repository that pushed those rules may pass it; the deployment repository's rules sync does. |
--source-branch |
SOURCE_BRANCH |
— | Git branch to record on each rule (used to build 'View source' links). Auto-detected from the working directory when omitted. |
--continue-on-error |
— | — | Exit 0 even on partial failures |
--output-json |
OUTPUT_JSON |
— | Write structured JSON report to file |
--validate |
— | — | Run server-side validation before sync (calls /validate endpoint) |
--require-rules-format |
— | — | Refuse to sync, pushing nothing, unless the backend stores at least this checkout's rules format (rules_format_version on GET /api/v1/health/version). A backend on an older format silently drops rule fields it does not know. The backend release itself is not compared. |
--record-sync-event |
— | — | After the sync, record the run in the backend (POST /api/v1/gitops/sync-events) with the same report as --output-json, under the repository named by --source-repo or the CI variables (CI_PROJECT_PATH / GITHUB_REPOSITORY). Best-effort: a failure to record is one warning and never changes the exit status. The deployment pipeline's rules sync passes it in deploy mode only. |
nistor rules list#
List all rules from the API
usage: nistor rules list [-h]
nistor rules approve-match#
Approve nodes matched by a rule that requires match approval (applies_to.require_match_approval)
usage: nistor rules approve-match [-h] --rule RULE --node NODE [--reason REASON]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--rule |
RULE |
required | Rule code_id or UUID |
--node |
NODE |
required | Node id to decide (repeatable) |
--reason |
REASON |
— | Why (stored with the decision) |
nistor rules reject-match#
Reject nodes matched by a rule that requires match approval (applies_to.require_match_approval)
usage: nistor rules reject-match [-h] --rule RULE --node NODE [--reason REASON]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--rule |
RULE |
required | Rule code_id or UUID |
--node |
NODE |
required | Node id to decide (repeatable) |
--reason |
REASON |
— | Why (stored with the decision) |
nistor rules check-platform-targets#
Fail unless every platform-job rule the rule files make active in --env is active in the backend and matches a node in the compiled graph: an active rule on no node never fires and nothing reports it. Retried for --wait-seconds (the backend lists rules from a lagging read replica). With --compile-job, rules that still match no node start one compile (the graph may predate the compiler just deployed) and the check re-runs for --compile-wait-seconds. CI runs it right after the rules sync in the deploy job's config sync
usage: nistor rules check-platform-targets [-h] --env {dev,test,prod}
(--files FILES [FILES ...] | --all | --dir RULES_DIR)
[--wait-seconds WAIT_SECONDS] [--compile-job NAME]
[--compile-project PROJECT] [--compile-region REGION]
[--compile-wait-seconds COMPILE_WAIT_SECONDS]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env |
dev | test | prod |
required | Environment the rules were synced to |
--files |
FILES (one or more) |
— | Rule JSON/YAML files that were synced |
--all |
— | — | Every *.json in nistor-deployment/config/rules |
--dir |
RULES_DIR |
— | Directory to recursively discover rule files |
--wait-seconds |
WAIT_SECONDS |
120 |
Total time to wait for the backend to show every expected rule active and matched (default: 120) |
--compile-job |
NAME |
— | When set and rules still match no node after --wait-seconds, start this Cloud Run Job (the env's compiler) once and re-check. Needs --compile-project, nistor-platform-gcp and run.jobs.run on the job |
--compile-project |
PROJECT |
— | GCP project of --compile-job |
--compile-region |
REGION |
europe-west1 |
Region of --compile-job (default: europe-west1) |
--compile-wait-seconds |
COMPILE_WAIT_SECONDS |
4500 |
Total time to re-check after starting --compile-job (default: 4500: a prod compile takes ~41 min, the backend's pickup up to 15 min and its reload ~3 min) |
nistor rules validate#
Check rule files offline (no API): parse, code_id/name duplicates, and every payload the sync would send against this checkout's rule schema, including fields the backend would silently drop
usage: nistor rules validate [-h] (--files FILES [FILES ...] | --all | --dir RULES_DIR)
Options
| Option | Value | Default | Description |
|---|---|---|---|
--files |
FILES (one or more) |
— | Rule JSON/YAML files to validate |
--all |
— | — | Validate every *.json in nistor-deployment/config/rules |
--dir |
RULES_DIR |
— | Directory to recursively discover rule files |
nistor odcs#
Manage ODCS data contracts (config-as-code)
usage: nistor odcs [-h] {sync} ...
Commands
| Command | Description |
|---|---|
nistor odcs sync |
Sync *.odcs.yaml contracts from the repo to the API |
nistor odcs sync#
Sync *.odcs.yaml contracts from the repo to the API
usage: nistor odcs sync [-h] --env {dev,test,prod} [--files FILES [FILES ...] | --contracts-dir
CONTRACTS_DIR] [--dry-run] [--delete-orphaned] [--source-repo SOURCE_REPO]
[--source-branch SOURCE_BRANCH] [--continue-on-error]
[--output-json OUTPUT_JSON]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env |
dev | test | prod |
required | Target environment |
--files |
FILES (one or more) |
— | ODCS YAML files to sync |
--contracts-dir |
CONTRACTS_DIR |
— | Directory to discover *.odcs.yaml files (default: nistor-deployment/config/contracts/odcs) |
--dry-run |
— | — | Preview changes without making them |
--delete-orphaned |
— | — | Soft-delete code-managed contracts not in the synced files (scoped to --source-repo) |
--source-repo |
SOURCE_REPO |
— | GitLab project path that owns these contracts (e.g., 'org/data-contracts'). Scopes orphan cleanup to this repo only. |
--source-branch |
SOURCE_BRANCH |
— | Git branch to record on each contract. Auto-detected from the working directory when omitted. |
--continue-on-error |
— | — | Exit 0 even on partial failures |
--output-json |
OUTPUT_JSON |
— | Write structured JSON report to file |
nistor patterns#
Manage resource patterns
usage: nistor patterns [-h] {sync,list} ...
Commands
| Command | Description |
|---|---|
nistor patterns sync |
Sync resource patterns from JSON file to the API |
nistor patterns list |
List all resource patterns from the API |
nistor patterns sync#
Sync resource patterns from JSON file to the API
usage: nistor patterns sync [-h] [--file FILE] [--dry-run] [--allow-deletions]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--file |
FILE |
resources_pattern.json |
JSON file with pattern array (default: resources_pattern.json) |
--dry-run |
— | — | Preview changes without making them |
--allow-deletions |
— | — | Delete API patterns not in file |
nistor patterns list#
List all resource patterns from the API
usage: nistor patterns list [-h]
nistor env-mapping#
Manage environment mappings
usage: nistor env-mapping [-h] {sync,show} ...
Commands
| Command | Description |
|---|---|
nistor env-mapping sync |
Sync environment mappings from JSON file to the API |
nistor env-mapping show |
Show current environment mappings from the API |
nistor env-mapping sync#
Sync environment mappings from JSON file to the API
usage: nistor env-mapping sync [-h] [--file FILE] [--dry-run]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--file |
FILE |
environment_mappings.json |
JSON file with mappings dict (default: environment_mappings.json) |
--dry-run |
— | — | Preview changes without making them |
nistor env-mapping show#
Show current environment mappings from the API
usage: nistor env-mapping show [-h]
nistor compiler#
Manage compiler configuration
usage: nistor compiler [-h] {sync,show} ...
Commands
| Command | Description |
|---|---|
nistor compiler sync |
Sync compiler config from JSON file to the API |
nistor compiler show |
Show current compiler configuration from the API |
nistor compiler sync#
Sync compiler config from JSON file to the API
usage: nistor compiler sync [-h] [--file FILE] [--dry-run]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--file |
FILE |
compiler_config.json |
JSON file with config array (default: compiler_config.json) |
--dry-run |
— | — | Preview changes without making them |
nistor compiler show#
Show current compiler configuration from the API
usage: nistor compiler show [-h]
nistor alerts#
Manage alert channels, policies & email settings
usage: nistor alerts [-h] {sync,list} ...
Commands
| Command | Description |
|---|---|
nistor alerts sync |
Sync alert channels/policies/email from JSON to the API |
nistor alerts list |
List alert channels and policies from the API |
nistor alerts sync#
Sync alert channels/policies/email from JSON to the API
usage: nistor alerts sync [-h] --env {dev,test,prod} [--dir ALERTS_DIR]
[--channels-file CHANNELS_FILE] [--policies-file POLICIES_FILE]
[--email-file EMAIL_FILE] [--dry-run] [--delete-orphaned]
[--source-repo SOURCE_REPO] [--source-branch SOURCE_BRANCH]
[--continue-on-error] [--output-json OUTPUT_JSON]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env |
dev | test | prod |
required | Environment name |
--dir |
ALERTS_DIR |
nistor-deployment/config/alerts |
Directory holding alert_channels.json / alert_policies.json / email_settings.json |
--channels-file |
CHANNELS_FILE |
— | Override path to the channels JSON file |
--policies-file |
POLICIES_FILE |
— | Override path to the policies JSON file |
--email-file |
EMAIL_FILE |
— | Override path to the email settings JSON file |
--dry-run |
— | — | Preview changes without making them |
--delete-orphaned |
— | — | Delete code-managed channels/policies not in the JSON (scoped to --source-repo when set) |
--source-repo |
SOURCE_REPO |
— | GitLab project path that owns these configs. Scopes orphan cleanup to this repo only. |
--source-branch |
SOURCE_BRANCH |
— | Git branch to record on each row (for 'View source' links). Auto-detected when omitted. |
--continue-on-error |
— | — | Exit 0 even on partial failures |
--output-json |
OUTPUT_JSON |
— | Write structured JSON report to file |
nistor alerts list#
List alert channels and policies from the API
usage: nistor alerts list [-h]
nistor deployments#
Deployment provenance: report what a deploy put in place
usage: nistor deployments [-h] {record} ...
Commands
| Command | Description |
|---|---|
nistor deployments record |
Report the resources a deploy manages (POST /api/v1/deployments/reports). Best-effort by default: a report that cannot be delivered is one warning and exit 0; only an unreadable or invalid input file exits 1. --fail-if-not-recorded makes a non-delivered report exit 3 too, for a caller that wants to know |
nistor deployments record#
Report the resources a deploy manages (POST /api/v1/deployments/reports). Best-effort by default: a report that cannot be delivered is one warning and exit 0; only an unreadable or invalid input file exits 1. --fail-if-not-recorded makes a non-delivered report exit 3 too, for a caller that wants to know
usage: nistor deployments record [-h] --provider {terraform,nistor-install} --tf-show-json FILE
[--env {dev,test,prod}] [--repo REPO] [--ref REF]
[--commit COMMIT] [--pipeline-url PIPELINE_URL]
[--deployed-by DEPLOYED_BY] [--dry-run] [--fail-if-not-recorded]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--provider |
terraform | nistor-install |
required | Deployment tool that produced the input (nistor-install: the install pipeline's release report, kept apart from terraform's so a release never replaces an apply's provenance) |
--tf-show-json |
FILE |
required | terraform show -json output, or - to read it from stdin |
--env |
dev | test | prod |
— | Environment the deploy targeted (shown in the summary; the report goes to --api-url) |
--repo |
REPO |
— | Repository URL or group/project (default: CI_PROJECT_URL) |
--ref |
REF |
— | Branch or tag deployed (default: CI_COMMIT_BRANCH / CI_COMMIT_REF_NAME) |
--commit |
COMMIT |
— | Commit deployed (default: CI_COMMIT_SHA) |
--pipeline-url |
PIPELINE_URL |
— | Pipeline URL (default: CI_PIPELINE_URL) |
--deployed-by |
DEPLOYED_BY |
— | Who deployed (default: GITLAB_USER_EMAIL) |
--dry-run |
— | — | Print what would be reported (counts per resource type), send nothing |
--fail-if-not-recorded |
— | — | Exit 3 (after the usual WARNING) when the report was not actually recorded -- no repository identity, no backend URL, a client/transport error, or a non-recording HTTP outcome. Without this flag every such case stays exit 0 (the default, for any caller that only wants best-effort). A --dry-run always exits 0 regardless of this flag: nothing was attempted to fail. |
nistor auth#
Authentication utilities
usage: nistor auth [-h] {test} ...
Commands
| Command | Description |
|---|---|
nistor auth test |
Test API connectivity and authentication |
nistor auth test#
Test API connectivity and authentication
usage: nistor auth test [-h]
nistor admin#
Tenant admin operations (users, permissions, audit)
usage: nistor admin [-h] {user,audit} ...
Commands
| Command | Description |
|---|---|
nistor admin user |
Manage users and their permissions |
nistor admin audit |
Inspect the audit log |
Examples:
nistor admin user list
nistor admin user grant alice@example.com iam:view
nistor admin user revoke alice@example.com iam:view
nistor admin audit export --since 7d --format csv
nistor admin user list-permissions --format json
nistor admin user#
Manage users and their permissions
usage: nistor admin user [-h] {list,list-permissions,grant,revoke} ...
Commands
| Command | Description |
|---|---|
nistor admin user list |
List users |
nistor admin user list-permissions |
List the catalog of permission codes |
nistor admin user grant |
Grant a permission to a user |
nistor admin user revoke |
Revoke a permission from a user |
nistor admin user list#
List users
usage: nistor admin user list [-h] [--format {table,json,csv}]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--format |
table | json | csv |
table |
Output format (default: table) |
Example: nistor admin user list --format csv
nistor admin user list-permissions#
List the catalog of permission codes
usage: nistor admin user list-permissions [-h] [--format {table,json,csv}]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--format |
table | json | csv |
table |
Output format (default: table) |
Example: nistor admin user list-permissions --format json
nistor admin user grant#
Grant a permission to a user
usage: nistor admin user grant [-h] [--format {table,json,csv}] email permission
Arguments
| Argument | Value | Description |
|---|---|---|
email |
— | Target user email |
permission |
— | Permission code (e.g., iam:view) |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--format |
table | json | csv |
table |
Output format (default: table) |
Example: nistor admin user grant alice@example.com iam:view
nistor admin user revoke#
Revoke a permission from a user
usage: nistor admin user revoke [-h] [--format {table,json,csv}] email permission
Arguments
| Argument | Value | Description |
|---|---|---|
email |
— | Target user email |
permission |
— | Permission code (e.g., iam:view) |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--format |
table | json | csv |
table |
Output format (default: table) |
Example: nistor admin user revoke alice@example.com iam:view
nistor admin audit#
Inspect the audit log
usage: nistor admin audit [-h] {export} ...
Commands
| Command | Description |
|---|---|
nistor admin audit export |
Export audit log entries (newest first) |
nistor admin audit export#
Export audit log entries (newest first)
usage: nistor admin audit export [-h] [--since SINCE] [--format {table,json,csv}]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--since |
SINCE |
— | Only include entries newer than this duration (e.g. 7d, 24h, 30m) |
--format |
table | json | csv |
table |
Output format (default: table) |
Example: nistor admin audit export --since 7d --format csv
nistor migrate#
Migrate the database: core, then tools, then plugins
usage: nistor migrate [-h] [--core-script-location CORE_SCRIPT_LOCATION] [--only ONLY]
[--uninstall CHAIN] [--policy {keep,archive,drop}] [--purge]
[--release-id RELEASE_ID] [--lock-digest LOCK_DIGEST] [--check-gap LOCK]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--core-script-location |
CORE_SCRIPT_LOCATION |
— | The core chain's Alembic directory (default: $NISTOR_CORE_SCRIPT_LOCATION, else services/backend/alembic under the working directory, else the copy nistor-backend installs) |
--only |
ONLY |
— | Migrate only this chain (repeatable); its dependencies must be at head |
--uninstall |
CHAIN |
— | Apply --policy to a removed package's chain schema |
--policy |
keep | archive | drop |
— | With --uninstall: keep, archive or drop the schema |
--purge |
— | — | With --policy drop: confirm deleting the data |
--release-id |
RELEASE_ID |
— | The release this run is recorded as in the release log (default: /etc/nistor/distribution.json, else the lock digest, else a local id) |
--lock-digest |
LOCK_DIGEST |
— | The lock digest of this release (default: /etc/nistor/distribution.json) |
--check-gap |
LOCK |
— | Check the expand/contract gap: the revisions the installed code would apply to this database, for the release of this distribution.lock (its digest); refused when /etc/nistor/distribution.json records another lock, unverified when there is none. Migrates nothing (exit 0 = holds, 3 = refused) |
nistor iam#
IAM operations run inside the runtime image
usage: nistor iam [-h] {register-service} ...
Commands
| Command | Description |
|---|---|
nistor iam register-service |
Register a service principal (a service-account e-mail or system:serviceaccount:<ns>:<sa>); never an admin; idempotent |
nistor iam register-service#
Register a service principal (a service-account e-mail or system:serviceaccount:<ns>:<sa>); never an admin; idempotent
usage: nistor iam register-service [-h] [--permission CODE] principal
Arguments
| Argument | Value | Description |
|---|---|---|
principal |
— | a service-account e-mail or system:serviceaccount:<namespace>:<name> |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--permission |
CODE |
— | grant this code (repeatable); none removed |
nistor dist#
The distribution's lock: make it, check it
usage: nistor dist [-h] {lock,build,verify,grants} ...
Commands
| Command | Description |
|---|---|
nistor dist lock |
Write distribution.lock from distribution.toml |
nistor dist build |
Build the runtime image from distribution.lock |
nistor dist verify |
Check distribution.lock, an image built from it, or this environment |
nistor dist grants |
Print the grants the locked tools require (read-only) |
nistor dist lock#
Write distribution.lock from distribution.toml
usage: nistor dist lock [-h] --env-dir ENV_DIR [--source-dir NAME=PATH] [--today TODAY]
[--wheel-dir WHEEL_DIR] [--prepare-local]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env-dir |
ENV_DIR |
required | The environment's directory (distribution.toml, distribution.lock) |
--source-dir |
NAME=PATH |
— | Read the source NAME (a key of [sources]) from the local repository PATH (repeatable) |
--today |
TODAY |
— | The date an override's expiry is checked against (YYYY-MM-DD) |
--wheel-dir |
WHEEL_DIR |
— | Keep the built Nistor wheels in this directory |
--prepare-local |
— | — | Prepare a nistor source given by --source-dir too as the release the plugin sources pin, when that is later than its tree's (a source cloned from its URL always is; the scratch checkout only, nothing committed) |
nistor dist build#
Build the runtime image from distribution.lock
usage: nistor dist build [-h] --env-dir ENV_DIR [--source-dir NAME=PATH] [--today TODAY]
[--tag TAG] [--wheel-dir WHEEL_DIR] [--recipe-tree RECIPE_TREE]
[--context CONTEXT] [--docker DOCKER]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env-dir |
ENV_DIR |
required | The environment's directory (distribution.toml, distribution.lock) |
--source-dir |
NAME=PATH |
— | Read the source NAME (a key of [sources]) from the local repository PATH (repeatable) |
--today |
TODAY |
— | The date an override's expiry is checked against (YYYY-MM-DD) |
--tag, --image |
TAG |
— | <repo>/nistor-runtime[:<tag>] (default tag lock-<digest>; an ml lock builds <repo>/nistor-runtime-ml) |
--wheel-dir |
WHEEL_DIR |
— | Take the locked wheels kept here (nistor dist lock --wheel-dir) |
--recipe-tree |
RECIPE_TREE |
— | Read images/runtime/Dockerfile, scripts/patch_mstrio.sh and the licence check (scripts/ci/) from this nistor tree (default: the nistor source at the locked commit) |
--context |
CONTEXT |
— | Write the build context into this empty directory and stop |
--docker |
DOCKER |
docker |
The docker executable |
nistor dist verify#
Check distribution.lock, an image built from it, or this environment
usage: nistor dist verify [-h] [--env-dir ENV_DIR] [--source-dir NAME=PATH] [--today TODAY]
[--offline] [--image IMAGE] [--installed] [--document DOCUMENT]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env-dir |
ENV_DIR |
— | The environment's directory (distribution.toml, distribution.lock) |
--source-dir |
NAME=PATH |
— | Read the source NAME (a key of [sources]) from the local repository PATH (repeatable) |
--today |
TODAY |
— | The date an override's expiry is checked against (YYYY-MM-DD) |
--offline |
— | — | Without the network: the digest, the overrides' expiry, the sources, the toml, the plugin sources' pins |
--image |
IMAGE |
— | Check the local image IMAGE against the lock (docker image inspect and run) |
--installed |
— | — | Check this environment against its distribution.json (the image's build runs it) |
--document |
DOCUMENT |
/etc/nistor/distribution.json |
distribution.json, for --installed |
nistor dist grants#
Print the grants the locked tools require (read-only)
usage: nistor dist grants [-h] LOCK
Arguments
| Argument | Value | Description |
|---|---|---|
LOCK |
— | The distribution.lock whose tools are read |
nistor release#
Release trains: versions, tags, changelog, names
usage: nistor release [-h] {prepare,verify-tag,parse-tag,members,changelog,notes,names} ...
Commands
| Command | Description |
|---|---|
nistor release prepare |
Write a train's version into its files |
nistor release verify-tag |
Exit 1 unless the files carry the tag's version |
nistor release parse-tag |
Print a tag's train and version (exit 2 unless it is a release tag) |
nistor release members |
List a train's member paths |
nistor release changelog |
Notes for a release from the train's commit subjects |
nistor release notes |
Print one version's section of the train's CHANGELOG.md (exit 2 if none) |
nistor release names |
The PyPI and npm names the releases publish |
nistor release prepare#
Write a train's version into its files
usage: nistor release prepare [-h] [--root ROOT] train version
Arguments
| Argument | Value | Description |
|---|---|---|
train |
— | — |
version |
— | — |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--root |
ROOT |
. |
— |
nistor release verify-tag#
Exit 1 unless the files carry the tag's version
usage: nistor release verify-tag [-h] [--root ROOT] tag
Arguments
| Argument | Value | Description |
|---|---|---|
tag |
— | — |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--root |
ROOT |
. |
— |
nistor release parse-tag#
Print a tag's train and version (exit 2 unless it is a release tag)
usage: nistor release parse-tag [-h] tag
Arguments
| Argument | Value | Description |
|---|---|---|
tag |
— | — |
nistor release members#
List a train's member paths
usage: nistor release members [-h] [--kind {python,npm,app,text}] [--root ROOT] train
Arguments
| Argument | Value | Description |
|---|---|---|
train |
— | — |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--kind |
python | npm | app | text |
— | — |
--root |
ROOT |
. |
— |
nistor release changelog#
Notes for a release from the train's commit subjects
usage: nistor release changelog [-h] [--since SINCE] --version VERSION [--date DATE] [--write]
[--root ROOT]
train
Arguments
| Argument | Value | Description |
|---|---|---|
train |
— | — |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--since |
SINCE |
— | the previous tag of this train (omit for the first release: release/notes/<train>-<X.Y.Z>.md, when committed, replaces the generated subjects) |
--version |
VERSION |
required | — |
--date |
DATE |
— | YYYY-MM-DD (default: today, UTC) |
--write |
— | — | insert into the train's CHANGELOG.md |
--root |
ROOT |
. |
— |
nistor release notes#
Print one version's section of the train's CHANGELOG.md (exit 2 if none)
usage: nistor release notes [-h] [--train TRAIN] [--root ROOT] version
Arguments
| Argument | Value | Description |
|---|---|---|
version |
— | — |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--train |
TRAIN |
platform |
— |
--root |
ROOT |
. |
— |
nistor release names#
The PyPI and npm names the releases publish
usage: nistor release names [-h] [--format {json,text}] [--root ROOT]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--format |
json | text |
text |
— |
--root |
ROOT |
. |
— |
nistor serve#
Start one server role of the runtime image
usage: nistor serve [-h] [--port PORT] [--host HOST]
{backend,scheduler,jobs,compiler,input-logs,mcp,runner,workspace-events,dq-rebuild}
Arguments
| Argument | Value | Description |
|---|---|---|
role |
backend | scheduler | jobs | compiler | input-logs | mcp | runner | workspace-events | dq-rebuild |
The role to start |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--port |
PORT |
— | Listen port (default: $PORT, else 8080) |
--host |
HOST |
0.0.0.0 |
Bind address (default: 0.0.0.0) |
nistor runner#
Edge runner utilities
usage: nistor runner [-h] {keygen} ...
Commands
| Command | Description |
|---|---|
nistor runner keygen |
Write an edge runner's Ed25519 key pair (private key 0600) and print the public key to register |
nistor runner keygen#
Write an edge runner's Ed25519 key pair (private key 0600) and print the public key to register
usage: nistor runner keygen [-h] --out OUT
Options
| Option | Value | Default | Description |
|---|---|---|---|
--out |
OUT |
required | Directory for runner.key and runner.pub |
Example: nistor runner keygen --out ./runner-key (then mount it at /etc/nistor/runner)
nistor connections#
Manage tool connections
usage: nistor connections [-h] {create-gcp-from-env,sync} ...
Commands
| Command | Description |
|---|---|
nistor connections create-gcp-from-env |
Create a GCP connection from the pre-phase-2 environment variables (local development only) |
nistor connections sync |
Upsert connections from a JSON file by name (create missing, update changed; never deletes) |
nistor connections create-gcp-from-env#
Create a GCP connection from the pre-phase-2 environment variables (local development only)
usage: nistor connections create-gcp-from-env [-h] --name NAME [--billing-project BILLING_PROJECT]
(--impersonate IMPERSONATE | --service-account-json SERVICE_ACCOUNT_JSON | --application-default)
[--monitored-projects MONITORED_PROJECTS]
[--locations LOCATIONS] [--default] [--dry-run]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--name |
NAME |
required | Connection name |
--billing-project |
BILLING_PROJECT |
— | Project that pays for and quotas this connection's jobs (default: BIGQUERY_BILLING_PROJECT_ID) |
--impersonate |
IMPERSONATE |
— | Service account to impersonate |
--service-account-json |
SERVICE_ACCOUNT_JSON |
— | Path to a service account key file (local development only) |
--application-default |
— | — | Use the developer's own Application Default Credentials (local development only) |
--monitored-projects |
MONITORED_PROJECTS |
— | Comma-separated projects this connection observes (default: derived from the estate variables) |
--locations |
LOCATIONS |
— | Comma-separated locations it scans (BigQuery regions, Dataform/Dataplex locations) |
--default |
— | — | Mark this connection as the default |
--dry-run |
— | — | Print the payload (secrets masked) instead of creating the connection |
Example: nistor connections create-gcp-from-env --name local-gcp --application-default --dry-run
nistor connections sync#
Upsert connections from a JSON file by name (create missing, update changed; never deletes)
The file is a JSON array of connections (or an object with a "connections" list); each has the shape create-gcp-from-env prints (name, tool_type or type, config, secrets, is_default; optionally description, cadence_minutes, status). {ENV} resolves against --env; ${VAR} is expanded from the environment in secrets only. An existing secret key is never rewritten (rotate it instead); a new secret key is added.
usage: nistor connections sync [-h] --env {dev,test,prod} --file FILE [--dry-run]
Options
| Option | Value | Default | Description |
|---|---|---|---|
--env |
dev | test | prod |
required | Environment name |
--file |
FILE |
required | JSON file: an array of connections |
--dry-run |
— | — | Print the plan (create/update/unchanged, secrets masked); write nothing |
Example: nistor connections sync --env dev --file config/connections.json --dry-run
nistor tool#
Build a tool package for Nistor
usage: nistor tool [-h] {new} ...
Commands
| Command | Description |
|---|---|
nistor tool new |
Scaffold a tool package (manifest, health probe, executor, connection spec, conformance test) from the template; it passes the tool conformance kit as generated |
nistor tool new#
Scaffold a tool package (manifest, health probe, executor, connection spec, conformance test) from the template; it passes the tool conformance kit as generated
usage: nistor tool new [-h] [--dest DIR] id
Arguments
| Argument | Value | Description |
|---|---|---|
id |
— | Tool id, [a-z][a-z0-9_]{1,30}, no trailing or doubled underscore (e.g. acme_warehouse); the distribution is nistor-tool-<id with - for _> |
Options
| Option | Value | Default | Description |
|---|---|---|---|
--dest |
DIR |
. |
Root to write under: the package goes to DIR/packages/integrations/<id> (default: the working directory). An existing directory is never overwritten |
Example: nistor tool new acme_warehouse --dest . (writes ./packages/integrations/acme_warehouse)