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