@camunda/connectors-element-templates 1.0.18 → 1.0.19

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.
Files changed (98) hide show
  1. package/package.json +1 -1
  2. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +2 -2
  3. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +2 -2
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +2 -2
  5. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +2 -2
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +2 -2
  7. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +22 -22
  8. package/src/element-templates/agenticai-aiagent-job-worker.json +240 -240
  9. package/src/element-templates/agenticai-aiagent-outbound-connector.json +3735 -3735
  10. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +550 -550
  11. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +733 -733
  12. package/src/element-templates/asana-connector.json +116 -116
  13. package/src/element-templates/automation-anywhere-outbound-connector.json +665 -665
  14. package/src/element-templates/aws-bedrock-outbound-connector.json +431 -431
  15. package/src/element-templates/aws-dynamodb-outbound-connector.json +1337 -1337
  16. package/src/element-templates/aws-eventbridge-connector-boundary.json +37 -37
  17. package/src/element-templates/aws-eventbridge-connector-intermediate.json +77 -77
  18. package/src/element-templates/aws-eventbridge-connector-message-start.json +21 -21
  19. package/src/element-templates/aws-eventbridge-connector-receive.json +6 -6
  20. package/src/element-templates/aws-eventbridge-outbound-connector.json +229 -229
  21. package/src/element-templates/aws-lambda-outbound-connector.json +278 -278
  22. package/src/element-templates/aws-s3-outbound-connector.json +244 -244
  23. package/src/element-templates/aws-sagemaker-outbound-connector.json +58 -58
  24. package/src/element-templates/aws-sns-inbound-boundary.json +224 -224
  25. package/src/element-templates/aws-sns-inbound-intermediate.json +329 -329
  26. package/src/element-templates/aws-sns-inbound-message-start.json +357 -357
  27. package/src/element-templates/aws-sns-inbound-start-event.json +135 -135
  28. package/src/element-templates/aws-sns-outbound-connector.json +293 -293
  29. package/src/element-templates/aws-sqs-boundary-connector.json +890 -890
  30. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +529 -529
  31. package/src/element-templates/aws-sqs-outbound-connector.json +573 -573
  32. package/src/element-templates/aws-sqs-start-event-connector.json +408 -408
  33. package/src/element-templates/aws-sqs-start-message.json +488 -488
  34. package/src/element-templates/aws-textract-outbound-connector.json +275 -275
  35. package/src/element-templates/azure-blobstorage-outbound-connector.json +200 -200
  36. package/src/element-templates/azure-open-ai-connector.json +48 -48
  37. package/src/element-templates/blue-prism-connector.json +101 -101
  38. package/src/element-templates/csv-outbound-connector.json +44 -44
  39. package/src/element-templates/easy-post-connector.json +216 -216
  40. package/src/element-templates/email-inbound-connector-boundary.json +37 -37
  41. package/src/element-templates/email-inbound-connector-intermediate.json +37 -37
  42. package/src/element-templates/email-message-start-event-connector.json +63 -63
  43. package/src/element-templates/email-outbound-connector.json +902 -902
  44. package/src/element-templates/embeddings-vector-database-outbound-connector.json +520 -520
  45. package/src/element-templates/github-connector.json +10272 -10272
  46. package/src/element-templates/github-webhook-connector-intermediate.json +41 -41
  47. package/src/element-templates/github-webhook-connector-message-start.json +19 -19
  48. package/src/element-templates/github-webhook-connector-start-event.json +54 -54
  49. package/src/element-templates/gitlab-connector.json +2854 -2854
  50. package/src/element-templates/google-cloud-storage-outbound-connector.json +200 -200
  51. package/src/element-templates/google-drive-outbound-connector.json +1139 -1139
  52. package/src/element-templates/google-gemini-outbound-connector.json +122 -122
  53. package/src/element-templates/google-maps-platform-connector.json +94 -94
  54. package/src/element-templates/google-sheets-outbound-connector.json +2455 -2455
  55. package/src/element-templates/graphql-outbound-connector.json +1814 -1814
  56. package/src/element-templates/http-json-connector.json +2221 -2221
  57. package/src/element-templates/http-polling-boundary-catch-event-connector.json +766 -766
  58. package/src/element-templates/http-polling-connector.json +1510 -1510
  59. package/src/element-templates/hubspot-outbound-connector.json +65 -65
  60. package/src/element-templates/hugging-face-connector.json +122 -122
  61. package/src/element-templates/jdbc-outbound-connector.json +67 -67
  62. package/src/element-templates/kafka-inbound-connector-boundary.json +130 -130
  63. package/src/element-templates/kafka-inbound-connector-intermediate.json +1371 -1371
  64. package/src/element-templates/kafka-inbound-connector-start-message.json +166 -166
  65. package/src/element-templates/kafka-outbound-connector.json +250 -250
  66. package/src/element-templates/microsoft-office365-mail-connector.json +77 -77
  67. package/src/element-templates/microsoft-teams-outbound-connector.json +4124 -4124
  68. package/src/element-templates/openai-connector.json +199 -199
  69. package/src/element-templates/operate-connector.json +144 -144
  70. package/src/element-templates/power-automate-connector.json +62 -62
  71. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +454 -454
  72. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +895 -895
  73. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +458 -458
  74. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +610 -610
  75. package/src/element-templates/rabbitmq-outbound-connector.json +662 -662
  76. package/src/element-templates/rpa-connector.json +5 -5
  77. package/src/element-templates/salesforce-connector.json +60 -60
  78. package/src/element-templates/sendgrid-outbound-connector.json +1301 -1301
  79. package/src/element-templates/servicenow-connector.json +6 -6
  80. package/src/element-templates/servicenow-incident-connector.json +6 -6
  81. package/src/element-templates/slack-inbound-boundary.json +305 -305
  82. package/src/element-templates/slack-inbound-intermediate.json +363 -363
  83. package/src/element-templates/slack-inbound-message-start.json +286 -286
  84. package/src/element-templates/slack-inbound-receive.json +23 -23
  85. package/src/element-templates/slack-inbound-start-event.json +301 -301
  86. package/src/element-templates/slack-outbound-connector.json +2249 -2249
  87. package/src/element-templates/twilio-connector.json +366 -366
  88. package/src/element-templates/twilio-webhook-boundary-connector.json +37 -37
  89. package/src/element-templates/twilio-webhook-connector.json +36 -36
  90. package/src/element-templates/twilio-webhook-intermediate-connector.json +59 -59
  91. package/src/element-templates/twilio-webhook-message-start-connector.json +42 -42
  92. package/src/element-templates/uipath-connector.json +54 -54
  93. package/src/element-templates/webhook-connector-boundary.json +1238 -1238
  94. package/src/element-templates/webhook-connector-intermediate.json +1254 -1254
  95. package/src/element-templates/webhook-connector-receive.json +61 -61
  96. package/src/element-templates/webhook-connector-start-event.json +1419 -1419
  97. package/src/element-templates/webhook-connector-start-message.json +1289 -1289
  98. package/src/element-templates/whatsapp-connector.json +21 -21
@@ -1,20 +1,11 @@
1
1
  [
2
2
  {
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
- "name": "Webhook Start Event Connector",
4
+ "name": "Webhook connector",
5
5
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
6
+ "version": 5,
6
7
  "description": "Configure webhook to receive callbacks",
7
- "keywords": [
8
- "receive webhook",
9
- "HTTP trigger",
10
- "event received",
11
- "inbound event",
12
- "webhook trigger",
13
- "HTTP callback",
14
- "listen for event"
15
- ],
16
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
17
- "version": 14,
8
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
18
9
  "category": {
19
10
  "id": "connectors",
20
11
  "name": "Connectors"
@@ -23,9 +14,6 @@
23
14
  "elementType": {
24
15
  "value": "bpmn:StartEvent"
25
16
  },
26
- "engines": {
27
- "camunda": "^8.3"
28
- },
29
17
  "groups": [
30
18
  {
31
19
  "id": "endpoint",
@@ -39,48 +27,38 @@
39
27
  "id": "authorization",
40
28
  "label": "Authorization"
41
29
  },
42
- {
43
- "id": "webhookResponse",
44
- "label": "Webhook response"
45
- },
46
30
  {
47
31
  "id": "activation",
48
32
  "label": "Activation"
49
33
  },
50
34
  {
51
- "id": "synchronousResponse",
52
- "label": "Response mode"
53
- },
54
- {
55
- "id": "deduplication",
56
- "label": "Deduplication",
57
- "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
58
- },
59
- {
60
- "id": "output",
61
- "label": "Output mapping"
35
+ "id": "variable-mapping",
36
+ "label": "Variable mapping"
62
37
  }
63
38
  ],
64
39
  "properties": [
65
40
  {
41
+ "type": "Hidden",
66
42
  "value": "io.camunda:webhook:1",
67
43
  "binding": {
68
- "name": "inbound.type",
69
- "type": "zeebe:property"
70
- },
71
- "type": "Hidden"
44
+ "type": "zeebe:property",
45
+ "name": "inbound.type"
46
+ }
72
47
  },
73
48
  {
74
- "id": "inbound.method",
49
+ "type": "Hidden",
50
+ "value": "ConfigurableInboundWebhook",
51
+ "binding": {
52
+ "type": "zeebe:property",
53
+ "name": "inbound.subtype"
54
+ }
55
+ },
56
+ {
57
+ "id": "webhookMethod",
75
58
  "label": "Webhook method",
59
+ "group": "endpoint",
76
60
  "description": "Select HTTP method",
77
- "optional": false,
78
61
  "value": "any",
79
- "group": "endpoint",
80
- "binding": {
81
- "name": "inbound.method",
82
- "type": "zeebe:property"
83
- },
84
62
  "type": "Dropdown",
85
63
  "choices": [
86
64
  {
@@ -88,53 +66,46 @@
88
66
  "value": "any"
89
67
  },
90
68
  {
91
- "name": "GET",
69
+ "name": "Get",
92
70
  "value": "get"
93
71
  },
94
72
  {
95
- "name": "POST",
73
+ "name": "Post",
96
74
  "value": "post"
97
75
  },
98
76
  {
99
- "name": "PUT",
77
+ "name": "Put",
100
78
  "value": "put"
101
79
  },
102
80
  {
103
- "name": "DELETE",
81
+ "name": "Delete",
104
82
  "value": "delete"
105
83
  }
106
- ]
84
+ ],
85
+ "binding": {
86
+ "type": "zeebe:property",
87
+ "name": "inbound.method"
88
+ }
107
89
  },
108
90
  {
109
- "id": "inbound.context",
110
91
  "label": "Webhook ID",
111
- "description": "The webhook ID is a part of the URL",
112
- "optional": false,
113
- "constraints": {
114
- "notEmpty": true,
115
- "pattern": {
116
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
117
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
118
- }
119
- },
92
+ "type": "String",
120
93
  "group": "endpoint",
121
94
  "binding": {
122
- "name": "inbound.context",
123
- "type": "zeebe:property"
95
+ "type": "zeebe:property",
96
+ "name": "inbound.context"
124
97
  },
125
- "type": "String"
98
+ "description": "The webhook ID is a part of the URL",
99
+ "constraints": {
100
+ "notEmpty": true
101
+ }
126
102
  },
127
103
  {
128
- "id": "inbound.shouldValidateHmac",
104
+ "id": "shouldValidateHmac",
129
105
  "label": "HMAC authentication",
130
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
131
- "optional": false,
132
- "value": "disabled",
133
106
  "group": "authentication",
134
- "binding": {
135
- "name": "inbound.shouldValidateHmac",
136
- "type": "zeebe:property"
137
- },
107
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
108
+ "value": "disabled",
138
109
  "type": "Dropdown",
139
110
  "choices": [
140
111
  {
@@ -145,60 +116,47 @@
145
116
  "name": "Disabled",
146
117
  "value": "disabled"
147
118
  }
148
- ]
119
+ ],
120
+ "binding": {
121
+ "type": "zeebe:property",
122
+ "name": "inbound.shouldValidateHmac"
123
+ }
149
124
  },
150
125
  {
151
- "id": "inbound.hmacSecret",
152
126
  "label": "HMAC secret key",
153
127
  "description": "Shared secret key",
154
- "optional": true,
155
- "feel": "optional",
128
+ "type": "String",
156
129
  "group": "authentication",
130
+ "optional": true,
157
131
  "binding": {
158
- "name": "inbound.hmacSecret",
159
- "type": "zeebe:property"
132
+ "type": "zeebe:property",
133
+ "name": "inbound.hmacSecret"
160
134
  },
161
135
  "condition": {
162
- "property": "inbound.shouldValidateHmac",
163
- "equals": "enabled",
164
- "type": "simple"
165
- },
166
- "type": "String"
136
+ "property": "shouldValidateHmac",
137
+ "equals": "enabled"
138
+ }
167
139
  },
168
140
  {
169
- "id": "inbound.hmacHeader",
170
141
  "label": "HMAC header",
171
142
  "description": "Name of header attribute that will contain the HMAC value",
172
- "optional": true,
173
- "feel": "optional",
143
+ "type": "String",
174
144
  "group": "authentication",
145
+ "optional": true,
175
146
  "binding": {
176
- "name": "inbound.hmacHeader",
177
- "type": "zeebe:property"
147
+ "type": "zeebe:property",
148
+ "name": "inbound.hmacHeader"
178
149
  },
179
150
  "condition": {
180
- "property": "inbound.shouldValidateHmac",
181
- "equals": "enabled",
182
- "type": "simple"
183
- },
184
- "type": "String"
151
+ "property": "shouldValidateHmac",
152
+ "equals": "enabled"
153
+ }
185
154
  },
186
155
  {
187
- "id": "inbound.hmacAlgorithm",
188
156
  "label": "HMAC algorithm",
157
+ "group": "authentication",
189
158
  "description": "Choose HMAC algorithm",
190
- "optional": false,
191
159
  "value": "sha_256",
192
- "group": "authentication",
193
- "binding": {
194
- "name": "inbound.hmacAlgorithm",
195
- "type": "zeebe:property"
196
- },
197
- "condition": {
198
- "property": "inbound.shouldValidateHmac",
199
- "equals": "enabled",
200
- "type": "simple"
201
- },
202
160
  "type": "Dropdown",
203
161
  "choices": [
204
162
  {
@@ -213,358 +171,231 @@
213
171
  "name": "SHA-512",
214
172
  "value": "sha_512"
215
173
  }
216
- ]
174
+ ],
175
+ "binding": {
176
+ "type": "zeebe:property",
177
+ "name": "inbound.hmacAlgorithm"
178
+ },
179
+ "condition": {
180
+ "property": "shouldValidateHmac",
181
+ "equals": "enabled"
182
+ }
217
183
  },
218
184
  {
219
- "id": "inbound.hmacScopes",
220
185
  "label": "HMAC scopes",
221
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
222
- "optional": true,
223
- "feel": "required",
224
186
  "group": "authentication",
187
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
188
+ "feel": "required",
189
+ "type": "String",
190
+ "optional": true,
225
191
  "binding": {
226
- "name": "inbound.hmacScopes",
227
- "type": "zeebe:property"
192
+ "type": "zeebe:property",
193
+ "name": "inbound.hmacScopes"
228
194
  },
229
195
  "condition": {
230
- "property": "inbound.shouldValidateHmac",
231
- "equals": "enabled",
232
- "type": "simple"
233
- },
234
- "type": "String"
196
+ "property": "shouldValidateHmac",
197
+ "equals": "enabled"
198
+ }
235
199
  },
236
200
  {
237
- "id": "inbound.auth.type",
201
+ "id": "authorizationType",
238
202
  "label": "Authorization type",
239
- "description": "Choose the authorization type",
240
- "value": "NONE",
241
203
  "group": "authorization",
242
- "binding": {
243
- "name": "inbound.auth.type",
244
- "type": "zeebe:property"
245
- },
204
+ "description": "Choose the authorization type.",
205
+ "value": "NONE",
246
206
  "type": "Dropdown",
247
207
  "choices": [
248
208
  {
249
209
  "name": "None",
250
210
  "value": "NONE"
251
211
  },
212
+ {
213
+ "name": "JWT",
214
+ "value": "JWT"
215
+ },
252
216
  {
253
217
  "name": "Basic",
254
218
  "value": "BASIC"
255
219
  },
256
220
  {
257
- "name": "API key",
221
+ "name": "API Key",
258
222
  "value": "APIKEY"
259
- },
260
- {
261
- "name": "JWT",
262
- "value": "JWT"
263
223
  }
264
- ]
224
+ ],
225
+ "binding": {
226
+ "type": "zeebe:property",
227
+ "name": "inbound.auth.type"
228
+ }
265
229
  },
