Ansible-style workflow automation for Solace brokers via the SEMP v2 REST API.
Define reusable, parameterised workflows in YAML and run them against your broker -- every action is idempotent, so re-running the same workflow is always safe.
- Batch-create, update, or delete queues, REST Delivery Points, subscriptions, ACL profiles, client profiles, and client usernames
- Preview changes with dry-run mode before touching the broker
- Use Jinja2 templates and global variables to build dynamic, reusable workflows
- Run multiple workflows in a single execution with shared configuration
- You write a config file (
config.yaml) with your broker connection and a list of workflows - You write template files (
.yaml) that describe what actions to perform (create queue, add subscription, etc.) - You run the tool -- it connects to the broker, checks current state, and only makes the changes needed
All 24 built-in modules are idempotent: if a resource already exists, the action is skipped. If it doesn't exist, it's created. Re-running is always safe.
A single self-contained binary -- the workflow templates are embedded, so there are no runtime dependencies.
Every release attaches a binary for each supported platform -- semp-workflow-{linux,darwin,windows}-{amd64,arm64} (Windows adds .exe) -- plus a SHA256SUMS.txt file. Download the asset for your platform, verify it, and put it on your PATH:
# Linux/macOS -- adjust the asset name for your OS/arch
base=https://github.com/hafio/Solace-SEMP-Workflow-Automation/releases/latest/download
curl -LO "$base/semp-workflow-linux-amd64"
curl -LO "$base/SHA256SUMS.txt"
sha256sum --ignore-missing -c SHA256SUMS.txt # -> semp-workflow-linux-amd64: OK
install -m 0755 semp-workflow-linux-amd64 /usr/local/bin/semp-workflowOn Windows, download semp-workflow-windows-amd64.exe and verify it against SHA256SUMS.txt.
./scripts/dev.sh build # -> dist/semp-workflow-<os>-<arch>[.exe] (Windows: .\scripts\dev.ps1 build)Then run it:
# See available commands
semp-workflow --help
# Export bundled templates for customisation
semp-workflow init --output-dir templates
# Validate config without connecting to the broker
semp-workflow validate --config config.yaml
# Preview what would change
semp-workflow run --config config.yaml --dry-run
# Execute
semp-workflow run --config config.yamlFor full technical details -- configuration reference, template authoring, module parameters, examples, and troubleshooting -- see the How-To Guide.
| Document | Contents |
|---|---|
| docs/HOWTO.md | Full technical guide: configuration, templates, modules, and troubleshooting |
| docs/HOWTO-zh.md | Chinese translation of the How-To guide |
| docs/all-modules.md | Auto-generated module parameter reference |
| docs/TESTS.md | Test suite overview, layout, and module registry |
| docs/template-app-inbound.md | app-inbound template: inputs, action sequence, examples |
| docs/template-app-outbound.md | app-outbound template: inputs, action sequence, examples |
| docs/release.md | Release process and versioning scheme |