Skip to main content

CLI client for SBM 12.0 JSON API

Project description

sbm-cli

A generic command-line client for the SBM (Serena Business Manager) 12.0 JSON API.

Designed for day-to-day L3 support work and for use as a tool by AI assistants (Claude Code).

Install

# Recommended — isolated environment
uv tool install sbm-cli

# Also works
pip install sbm-cli

Quick start

sbm configure setup  # interactive setup wizard
sbm schema           # verify config and see available transitions
sbm list             # list open tickets
sbm get 02440942     # get ticket details

Configuration

Config is stored at ~/.sbm-cli/config.toml. Run sbm configure setup to create it interactively.

The password is stored in Windows Credential Manager (never in the config file). If you have an existing config with a plaintext password field, it is migrated automatically on the next run.

Use sbm configure transition <name> to add or update a named transition interactively. Manual editing is still needed for teams (transition IDs are instance-specific):

[connection]
host       = "https://sbm.example.com"
username   = "myuser"
verify_ssl = false          # set true for trusted certs

[defaults]
table_id  = 1000
report_id = 2208
list_fields = ["TITLE","STATE","FUNCTIONALITY","URGENCY"]  # optional; blank uses built-in default

[transitions]
assign    = { id = 155, fields = ["OWNER", "3RD_LEVEL_SPECIALIST"] }
close     = { id = 19,  fields = ["RESOLUTION", "ROOT_CAUSE"], pre_transition_id = 148, pre_transition_optional = true }
return-l2 = { id = 88,  fields = ["RETURN_REASON", "RETURN_NOTE"] }
transfer  = { id = 140, fields = ["L3_SPECIALIST_GROUP"] }

[transitions.transfer.field_types]
L3_SPECIALIST_GROUP = "list"

[teams]
my-team = { id = 155, name = "L3 My Team" }

Transition IDs are instance-specific. Find them by inspecting browser developer tools while performing actions in the SBM web UI, or ask your SBM admin.

Commands

Command Description
sbm configure setup Interactive setup wizard
sbm configure transition <name> Add/update a named transition interactively
sbm schema Machine-readable capabilities JSON
sbm list [--report N] [--filter N] List tickets
sbm get <ticket-id> Get ticket by display ID
sbm fields <ticket-id> [--fields F1,F2] List field definitions (dbnames, types, labels)
sbm transition <name> <ticket-id> --field K=V Run named transition
sbm transition run <ticket-id> --id N --field K=V Run raw transition by ID
sbm field-values <field> --table <table-id> Discover valid relational field values
sbm teams List configured teams

Global flags

Global flags must appear before the subcommand: sbm --pretty list, not sbm list --pretty.

--pretty / -H   Human-readable output (rich tables)
--config PATH   Override config file location
--quiet         Suppress stderr status messages
--indent        Output formatted JSON with indentation

Output format

All commands output a JSON envelope:

{"ok": true, "command": "get", "data": {...}}
{"ok": false, "command": "transition", "error": {"type": "api_error", "message": "..."}}

Exit codes: 0 success · 1 API error · 2 config/auth error · 3 validation error

Development

git clone https://github.com/xdoko01/sbm-cli
cd sbm-cli
uv sync
uv run sbm configure
uv run pytest
uv run pytest -m integration  # requires live SBM connection

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sbm_cli-0.3.0.tar.gz (456.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sbm_cli-0.3.0-py3-none-any.whl (16.8 kB view details)

Uploaded Python 3

File details

Details for the file sbm_cli-0.3.0.tar.gz.

File metadata

  • Download URL: sbm_cli-0.3.0.tar.gz
  • Upload date:
  • Size: 456.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sbm_cli-0.3.0.tar.gz
Algorithm Hash digest
SHA256 dd90aa5f785bf33bda3452657591d36e10c595767c168b984e1112ba1603dfac
MD5 36879307eeda8356ad45e8fdd73d8109
BLAKE2b-256 0bca9ae8c675703a784b96cc485d544c7b5582bfa32f176c86b2fdb25de21e2a

See more details on using hashes here.

File details

Details for the file sbm_cli-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: sbm_cli-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 16.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.2

File hashes

Hashes for sbm_cli-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b2bb712c6c468407118821ad8d8a38b77caefe007b961a89fd1fabe559fd80ff
MD5 c4365d34c9a3ce6f1c45374c62cf35bc
BLAKE2b-256 39a43c4f65660ca5c1a006faf9a4f48ccec461526da990d5ec3d5e310928e33f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page