266
230
  {
267
- "id": "inbound.auth.username",
268
- "label": "Username",
269
- "description": "Username for basic authentication",
270
- "optional": false,
271
- "feel": "optional",
231
+ "label": "JWK url",
232
+ "description": "Well-known url of JWKs",
233
+ "type": "String",
272
234
  "group": "authorization",
235
+ "feel": "optional",
236
+ "optional": true,
273
237
  "binding": {
274
- "name": "inbound.auth.username",
275
- "type": "zeebe:property"
238
+ "type": "zeebe:property",
239
+ "name": "inbound.auth.jwt.jwkUrl"
276
240
  },
277
241
  "condition": {
278
- "property": "inbound.auth.type",
279
- "equals": "BASIC",
280
- "type": "simple"
281
- },
282
- "type": "String"
242
+ "property": "authorizationType",
243
+ "equals": "JWT"
244
+ }
283
245
  },
284
246
  {
285
- "id": "inbound.auth.password",
286
- "label": "Password",
287
- "description": "Password for basic authentication",
288
- "optional": false,
289
- "feel": "optional",
247
+ "label": "JWT role property expression",
248
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
249
+ "type": "String",
290
250
  "group": "authorization",
251
+ "feel": "required",
252
+ "optional": true,
291
253
  "binding": {
292
- "name": "inbound.auth.password",
293
- "type": "zeebe:property"
254
+ "type": "zeebe:property",
255
+ "name": "inbound.auth.jwt.permissionsExpression"
294
256
  },
295
257
  "condition": {
296
- "property": "inbound.auth.type",
297
- "equals": "BASIC",
298
- "type": "simple"
299
- },
300
- "type": "String"
301
- },
258
+ "property": "authorizationType",
259
+ "equals": "JWT"
260
+ }
261
+ },
302
262
  {
303
- "id": "inbound.auth.apiKey",
304
- "label": "API key",
305
- "description": "Expected API key",
306
- "optional": false,
307
- "feel": "optional",
263
+ "label": "Required roles",
264
+ "description": "List of roles to test JWT roles against",
265
+ "type": "String",
308
266
  "group": "authorization",
267
+ "feel": "required",
268
+ "optional": true,
309
269
  "binding": {
310
- "name": "inbound.auth.apiKey",
311
- "type": "zeebe:property"
270
+ "type": "zeebe:property",
271
+ "name": "inbound.auth.jwt.requiredPermissions"
312
272
  },
313
273
  "condition": {
314
- "property": "inbound.auth.type",
315
- "equals": "APIKEY",
316
- "type": "simple"
317
- },
318
- "type": "String"
274
+ "property": "authorizationType",
275
+ "equals": "JWT"
276
+ }
319
277
  },
320
278
  {
321
- "id": "inbound.auth.apiKeyLocator",
322
- "label": "API key locator",
323
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
324
- "optional": false,
325
- "value": "=split(request.headers.authorization, \" \")[2]",
326
- "constraints": {
327
- "notEmpty": true
328
- },
329
- "feel": "required",
279
+ "label": "Username",
280
+ "description": "Username for basic authentication",
281
+ "type": "String",
330
282
  "group": "authorization",
283
+ "feel": "optional",
331
284
  "binding": {
332
- "name": "inbound.auth.apiKeyLocator",
333
- "type": "zeebe:property"
285
+ "type": "zeebe:property",
286
+ "name": "inbound.auth.username"
334
287
  },
335
288
  "condition": {
336
- "property": "inbound.auth.type",
337
- "equals": "APIKEY",
338
- "type": "simple"
289
+ "property": "authorizationType",
290
+ "equals": "BASIC"
339
291
  },
340
- "type": "String"
292
+ "constraints": {
293
+ "notEmpty": true
294
+ }
341
295
  },
342
296
  {
343
- "id": "inbound.auth.jwt.jwkUrl",
344
- "label": "JWK URL",
345
- "description": "Well-known URL of JWKs",
346
- "optional": false,
347
- "feel": "optional",
297
+ "label": "Password",
298
+ "description": "Password for basic authentication",
299
+ "type": "String",
348
300
  "group": "authorization",
301
+ "feel": "optional",
349
302
  "binding": {
350
- "name": "inbound.auth.jwt.jwkUrl",
351
- "type": "zeebe:property"
303
+ "type": "zeebe:property",
304
+ "name": "inbound.auth.password"
352
305
  },
353
306
  "condition": {
354
- "property": "inbound.auth.type",
355
- "equals": "JWT",
356
- "type": "simple"
307
+ "property": "authorizationType",
308
+ "equals": "BASIC"
357
309
  },
358
- "type": "String"
310
+ "constraints": {
311
+ "notEmpty": true
312
+ }
359
313
  },
360
314
  {
361
- "id": "inbound.auth.jwt.permissionsExpression",
362
- "label": "JWT role property expression",
363
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
364
- "optional": false,
365
- "feel": "required",
315
+ "label": "API Key",
316
+ "description": "Expected API key",
317
+ "type": "String",
366
318
  "group": "authorization",
319
+ "feel": "optional",
367
320
  "binding": {
368
- "name": "inbound.auth.jwt.permissionsExpression",
369
- "type": "zeebe:property"
321
+ "type": "zeebe:property",
322
+ "name": "inbound.auth.apiKey"
370
323
  },
371
324
  "condition": {
372
- "property": "inbound.auth.type",
373
- "equals": "JWT",
374
- "type": "simple"
325
+ "property": "authorizationType",
326
+ "equals": "APIKEY"
375
327
  },
376
- "type": "String"
328
+ "constraints": {
329
+ "notEmpty": true
330
+ }
377
331
  },
378
332
  {
379
- "id": "inbound.auth.jwt.requiredPermissions",
380
- "label": "Required roles",
381
- "description": "List of roles to test JWT roles against",
382
- "optional": false,
383
- "feel": "required",
333
+ "label": "API Key locator",
334
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
335
+ "type": "String",
384
336
  "group": "authorization",
337
+ "feel": "required",
385
338
  "binding": {
386
- "name": "inbound.auth.jwt.requiredPermissions",
387
- "type": "zeebe:property"
339
+ "type": "zeebe:property",
340
+ "name": "inbound.auth.apiKeyLocator"
388
341
  },
389
342
  "condition": {
390
- "property": "inbound.auth.type",
391
- "equals": "JWT",
392
- "type": "simple"
343
+ "property": "authorizationType",
344
+ "equals": "APIKEY"
393
345
  },
394
- "type": "String"
395
- },
396
- {
397
- "id": "inbound.responseExpression",
398
- "label": "Response expression",
399
- "description": "Expression used to generate the HTTP response",
400
- "optional": true,
401
- "feel": "required",
402
- "group": "webhookResponse",
403
- "binding": {
404
- "name": "inbound.responseExpression",
405
- "type": "zeebe:property"
346
+ "constraints": {
347
+ "notEmpty": true
406
348
  },
407
- "type": "Text"
349
+ "value": "=split(request.headers.authorization, \" \")[2]"
408
350
  },
409
351
  {
410
- "id": "inbound.verificationExpression",
411
- "label": "One time verification response expression",
412
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
413
- "optional": true,
352
+ "label": "Condition",
353
+ "type": "String",
354
+ "group": "activation",
414
355
  "feel": "required",
415
- "group": "webhookResponse",
416
- "binding": {
417
- "name": "inbound.verificationExpression",
418
- "type": "zeebe:property"
419
- },
420
- "type": "Text"
421
- },
422
- {
423
- "id": "activationCondition",
424
- "label": "Activation condition",
425
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
426
356
  "optional": true,
427
- "feel": "required",
428
- "group": "activation",
429
- "binding": {
430
- "name": "activationCondition",
431
- "type": "zeebe:property"
432
- },
433
- "type": "String"
434
- },
435
- {
436
- "id": "consumeUnmatchedEvents",
437
- "label": "Consume unmatched events",
438
- "value": true,
439
- "group": "activation",
440
- "binding": {
441
- "name": "consumeUnmatchedEvents",
442
- "type": "zeebe:property"
443
- },
444
- "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
445
- "type": "Boolean"
446
- },
447
- {
448
- "id": "synchronousResponse",
449
- "label": "Response mode",
450
- "description": "Synchronous or Asynchronous <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#response-mode\" target=\"_blank\">response handling</a>",
451
- "value": "false",
452
- "group": "synchronousResponse",
453
357
  "binding": {
454
- "name": "synchronousResponse",
455
- "type": "zeebe:property"
456
- },
457
- "tooltip": "Select synchronous to wait for the result of the correlation. This is either the result of the created process or the process instance key that matched the correlated message subscription. Select asynchronous to trigger the correlation and return immediately without waiting for a result. This affects the data available in the <a href=\"https://docs.camunda.io/docs/components/connectors/connectors/protocol/http-webhook/#use-the-correlation-object\">correlation</a> object for the response expression.",
458
- "type": "Dropdown",
459
- "choices": [
460
- {
461
- "name": "Asynchronous",
462
- "value": "false"
463
- },
464
- {
465
- "name": "Synchronous",
466
- "value": "true"
467
- }
468
- ]
469
- },
470
- {
471
- "id": "deduplicationModeManualFlag",
472
- "label": "Manual mode",
473
- "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
474
- "value": false,
475
- "group": "deduplication",
476
- "binding": {
477
- "name": "deduplicationModeManualFlag",
478
- "type": "zeebe:property"
479
- },
480
- "type": "Boolean"
481
- },
482
- {
483
- "id": "deduplicationId",
484
- "label": "Deduplication ID",
485
- "constraints": {
486
- "notEmpty": true,
487
- "pattern": {
488
- "value": "^[a-zA-Z0-9_-]+$",
489
- "message": "can only contain alphanumeric characters, dashes, and underscores"
490
- }
491
- },
492
- "group": "deduplication",
493
- "binding": {
494
- "name": "deduplicationId",
495
- "type": "zeebe:property"
496
- },
497
- "condition": {
498
- "property": "deduplicationModeManualFlag",
499
- "equals": true,
500
- "type": "simple"
501
- },
502
- "type": "String"
503
- },
504
- {
505
- "id": "deduplicationModeManual",
506
- "value": "MANUAL",
507
- "group": "deduplication",
508
- "binding": {
509
- "name": "deduplicationMode",
510
- "type": "zeebe:property"
511
- },
512
- "condition": {
513
- "property": "deduplicationId",
514
- "isActive": true,
515
- "type": "simple"
516
- },
517
- "type": "Hidden"
518
- },
519
- {
520
- "id": "deduplicationModeAuto",
521
- "value": "AUTO",
522
- "group": "deduplication",
523
- "binding": {
524
- "name": "deduplicationMode",
525
- "type": "zeebe:property"
526
- },
527
- "condition": {
528
- "property": "deduplicationId",
529
- "isActive": false,
530
- "type": "simple"
358
+ "type": "zeebe:property",
359
+ "name": "activationCondition"
531
360
  },
532
- "type": "Hidden"
361
+ "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
533
362
  },
534
363
  {
535
- "id": "resultVariable",
536
364
  "label": "Result variable",
537
- "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
538
- "group": "output",
365
+ "type": "String",
366
+ "group": "variable-mapping",
367
+ "optional": true,
539
368
  "binding": {
540
- "name": "resultVariable",
541
- "type": "zeebe:property"
369
+ "type": "zeebe:property",
370
+ "name": "resultVariable"
542
371
  },
543
- "type": "String"
372
+ "description": "Name of variable to store the result of the connector in"
544
373
  },
545
374
  {
546
- "id": "resultExpression",
547
375
  "label": "Result expression",
548
- "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
549
- "value": "{\n myRequestBody: request.body\n // Use FEEL to extract values, e.g.,:\n // myMessage: request.body.message\n}",
376
+ "type": "String",
377
+ "group": "variable-mapping",
550
378
  "feel": "required",
551
- "group": "output",
379
+ "optional": true,
552
380
  "binding": {
553
- "name": "resultExpression",
554
- "type": "zeebe:property"
381
+ "type": "zeebe:property",
382
+ "name": "resultExpression"
555
383
  },
556
- "type": "Text"
384
+ "description": "Expression to map the inbound payload to process variables"
557
385
  }
558
386
  ],
559
387
  "icon": {
560
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
388
+ "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
389
+ },
390
+ "engines": {
391
+ "camunda": "^8.2"
561
392
  }
562
393
  },
563
394
  {
564
395
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
565
- "name": "Webhook connector",
396
+ "name": "Webhook Start Event Connector",
566
397
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
567
- "version": 3,
398
+ "version": 8,
568
399
  "description": "Configure webhook to receive callbacks",
569
400
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
570
401
  "category": {
@@ -580,6 +411,14 @@
580
411
  "id": "endpoint",
581
412
  "label": "Webhook configuration"
582
413
  },
414
+ {
415
+ "id": "authentication",
416
+ "label": "Authentication"
417
+ },
418
+ {
419
+ "id": "authorization",
420
+ "label": "Authorization"
421
+ },
583
422
  {
584
423
  "id": "activation",
585
424
  "label": "Activation"
@@ -587,6 +426,10 @@
587
426
  {
588
427
  "id": "variable-mapping",
589
428
  "label": "Variable mapping"
429
+ },
430
+ {
431
+ "id": "webhookResponse",
432
+ "label": "Webhook response"
590
433
  }
591
434
  ],
592
435
  "properties": [
@@ -606,6 +449,40 @@
606
449
  "name": "inbound.subtype"
607
450
  }
608
451
  },
