https://github.com/pedro-git-projects/flow-sentry
Automated Test Framework for Camunda 8
https://github.com/pedro-git-projects/flow-sentry
Last synced: about 1 month ago
JSON representation
Automated Test Framework for Camunda 8
- Host: GitHub
- URL: https://github.com/pedro-git-projects/flow-sentry
- Owner: pedro-git-projects
- Created: 2025-03-15T22:50:48.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-31T15:48:08.000Z (12 months ago)
- Last Synced: 2025-03-31T17:01:04.850Z (12 months ago)
- Language: Go
- Homepage:
- Size: 352 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Flow Sentry Configuration & CLI Documentation
Flow Sentry uses a configurable setup to connect to Zeebe, Operate, and related services. Configuration options can be set via **command-line flags** or **environment variables**. If no values are provided, the program will fall back to sensible defaults.
---
## ⚙️ Configuration Options
The configuration is defined in a `config` struct with the following fields:
| Field | Default Value | Description |
|----------------------------|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------|
| **ClientID** | `zeebe` | The client identifier used for OAuth. |
| **ClientSecret** | `zecret` | The client secret used for OAuth. |
| **Audience** | `zeebe-api` | The audience for OAuth tokens. |
| **GatewayAddress** | `localhost:26500` (unless overridden via flag or env var) | The address of the Zeebe gateway. |
| **AuthorizationServerURL** | `http://localhost:18080/auth/realms/camunda-platform/protocol/openid-connect/token` | The URL of the authorization server used to obtain OAuth tokens. |
| **OperateBaseURL** | `http://localhost:8081` | The base URL for the Operate service. |
| **BpmnPath** | OS-specific default:
• Linux/Mac: `$HOME/.config/flow-sentry/workflows/connector_test.bpmn`
• Windows: `%AppData%\local\flow-sentry\workflows\connector_test.bpmn` | The default BPMN file to deploy. |
| **SuitesPath** | OS-specific default:
• Linux/Mac: `$HOME/.config/flow-sentry/suites`
• Windows: `%AppData%\local\flow-sentry\suites` | The directory where test suite `.toml` files are stored. |
| **TestSuitesFlag** | `all` | Which test suites to run: `all`, a specific ID, or a comma-separated list. |
| **DeployWorkflowsFlag** | `none` | Workflow deployment behavior: `none`, `suite`, `all`, or list of BPMN files. |
---
## 🚀 CLI Usage
```bash
./flow-sentry [flags]
```
### Default behavior (no flags):
- ✅ Run **all test suites** in the default suites directory
- 🚫 **Do not deploy** any workflows
---
## 🏁 Command-Line Flags
### `-testsuites`
Run one or more test suites, identified by their `process_id`.
- **Type:** `string`
- **Default:** `"all"`
- **Accepted values:**
- `all`: Run all test suites found in the suite directory
- `foo`: Run the suite with `process_id = "foo"`
- `foo,bar`: Run multiple suites
**Example:**
```bash
./flow-sentry -testsuites=invoice-process
```
---
### `-deployWorkflows`
Deploy BPMN workflows before running test suites.
- **Type:** `string`
- **Default:** `"none"`
- **Accepted values:**
- `none`: Do not deploy anything
- `suite`: Deploy workflows listed in each test suite's `workflow_deploy` field
- `all`: Deploy all `.bpmn` files from the BPMN directory
- `file1.bpmn,file2.bpmn`: Deploy only the specified workflows (must exist in BPMN folder)
**Examples:**
```bash
./flow-sentry -deployWorkflows=suite
./flow-sentry -deployWorkflows=invoice.bpmn,shipment.bpmn
```
---
## 📁 File Path Defaults
### BPMN File Path
If not configured manually, the default BPMN path is:
- **Linux/macOS:**
`~/.config/flow-sentry/workflows/connector_test.bpmn`
- **Windows:**
`%AppData%\local\flow-sentry\workflows\connector_test.bpmn`
### Test Suites Path
If not configured manually, the default test suite folder is:
- **Linux/macOS:**
`~/.config/flow-sentry/suites`
- **Windows:**
`%AppData%\local\flow-sentry\suites`
---
## 🌿 Environment Variables
Instead of passing flags, you can use environment variables to configure Flow Sentry:
| Variable | Overrides Field |
|----------------------------|-----------------------------|
| `OPERATE_BASE_URL` | `OperateBaseURL` |
| `AUTHORIZATION_SERVER_URL` | `AuthorizationServerURL` |
| `GATEWAY_ADDRESS` | `GatewayAddress` |
**Examples:**
```bash
export OPERATE_BASE_URL="http://example.com:8081"
export AUTHORIZATION_SERVER_URL="http://example.com/auth/realms/yourrealm/protocol/openid-connect/token"
export GATEWAY_ADDRESS="example.com:26500"
```
**Note:** If both environment variables and flags are provided, **flags take precedence**.
---
## 🎯 Example Workflows
| Command | Behavior |
|--------------------------------------------------------|----------------------------------------------------------|
| `./flow-sentry` | ✅ Run all test suites
🚫 Do not deploy workflows |
| `./flow-sentry -testsuites=all -deployWorkflows=all` | ✅ Run all test suites
✅ Deploy all BPMNs |
| `./flow-sentry -testsuites=invoice-process` | ✅ Run only that suite
🚫 Do not deploy workflows |
| `./flow-sentry -deployWorkflows=suite` | ✅ Run all suites
✅ Deploy workflows listed in suites |
| `./flow-sentry -testsuites=foo,bar -deployWorkflows=foo.bpmn` | ✅ Run foo + bar suites
✅ Deploy foo.bpmn |
---
