A Rundeck Workflow Step Plugin to automatically manage ROI (Return on Investment) metrics for jobs
Quick Start โข Features โข Documentation โข Build & Deploy โข Contributing
The Rundeck Set ROI Defaults Plugin is a Workflow Step Plugin that automatically manages ROI metrics in Rundeck job definitions. It detects existing ROI configurations, adds missing ROI fields, and tracks automation value across projects - all from within your Rundeck workflows.
This plugin is the Rundeck plugin version of the Python script for managing ROI metrics, providing seamless integration with Rundeck workflows and enhanced security through Key Storage integration.
- โก Bulk Processing: Processes single projects or all accessible projects
- ๐ก๏ธ Dry-Run Mode: Preview changes before applying them
- ๐ Auto-Detection: Automatically detects existing ROI plugin configurations
- ๐ง Workflow Integration: Runs as a standard Rundeck workflow step
- ๐ Progress Reporting: Provides detailed execution logs and summary statistics
|
|
-
Build the Plugin:
git clone https://github.com/your-org/rundeck-setroidefaults.git cd rundeck-setroidefaults gradle clean build -
Upload to Rundeck:
- Go to System โ Plugins โ Upload Plugin
- Select
build/libs/set-roi-defaults-0.1.0.jar - Click Upload Plugin
-
Setup API Token:
- Generate API token in Profile โ User API Tokens
- Store in System โ Key Storage as
keys/roi-plugin-token
-
Test the Plugin:
- Create a job with Set ROI Defaults workflow step
- Configure with
Dry Run Mode: true - Run and verify output
๐ Detailed Instructions: See GETTING_STARTED.md
| Document | Description | Use Case |
|---|---|---|
| ๐ PLUGIN_README.md | Complete plugin documentation | Full reference guide |
| ๐ GETTING_STARTED.md | Quick setup guide | First-time installation |
| ๐๏ธ BUILD_DEPLOY.md | Build and deployment guide | Development and production deployment |
| Component | Version | Notes |
|---|---|---|
| Rundeck | 5.x | Commercial or Self-Hosted with ROI Metrics Plugin |
| Java | 11+ | Required for plugin execution |
| Operating System | Linux | Linux environment required |
| ROI Metrics Plugin | Any Version | Must be installed and enabled |
โ ๏ธ Important: This plugin only works with commercial versions of Rundeck (Rundeck Enterprise or Rundeck Self-Hosted) that include the ROI metrics plugin.
Workflow Step: Set ROI Defaults
Configuration:
API Token Path: keys/roi-plugin-token
Project Filter: (blank - current project)
Dry Run Mode: trueWorkflow Step: Set ROI Defaults
Configuration:
API Token Path: keys/roi-plugin-token
Project Filter: all
Dry Run Mode: falseWorkflow Step: Set ROI Defaults
Configuration:
API Token Path: keys/roi-plugin-token
Project Filter: production
Default Hours Saved: 0.25
Dry Run Mode: falsegraph LR
A[๐ Plugin Detection] --> B[๐ Job Analysis]
B --> C[โ Field Addition]
C --> D[๐ Safe Updates]
A1[Auto-detect ROI plugin] --> A
B1[Check existing ROI config] --> B
C1[Add hours field] --> C
D1[Rundeck job import API] --> D
- ๐ Auto-Detection: Scans existing jobs to detect ROI plugin name
- ๐ Job Analysis: Checks each job for existing ROI metrics configuration
- โ Field Addition: Adds "hours" field to jobs that don't have it
- ๐ Safe Updates: Uses Rundeck's job import API with update mode
The plugin adds ROI metrics in the standard Rundeck format:
{
"plugins": {
"ExecutionLifecycle": {
"roi-metrics-data": {
"userRoiData": "[{\"key\":\"hours\",\"label\":\"Hours Saved By automation\",\"desc\":\"Number of hours saved by this automation\",\"value\":\"0.1667\"}]"
}
}
}
}# Standard build
gradle clean build
# Production build with tests
gradle clean test build
# Deploy to local Rundeck
sudo cp build/libs/set-roi-defaults-0.1.0.jar /var/lib/rundeck/libext/
sudo systemctl restart rundeckdFROM rundeck/rundeck:5.0.2
COPY build/libs/set-roi-defaults-0.1.0.jar /home/rundeck/libext/๐ Complete Build Guide: See BUILD_DEPLOY.md
- โ API tokens stored securely in Rundeck Key Storage
- โ No credentials in job definitions or logs
- โ HTTPS support for API communications
- โ Request timeouts to prevent hanging connections
The API token user must have:
- Read Projects: List and access projects
- Read Jobs: Retrieve job definitions
- Update Jobs: Modify job configurations
- Import Jobs: Use job import API
| Issue | Solution |
|---|---|
| Plugin not visible | Restart Rundeck: sudo systemctl restart rundeckd |
| Key storage error | Verify token path: keys/roi-plugin-token |
| Permission denied | Check API token has job read/write permissions |
| No jobs found | Verify project filter and user access |
๐ Complete Troubleshooting: See PLUGIN_README.md#troubleshooting
- ๐ด Fork the repository
- ๐ฟ Create a feature branch
- ๐ง Make your changes
- ๐งช Test with dry-run mode
- โ Validate on test Rundeck instance
- ๐ค Submit a pull request
# Build and test locally
gradle clean build test
# Deploy to development Rundeck
./deploy-roi-plugin.sh
# Test plugin functionality
# (Create test job with plugin step)This project is licensed under the Apache License 2.0.
This plugin is provided as-is and is not part of the general PagerDuty/Rundeck support program. Support is provided on a best-effort basis through community channels only.
- โ Community support via GitHub issues
- โ Not covered by PagerDuty commercial support
- โ No SLA or guaranteed response times
When reporting issues, please include:
- Rundeck version and plugin version
- Complete error messages and logs
- Plugin configuration (sanitized)
- Steps to reproduce
[](https://rundeck.com) [](https://openjdk.java.net/) [](https://opensource.org/licenses/Apache-2.0) [](https://www.linux.org/) [](https://github.com/your-org/rundeck-setroidefaults) [](https://github.com/your-org/rundeck-setroidefaults)
A Rundeck Workflow Step Plugin to automatically manage ROI (Return on Investment) metrics for jobs
Quick Start โข Features โข Documentation โข Build & Deploy โข Contributing
The Rundeck Set ROI Defaults Plugin is a Workflow Step Plugin that automatically manages ROI metrics in Rundeck job definitions. It detects existing ROI configurations, adds missing ROI fields, and tracks automation value across projects - all from within your Rundeck workflows.
This plugin is the Rundeck plugin version of the Python script for managing ROI metrics, providing seamless integration with Rundeck workflows and enhanced security through Key Storage integration.
- โก Bulk Processing: Processes single projects or all accessible projects
- ๐ก๏ธ Dry-Run Mode: Preview changes before applying them
- ๐ Auto-Detection: Automatically detects existing ROI plugin configurations
- ๐ง Workflow Integration: Runs as a standard Rundeck workflow step
- ๐ Progress Reporting: Provides detailed execution logs and summary statistics
|
|
-
Build the Plugin:
git clone https://github.com/your-org/rundeck-setroidefaults.git cd rundeck-setroidefaults gradle clean build -
Upload to Rundeck:
- Go to System โ Plugins โ Upload Plugin
- Select
build/libs/set-roi-defaults-0.1.0.jar - Click Upload Plugin
-
Setup API Token:
- Generate API token in Profile โ User API Tokens
- Store in System โ Key Storage as
keys/roi-plugin-token
-
Test the Plugin:
- Create a job with Set ROI Defaults workflow step
- Configure with
Dry Run Mode: true - Run and verify output
๐ Detailed Instructions: See GETTING_STARTED.md
| Document | Description | Use Case |
|---|---|---|
| ๐ PLUGIN_README.md | Complete plugin documentation | Full reference guide |
| ๐ GETTING_STARTED.md | Quick setup guide | First-time installation |
| ๐๏ธ BUILD_DEPLOY.md | Build and deployment guide | Development and production deployment |
| Component | Version | Notes |
|---|---|---|
| Rundeck | 5.x | Commercial or Self-Hosted with ROI Metrics Plugin |
| Java | 11+ | Required for plugin execution |
| Operating System | Linux | Linux environment required |
| ROI Metrics Plugin | Any Version | Must be installed and enabled |
โ ๏ธ Important: This plugin only works with commercial versions of Rundeck (Rundeck Enterprise or Rundeck Self-Hosted) that include the ROI metrics plugin.
Workflow Step: Set ROI Defaults
Configuration:
API Token Path: keys/roi-plugin-token
Project Filter: (blank - current project)
Dry Run Mode: trueWorkflow Step: Set ROI Defaults
Configuration:
API Token Path: keys/roi-plugin-token
Project Filter: all
Dry Run Mode: falseWorkflow Step: Set ROI Defaults
Configuration:
API Token Path: keys/roi-plugin-token
Project Filter: production
Default Hours Saved: 0.25
Dry Run Mode: falsegraph LR
A[๐ Plugin Detection] --> B[๐ Job Analysis]
B --> C[โ Field Addition]
C --> D[๐ Safe Updates]
A1[Auto-detect ROI plugin] --> A
B1[Check existing ROI config] --> B
C1[Add hours field] --> C
D1[Rundeck job import API] --> D
- ๐ Auto-Detection: Scans existing jobs to detect ROI plugin name
- ๐ Job Analysis: Checks each job for existing ROI metrics configuration
- โ Field Addition: Adds "hours" field to jobs that don't have it
- ๐ Safe Updates: Uses Rundeck's job import API with update mode
The plugin adds ROI metrics in the standard Rundeck format:
{
"plugins": {
"ExecutionLifecycle": {
"roi-metrics-data": {
"userRoiData": "[{\"key\":\"hours\",\"label\":\"Hours Saved By automation\",\"desc\":\"Number of hours saved by this automation\",\"value\":\"0.1667\"}]"
}
}
}
}# Standard build
gradle clean build
# Production build with tests
gradle clean test build
# Deploy to local Rundeck
sudo cp build/libs/set-roi-defaults-0.1.0.jar /var/lib/rundeck/libext/
sudo systemctl restart rundeckdFROM rundeck/rundeck:5.0.2
COPY build/libs/set-roi-defaults-0.1.0.jar /home/rundeck/libext/๐ Complete Build Guide: See BUILD_DEPLOY.md
- โ API tokens stored securely in Rundeck Key Storage
- โ No credentials in job definitions or logs
- โ HTTPS support for API communications
- โ Request timeouts to prevent hanging connections
The API token user must have:
- Read Projects: List and access projects
- Read Jobs: Retrieve job definitions
- Update Jobs: Modify job configurations
- Import Jobs: Use job import API
| Issue | Solution |
|---|---|
| Plugin not visible | Restart Rundeck: sudo systemctl restart rundeckd |
| Key storage error | Verify token path: keys/roi-plugin-token |
| Permission denied | Check API token has job read/write permissions |
| No jobs found | Verify project filter and user access |
๐ Complete Troubleshooting: See PLUGIN_README.md#troubleshooting
- ๐ด Fork the repository
- ๐ฟ Create a feature branch
- ๐ง Make your changes
- ๐งช Test with dry-run mode
- โ Validate on test Rundeck instance
- ๐ค Submit a pull request
# Build and test locally
gradle clean build test
# Deploy to development Rundeck
./deploy-roi-plugin.sh
# Test plugin functionality
# (Create test job with plugin step)This project is licensed under the Apache License 2.0.
This plugin is provided as-is and is not part of the general PagerDuty/Rundeck support program. Support is provided on a best-effort basis through community channels only.
- โ Community support via GitHub issues
- โ Not covered by PagerDuty commercial support
- โ No SLA or guaranteed response times
When reporting issues, please include:
- Rundeck version and plugin version
- Complete error messages and logs
- Plugin configuration (sanitized)
- Steps to reproduce