452
+ {
453
+ "id": "webhookMethod",
454
+ "label": "Webhook method",
455
+ "group": "endpoint",
456
+ "description": "Select HTTP method",
457
+ "value": "any",
458
+ "type": "Dropdown",
459
+ "choices": [
460
+ {
461
+ "name": "Any",
462
+ "value": "any"
463
+ },
464
+ {
465
+ "name": "Get",
466
+ "value": "get"
467
+ },
468
+ {
469
+ "name": "Post",
470
+ "value": "post"
471
+ },
472
+ {
473
+ "name": "Put",
474
+ "value": "put"
475
+ },
476
+ {
477
+ "name": "Delete",
478
+ "value": "delete"
479
+ }
480
+ ],
481
+ "binding": {
482
+ "type": "zeebe:property",
483
+ "name": "inbound.method"
484
+ }
485
+ },
609
486
  {
610
487
  "label": "Webhook ID",
611
488
  "type": "String",
@@ -622,7 +499,7 @@
622
499
  {
623
500
  "id": "shouldValidateHmac",
624
501
  "label": "HMAC authentication",
625
- "group": "endpoint",
502
+ "group": "authentication",
626
503
  "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
627
504
  "value": "disabled",
628
505
  "type": "Dropdown",
@@ -645,7 +522,7 @@
645
522
  "label": "HMAC secret key",
646
523
  "description": "Shared secret key",
647
524
  "type": "String",
648
- "group": "endpoint",
525
+ "group": "authentication",
649
526
  "optional": true,
650
527
  "binding": {
651
528
  "type": "zeebe:property",
@@ -660,7 +537,7 @@
660
537
  "label": "HMAC header",
661
538
  "description": "Name of header attribute that will contain the HMAC value",
662
539
  "type": "String",
663
- "group": "endpoint",
540
+ "group": "authentication",
664
541
  "optional": true,
665
542
  "binding": {
666
543
  "type": "zeebe:property",
@@ -673,7 +550,7 @@
673
550
  },
674
551
  {
675
552
  "label": "HMAC algorithm",
676
- "group": "endpoint",
553
+ "group": "authentication",
677
554
  "description": "Choose HMAC algorithm",
678
555
  "value": "sha_256",
679
556
  "type": "Dropdown",
@@ -700,6 +577,173 @@
700
577
  "equals": "enabled"
701
578
  }
702
579
  },
580
+ {
581
+ "label": "HMAC scopes",
582
+ "group": "authentication",
583
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
584
+ "feel": "required",
585
+ "type": "String",
586
+ "optional": true,
587
+ "binding": {
588
+ "type": "zeebe:property",
589
+ "name": "inbound.hmacScopes"
590
+ },
591
+ "condition": {
592
+ "property": "shouldValidateHmac",
593
+ "equals": "enabled"
594
+ }
595
+ },
596
+ {
597
+ "id": "authorizationType",
598
+ "label": "Authorization type",
599
+ "group": "authorization",
600
+ "description": "Choose the authorization type.",
601
+ "value": "NONE",
602
+ "type": "Dropdown",
603
+ "choices": [
604
+ {
605
+ "name": "None",
606
+ "value": "NONE"
607
+ },
608
+ {
609
+ "name": "JWT",
610
+ "value": "JWT"
611
+ },
612
+ {
613
+ "name": "Basic",
614
+ "value": "BASIC"
615
+ },
616
+ {
617
+ "name": "API Key",
618
+ "value": "APIKEY"
619
+ }
620
+ ],
621
+ "binding": {
622
+ "type": "zeebe:property",
623
+ "name": "inbound.auth.type"
624
+ }
625
+ },
626
+ {
627
+ "label": "JWK url",
628
+ "description": "Well-known url of JWKs",
629
+ "type": "String",
630
+ "group": "authorization",
631
+ "feel": "optional",
632
+ "optional": true,
633
+ "binding": {
634
+ "type": "zeebe:property",
635
+ "name": "inbound.auth.jwt.jwkUrl"
636
+ },
637
+ "condition": {
638
+ "property": "authorizationType",
639
+ "equals": "JWT"
640
+ }
641
+ },
642
+ {
643
+ "label": "JWT role property expression",
644
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
645
+ "type": "String",
646
+ "group": "authorization",
647
+ "feel": "required",
648
+ "optional": true,
649
+ "binding": {
650
+ "type": "zeebe:property",
651
+ "name": "inbound.auth.jwt.permissionsExpression"
652
+ },
653
+ "condition": {
654
+ "property": "authorizationType",
655
+ "equals": "JWT"
656
+ }
657
+ },
658
+ {
659
+ "label": "Required roles",
660
+ "description": "List of roles to test JWT roles against",
661
+ "type": "String",
662
+ "group": "authorization",
663
+ "feel": "required",
664
+ "optional": true,
665
+ "binding": {
666
+ "type": "zeebe:property",
667
+ "name": "inbound.auth.jwt.requiredPermissions"
668
+ },
669
+ "condition": {
670
+ "property": "authorizationType",
671
+ "equals": "JWT"
672
+ }
673
+ },
674
+ {
675
+ "label": "Username",
676
+ "description": "Username for basic authentication",
677
+ "type": "String",
678
+ "group": "authorization",
679
+ "feel": "optional",
680
+ "binding": {
681
+ "type": "zeebe:property",
682
+ "name": "inbound.auth.username"
683
+ },
684
+ "condition": {
685
+ "property": "authorizationType",
686
+ "equals": "BASIC"
687
+ },
688
+ "constraints": {
689
+ "notEmpty": true
690
+ }
691
+ },
692
+ {
693
+ "label": "Password",
694
+ "description": "Password for basic authentication",
695
+ "type": "String",
696
+ "group": "authorization",
697
+ "feel": "optional",
698
+ "binding": {
699
+ "type": "zeebe:property",
700
+ "name": "inbound.auth.password"
701
+ },
702
+ "condition": {
703
+ "property": "authorizationType",
704
+ "equals": "BASIC"
705
+ },
706
+ "constraints": {
707
+ "notEmpty": true
708
+ }
709
+ },
710
+ {
711
+ "label": "API Key",
712
+ "description": "Expected API key",
713
+ "type": "String",
714
+ "group": "authorization",
715
+ "feel": "optional",
716
+ "binding": {
717
+ "type": "zeebe:property",
718
+ "name": "inbound.auth.apiKey"
719
+ },
720
+ "condition": {
721
+ "property": "authorizationType",
722
+ "equals": "APIKEY"
723
+ },
724
+ "constraints": {
725
+ "notEmpty": true
726
+ }
727
+ },
728
+ {
729
+ "label": "API Key locator",
730
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
731
+ "type": "String",
732
+ "group": "authorization",
733
+ "feel": "required",
734
+ "binding": {
735
+ "type": "zeebe:property",
736
+ "name": "inbound.auth.apiKeyLocator"
737
+ },
738
+ "condition": {
739
+ "property": "authorizationType",
740
+ "equals": "APIKEY"
741
+ },
742
+ "constraints": {
743
+ "notEmpty": true
744
+ },
745
+ "value": "=split(request.headers.authorization, \" \")[2]"
746
+ },
703
747
  {
704
748
  "label": "Condition",
705
749
  "type": "String",
@@ -734,22 +778,46 @@
734
778
  "name": "resultExpression"
735
779
  },
736
780
  "description": "Expression to map the inbound payload to process variables"
781
+ },
782
+ {
783
+ "label": "One time verification response expression",
784
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
785
+ "type": "Text",
786
+ "group": "webhookResponse",
787
+ "feel": "required",
788
+ "optional": true,
789
+ "binding": {
790
+ "type": "zeebe:property",
791
+ "name": "inbound.verificationExpression"
792
+ }
793
+ },
794
+ {
795
+ "label": "Response body expression",
796
+ "type": "Text",
797
+ "group": "webhookResponse",
798
+ "feel": "required",
799
+ "optional": true,
800
+ "binding": {
801
+ "type": "zeebe:property",
802
+ "name": "inbound.responseBodyExpression"
803
+ },
804
+ "description": "Specify condition and response"
737
805
  }
738
806
  ],
739
807
  "icon": {
740
808
  "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
741
809
  },
742
810
  "engines": {
743
- "camunda": "^8.2"
811
+ "camunda": "^8.4"
744
812
  }
745
813
  },
746
814
  {
747
815
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
748
- "name": "Webhook connector",
816
+ "name": "Webhook Start Event Connector",
749
817
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
750
- "version": 5,
751
818
  "description": "Configure webhook to receive callbacks",
752
819
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
820
+ "version": 10,
753
821
  "category": {
754
822
  "id": "connectors",
755
823
  "name": "Connectors"
@@ -771,38 +839,39 @@
771
839
  "id": "authorization",
772
840
  "label": "Authorization"
773
841
  },
842
+ {
843
+ "id": "webhookResponse",
844
+ "label": "Webhook response"
845
+ },
774
846
  {
775
847
  "id": "activation",
776
848
  "label": "Activation"
777
849
  },
778
850
  {
779
- "id": "variable-mapping",
780
- "label": "Variable mapping"
851
+ "id": "output",
852
+ "label": "Output mapping"
781
853
  }
782
854
  ],
783
855
  "properties": [
784
856
  {
785
- "type": "Hidden",
786
857
  "value": "io.camunda:webhook:1",
787
858
  "binding": {
788
- "type": "zeebe:property",
789
- "name": "inbound.type"
790
- }
791
- },
792
- {
793
- "type": "Hidden",
794
- "value": "ConfigurableInboundWebhook",
795
- "binding": {
796
- "type": "zeebe:property",
797
- "name": "inbound.subtype"
798
- }
859
+ "name": "inbound.type",
860
+ "type": "zeebe:property"
861
+ },
862
+ "type": "Hidden"
799
863
  },
800
864
  {
801
- "id": "webhookMethod",
865
+ "id": "inbound.method",
802
866
  "label": "Webhook method",
803
- "group": "endpoint",
804
867
  "description": "Select HTTP method",
868
+ "optional": false,
805
869
  "value": "any",
870
+ "group": "endpoint",
871
+ "binding": {
872
+ "name": "inbound.method",
873
+ "type": "zeebe:property"
874
+ },
806
875
  "type": "Dropdown",
807
876
  "choices": [
808
877
  {
@@ -810,46 +879,53 @@
810
879
  "value": "any"
811
880
  },
812
881
  {
813
- "name": "Get",
882
+ "name": "GET",
814
883
  "value": "get"
815
884
  },
816
885
  {
817
- "name": "Post",
886
+ "name": "POST",
818
887
  "value": "post"
819
888
  },
820
889
  {
821
- "name": "Put",
890
+ "name": "PUT",
822
891
  "value": "put"
823
892
  },
824
893
  {
825
- "name": "Delete",
894
+ "name": "DELETE",
826
895
  "value": "delete"
827
896
  }
828
- ],
829
- "binding": {
830
- "type": "zeebe:property",
831
- "name": "inbound.method"
832
- }
897
+ ]
833
898
  },
834
899
  {
900
+ "id": "inbound.context",
835
901
  "label": "Webhook ID",
836
- "type": "String",
902
+ "description": "The webhook ID is a part of the URL",
903
+ "optional": false,
904
+ "constraints": {
905
+ "notEmpty": true,
906
+ "pattern": {
907
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
908
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
909
+ }
910
+ },
837
911
  "group": "endpoint",
838
912
  "binding": {
839
- "type": "zeebe:property",
840
- "name": "inbound.context"
913
+ "name": "inbound.context",
914
+ "type": "zeebe:property"
841
915
  },
842
- "description": "The webhook ID is a part of the URL",
843
- "constraints": {
844
- "notEmpty": true
845
- }
916
+ "type": "String"
846
917
  },
847
918
  {
848
- "id": "shouldValidateHmac",
919
+ "id": "inbound.shouldValidateHmac",
849
920
  "label": "HMAC authentication",
850
- "group": "authentication",
851
921
  "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
922
+ "optional": false,
852
923
  "value": "disabled",
924
+ "group": "authentication",
925
+ "binding": {
926
+ "name": "inbound.shouldValidateHmac",
927
+ "type": "zeebe:property"
928
+ },
853
929
  "type": "Dropdown",
854
930
  "choices": [
855
931
  {
@@ -860,47 +936,60 @@
860
936
  "name": "Disabled",
861
937
  "value": "disabled"
862
938
  }
863
- ],
864
- "binding": {
865
- "type": "zeebe:property",
866
- "name": "inbound.shouldValidateHmac"
867
- }
939
+ ]
868
940
  },
869
941
  {
942
+ "id": "inbound.hmacSecret",
870
943
  "label": "HMAC secret key",
871
944
  "description": "Shared secret key",
872
- "type": "String",
873
- "group": "authentication",
874
945
  "optional": true,
946
+ "feel": "optional",
947
+ "group": "authentication",
875
948
  "binding": {
876
- "type": "zeebe:property",
877
- "name": "inbound.hmacSecret"
949
+ "name": "inbound.hmacSecret",
950
+ "type": "zeebe:property"
878
951
  },
879
952
  "condition": {
880
- "property": "shouldValidateHmac",
881
- "equals": "enabled"
882
- }
953
+ "property": "inbound.shouldValidateHmac",
954
+ "equals": "enabled",
955
+ "type": "simple"
956
+ },
957
+ "type": "String"
883
958
  },
884
959
  {
960
+ "id": "inbound.hmacHeader",
885
961
  "label": "HMAC header",
886
962
  "description": "Name of header attribute that will contain the HMAC value",
887
- "type": "String",
888
- "group": "authentication",
889
963
  "optional": true,
964
+ "feel": "optional",
965
+ "group": "authentication",
890
966
  "binding": {
891
- "type": "zeebe:property",
892
- "name": "inbound.hmacHeader"
967
+ "name": "inbound.hmacHeader",
968
+ "type": "zeebe:property"
893
969
  },
894
970
  "condition": {
895
- "property": "shouldValidateHmac",
896
- "equals": "enabled"
897
- }
971
+ "property": "inbound.shouldValidateHmac",
972
+ "equals": "enabled",
973
+ "type": "simple"
974
+ },
975
+ "type": "String"
898
976
  },
899
977
  {
978
+ "id": "inbound.hmacAlgorithm",
900
979
  "label": "HMAC algorithm",
901
- "group": "authentication",
902
980
  "description": "Choose HMAC algorithm",
981
+ "optional": false,
903
982
  "value": "sha_256",
983
+ "group": "authentication",
984
+ "binding": {
985
+ "name": "inbound.hmacAlgorithm",
986
+ "type": "zeebe:property"
987
+ },
988
+ "condition": {
989
+ "property": "inbound.shouldValidateHmac",
990
+ "equals": "enabled",
991
+ "type": "simple"
992
+ },
904
993
  "type": "Dropdown",
905
994
  "choices": [
906
995
  {
@@ -915,224 +1004,254 @@
915
1004
  "name": "SHA-512",
916
1005
  "value": "sha_512"
917
1006
  }
918
- ],
919
- "binding": {
920
- "type": "zeebe:property",
921
- "name": "inbound.hmacAlgorithm"
922
- },
923
- "condition": {
924
- "property": "shouldValidateHmac",
925
- "equals": "enabled"
926
- }
1007
+ ]
927
1008
  },
928
1009
  {
1010
+ "id": "inbound.hmacScopes",
929
1011
  "label": "HMAC scopes",
930
- "group": "authentication",
931
1012
  "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
932
- "feel": "required",
933
- "type": "String",
934
1013
  "optional": true,
1014
+ "feel": "required",
1015
+ "group": "authentication",
935
1016
  "binding": {
936
- "type": "zeebe:property",
937
- "name": "inbound.hmacScopes"
1017
+ "name": "inbound.hmacScopes",
1018
+ "type": "zeebe:property"
938
1019
  },
939
1020
  "condition": {
940
- "property": "shouldValidateHmac",
941
- "equals": "enabled"
942
- }
1021
+ "property": "inbound.shouldValidateHmac",
1022
+ "equals": "enabled",
1023
+ "type": "simple"
1024
+ },
1025
+ "type": "String"
943
1026
  },
944
1027
  {
945
- "id": "authorizationType",
1028
+ "id": "inbound.auth.type",
946
1029
  "label": "Authorization type",
947
- "group": "authorization",
948
- "description": "Choose the authorization type.",
1030
+ "description": "Choose the authorization type",
949
1031
  "value": "NONE",
1032
+ "group": "authorization",
1033
+ "binding": {
1034
+ "name": "inbound.auth.type",
1035
+ "type": "zeebe:property"
1036
+ },
950
1037
  "type": "Dropdown",
951
1038
  "choices": [
952
1039
  {
953
1040
  "name": "None",
954
1041
  "value": "NONE"
955
1042
  },
956
- {
957
- "name": "JWT",
958
- "value": "JWT"
959
- },
960
1043
  {
961
1044
  "name": "Basic",
962
1045
  "value": "BASIC"
963
1046
  },
964
1047
  {
965
- "name": "API Key",
1048
+ "name": "API key",
966
1049
  "value": "APIKEY"
1050
+ },
1051
+ {
1052
+ "name": "JWT",
1053
+ "value": "JWT"
967
1054
  }
968
- ],
969
- "binding": {
970
- "type": "zeebe:property",
971
- "name": "inbound.auth.type"
972
- }
1055
+ ]
973
1056
  },
974
1057
  {
975
- "label": "JWK url",
976
- "description": "Well-known url of JWKs",
977
- "type": "String",
978
- "group": "authorization",
1058
+ "id": "inbound.auth.username",
1059
+ "label": "Username",
1060
+ "description": "Username for basic authentication",
1061
+ "optional": false,
979
1062
  "feel": "optional",
980
- "optional": true,
1063
+ "group": "authorization",
981
1064
  "binding": {
982
- "type": "zeebe:property",
983
- "name": "inbound.auth.jwt.jwkUrl"
1065
+ "name": "inbound.auth.username",
1066
+ "type": "zeebe:property"
984
1067
  },
985
1068
  "condition": {
986
- "property": "authorizationType",
987
- "equals": "JWT"
988
- }
1069
+ "property": "inbound.auth.type",
1070
+ "equals": "BASIC",
1071
+ "type": "simple"
1072
+ },
1073
+ "type": "String"
989
1074
  },
990
1075
  {
991
- "label": "JWT role property expression",
992
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
993
- "type": "String",
1076
+ "id": "inbound.auth.password",
1077
+ "label": "Password",
1078
+ "description": "Password for basic authentication",
1079
+ "optional": false,
1080
+ "feel": "optional",
994
1081
  "group": "authorization",
995
- "feel": "required",
996
- "optional": true,
997
1082
  "binding": {
998
- "type": "zeebe:property",
999
- "name": "inbound.auth.jwt.permissionsExpression"
1083
+ "name": "inbound.auth.password",
1084
+ "type": "zeebe:property"
1000
1085
  },
1001
1086
  "condition": {
1002
- "property": "authorizationType",
1003
- "equals": "JWT"
1004
- }
1087
+ "property": "inbound.auth.type",
1088
+ "equals": "BASIC",
1089
+ "type": "simple"
1090
+ },
1091
+ "type": "String"
1005
1092
  },
