@camunda8/sdk 8.7.24 → 8.7.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +30 -18
- package/dist/c8/index.d.ts +57 -17
- package/dist/c8/index.js +221 -58
- package/dist/c8/index.js.map +1 -1
- package/dist/c8/lib/C8Dto.d.ts +52 -103
- package/dist/c8/lib/C8Dto.js +6 -8
- package/dist/c8/lib/C8Dto.js.map +1 -1
- package/dist/c8/lib/C8DtoInternal.d.ts +53 -0
- package/dist/c8/lib/C8DtoInternal.js +17 -0
- package/dist/c8/lib/C8DtoInternal.js.map +1 -0
- package/dist/c8/lib/CamundaJobWorker.d.ts +7 -1
- package/dist/c8/lib/CamundaJobWorker.js +7 -0
- package/dist/c8/lib/CamundaJobWorker.js.map +1 -1
- package/dist/c8/lib/CamundaRestClient.d.ts +15 -14
- package/dist/c8/lib/CamundaRestClient.js.map +1 -1
- package/dist/dto/schema.d.ts +11322 -0
- package/dist/dto/schema.js +7 -0
- package/dist/dto/schema.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/GotHooks.js +5 -3
- package/dist/lib/GotHooks.js.map +1 -1
- package/dist/lib/ZeebeGrpcAddressUtils.js +1 -1
- package/dist/lib/ZeebeGrpcAddressUtils.js.map +1 -1
- package/dist/zeebe/lib/stringifyVariables.js +5 -1
- package/dist/zeebe/lib/stringifyVariables.js.map +1 -1
- package/package.json +1 -1
- package/smoke-test/smoke-test.js +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,29 @@
|
|
|
1
|
+
## [8.7.26](https://github.com/camunda/camunda-8-js-sdk/compare/v8.7.25...v8.7.26) (2025-07-30)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **docs:** adjust variable names for cookie auth ([a162005](https://github.com/camunda/camunda-8-js-sdk/commit/a162005e98cd03fc02021f96788f139a332c3f67))
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* add ability to override caching of clients. fixes [#575](https://github.com/camunda/camunda-8-js-sdk/issues/575) ([d9c24c5](https://github.com/camunda/camunda-8-js-sdk/commit/d9c24c5bde8d71eded2544dd7bcbc78f8d6dcf2f))
|
|
12
|
+
* add close() method to Rest Job Worker. Fixes [#571](https://github.com/camunda/camunda-8-js-sdk/issues/571) ([da239fb](https://github.com/camunda/camunda-8-js-sdk/commit/da239fb1e1d313798ae74ef7794ecc72e755449d))
|
|
13
|
+
* allow configuration of default Camunda8 client caching behaviour ([97d2a45](https://github.com/camunda/camunda-8-js-sdk/commit/97d2a45dfa19162cdfcda95fbe008882af00abcd))
|
|
14
|
+
|
|
15
|
+
## [8.7.25](https://github.com/camunda/camunda-8-js-sdk/compare/v8.7.24...v8.7.25) (2025-07-29)
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
### Bug Fixes
|
|
19
|
+
|
|
20
|
+
* export SearchUsersRequest type ([5c44ffe](https://github.com/camunda/camunda-8-js-sdk/commit/5c44ffe8074e3899df847710ec95a64477d9d61b))
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
### Features
|
|
24
|
+
|
|
25
|
+
* export Camunda Rest Types. fixes [#564](https://github.com/camunda/camunda-8-js-sdk/issues/564) ([b4b0d53](https://github.com/camunda/camunda-8-js-sdk/commit/b4b0d53522513622f0db1f96de62906d2bbaff80))
|
|
26
|
+
|
|
1
27
|
## [8.7.24](https://github.com/camunda/camunda-8-js-sdk/compare/v8.7.23...v8.7.24) (2025-07-25)
|
|
2
28
|
|
|
3
29
|
|
package/README.md
CHANGED
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
|
|
5
5
|
[](https://opensource.org/licenses/Apache-2.0)
|
|
6
6
|
|
|
7
|
-
Full API Docs
|
|
7
|
+
[Full API Docs](https://camunda.github.io/camunda-8-js-sdk/).
|
|
8
8
|
|
|
9
9
|
This is the official Camunda 8 JavaScript SDK. It is written in TypeScript and runs on Node.js. See why [this does not run in a web browser](https://github.com/camunda/camunda-8-js-sdk/issues/79).
|
|
10
10
|
|
|
11
|
-
See the
|
|
11
|
+
See the [Getting Started Example](https://docs.camunda.io/docs/next/guides/getting-started-example/) in the Camunda Docs for a quick start.
|
|
12
12
|
|
|
13
13
|
## What does "supported" mean?
|
|
14
14
|
|
|
@@ -32,15 +32,23 @@ npm i @camunda8/sdk
|
|
|
32
32
|
|
|
33
33
|
## Usage
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
The functionality of Camunda 8 is exposed via dedicated clients for the component APIs. The recommended API client for Camunda 8.8 is the Orchestration Cluster API, using the `CamundaRestClient`.
|
|
36
36
|
|
|
37
37
|
```typescript
|
|
38
38
|
import { Camunda8 } from '@camunda8/sdk'
|
|
39
39
|
|
|
40
|
+
// Optional: Import types for CamundaRestClient requests and responses
|
|
41
|
+
import type { CamundaRestTypes} from '@camunda8/sdk'
|
|
42
|
+
|
|
40
43
|
const c8 = new Camunda8()
|
|
41
|
-
|
|
44
|
+
|
|
45
|
+
// Camunda 8 Orchestration API - recommended API from 8.8.0
|
|
46
|
+
const restClient = c8.getCamundaRestClient()
|
|
47
|
+
|
|
48
|
+
// Zeebe gRPC client - not recommended for new users
|
|
42
49
|
const zeebe = c8.getZeebeGrpcApiClient()
|
|
43
|
-
|
|
50
|
+
|
|
51
|
+
// Camunda v1 REST API clients
|
|
44
52
|
const operate = c8.getOperateApiClient()
|
|
45
53
|
const optimize = c8.getOptimizeApiClient()
|
|
46
54
|
const tasklist = c8.getTasklistApiClient()
|
|
@@ -58,9 +66,9 @@ Any configuration passed in to the `Camunda8` constructor is merged over any con
|
|
|
58
66
|
|
|
59
67
|
## A note on how int64 is handled in the JavaScript SDK
|
|
60
68
|
|
|
61
|
-
Entity keys in Camunda 8 are stored and represented as `int64` numbers. The range of `int64` extends to numbers that cannot be represented by the JavaScript `number` type. To deal with this, `int64` keys are serialised by the SDK to the JavaScript `string` type. See [this issue](https://github.com/camunda/camunda-8-js-sdk/issues/78) for more details.
|
|
69
|
+
Entity keys in Camunda 8.6 and earlier are stored and represented as `int64` numbers. The range of `int64` extends to numbers that cannot be represented by the JavaScript `number` type. To deal with this, `int64` keys are serialised by the SDK to the JavaScript `string` type. See [this issue](https://github.com/camunda/camunda-8-js-sdk/issues/78) for more details.
|
|
62
70
|
|
|
63
|
-
For `int64` values whose type is not known ahead of time, such as job variables, you can pass an annotated data transfer object (DTO) to decode them reliably. If no DTO is specified, the default behavior of the SDK is to serialise all numbers to JavaScript `number`, and to throw an exception if a number value is detected at a runtime that cannot be accurately represented as the JavaScript `number` type (that is, a value greater than 2^53-1).
|
|
71
|
+
For `int64` values whose type is not known ahead of time, such as job variables, you can pass an annotated data transfer object (DTO) to decode them reliably. See the section on [Process Variable Typing](#process-variable-typing). If no DTO is specified, the default behavior of the SDK is to serialise all numbers to JavaScript `number`, and to throw an exception if a number value is detected at a runtime that cannot be accurately represented as the JavaScript `number` type (that is, a value greater than 2^53-1).
|
|
64
72
|
|
|
65
73
|
## Authorization
|
|
66
74
|
|
|
@@ -140,9 +148,9 @@ To use cookie auth, set the following value:
|
|
|
140
148
|
CAMUNDA_AUTH_STRATEGY=COOKIE
|
|
141
149
|
|
|
142
150
|
# Optional configurable values - these are the defaults
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
151
|
+
CAMUNDA_COOKIE_AUTH_URL=http://localhost:8080/api/login
|
|
152
|
+
CAMUNDA_COOKIE_AUTH_USERNAME=demo
|
|
153
|
+
CAMUNDA_COOKIE_AUTH_PASSWORD=demo
|
|
146
154
|
```
|
|
147
155
|
|
|
148
156
|
### Bearer Token Auth
|
|
@@ -206,6 +214,16 @@ CAMUNDA_CUSTOM_PRIVATE_KEY_PATH # path to mTLS (client-side) key
|
|
|
206
214
|
|
|
207
215
|
## Connection configuration examples
|
|
208
216
|
|
|
217
|
+
### Camunda 8 Run 8.8
|
|
218
|
+
|
|
219
|
+
This is the configuration for [Camunda 8 Run](https://developers.camunda.com/install-camunda-8/) - a local Camunda 8 instance that is the best way to get started.
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
export ZEEBE_REST_ADDRESS='http://localhost:8080'
|
|
223
|
+
export ZEEBE_GRPC_ADDRESS='grpc://localhost:26500'
|
|
224
|
+
export CAMUNDA_AUTH_STRATEGY=NONE
|
|
225
|
+
```
|
|
226
|
+
|
|
209
227
|
### Self-Managed
|
|
210
228
|
|
|
211
229
|
This is the complete environment configuration needed to run against the Dockerised Self-Managed stack in the `docker` subdirectory:
|
|
@@ -226,9 +244,6 @@ export CAMUNDA_MODELER_BASE_URL='http://localhost:8070/api'
|
|
|
226
244
|
# Turn off the tenant ID, which may have been set by multi-tenant tests
|
|
227
245
|
# You can set this in a constructor config, or in the environment if running multi-tenant
|
|
228
246
|
export CAMUNDA_TENANT_ID=''
|
|
229
|
-
|
|
230
|
-
# TLS for gRPC is on by default. If the Zeebe broker is not secured by TLS, turn it off
|
|
231
|
-
export CAMUNDA_SECURE_CONNECTION=false
|
|
232
247
|
```
|
|
233
248
|
|
|
234
249
|
If you are using an OIDC that requires a `scope` parameter to be passed with the token request, set the following variable:
|
|
@@ -268,16 +283,13 @@ export ZEEBE_GRPC_ADDRESS='grpcs://5c34c0a7-7f29-4424-8414-125615f7a9b9.syd-1.ze
|
|
|
268
283
|
export ZEEBE_REST_ADDRESS='https://syd-1.zeebe.camunda.io/5c34c0a7-7f29-4424-8414-125615f7a9b9'
|
|
269
284
|
export ZEEBE_CLIENT_ID='yvvURO9TmBnP3zx4Xd8Ho6apgeiZTjn6'
|
|
270
285
|
export ZEEBE_CLIENT_SECRET='iJJu-SHgUtuJTTAMnMLdcb8WGF8s2mHfXhXutEwe8eSbLXn98vUpoxtuLk5uG0en'
|
|
271
|
-
|
|
286
|
+
|
|
272
287
|
export CAMUNDA_TASKLIST_BASE_URL='https://syd-1.tasklist.camunda.io/5c34c0a7-7f29-4424-8414-125615f7a9b9'
|
|
273
288
|
export CAMUNDA_OPTIMIZE_BASE_URL='https://syd-1.optimize.camunda.io/5c34c0a7-7f29-4424-8414-125615f7a9b9'
|
|
274
289
|
export CAMUNDA_OPERATE_BASE_URL='https://syd-1.operate.camunda.io/5c34c0a7-7f29-4424-8414-125615f7a9b9'
|
|
275
290
|
export CAMUNDA_OAUTH_URL='https://login.cloud.camunda.io/oauth/token'
|
|
276
291
|
export CAMUNDA_AUTH_STRATEGY='OAUTH'
|
|
277
292
|
|
|
278
|
-
# This is on by default, but we include it in case it got turned off for local tests
|
|
279
|
-
export CAMUNDA_SECURE_CONNECTION=true
|
|
280
|
-
|
|
281
293
|
# Admin Console and Modeler API Client
|
|
282
294
|
export CAMUNDA_CONSOLE_CLIENT_ID='e-JdgKfJy9hHSXzi'
|
|
283
295
|
export CAMUNDA_CONSOLE_CLIENT_SECRET='DT8Pe-ANC6e3Je_ptLyzZvBNS0aFwaIV'
|
|
@@ -298,7 +310,7 @@ You can supply a custom logger via the constructor. For example, to use the [Pin
|
|
|
298
310
|
```typescript
|
|
299
311
|
import pino from 'pino'
|
|
300
312
|
|
|
301
|
-
import { Camunda8 } from '
|
|
313
|
+
import { Camunda8 } from '@camunda8/sdk'
|
|
302
314
|
|
|
303
315
|
const level = process.env.CAMUNDA_LOG_LEVEL ?? 'trace'
|
|
304
316
|
const logger = pino({ level }) // Logging level controlled via the logging library
|
package/dist/c8/index.d.ts
CHANGED
|
@@ -8,6 +8,16 @@ import { TasklistApiClient } from '../tasklist';
|
|
|
8
8
|
import { ZeebeGrpcClient, ZeebeRestClient } from '../zeebe';
|
|
9
9
|
import { Logger } from './lib/C8Logger';
|
|
10
10
|
import { CamundaRestClient } from './lib/CamundaRestClient';
|
|
11
|
+
/** Options interface for client creation */
|
|
12
|
+
interface ClientOptions {
|
|
13
|
+
/** Whether to cache the client instance. Overrides global default if specified. */
|
|
14
|
+
cached?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/** Options interface for Camunda8 constructor */
|
|
17
|
+
interface Camunda8Options {
|
|
18
|
+
/** Default caching behavior for all client methods. Default: true */
|
|
19
|
+
defaultCached?: boolean;
|
|
20
|
+
}
|
|
11
21
|
/**
|
|
12
22
|
* A single point of configuration for all Camunda Platform 8 clients.
|
|
13
23
|
*
|
|
@@ -28,16 +38,19 @@ import { CamundaRestClient } from './lib/CamundaRestClient';
|
|
|
28
38
|
* ```
|
|
29
39
|
*/
|
|
30
40
|
export declare class Camunda8 {
|
|
31
|
-
private
|
|
32
|
-
private
|
|
33
|
-
private
|
|
34
|
-
private
|
|
35
|
-
private
|
|
36
|
-
private
|
|
37
|
-
private
|
|
41
|
+
private zeebeGrpcApiClients;
|
|
42
|
+
private camundaRestClients;
|
|
43
|
+
private operateApiClients;
|
|
44
|
+
private tasklistApiClients;
|
|
45
|
+
private optimizeApiClients;
|
|
46
|
+
private adminApiClients;
|
|
47
|
+
private modelerApiClients;
|
|
48
|
+
private zeebeRestClients;
|
|
49
|
+
private createdClients;
|
|
50
|
+
private __apiClientCreationListener?;
|
|
51
|
+
private defaultCached;
|
|
38
52
|
private configuration;
|
|
39
53
|
private oAuthProvider;
|
|
40
|
-
private camundaRestClient?;
|
|
41
54
|
log: Logger;
|
|
42
55
|
/**
|
|
43
56
|
* All constructor parameters for configuration are optional. If no configuration is provided, the SDK will use environment variables to configure itself.
|
|
@@ -55,44 +68,71 @@ export declare class Camunda8 {
|
|
|
55
68
|
* a preconfigured auth strategy. This configuration parameter is provided for advanced use-cases.
|
|
56
69
|
**/
|
|
57
70
|
oAuthProvider?: IHeadersProvider;
|
|
58
|
-
}
|
|
71
|
+
},
|
|
72
|
+
/**
|
|
73
|
+
* Optional global configuration for the Camunda8 instance.
|
|
74
|
+
*/
|
|
75
|
+
options?: Camunda8Options);
|
|
76
|
+
/**
|
|
77
|
+
* @internal
|
|
78
|
+
* Private hook for framework integration. Not part of public API.
|
|
79
|
+
* Subject to change without notice. Use at your own risk.
|
|
80
|
+
*/
|
|
81
|
+
private __registerApiClientCreationListener;
|
|
82
|
+
/**
|
|
83
|
+
* Creates a deterministic cache key from configuration object
|
|
84
|
+
*/
|
|
85
|
+
private createConfigKey;
|
|
86
|
+
/**
|
|
87
|
+
* Closes all created API clients and clears all caches
|
|
88
|
+
*/
|
|
89
|
+
closeAllClients(): Promise<void>;
|
|
59
90
|
/**
|
|
60
91
|
* Returns a client for the "Operate REST API"
|
|
61
92
|
* See: https://docs.camunda.io/docs/apis-tools/operate-api/overview/
|
|
62
93
|
*/
|
|
63
|
-
getOperateApiClient(config?: Camunda8ClientConfiguration): OperateApiClient;
|
|
94
|
+
getOperateApiClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): OperateApiClient;
|
|
95
|
+
private createNewOperateApiClient;
|
|
64
96
|
/**
|
|
65
97
|
* Returns a client for the Administration REST API
|
|
66
98
|
* See: https://docs.camunda.io/docs/apis-tools/administration-api/administration-api-reference/
|
|
67
99
|
*/
|
|
68
|
-
getAdminApiClient(config?: Camunda8ClientConfiguration): AdminApiClient;
|
|
100
|
+
getAdminApiClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): AdminApiClient;
|
|
101
|
+
private createNewAdminApiClient;
|
|
69
102
|
/**
|
|
70
103
|
* Returns a client for the Web Modeler REST API
|
|
71
104
|
* See: https://docs.camunda.io/docs/apis-tools/web-modeler-api/overview/
|
|
72
105
|
*/
|
|
73
|
-
getModelerApiClient(config?: Camunda8ClientConfiguration): ModelerApiClient;
|
|
106
|
+
getModelerApiClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): ModelerApiClient;
|
|
107
|
+
private createNewModelerApiClient;
|
|
74
108
|
/**
|
|
75
109
|
* Returns a client for the Optimize REST API
|
|
76
110
|
* See: https://docs.camunda.io/docs/apis-tools/optimize-api/overview/
|
|
77
111
|
*/
|
|
78
|
-
getOptimizeApiClient(config?: Camunda8ClientConfiguration): OptimizeApiClient;
|
|
112
|
+
getOptimizeApiClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): OptimizeApiClient;
|
|
113
|
+
private createNewOptimizeApiClient;
|
|
79
114
|
/**
|
|
80
115
|
* Returns a client for the Tasklist REST API
|
|
81
116
|
* See: https://docs.camunda.io/docs/apis-tools/tasklist-api-rest/tasklist-api-rest-overview/
|
|
82
117
|
*/
|
|
83
|
-
getTasklistApiClient(config?: Camunda8ClientConfiguration): TasklistApiClient;
|
|
118
|
+
getTasklistApiClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): TasklistApiClient;
|
|
119
|
+
private createNewTasklistApiClient;
|
|
84
120
|
/**
|
|
85
121
|
* Returns a client for the Zeebe gRPC API
|
|
86
122
|
* See: https://docs.camunda.io/docs/apis-tools/zeebe-api/overview/
|
|
87
123
|
*/
|
|
88
|
-
getZeebeGrpcApiClient(config?: Camunda8ClientConfiguration): ZeebeGrpcClient;
|
|
124
|
+
getZeebeGrpcApiClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): ZeebeGrpcClient;
|
|
125
|
+
private createNewZeebeGrpcClient;
|
|
89
126
|
/**
|
|
90
127
|
* @deprecated from 8.6.0. Please use getCamundaRestClient() instead.
|
|
91
128
|
*/
|
|
92
|
-
getZeebeRestClient(config?: Camunda8ClientConfiguration): ZeebeRestClient;
|
|
129
|
+
getZeebeRestClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): ZeebeRestClient;
|
|
130
|
+
private createNewZeebeRestClient;
|
|
93
131
|
/**
|
|
94
132
|
* Returns a client for the Camunda 8 REST API
|
|
95
133
|
* See: https://docs.camunda.io/docs/apis-tools/camunda-api-rest/camunda-api-rest-overview/
|
|
96
134
|
*/
|
|
97
|
-
getCamundaRestClient(config?: Camunda8ClientConfiguration): CamundaRestClient;
|
|
135
|
+
getCamundaRestClient(config?: Camunda8ClientConfiguration, options?: ClientOptions): CamundaRestClient;
|
|
136
|
+
private createNewCamundaRestClient;
|
|
98
137
|
}
|
|
138
|
+
export {};
|
package/dist/c8/index.js
CHANGED
|
@@ -39,118 +39,281 @@ class Camunda8 {
|
|
|
39
39
|
/**
|
|
40
40
|
* Optional explicit overrides. With no configuration, the SDK will use environment variables to configure itself.
|
|
41
41
|
*/
|
|
42
|
-
config = {}
|
|
42
|
+
config = {},
|
|
43
|
+
/**
|
|
44
|
+
* Optional global configuration for the Camunda8 instance.
|
|
45
|
+
*/
|
|
46
|
+
options = { defaultCached: true }) {
|
|
47
|
+
// Enhanced configuration-based caching (new functionality)
|
|
48
|
+
this.zeebeGrpcApiClients = new Map();
|
|
49
|
+
this.camundaRestClients = new Map();
|
|
50
|
+
this.operateApiClients = new Map();
|
|
51
|
+
this.tasklistApiClients = new Map();
|
|
52
|
+
this.optimizeApiClients = new Map();
|
|
53
|
+
this.adminApiClients = new Map();
|
|
54
|
+
this.modelerApiClients = new Map();
|
|
55
|
+
this.zeebeRestClients = new Map();
|
|
56
|
+
// Client tracking for lifecycle management
|
|
57
|
+
this.createdClients = new Set();
|
|
43
58
|
this.configuration =
|
|
44
59
|
lib_1.CamundaEnvironmentConfigurator.mergeConfigWithEnvironment(config);
|
|
45
60
|
// Allow custom oAuthProvider to be passed in.
|
|
46
61
|
// See: https://github.com/camunda/camunda-8-js-sdk/issues/448
|
|
47
62
|
this.oAuthProvider =
|
|
48
63
|
config.oAuthProvider ?? (0, lib_1.constructOAuthProvider)(this.configuration);
|
|
64
|
+
this.defaultCached = options.defaultCached ?? true;
|
|
49
65
|
this.log = (0, C8Logger_1.getLogger)(config);
|
|
50
66
|
this.log.debug('Camunda8 SDK initialized');
|
|
51
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* @internal
|
|
70
|
+
* Private hook for framework integration. Not part of public API.
|
|
71
|
+
* Subject to change without notice. Use at your own risk.
|
|
72
|
+
*/
|
|
73
|
+
// @ts-expect-error - Intentionally unused, accessed via type bypass in frameworks
|
|
74
|
+
__registerApiClientCreationListener(callback) {
|
|
75
|
+
this.__apiClientCreationListener = callback;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Creates a deterministic cache key from configuration object
|
|
79
|
+
*/
|
|
80
|
+
createConfigKey(config) {
|
|
81
|
+
return JSON.stringify(config, Object.keys(config).sort());
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Closes all created API clients and clears all caches
|
|
85
|
+
*/
|
|
86
|
+
async closeAllClients() {
|
|
87
|
+
const promises = Array.from(this.createdClients).map((client) => {
|
|
88
|
+
if (client instanceof zeebe_1.ZeebeGrpcClient) {
|
|
89
|
+
return client
|
|
90
|
+
.close()
|
|
91
|
+
.catch((err) => console.warn('Failed to close ZeebeGrpc client:', err));
|
|
92
|
+
}
|
|
93
|
+
if (client instanceof CamundaRestClient_1.CamundaRestClient) {
|
|
94
|
+
client.stopWorkers();
|
|
95
|
+
}
|
|
96
|
+
return Promise.resolve();
|
|
97
|
+
});
|
|
98
|
+
await Promise.all(promises);
|
|
99
|
+
// Clear all tracking
|
|
100
|
+
this.createdClients.clear();
|
|
101
|
+
// Clear all configuration-based caches
|
|
102
|
+
this.zeebeGrpcApiClients.clear();
|
|
103
|
+
this.camundaRestClients.clear();
|
|
104
|
+
this.operateApiClients.clear();
|
|
105
|
+
this.tasklistApiClients.clear();
|
|
106
|
+
this.optimizeApiClients.clear();
|
|
107
|
+
this.adminApiClients.clear();
|
|
108
|
+
this.modelerApiClients.clear();
|
|
109
|
+
this.zeebeRestClients.clear();
|
|
110
|
+
}
|
|
52
111
|
/**
|
|
53
112
|
* Returns a client for the "Operate REST API"
|
|
54
113
|
* See: https://docs.camunda.io/docs/apis-tools/operate-api/overview/
|
|
55
114
|
*/
|
|
56
|
-
getOperateApiClient(config = {}) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
oAuthProvider: this.oAuthProvider,
|
|
61
|
-
});
|
|
115
|
+
getOperateApiClient(config = {}, options = {}) {
|
|
116
|
+
const { cached = this.defaultCached } = options;
|
|
117
|
+
if (!cached) {
|
|
118
|
+
return this.createNewOperateApiClient(config);
|
|
62
119
|
}
|
|
63
|
-
|
|
120
|
+
const configKey = this.createConfigKey(config);
|
|
121
|
+
if (this.operateApiClients.has(configKey)) {
|
|
122
|
+
return this.operateApiClients.get(configKey);
|
|
123
|
+
}
|
|
124
|
+
const client = this.createNewOperateApiClient(config);
|
|
125
|
+
this.operateApiClients.set(configKey, client);
|
|
126
|
+
return client;
|
|
127
|
+
}
|
|
128
|
+
createNewOperateApiClient(config) {
|
|
129
|
+
const client = new operate_1.OperateApiClient({
|
|
130
|
+
config: { ...this.configuration, ...config },
|
|
131
|
+
oAuthProvider: this.oAuthProvider,
|
|
132
|
+
});
|
|
133
|
+
this.createdClients.add(client);
|
|
134
|
+
this.__apiClientCreationListener?.(client);
|
|
135
|
+
return client;
|
|
64
136
|
}
|
|
65
137
|
/**
|
|
66
138
|
* Returns a client for the Administration REST API
|
|
67
139
|
* See: https://docs.camunda.io/docs/apis-tools/administration-api/administration-api-reference/
|
|
68
140
|
*/
|
|
69
|
-
getAdminApiClient(config = {}) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
141
|
+
getAdminApiClient(config = {}, options = {}) {
|
|
142
|
+
const { cached = this.defaultCached } = options;
|
|
143
|
+
if (!cached) {
|
|
144
|
+
return this.createNewAdminApiClient(config);
|
|
145
|
+
}
|
|
146
|
+
const configKey = this.createConfigKey(config);
|
|
147
|
+
if (this.adminApiClients.has(configKey)) {
|
|
148
|
+
return this.adminApiClients.get(configKey);
|
|
75
149
|
}
|
|
76
|
-
|
|
150
|
+
const client = this.createNewAdminApiClient(config);
|
|
151
|
+
this.adminApiClients.set(configKey, client);
|
|
152
|
+
return client;
|
|
153
|
+
}
|
|
154
|
+
createNewAdminApiClient(config) {
|
|
155
|
+
const client = new admin_1.AdminApiClient({
|
|
156
|
+
config: { ...this.configuration, ...config },
|
|
157
|
+
oAuthProvider: this.oAuthProvider,
|
|
158
|
+
});
|
|
159
|
+
this.createdClients.add(client);
|
|
160
|
+
this.__apiClientCreationListener?.(client);
|
|
161
|
+
return client;
|
|
77
162
|
}
|
|
78
163
|
/**
|
|
79
164
|
* Returns a client for the Web Modeler REST API
|
|
80
165
|
* See: https://docs.camunda.io/docs/apis-tools/web-modeler-api/overview/
|
|
81
166
|
*/
|
|
82
|
-
getModelerApiClient(config = {}) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
167
|
+
getModelerApiClient(config = {}, options = {}) {
|
|
168
|
+
const { cached = this.defaultCached } = options;
|
|
169
|
+
if (!cached) {
|
|
170
|
+
return this.createNewModelerApiClient(config);
|
|
171
|
+
}
|
|
172
|
+
const configKey = this.createConfigKey(config);
|
|
173
|
+
if (this.modelerApiClients.has(configKey)) {
|
|
174
|
+
return this.modelerApiClients.get(configKey);
|
|
88
175
|
}
|
|
89
|
-
|
|
176
|
+
const client = this.createNewModelerApiClient(config);
|
|
177
|
+
this.modelerApiClients.set(configKey, client);
|
|
178
|
+
return client;
|
|
179
|
+
}
|
|
180
|
+
createNewModelerApiClient(config) {
|
|
181
|
+
const client = new modeler_1.ModelerApiClient({
|
|
182
|
+
config: { ...this.configuration, ...config },
|
|
183
|
+
oAuthProvider: this.oAuthProvider,
|
|
184
|
+
});
|
|
185
|
+
this.createdClients.add(client);
|
|
186
|
+
this.__apiClientCreationListener?.(client);
|
|
187
|
+
return client;
|
|
90
188
|
}
|
|
91
189
|
/**
|
|
92
190
|
* Returns a client for the Optimize REST API
|
|
93
191
|
* See: https://docs.camunda.io/docs/apis-tools/optimize-api/overview/
|
|
94
192
|
*/
|
|
95
|
-
getOptimizeApiClient(config = {}) {
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
193
|
+
getOptimizeApiClient(config = {}, options = {}) {
|
|
194
|
+
const { cached = this.defaultCached } = options;
|
|
195
|
+
if (!cached) {
|
|
196
|
+
return this.createNewOptimizeApiClient(config);
|
|
197
|
+
}
|
|
198
|
+
const configKey = this.createConfigKey(config);
|
|
199
|
+
if (this.optimizeApiClients.has(configKey)) {
|
|
200
|
+
return this.optimizeApiClients.get(configKey);
|
|
101
201
|
}
|
|
102
|
-
|
|
202
|
+
const client = this.createNewOptimizeApiClient(config);
|
|
203
|
+
this.optimizeApiClients.set(configKey, client);
|
|
204
|
+
return client;
|
|
205
|
+
}
|
|
206
|
+
createNewOptimizeApiClient(config) {
|
|
207
|
+
const client = new optimize_1.OptimizeApiClient({
|
|
208
|
+
config: { ...this.configuration, ...config },
|
|
209
|
+
oAuthProvider: this.oAuthProvider,
|
|
210
|
+
});
|
|
211
|
+
this.createdClients.add(client);
|
|
212
|
+
this.__apiClientCreationListener?.(client);
|
|
213
|
+
return client;
|
|
103
214
|
}
|
|
104
215
|
/**
|
|
105
216
|
* Returns a client for the Tasklist REST API
|
|
106
217
|
* See: https://docs.camunda.io/docs/apis-tools/tasklist-api-rest/tasklist-api-rest-overview/
|
|
107
218
|
*/
|
|
108
|
-
getTasklistApiClient(config = {}) {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
219
|
+
getTasklistApiClient(config = {}, options = {}) {
|
|
220
|
+
const { cached = this.defaultCached } = options;
|
|
221
|
+
if (!cached) {
|
|
222
|
+
return this.createNewTasklistApiClient(config);
|
|
223
|
+
}
|
|
224
|
+
const configKey = this.createConfigKey(config);
|
|
225
|
+
if (this.tasklistApiClients.has(configKey)) {
|
|
226
|
+
return this.tasklistApiClients.get(configKey);
|
|
114
227
|
}
|
|
115
|
-
|
|
228
|
+
const client = this.createNewTasklistApiClient(config);
|
|
229
|
+
this.tasklistApiClients.set(configKey, client);
|
|
230
|
+
return client;
|
|
231
|
+
}
|
|
232
|
+
createNewTasklistApiClient(config) {
|
|
233
|
+
const client = new tasklist_1.TasklistApiClient({
|
|
234
|
+
config: { ...this.configuration, ...config },
|
|
235
|
+
oAuthProvider: this.oAuthProvider,
|
|
236
|
+
});
|
|
237
|
+
this.createdClients.add(client);
|
|
238
|
+
this.__apiClientCreationListener?.(client);
|
|
239
|
+
return client;
|
|
116
240
|
}
|
|
117
241
|
/**
|
|
118
242
|
* Returns a client for the Zeebe gRPC API
|
|
119
243
|
* See: https://docs.camunda.io/docs/apis-tools/zeebe-api/overview/
|
|
120
244
|
*/
|
|
121
|
-
getZeebeGrpcApiClient(config = {}) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
oAuthProvider: this.oAuthProvider,
|
|
126
|
-
});
|
|
245
|
+
getZeebeGrpcApiClient(config = {}, options = {}) {
|
|
246
|
+
const { cached = this.defaultCached } = options;
|
|
247
|
+
if (!cached) {
|
|
248
|
+
return this.createNewZeebeGrpcClient(config);
|
|
127
249
|
}
|
|
128
|
-
|
|
250
|
+
const configKey = this.createConfigKey(config);
|
|
251
|
+
if (this.zeebeGrpcApiClients.has(configKey)) {
|
|
252
|
+
return this.zeebeGrpcApiClients.get(configKey);
|
|
253
|
+
}
|
|
254
|
+
const client = this.createNewZeebeGrpcClient(config);
|
|
255
|
+
this.zeebeGrpcApiClients.set(configKey, client);
|
|
256
|
+
return client;
|
|
257
|
+
}
|
|
258
|
+
createNewZeebeGrpcClient(config) {
|
|
259
|
+
const client = new zeebe_1.ZeebeGrpcClient({
|
|
260
|
+
config: { ...this.configuration, ...config },
|
|
261
|
+
oAuthProvider: this.oAuthProvider,
|
|
262
|
+
});
|
|
263
|
+
this.createdClients.add(client);
|
|
264
|
+
this.__apiClientCreationListener?.(client);
|
|
265
|
+
return client;
|
|
129
266
|
}
|
|
130
267
|
/**
|
|
131
268
|
* @deprecated from 8.6.0. Please use getCamundaRestClient() instead.
|
|
132
269
|
*/
|
|
133
|
-
getZeebeRestClient(config = {}) {
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
oAuthProvider: this.oAuthProvider,
|
|
138
|
-
});
|
|
270
|
+
getZeebeRestClient(config = {}, options = {}) {
|
|
271
|
+
const { cached = this.defaultCached } = options;
|
|
272
|
+
if (!cached) {
|
|
273
|
+
return this.createNewZeebeRestClient(config);
|
|
139
274
|
}
|
|
140
|
-
|
|
275
|
+
const configKey = this.createConfigKey(config);
|
|
276
|
+
if (this.zeebeRestClients.has(configKey)) {
|
|
277
|
+
return this.zeebeRestClients.get(configKey);
|
|
278
|
+
}
|
|
279
|
+
const client = this.createNewZeebeRestClient(config);
|
|
280
|
+
this.zeebeRestClients.set(configKey, client);
|
|
281
|
+
return client;
|
|
282
|
+
}
|
|
283
|
+
createNewZeebeRestClient(config) {
|
|
284
|
+
const client = new zeebe_1.ZeebeRestClient({
|
|
285
|
+
config: { ...this.configuration, ...config },
|
|
286
|
+
oAuthProvider: this.oAuthProvider,
|
|
287
|
+
});
|
|
288
|
+
this.createdClients.add(client);
|
|
289
|
+
this.__apiClientCreationListener?.(client);
|
|
290
|
+
return client;
|
|
141
291
|
}
|
|
142
292
|
/**
|
|
143
293
|
* Returns a client for the Camunda 8 REST API
|
|
144
294
|
* See: https://docs.camunda.io/docs/apis-tools/camunda-api-rest/camunda-api-rest-overview/
|
|
145
295
|
*/
|
|
146
|
-
getCamundaRestClient(config = {}) {
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
296
|
+
getCamundaRestClient(config = {}, options = {}) {
|
|
297
|
+
const { cached = this.defaultCached } = options;
|
|
298
|
+
if (!cached) {
|
|
299
|
+
return this.createNewCamundaRestClient(config);
|
|
300
|
+
}
|
|
301
|
+
const configKey = this.createConfigKey(config);
|
|
302
|
+
if (this.camundaRestClients.has(configKey)) {
|
|
303
|
+
return this.camundaRestClients.get(configKey);
|
|
304
|
+
}
|
|
305
|
+
const client = this.createNewCamundaRestClient(config);
|
|
306
|
+
this.camundaRestClients.set(configKey, client);
|
|
307
|
+
return client;
|
|
308
|
+
}
|
|
309
|
+
createNewCamundaRestClient(config) {
|
|
310
|
+
const client = new CamundaRestClient_1.CamundaRestClient({
|
|
311
|
+
config: { ...this.configuration, ...config },
|
|
312
|
+
oAuthProvider: this.oAuthProvider,
|
|
313
|
+
});
|
|
314
|
+
this.createdClients.add(client);
|
|
315
|
+
this.__apiClientCreationListener?.(client);
|
|
316
|
+
return client;
|
|
154
317
|
}
|
|
155
318
|
}
|
|
156
319
|
exports.Camunda8 = Camunda8;
|
package/dist/c8/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/c8/index.ts"],"names":[],"mappings":";;;AAAA,oCAAyC;AACzC,gCAKe;AACf,wCAA6C;AAE7C,wCAA6C;AAC7C,0CAA+C;AAC/C,0CAA+C;AAC/C,oCAA2D;AAE3D,6CAAkD;AAClD,+DAA2D;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/c8/index.ts"],"names":[],"mappings":"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"}
|