Releases: conductor-oss/go-sdk
v1.9.0
📣 TLS/SSL configuration, Schema Management & Application Validation
This release focuses on adding robust TLS/SSL configuration (including mTLS and certificate pinning), a new SchemaClient for schema lifecycle management, and centralized argument validation for ApplicationClient methods.
✨ New Features
-
TLS/SSL configuration:
• Support for self-signed certificates with optional SHA-256 thumbprint pinning.
• Ability to trust custom CAs (from file or PEM bytes), with a hybrid mode to combine system and custom CAs.
• Full mutual TLS (mTLS) support via client certificates.
• Fluent configuration via With* options and environment variables:• CONDUCTOR_TLS_CA_CERT • CONDUCTOR_TLS_ALLOW_SELF_SIGNED • CONDUCTOR_TLS_PINNED_THUMBPRINTS • CONDUCTOR_TLS_CLIENT_CERT / CONDUCTOR_TLS_CLIENT_KEY • CONDUCTOR_TLS_INSECURE_SKIP_VERIFY (for dev-only scenarios) -
Added new SchemaClient with methods to:
• GetAll() – list all schemas (with optional short format).
• CreateSchema() – create one or more schemas, with optional “new version” behavior.
• GetSchema() – retrieve a schema by name (latest version).
• GetSchemaVersion() – retrieve a concrete schema version.
• DeleteSchema() – delete all versions of a schema.
• DeleteSchemaVersion() – delete a specific version.
🛠 Improvements
-
New reusable validation package: sdk/validation (fluent API for parameter checks).
-
Added validation for 13 ApplicationClient methods, including: AddRoleToApplicationUser, RemoveRoleFromApplicationUser, CreateAccessKey, DeleteAccessKey, ToggleAccessKeyStatus, GetAccessKeys, GetAppByAccessKeyId, GetApplication, DeleteApplication, GetTagsForApplication, PutTagForApplication, DeleteTagForApplication, UpdateApplication
-
Behavior:
• All validation errors are logged before returning.
• Methods return nil response + validation error when parameters are invalid.
• Validation runs before any HTTP request is made.
• Multiple validation issues are aggregated and returned together for easier debugging. -
Security hardening for TLS:
• Enforces minimum TLS 1.2.
• Validates certificate expiration, KeyUsage, and hostname.
• Provides clear warnings when using insecure options (e.g., skip verification).
What's Changed
- feat: added validation for application client arguments by @ArtemIstomin-sm in #235
- feat: added tls cert and test by @ArtemIstomin-sm in #234
- feat: added schema client and test by @ArtemIstomin-sm in #237
Full Changelog: v1.8.0...v1.8.1
v1.8.0
📣 New API-Gateway Client & API Corrections
This release improves Go SDK stability, strengthens error-safety across HTTP flows, corrects ApplicationClient method signatures, introduces reliable test cleanup, and adds a new fully functional API-Gateway client for managing gateway services and routing workflows.
✨ New Features
-
Added new API-Gateway client with:
• CRUD operations for API Gateway services
• Authentication configuration management
• Route mapping from HTTP endpoints to workflows
• Example usage and a unified ApiGateway interface -
Added new response models for ApplicationClient:
• CreateAccessKeyResponse - now contains Id and Secret fields for access key creation
• DeleteApplicationResponse - now contains Message field for deletion confirmation
🛠 Improvements
- Added automatic test retry mechanism (--rerun-fails=3, rerun report support)
- Added retry logic for workflow search tests and backward compatibility tests
- Added retry summaries to CI output for easier debugging
- Simplified test structure, removed redundant error handling, reduced complexity in rate-limit and helper tests
- Replaced log.Fatal() with proper require assertions for safer test execution
- Improved test cleanup:
• Added cleanup for executor tests
• Added cleanup for workflow test data
• Enhanced utilities in test/testdata/util.go - Updated ApplicationClient integration tests
- Updated documentation:
• Integration test API documentation
• Migration guide for all ApplicationClient signature changes
🐞 Bug Fixes
- Added nil-response checks in executor_with_context.go to prevent panics on timeouts/cancellations
- Fixed inconsistent ApplicationClient method signatures:
• AddRoleToApplicationUser: Removed unused interface{} return value
• CreateAccessKey: Changed return type from *rbac.ConductorApplication to *rbac.CreateAccessKeyResponse
• DeleteApplication: Changed return type from interface{} to *rbac.DeleteApplicationResponse
• GetAppByAccessKeyId: Changed return type from interface{} to *rbac.ConductorApplication
• RemoveRoleFromApplicationUser: Removed unused interface{} return value
• GetAppByAccessKeyId: Changed return type from interface{} to *rbac.ConductorApplication
• ToggleAccessKeyStatus: Changed return type from interface{} to *rbac.AccessKeyResponse - Fixed test validation gaps by adding strict nil checks and improved assertions
- Fixed inconsistencies in application API response models and integration tests
What's Changed
- fix: test stability improvements by @ArtemIstomin-sm in #230
- bugfix/avoid-panic-http-resp by @ArtemIstomin-sm in #231
- fix: added cleanUp for workflow test data by @ArtemIstomin-sm in #233
- bugfix/app client methods by @ArtemIstomin-sm in #229
- API-Gateway client by @mp-orkes in #226
Full Changelog: v1.7.0...v1.8.0
v1.7.0
v1.6.2
🔍 Overview
This release introduces two new Conductor system tasks (GET_WORKFLOW and YIELD), major Workflow API enhancements with new endpoints and a migration guide for deprecated methods, plus internal quality improvements to enhance reliability and maintainability.
✅ Issues Resolved
Add Support for get_workflow task type
🧩 Highlights
-
New System Tasks:
- Added Conductor system tasks GET_WORKFLOW and YIELD.
• GET_WORKFLOW — retrieves workflow details by workflowId with optional task inclusion.
• YIELD — temporarily pauses workflow execution until resumed via sync/async signals.
- Added Conductor system tasks GET_WORKFLOW and YIELD.
-
Workflow API Enhancements:
-
New Endpoints:
• GetExecutionStatusTaskList — allows retrieving workflow execution tasks with pagination and optional filtering by task type. This enables efficient task inspection for large workflows.
• UpdateWorkflowState — introduces a way to update workflow variables dynamically during execution, giving developers real-time control without restarting workflows. -
Improved Client Interface:
Streamlined method naming and consistent parameter patterns across Workflow and Bulk clients. This reduces ambiguity between sync/async operations and aligns naming with other SDKs. -
Enhanced Models:
Introduced new data models for task list summaries and updated workflow-related types to support the new APIs and improve compatibility with Orkes Conductor v5. -
Documentation & Examples:
• A new Migration Guide (docs/migration_guide.md) explains how to migrate from deprecated methods (listed below) to the new API surface.
• Updated examples demonstrate dynamic workflow management, lifecycle handling, and runtime variable updates.
-
⚠️ Deprecation Notice
Legacy methods such as PauseWorkflow, ResumeWorkflow, and ResetWorkflow (and their Bulk equivalents) are deprecated in favor of concise, standardized names (Pause, Resume, Reset). Deprecated APIs remain functional.
What's Changed
- feat: added GET_WORKFLOW task by @ArtemIstomin-sm in #222
- feat: added yield task by @ArtemIstomin-sm in #223
- feature/workflow-client-enhance by @ArtemIstomin-sm in #218
- constants in parse funcs, better names in ci, minor doc update about a type by @chrishagglund-ship-it in #224
Full Changelog: v1.6.1...v1.6.2
v1.6.1
Overview
This release introduces new helper methods for Workflow and WorkflowRun (status checks and task utilities), adds tag support for event handlers, and fixes SWITCH workflow registration errors when default or case branches are empty.
✅ Issues Resolved:
Switch case does not properly handle empty tasks list (#217)
What's Changed
- feat: split tests by cluster version by @ArtemIstomin-sm in #214
- feat: added helpers methods for Workflow and WorkflowRun by @ArtemIstomin-sm in #215
- feature/handler-tags by @ArtemIstomin-sm in #220
- fix/marshalling err by @ArtemIstomin-sm in #221
Full Changelog: v1.6.0...v1.6.1
v1.6.0
What's New
- Added HTTP Poll Task to the Go SDK #182
- Introduced API Orchestration feature in the SDK #174
- Added Service Registry functionality #202
- Added remaining Workflow endpoints and corresponding tests #188
- Added tests to cover resource methods #177
Improvements
- Removed legacy Swagger Codegen resources and replaced with cleaner, maintainable code #176
- Added unified logger interface with Zap adapter #204
- Added description field to
EventHandler#205 - Added workflow rate-limit configuration #208
- Added worker entity with generic support #206
Backward Compatibility
CI / Tooling
- Added
golangci-lint"new-only" check to CI pipeline #203 - Improved CI tests: avoided unnecessary sleeps and standardized test data #207
- Changed integration + backward compatibility test server configuration in CI #210
- Consolidated action configuration for integration + backward compatibility tests; now runs on PR-to-main and main merges #211
Full Changelog: v1.5.4...v1.6.0
v1.5.4
What's Changed
- batch poll timeout configuration by @jmigueprieto in #173
Full Changelog: v1.5.3...v1.5.4
v1.5.3
What's Changed
- Added
OverwriteTagstoConductorWorkflowby @jmigueprieto in #172
Full Changelog: v1.5.2...v1.5.3
v1.5.2
What's Changed
- Log worker shutdown by @jmigueprieto in #166
- Added logic to add Tags to workflow by @shaileshpadave in #167
- Added http timeout for client by @shaileshpadave in #169
- Updated README by @shaileshpadave in #170
- Fixes in
ConductorWorkflowtag usage by @jmigueprieto in #171
New Contributors
- @shaileshpadave made their first contribution in #167
Full Changelog: v1.5.1...v1.5.2
v1.5.1
What's Changed
- Test fixes now that server has been upgraded by @jmigueprieto in #162
- Added
FAIL_ON_RUNNINGIdempotency Strategy by @jmigueprieto in #163 - Unify environment variable usage by @jmigueprieto in #164
- Task Runner graceful shutdown by @jmigueprieto in #165
Full Changelog: v1.5.0...v1.5.1