1006
1093
  {
1007
- "label": "Required roles",
1008
- "description": "List of roles to test JWT roles against",
1009
- "type": "String",
1094
+ "id": "inbound.auth.apiKey",
1095
+ "label": "API key",
1096
+ "description": "Expected API key",
1097
+ "optional": false,
1098
+ "feel": "optional",
1010
1099
  "group": "authorization",
1100
+ "binding": {
1101
+ "name": "inbound.auth.apiKey",
1102
+ "type": "zeebe:property"
1103
+ },
1104
+ "condition": {
1105
+ "property": "inbound.auth.type",
1106
+ "equals": "APIKEY",
1107
+ "type": "simple"
1108
+ },
1109
+ "type": "String"
1110
+ },
1111
+ {
1112
+ "id": "inbound.auth.apiKeyLocator",
1113
+ "label": "API key locator",
1114
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
1115
+ "optional": false,
1116
+ "value": "=split(request.headers.authorization, \" \")[2]",
1117
+ "constraints": {
1118
+ "notEmpty": true
1119
+ },
1011
1120
  "feel": "required",
1012
- "optional": true,
1121
+ "group": "authorization",
1013
1122
  "binding": {
1014
- "type": "zeebe:property",
1015
- "name": "inbound.auth.jwt.requiredPermissions"
1123
+ "name": "inbound.auth.apiKeyLocator",
1124
+ "type": "zeebe:property"
1016
1125
  },
1017
1126
  "condition": {
1018
- "property": "authorizationType",
1019
- "equals": "JWT"
1020
- }
1127
+ "property": "inbound.auth.type",
1128
+ "equals": "APIKEY",
1129
+ "type": "simple"
1130
+ },
1131
+ "type": "String"
1021
1132
  },
1022
1133
  {
1023
- "label": "Username",
1024
- "description": "Username for basic authentication",
1025
- "type": "String",
1026
- "group": "authorization",
1134
+ "id": "inbound.auth.jwt.jwkUrl",
1135
+ "label": "JWK URL",
1136
+ "description": "Well-known URL of JWKs",
1137
+ "optional": false,
1027
1138
  "feel": "optional",
1139
+ "group": "authorization",
1028
1140
  "binding": {
1029
- "type": "zeebe:property",
1030
- "name": "inbound.auth.username"
1141
+ "name": "inbound.auth.jwt.jwkUrl",
1142
+ "type": "zeebe:property"
1031
1143
  },
1032
1144
  "condition": {
1033
- "property": "authorizationType",
1034
- "equals": "BASIC"
1145
+ "property": "inbound.auth.type",
1146
+ "equals": "JWT",
1147
+ "type": "simple"
1035
1148
  },
1036
- "constraints": {
1037
- "notEmpty": true
1038
- }
1149
+ "type": "String"
1039
1150
  },
1040
1151
  {
1041
- "label": "Password",
1042
- "description": "Password for basic authentication",
1043
- "type": "String",
1152
+ "id": "inbound.auth.jwt.permissionsExpression",
1153
+ "label": "JWT role property expression",
1154
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
1155
+ "optional": false,
1156
+ "feel": "required",
1044
1157
  "group": "authorization",
1045
- "feel": "optional",
1046
1158
  "binding": {
1047
- "type": "zeebe:property",
1048
- "name": "inbound.auth.password"
1159
+ "name": "inbound.auth.jwt.permissionsExpression",
1160
+ "type": "zeebe:property"
1049
1161
  },
1050
1162
  "condition": {
1051
- "property": "authorizationType",
1052
- "equals": "BASIC"
1163
+ "property": "inbound.auth.type",
1164
+ "equals": "JWT",
1165
+ "type": "simple"
1053
1166
  },
1054
- "constraints": {
1055
- "notEmpty": true
1056
- }
1167
+ "type": "String"
1057
1168
  },
1058
1169
  {
1059
- "label": "API Key",
1060
- "description": "Expected API key",
1061
- "type": "String",
1170
+ "id": "inbound.auth.jwt.requiredPermissions",
1171
+ "label": "Required roles",
1172
+ "description": "List of roles to test JWT roles against",
1173
+ "optional": false,
1174
+ "feel": "required",
1062
1175
  "group": "authorization",
1063
- "feel": "optional",
1064
1176
  "binding": {
1065
- "type": "zeebe:property",
1066
- "name": "inbound.auth.apiKey"
1177
+ "name": "inbound.auth.jwt.requiredPermissions",
1178
+ "type": "zeebe:property"
1067
1179
  },
1068
1180
  "condition": {
1069
- "property": "authorizationType",
1070
- "equals": "APIKEY"
1181
+ "property": "inbound.auth.type",
1182
+ "equals": "JWT",
1183
+ "type": "simple"
1071
1184
  },
1072
- "constraints": {
1073
- "notEmpty": true
1074
- }
1185
+ "type": "String"
1075
1186
  },
1076
1187
  {
1077
- "label": "API Key locator",
1078
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
1079
- "type": "String",
1080
- "group": "authorization",
1188
+ "id": "inbound.responseBodyExpression",
1189
+ "label": "Response body expression",
1190
+ "description": "Specify condition and response",
1191
+ "optional": true,
1081
1192
  "feel": "required",
1193
+ "group": "webhookResponse",
1082
1194
  "binding": {
1083
- "type": "zeebe:property",
1084
- "name": "inbound.auth.apiKeyLocator"
1085
- },
1086
- "condition": {
1087
- "property": "authorizationType",
1088
- "equals": "APIKEY"
1089
- },
1090
- "constraints": {
1091
- "notEmpty": true
1195
+ "name": "inbound.responseBodyExpression",
1196
+ "type": "zeebe:property"
1092
1197
  },
1093
- "value": "=split(request.headers.authorization, \" \")[2]"
1198
+ "type": "Text"
1094
1199
  },
1095
1200
  {
1096
- "label": "Condition",
1097
- "type": "String",
1098
- "group": "activation",
1201
+ "id": "inbound.verificationExpression",
1202
+ "label": "One time verification response expression",
1203
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
1204
+ "optional": true,
1099
1205
  "feel": "required",
1206
+ "group": "webhookResponse",
1207
+ "binding": {
1208
+ "name": "inbound.verificationExpression",
1209
+ "type": "zeebe:property"
1210
+ },
1211
+ "type": "Text"
1212
+ },
1213
+ {
1214
+ "id": "activationCondition",
1215
+ "label": "Activation condition",
1216
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
1100
1217
  "optional": true,
1218
+ "feel": "required",
1219
+ "group": "activation",
1101
1220
  "binding": {
1102
- "type": "zeebe:property",
1103
- "name": "activationCondition"
1221
+ "name": "activationCondition",
1222
+ "type": "zeebe:property"
1104
1223
  },
1105
- "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
1224
+ "type": "String"
1106
1225
  },
1107
1226
  {
1227
+ "id": "resultVariable",
1108
1228
  "label": "Result variable",
1109
- "type": "String",
1110
- "group": "variable-mapping",
1111
- "optional": true,
1229
+ "description": "Name of variable to store the response in",
1230
+ "group": "output",
1112
1231
  "binding": {
1113
- "type": "zeebe:property",
1114
- "name": "resultVariable"
1232
+ "name": "resultVariable",
1233
+ "type": "zeebe:property"
1115
1234
  },
1116
- "description": "Name of variable to store the result of the connector in"
1235
+ "type": "String"
1117
1236
  },
1118
1237
  {
1238
+ "id": "resultExpression",
1119
1239
  "label": "Result expression",
1120
- "type": "String",
1121
- "group": "variable-mapping",
1240
+ "description": "Expression to map the response into process variables",
1122
1241
  "feel": "required",
1123
- "optional": true,
1242
+ "group": "output",
1124
1243
  "binding": {
1125
- "type": "zeebe:property",
1126
- "name": "resultExpression"
1244
+ "name": "resultExpression",
1245
+ "type": "zeebe:property"
1127
1246
  },
1128
- "description": "Expression to map the inbound payload to process variables"
1247
+ "type": "Text"
1129
1248
  }
1130
1249
  ],
1131
1250
  "icon": {
1132
- "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
1251
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1133
1252
  },
1134
1253
  "engines": {
1135
- "camunda": "^8.2"
1254
+ "camunda": "^8.5"
1136
1255
  }
1137
1256
  },
1138
1257
  {
@@ -1561,9 +1680,9 @@
1561
1680
  },
1562
1681
  {
1563
1682
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1564
- "name": "Webhook Start Event Connector",
1683
+ "name": "Webhook connector",
1565
1684
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1566
- "version": 7,
1685
+ "version": 6,
1567
1686
  "description": "Configure webhook to receive callbacks",
1568
1687
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1569
1688
  "category": {
@@ -1969,9 +2088,9 @@
1969
2088
  },
1970
2089
  {
1971
2090
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1972
- "name": "Webhook Connector",
2091
+ "name": "Webhook connector",
1973
2092
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1974
- "version": 2,
2093
+ "version": 3,
1975
2094
  "description": "Configure webhook to receive callbacks",
1976
2095
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1977
2096
  "category": {
@@ -1985,7 +2104,7 @@
1985
2104
  "groups": [
1986
2105
  {
1987
2106
  "id": "endpoint",
1988
- "label": "Webhook Configuration"
2107
+ "label": "Webhook configuration"
1989
2108
  },
1990
2109
  {
1991
2110
  "id": "activation",
@@ -1993,7 +2112,7 @@
1993
2112
  },
1994
2113
  {
1995
2114
  "id": "variable-mapping",
1996
- "label": "Variable Mapping"
2115
+ "label": "Variable mapping"
1997
2116
  }
1998
2117
  ],
1999
2118
  "properties": [
@@ -2115,7 +2234,7 @@
2115
2234
  "optional": true,
2116
2235
  "binding": {
2117
2236
  "type": "zeebe:property",
2118
- "name": "inbound.activationCondition"
2237
+ "name": "activationCondition"
2119
2238
  },
2120
2239
  "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
2121
2240
  },
@@ -2128,7 +2247,7 @@
2128
2247
  "type": "zeebe:property",
2129
2248
  "name": "resultVariable"
2130
2249
  },
2131
- "description": "Name of variable to store the result of the Connector in"
2250
+ "description": "Name of variable to store the result of the connector in"
2132
2251
  },
2133
2252
  {
2134
2253
  "label": "Result expression",
@@ -2154,26 +2273,17 @@
2154
2273
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2155
2274
  "name": "Webhook Start Event Connector",
2156
2275
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2276
+ "version": 7,
2157
2277
  "description": "Configure webhook to receive callbacks",
2158
- "metadata": {
2159
- "keywords": []
2160
- },
2161
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
2162
- "version": 13,
2278
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2163
2279
  "category": {
2164
2280
  "id": "connectors",
2165
2281
  "name": "Connectors"
2166
2282
  },
2167
- "deprecated": {
2168
- "message": "Migrate to Webhook Message Start Event Connector"
2169
- },
2170
2283
  "appliesTo": ["bpmn:StartEvent"],
2171
2284
  "elementType": {
2172
2285
  "value": "bpmn:StartEvent"
2173
2286
  },
2174
- "engines": {
2175
- "camunda": "^8.3"
2176
- },
2177
2287
  "groups": [
2178
2288
  {
2179
2289
  "id": "endpoint",
@@ -2187,44 +2297,42 @@
2187
2297
  "id": "authorization",
2188
2298
  "label": "Authorization"
2189
2299
  },
2190
- {
2191
- "id": "webhookResponse",
2192
- "label": "Webhook response"
2193
- },
2194
2300
  {
2195
2301
  "id": "activation",
2196
2302
  "label": "Activation"
2197
2303
  },
2198
2304
  {
2199
- "id": "deduplication",
2200
- "label": "Deduplication",
2201
- "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
2305
+ "id": "variable-mapping",
2306
+ "label": "Variable mapping"
2202
2307
  },
2203
2308
  {
2204
- "id": "output",
2205
- "label": "Output mapping"
2309
+ "id": "webhookResponse",
2310
+ "label": "Webhook response"
2206
2311
  }
2207
2312
  ],
2208
2313
  "properties": [
2209
2314
  {
2315
+ "type": "Hidden",
2210
2316
  "value": "io.camunda:webhook:1",
2211
2317
  "binding": {
2212
- "name": "inbound.type",
2213
- "type": "zeebe:property"
2214
- },
2215
- "type": "Hidden"
2318
+ "type": "zeebe:property",
2319
+ "name": "inbound.type"
2320
+ }
2216
2321
  },
2217
2322
  {
2218
- "id": "inbound.method",
2323
+ "type": "Hidden",
2324
+ "value": "ConfigurableInboundWebhook",
2325
+ "binding": {
2326
+ "type": "zeebe:property",
2327
+ "name": "inbound.subtype"
2328
+ }
2329
+ },
2330
+ {
2331
+ "id": "webhookMethod",
2219
2332
  "label": "Webhook method",
2333
+ "group": "endpoint",
2220
2334
  "description": "Select HTTP method",
2221
- "optional": false,
2222
2335
  "value": "any",
2223
- "group": "endpoint",
2224
- "binding": {
2225
- "name": "inbound.method",
2226
- "type": "zeebe:property"
2227
- },
2228
2336
  "type": "Dropdown",
2229
2337
  "choices": [
2230
2338
  {
@@ -2232,53 +2340,46 @@
2232
2340
  "value": "any"
2233
2341
  },
2234
2342
  {
2235
- "name": "GET",
2343
+ "name": "Get",
2236
2344
  "value": "get"
2237
2345
  },
2238
2346
  {
2239
- "name": "POST",
2347
+ "name": "Post",
2240
2348
  "value": "post"
2241
2349
  },
2242
2350
  {
2243
- "name": "PUT",
2351
+ "name": "Put",
2244
2352
  "value": "put"
2245
2353
  },
2246
2354
  {
2247
- "name": "DELETE",
2355
+ "name": "Delete",
2248
2356
  "value": "delete"
2249
2357
  }
2250
- ]
2358
+ ],
2359
+ "binding": {
2360
+ "type": "zeebe:property",
2361
+ "name": "inbound.method"
2362
+ }
2251
2363
  },
2252
2364
  {
2253
- "id": "inbound.context",
2254
2365
  "label": "Webhook ID",
2255
- "description": "The webhook ID is a part of the URL",
2256
- "optional": false,
2257
- "constraints": {
2258
- "notEmpty": true,
2259
- "pattern": {
2260
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
2261
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
2262
- }
2263
- },
2366
+ "type": "String",
2264
2367
  "group": "endpoint",
2265
- "binding": {
2266
- "name": "inbound.context",
2267
- "type": "zeebe:property"
2368
+ "binding": {
2369
+ "type": "zeebe:property",
2370
+ "name": "inbound.context"
2268
2371
  },
2269
- "type": "String"
2372
+ "description": "The webhook ID is a part of the URL",
2373
+ "constraints": {
2374
+ "notEmpty": true
2375
+ }
2270
2376
  },
2271
2377
  {
2272
- "id": "inbound.shouldValidateHmac",
2378
+ "id": "shouldValidateHmac",
2273
2379
  "label": "HMAC authentication",
2274
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2275
- "optional": false,
2276
- "value": "disabled",
2277
2380
  "group": "authentication",
2278
- "binding": {
2279
- "name": "inbound.shouldValidateHmac",
2280
- "type": "zeebe:property"
2281
- },
2381
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2382
+ "value": "disabled",
2282
2383
  "type": "Dropdown",
2283
2384
  "choices": [
2284
2385
  {
@@ -2289,60 +2390,47 @@
2289
2390
  "name": "Disabled",
2290
2391
  "value": "disabled"
2291
2392
  }
2292
- ]
2393
+ ],
2394
+ "binding": {
2395
+ "type": "zeebe:property",
2396
+ "name": "inbound.shouldValidateHmac"
2397
+ }
2293
2398
  },
2294
2399
  {
2295
- "id": "inbound.hmacSecret",
2296
2400
  "label": "HMAC secret key",
2297
2401
  "description": "Shared secret key",
2298
- "optional": true,
2299
- "feel": "optional",
2402
+ "type": "String",
2300
2403
  "group": "authentication",
2404
+ "optional": true,
2301
2405
  "binding": {
2302
- "name": "inbound.hmacSecret",
2303
- "type": "zeebe:property"
2406
+ "type": "zeebe:property",
2407
+ "name": "inbound.hmacSecret"
2304
2408
  },
2305
2409
  "condition": {
2306
- "property": "inbound.shouldValidateHmac",
2307
- "equals": "enabled",
2308
- "type": "simple"
2309
- },
2310
- "type": "String"
2410
+ "property": "shouldValidateHmac",
2411
+ "equals": "enabled"
2412
+ }
2311
2413
  },
