Skip to content

Releases: conductor-oss/go-sdk

v1.9.0

24 Nov 16:40
e492277

Choose a tag to compare

📣 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

Full Changelog: v1.8.0...v1.8.1

v1.8.0

13 Nov 12:01
8b9a0f3

Choose a tag to compare

📣 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

Full Changelog: v1.7.0...v1.8.0

v1.7.0

27 Oct 19:24
d11f9d9

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.6.2...v1.7.0

v1.6.2

24 Oct 09:51
3f1cbc0

Choose a tag to compare

🔍 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.
  • 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

Full Changelog: v1.6.1...v1.6.2

v1.6.1

09 Oct 09:15
2a6ebbd

Choose a tag to compare

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

Full Changelog: v1.6.0...v1.6.1

v1.6.0

25 Aug 17:39
75c8e90

Choose a tag to compare

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

  • Multiple fixes and improvements to maintain 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

09 Apr 19:18
3e9d96f

Choose a tag to compare

What's Changed

Full Changelog: v1.5.3...v1.5.4

v1.5.3

03 Apr 22:46
28f35c3

Choose a tag to compare

What's Changed

Full Changelog: v1.5.2...v1.5.3

v1.5.2

03 Apr 21:55
a9a2694

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v1.5.1...v1.5.2

v1.5.1

03 Feb 14:56
504d773

Choose a tag to compare

What's Changed

Full Changelog: v1.5.0...v1.5.1