Command reference
Generated from the same CLI spec as the command builder.
tsm
tSM CLI for configuration, packages, and deployments.
| Option | Description |
|---|---|
--context | Named context from the home configuration. |
--workspace | Workspace directory name or path; defaults to the current directory. |
--user, -u | Basic-auth username override. |
--password | Basic-auth password override. Sensitive input. |
--token | Bearer token override. Sensitive input. |
--api-key | API key override (tsm_ak_…). Sent as the X-API-Key header. Sensitive input. |
--tenant, -t | Tenant identifier sent as the X-Tenant-Id header. |
--output, -o | Output format: table, json, yaml. |
--json | Shortcut for --output json. Default: false. |
--verbose | Enable verbose output and stack traces. |
--timeout | HTTP timeout in seconds. |
tsm context
Manage target contexts and explicit workspace defaults in the home config.
tsm context list
List contexts without accessing secrets or starting runtimes.
tsm context list
tsm context show
Show the resolved target and the origin of its selection.
| Option | Description |
|---|---|
--explain | Include the origin of context, workspace and profile selection. Default: false. |
tsm context show --explain
tsm context use
Select a context globally or for its project directory; writes only home config.
| Option | Description |
|---|---|
--global | Write only global home preferences instead of a workspace default. Default: false. |
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm context use tsm-dev --global
tsm context create
Create a context; interactively configure its environment, login and workspace default. Without a console no questions are asked; use --non-interactive to enforce this in scripts.
| Option | Description |
|---|---|
--project | Project; inferred from workspace/manifest or a single registered project. |
--env | Environment; defaults to the sole existing environment or dev for a new project. |
--endpoint | Application URL; required when registering a new environment. |
--account | Account name; defaults to personal for remote environments. |
--non-interactive | Never prompt, even in a terminal; missing required inputs fail before writes. Default: false. |
--login | Validate/store credentials after creation; offered interactively, inferred from explicit credentials. --no-login skips it. |
--api-key-stdin | Read one API-key line from stdin; implies login. Never saved in home YAML. Default: false. |
--use | Default scope: workspace, global or none. Non-interactive default: none. |
--workspace-name | Name for a newly registered workspace; defaults to its directory name. |
| Argument | Description |
|---|---|
<name> | Context name; defaults to PROJECT-ENV. |
tsm context create tsm-dev --project tsm --env dev --use none --non-interactive
tsm context update
Replace one context definition; existing account secrets and runtime instances are retained.
| Option | Description |
|---|---|
--project | Logical project registered in home config. Required. |
--env | Environment name within the selected project. Required. |
--account | Stored account name for this project environment. |
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm context update tsm-dev --project tsm --env dev --account personal
tsm context remove
Remove a context and its default bindings; leaves credentials and runtime instances intact.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm context remove old-dev
tsm auth
Manage accounts, stored Basic, API-key and tSM token credentials.
tsm auth login
Validate and store an account for a project environment.
| Option | Description |
|---|---|
--project | Logical project registered in home config. |
--env | Environment name within the selected project. |
--account | Stored account name for this project environment. |
--method | Credential type: basic, api-key or bearer; otherwise inferred from input or stored account. |
--refresh-token | Optional tSM refresh token accompanying --token. Sensitive input. |
--client-id | Original tSM client profile; required with --refresh-token. |
tsm --context tsm-dev auth login --method api-key
tsm auth status
Show stored account metadata without reading secrets or contacting a server.
tsm auth status --json
tsm auth logout
Forget this account locally; does not revoke API keys or sign out the browser.
| Option | Description |
|---|---|
--project | Logical project registered in home config. |
--env | Environment name within the selected project. |
--account | Stored account name for this project environment. |
tsm --context tsm-dev auth logout
tsm auth whoami
Show the user, tenant and token expiry behind the selected credentials.
tsm --context dev auth whoami
tsm auth token
Print a backend access token for the selected credentials, for scripts: curl -H "Authorization: Bearer $(tsm auth token)" ... A stored Bearer token is printed as it is; Basic credentials and API keys are exchanged at /api/token.
| Option | Description |
|---|---|
--decode | Print the decoded JWT claims instead of the token. Default: false. |
tsm --context dev auth token --decode
tsm auth api-key
Manage API keys (tsm_ak_…) of the current user, or of another one with --user.
tsm auth api-key list
List API keys; the secret itself is never returned.
| Option | Description |
|---|---|
--user-id | User id whose keys to list (needs Um.User.ApiKey.Read). Default: the current user. |
tsm --context dev auth api-key list
tsm auth api-key create
Create an API key. The key is printed only once, to stdout; store it right away. Needs Um.User.ApiKey.ManageOwn for your own keys, Um.User.ApiKey.Manage for another user.
| Option | Description |
|---|---|
--name | Key name, e.g. gitlab-ci-deploy. Required. |
--expires | Expiry: a date (2027-06-30, valid through that day in UTC) or an ISO instant. Required. |
--description | Free-text description. |
--scope | Privilege scope rules, e.g. Tick,-Tick.Ticket.Delete. Default: all privileges of the user. |
--user-id | User id to create the key for. Default: the current user. |
tsm --context dev auth api-key create --name gitlab-ci-deploy --expires 2027-06-30 --scope Tick,-Tick.Ticket.Delete --description "Deploys packages from GitLab CI"
tsm auth api-key revoke
Revoke an API key; requests with it fail from then on.
| Option | Description |
|---|---|
--reason | Reason recorded with the revocation. |
| Argument | Description |
|---|---|
ID | API key id (see 'tsm auth api-key list'). Required. |
tsm --context dev auth api-key revoke 3f2b8c1e-5d4a-4e7b-9a60-1c2d3e4f5a6b --reason "Key rotated"
tsm package
Create, build, validate, diff, and install configuration packages.
tsm package init
Scaffold a new package directory with package.yaml.
| Option | Description |
|---|---|
--package-id | Package identifier, also the default directory name under packages/ (e.g. ordering-sdwan). Required. |
--name | Human-readable package name. Required. |
--version | Initial package version (default: 0.0.1). Default: 0.0.1. |
--description | Package description. |
--owner-team | Team that owns the package, recorded in package.yaml. |
--path | Directory to create the package in (default: packages/<package-id>). |
--area-id | Id of the first area (default: main). |
--area-path | Directory of the first area inside the package (default: the area id). |
--config-type | Config type selected by the first area. Without it the area starts empty. |
--include-subtree | Select the child config types of --config-type too. On by default; turn off with --include-subtree=false. Default: true. |
tsm package init --package-id ordering-sdwan --name "Ordering / SD-WAN" --path packages/ordering-sdwan --area-id shared --config-type Form
tsm package add
Add package elements to package.yaml.
tsm package add area
Add an area definition to package.yaml.
| Option | Description |
|---|---|
--package-yaml | Path to the package.yaml to modify. Required. |
--area-id | Id of the new area. Required. |
--area-path | Directory of the area inside the package (default: the area id). |
--name | Display name of the area. |
--description | Area description. |
--config-type | Config types selected by the area. Comma-separated. Required. |
--include-subtree | Select the child config types of the listed config types too. On by default; turn off with --include-subtree=false. Default: true. |
tsm package add area --package-yaml packages/ordering-sdwan/package.yaml --area-id workflows --config-type ProcessDefinition
tsm package add dependency
Add or replace a package dependency.
| Option | Description |
|---|---|
--package-yaml | Path to the package.yaml to modify. Required. |
--dependency-id | Package id of the dependency. An existing dependency with the same id is replaced. Required. |
--version-range | Accepted versions of the dependency, e.g. ">=1.0.0 <2.0.0". Required. |
--kind | Dependency kind (default: required). Default: required. |
tsm package add dependency --package-yaml packages/ordering-sdwan/package.yaml --dependency-id core-common --version-range ">=1.0.0 <2.0.0"
tsm package version
Set or bump package version.
| Option | Description |
|---|---|
--package-yaml | Path to the package.yaml to modify. Required. |
--version | Set exactly this version, e.g. 1.2.0. Exclusive with --bump. |
--bump | Increase one version component: major, minor or patch. Exclusive with --version. |
tsm package version --package-yaml packages/demo/package.yaml --bump minor
tsm package info
Display package.yaml details.
| Option | Description |
|---|---|
--package-yaml | Path to the package.yaml to display. Required. |
tsm package info --package-yaml packages/ordering-sdwan/package.yaml
tsm package download
Download current environment content into a local package directory.
| Option | Description |
|---|---|
--out | Save the downloaded ZIP to this file instead of extracting it into the package directory. |
--area-code | Download only the area with this id from package.yaml. |
--entity-types | Entity types to download, comma-separated (e.g. Form,Listing). Default: all entity types selected by the package. |
--from-timestamp | Only content changed since this instant, ISO-8601 in UTC (e.g. 2025-06-01T00:00:00Z). |
--changeset | Only content tracked in this Change Set (code or id). |
--who-edited | Filter by editor user ID or code. Accepts comma-separated values. |
--my-changes | Shorthand: filter to changes made by the currently logged-in user. Default: false. |
--page-size | Records fetched per downstream request during export. Lower it if the server runs out of heap on heavy entity types (e.g. process definitions). Server clamps it to the entity's configured limits. |
| Argument | Description |
|---|---|
<packageDir> | Local package directory containing package.yaml. Required. |
tsm --context dev package download packages/ordering-sdwan
tsm --context dev package download packages/ordering-sdwan --area-code shared --out build/ordering-sdwan-shared.zip
tsm package validate
Validate a package against the target environment.
| Option | Description |
|---|---|
--file | Use this already built package ZIP instead of zipping the package directory. |
--area-code | Limit the operation to the area with this id from package.yaml. |
--entity-types | Limit the operation to these entity types, comma-separated (e.g. Form,Listing). |
| Argument | Description |
|---|---|
<packageDir> | Local package directory. Required unless --file is used. |
tsm --context dev package validate packages/ordering-sdwan
tsm package diff
Compare a package with the current environment.
| Option | Description |
|---|---|
--file | Use this already built package ZIP instead of zipping the package directory. |
--area-code | Limit the operation to the area with this id from package.yaml. |
--entity-types | Limit the operation to these entity types, comma-separated (e.g. Form,Listing). |
--show-details | Print full nested diff details. Default: false. |
--diff | Print unified content diff for changed values. Default: false. |
| Argument | Description |
|---|---|
<packageDir> | Local package directory. Required unless --file is used. |
tsm --context dev package diff packages/ordering-sdwan --show-details
tsm package install
Install a package into the target environment.
| Option | Description |
|---|---|
--file | Use this already built package ZIP instead of zipping the package directory. |
--area-code | Limit the operation to the area with this id from package.yaml. |
--entity-types | Limit the operation to these entity types, comma-separated (e.g. Form,Listing). |
--install-source | Origin recorded with the installation: CLI, TSM_STUDIO, CI_PIPELINE or API (default: CLI). Default: CLI. |
--notes | Free-text notes stored with the installation. |
--dry-run | Only validate the package and print the validation result; nothing is installed. Default: false. |
--data-model-timeout | Data Model refresh wait budget in seconds, independent of the HTTP timeout. Default: 1800. |
--require-clean-data-model | Require a completed Data Model refresh with no failed sources; unavailable or deferred refresh is not ready. Default: false. |
--defer-data-model-refresh | Bootstrap only: install without refreshing Data Model. Run a final install with --require-clean-data-model after registration completes. Default: false. |
| Argument | Description |
|---|---|
<packageDir> | Local package directory. Required unless --file is used. |
tsm --context dev package install packages/ordering-sdwan --notes "release 1.2.0"
tsm --context dev package install --file build/ordering-sdwan.zip
tsm package artifact
Create and publish installation artifacts.
tsm package artifact create
Create an installation artifact with a pre-computed diff.
| Option | Description |
|---|---|
--out | Output location for the artifact ZIP file. If not specified, defaults to build/{packageId}-{version}-{environment}.zip |
--area-code | Filter artifact to include only changes in the specified area (e.g., 'order-service'). Matches areas/{area-code}/ directory. |
--entity-types | Comma-separated list of entity types to include (e.g., 'policy,rule,config'). If specified, only files matching these types are included. |
--branch-diff | Git branch specification for diff-based artifact creation. Format: base..target (e.g., 'origin/main..HEAD'). Creates artifact with only changed files between branches. |
--git-fetch | Whether to fetch latest refs from remote before comparing branches. Default: true (recommended for CI/CD). Use false for offline operation with local refs only. |
--repository-root | Override automatic git repository root detection. Specify the path to the git repository if auto-detection fails. |
| Argument | Description |
|---|---|
<packageDir> | Local package directory containing package.yaml and package content. Required. |
tsm --context tsm-dev package artifact create packages/demo
tsm package artifact publish
Publish an installation artifact to a repository.
| Option | Description |
|---|---|
--repository | Alias of the artifact repository configured in tsm-project.yaml or ~/.tsm/config.json (e.g. nexus). Required. |
--notes | Notes sent along with the uploaded artifact. |
| Argument | Description |
|---|---|
<artifact> | Artifact ZIP file. Required. |
tsm package artifact publish build/ordering-sdwan-feature.zip --repository nexus --notes "feature deployment"
tsm package installed
Browse InstalledPackage records.
tsm package installed list
List installed packages.
| Option | Description |
|---|---|
--page | Page number, starting at 0 (default: 0). Default: 0. |
--size | Page size (default: 20). Default: 20. |
--sort | Sort expression field,ASC|DESC, e.g. installedAt,DESC. |
--filter | Equality filter field==value, e.g. packageId==ordering-sdwan. Repeatable. |
tsm --context dev package installed list --filter "packageId==ordering-sdwan"
tsm package installed get
Get one installed package by UUID.
| Argument | Description |
|---|---|
<id> | Installed package id (UUID, see 'tsm package installed list'). Required. |
tsm --context dev package installed get aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
tsm package installed items
List items in one installed package.
| Option | Description |
|---|---|
--page | Page number, starting at 0 (default: 0). Default: 0. |
--size | Page size (default: 50). Default: 50. |
--filter | Equality filter field==value on item fields such as entityType, code, configType or compareStatus. Repeatable. |
--include-unchanged | Show unchanged items too (within the selected page). Default: false. |
| Argument | Description |
|---|---|
<id> | Installed package id (UUID, see 'tsm package installed list'). Required. |
tsm --context dev package installed items aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa
tsm changeset
Story-level change tracking.
tsm changeset create
Create a new Change Set.
| Option | Description |
|---|---|
--code | Change Set code, usually the story key (e.g. STORY-123). Required. |
--name | Change Set name. Required. |
--branch | Git branch the changes are made on. |
--user-group | User group that owns the Change Set together with you. |
tsm changeset create --code STORY-123 --name "Order form changes" --branch feature/story-123
tsm changeset list
List Change Sets.
| Option | Description |
|---|---|
--status | Show only Change Sets in this status: OPEN, IN_REVIEW or CLOSED. |
--owner | Show only Change Sets owned by this user (user id). |
tsm changeset list --status OPEN
tsm changeset show
Display Change Set details.
| Argument | Description |
|---|---|
<identifier> | Change Set ID (UUID or code). Required. |
tsm changeset show STORY-123
tsm changeset add
Manually add an entity to a Change Set.
| Option | Description |
|---|---|
--entity-type | Entity type of the entity to add (e.g. Form). Required. |
--entity-code | Code of the entity to add. Required. |
--allow-unresolved | Record the code as the entity id when the entity does not exist (HTTP 404) or cannot be read (HTTP 403) instead of failing. Export and automatic tracking select by entity id and will not match such an item. Default: false. |
| Argument | Description |
|---|---|
<code> | Change Set id (UUID) or code. Required. |
tsm changeset add STORY-123 --entity-type Form --entity-code OrderForm
tsm changeset remove
Remove an entity from a Change Set.
| Option | Description |
|---|---|
--entity-type | Entity type of the entity to remove (e.g. Form). Required. |
--entity-code | Code of the tracked item (or its entity id). Fails when it matches more than one item; use --entity-id then. |
--entity-id | Exact entity id of the tracked item. Use it when codes are not unique (e.g. RegisterValue, ProcessDefinition versions). |
| Argument | Description |
|---|---|
<code> | Change Set id (UUID) or code. Required. |
tsm changeset remove STORY-123 --entity-type Form --entity-code OrderForm
tsm changeset submit
Submit a Change Set for review.
| Argument | Description |
|---|---|
<code> | Change Set id (UUID) or code. Required. |
tsm changeset submit STORY-123
tsm changeset close
Close a reviewed Change Set.
| Argument | Description |
|---|---|
<code> | Change Set id (UUID) or code. Required. |
tsm changeset close STORY-123
tsm changeset abandon
Abandon a Change Set. Its items are kept.
| Argument | Description |
|---|---|
<code> | Change Set id (UUID) or code. Required. |
tsm changeset abandon STORY-123
tsm e2e
Select and run product E2E tests.
tsm e2e catalog
List available tests and parameters.
tsm --context dev --tenant demo e2e catalog
tsm e2e suites
List available suites.
tsm --context dev --tenant demo e2e suites
tsm e2e preview
Resolve selection without running tests.
| Option | Description |
|---|---|
--test | Test code; repeatable or comma-separated. Choose tests or a suite. |
--suite | Suite code (exclusive with --test). |
--all | Run all executable tests in the server catalog; exclusive with --test and --suite. Default: false. |
--params | Parameters as a JSON object; preserves numbers, booleans and nested values. |
--params-file | Read parameter JSON from a file instead of command arguments. |
--no-report | Disable automatic Allure publication for this run. Default: false. |
--execution-timeout | Server execution timeout in seconds (default: 10800). Default: 10800. |
tsm --context dev --tenant demo e2e preview --suite Reference.Baseline
tsm e2e run
Run selected tests or a suite.
| Option | Description |
|---|---|
--test | Test code; repeatable or comma-separated. Choose tests or a suite. |
--suite | Suite code (exclusive with --test). |
--all | Run all executable tests in the server catalog; exclusive with --test and --suite. Default: false. |
--params | Parameters as a JSON object; preserves numbers, booleans and nested values. |
--params-file | Read parameter JSON from a file instead of command arguments. |
--no-report | Disable automatic Allure publication for this run. Default: false. |
--execution-timeout | Server execution timeout in seconds (default: 10800). Default: 10800. |
--wait | Wait for terminal execution status. Default: false. |
--wait-timeout | Maximum client wait in seconds (default: 10800); does not cancel the execution. Default: 10800. |
--poll-interval | Polling interval in seconds (default: 2). Default: 2. |
tsm --context dev --tenant demo e2e run --test CoreE2e.Evaluation
tsm --context dev --tenant demo e2e run --test CoreE2e.Evaluation,CoreE2e.Cleanup --params '{"count":2}' --wait
tsm --context ci --tenant demo e2e run --suite Reference.Baseline --wait
tsm e2e status
Read execution status; optionally wait.
| Option | Description |
|---|---|
--wait | Wait for terminal execution status. Default: false. |
--wait-timeout | Maximum client wait in seconds (default: 10800); does not cancel the execution. Default: 10800. |
--poll-interval | Polling interval in seconds (default: 2). Default: 2. |
--require-report | Wait for published report; fail if publication failed. Default: false. |
| Argument | Description |
|---|---|
<id> | Execution UUID. Required. |
tsm --context dev --tenant demo e2e status 0b7e9a54-2c1d-4f3a-8e6b-5a9d7c1f2e30 --wait --wait-timeout 120
tsm e2e online
List online executions in the selected tenant.
tsm --context dev --tenant demo e2e online
tsm e2e initialize
Initialize optional E2E configuration storage in the selected tenant.
| Option | Description |
|---|---|
--yes | Confirm creation or migration of E2E schema in the explicit tenant. Default: false. |
tsm --context dev --tenant demo e2e initialize --yes
tsm e2e cancel
Request execution cancellation.
| Argument | Description |
|---|---|
<id> | Execution UUID. Required. |
tsm --context dev --tenant demo e2e cancel 0b7e9a54-2c1d-4f3a-8e6b-5a9d7c1f2e30
tsm e2e report
Retry report upload for an execution.
| Argument | Description |
|---|---|
<id> | Execution UUID. Required. |
tsm --context dev --tenant demo e2e report 0b7e9a54-2c1d-4f3a-8e6b-5a9d7c1f2e30
tsm app
Work with the application selected by the current context.
tsm app entity
Read entity data from target environment.
tsm app entity types
List available entity types.
tsm app entity types
tsm app entity list
List records of an entity type.
| Option | Description |
|---|---|
--page-size | Maximum number of records to return. |
| Argument | Description |
|---|---|
<entityCode> | Entity type code (e.g. BillingCycleType). Required. |
tsm app entity list BillingCycleType --page-size 50
tsm app entity get
Get a single entity record by ID or code.
| Option | Description |
|---|---|
--source | Read source: 'db' (default, database source of truth) or 'es' (Elasticsearch read model). Default: db. |
--es-entity | TQL/Elasticsearch logical entity name for --source es (e.g. 'order'). Required with --source es. |
| Argument | Description |
|---|---|
<entityCode> | Entity type code (e.g. BillingCycleType). Required. |
<idOrCode> | Entity ID or code. Required. |
tsm app entity get BillingCycleType MONTHLY
tsm app entity verify
Verify a record's presence in the database (source of truth) vs the Elasticsearch read model.
| Option | Description |
|---|---|
--es-entity | TQL/Elasticsearch logical entity name (e.g. 'order'). Required. |
| Argument | Description |
|---|---|
<entityCode> | Entity type code (e.g. Order). Required. |
<idOrCode> | Entity ID or code. Required. |
tsm --context dev app entity verify Order ORD-1001 --es-entity order
tsm app request
Send a raw HTTP request to the target environment's tSM API, reusing the configured environment and credentials. The leading slash of <path> is optional — omit it on Windows, where Git Bash rewrites /path into a Windows path.
| Option | Description |
|---|---|
--field, -f | Body field key=value (string) or key:=value (raw JSON). Repeatable; builds a JSON object body. |
--input, -i | Read the request body from a file, or '-' for stdin. |
--raw-body | Use this literal string as the request body. |
--query, -q | Query parameter key=value. Repeatable. |
--header, -H | Extra request header 'Name: value'. Repeatable. |
--content-type | Content-Type for the request body. Default: application/json. |
--raw | Print the response body verbatim (no JSON pretty-printing). Default: false. |
--out | Write the response body to a file byte-for-byte. Creates parent directories. |
| Argument | Description |
|---|---|
<method> | HTTP method: GET, POST, PUT, PATCH, DELETE, HEAD. Required. |
<path> | Request path relative to the environment base URL, e.g. tsm-config-form/api/v2/entity-types/search. The leading slash is optional; prefer the slash-less form in Git Bash on Windows, which rewrites an argument starting with '/' into a Windows filesystem path. Required. |
tsm app request GET tsm-config-form/api/v2/entity-types/search
tsm app endpoints
List the REST endpoints of a service from its OpenAPI document, optionally filtered. Then call one of the endpoints with 'tsm api'.
| Option | Description |
|---|---|
--group | OpenAPI group, e.g. v2, admin, legacy (default: every group in one document). |
| Argument | Description |
|---|---|
SERVICE | Service code, e.g. tsm-ticket. Required. |
FILTER | Case-insensitive text matched against path, summary, operation id and tags. |
tsm app endpoints tsm-ticket reindex
tsm app tql
Run a TQL query and print the result as a table (or -o json / yaml). Exits 1 when the query fails; the parser position is printed to stderr.
| Option | Description |
|---|---|
--file | Read the query from a file, or '-' for stdin. |
--param, -p | Query parameter key=value (string) or key:=value (JSON). Repeatable. |
--service | Service that runs the query (default: tsm-config-form). Default: tsm-config-form. |
| Argument | Description |
|---|---|
QUERY | TQL query; or use --file. |
tsm app tql "select key, name from ticket where status = 'NEW' limit 20"
tsm app spel
Evaluate SpEL on the target environment.
tsm app spel eval
Evaluate a SpEL expression like the SpEL console and print the result. Needs the Settings.Script.Spel.Console privilege.
| Option | Description |
|---|---|
--file | Read the expression from a file, or '-' for stdin. |
--var, -v | Context variable key=value (string) or key:=value (JSON), available as #key. Repeatable. |
--script | Evaluate in the context of this saved script. |
--service | Service that evaluates the expression, with its own beans (default: tsm-config-form). Default: tsm-config-form. |
| Argument | Description |
|---|---|
EXPRESSION | SpEL expression; or use --file. |
tsm app spel eval "@config.registerValue.get('Tick.Priority', 'HIGH')"
tsm app script
Run saved scripts on the target environment.
tsm app script run
Run a saved Script entity by code and print its result. The script's own execution privilege applies.
| Option | Description |
|---|---|
--var, -v | Script variable key=value (string) or key:=value (JSON). Repeatable. |
--service | Service that runs the script (default: tsm-config-form). Default: tsm-config-form. |
| Argument | Description |
|---|---|
CODE | Script code. Required. |
tsm --context dev app script run Billing.RecalculateCycle --var cycleId=42 --var dryRun:=true
tsm app forms
Validate and inspect forms using the TSM-AI skill API.
tsm app forms validate
Validate a form schema; --strict also rejects warnings.
| Option | Description |
|---|---|
--form | Stored form ID or code; alternatively supply a schema file. |
--entity | Control entity scope. |
--use-type | Control use-type scope. |
--base-form | Base form configuration code. |
--strict | Reject warnings as well as errors. Default: false. |
| Argument | Description |
|---|---|
<file> | Schema JSON file, or '-' for stdin; alternatively use --form. |
tsm app forms validate form.json --strict --entity Ticket --use-type EDIT --base-form Ticket.Edit
tsm app forms validate --form Ticket.Edit --strict
tsm app forms lint
Return all form lint findings.
| Option | Description |
|---|---|
--form | Stored form ID or code; alternatively supply a schema file. |
--entity | Control entity scope. |
--use-type | Control use-type scope. |
--base-form | Base form configuration code. |
| Argument | Description |
|---|---|
<file> | Schema JSON file, or '-' for stdin; alternatively use --form. |
tsm app forms lint form.json
tsm app forms inspect
Inspect schema widgets, effects and expressions.
| Option | Description |
|---|---|
--form | Stored form ID or code; alternatively supply a schema file. |
--entity | Control entity scope. |
--use-type | Control use-type scope. |
--base-form | Base form configuration code. |
| Argument | Description |
|---|---|
<file> | Schema JSON file, or '-' for stdin; alternatively use --form. |
tsm app forms inspect --form Ticket.Edit
tsm app forms widgets
Search the bundled widget catalog.
| Option | Description |
|---|---|
--search | Text to search for in the widget catalog. |
--selector | Only widgets with this selector, e.g. input. |
--limit | Maximum records (1..200; server default 30). |
tsm app forms widgets --search text --selector input --limit 30
tsm app forms controls
Search the bundled form control catalog.
| Option | Description |
|---|---|
--entity | Only controls of this entity, e.g. Ticket. |
--use-type | Only controls with this use type, e.g. EDIT. |
--code | Only controls of this form configuration code, e.g. Ticket.Edit. |
--id | Look up a single control by its ID. |
--search | Text to search for in the control catalog. |
--all | Include all matching controls. Default: false. |
tsm app forms controls --entity Ticket --use-type EDIT --code Ticket.Edit --search name
tsm app forms controls --id control-id
tsm app forms effects
Inspect and simulate form effects.
tsm app forms effects lint
Lint form effects.
| Option | Description |
|---|---|
--form | Stored form ID or code; alternatively supply a schema file. |
--entity | Control entity scope. |
--use-type | Control use-type scope. |
--base-form | Base form configuration code. |
| Argument | Description |
|---|---|
<file> | Schema JSON file, or '-' for stdin; alternatively use --form. |
tsm app forms effects lint form.json
tsm app forms effects graph
Build the form effects graph.
| Option | Description |
|---|---|
--form | Stored form ID or code; alternatively supply a schema file. |
--entity | Control entity scope. |
--use-type | Control use-type scope. |
--base-form | Base form configuration code. |
| Argument | Description |
|---|---|
<file> | Schema JSON file, or '-' for stdin; alternatively use --form. |
tsm app forms effects graph --form Ticket.Edit
tsm app forms effects simulate
Simulate effects against sample initial data.
| Option | Description |
|---|---|
--form | Stored form ID or code; alternatively supply a schema file. |
--entity | Control entity scope. |
--use-type | Control use-type scope. |
--base-form | Base form configuration code. |
--initial | Initial values as a JSON object; mutually exclusive with --initial-file. |
--initial-file | Initial values JSON file, or '-' for stdin; defaults to {} when neither initial option is supplied. |
| Argument | Description |
|---|---|
<file> | Schema JSON file, or '-' for stdin; alternatively use --form. |
tsm app forms effects simulate form.json --initial-file initial.json
tsm app forms capabilities
Read available Forms operations and provenance.
tsm app forms capabilities
tsm app jexl
Validate and evaluate JEXL using the TSM-AI skill API.
tsm app jexl validate
Validate JEXL syntax and precedence without execution.
| Option | Description |
|---|---|
--expr | Literal expression. |
--file | Expression file, or '-' for stdin. |
--form | Stored form ID or code; requires --path. |
--path | RFC 6901 pointer relative to authored Form.schema; requires --form. |
tsm app jexl validate --expr '1 + 2'
tsm app jexl validate --form Ticket.Edit --path /widgets/0/props/visible
tsm app jexl execute
Evaluate JEXL against supplied sample context and JSON helper values.
| Option | Description |
|---|---|
--expr | Literal expression. |
--file | Expression file, or '-' for stdin. |
--form | Stored form ID or code; requires --path. |
--path | RFC 6901 pointer relative to authored Form.schema; requires --form. |
--ctx | Sample context JSON file. |
--functions-file | JSON function helper values; executable JavaScript is not supported. |
--transforms-file | JSON transform helper values; executable JavaScript is not supported. |
tsm app jexl execute --file expression.jexl --ctx context.json
tsm app jexl compile
Compile JEXL to JavaScript; the response remains JSON.
| Option | Description |
|---|---|
--expr | Literal expression. |
--file | Expression file, or '-' for stdin. |
--form | Stored form ID or code; requires --path. |
--path | RFC 6901 pointer relative to authored Form.schema; requires --form. |
--shape | Output shape: json, body, wrapped (server default json). |
tsm app jexl compile --file expression.jexl --shape wrapped
tsm app jexl autocomplete
Complete JEXL at a cursor offset.
| Option | Description |
|---|---|
--expr | Literal expression. |
--file | Expression file, or '-' for stdin. |
--offset | Cursor offset in the expression. Default: 0. Required. |
--ctx | Sample context JSON file. |
tsm app jexl autocomplete --file expression.jexl --offset 8 --ctx context.json
tsm app jexl catalog
Read JEXL catalog documentation and return shapes.
| Option | Description |
|---|---|
--kind | functions, transforms, variables or datasources. Required. |
--name | Only the catalog entry with this name, e.g. lookup. |
--limit | Maximum records (1..200; server default 40). |
tsm app jexl catalog --kind functions --name lookup --limit 40
tsm app jexl capabilities
Read available JEXL operations and provenance.
tsm app jexl capabilities
tsm app mock
Build mock packages and manage tenant mock bindings.
tsm app mock validate
Validate portable mock package source or ZIP locally.
| Argument | Description |
|---|---|
<source> | Mock-package source directory or archive. Required. |
tsm app mock validate mocks/demo
tsm app mock build
Build an immutable mock-package-v1 ZIP locally.
| Option | Description |
|---|---|
--out | Output file or directory. Required. |
| Argument | Description |
|---|---|
<source> | Mock-package source directory or archive. Required. |
tsm app mock build mocks/demo --out build/demo-mocks.zip
tsm app mock diff
Compare an artifact to the current tenant binding.
| Argument | Description |
|---|---|
<artifact> | Built mock package ZIP. Required. |
tsm app mock diff build/demo-mocks.zip
tsm app mock install
Install at the observed binding revision without resetting state.
| Option | Description |
|---|---|
--expected-revision | Override the observed revision for optimistic concurrency. |
| Argument | Description |
|---|---|
<artifact> | Built mock package ZIP. Required. |
tsm app mock install build/demo-mocks.zip
tsm app mock status
Read tenant binding, readiness and drift.
tsm app mock status
tsm app mock ui
Return the registered dashboard URL for this tenant binding.
tsm app mock ui
tsm app mock journal
Read tenant journal with explicit partial correlation coverage.
| Option | Description |
|---|---|
--correlation-id, --run | Existing system X-Correlation-Id; accepts generated tsm-prefixed IDs. |
--resource | netbox:device:ID or abs:phone:ID. |
tsm app mock journal --correlation-id tsm-example
tsm app mock export
Export portable draft source from an idle tenant workspace.
| Option | Description |
|---|---|
--out | Output file or directory. Required. |
tsm app mock export --out mocks/export
tsm app data
Import business datasets through the standard data-package API.
tsm app data import
Import a data-package ZIP into the selected tenant; retain record results on partial failure.
| Option | Description |
|---|---|
--file | Data-package ZIP file to import. Required. |
--overwrite-existing | Update records that differ from the dataset; default rejects conflicts. Default: false. |
tsm --context tsm-dev --tenant demo app data import --file dataset.zip
tsm app tenant
Create and inspect tenants through installation management.
tsm app tenant profiles
List creation profiles, their descriptions and the configured default.
tsm --context tsm-dev app tenant profiles
tsm app tenant sources
List available clone sources.
tsm --context tsm-dev app tenant sources
tsm app tenant create
Create and prepare one tenant; optionally run a suite after READY.
| Option | Description |
|---|---|
--name | Display name of the new resource. Required. |
--source-tenant | Source tenant used as the preparation blueprint. Required. |
--profile | Creation profile code; defaults to the configured profile shown by tenant profiles. |
--purpose | Tenant purpose: ORGANIZATION, SANDBOX, TESTING. Controls the default lifetime, not test selection. Default: SANDBOX. |
--ttl-days | Tenant lifetime in days. |
--unlimited | Create without an automatic expiration. Default: false. |
--run-suite | Run this suite once after preparation; tenant remains READY if tests fail. |
--wait | Wait for READY and any requested test run. Default: false. |
--wait-timeout | Client wait budget in seconds (default: 10800); does not cancel provisioning. Default: 10800. |
--poll-interval | Polling interval in seconds (default: 2). Default: 2. |
| Argument | Description |
|---|---|
<code> | Lowercase tenant code: letter followed by letters/digits, maximum 40 characters. Required. |
tsm --context tsm-dev app tenant create demo --name Demo --source-tenant default --purpose TESTING --wait
tsm app tenant status
Inspect tenant preparation and any requested test run.
| Option | Description |
|---|---|
--wait | Wait for READY and any requested test run. Default: false. |
--wait-timeout | Client wait budget in seconds (default: 10800); does not cancel provisioning. Default: 10800. |
--poll-interval | Polling interval in seconds (default: 2). Default: 2. |
| Argument | Description |
|---|---|
<code> | Tenant code. Required. |
tsm --context tsm-dev app tenant status demo
tsm cli
Configure, update and integrate the CLI itself.
tsm cli config
Manage the single home configuration without accessing secrets.
tsm cli config set
Set a CLI preference in the home config; requires --global.
| Option | Description |
|---|---|
--global | Write only global home preferences instead of a workspace default. Default: false. Required. |
| Argument | Description |
|---|---|
<key> | CLI preference key. Required. |
<value> | New preference value. Required. |
tsm cli config set output json --global
tsm cli config get
Show effective CLI preferences and their home file.
| Argument | Description |
|---|---|
<key> | CLI preference key. |
tsm cli config get
tsm cli config list
List registered projects and environments; never lists credentials.
tsm cli config list
tsm cli config unset
Reset a CLI preference in the home config; requires --global.
| Option | Description |
|---|---|
--global | Write only global home preferences instead of a workspace default. Default: false. Required. |
| Argument | Description |
|---|---|
<key> | CLI preference key. Required. |
tsm cli config unset output --global
tsm cli config project
Register logical projects in the home config.
tsm cli config project add
Register a project without copying environments into a checkout.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm cli config project add tsm
tsm cli config project remove
Remove an unreferenced project; retains account secrets.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm cli config project remove old-project
tsm cli config environment
Register project environments in the home config.
tsm cli config environment add
Add a direct endpoint or runtime-resolved environment; no credentials are stored.
| Option | Description |
|---|---|
--project | Logical project registered in home config. Required. |
--endpoint | Direct tSM HTTP(S) URL; omit to resolve the owned workspace runtime. |
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm cli config environment add dev --project tsm --endpoint https://tsm-dev.example.com
tsm cli config environment update
Replace environment connection settings; changed endpoint invalidates stored credential scope.
| Option | Description |
|---|---|
--project | Logical project registered in home config. Required. |
--endpoint | Direct tSM HTTP(S) URL; omit to resolve the owned workspace runtime. |
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm cli config environment update dev --project tsm --endpoint https://tsm-dev.example.com
tsm cli config environment remove
Remove an unreferenced project environment; retains account secrets.
| Option | Description |
|---|---|
--project | Logical project registered in home config. Required. |
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm cli config environment remove old-dev --project tsm
tsm cli config workspace
Manage named worktrees and their personal defaults in home config.
tsm cli config workspace list
List registered workspaces without selecting or starting them.
tsm cli config workspace list
tsm cli config workspace add
Register this Git checkout as a workspace; infer path, name and project from CWD/tsm-project.yaml.
| Option | Description |
|---|---|
--path | Workspace or source checkout path; defaults to CWD when supported. |
--project | Logical project registered in home config. |
--runtime-profile | Default profile defined in the workspace runtime-profiles.yaml. |
| Argument | Description |
|---|---|
<name> | Registered resource name. |
tsm cli config workspace add
tsm cli config workspace update
Replace a workspace registration; does not change a running instance.
| Option | Description |
|---|---|
--path | Workspace or source checkout path; defaults to CWD when supported. |
--project | Logical project registered in home config. |
--runtime-profile | Default profile defined in the workspace runtime-profiles.yaml. |
| Argument | Description |
|---|---|
<name> | Registered resource name. |
tsm cli config workspace update tsm-a --path /work/tsm-a --project tsm --context tsm-local --runtime-profile full
tsm cli config workspace remove
Forget a workspace registration; retains its files, runtime, ports and volumes.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm cli config workspace remove tsm-a
tsm cli upgrade
Upgrade the tsm CLI to the latest published release.
| Option | Description |
|---|---|
--check | Only report whether a newer release exists; do not install. Default: false. |
--force | Reinstall even when already on the latest version. Default: false. |
--gitlab-token | GitLab access token. Defaults to $TSM_UPGRADE_TOKEN or $GITLAB_TOKEN. Sensitive input. |
--gitlab-url | GitLab API v4 base URL (upgrade source). Default: https://gitlab.datalite.cz/api/v4. |
--project | GitLab project id or namespaced path (upgrade source). Default: tsm/tsm-config. |
--skip-checksum | Skip SHA-256 verification of the downloaded binary. Default: false. |
--target | Install to this path instead of replacing the running binary. Also enables installing when running via the JVM (java -jar). |
tsm cli upgrade --check
tsm cli upgrade
tsm cli autocomplete
Install shell completion for tsm: writes the completion script next to the CLI config and sources it from the shell startup file (~/.bashrc, the first existing of ~/.bash_profile, ~/.bash_login, ~/.profile on macOS, $ZDOTDIR/.zshrc or ~/.zshrc, or the PowerShell $PROFILE). Run it again after an upgrade to refresh the commands.
| Option | Description |
|---|---|
--print | Print the completion script to stdout instead of installing it. Default: false. |
--rc-file | Startup file to source the script from, instead of the shell default. |
| Argument | Description |
|---|---|
<shell> | Shell: bash, zsh, powershell. Required. |
tsm cli autocomplete bash
tsm cli autocomplete zsh --print
tsm runtime
Build and run the selected local setup.
tsm runtime profile
Inspect and validate workspace runtime profile definitions.
tsm runtime profile list
List profiles in the context directory.
tsm runtime profile list
tsm runtime profile show
Show one profile without starting it.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm runtime profile show full
tsm runtime profile validate
Validate a runtime profile against the selected environment.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm runtime profile validate full
tsm runtime list
List this workspace's recorded runtime instances without changing selection.
tsm runtime list
tsm runtime plan
Show the complete setup without starting or building it.
| Argument | Description |
|---|---|
PROFILE | Runtime profile, otherwise the directory default. |
tsm runtime plan full
tsm runtime build
Build missing or changed source artifacts with Maven 3.
| Argument | Description |
|---|---|
PROFILE | Runtime profile, otherwise the directory default. |
tsm runtime build full
tsm runtime up
Build and start all components declared by the setup.
| Argument | Description |
|---|---|
PROFILE | Runtime profile, otherwise the directory default. |
tsm runtime up full
tsm runtime down
Stop this directory's owned runtime, preserving data and port leases.
| Option | Description |
|---|---|
--instance | Verify this workspace owns the specified runtime UUID. |
--volumes | Delete this runtime's Compose volumes. Default: false. |
tsm runtime down
tsm runtime status
Show local process ownership and readiness.
tsm runtime status
tsm runtime ports
Allocate or show stable ports for the selected setup.
| Option | Description |
|---|---|
--reserve | Also reserve named ports for project fixtures; does not launch a process. |
tsm runtime ports
tsm runtime logs
Read a component log.
| Option | Description |
|---|---|
--tail | Number of recent log lines. Default: 100. |
| Argument | Description |
|---|---|
<component> | Runtime component name. Required. |
tsm runtime logs tsm-calendar --tail 100
tsm runtime ide
Show launch arguments for a component declared external.
| Argument | Description |
|---|---|
<component> | Runtime component name. Required. |
tsm runtime ide tsm-ordering
tsm runtime source
Bind source checkouts; ordinary Git manages branches and merges.
tsm runtime source add
Register a checkout or clone a repository with an explicit ref.
| Option | Description |
|---|---|
--path | Workspace or source checkout path; defaults to CWD when supported. |
--url | Git clone URL without embedded credentials. |
--ref | Explicit Git branch or tag to clone. |
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm runtime source add tsm-infra --path /work/tsm-infra
tsm runtime source remove
Remove a binding while retaining the checkout.
| Argument | Description |
|---|---|
<name> | Registered resource name. Required. |
tsm runtime source remove tsm-infra
tsm runtime source list
Show registered sources.
tsm runtime source list
tsm runtime source status
Show actual source SHAs, branches and dirty status.
tsm runtime source status
tsm runtime source exec
Execute a command in every registered source checkout.
| Argument | Description |
|---|---|
<arguments> | Command and arguments to execute in each source checkout. Required. |
tsm runtime source exec -- git status --short
tsm runtime update
Resolve and lock the selected completed product release.
| Argument | Description |
|---|---|
PROFILE | Runtime profile, otherwise the directory default. |
tsm runtime update full
tsm doctor
Check the CLI setup against the selected environment: configuration, reachability, credentials, tenant and server version. Exits 1 when a check fails.
tsm --context dev doctor
tsm service
Inspect tSM microservices behind the gateway.
tsm service health
List microservices and their health status. Exits 1 when a service is not UP. With a single SERVICE prints its health components and their details.
| Option | Description |
|---|---|
--wait | Poll until every service is UP (e.g. after a deployment or restart). Default: false. |
--wait-timeout | Maximum wait in seconds (default: 300). Default: 300. |
--poll-interval | Polling interval in seconds (default: 5). Default: 5. |
| Argument | Description |
|---|---|
SERVICE | Service code (gateway prefix), e.g. tsm-ticket. Default: every service in the Microservice register. |
tsm --context dev service health
tsm --context dev service health tsm-ticket
tsm --context dev service health --wait --wait-timeout 600
tsm service version
List microservices and their build version. With --compare-with compares the commits against a second environment.
| Option | Description |
|---|---|
--compare-with | Second environment alias (stored with 'tsm auth login') to compare with. |
--fail-on-diff | With --compare-with: exit 1 when a service differs between the environments. Default: false. |
| Argument | Description |
|---|---|
SERVICE | Service code (gateway prefix), e.g. tsm-ticket. Default: every service in the Microservice register. |
tsm --context dev service version
tsm --context dev service version --compare-with test --fail-on-diff
tsm service info
Print the full actuator info of a service: build, git and its runtime configuration.
| Argument | Description |
|---|---|
SERVICE | Service code, e.g. tsm-ticket. Required. |
tsm --context dev service info tsm-ticket
tsm service env
Without PROPERTY list the property sources of a service, with PROPERTY its effective value and source. Values are masked by the service unless its actuator is configured to show them.
| Argument | Description |
|---|---|
SERVICE | Service code, e.g. tsm-ticket. Required. |
PROPERTY | Property name, e.g. spring.datasource.url. |
tsm --context dev service env tsm-ticket spring.datasource.url
tsm service loggers
Without LOGGER list the loggers with a configured level; with LOGGER show it, or change it with --level / --reset. A change reaches only the one instance the gateway routes to; other replicas keep their level.
| Option | Description |
|---|---|
--all | List every logger, not only those with a configured level. Default: false. |
--level | Set the level: TRACE, DEBUG, INFO, WARN, ERROR, OFF. |
--reset | Drop the configured level, so the logger inherits again. |
| Argument | Description |
|---|---|
SERVICE | Service code, e.g. tsm-ticket. Required. |
LOGGER | Logger name, e.g. cz.datalite.tsm or ROOT. |
tsm --context dev service loggers tsm-ticket cz.datalite.tsm --level DEBUG
tsm --context dev service loggers tsm-ticket cz.datalite.tsm --reset
tsm service logs
Print the end of a service log file (actuator logfile). Services in Kubernetes usually log to stdout only and expose no log file; use Kibana or the cluster logs there.
| Option | Description |
|---|---|
--tail | Number of last lines to print (default: 200, 0 = whole file). Default: 200. |
| Argument | Description |
|---|---|
SERVICE | Service code, e.g. tsm-ticket. Required. |
tsm --context dev service logs tsm-ticket --tail 100
tsm help
Show help for a command. With '-o json' or '-o yaml' print the description of the command (options, arguments, examples, subcommands) as data instead. Hidden commands are not included.
| Argument | Description |
|---|---|
COMMAND | Command to describe, e.g. package download. Default: the whole CLI. |
tsm help package download
tsm help -o json
Generated from tsm-config source cecd36d93.