2312
2414
  {
2313
- "id": "inbound.hmacHeader",
2314
2415
  "label": "HMAC header",
2315
2416
  "description": "Name of header attribute that will contain the HMAC value",
2316
- "optional": true,
2317
- "feel": "optional",
2417
+ "type": "String",
2318
2418
  "group": "authentication",
2419
+ "optional": true,
2319
2420
  "binding": {
2320
- "name": "inbound.hmacHeader",
2321
- "type": "zeebe:property"
2421
+ "type": "zeebe:property",
2422
+ "name": "inbound.hmacHeader"
2322
2423
  },
2323
2424
  "condition": {
2324
- "property": "inbound.shouldValidateHmac",
2325
- "equals": "enabled",
2326
- "type": "simple"
2327
- },
2328
- "type": "String"
2425
+ "property": "shouldValidateHmac",
2426
+ "equals": "enabled"
2427
+ }
2329
2428
  },
2330
2429
  {
2331
- "id": "inbound.hmacAlgorithm",
2332
2430
  "label": "HMAC algorithm",
2431
+ "group": "authentication",
2333
2432
  "description": "Choose HMAC algorithm",
2334
- "optional": false,
2335
2433
  "value": "sha_256",
2336
- "group": "authentication",
2337
- "binding": {
2338
- "name": "inbound.hmacAlgorithm",
2339
- "type": "zeebe:property"
2340
- },
2341
- "condition": {
2342
- "property": "inbound.shouldValidateHmac",
2343
- "equals": "enabled",
2344
- "type": "simple"
2345
- },
2346
2434
  "type": "Dropdown",
2347
2435
  "choices": [
2348
2436
  {
@@ -2357,344 +2445,262 @@
2357
2445
  "name": "SHA-512",
2358
2446
  "value": "sha_512"
2359
2447
  }
2360
- ]
2448
+ ],
2449
+ "binding": {
2450
+ "type": "zeebe:property",
2451
+ "name": "inbound.hmacAlgorithm"
2452
+ },
2453
+ "condition": {
2454
+ "property": "shouldValidateHmac",
2455
+ "equals": "enabled"
2456
+ }
2361
2457
  },
2362
2458
  {
2363
- "id": "inbound.hmacScopes",
2364
2459
  "label": "HMAC scopes",
2365
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
2366
- "optional": true,
2367
- "feel": "required",
2368
2460
  "group": "authentication",
2461
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
2462
+ "feel": "required",
2463
+ "type": "String",
2464
+ "optional": true,
2369
2465
  "binding": {
2370
- "name": "inbound.hmacScopes",
2371
- "type": "zeebe:property"
2466
+ "type": "zeebe:property",
2467
+ "name": "inbound.hmacScopes"
2372
2468
  },
2373
2469
  "condition": {
2374
- "property": "inbound.shouldValidateHmac",
2375
- "equals": "enabled",
2376
- "type": "simple"
2377
- },
2378
- "type": "String"
2470
+ "property": "shouldValidateHmac",
2471
+ "equals": "enabled"
2472
+ }
2379
2473
  },
2380
2474
  {
2381
- "id": "inbound.auth.type",
2475
+ "id": "authorizationType",
2382
2476
  "label": "Authorization type",
2383
- "description": "Choose the authorization type",
2384
- "value": "NONE",
2385
2477
  "group": "authorization",
2386
- "binding": {
2387
- "name": "inbound.auth.type",
2388
- "type": "zeebe:property"
2389
- },
2478
+ "description": "Choose the authorization type.",
2479
+ "value": "NONE",
2390
2480
  "type": "Dropdown",
2391
2481
  "choices": [
2392
2482
  {
2393
2483
  "name": "None",
2394
2484
  "value": "NONE"
2395
2485
  },
2396
- {
2397
- "name": "Basic",
2398
- "value": "BASIC"
2399
- },
2400
- {
2401
- "name": "API key",
2402
- "value": "APIKEY"
2403
- },
2404
2486
  {
2405
2487
  "name": "JWT",
2406
2488
  "value": "JWT"
2407
- }
2408
- ]
2409
- },
2410
- {
2411
- "id": "inbound.auth.username",
2412
- "label": "Username",
2413
- "description": "Username for basic authentication",
2414
- "optional": false,
2415
- "feel": "optional",
2416
- "group": "authorization",
2417
- "binding": {
2418
- "name": "inbound.auth.username",
2419
- "type": "zeebe:property"
2420
- },
2421
- "condition": {
2422
- "property": "inbound.auth.type",
2423
- "equals": "BASIC",
2424
- "type": "simple"
2425
- },
2426
- "type": "String"
2427
- },
2428
- {
2429
- "id": "inbound.auth.password",
2430
- "label": "Password",
2431
- "description": "Password for basic authentication",
2432
- "optional": false,
2433
- "feel": "optional",
2434
- "group": "authorization",
2435
- "binding": {
2436
- "name": "inbound.auth.password",
2437
- "type": "zeebe:property"
2438
- },
2439
- "condition": {
2440
- "property": "inbound.auth.type",
2441
- "equals": "BASIC",
2442
- "type": "simple"
2443
- },
2444
- "type": "String"
2445
- },
2446
- {
2447
- "id": "inbound.auth.apiKey",
2448
- "label": "API key",
2449
- "description": "Expected API key",
2450
- "optional": false,
2451
- "feel": "optional",
2452
- "group": "authorization",
2453
- "binding": {
2454
- "name": "inbound.auth.apiKey",
2455
- "type": "zeebe:property"
2456
- },
2457
- "condition": {
2458
- "property": "inbound.auth.type",
2459
- "equals": "APIKEY",
2460
- "type": "simple"
2461
- },
2462
- "type": "String"
2463
- },
2464
- {
2465
- "id": "inbound.auth.apiKeyLocator",
2466
- "label": "API key locator",
2467
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2468
- "optional": false,
2469
- "value": "=split(request.headers.authorization, \" \")[2]",
2470
- "constraints": {
2471
- "notEmpty": true
2472
- },
2473
- "feel": "required",
2474
- "group": "authorization",
2475
- "binding": {
2476
- "name": "inbound.auth.apiKeyLocator",
2477
- "type": "zeebe:property"
2478
- },
2479
- "condition": {
2480
- "property": "inbound.auth.type",
2481
- "equals": "APIKEY",
2482
- "type": "simple"
2483
- },
2484
- "type": "String"
2485
- },
2486
- {
2487
- "id": "inbound.auth.jwt.jwkUrl",
2488
- "label": "JWK URL",
2489
- "description": "Well-known URL of JWKs",
2490
- "optional": false,
2491
- "feel": "optional",
2492
- "group": "authorization",
2493
- "binding": {
2494
- "name": "inbound.auth.jwt.jwkUrl",
2495
- "type": "zeebe:property"
2496
- },
2497
- "condition": {
2498
- "property": "inbound.auth.type",
2499
- "equals": "JWT",
2500
- "type": "simple"
2501
- },
2502
- "type": "String"
2503
- },
2504
- {
2505
- "id": "inbound.auth.jwt.permissionsExpression",
2506
- "label": "JWT role property expression",
2507
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
2508
- "optional": false,
2509
- "feel": "required",
2510
- "group": "authorization",
2511
- "binding": {
2512
- "name": "inbound.auth.jwt.permissionsExpression",
2513
- "type": "zeebe:property"
2514
- },
2515
- "condition": {
2516
- "property": "inbound.auth.type",
2517
- "equals": "JWT",
2518
- "type": "simple"
2519
- },
2520
- "type": "String"
2521
- },
2522
- {
2523
- "id": "inbound.auth.jwt.requiredPermissions",
2524
- "label": "Required roles",
2525
- "description": "List of roles to test JWT roles against",
2526
- "optional": false,
2527
- "feel": "required",
2528
- "group": "authorization",
2529
- "binding": {
2530
- "name": "inbound.auth.jwt.requiredPermissions",
2531
- "type": "zeebe:property"
2532
- },
2533
- "condition": {
2534
- "property": "inbound.auth.type",
2535
- "equals": "JWT",
2536
- "type": "simple"
2537
- },
2538
- "type": "String"
2489
+ },
2490
+ {
2491
+ "name": "Basic",
2492
+ "value": "BASIC"
2493
+ },
2494
+ {
2495
+ "name": "API Key",
2496
+ "value": "APIKEY"
2497
+ }
2498
+ ],
2499
+ "binding": {
2500
+ "type": "zeebe:property",
2501
+ "name": "inbound.auth.type"
2502
+ }
2539
2503
  },
2540
2504
  {
2541
- "id": "inbound.responseExpression",
2542
- "label": "Response expression",
2543
- "description": "Expression used to generate the HTTP response",
2505
+ "label": "JWK url",
2506
+ "description": "Well-known url of JWKs",
2507
+ "type": "String",
2508
+ "group": "authorization",
2509
+ "feel": "optional",
2544
2510
  "optional": true,
2545
- "feel": "required",
2546
- "group": "webhookResponse",
2547
2511
  "binding": {
2548
- "name": "inbound.responseExpression",
2549
- "type": "zeebe:property"
2512
+ "type": "zeebe:property",
2513
+ "name": "inbound.auth.jwt.jwkUrl"
2550
2514
  },
2551
- "type": "Text"
2515
+ "condition": {
2516
+ "property": "authorizationType",
2517
+ "equals": "JWT"
2518
+ }
2552
2519
  },
2553
2520
  {
2554
- "id": "inbound.verificationExpression",
2555
- "label": "One time verification response expression",
2556
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
2557
- "optional": true,
2521
+ "label": "JWT role property expression",
2522
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
2523
+ "type": "String",
2524
+ "group": "authorization",
2558
2525
  "feel": "required",
2559
- "group": "webhookResponse",
2526
+ "optional": true,
2560
2527
  "binding": {
2561
- "name": "inbound.verificationExpression",
2562
- "type": "zeebe:property"
2528
+ "type": "zeebe:property",
2529
+ "name": "inbound.auth.jwt.permissionsExpression"
2563
2530
  },
2564
- "type": "Text"
2531
+ "condition": {
2532
+ "property": "authorizationType",
2533
+ "equals": "JWT"
2534
+ }
2565
2535
  },
2566
2536
  {
2567
- "id": "activationCondition",
2568
- "label": "Activation condition",
2569
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
2570
- "optional": true,
2537
+ "label": "Required roles",
2538
+ "description": "List of roles to test JWT roles against",
2539
+ "type": "String",
2540
+ "group": "authorization",
2571
2541
  "feel": "required",
2572
- "group": "activation",
2542
+ "optional": true,
2573
2543
  "binding": {
2574
- "name": "activationCondition",
2575
- "type": "zeebe:property"
2544
+ "type": "zeebe:property",
2545
+ "name": "inbound.auth.jwt.requiredPermissions"
2576
2546
  },
2577
- "type": "String"
2547
+ "condition": {
2548
+ "property": "authorizationType",
2549
+ "equals": "JWT"
2550
+ }
2578
2551
  },
2579
2552
  {
2580
- "id": "consumeUnmatchedEvents",
2581
- "label": "Consume unmatched events",
2582
- "value": true,
2583
- "group": "activation",
2553
+ "label": "Username",
2554
+ "description": "Username for basic authentication",
2555
+ "type": "String",
2556
+ "group": "authorization",
2557
+ "feel": "optional",
2584
2558
  "binding": {
2585
- "name": "consumeUnmatchedEvents",
2586
- "type": "zeebe:property"
2559
+ "type": "zeebe:property",
2560
+ "name": "inbound.auth.username"
2587
2561
  },
2588
- "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
2589
- "type": "Boolean"
2562
+ "condition": {
2563
+ "property": "authorizationType",
2564
+ "equals": "BASIC"
2565
+ },
2566
+ "constraints": {
2567
+ "notEmpty": true
2568
+ }
2590
2569
  },
2591
2570
  {
2592
- "id": "deduplicationModeManualFlag",
2593
- "label": "Manual mode",
2594
- "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
2595
- "value": false,
2596
- "group": "deduplication",
2571
+ "label": "Password",
2572
+ "description": "Password for basic authentication",
2573
+ "type": "String",
2574
+ "group": "authorization",
2575
+ "feel": "optional",
2597
2576
  "binding": {
2598
- "name": "deduplicationModeManualFlag",
2599
- "type": "zeebe:property"
2577
+ "type": "zeebe:property",
2578
+ "name": "inbound.auth.password"
2600
2579
  },
2601
- "type": "Boolean"
2580
+ "condition": {
2581
+ "property": "authorizationType",
2582
+ "equals": "BASIC"
2583
+ },
2584
+ "constraints": {
2585
+ "notEmpty": true
2586
+ }
2602
2587
  },
2603
2588
  {
2604
- "id": "deduplicationId",
2605
- "label": "Deduplication ID",
2606
- "constraints": {
2607
- "notEmpty": true,
2608
- "pattern": {
2609
- "value": "^[a-zA-Z0-9_-]+$",
2610
- "message": "can only contain alphanumeric characters, dashes, and underscores"
2611
- }
2612
- },
2613
- "group": "deduplication",
2589
+ "label": "API Key",
2590
+ "description": "Expected API key",
2591
+ "type": "String",
2592
+ "group": "authorization",
2593
+ "feel": "optional",
2614
2594
  "binding": {
2615
- "name": "deduplicationId",
2616
- "type": "zeebe:property"
2595
+ "type": "zeebe:property",
2596
+ "name": "inbound.auth.apiKey"
2617
2597
  },
2618
2598
  "condition": {
2619
- "property": "deduplicationModeManualFlag",
2620
- "equals": true,
2621
- "type": "simple"
2599
+ "property": "authorizationType",
2600
+ "equals": "APIKEY"
2622
2601
  },
2623
- "type": "String"
2602
+ "constraints": {
2603
+ "notEmpty": true
2604
+ }
2624
2605
  },
2625
2606
  {
2626
- "id": "deduplicationModeManual",
2627
- "value": "MANUAL",
2628
- "group": "deduplication",
2607
+ "label": "API Key locator",
2608
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2609
+ "type": "String",
2610
+ "group": "authorization",
2611
+ "feel": "required",
2629
2612
  "binding": {
2630
- "name": "deduplicationMode",
2631
- "type": "zeebe:property"
2613
+ "type": "zeebe:property",
2614
+ "name": "inbound.auth.apiKeyLocator"
2632
2615
  },
2633
2616
  "condition": {
2634
- "property": "deduplicationId",
2635
- "isActive": true,
2636
- "type": "simple"
2617
+ "property": "authorizationType",
2618
+ "equals": "APIKEY"
2637
2619
  },
2638
- "type": "Hidden"
2620
+ "constraints": {
2621
+ "notEmpty": true
2622
+ },
2623
+ "value": "=split(request.headers.authorization, \" \")[2]"
2639
2624
  },
2640
2625
  {
2641
- "id": "deduplicationModeAuto",
2642
- "value": "AUTO",
2643
- "group": "deduplication",
2626
+ "label": "Condition",
2627
+ "type": "String",
2628
+ "group": "activation",
2629
+ "feel": "required",
2630
+ "optional": true,
2644
2631
  "binding": {
2645
- "name": "deduplicationMode",
2646
- "type": "zeebe:property"
2647
- },
2648
- "condition": {
2649
- "property": "deduplicationId",
2650
- "isActive": false,
2651
- "type": "simple"
2632
+ "type": "zeebe:property",
2633
+ "name": "activationCondition"
2652
2634
  },
2653
- "type": "Hidden"
2635
+ "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
2654
2636
  },
2655
2637
  {
2656
- "id": "resultVariable",
2657
2638
  "label": "Result variable",
2658
- "description": "Name of variable to store the response in",
2659
- "group": "output",
2639
+ "type": "String",
2640
+ "group": "variable-mapping",
2641
+ "optional": true,
2660
2642
  "binding": {
2661
- "name": "resultVariable",
2662
- "type": "zeebe:property"
2643
+ "type": "zeebe:property",
2644
+ "name": "resultVariable"
2663
2645
  },
2664
- "type": "String"
2646
+ "description": "Name of variable to store the result of the connector in"
2665
2647
  },
