A multi-connector project for the Bonita BPM platform to execute REST requests from a process.
This project builds 9 distinct connector packages from one unified codebase:
| Connector | Definition ID | Purpose | Has Body |
|---|---|---|---|
| GET | rest-get |
Retrieve resources | β |
| POST | rest-post |
Create resources | β |
| PUT | rest-put |
Update resources | β |
| DELETE | rest-delete |
Delete resources | β |
| PATCH | rest-patch |
Partial updates | β |
| HEAD | rest-head |
Check resource existence | β |
| File POST | rest-file-post |
Upload files via POST | β |
| File PUT | rest-file-put |
Upload files via PUT | β |
| Connector | Definition ID | Purpose | Output |
|---|---|---|---|
| OAuth2 Auth | oauth-auth |
Retrieve OAuth2 access tokens | token |
- β None - No authentication
- β Basic Auth - Username/password authentication
- β Digest Auth - Challenge-response authentication
- β Custom Header - API key or custom token authentication
- β OAuth2 Client Credentials - Automated token acquisition for service-to-service
- β OAuth2 Authorization Code - User authentication with PKCE support
- β OAuth2 Bearer - Pre-obtained token usage
- β Trust strategies: DEFAULT, TRUST_SELF_SIGNED, TRUST_ALL
- β Custom keystores and truststores
- β Hostname verification modes
- β Client certificate authentication
- β Proxy support - HTTP/HTTPS/SOCKS with authentication
- β Timeout configuration - Connection, socket, and request timeouts
- β Retry logic - Configurable retry strategies for transient failures
- β Custom headers - Multiple headers with expression support
- β Cookies - Cookie management and injection
- β Content negotiation - JSON/XML/form-urlencoded/multipart
- β File uploads - Multipart form data with binary file support
- β Bonita document integration - Read request body from process documents
- β JSON auto-detection - Automatic parsing based on Content-Type
- β Status code extraction - HTTP status code and message capture
- β Header extraction - Response header access
- β Body capture - Raw string or parsed object output
- β Bonita context injection - Process/activity metadata in headers
- β Sensitive data masking - Automatic log sanitization for tokens/passwords
- β Token caching - In-memory OAuth2 token reuse with expiration management
- β Multi-language support - EN, FR, ES, JA localization
- Java: 11+
- Maven: 3.6+ (wrapper included)
- Target Bonita: 7.14.0
git clone https://github.com/bonitasoft/bonita-connector-rest.git
./mvnw
./mvnw clean verify
./mvnw test
./mvnw package -DskipTests
./mvnw test -Dtest=RESTConnectorTest
./mvnw test -Dtest=RESTConnectorTest#testExecuteBusinessLogic
./mvnw sonar:sonar
Build Output
The build produces 9 ZIP packages in target/
Each ZIP contains:
- {connector-name}.impl - Connector implementation descriptor
- classpath/ - All required JAR dependencies
This project uses a dual-versioning approach to maintain backward compatibility:
Definition Version ({connector}.def.version)
- Purpose: Stable version for connector definition (UI contract)
- Stability: Only incremented when input/output parameters change
- Scope: Bonita Studio connector configuration compatibility
- Example: get.def.version=1.4.0 (stable)
Implementation Version ({connector}.impl.version)
- Purpose: Tracks project version and implementation changes
- Value: Always set to ${project.version} from POM
- Scope: Internal logic, bug fixes, feature enhancements, New featues
- Example: get.impl.version=1.5.0-SNAPSHOT (tracks POM version)
Versioning Rules
Increment definition version when:
- β Adding new parameters
- β Removing parameters
- β Changing parameter types
- β Changing output parameter schema
Do NOT increment definition version for:
- β Internal logic improvements
- β Bug fixes
- β Performance optimizations
Always increment implementation version (via project version) for:
- β Any code change
- β Bug fixes
- β New features
- β Dependency updates
In order to create a new release:
- On the release branch, make sure to update the pom version (remove the -SNAPSHOT)
- Run the release action, set the version to release as parameter. The release will be published to Maven Central.
- Update the
masterbranch with the next SNAPSHOT version.
Once this is done, update the Bonita marketplace repository with the new version of the connector.
We would love you to contribute, pull requests are welcome! Please see the CONTRIBUTING.md for more information.
The sources and documentation in this project are released under the GPLv2 License