Releases: conductor-oss/javascript-sdk
v2.4.1
✅ Project Structure Aligned with Logical Layers
This release reorganizes the SDK around clear logical layers, isolating OpenAPI-generated code from SDK abstractions and streamlining tests. Functionality, build behavior, and public APIs remain unchanged for end users; all changes are internal structure, imports/exports, and test layout.
🛠 Improvements
- All generated code is now isolated under src/open-api/generated, with manual rewrites, extensions, and export control layered in src/open-api as a cohesive OpenAPI layer.
- SDK abstractions previously under orkes, core, task, and common have been reorganized into sdk/clients, sdk/createConductorClient, sdk/generators, and sdk/builders, reflecting their actual responsibilities.
- Monolithic files have been split into helper modules and shared type definitions, placed at appropriate levels based on reuse, improving readability and maintainability.
- Import and export paths were updated to match the new structure, without changing public APIs, runtime behavior, or build output for end users.
- The v5-only test folder was removed; tests are now colocated with domain-specific code, and version-specific selection is handled via environment variables and updated package.json test scripts.
What's Changed
- Refactor project structure according to actual logical layers by @DmitryBorisov-sm in #93
Full Changelog: v2.4.0...v2.4.1
v2.4.1-beta
📣 Project Structure Aligned with Logical Layers
This release reorganizes the SDK around clear logical layers, isolating OpenAPI-generated code from SDK abstractions and streamlining tests. Functionality, build behavior, and public APIs remain unchanged for end users; all changes are internal structure, imports/exports, and test layout.
🛠 Improvements
- All generated code is now isolated under src/open-api/generated, with manual rewrites, extensions, and export control layered in src/open-api as a cohesive OpenAPI layer.
- SDK abstractions previously under orkes, core, task, and common have been reorganized into sdk/clients, sdk/createConductorClient, sdk/generators, and sdk/builders, reflecting their actual responsibilities.
- Monolithic files have been split into helper modules and shared type definitions, placed at appropriate levels based on reuse, improving readability and maintainability.
- Import and export paths were updated to match the new structure, without changing public APIs, runtime behavior, or build output for end users.
- The v5-only test folder was removed; tests are now colocated with domain-specific code, and version-specific selection is handled via environment variables and updated package.json test scripts.
What's Changed
- Refactor project structure according to actual logical layers by @DmitryBorisov-sm in #93
Full Changelog: v2.4.0...v2.4.1-beta
v2.4.0
📣 Application Client Introduced
This release expands the JavaScript SDK with a dedicated ApplicationClient, making it easier to manage applications end-to-end and ensuring the ServiceRegistryClient is properly exposed from the public API.
✨ New Features
- Introduced ApplicationClient for managing applications through the SDK
- Added ApplicationClient documentation with usage guidance and examples
🐞 Bug Fixes
- Included missing export for ServiceRegistryClient
What's Changed
- Add ApplicationClient (with tests and docs) by @DmitryBorisov-sm in #92
Full Changelog: v2.3.0...v2.4.0
v2.3.0
📣 Event Client Introduced
This release expands the JavaScript SDK with native support for event-driven capabilities, enabling clients to work directly with events and handlers through a dedicated API.
✨ New Features
- Introduced EventClient for interacting with events
- Added methods to publish events and fetch event handlers
- Included TypeScript definitions and basic usage examples
What's Changed
- Add EventClient by @DmitryBorisov-sm in #90
- Update package.json version (2.3.0) by @DmitryBorisov-sm in #91
Full Changelog: v2.2.1...v2.3.0
v2.2.1
🚨 Backward compatibility fix - Upgrade Recommended
Retained autogenerated methods that were previously accessible via the low-level client to ensure smooth migration for existing users.
⚠️ Deprecation Notice
Direct access to resources on the raw client object is deprecated. This functionality should be accessed through facade clients, which are manually written and officially supported. Deprecated methods will be removed in future versions.
What's Changed
- Hotfix: backward compatibility for old resource autogenerated methods by @DmitryBorisov-sm in #87
- update package.json library version (2.2.1) by @DmitryBorisov-sm in #88
Full Changelog: v2.2.0...v2.2.1
v2.2.0
🔍 Overview
This release focuses on modernizing the SDK architecture, improving Node.js performance and maintainability, and introducing several developer-experience enhancements — including optional tasks, event handler metadata, HTTP/2 support, and a complete refactor of the OpenAPI integration layer.
🧩 Highlights
-
Clients enhancements
• All clients now updated to the latest Orkes API version, ensuring full compatibility with new backend endpoints and structures.
• Added support for optional tasks in workflow definitions (isOptional: true), allowing workflows to continue even if specific tasks fail or are skipped.
• Event handlers now include description and tags fields to improve organization and discoverability. -
SDK Architecture Refactor
• Fully separated the custom SDK logic from the OpenAPI-generated layer, eliminating manual edits.
• Added HTTP/2 support for Node.js via Undici, while keeping native fetch for browser environments.
• Environment variables now automatically override config values (no useEnvVars flag needed).
• Added the ability to provide a custom fetch implementation, enabling compatibility with older Node.js versions.
• Simplified regeneration of OpenAPI services for future backend updates. -
Build & CI Improvements
• Migrated from Yarn v1 to npm, updated Jest, and added per-line test annotations in GitHub Actions.
• Expanded CI/CD matrix to cover Node.js 20, 22, and 24 (LTS releases).
• Introduced a retry mechanism for HTTP 429 (rate-limit) responses and improved test parallelization. -
Documentation & Generator Updates
• Switched to the openapi-ts code generator, resulting in cleaner, type-safe definitions and simplified maintenance.
• Updated documentation and examples to reflect the new environment-variable behavior, HTTP/2 support, and SDK structure.
• Fixed linter issues for consistent style compliance.
⚠️ Deprecation Notice
The SDK now marks several types and legacy APIs as deprecated. They remain available in this release but will be removed in the future versions. Migration is strongly recommended.
- Avoid using any Deprecated* types — replace them with their modern equivalents.
- Environment variables now override config by default, so the useEnvVars: true flag can be safely removed.
- Refer to the official documentation for detailed examples:
• README.md
• API Reference
What's Changed
- Add support to mark tasks optional by @DmitryBorisov-sm in #78
- Add description and tags fields to event handlers by @DmitryBorisov-sm in #79
- Refactor (rebuilt) top layer and OpenAPI layer code, enable HTTP/2 by @DmitryBorisov-sm in #80
- Migrate to npm, add new jest GH Action test annotations by @DmitryBorisov-sm in #81
- Separate unit, integration (v4/v5) tests; Run tests on Node 20, 22, 24; Add retry for HTTP 429 error by @DmitryBorisov-sm in #82
- Fix linter errors by @DmitryBorisov-sm in #84
- Update docs by @DmitryBorisov-sm in #85
- Switch to openapi-ts OpenApi layer code generator by @DmitryBorisov-sm in #86
Full Changelog: v2.1.5...v2.2.0
v2.1.5
What's Changed
- SDK Changes for API Orch by @shaileshpadave in #73
- Update ServiceRegistry test by @shaileshpadave in #74
- update versions and fix build issues: node, ts, eslint, typedoc, jest by @DmitryBorisov-sm in #76
- Add support for asyncComplete flag in http task by @DmitryBorisov-sm in #77
New Contributors
- @shaileshpadave made their first contribution in #73
- @DmitryBorisov-sm made their first contribution in #76
Full Changelog: v2.1.4...v2.1.5
v2.1.4
What's Changed
- Unify environment variable usage. by @jmigueprieto in #71
Full Changelog: v2.1.3...v2.1.4
v2.1.3
What's Changed
- Add
testWorkflowtoWorkflowResourceServiceby @jmigueprieto in #70
New Contributors
- @jmigueprieto made their first contribution in #70
Full Changelog: v2.1.2...v2.1.3