2666
2648
  {
2667
- "id": "resultExpression",
2668
2649
  "label": "Result expression",
2669
- "description": "Expression to map the response into process variables",
2650
+ "type": "String",
2651
+ "group": "variable-mapping",
2670
2652
  "feel": "required",
2671
- "group": "output",
2653
+ "optional": true,
2672
2654
  "binding": {
2673
- "name": "resultExpression",
2674
- "type": "zeebe:property"
2655
+ "type": "zeebe:property",
2656
+ "name": "resultExpression"
2675
2657
  },
2676
- "type": "Text"
2658
+ "description": "Expression to map the inbound payload to process variables"
2659
+ },
2660
+ {
2661
+ "label": "Response body expression",
2662
+ "type": "Text",
2663
+ "group": "webhookResponse",
2664
+ "feel": "required",
2665
+ "optional": true,
2666
+ "binding": {
2667
+ "type": "zeebe:property",
2668
+ "name": "inbound.responseBodyExpression"
2669
+ },
2670
+ "description": "Specify condition and response"
2677
2671
  }
2678
2672
  ],
2679
2673
  "icon": {
2680
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
2674
+ "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
2675
+ },
2676
+ "engines": {
2677
+ "camunda": "^8.2"
2681
2678
  }
2682
2679
  },
2683
2680
  {
2684
2681
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2685
2682
  "name": "Webhook Start Event Connector",
2686
2683
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2687
- "version": 8,
2688
2684
  "description": "Configure webhook to receive callbacks",
2689
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2685
+ "metadata": {
2686
+ "keywords": []
2687
+ },
2688
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
2689
+ "version": 13,
2690
2690
  "category": {
2691
2691
  "id": "connectors",
2692
2692
  "name": "Connectors"
2693
2693
  },
2694
+ "deprecated": {
2695
+ "message": "Migrate to Webhook Message Start Event Connector"
2696
+ },
2694
2697
  "appliesTo": ["bpmn:StartEvent"],
2695
2698
  "elementType": {
2696
2699
  "value": "bpmn:StartEvent"
2697
2700
  },
2701
+ "engines": {
2702
+ "camunda": "^8.3"
2703
+ },
2698
2704
  "groups": [
2699
2705
  {
2700
2706
  "id": "endpoint",
@@ -2708,42 +2714,44 @@
2708
2714
  "id": "authorization",
2709
2715
  "label": "Authorization"
2710
2716
  },
2717
+ {
2718
+ "id": "webhookResponse",
2719
+ "label": "Webhook response"
2720
+ },
2711
2721
  {
2712
2722
  "id": "activation",
2713
2723
  "label": "Activation"
2714
2724
  },
2715
2725
  {
2716
- "id": "variable-mapping",
2717
- "label": "Variable mapping"
2726
+ "id": "deduplication",
2727
+ "label": "Deduplication",
2728
+ "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
2718
2729
  },
2719
2730
  {
2720
- "id": "webhookResponse",
2721
- "label": "Webhook response"
2731
+ "id": "output",
2732
+ "label": "Output mapping"
2722
2733
  }
2723
2734
  ],
2724
- "properties": [
2725
- {
2726
- "type": "Hidden",
2727
- "value": "io.camunda:webhook:1",
2728
- "binding": {
2729
- "type": "zeebe:property",
2730
- "name": "inbound.type"
2731
- }
2732
- },
2735
+ "properties": [
2733
2736
  {
2734
- "type": "Hidden",
2735
- "value": "ConfigurableInboundWebhook",
2737
+ "value": "io.camunda:webhook:1",
2736
2738
  "binding": {
2737
- "type": "zeebe:property",
2738
- "name": "inbound.subtype"
2739
- }
2739
+ "name": "inbound.type",
2740
+ "type": "zeebe:property"
2741
+ },
2742
+ "type": "Hidden"
2740
2743
  },
2741
2744
  {
2742
- "id": "webhookMethod",
2745
+ "id": "inbound.method",
2743
2746
  "label": "Webhook method",
2744
- "group": "endpoint",
2745
2747
  "description": "Select HTTP method",
2748
+ "optional": false,
2746
2749
  "value": "any",
2750
+ "group": "endpoint",
2751
+ "binding": {
2752
+ "name": "inbound.method",
2753
+ "type": "zeebe:property"
2754
+ },
2747
2755
  "type": "Dropdown",
2748
2756
  "choices": [
2749
2757
  {
@@ -2751,46 +2759,53 @@
2751
2759
  "value": "any"
2752
2760
  },
2753
2761
  {
2754
- "name": "Get",
2762
+ "name": "GET",
2755
2763
  "value": "get"
2756
2764
  },
2757
2765
  {
2758
- "name": "Post",
2766
+ "name": "POST",
2759
2767
  "value": "post"
2760
2768
  },
2761
2769
  {
2762
- "name": "Put",
2770
+ "name": "PUT",
2763
2771
  "value": "put"
2764
2772
  },
2765
2773
  {
2766
- "name": "Delete",
2774
+ "name": "DELETE",
2767
2775
  "value": "delete"
2768
2776
  }
2769
- ],
2770
- "binding": {
2771
- "type": "zeebe:property",
2772
- "name": "inbound.method"
2773
- }
2777
+ ]
2774
2778
  },
2775
2779
  {
2780
+ "id": "inbound.context",
2776
2781
  "label": "Webhook ID",
2777
- "type": "String",
2782
+ "description": "The webhook ID is a part of the URL",
2783
+ "optional": false,
2784
+ "constraints": {
2785
+ "notEmpty": true,
2786
+ "pattern": {
2787
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
2788
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
2789
+ }
2790
+ },
2778
2791
  "group": "endpoint",
2779
2792
  "binding": {
2780
- "type": "zeebe:property",
2781
- "name": "inbound.context"
2793
+ "name": "inbound.context",
2794
+ "type": "zeebe:property"
2782
2795
  },
2783
- "description": "The webhook ID is a part of the URL",
2784
- "constraints": {
2785
- "notEmpty": true
2786
- }
2796
+ "type": "String"
2787
2797
  },
2788
2798
  {
2789
- "id": "shouldValidateHmac",
2799
+ "id": "inbound.shouldValidateHmac",
2790
2800
  "label": "HMAC authentication",
2791
- "group": "authentication",
2792
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2801
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2802
+ "optional": false,
2793
2803
  "value": "disabled",
2804
+ "group": "authentication",
2805
+ "binding": {
2806
+ "name": "inbound.shouldValidateHmac",
2807
+ "type": "zeebe:property"
2808
+ },
2794
2809
  "type": "Dropdown",
2795
2810
  "choices": [
2796
2811
  {
@@ -2801,47 +2816,60 @@
2801
2816
  "name": "Disabled",
2802
2817
  "value": "disabled"
2803
2818
  }
2804
- ],
2805
- "binding": {
2806
- "type": "zeebe:property",
2807
- "name": "inbound.shouldValidateHmac"
2808
- }
2819
+ ]
2809
2820
  },
2810
2821
  {
2822
+ "id": "inbound.hmacSecret",
2811
2823
  "label": "HMAC secret key",
2812
2824
  "description": "Shared secret key",
2813
- "type": "String",
2814
- "group": "authentication",
2815
2825
  "optional": true,
2826
+ "feel": "optional",
2827
+ "group": "authentication",
2816
2828
  "binding": {
2817
- "type": "zeebe:property",
2818
- "name": "inbound.hmacSecret"
2829
+ "name": "inbound.hmacSecret",
2830
+ "type": "zeebe:property"
2819
2831
  },
2820
2832
  "condition": {
2821
- "property": "shouldValidateHmac",
2822
- "equals": "enabled"
2823
- }
2833
+ "property": "inbound.shouldValidateHmac",
2834
+ "equals": "enabled",
2835
+ "type": "simple"
2836
+ },
2837
+ "type": "String"
2824
2838
  },
2825
2839
  {
2840
+ "id": "inbound.hmacHeader",
2826
2841
  "label": "HMAC header",
2827
2842
  "description": "Name of header attribute that will contain the HMAC value",
2828
- "type": "String",
2829
- "group": "authentication",
2830
2843
  "optional": true,
2844
+ "feel": "optional",
2845
+ "group": "authentication",
2831
2846
  "binding": {
2832
- "type": "zeebe:property",
2833
- "name": "inbound.hmacHeader"
2847
+ "name": "inbound.hmacHeader",
2848
+ "type": "zeebe:property"
2834
2849
  },
2835
2850
  "condition": {
2836
- "property": "shouldValidateHmac",
2837
- "equals": "enabled"
2838
- }
2851
+ "property": "inbound.shouldValidateHmac",
2852
+ "equals": "enabled",
2853
+ "type": "simple"
2854
+ },
2855
+ "type": "String"
2839
2856
  },
2840
2857
  {
2858
+ "id": "inbound.hmacAlgorithm",
2841
2859
  "label": "HMAC algorithm",
2842
- "group": "authentication",
2843
2860
  "description": "Choose HMAC algorithm",
2861
+ "optional": false,
2844
2862
  "value": "sha_256",
2863
+ "group": "authentication",
2864
+ "binding": {
2865
+ "name": "inbound.hmacAlgorithm",
2866
+ "type": "zeebe:property"
2867
+ },
2868
+ "condition": {
2869
+ "property": "inbound.shouldValidateHmac",
2870
+ "equals": "enabled",
2871
+ "type": "simple"
2872
+ },
2845
2873
  "type": "Dropdown",
2846
2874
  "choices": [
2847
2875
  {
@@ -2856,248 +2884,327 @@
2856
2884
  "name": "SHA-512",
2857
2885
  "value": "sha_512"
2858
2886
  }
2859
- ],
2860
- "binding": {
2861
- "type": "zeebe:property",
2862
- "name": "inbound.hmacAlgorithm"
2863
- },
2864
- "condition": {
2865
- "property": "shouldValidateHmac",
2866
- "equals": "enabled"
2867
- }
2887
+ ]
2868
2888
  },
2869
2889
  {
2890
+ "id": "inbound.hmacScopes",
2870
2891
  "label": "HMAC scopes",
2871
- "group": "authentication",
2872
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
2873
- "feel": "required",
2874
- "type": "String",
2892
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
2875
2893
  "optional": true,
2894
+ "feel": "required",
2895
+ "group": "authentication",
2876
2896
  "binding": {
2877
- "type": "zeebe:property",
2878
- "name": "inbound.hmacScopes"
2897
+ "name": "inbound.hmacScopes",
2898
+ "type": "zeebe:property"
2879
2899
  },
2880
2900
  "condition": {
2881
- "property": "shouldValidateHmac",
2882
- "equals": "enabled"
2883
- }
2901
+ "property": "inbound.shouldValidateHmac",
2902
+ "equals": "enabled",
2903
+ "type": "simple"
2904
+ },
2905
+ "type": "String"
2884
2906
  },
2885
2907
  {
2886
- "id": "authorizationType",
2908
+ "id": "inbound.auth.type",
2887
2909
  "label": "Authorization type",
2888
- "group": "authorization",
2889
- "description": "Choose the authorization type.",
2910
+ "description": "Choose the authorization type",
2890
2911
  "value": "NONE",
2912
+ "group": "authorization",
2913
+ "binding": {
2914
+ "name": "inbound.auth.type",
2915
+ "type": "zeebe:property"
2916
+ },
2891
2917
  "type": "Dropdown",
2892
2918
  "choices": [
2893
2919
  {
2894
2920
  "name": "None",
2895
2921
  "value": "NONE"
2896
2922
  },
2897
- {
2898
- "name": "JWT",
2899
- "value": "JWT"
2900
- },
2901
2923
  {
2902
2924
  "name": "Basic",
2903
2925
  "value": "BASIC"
2904
2926
  },
2905
2927
  {
2906
- "name": "API Key",
2928
+ "name": "API key",
2907
2929
  "value": "APIKEY"
2930
+ },
2931
+ {
2932
+ "name": "JWT",
2933
+ "value": "JWT"
2908
2934
  }
2909
- ],
2935
+ ]
2936
+ },
2937
+ {
2938
+ "id": "inbound.auth.username",
2939
+ "label": "Username",
2940
+ "description": "Username for basic authentication",
2941
+ "optional": false,
2942
+ "feel": "optional",
2943
+ "group": "authorization",
2910
2944
  "binding": {
2911
- "type": "zeebe:property",
2912
- "name": "inbound.auth.type"
2913
- }
2945
+ "name": "inbound.auth.username",
2946
+ "type": "zeebe:property"
2947
+ },
2948
+ "condition": {
2949
+ "property": "inbound.auth.type",
2950
+ "equals": "BASIC",
2951
+ "type": "simple"
2952
+ },
2953
+ "type": "String"
2914
2954
  },
2915
2955
  {
2916
- "label": "JWK url",
2917
- "description": "Well-known url of JWKs",
2918
- "type": "String",
2956
+ "id": "inbound.auth.password",
2957
+ "label": "Password",
2958
+ "description": "Password for basic authentication",
2959
+ "optional": false,
2960
+ "feel": "optional",
2919
2961
  "group": "authorization",
2962
+ "binding": {
2963
+ "name": "inbound.auth.password",
2964
+ "type": "zeebe:property"
2965
+ },
2966
+ "condition": {
2967
+ "property": "inbound.auth.type",
2968
+ "equals": "BASIC",
2969
+ "type": "simple"
2970
+ },
2971
+ "type": "String"
2972
+ },
2973
+ {
2974
+ "id": "inbound.auth.apiKey",
2975
+ "label": "API key",
2976
+ "description": "Expected API key",
2977
+ "optional": false,
2920
2978
  "feel": "optional",
2921
- "optional": true,
2979
+ "group": "authorization",
2980
+ "binding": {
2981
+ "name": "inbound.auth.apiKey",
2982
+ "type": "zeebe:property"
2983
+ },
2984
+ "condition": {
2985
+ "property": "inbound.auth.type",
2986
+ "equals": "APIKEY",
2987
+ "type": "simple"
2988
+ },
2989
+ "type": "String"
2990
+ },
2991
+ {
2992
+ "id": "inbound.auth.apiKeyLocator",
2993
+ "label": "API key locator",
2994
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2995
+ "optional": false,
2996
+ "value": "=split(request.headers.authorization, \" \")[2]",
2997
+ "constraints": {
2998
+ "notEmpty": true
2999
+ },
3000
+ "feel": "required",
3001
+ "group": "authorization",
3002
+ "binding": {
3003
+ "name": "inbound.auth.apiKeyLocator",
3004
+ "type": "zeebe:property"
3005
+ },
3006
+ "condition": {
3007
+ "property": "inbound.auth.type",
3008
+ "equals": "APIKEY",
3009
+ "type": "simple"
3010
+ },
3011
+ "type": "String"
3012
+ },
3013
+ {
3014
+ "id": "inbound.auth.jwt.jwkUrl",
3015
+ "label": "JWK URL",
3016
+ "description": "Well-known URL of JWKs",
3017
+ "optional": false,
3018
+ "feel": "optional",
3019
+ "group": "authorization",
2922
3020
  "binding": {
2923
- "type": "zeebe:property",
2924
- "name": "inbound.auth.jwt.jwkUrl"
3021
+ "name": "inbound.auth.jwt.jwkUrl",
3022
+ "type": "zeebe:property"
2925
3023
  },
2926
3024
  "condition": {
2927
- "property": "authorizationType",
2928
- "equals": "JWT"
2929
- }
3025
+ "property": "inbound.auth.type",
3026
+ "equals": "JWT",
3027
+ "type": "simple"
3028
+ },
3029
+ "type": "String"
2930
3030
  },
2931
3031
  {
3032
+ "id": "inbound.auth.jwt.permissionsExpression",
2932
3033
  "label": "JWT role property expression",
2933
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
2934
- "type": "String",
2935
- "group": "authorization",
3034
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3035
+ "optional": false,
2936
3036
  "feel": "required",
2937
- "optional": true,
3037
+ "group": "authorization",
2938
3038
  "binding": {
2939
- "type": "zeebe:property",
2940
- "name": "inbound.auth.jwt.permissionsExpression"
3039
+ "name": "inbound.auth.jwt.permissionsExpression",
3040
+ "type": "zeebe:property"
2941
3041
  },
2942
3042
  "condition": {
2943
- "property": "authorizationType",
2944
- "equals": "JWT"
2945
- }
3043
+ "property": "inbound.auth.type",
3044
+ "equals": "JWT",
3045
+ "type": "simple"
3046
+ },
3047
+ "type": "String"
2946
3048
  },
2947
3049
  {
3050
+ "id": "inbound.auth.jwt.requiredPermissions",
2948
3051
  "label": "Required roles",
2949
3052
  "description": "List of roles to test JWT roles against",
2950
- "type": "String",
2951
- "group": "authorization",
3053
+ "optional": false,
2952
3054
  "feel": "required",
2953
- "optional": true,
2954
- "binding": {
2955
- "type": "zeebe:property",
2956
- "name": "inbound.auth.jwt.requiredPermissions"
2957
- },
2958
- "condition": {
2959
- "property": "authorizationType",
2960
- "equals": "JWT"
2961
- }
2962
- },
2963
- {
2964
- "label": "Username",
2965
- "description": "Username for basic authentication",
2966
- "type": "String",
2967
3055
  "group": "authorization",
2968
- "feel": "optional",
2969
3056
  "binding": {
2970
- "type": "zeebe:property",
2971
- "name": "inbound.auth.username"
3057
+ "name": "inbound.auth.jwt.requiredPermissions",
3058
+ "type": "zeebe:property"
2972
3059
  },
2973
3060
  "condition": {
2974
- "property": "authorizationType",
2975
- "equals": "BASIC"
3061
+ "property": "inbound.auth.type",
3062
+ "equals": "JWT",
3063
+ "type": "simple"
2976
3064
  },
2977
- "constraints": {
2978
- "notEmpty": true
2979
- }
3065
+ "type": "String"
2980
3066
  },
2981
3067
  {
2982
- "label": "Password",
2983
- "description": "Password for basic authentication",
2984
- "type": "String",
2985
- "group": "authorization",
2986
- "feel": "optional",
3068
+ "id": "inbound.responseExpression",
3069
+ "label": "Response expression",
3070
+ "description": "Expression used to generate the HTTP response",
3071
+ "optional": true,
3072
+ "feel": "required",
3073
+ "group": "webhookResponse",
2987
3074
  "binding": {
2988
- "type": "zeebe:property",
2989
- "name": "inbound.auth.password"
2990
- },
2991
- "condition": {
2992
- "property": "authorizationType",
2993
- "equals": "BASIC"
3075
+ "name": "inbound.responseExpression",
3076
+ "type": "zeebe:property"
2994
3077
  },
2995
- "constraints": {
2996
- "notEmpty": true
2997
- }
3078
+ "type": "Text"
2998
3079
  },
2999
3080
  {
3000
- "label": "API Key",
3001
- "description": "Expected API key",
3002
- "type": "String",
3003
- "group": "authorization",
3004
- "feel": "optional",
3081
+ "id": "inbound.verificationExpression",
3082
+ "label": "One time verification response expression",
3083
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
3084
+ "optional": true,
3085
+ "feel": "required",
3086
+ "group": "webhookResponse",
3005
3087
  "binding": {
3006
- "type": "zeebe:property",
3007
- "name": "inbound.auth.apiKey"
3008
- },
3009
- "condition": {
3010
- "property": "authorizationType",
3011
- "equals": "APIKEY"
3088
+ "name": "inbound.verificationExpression",
3089
+ "type": "zeebe:property"
3012
3090
  },
3013
- "constraints": {
3014
- "notEmpty": true
3015
- }
3091
+ "type": "Text"
3016
3092
  },
3017
3093
  {
3018
- "label": "API Key locator",
3019
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3020
- "type": "String",
3021
- "group": "authorization",
3094
+ "id": "activationCondition",
3095
+ "label": "Activation condition",
3096
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
3097
+ "optional": true,
3022
3098
  "feel": "required",
3099
+ "group": "activation",
3023
3100
  "binding": {
3024
- "type": "zeebe:property",
3025
- "name": "inbound.auth.apiKeyLocator"
3101
+ "name": "activationCondition",
3102
+ "type": "zeebe:property"
3026
3103
  },
3027
- "condition": {
3028
- "property": "authorizationType",
3029
- "equals": "APIKEY"
3104
+ "type": "String"
3105
+ },
3106
+ {
3107
+ "id": "consumeUnmatchedEvents",
3108
+ "label": "Consume unmatched events",
3109
+ "value": true,
3110
+ "group": "activation",
3111
+ "binding": {
3112
+ "name": "consumeUnmatchedEvents",
3113
+ "type": "zeebe:property"
3030
3114
  },
3031
- "constraints": {
3032
- "notEmpty": true
3115
+ "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
3116
+ "type": "Boolean"
3117
+ },
3118
+ {
3119
+ "id": "deduplicationModeManualFlag",
3120
+ "label": "Manual mode",
3121
+ "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
3122
+ "value": false,
3123
+ "group": "deduplication",
3124
+ "binding": {
3125
+ "name": "deduplicationModeManualFlag",
3126
+ "type": "zeebe:property"
3033
3127
  },
3034
- "value": "=split(request.headers.authorization, \" \")[2]"
3128
+ "type": "Boolean"
3035
3129
  },
3036
3130
  {
3037
- "label": "Condition",
3038
- "type": "String",
3039
- "group": "activation",
3040
- "feel": "required",
3041
- "optional": true,
3131
+ "id": "deduplicationId",
3132
+ "label": "Deduplication ID",
3133
+ "constraints": {
3134
+ "notEmpty": true,
3135
+ "pattern": {
3136
+ "value": "^[a-zA-Z0-9_-]+$",
3137
+ "message": "can only contain alphanumeric characters, dashes, and underscores"
3138
+ }
3139
+ },
3140
+ "group": "deduplication",
3042
3141
  "binding": {
3043
- "type": "zeebe:property",
3044
- "name": "activationCondition"
3142
+ "name": "deduplicationId",
3143
+ "type": "zeebe:property"
3045
3144
  },
3046
- "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
3145
+ "condition": {
3146
+ "property": "deduplicationModeManualFlag",
3147
+ "equals": true,
3148
+ "type": "simple"
3149
+ },
3150
+ "type": "String"
3047
3151
  },
3048
3152
  {
3049
- "label": "Result variable",
3050
- "type": "String",
3051
- "group": "variable-mapping",
3052
- "optional": true,
3153
+ "id": "deduplicationModeManual",
3154
+ "value": "MANUAL",
3155
+ "group": "deduplication",
3053
3156
  "binding": {
3054
- "type": "zeebe:property",
3055
- "name": "resultVariable"
3157
+ "name": "deduplicationMode",
3158
+ "type": "zeebe:property"
3056
3159
  },
3057
- "description": "Name of variable to store the result of the connector in"
3160
+ "condition": {
3161
+ "property": "deduplicationId",
3162
+ "isActive": true,
3163
+ "type": "simple"
3164
+ },
3165
+ "type": "Hidden"
3058
3166
  },
3059
3167
  {
3060
- "label": "Result expression",
3061
- "type": "String",
3062
- "group": "variable-mapping",
3063
- "feel": "required",
3064
- "optional": true,
3168
+ "id": "deduplicationModeAuto",
3169
+ "value": "AUTO",
3170
+ "group": "deduplication",
3065
3171
  "binding": {
3066
- "type": "zeebe:property",
3067
- "name": "resultExpression"
3172
+ "name": "deduplicationMode",
3173
+ "type": "zeebe:property"
3068
3174
  },
3069
- "description": "Expression to map the inbound payload to process variables"
3175
+ "condition": {
3176
+ "property": "deduplicationId",
3177
+ "isActive": false,
3178
+ "type": "simple"
3179
+ },
3180
+ "type": "Hidden"
3070
3181
  },
3071
3182
  {
3072
- "label": "One time verification response expression",
3073
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
3074
- "type": "Text",
3075
- "group": "webhookResponse",
3076
- "feel": "required",
3077
- "optional": true,
3183
+ "id": "resultVariable",
3184
+ "label": "Result variable",
3185
+ "description": "Name of variable to store the response in",
3186
+ "group": "output",
3078
3187
  "binding": {
3079
- "type": "zeebe:property",
3080
- "name": "inbound.verificationExpression"
3081
- }
3188
+ "name": "resultVariable",
3189
+ "type": "zeebe:property"
3190
+ },
3191
+ "type": "String"
3082
3192
  },
3083
3193
  {
3084
- "label": "Response body expression",
3085
- "type": "Text",
3086
- "group": "webhookResponse",
3194
+ "id": "resultExpression",
3195
+ "label": "Result expression",
3196
+ "description": "Expression to map the response into process variables",
3087
3197
  "feel": "required",
3088
- "optional": true,
3198
+ "group": "output",
3089
3199
  "binding": {
3090
- "type": "zeebe:property",
3091
- "name": "inbound.responseBodyExpression"
3200
+ "name": "resultExpression",
3201
+ "type": "zeebe:property"
3092
3202
  },
3093
- "description": "Specify condition and response"
3203
+ "type": "Text"
3094
3204
  }
3095
3205
  ],
3096
3206
  "icon": {
3097
- "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
3098
- },
3099
- "engines": {
3100
- "camunda": "^8.4"
3207
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3101
3208
  }
3102
3209
  },
3103
3210
  {
@@ -3105,8 +3212,8 @@
3105
3212
  "name": "Webhook Start Event Connector",
3106
3213
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3107
3214
  "description": "Configure webhook to receive callbacks",
3108
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3109
- "version": 10,
3215
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3216
+ "version": 11,
3110
3217
  "category": {
3111
3218
  "id": "connectors",
3112
3219
  "name": "Connectors"
@@ -3207,7 +3314,7 @@
3207
3314
  {
3208
3315
  "id": "inbound.shouldValidateHmac",
3209
3316
  "label": "HMAC authentication",
3210
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3317
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3211
3318
  "optional": false,
3212
3319
  "value": "disabled",
3213
3320
  "group": "authentication",
@@ -3298,7 +3405,7 @@
3298
3405
  {
3299
3406
  "id": "inbound.hmacScopes",
3300
3407
  "label": "HMAC scopes",
3301
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
3408
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
3302
3409
  "optional": true,
3303
3410
  "feel": "required",
3304
3411
  "group": "authentication",
@@ -3400,7 +3507,7 @@
3400
3507
  {
3401
3508
  "id": "inbound.auth.apiKeyLocator",
3402
3509
  "label": "API key locator",
3403
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3510
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3404
3511
  "optional": false,
3405
3512
  "value": "=split(request.headers.authorization, \" \")[2]",
3406
3513
  "constraints": {
@@ -3440,7 +3547,7 @@
3440
3547
  {
3441
3548
  "id": "inbound.auth.jwt.permissionsExpression",
3442
3549
  "label": "JWT role property expression",
3443
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3550
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3444
3551
  "optional": false,
3445
3552
  "feel": "required",
3446
3553
  "group": "authorization",
@@ -3474,14 +3581,14 @@
3474
3581
  "type": "String"
3475
3582
  },
3476
3583
  {
3477
- "id": "inbound.responseBodyExpression",
3478
- "label": "Response body expression",
3479
- "description": "Specify condition and response",
3584
+ "id": "inbound.responseExpression",
3585
+ "label": "Response expression",
3586
+ "description": "Expression used to generate the HTTP response",
3480
3587
  "optional": true,
3481
3588
  "feel": "required",
3482
3589
  "group": "webhookResponse",
3483
3590
  "binding": {
3484
- "name": "inbound.responseBodyExpression",
3591
+ "name": "inbound.responseExpression",
3485
3592
  "type": "zeebe:property"
3486
3593
  },
3487
3594
  "type": "Text"
@@ -3512,6 +3619,18 @@
3512
3619
  },
3513
3620
  "type": "String"
3514
3621
  },
3622
+ {
3623
+ "id": "consumeUnmatchedEvents",
3624
+ "label": "Consume unmatched events",
3625
+ "value": true,
3626
+ "group": "activation",
3627
+ "binding": {
3628
+ "name": "consumeUnmatchedEvents",
3629
+ "type": "zeebe:property"
3630
+ },
3631
+ "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
3632
+ "type": "Boolean"
3633
+ },
3515
3634
  {
3516
3635
  "id": "resultVariable",
3517
3636
  "label": "Result variable",
@@ -3540,14 +3659,14 @@
3540
3659
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3541
3660
  },
3542
3661
  "engines": {
3543
- "camunda": "^8.5"
3662
+ "camunda": "^8.6"
3544
3663
  }
3545
3664
  },
3546
3665
  {
3547
3666
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3548
- "name": "Webhook connector",
3667
+ "name": "Webhook Connector",
3549
3668
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3550
- "version": 6,
3669
+ "version": 1,
3551
3670
  "description": "Configure webhook to receive callbacks",
3552
3671
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3553
3672
  "category": {
@@ -3561,15 +3680,7 @@
3561
3680
  "groups": [
3562
3681
  {
3563
3682
  "id": "endpoint",
3564
- "label": "Webhook configuration"
3565
- },
3566
- {
3567
- "id": "authentication",
3568
- "label": "Authentication"
3569
- },
3570
- {
3571
- "id": "authorization",
3572
- "label": "Authorization"
3683
+ "label": "Webhook Configuration"
3573
3684
  },
3574
3685
  {
3575
3686
  "id": "activation",
@@ -3577,11 +3688,7 @@
3577
3688
  },
3578
3689
  {
3579
3690
  "id": "variable-mapping",
3580
- "label": "Variable mapping"
3581
- },
3582
- {
3583
- "id": "webhookResponse",
3584
- "label": "Webhook response"
3691
+ "label": "Variable Mapping"
3585
3692
  }
3586
3693
  ],
3587
3694
  "properties": [
@@ -3601,40 +3708,6 @@
3601
3708
  "name": "inbound.subtype"
3602
3709
  }
3603
3710
  },
3604
- {
3605
- "id": "webhookMethod",
3606
- "label": "Webhook method",
3607
- "group": "endpoint",
3608
- "description": "Select HTTP method",
3609
- "value": "any",
3610
- "type": "Dropdown",
3611
- "choices": [
3612
- {
3613
- "name": "Any",
3614
- "value": "any"
3615
- },
3616
- {
3617
- "name": "Get",
3618
- "value": "get"
3619
- },
3620
- {
3621
- "name": "Post",
3622
- "value": "post"
3623
- },
3624
- {
3625
- "name": "Put",
3626
- "value": "put"
3627
- },
3628
- {
3629
- "name": "Delete",
3630
- "value": "delete"
3631
- }
3632
- ],
3633
- "binding": {
3634
- "type": "zeebe:property",
3635
- "name": "inbound.method"
3636
- }
3637
- },
3638
3711
  {
3639
3712
  "label": "Webhook ID",
3640
3713
  "type": "String",
@@ -3643,15 +3716,15 @@
3643
3716
  "type": "zeebe:property",
3644
3717
  "name": "inbound.context"
3645
3718
  },
3646
- "description": "The webhook ID is a part of the URL",
3647
3719
  "constraints": {
3648
3720
  "notEmpty": true
3649
- }
3721
+ },
3722
+ "description": "The webhook ID is a part of the URL"
3650
3723
  },
3651
3724
  {
3652
3725
  "id": "shouldValidateHmac",
3653
3726
  "label": "HMAC authentication",
3654
- "group": "authentication",
3727
+ "group": "endpoint",
3655
3728
  "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3656
3729
  "value": "disabled",
3657
3730
  "type": "Dropdown",
@@ -3662,239 +3735,72 @@
3662
3735
  },
3663
3736
  {
3664
3737
  "name": "Disabled",
3665
- "value": "disabled"
3666
- }
3667
- ],
3668
- "binding": {
3669
- "type": "zeebe:property",
3670
- "name": "inbound.shouldValidateHmac"
3671
- }
3672
- },
3673
- {
3674
- "label": "HMAC secret key",
3675
- "description": "Shared secret key",
3676
- "type": "String",
3677
- "group": "authentication",
3678
- "optional": true,
3679
- "binding": {
3680
- "type": "zeebe:property",
3681
- "name": "inbound.hmacSecret"
3682
- },
3683
- "condition": {
3684
- "property": "shouldValidateHmac",
3685
- "equals": "enabled"
3686
- }
3687
- },
3688
- {
3689
- "label": "HMAC header",
3690
- "description": "Name of header attribute that will contain the HMAC value",
3691
- "type": "String",
3692
- "group": "authentication",
3693
- "optional": true,
3694
- "binding": {
3695
- "type": "zeebe:property",
3696
- "name": "inbound.hmacHeader"
3697
- },
3698
- "condition": {
3699
- "property": "shouldValidateHmac",
3700
- "equals": "enabled"
3701
- }
3702
- },
3703
- {
3704
- "label": "HMAC algorithm",
3705
- "group": "authentication",
3706
- "description": "Choose HMAC algorithm",
3707
- "value": "sha_256",
3708
- "type": "Dropdown",
3709
- "choices": [
3710
- {
3711
- "name": "SHA-1",
3712
- "value": "sha_1"
3713
- },
3714
- {
3715
- "name": "SHA-256",
3716
- "value": "sha_256"
3717
- },
3718
- {
3719
- "name": "SHA-512",
3720
- "value": "sha_512"
3721
- }
3722
- ],
3723
- "binding": {
3724
- "type": "zeebe:property",
3725
- "name": "inbound.hmacAlgorithm"
3726
- },
3727
- "condition": {
3728
- "property": "shouldValidateHmac",
3729
- "equals": "enabled"
3730
- }
3731
- },
3732
- {
3733
- "label": "HMAC scopes",
3734
- "group": "authentication",
3735
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
3736
- "feel": "required",
3737
- "type": "String",
3738
- "optional": true,
3739
- "binding": {
3740
- "type": "zeebe:property",
3741
- "name": "inbound.hmacScopes"
3742
- },
3743
- "condition": {
3744
- "property": "shouldValidateHmac",
3745
- "equals": "enabled"
3746
- }
3747
- },
3748
- {
3749
- "id": "authorizationType",
3750
- "label": "Authorization type",
3751
- "group": "authorization",
3752
- "description": "Choose the authorization type.",
3753
- "value": "NONE",
3754
- "type": "Dropdown",
3755
- "choices": [
3756
- {
3757
- "name": "None",
3758
- "value": "NONE"
3759
- },
3760
- {
3761
- "name": "JWT",
3762
- "value": "JWT"
3763
- },
3764
- {
3765
- "name": "Basic",
3766
- "value": "BASIC"
3767
- },
3768
- {
3769
- "name": "API Key",
3770
- "value": "APIKEY"
3771
- }
3772
- ],
3773
- "binding": {
3774
- "type": "zeebe:property",
3775
- "name": "inbound.auth.type"
3776
- }
3777
- },
3778
- {
3779
- "label": "JWK url",
3780
- "description": "Well-known url of JWKs",
3781
- "type": "String",
3782
- "group": "authorization",
3783
- "feel": "optional",
3784
- "optional": true,
3785
- "binding": {
3786
- "type": "zeebe:property",
3787
- "name": "inbound.auth.jwt.jwkUrl"
3788
- },
3789
- "condition": {
3790
- "property": "authorizationType",
3791
- "equals": "JWT"
3792
- }
3793
- },
3794
- {
3795
- "label": "JWT role property expression",
3796
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3797
- "type": "String",
3798
- "group": "authorization",
3799
- "feel": "required",
3800
- "optional": true,
3801
- "binding": {
3802
- "type": "zeebe:property",
3803
- "name": "inbound.auth.jwt.permissionsExpression"
3804
- },
3805
- "condition": {
3806
- "property": "authorizationType",
3807
- "equals": "JWT"
3808
- }
3809
- },
3810
- {
3811
- "label": "Required roles",
3812
- "description": "List of roles to test JWT roles against",
3813
- "type": "String",
3814
- "group": "authorization",
3815
- "feel": "required",
3816
- "optional": true,
3817
- "binding": {
3818
- "type": "zeebe:property",
3819
- "name": "inbound.auth.jwt.requiredPermissions"
3820
- },
3821
- "condition": {
3822
- "property": "authorizationType",
3823
- "equals": "JWT"
3824
- }
3825
- },
3826
- {
3827
- "label": "Username",
3828
- "description": "Username for basic authentication",
3829
- "type": "String",
3830
- "group": "authorization",
3831
- "feel": "optional",
3738
+ "value": "disabled"
3739
+ }
3740
+ ],
3832
3741
  "binding": {
3833
3742
  "type": "zeebe:property",
3834
- "name": "inbound.auth.username"
3835
- },
3836
- "condition": {
3837
- "property": "authorizationType",
3838
- "equals": "BASIC"
3839
- },
3840
- "constraints": {
3841
- "notEmpty": true
3743
+ "name": "inbound.shouldValidateHmac"
3842
3744
  }
3843
3745
  },
3844
3746
  {
3845
- "label": "Password",
3846
- "description": "Password for basic authentication",
3747
+ "label": "HMAC secret key",
3748
+ "description": "Shared secret key",
3847
3749
  "type": "String",
3848
- "group": "authorization",
3849
- "feel": "optional",
3750
+ "group": "endpoint",
3751
+ "optional": true,
3850
3752
  "binding": {
3851
3753
  "type": "zeebe:property",
3852
- "name": "inbound.auth.password"
3754
+ "name": "inbound.hmacSecret"
3853
3755
  },
3854
3756
  "condition": {
3855
- "property": "authorizationType",
3856
- "equals": "BASIC"
3857
- },
3858
- "constraints": {
3859
- "notEmpty": true
3757
+ "property": "shouldValidateHmac",
3758
+ "equals": "enabled"
3860
3759
  }
3861
3760
  },
3862
3761
  {
3863
- "label": "API Key",
3864
- "description": "Expected API key",
3762
+ "label": "HMAC header",
3763
+ "description": "Name of header attribute that will contain the HMAC value",
3865
3764
  "type": "String",
3866
- "group": "authorization",
3867
- "feel": "optional",
3765
+ "group": "endpoint",
3766
+ "optional": true,
3868
3767
  "binding": {
3869
3768
  "type": "zeebe:property",
3870
- "name": "inbound.auth.apiKey"
3769
+ "name": "inbound.hmacHeader"
3871
3770
  },
3872
3771
  "condition": {
3873
- "property": "authorizationType",
3874
- "equals": "APIKEY"
3875
- },
3876
- "constraints": {
3877
- "notEmpty": true
3772
+ "property": "shouldValidateHmac",
3773
+ "equals": "enabled"
3878
3774
  }
3879
3775
  },
3880
3776
  {
3881
- "label": "API Key locator",
3882
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3883
- "type": "String",
3884
- "group": "authorization",
3885
- "feel": "required",
3777
+ "label": "HMAC algorithm",
3778
+ "group": "endpoint",
3779
+ "description": "Choose HMAC algorithm",
3780
+ "value": "sha_256",
3781
+ "type": "Dropdown",
3782
+ "choices": [
3783
+ {
3784
+ "name": "SHA-1",
3785
+ "value": "sha_1"
3786
+ },
3787
+ {
3788
+ "name": "SHA-256",
3789
+ "value": "sha_256"
3790
+ },
3791
+ {
3792
+ "name": "SHA-512",
3793
+ "value": "sha_512"
3794
+ }
3795
+ ],
3886
3796
  "binding": {
3887
3797
  "type": "zeebe:property",
3888
- "name": "inbound.auth.apiKeyLocator"
3798
+ "name": "inbound.hmacAlgorithm"
3889
3799
  },
3890
3800
  "condition": {
3891
- "property": "authorizationType",
3892
- "equals": "APIKEY"
3893
- },
3894
- "constraints": {
3895
- "notEmpty": true
3896
- },
3897
- "value": "=split(request.headers.authorization, \" \")[2]"
3801
+ "property": "shouldValidateHmac",
3802
+ "equals": "enabled"
3803
+ }
3898
3804
  },
3899
3805
  {
3900
3806
  "label": "Condition",
@@ -3904,44 +3810,20 @@
3904
3810
  "optional": true,
3905
3811
  "binding": {
3906
3812
  "type": "zeebe:property",
3907
- "name": "activationCondition"
3813
+ "name": "inbound.activationCondition"
3908
3814
  },
3909
3815
  "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
3910
3816
  },
3911
3817
  {
3912
- "label": "Result variable",
3913
- "type": "String",
3914
- "group": "variable-mapping",
3915
- "optional": true,
3916
- "binding": {
3917
- "type": "zeebe:property",
3918
- "name": "resultVariable"
3919
- },
3920
- "description": "Name of variable to store the result of the connector in"
3921
- },
3922
- {
3923
- "label": "Result expression",
3818
+ "label": "Variables",
3924
3819
  "type": "String",
3925
3820
  "group": "variable-mapping",
3926
3821
  "feel": "required",
3927
- "optional": true,
3928
- "binding": {
3929
- "type": "zeebe:property",
3930
- "name": "resultExpression"
3931
- },
3932
- "description": "Expression to map the inbound payload to process variables"
3933
- },
3934
- {
3935
- "label": "Response body expression",
3936
- "type": "Text",
3937
- "group": "webhookResponse",
3938
- "feel": "required",
3939
- "optional": true,
3940
3822
  "binding": {
3941
3823
  "type": "zeebe:property",
3942
- "name": "inbound.responseBodyExpression"
3824
+ "name": "inbound.variableMapping"
3943
3825
  },
3944
- "description": "Specify condition and response"
3826
+ "description": "Map variables from the webhook payload (request) to start the process with. When blank, entire payload is copied over. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
3945
3827
  }
3946
3828
  ],
3947
3829
  "icon": {
@@ -4413,7 +4295,7 @@
4413
4295
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4414
4296
  "name": "Webhook Connector",
4415
4297
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
4416
- "version": 1,
4298
+ "version": 2,
4417
4299
  "description": "Configure webhook to receive callbacks",
4418
4300
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
4419
4301
  "category": {
@@ -4463,10 +4345,10 @@
4463
4345
  "type": "zeebe:property",
4464
4346
  "name": "inbound.context"
4465
4347
  },
4348
+ "description": "The webhook ID is a part of the URL",
4466
4349
  "constraints": {
4467
4350
  "notEmpty": true
4468
- },
4469
- "description": "The webhook ID is a part of the URL"
4351
+ }
4470
4352
  },
4471
4353
  {
4472
4354
  "id": "shouldValidateHmac",
@@ -4562,15 +4444,27 @@
4562
4444
  "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
4563
4445
  },
4564
4446
  {
4565
- "label": "Variables",
4447
+ "label": "Result variable",
4448
+ "type": "String",
4449
+ "group": "variable-mapping",
4450
+ "optional": true,
4451
+ "binding": {
4452
+ "type": "zeebe:property",
4453
+ "name": "resultVariable"
4454
+ },
4455
+ "description": "Name of variable to store the result of the Connector in"
4456
+ },
4457
+ {
4458
+ "label": "Result expression",
4566
4459
  "type": "String",
4567
4460
  "group": "variable-mapping",
4568
4461
  "feel": "required",
4462
+ "optional": true,
4569
4463
  "binding": {
4570
4464
  "type": "zeebe:property",
4571
- "name": "inbound.variableMapping"
4465
+ "name": "resultExpression"
4572
4466
  },
4573
- "description": "Map variables from the webhook payload (request) to start the process with. When blank, entire payload is copied over. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
4467
+ "description": "Expression to map the inbound payload to process variables"
4574
4468
  }
4575
4469
  ],
4576
4470
  "icon": {
@@ -4585,8 +4479,17 @@
4585
4479
  "name": "Webhook Start Event Connector",
4586
4480
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
4587
4481
  "description": "Configure webhook to receive callbacks",
4482
+ "keywords": [
4483
+ "receive webhook",
4484
+ "HTTP trigger",
4485
+ "event received",
4486
+ "inbound event",
4487
+ "webhook trigger",
4488
+ "HTTP callback",
4489
+ "listen for event"
4490
+ ],
4588
4491
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
4589
- "version": 11,
4492
+ "version": 14,
4590
4493
  "category": {
4591
4494
  "id": "connectors",
4592
4495
  "name": "Connectors"
@@ -4595,6 +4498,9 @@
4595
4498
  "elementType": {
4596
4499
  "value": "bpmn:StartEvent"
4597
4500
  },
4501
+ "engines": {
4502
+ "camunda": "^8.3"
4503
+ },
4598
4504
  "groups": [
4599
4505
  {
4600
4506
  "id": "endpoint",
@@ -4616,6 +4522,15 @@
4616
4522
  "id": "activation",
4617
4523
  "label": "Activation"
4618
4524
  },
4525
+ {
4526
+ "id": "synchronousResponse",
4527
+ "label": "Response mode"
4528
+ },
4529
+ {
4530
+ "id": "deduplication",
4531
+ "label": "Deduplication",
4532
+ "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
4533
+ },
4619
4534
  {
4620
4535
  "id": "output",
4621
4536
  "label": "Output mapping"
@@ -5004,10 +4919,97 @@
5004
4919
  "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
5005
4920
  "type": "Boolean"
5006
4921
  },
4922
+ {
4923
+ "id": "synchronousResponse",
4924
+ "label": "Response mode",
4925
+ "description": "Synchronous or Asynchronous <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#response-mode\" target=\"_blank\">response handling</a>",
4926
+ "value": "false",
4927
+ "group": "synchronousResponse",
4928
+ "binding": {
4929
+ "name": "synchronousResponse",
4930
+ "type": "zeebe:property"
4931
+ },
4932
+ "tooltip": "Select synchronous to wait for the result of the correlation. This is either the result of the created process or the process instance key that matched the correlated message subscription. Select asynchronous to trigger the correlation and return immediately without waiting for a result. This affects the data available in the <a href=\"https://docs.camunda.io/docs/components/connectors/connectors/protocol/http-webhook/#use-the-correlation-object\">correlation</a> object for the response expression.",
4933
+ "type": "Dropdown",
4934
+ "choices": [
4935
+ {
4936
+ "name": "Asynchronous",
4937
+ "value": "false"
4938
+ },
4939
+ {
4940
+ "name": "Synchronous",
4941
+ "value": "true"
4942
+ }
4943
+ ]
4944
+ },
4945
+ {
4946
+ "id": "deduplicationModeManualFlag",
4947
+ "label": "Manual mode",
4948
+ "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
4949
+ "value": false,
4950
+ "group": "deduplication",
4951
+ "binding": {
4952
+ "name": "deduplicationModeManualFlag",
4953
+ "type": "zeebe:property"
4954
+ },
4955
+ "type": "Boolean"
4956
+ },
4957
+ {
4958
+ "id": "deduplicationId",
4959
+ "label": "Deduplication ID",
4960
+ "constraints": {
4961
+ "notEmpty": true,
4962
+ "pattern": {
4963
+ "value": "^[a-zA-Z0-9_-]+$",
4964
+ "message": "can only contain alphanumeric characters, dashes, and underscores"
4965
+ }
4966
+ },
4967
+ "group": "deduplication",
4968
+ "binding": {
4969
+ "name": "deduplicationId",
4970
+ "type": "zeebe:property"
4971
+ },
4972
+ "condition": {
4973
+ "property": "deduplicationModeManualFlag",
4974
+ "equals": true,
4975
+ "type": "simple"
4976
+ },
4977
+ "type": "String"
4978
+ },
4979
+ {
4980
+ "id": "deduplicationModeManual",
4981
+ "value": "MANUAL",
4982
+ "group": "deduplication",
4983
+ "binding": {
4984
+ "name": "deduplicationMode",
4985
+ "type": "zeebe:property"
4986
+ },
4987
+ "condition": {
4988
+ "property": "deduplicationId",
4989
+ "isActive": true,
4990
+ "type": "simple"
4991
+ },
4992
+ "type": "Hidden"
4993
+ },
4994
+ {
4995
+ "id": "deduplicationModeAuto",
4996
+ "value": "AUTO",
4997
+ "group": "deduplication",
4998
+ "binding": {
4999
+ "name": "deduplicationMode",
5000
+ "type": "zeebe:property"
5001
+ },
5002
+ "condition": {
5003
+ "property": "deduplicationId",
5004
+ "isActive": false,
5005
+ "type": "simple"
5006
+ },
5007
+ "type": "Hidden"
5008
+ },
5007
5009
  {
5008
5010
  "id": "resultVariable",
5009
5011
  "label": "Result variable",
5010
- "description": "Name of variable to store the response in",
5012
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
5011
5013
  "group": "output",
5012
5014
  "binding": {
5013
5015
  "name": "resultVariable",
@@ -5018,7 +5020,8 @@
5018
5020
  {
5019
5021
  "id": "resultExpression",
5020
5022
  "label": "Result expression",
5021
- "description": "Expression to map the response into process variables",
5023
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
5024
+ "value": "{\n myRequestBody: request.body\n // Use FEEL to extract values, e.g.,:\n // myMessage: request.body.message\n}",
5022
5025
  "feel": "required",
5023
5026
  "group": "output",
5024
5027
  "binding": {
@@ -5030,9 +5033,6 @@
5030
5033
  ],
5031
5034
  "icon": {
5032
5035
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
5033
- },
5034
- "engines": {
5035
- "camunda": "^8.6"
5036
5036
  }
5037
5037
  }
5038
5038
  ]