@camunda/connectors-element-templates 1.0.15 → 1.0.17

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 (87) hide show
  1. package/package.json +1 -1
  2. package/src/connectors.js +8 -6
  3. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +1 -0
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +3 -2
  5. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +3 -2
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +3 -2
  7. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +3 -2
  8. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +30 -30
  9. package/src/element-templates/agenticai-aiagent-job-worker.json +175 -171
  10. package/src/element-templates/agenticai-aiagent-outbound-connector.json +2144 -2144
  11. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +467 -466
  12. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +482 -481
  13. package/src/element-templates/automation-anywhere-outbound-connector.json +613 -613
  14. package/src/element-templates/aws-bedrock-outbound-connector.json +74 -74
  15. package/src/element-templates/aws-dynamodb-outbound-connector.json +80 -80
  16. package/src/element-templates/aws-eventbridge-connector-boundary.json +26 -26
  17. package/src/element-templates/aws-eventbridge-connector-intermediate.json +22 -22
  18. package/src/element-templates/aws-eventbridge-connector-message-start.json +10 -10
  19. package/src/element-templates/aws-eventbridge-connector-start-event.json +26 -26
  20. package/src/element-templates/aws-eventbridge-outbound-connector.json +188 -188
  21. package/src/element-templates/aws-lambda-outbound-connector.json +238 -238
  22. package/src/element-templates/aws-sns-inbound-boundary.json +193 -193
  23. package/src/element-templates/aws-sns-inbound-intermediate.json +332 -332
  24. package/src/element-templates/aws-sns-inbound-message-start.json +110 -110
  25. package/src/element-templates/aws-sns-outbound-connector.json +741 -741
  26. package/src/element-templates/aws-sqs-boundary-connector.json +232 -232
  27. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +493 -493
  28. package/src/element-templates/aws-sqs-outbound-connector.json +753 -753
  29. package/src/element-templates/aws-sqs-start-event-connector.json +483 -483
  30. package/src/element-templates/aws-sqs-start-message.json +438 -438
  31. package/src/element-templates/aws-textract-outbound-connector.json +123 -123
  32. package/src/element-templates/azure-open-ai-connector.json +32 -32
  33. package/src/element-templates/blue-prism-connector.json +6 -6
  34. package/src/element-templates/easy-post-connector.json +114 -114
  35. package/src/element-templates/email-inbound-connector-boundary.json +19 -19
  36. package/src/element-templates/email-inbound-connector-intermediate.json +19 -19
  37. package/src/element-templates/email-message-start-event-connector.json +32 -32
  38. package/src/element-templates/email-outbound-connector.json +233 -233
  39. package/src/element-templates/github-connector.json +11435 -7908
  40. package/src/element-templates/github-webhook-connector-boundary.json +16 -16
  41. package/src/element-templates/github-webhook-connector-intermediate.json +25 -25
  42. package/src/element-templates/github-webhook-connector-start-event.json +64 -64
  43. package/src/element-templates/gitlab-connector.json +3394 -3394
  44. package/src/element-templates/google-drive-outbound-connector.json +420 -420
  45. package/src/element-templates/google-gemini-outbound-connector.json +705 -0
  46. package/src/element-templates/google-maps-platform-connector.json +14 -14
  47. package/src/element-templates/google-sheets-outbound-connector.json +1055 -1055
  48. package/src/element-templates/graphql-outbound-connector.json +1341 -763
  49. package/src/element-templates/http-connector.json.json +654 -0
  50. package/src/element-templates/http-json-connector.json +1491 -1472
  51. package/src/element-templates/http-polling-boundary-catch-event-connector.json +801 -136
  52. package/src/element-templates/http-polling-connector.json +1604 -939
  53. package/src/element-templates/hugging-face-connector.json +215 -10
  54. package/src/element-templates/kafka-inbound-connector-boundary.json +483 -483
  55. package/src/element-templates/kafka-inbound-connector-intermediate.json +466 -466
  56. package/src/element-templates/kafka-inbound-connector-start-message.json +529 -529
  57. package/src/element-templates/kafka-outbound-connector.json +360 -360
  58. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +687 -0
  59. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +687 -0
  60. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +719 -0
  61. package/src/element-templates/microsoft-teams-outbound-connector.json +1892 -47
  62. package/src/element-templates/openai-connector.json +83 -83
  63. package/src/element-templates/operate-connector.json +21 -21
  64. package/src/element-templates/power-automate-connector.json +4 -4
  65. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +422 -422
  66. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +338 -338
  67. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +463 -463
  68. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +360 -360
  69. package/src/element-templates/rabbitmq-outbound-connector.json +354 -354
  70. package/src/element-templates/salesforce-connector.json +38 -38
  71. package/src/element-templates/sendgrid-outbound-connector.json +354 -354
  72. package/src/element-templates/slack-inbound-boundary.json +253 -253
  73. package/src/element-templates/slack-inbound-message-start.json +321 -321
  74. package/src/element-templates/slack-inbound-start-event.json +327 -327
  75. package/src/element-templates/slack-outbound-connector.json +1484 -717
  76. package/src/element-templates/twilio-connector.json +65 -65
  77. package/src/element-templates/twilio-webhook-boundary-connector.json +28 -28
  78. package/src/element-templates/twilio-webhook-intermediate-connector.json +25 -25
  79. package/src/element-templates/uipath-connector.json +10 -10
  80. package/src/element-templates/webhook-connector-boundary.json +1192 -547
  81. package/src/element-templates/webhook-connector-intermediate.json +1258 -613
  82. package/src/element-templates/webhook-connector-receive.json +644 -0
  83. package/src/element-templates/webhook-connector-start-event.json +1690 -1136
  84. package/src/element-templates/webhook-connector-start-message.json +1601 -924
  85. package/src/element-templates/idp-classification-outbound-connector.json +0 -1141
  86. package/src/element-templates/idp-structured-extraction-outbound-connector.json +0 -656
  87. package/src/element-templates/idp-unstructured-extraction-outbound-connector.json +0 -1115
@@ -3,9 +3,9 @@
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
4
  "name": "Webhook Start Event Connector",
5
5
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
6
- "version": 8,
7
6
  "description": "Configure webhook to receive callbacks",
8
7
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
8
+ "version": 10,
9
9
  "category": {
10
10
  "id": "connectors",
11
11
  "name": "Connectors"
@@ -28,41 +28,38 @@
28
28
  "label": "Authorization"
29
29
  },
30
30
  {
31
- "id": "activation",
32
- "label": "Activation"
31
+ "id": "webhookResponse",
32
+ "label": "Webhook response"
33
33
  },
34
34
  {
35
- "id": "variable-mapping",
36
- "label": "Variable mapping"
35
+ "id": "activation",
36
+ "label": "Activation"
37
37
  },
38
38
  {
39
- "id": "webhookResponse",
40
- "label": "Webhook response"
39
+ "id": "output",
40
+ "label": "Output mapping"
41
41
  }
42
42
  ],
43
43
  "properties": [
44
44
  {
45
- "type": "Hidden",
46
45
  "value": "io.camunda:webhook:1",
47
46
  "binding": {
48
- "type": "zeebe:property",
49
- "name": "inbound.type"
50
- }
51
- },
52
- {
53
- "type": "Hidden",
54
- "value": "ConfigurableInboundWebhook",
55
- "binding": {
56
- "type": "zeebe:property",
57
- "name": "inbound.subtype"
58
- }
47
+ "name": "inbound.type",
48
+ "type": "zeebe:property"
49
+ },
50
+ "type": "Hidden"
59
51
  },
60
52
  {
61
- "id": "webhookMethod",
53
+ "id": "inbound.method",
62
54
  "label": "Webhook method",
63
- "group": "endpoint",
64
55
  "description": "Select HTTP method",
56
+ "optional": false,
65
57
  "value": "any",
58
+ "group": "endpoint",
59
+ "binding": {
60
+ "name": "inbound.method",
61
+ "type": "zeebe:property"
62
+ },
66
63
  "type": "Dropdown",
67
64
  "choices": [
68
65
  {
@@ -70,46 +67,53 @@
70
67
  "value": "any"
71
68
  },
72
69
  {
73
- "name": "Get",
70
+ "name": "GET",
74
71
  "value": "get"
75
72
  },
76
73
  {
77
- "name": "Post",
74
+ "name": "POST",
78
75
  "value": "post"
79
76
  },
80
77
  {
81
- "name": "Put",
78
+ "name": "PUT",
82
79
  "value": "put"
83
80
  },
84
81
  {
85
- "name": "Delete",
82
+ "name": "DELETE",
86
83
  "value": "delete"
87
84
  }
88
- ],
89
- "binding": {
90
- "type": "zeebe:property",
91
- "name": "inbound.method"
92
- }
85
+ ]
93
86
  },
94
87
  {
88
+ "id": "inbound.context",
95
89
  "label": "Webhook ID",
96
- "type": "String",
90
+ "description": "The webhook ID is a part of the URL",
91
+ "optional": false,
92
+ "constraints": {
93
+ "notEmpty": true,
94
+ "pattern": {
95
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
96
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
97
+ }
98
+ },
97
99
  "group": "endpoint",
98
100
  "binding": {
99
- "type": "zeebe:property",
100
- "name": "inbound.context"
101
+ "name": "inbound.context",
102
+ "type": "zeebe:property"
101
103
  },
102
- "description": "The webhook ID is a part of the URL",
103
- "constraints": {
104
- "notEmpty": true
105
- }
104
+ "type": "String"
106
105
  },
107
106
  {
108
- "id": "shouldValidateHmac",
107
+ "id": "inbound.shouldValidateHmac",
109
108
  "label": "HMAC authentication",
110
- "group": "authentication",
111
109
  "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",
110
+ "optional": false,
112
111
  "value": "disabled",
112
+ "group": "authentication",
113
+ "binding": {
114
+ "name": "inbound.shouldValidateHmac",
115
+ "type": "zeebe:property"
116
+ },
113
117
  "type": "Dropdown",
114
118
  "choices": [
115
119
  {
@@ -120,47 +124,60 @@
120
124
  "name": "Disabled",
121
125
  "value": "disabled"
122
126
  }
123
- ],
124
- "binding": {
125
- "type": "zeebe:property",
126
- "name": "inbound.shouldValidateHmac"
127
- }
127
+ ]
128
128
  },
129
129
  {
130
+ "id": "inbound.hmacSecret",
130
131
  "label": "HMAC secret key",
131
132
  "description": "Shared secret key",
132
- "type": "String",
133
- "group": "authentication",
134
133
  "optional": true,
134
+ "feel": "optional",
135
+ "group": "authentication",
135
136
  "binding": {
136
- "type": "zeebe:property",
137
- "name": "inbound.hmacSecret"
137
+ "name": "inbound.hmacSecret",
138
+ "type": "zeebe:property"
138
139
  },
139
140
  "condition": {
140
- "property": "shouldValidateHmac",
141
- "equals": "enabled"
142
- }
141
+ "property": "inbound.shouldValidateHmac",
142
+ "equals": "enabled",
143
+ "type": "simple"
144
+ },
145
+ "type": "String"
143
146
  },
144
147
  {
148
+ "id": "inbound.hmacHeader",
145
149
  "label": "HMAC header",
146
150
  "description": "Name of header attribute that will contain the HMAC value",
147
- "type": "String",
148
- "group": "authentication",
149
151
  "optional": true,
152
+ "feel": "optional",
153
+ "group": "authentication",
150
154
  "binding": {
151
- "type": "zeebe:property",
152
- "name": "inbound.hmacHeader"
155
+ "name": "inbound.hmacHeader",
156
+ "type": "zeebe:property"
153
157
  },
154
158
  "condition": {
155
- "property": "shouldValidateHmac",
156
- "equals": "enabled"
157
- }
159
+ "property": "inbound.shouldValidateHmac",
160
+ "equals": "enabled",
161
+ "type": "simple"
162
+ },
163
+ "type": "String"
158
164
  },
159
165
  {
166
+ "id": "inbound.hmacAlgorithm",
160
167
  "label": "HMAC algorithm",
161
- "group": "authentication",
162
168
  "description": "Choose HMAC algorithm",
169
+ "optional": false,
163
170
  "value": "sha_256",
171
+ "group": "authentication",
172
+ "binding": {
173
+ "name": "inbound.hmacAlgorithm",
174
+ "type": "zeebe:property"
175
+ },
176
+ "condition": {
177
+ "property": "inbound.shouldValidateHmac",
178
+ "equals": "enabled",
179
+ "type": "simple"
180
+ },
164
181
  "type": "Dropdown",
165
182
  "choices": [
166
183
  {
@@ -175,255 +192,261 @@
175
192
  "name": "SHA-512",
176
193
  "value": "sha_512"
177
194
  }
178
- ],
179
- "binding": {
180
- "type": "zeebe:property",
181
- "name": "inbound.hmacAlgorithm"
182
- },
183
- "condition": {
184
- "property": "shouldValidateHmac",
185
- "equals": "enabled"
186
- }
195
+ ]
187
196
  },
188
197
  {
198
+ "id": "inbound.hmacScopes",
189
199
  "label": "HMAC scopes",
190
- "group": "authentication",
191
200
  "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>",
192
- "feel": "required",
193
- "type": "String",
194
201
  "optional": true,
202
+ "feel": "required",
203
+ "group": "authentication",
195
204
  "binding": {
196
- "type": "zeebe:property",
197
- "name": "inbound.hmacScopes"
205
+ "name": "inbound.hmacScopes",
206
+ "type": "zeebe:property"
198
207
  },
199
208
  "condition": {
200
- "property": "shouldValidateHmac",
201
- "equals": "enabled"
202
- }
209
+ "property": "inbound.shouldValidateHmac",
210
+ "equals": "enabled",
211
+ "type": "simple"
212
+ },
213
+ "type": "String"
203
214
  },
204
215
  {
205
- "id": "authorizationType",
216
+ "id": "inbound.auth.type",
206
217
  "label": "Authorization type",
207
- "group": "authorization",
208
- "description": "Choose the authorization type.",
218
+ "description": "Choose the authorization type",
209
219
  "value": "NONE",
220
+ "group": "authorization",
221
+ "binding": {
222
+ "name": "inbound.auth.type",
223
+ "type": "zeebe:property"
224
+ },
210
225
  "type": "Dropdown",
211
226
  "choices": [
212
227
  {
213
228
  "name": "None",
214
229
  "value": "NONE"
215
230
  },
216
- {
217
- "name": "JWT",
218
- "value": "JWT"
219
- },
220
231
  {
221
232
  "name": "Basic",
222
233
  "value": "BASIC"
223
234
  },
224
235
  {
225
- "name": "API Key",
236
+ "name": "API key",
226
237
  "value": "APIKEY"
238
+ },
239
+ {
240
+ "name": "JWT",
241
+ "value": "JWT"
227
242
  }
228
- ],
229
- "binding": {
230
- "type": "zeebe:property",
231
- "name": "inbound.auth.type"
232
- }
243
+ ]
233
244
  },
234
245
  {
235
- "label": "JWK url",
236
- "description": "Well-known url of JWKs",
237
- "type": "String",
238
- "group": "authorization",
246
+ "id": "inbound.auth.username",
247
+ "label": "Username",
248
+ "description": "Username for basic authentication",
249
+ "optional": false,
239
250
  "feel": "optional",
240
- "optional": true,
251
+ "group": "authorization",
241
252
  "binding": {
242
- "type": "zeebe:property",
243
- "name": "inbound.auth.jwt.jwkUrl"
253
+ "name": "inbound.auth.username",
254
+ "type": "zeebe:property"
244
255
  },
245
256
  "condition": {
246
- "property": "authorizationType",
247
- "equals": "JWT"
248
- }
257
+ "property": "inbound.auth.type",
258
+ "equals": "BASIC",
259
+ "type": "simple"
260
+ },
261
+ "type": "String"
249
262
  },
250
263
  {
251
- "label": "JWT role property expression",
252
- "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>",
253
- "type": "String",
264
+ "id": "inbound.auth.password",
265
+ "label": "Password",
266
+ "description": "Password for basic authentication",
267
+ "optional": false,
268
+ "feel": "optional",
254
269
  "group": "authorization",
255
- "feel": "required",
256
- "optional": true,
257
270
  "binding": {
258
- "type": "zeebe:property",
259
- "name": "inbound.auth.jwt.permissionsExpression"
271
+ "name": "inbound.auth.password",
272
+ "type": "zeebe:property"
260
273
  },
261
274
  "condition": {
262
- "property": "authorizationType",
263
- "equals": "JWT"
264
- }
275
+ "property": "inbound.auth.type",
276
+ "equals": "BASIC",
277
+ "type": "simple"
278
+ },
279
+ "type": "String"
265
280
  },
266
281
  {
267
- "label": "Required roles",
268
- "description": "List of roles to test JWT roles against",
269
- "type": "String",
282
+ "id": "inbound.auth.apiKey",
283
+ "label": "API key",
284
+ "description": "Expected API key",
285
+ "optional": false,
286
+ "feel": "optional",
270
287
  "group": "authorization",
271
- "feel": "required",
272
- "optional": true,
273
288
  "binding": {
274
- "type": "zeebe:property",
275
- "name": "inbound.auth.jwt.requiredPermissions"
289
+ "name": "inbound.auth.apiKey",
290
+ "type": "zeebe:property"
276
291
  },
277
292
  "condition": {
278
- "property": "authorizationType",
279
- "equals": "JWT"
280
- }
293
+ "property": "inbound.auth.type",
294
+ "equals": "APIKEY",
295
+ "type": "simple"
296
+ },
297
+ "type": "String"
281
298
  },
282
299
  {
283
- "label": "Username",
284
- "description": "Username for basic authentication",
285
- "type": "String",
300
+ "id": "inbound.auth.apiKeyLocator",
301
+ "label": "API key locator",
302
+ "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>",
303
+ "optional": false,
304
+ "value": "=split(request.headers.authorization, \" \")[2]",
305
+ "constraints": {
306
+ "notEmpty": true
307
+ },
308
+ "feel": "required",
286
309
  "group": "authorization",
287
- "feel": "optional",
288
310
  "binding": {
289
- "type": "zeebe:property",
290
- "name": "inbound.auth.username"
311
+ "name": "inbound.auth.apiKeyLocator",
312
+ "type": "zeebe:property"
291
313
  },
292
314
  "condition": {
293
- "property": "authorizationType",
294
- "equals": "BASIC"
315
+ "property": "inbound.auth.type",
316
+ "equals": "APIKEY",
317
+ "type": "simple"
295
318
  },
296
- "constraints": {
297
- "notEmpty": true
298
- }
319
+ "type": "String"
299
320
  },
300
321
  {
301
- "label": "Password",
302
- "description": "Password for basic authentication",
303
- "type": "String",
304
- "group": "authorization",
322
+ "id": "inbound.auth.jwt.jwkUrl",
323
+ "label": "JWK URL",
324
+ "description": "Well-known URL of JWKs",
325
+ "optional": false,
305
326
  "feel": "optional",
327
+ "group": "authorization",
306
328
  "binding": {
307
- "type": "zeebe:property",
308
- "name": "inbound.auth.password"
329
+ "name": "inbound.auth.jwt.jwkUrl",
330
+ "type": "zeebe:property"
309
331
  },
310
332
  "condition": {
311
- "property": "authorizationType",
312
- "equals": "BASIC"
333
+ "property": "inbound.auth.type",
334
+ "equals": "JWT",
335
+ "type": "simple"
313
336
  },
314
- "constraints": {
315
- "notEmpty": true
316
- }
337
+ "type": "String"
317
338
  },
318
339
  {
319
- "label": "API Key",
320
- "description": "Expected API key",
321
- "type": "String",
340
+ "id": "inbound.auth.jwt.permissionsExpression",
341
+ "label": "JWT role property expression",
342
+ "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>",
343
+ "optional": false,
344
+ "feel": "required",
322
345
  "group": "authorization",
323
- "feel": "optional",
324
346
  "binding": {
325
- "type": "zeebe:property",
326
- "name": "inbound.auth.apiKey"
347
+ "name": "inbound.auth.jwt.permissionsExpression",
348
+ "type": "zeebe:property"
327
349
  },
328
350
  "condition": {
329
- "property": "authorizationType",
330
- "equals": "APIKEY"
351
+ "property": "inbound.auth.type",
352
+ "equals": "JWT",
353
+ "type": "simple"
331
354
  },
332
- "constraints": {
333
- "notEmpty": true
334
- }
355
+ "type": "String"
335
356
  },
336
357
  {
337
- "label": "API Key locator",
338
- "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>",
339
- "type": "String",
340
- "group": "authorization",
358
+ "id": "inbound.auth.jwt.requiredPermissions",
359
+ "label": "Required roles",
360
+ "description": "List of roles to test JWT roles against",
361
+ "optional": false,
341
362
  "feel": "required",
363
+ "group": "authorization",
342
364
  "binding": {
343
- "type": "zeebe:property",
344
- "name": "inbound.auth.apiKeyLocator"
365
+ "name": "inbound.auth.jwt.requiredPermissions",
366
+ "type": "zeebe:property"
345
367
  },
346
368
  "condition": {
347
- "property": "authorizationType",
348
- "equals": "APIKEY"
349
- },
350
- "constraints": {
351
- "notEmpty": true
369
+ "property": "inbound.auth.type",
370
+ "equals": "JWT",
371
+ "type": "simple"
352
372
  },
353
- "value": "=split(request.headers.authorization, \" \")[2]"
373
+ "type": "String"
354
374
  },
355
375
  {
356
- "label": "Condition",
357
- "type": "String",
358
- "group": "activation",
359
- "feel": "required",
376
+ "id": "inbound.responseBodyExpression",
377
+ "label": "Response body expression",
378
+ "description": "Specify condition and response",
360
379
  "optional": true,
380
+ "feel": "required",
381
+ "group": "webhookResponse",
361
382
  "binding": {
362
- "type": "zeebe:property",
363
- "name": "activationCondition"
383
+ "name": "inbound.responseBodyExpression",
384
+ "type": "zeebe:property"
364
385
  },
365
- "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>"
386
+ "type": "Text"
366
387
  },
367
388
  {
368
- "label": "Result variable",
369
- "type": "String",
370
- "group": "variable-mapping",
389
+ "id": "inbound.verificationExpression",
390
+ "label": "One time verification response expression",
391
+ "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>",
371
392
  "optional": true,
393
+ "feel": "required",
394
+ "group": "webhookResponse",
372
395
  "binding": {
373
- "type": "zeebe:property",
374
- "name": "resultVariable"
396
+ "name": "inbound.verificationExpression",
397
+ "type": "zeebe:property"
375
398
  },
376
- "description": "Name of variable to store the result of the connector in"
399
+ "type": "Text"
377
400
  },
378
401
  {
379
- "label": "Result expression",
380
- "type": "String",
381
- "group": "variable-mapping",
382
- "feel": "required",
402
+ "id": "activationCondition",
403
+ "label": "Activation condition",
404
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
383
405
  "optional": true,
406
+ "feel": "required",
407
+ "group": "activation",
384
408
  "binding": {
385
- "type": "zeebe:property",
386
- "name": "resultExpression"
409
+ "name": "activationCondition",
410
+ "type": "zeebe:property"
387
411
  },
388
- "description": "Expression to map the inbound payload to process variables"
412
+ "type": "String"
389
413
  },
390
414
  {
391
- "label": "One time verification response expression",
392
- "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>",
393
- "type": "Text",
394
- "group": "webhookResponse",
395
- "feel": "required",
396
- "optional": true,
415
+ "id": "resultVariable",
416
+ "label": "Result variable",
417
+ "description": "Name of variable to store the response in",
418
+ "group": "output",
397
419
  "binding": {
398
- "type": "zeebe:property",
399
- "name": "inbound.verificationExpression"
400
- }
420
+ "name": "resultVariable",
421
+ "type": "zeebe:property"
422
+ },
423
+ "type": "String"
401
424
  },
402
425
  {
403
- "label": "Response body expression",
404
- "type": "Text",
405
- "group": "webhookResponse",
426
+ "id": "resultExpression",
427
+ "label": "Result expression",
428
+ "description": "Expression to map the response into process variables",
406
429
  "feel": "required",
407
- "optional": true,
430
+ "group": "output",
408
431
  "binding": {
409
- "type": "zeebe:property",
410
- "name": "inbound.responseBodyExpression"
432
+ "name": "resultExpression",
433
+ "type": "zeebe:property"
411
434
  },
412
- "description": "Specify condition and response"
435
+ "type": "Text"
413
436
  }
414
437
  ],
415
438
  "icon": {
416
- "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"
439
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
417
440
  },
418
441
  "engines": {
419
- "camunda": "^8.4"
442
+ "camunda": "^8.5"
420
443
  }
421
444
  },
422
445
  {
423
446
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
424
447
  "name": "Webhook connector",
425
448
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
426
- "version": 5,
449
+ "version": 3,
427
450
  "description": "Configure webhook to receive callbacks",
428
451
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
429
452
  "category": {
@@ -439,14 +462,6 @@
439
462
  "id": "endpoint",
440
463
  "label": "Webhook configuration"
441
464
  },
442
- {
443
- "id": "authentication",
444
- "label": "Authentication"
445
- },
446
- {
447
- "id": "authorization",
448
- "label": "Authorization"
449
- },
450
465
  {
451
466
  "id": "activation",
452
467
  "label": "Activation"
@@ -473,40 +488,6 @@
473
488
  "name": "inbound.subtype"
474
489
  }
475
490
  },
476
- {
477
- "id": "webhookMethod",
478
- "label": "Webhook method",
479
- "group": "endpoint",
480
- "description": "Select HTTP method",
481
- "value": "any",
482
- "type": "Dropdown",
483
- "choices": [
484
- {
485
- "name": "Any",
486
- "value": "any"
487
- },
488
- {
489
- "name": "Get",
490
- "value": "get"
491
- },
492
- {
493
- "name": "Post",
494
- "value": "post"
495
- },
496
- {
497
- "name": "Put",
498
- "value": "put"
499
- },
500
- {
501
- "name": "Delete",
502
- "value": "delete"
503
- }
504
- ],
505
- "binding": {
506
- "type": "zeebe:property",
507
- "name": "inbound.method"
508
- }
509
- },
510
491
  {
511
492
  "label": "Webhook ID",
512
493
  "type": "String",
@@ -523,7 +504,7 @@
523
504
  {
524
505
  "id": "shouldValidateHmac",
525
506
  "label": "HMAC authentication",
526
- "group": "authentication",
507
+ "group": "endpoint",
527
508
  "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",
528
509
  "value": "disabled",
529
510
  "type": "Dropdown",
@@ -546,7 +527,7 @@
546
527
  "label": "HMAC secret key",
547
528
  "description": "Shared secret key",
548
529
  "type": "String",
549
- "group": "authentication",
530
+ "group": "endpoint",
550
531
  "optional": true,
551
532
  "binding": {
552
533
  "type": "zeebe:property",
@@ -561,7 +542,7 @@
561
542
  "label": "HMAC header",
562
543
  "description": "Name of header attribute that will contain the HMAC value",
563
544
  "type": "String",
564
- "group": "authentication",
545
+ "group": "endpoint",
565
546
  "optional": true,
566
547
  "binding": {
567
548
  "type": "zeebe:property",
@@ -574,7 +555,7 @@
574
555
  },
575
556
  {
576
557
  "label": "HMAC algorithm",
577
- "group": "authentication",
558
+ "group": "endpoint",
578
559
  "description": "Choose HMAC algorithm",
579
560
  "value": "sha_256",
580
561
  "type": "Dropdown",
@@ -602,194 +583,27 @@
602
583
  }
603
584
  },
604
585
  {
605
- "label": "HMAC scopes",
606
- "group": "authentication",
607
- "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>",
586
+ "label": "Condition",
587
+ "type": "String",
588
+ "group": "activation",
608
589
  "feel": "required",
590
+ "optional": true,
591
+ "binding": {
592
+ "type": "zeebe:property",
593
+ "name": "activationCondition"
594
+ },
595
+ "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>"
596
+ },
597
+ {
598
+ "label": "Result variable",
609
599
  "type": "String",
600
+ "group": "variable-mapping",
610
601
  "optional": true,
611
602
  "binding": {
612
603
  "type": "zeebe:property",
613
- "name": "inbound.hmacScopes"
604
+ "name": "resultVariable"
614
605
  },
615
- "condition": {
616
- "property": "shouldValidateHmac",
617
- "equals": "enabled"
618
- }
619
- },
620
- {
621
- "id": "authorizationType",
622
- "label": "Authorization type",
623
- "group": "authorization",
624
- "description": "Choose the authorization type.",
625
- "value": "NONE",
626
- "type": "Dropdown",
627
- "choices": [
628
- {
629
- "name": "None",
630
- "value": "NONE"
631
- },
632
- {
633
- "name": "JWT",
634
- "value": "JWT"
635
- },
636
- {
637
- "name": "Basic",
638
- "value": "BASIC"
639
- },
640
- {
641
- "name": "API Key",
642
- "value": "APIKEY"
643
- }
644
- ],
645
- "binding": {
646
- "type": "zeebe:property",
647
- "name": "inbound.auth.type"
648
- }
649
- },
650
- {
651
- "label": "JWK url",
652
- "description": "Well-known url of JWKs",
653
- "type": "String",
654
- "group": "authorization",
655
- "feel": "optional",
656
- "optional": true,
657
- "binding": {
658
- "type": "zeebe:property",
659
- "name": "inbound.auth.jwt.jwkUrl"
660
- },
661
- "condition": {
662
- "property": "authorizationType",
663
- "equals": "JWT"
664
- }
665
- },
666
- {
667
- "label": "JWT role property expression",
668
- "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>",
669
- "type": "String",
670
- "group": "authorization",
671
- "feel": "required",
672
- "optional": true,
673
- "binding": {
674
- "type": "zeebe:property",
675
- "name": "inbound.auth.jwt.permissionsExpression"
676
- },
677
- "condition": {
678
- "property": "authorizationType",
679
- "equals": "JWT"
680
- }
681
- },
682
- {
683
- "label": "Required roles",
684
- "description": "List of roles to test JWT roles against",
685
- "type": "String",
686
- "group": "authorization",
687
- "feel": "required",
688
- "optional": true,
689
- "binding": {
690
- "type": "zeebe:property",
691
- "name": "inbound.auth.jwt.requiredPermissions"
692
- },
693
- "condition": {
694
- "property": "authorizationType",
695
- "equals": "JWT"
696
- }
697
- },
698
- {
699
- "label": "Username",
700
- "description": "Username for basic authentication",
701
- "type": "String",
702
- "group": "authorization",
703
- "feel": "optional",
704
- "binding": {
705
- "type": "zeebe:property",
706
- "name": "inbound.auth.username"
707
- },
708
- "condition": {
709
- "property": "authorizationType",
710
- "equals": "BASIC"
711
- },
712
- "constraints": {
713
- "notEmpty": true
714
- }
715
- },
716
- {
717
- "label": "Password",
718
- "description": "Password for basic authentication",
719
- "type": "String",
720
- "group": "authorization",
721
- "feel": "optional",
722
- "binding": {
723
- "type": "zeebe:property",
724
- "name": "inbound.auth.password"
725
- },
726
- "condition": {
727
- "property": "authorizationType",
728
- "equals": "BASIC"
729
- },
730
- "constraints": {
731
- "notEmpty": true
732
- }
733
- },
734
- {
735
- "label": "API Key",
736
- "description": "Expected API key",
737
- "type": "String",
738
- "group": "authorization",
739
- "feel": "optional",
740
- "binding": {
741
- "type": "zeebe:property",
742
- "name": "inbound.auth.apiKey"
743
- },
744
- "condition": {
745
- "property": "authorizationType",
746
- "equals": "APIKEY"
747
- },
748
- "constraints": {
749
- "notEmpty": true
750
- }
751
- },
752
- {
753
- "label": "API Key locator",
754
- "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>",
755
- "type": "String",
756
- "group": "authorization",
757
- "feel": "required",
758
- "binding": {
759
- "type": "zeebe:property",
760
- "name": "inbound.auth.apiKeyLocator"
761
- },
762
- "condition": {
763
- "property": "authorizationType",
764
- "equals": "APIKEY"
765
- },
766
- "constraints": {
767
- "notEmpty": true
768
- },
769
- "value": "=split(request.headers.authorization, \" \")[2]"
770
- },
771
- {
772
- "label": "Condition",
773
- "type": "String",
774
- "group": "activation",
775
- "feel": "required",
776
- "optional": true,
777
- "binding": {
778
- "type": "zeebe:property",
779
- "name": "activationCondition"
780
- },
781
- "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>"
782
- },
783
- {
784
- "label": "Result variable",
785
- "type": "String",
786
- "group": "variable-mapping",
787
- "optional": true,
788
- "binding": {
789
- "type": "zeebe:property",
790
- "name": "resultVariable"
791
- },
792
- "description": "Name of variable to store the result of the connector in"
606
+ "description": "Name of variable to store the result of the connector in"
793
607
  },
794
608
  {
795
609
  "label": "Result expression",
@@ -815,9 +629,9 @@
815
629
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
816
630
  "name": "Webhook Start Event Connector",
817
631
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
818
- "version": 7,
819
632
  "description": "Configure webhook to receive callbacks",
820
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
633
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
634
+ "version": 11,
821
635
  "category": {
822
636
  "id": "connectors",
823
637
  "name": "Connectors"
@@ -840,41 +654,38 @@
840
654
  "label": "Authorization"
841
655
  },
842
656
  {
843
- "id": "activation",
844
- "label": "Activation"
657
+ "id": "webhookResponse",
658
+ "label": "Webhook response"
845
659
  },
846
660
  {
847
- "id": "variable-mapping",
848
- "label": "Variable mapping"
661
+ "id": "activation",
662
+ "label": "Activation"
849
663
  },
850
664
  {
851
- "id": "webhookResponse",
852
- "label": "Webhook response"
665
+ "id": "output",
666
+ "label": "Output mapping"
853
667
  }
854
668
  ],
855
669
  "properties": [
856
670
  {
857
- "type": "Hidden",
858
671
  "value": "io.camunda:webhook:1",
859
672
  "binding": {
860
- "type": "zeebe:property",
861
- "name": "inbound.type"
862
- }
863
- },
864
- {
865
- "type": "Hidden",
866
- "value": "ConfigurableInboundWebhook",
867
- "binding": {
868
- "type": "zeebe:property",
869
- "name": "inbound.subtype"
870
- }
673
+ "name": "inbound.type",
674
+ "type": "zeebe:property"
675
+ },
676
+ "type": "Hidden"
871
677
  },
872
678
  {
873
- "id": "webhookMethod",
679
+ "id": "inbound.method",
874
680
  "label": "Webhook method",
875
- "group": "endpoint",
876
681
  "description": "Select HTTP method",
682
+ "optional": false,
877
683
  "value": "any",
684
+ "group": "endpoint",
685
+ "binding": {
686
+ "name": "inbound.method",
687
+ "type": "zeebe:property"
688
+ },
878
689
  "type": "Dropdown",
879
690
  "choices": [
880
691
  {
@@ -882,46 +693,53 @@
882
693
  "value": "any"
883
694
  },
884
695
  {
885
- "name": "Get",
696
+ "name": "GET",
886
697
  "value": "get"
887
698
  },
888
699
  {
889
- "name": "Post",
700
+ "name": "POST",
890
701
  "value": "post"
891
702
  },
892
703
  {
893
- "name": "Put",
704
+ "name": "PUT",
894
705
  "value": "put"
895
706
  },
896
707
  {
897
- "name": "Delete",
708
+ "name": "DELETE",
898
709
  "value": "delete"
899
710
  }
900
- ],
901
- "binding": {
902
- "type": "zeebe:property",
903
- "name": "inbound.method"
904
- }
711
+ ]
905
712
  },
906
713
  {
714
+ "id": "inbound.context",
907
715
  "label": "Webhook ID",
908
- "type": "String",
716
+ "description": "The webhook ID is a part of the URL",
717
+ "optional": false,
718
+ "constraints": {
719
+ "notEmpty": true,
720
+ "pattern": {
721
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
722
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
723
+ }
724
+ },
909
725
  "group": "endpoint",
910
726
  "binding": {
911
- "type": "zeebe:property",
912
- "name": "inbound.context"
727
+ "name": "inbound.context",
728
+ "type": "zeebe:property"
913
729
  },
914
- "description": "The webhook ID is a part of the URL",
915
- "constraints": {
916
- "notEmpty": true
917
- }
730
+ "type": "String"
918
731
  },
919
732
  {
920
- "id": "shouldValidateHmac",
733
+ "id": "inbound.shouldValidateHmac",
921
734
  "label": "HMAC authentication",
922
- "group": "authentication",
923
- "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",
735
+ "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",
736
+ "optional": false,
924
737
  "value": "disabled",
738
+ "group": "authentication",
739
+ "binding": {
740
+ "name": "inbound.shouldValidateHmac",
741
+ "type": "zeebe:property"
742
+ },
925
743
  "type": "Dropdown",
926
744
  "choices": [
927
745
  {
@@ -932,47 +750,60 @@
932
750
  "name": "Disabled",
933
751
  "value": "disabled"
934
752
  }
935
- ],
936
- "binding": {
937
- "type": "zeebe:property",
938
- "name": "inbound.shouldValidateHmac"
939
- }
753
+ ]
940
754
  },
941
755
  {
756
+ "id": "inbound.hmacSecret",
942
757
  "label": "HMAC secret key",
943
758
  "description": "Shared secret key",
944
- "type": "String",
945
- "group": "authentication",
946
759
  "optional": true,
760
+ "feel": "optional",
761
+ "group": "authentication",
947
762
  "binding": {
948
- "type": "zeebe:property",
949
- "name": "inbound.hmacSecret"
763
+ "name": "inbound.hmacSecret",
764
+ "type": "zeebe:property"
950
765
  },
951
766
  "condition": {
952
- "property": "shouldValidateHmac",
953
- "equals": "enabled"
954
- }
767
+ "property": "inbound.shouldValidateHmac",
768
+ "equals": "enabled",
769
+ "type": "simple"
770
+ },
771
+ "type": "String"
955
772
  },
956
773
  {
774
+ "id": "inbound.hmacHeader",
957
775
  "label": "HMAC header",
958
776
  "description": "Name of header attribute that will contain the HMAC value",
959
- "type": "String",
960
- "group": "authentication",
961
777
  "optional": true,
778
+ "feel": "optional",
779
+ "group": "authentication",
962
780
  "binding": {
963
- "type": "zeebe:property",
964
- "name": "inbound.hmacHeader"
781
+ "name": "inbound.hmacHeader",
782
+ "type": "zeebe:property"
965
783
  },
966
784
  "condition": {
967
- "property": "shouldValidateHmac",
968
- "equals": "enabled"
969
- }
785
+ "property": "inbound.shouldValidateHmac",
786
+ "equals": "enabled",
787
+ "type": "simple"
788
+ },
789
+ "type": "String"
970
790
  },
971
791
  {
792
+ "id": "inbound.hmacAlgorithm",
972
793
  "label": "HMAC algorithm",
973
- "group": "authentication",
974
794
  "description": "Choose HMAC algorithm",
795
+ "optional": false,
975
796
  "value": "sha_256",
797
+ "group": "authentication",
798
+ "binding": {
799
+ "name": "inbound.hmacAlgorithm",
800
+ "type": "zeebe:property"
801
+ },
802
+ "condition": {
803
+ "property": "inbound.shouldValidateHmac",
804
+ "equals": "enabled",
805
+ "type": "simple"
806
+ },
976
807
  "type": "Dropdown",
977
808
  "choices": [
978
809
  {
@@ -987,243 +818,273 @@
987
818
  "name": "SHA-512",
988
819
  "value": "sha_512"
989
820
  }
990
- ],
991
- "binding": {
992
- "type": "zeebe:property",
993
- "name": "inbound.hmacAlgorithm"
994
- },
995
- "condition": {
996
- "property": "shouldValidateHmac",
997
- "equals": "enabled"
998
- }
821
+ ]
999
822
  },
1000
823
  {
824
+ "id": "inbound.hmacScopes",
1001
825
  "label": "HMAC scopes",
1002
- "group": "authentication",
1003
- "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>",
1004
- "feel": "required",
1005
- "type": "String",
826
+ "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>",
1006
827
  "optional": true,
828
+ "feel": "required",
829
+ "group": "authentication",
1007
830
  "binding": {
1008
- "type": "zeebe:property",
1009
- "name": "inbound.hmacScopes"
831
+ "name": "inbound.hmacScopes",
832
+ "type": "zeebe:property"
1010
833
  },
1011
834
  "condition": {
1012
- "property": "shouldValidateHmac",
1013
- "equals": "enabled"
1014
- }
835
+ "property": "inbound.shouldValidateHmac",
836
+ "equals": "enabled",
837
+ "type": "simple"
838
+ },
839
+ "type": "String"
1015
840
  },
1016
841
  {
1017
- "id": "authorizationType",
842
+ "id": "inbound.auth.type",
1018
843
  "label": "Authorization type",
1019
- "group": "authorization",
1020
- "description": "Choose the authorization type.",
844
+ "description": "Choose the authorization type",
1021
845
  "value": "NONE",
846
+ "group": "authorization",
847
+ "binding": {
848
+ "name": "inbound.auth.type",
849
+ "type": "zeebe:property"
850
+ },
1022
851
  "type": "Dropdown",
1023
852
  "choices": [
1024
853
  {
1025
854
  "name": "None",
1026
855
  "value": "NONE"
1027
856
  },
1028
- {
1029
- "name": "JWT",
1030
- "value": "JWT"
1031
- },
1032
857
  {
1033
858
  "name": "Basic",
1034
859
  "value": "BASIC"
1035
860
  },
1036
861
  {
1037
- "name": "API Key",
862
+ "name": "API key",
1038
863
  "value": "APIKEY"
864
+ },
865
+ {
866
+ "name": "JWT",
867
+ "value": "JWT"
1039
868
  }
1040
- ],
1041
- "binding": {
1042
- "type": "zeebe:property",
1043
- "name": "inbound.auth.type"
1044
- }
869
+ ]
1045
870
  },
1046
871
  {
1047
- "label": "JWK url",
1048
- "description": "Well-known url of JWKs",
1049
- "type": "String",
1050
- "group": "authorization",
872
+ "id": "inbound.auth.username",
873
+ "label": "Username",
874
+ "description": "Username for basic authentication",
875
+ "optional": false,
1051
876
  "feel": "optional",
1052
- "optional": true,
877
+ "group": "authorization",
1053
878
  "binding": {
1054
- "type": "zeebe:property",
1055
- "name": "inbound.auth.jwt.jwkUrl"
879
+ "name": "inbound.auth.username",
880
+ "type": "zeebe:property"
1056
881
  },
1057
882
  "condition": {
1058
- "property": "authorizationType",
1059
- "equals": "JWT"
1060
- }
883
+ "property": "inbound.auth.type",
884
+ "equals": "BASIC",
885
+ "type": "simple"
886
+ },
887
+ "type": "String"
1061
888
  },
1062
889
  {
1063
- "label": "JWT role property expression",
1064
- "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>",
1065
- "type": "String",
890
+ "id": "inbound.auth.password",
891
+ "label": "Password",
892
+ "description": "Password for basic authentication",
893
+ "optional": false,
894
+ "feel": "optional",
1066
895
  "group": "authorization",
1067
- "feel": "required",
1068
- "optional": true,
1069
896
  "binding": {
1070
- "type": "zeebe:property",
1071
- "name": "inbound.auth.jwt.permissionsExpression"
897
+ "name": "inbound.auth.password",
898
+ "type": "zeebe:property"
1072
899
  },
1073
900
  "condition": {
1074
- "property": "authorizationType",
1075
- "equals": "JWT"
1076
- }
901
+ "property": "inbound.auth.type",
902
+ "equals": "BASIC",
903
+ "type": "simple"
904
+ },
905
+ "type": "String"
1077
906
  },
1078
907
  {
1079
- "label": "Required roles",
1080
- "description": "List of roles to test JWT roles against",
1081
- "type": "String",
908
+ "id": "inbound.auth.apiKey",
909
+ "label": "API key",
910
+ "description": "Expected API key",
911
+ "optional": false,
912
+ "feel": "optional",
1082
913
  "group": "authorization",
1083
- "feel": "required",
1084
- "optional": true,
1085
914
  "binding": {
1086
- "type": "zeebe:property",
1087
- "name": "inbound.auth.jwt.requiredPermissions"
915
+ "name": "inbound.auth.apiKey",
916
+ "type": "zeebe:property"
1088
917
  },
1089
918
  "condition": {
1090
- "property": "authorizationType",
1091
- "equals": "JWT"
1092
- }
919
+ "property": "inbound.auth.type",
920
+ "equals": "APIKEY",
921
+ "type": "simple"
922
+ },
923
+ "type": "String"
1093
924
  },
1094
925
  {
1095
- "label": "Username",
1096
- "description": "Username for basic authentication",
1097
- "type": "String",
926
+ "id": "inbound.auth.apiKeyLocator",
927
+ "label": "API key locator",
928
+ "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>",
929
+ "optional": false,
930
+ "value": "=split(request.headers.authorization, \" \")[2]",
931
+ "constraints": {
932
+ "notEmpty": true
933
+ },
934
+ "feel": "required",
1098
935
  "group": "authorization",
1099
- "feel": "optional",
1100
936
  "binding": {
1101
- "type": "zeebe:property",
1102
- "name": "inbound.auth.username"
937
+ "name": "inbound.auth.apiKeyLocator",
938
+ "type": "zeebe:property"
1103
939
  },
1104
940
  "condition": {
1105
- "property": "authorizationType",
1106
- "equals": "BASIC"
941
+ "property": "inbound.auth.type",
942
+ "equals": "APIKEY",
943
+ "type": "simple"
1107
944
  },
1108
- "constraints": {
1109
- "notEmpty": true
1110
- }
945
+ "type": "String"
1111
946
  },
1112
947
  {
1113
- "label": "Password",
1114
- "description": "Password for basic authentication",
1115
- "type": "String",
1116
- "group": "authorization",
948
+ "id": "inbound.auth.jwt.jwkUrl",
949
+ "label": "JWK URL",
950
+ "description": "Well-known URL of JWKs",
951
+ "optional": false,
1117
952
  "feel": "optional",
953
+ "group": "authorization",
1118
954
  "binding": {
1119
- "type": "zeebe:property",
1120
- "name": "inbound.auth.password"
955
+ "name": "inbound.auth.jwt.jwkUrl",
956
+ "type": "zeebe:property"
1121
957
  },
1122
958
  "condition": {
1123
- "property": "authorizationType",
1124
- "equals": "BASIC"
959
+ "property": "inbound.auth.type",
960
+ "equals": "JWT",
961
+ "type": "simple"
1125
962
  },
1126
- "constraints": {
1127
- "notEmpty": true
1128
- }
963
+ "type": "String"
1129
964
  },
1130
965
  {
1131
- "label": "API Key",
1132
- "description": "Expected API key",
1133
- "type": "String",
966
+ "id": "inbound.auth.jwt.permissionsExpression",
967
+ "label": "JWT role property expression",
968
+ "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>",
969
+ "optional": false,
970
+ "feel": "required",
1134
971
  "group": "authorization",
1135
- "feel": "optional",
1136
972
  "binding": {
1137
- "type": "zeebe:property",
1138
- "name": "inbound.auth.apiKey"
973
+ "name": "inbound.auth.jwt.permissionsExpression",
974
+ "type": "zeebe:property"
1139
975
  },
1140
976
  "condition": {
1141
- "property": "authorizationType",
1142
- "equals": "APIKEY"
977
+ "property": "inbound.auth.type",
978
+ "equals": "JWT",
979
+ "type": "simple"
1143
980
  },
1144
- "constraints": {
1145
- "notEmpty": true
1146
- }
981
+ "type": "String"
1147
982
  },
1148
983
  {
1149
- "label": "API Key locator",
1150
- "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>",
1151
- "type": "String",
1152
- "group": "authorization",
984
+ "id": "inbound.auth.jwt.requiredPermissions",
985
+ "label": "Required roles",
986
+ "description": "List of roles to test JWT roles against",
987
+ "optional": false,
1153
988
  "feel": "required",
989
+ "group": "authorization",
1154
990
  "binding": {
1155
- "type": "zeebe:property",
1156
- "name": "inbound.auth.apiKeyLocator"
991
+ "name": "inbound.auth.jwt.requiredPermissions",
992
+ "type": "zeebe:property"
1157
993
  },
1158
994
  "condition": {
1159
- "property": "authorizationType",
1160
- "equals": "APIKEY"
1161
- },
1162
- "constraints": {
1163
- "notEmpty": true
995
+ "property": "inbound.auth.type",
996
+ "equals": "JWT",
997
+ "type": "simple"
1164
998
  },
1165
- "value": "=split(request.headers.authorization, \" \")[2]"
999
+ "type": "String"
1166
1000
  },
1167
1001
  {
1168
- "label": "Condition",
1169
- "type": "String",
1170
- "group": "activation",
1171
- "feel": "required",
1002
+ "id": "inbound.responseExpression",
1003
+ "label": "Response expression",
1004
+ "description": "Expression used to generate the HTTP response",
1172
1005
  "optional": true,
1006
+ "feel": "required",
1007
+ "group": "webhookResponse",
1173
1008
  "binding": {
1174
- "type": "zeebe:property",
1175
- "name": "activationCondition"
1009
+ "name": "inbound.responseExpression",
1010
+ "type": "zeebe:property"
1176
1011
  },
1177
- "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>"
1012
+ "type": "Text"
1178
1013
  },
1179
1014
  {
1180
- "label": "Result variable",
1181
- "type": "String",
1182
- "group": "variable-mapping",
1015
+ "id": "inbound.verificationExpression",
1016
+ "label": "One time verification response expression",
1017
+ "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>",
1183
1018
  "optional": true,
1019
+ "feel": "required",
1020
+ "group": "webhookResponse",
1184
1021
  "binding": {
1185
- "type": "zeebe:property",
1186
- "name": "resultVariable"
1022
+ "name": "inbound.verificationExpression",
1023
+ "type": "zeebe:property"
1187
1024
  },
1188
- "description": "Name of variable to store the result of the connector in"
1025
+ "type": "Text"
1189
1026
  },
1190
1027
  {
1191
- "label": "Result expression",
1192
- "type": "String",
1193
- "group": "variable-mapping",
1194
- "feel": "required",
1028
+ "id": "activationCondition",
1029
+ "label": "Activation condition",
1030
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
1195
1031
  "optional": true,
1032
+ "feel": "required",
1033
+ "group": "activation",
1196
1034
  "binding": {
1197
- "type": "zeebe:property",
1198
- "name": "resultExpression"
1035
+ "name": "activationCondition",
1036
+ "type": "zeebe:property"
1199
1037
  },
1200
- "description": "Expression to map the inbound payload to process variables"
1038
+ "type": "String"
1201
1039
  },
1202
1040
  {
1203
- "label": "Response body expression",
1204
- "type": "Text",
1205
- "group": "webhookResponse",
1041
+ "id": "consumeUnmatchedEvents",
1042
+ "label": "Consume unmatched events",
1043
+ "value": true,
1044
+ "group": "activation",
1045
+ "binding": {
1046
+ "name": "consumeUnmatchedEvents",
1047
+ "type": "zeebe:property"
1048
+ },
1049
+ "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",
1050
+ "type": "Boolean"
1051
+ },
1052
+ {
1053
+ "id": "resultVariable",
1054
+ "label": "Result variable",
1055
+ "description": "Name of variable to store the response in",
1056
+ "group": "output",
1057
+ "binding": {
1058
+ "name": "resultVariable",
1059
+ "type": "zeebe:property"
1060
+ },
1061
+ "type": "String"
1062
+ },
1063
+ {
1064
+ "id": "resultExpression",
1065
+ "label": "Result expression",
1066
+ "description": "Expression to map the response into process variables",
1206
1067
  "feel": "required",
1207
- "optional": true,
1068
+ "group": "output",
1208
1069
  "binding": {
1209
- "type": "zeebe:property",
1210
- "name": "inbound.responseBodyExpression"
1070
+ "name": "resultExpression",
1071
+ "type": "zeebe:property"
1211
1072
  },
1212
- "description": "Specify condition and response"
1073
+ "type": "Text"
1213
1074
  }
1214
1075
  ],
1215
1076
  "icon": {
1216
- "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"
1077
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1217
1078
  },
1218
1079
  "engines": {
1219
- "camunda": "^8.2"
1080
+ "camunda": "^8.6"
1220
1081
  }
1221
1082
  },
1222
1083
  {
1223
1084
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1224
- "name": "Webhook Connector",
1085
+ "name": "Webhook connector",
1225
1086
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1226
- "version": 2,
1087
+ "version": 5,
1227
1088
  "description": "Configure webhook to receive callbacks",
1228
1089
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1229
1090
  "category": {
@@ -1237,7 +1098,15 @@
1237
1098
  "groups": [
1238
1099
  {
1239
1100
  "id": "endpoint",
1240
- "label": "Webhook Configuration"
1101
+ "label": "Webhook configuration"
1102
+ },
1103
+ {
1104
+ "id": "authentication",
1105
+ "label": "Authentication"
1106
+ },
1107
+ {
1108
+ "id": "authorization",
1109
+ "label": "Authorization"
1241
1110
  },
1242
1111
  {
1243
1112
  "id": "activation",
@@ -1245,7 +1114,7 @@
1245
1114
  },
1246
1115
  {
1247
1116
  "id": "variable-mapping",
1248
- "label": "Variable Mapping"
1117
+ "label": "Variable mapping"
1249
1118
  }
1250
1119
  ],
1251
1120
  "properties": [
@@ -1265,6 +1134,40 @@
1265
1134
  "name": "inbound.subtype"
1266
1135
  }
1267
1136
  },
1137
+ {
1138
+ "id": "webhookMethod",
1139
+ "label": "Webhook method",
1140
+ "group": "endpoint",
1141
+ "description": "Select HTTP method",
1142
+ "value": "any",
1143
+ "type": "Dropdown",
1144
+ "choices": [
1145
+ {
1146
+ "name": "Any",
1147
+ "value": "any"
1148
+ },
1149
+ {
1150
+ "name": "Get",
1151
+ "value": "get"
1152
+ },
1153
+ {
1154
+ "name": "Post",
1155
+ "value": "post"
1156
+ },
1157
+ {
1158
+ "name": "Put",
1159
+ "value": "put"
1160
+ },
1161
+ {
1162
+ "name": "Delete",
1163
+ "value": "delete"
1164
+ }
1165
+ ],
1166
+ "binding": {
1167
+ "type": "zeebe:property",
1168
+ "name": "inbound.method"
1169
+ }
1170
+ },
1268
1171
  {
1269
1172
  "label": "Webhook ID",
1270
1173
  "type": "String",
@@ -1281,7 +1184,7 @@
1281
1184
  {
1282
1185
  "id": "shouldValidateHmac",
1283
1186
  "label": "HMAC authentication",
1284
- "group": "endpoint",
1187
+ "group": "authentication",
1285
1188
  "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",
1286
1189
  "value": "disabled",
1287
1190
  "type": "Dropdown",
@@ -1304,7 +1207,7 @@
1304
1207
  "label": "HMAC secret key",
1305
1208
  "description": "Shared secret key",
1306
1209
  "type": "String",
1307
- "group": "endpoint",
1210
+ "group": "authentication",
1308
1211
  "optional": true,
1309
1212
  "binding": {
1310
1213
  "type": "zeebe:property",
@@ -1319,7 +1222,7 @@
1319
1222
  "label": "HMAC header",
1320
1223
  "description": "Name of header attribute that will contain the HMAC value",
1321
1224
  "type": "String",
1322
- "group": "endpoint",
1225
+ "group": "authentication",
1323
1226
  "optional": true,
1324
1227
  "binding": {
1325
1228
  "type": "zeebe:property",
@@ -1332,7 +1235,7 @@
1332
1235
  },
1333
1236
  {
1334
1237
  "label": "HMAC algorithm",
1335
- "group": "endpoint",
1238
+ "group": "authentication",
1336
1239
  "description": "Choose HMAC algorithm",
1337
1240
  "value": "sha_256",
1338
1241
  "type": "Dropdown",
@@ -1360,187 +1263,171 @@
1360
1263
  }
1361
1264
  },
1362
1265
  {
1363
- "label": "Condition",
1364
- "type": "String",
1365
- "group": "activation",
1266
+ "label": "HMAC scopes",
1267
+ "group": "authentication",
1268
+ "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>",
1366
1269
  "feel": "required",
1270
+ "type": "String",
1367
1271
  "optional": true,
1368
1272
  "binding": {
1369
1273
  "type": "zeebe:property",
1370
- "name": "inbound.activationCondition"
1274
+ "name": "inbound.hmacScopes"
1371
1275
  },
1372
- "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>"
1276
+ "condition": {
1277
+ "property": "shouldValidateHmac",
1278
+ "equals": "enabled"
1279
+ }
1373
1280
  },
1374
1281
  {
1375
- "label": "Result variable",
1282
+ "id": "authorizationType",
1283
+ "label": "Authorization type",
1284
+ "group": "authorization",
1285
+ "description": "Choose the authorization type.",
1286
+ "value": "NONE",
1287
+ "type": "Dropdown",
1288
+ "choices": [
1289
+ {
1290
+ "name": "None",
1291
+ "value": "NONE"
1292
+ },
1293
+ {
1294
+ "name": "JWT",
1295
+ "value": "JWT"
1296
+ },
1297
+ {
1298
+ "name": "Basic",
1299
+ "value": "BASIC"
1300
+ },
1301
+ {
1302
+ "name": "API Key",
1303
+ "value": "APIKEY"
1304
+ }
1305
+ ],
1306
+ "binding": {
1307
+ "type": "zeebe:property",
1308
+ "name": "inbound.auth.type"
1309
+ }
1310
+ },
1311
+ {
1312
+ "label": "JWK url",
1313
+ "description": "Well-known url of JWKs",
1376
1314
  "type": "String",
1377
- "group": "variable-mapping",
1315
+ "group": "authorization",
1316
+ "feel": "optional",
1378
1317
  "optional": true,
1379
1318
  "binding": {
1380
1319
  "type": "zeebe:property",
1381
- "name": "resultVariable"
1320
+ "name": "inbound.auth.jwt.jwkUrl"
1382
1321
  },
1383
- "description": "Name of variable to store the result of the Connector in"
1322
+ "condition": {
1323
+ "property": "authorizationType",
1324
+ "equals": "JWT"
1325
+ }
1384
1326
  },
1385
1327
  {
1386
- "label": "Result expression",
1328
+ "label": "JWT role property expression",
1329
+ "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>",
1387
1330
  "type": "String",
1388
- "group": "variable-mapping",
1331
+ "group": "authorization",
1389
1332
  "feel": "required",
1390
1333
  "optional": true,
1391
1334
  "binding": {
1392
1335
  "type": "zeebe:property",
1393
- "name": "resultExpression"
1336
+ "name": "inbound.auth.jwt.permissionsExpression"
1394
1337
  },
1395
- "description": "Expression to map the inbound payload to process variables"
1396
- }
1397
- ],
1398
- "icon": {
1399
- "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"
1400
- },
1401
- "engines": {
1402
- "camunda": "^8.2"
1403
- }
1404
- },
1405
- {
1406
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1407
- "name": "Webhook connector",
1408
- "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1409
- "version": 3,
1410
- "description": "Configure webhook to receive callbacks",
1411
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1412
- "category": {
1413
- "id": "connectors",
1414
- "name": "Connectors"
1415
- },
1416
- "appliesTo": ["bpmn:StartEvent"],
1417
- "elementType": {
1418
- "value": "bpmn:StartEvent"
1419
- },
1420
- "groups": [
1421
- {
1422
- "id": "endpoint",
1423
- "label": "Webhook configuration"
1424
- },
1425
- {
1426
- "id": "activation",
1427
- "label": "Activation"
1338
+ "condition": {
1339
+ "property": "authorizationType",
1340
+ "equals": "JWT"
1341
+ }
1428
1342
  },
1429
1343
  {
1430
- "id": "variable-mapping",
1431
- "label": "Variable mapping"
1432
- }
1433
- ],
1434
- "properties": [
1435
- {
1436
- "type": "Hidden",
1437
- "value": "io.camunda:webhook:1",
1438
- "binding": {
1439
- "type": "zeebe:property",
1440
- "name": "inbound.type"
1441
- }
1442
- },
1443
- {
1444
- "type": "Hidden",
1445
- "value": "ConfigurableInboundWebhook",
1344
+ "label": "Required roles",
1345
+ "description": "List of roles to test JWT roles against",
1346
+ "type": "String",
1347
+ "group": "authorization",
1348
+ "feel": "required",
1349
+ "optional": true,
1446
1350
  "binding": {
1447
1351
  "type": "zeebe:property",
1448
- "name": "inbound.subtype"
1352
+ "name": "inbound.auth.jwt.requiredPermissions"
1353
+ },
1354
+ "condition": {
1355
+ "property": "authorizationType",
1356
+ "equals": "JWT"
1449
1357
  }
1450
1358
  },
1451
1359
  {
1452
- "label": "Webhook ID",
1360
+ "label": "Username",
1361
+ "description": "Username for basic authentication",
1453
1362
  "type": "String",
1454
- "group": "endpoint",
1363
+ "group": "authorization",
1364
+ "feel": "optional",
1455
1365
  "binding": {
1456
1366
  "type": "zeebe:property",
1457
- "name": "inbound.context"
1367
+ "name": "inbound.auth.username"
1368
+ },
1369
+ "condition": {
1370
+ "property": "authorizationType",
1371
+ "equals": "BASIC"
1458
1372
  },
1459
- "description": "The webhook ID is a part of the URL",
1460
1373
  "constraints": {
1461
1374
  "notEmpty": true
1462
1375
  }
1463
1376
  },
1464
1377
  {
1465
- "id": "shouldValidateHmac",
1466
- "label": "HMAC authentication",
1467
- "group": "endpoint",
1468
- "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",
1469
- "value": "disabled",
1470
- "type": "Dropdown",
1471
- "choices": [
1472
- {
1473
- "name": "Enabled",
1474
- "value": "enabled"
1475
- },
1476
- {
1477
- "name": "Disabled",
1478
- "value": "disabled"
1479
- }
1480
- ],
1481
- "binding": {
1482
- "type": "zeebe:property",
1483
- "name": "inbound.shouldValidateHmac"
1484
- }
1485
- },
1486
- {
1487
- "label": "HMAC secret key",
1488
- "description": "Shared secret key",
1378
+ "label": "Password",
1379
+ "description": "Password for basic authentication",
1489
1380
  "type": "String",
1490
- "group": "endpoint",
1491
- "optional": true,
1381
+ "group": "authorization",
1382
+ "feel": "optional",
1492
1383
  "binding": {
1493
1384
  "type": "zeebe:property",
1494
- "name": "inbound.hmacSecret"
1385
+ "name": "inbound.auth.password"
1495
1386
  },
1496
1387
  "condition": {
1497
- "property": "shouldValidateHmac",
1498
- "equals": "enabled"
1388
+ "property": "authorizationType",
1389
+ "equals": "BASIC"
1390
+ },
1391
+ "constraints": {
1392
+ "notEmpty": true
1499
1393
  }
1500
1394
  },
1501
1395
  {
1502
- "label": "HMAC header",
1503
- "description": "Name of header attribute that will contain the HMAC value",
1396
+ "label": "API Key",
1397
+ "description": "Expected API key",
1504
1398
  "type": "String",
1505
- "group": "endpoint",
1506
- "optional": true,
1399
+ "group": "authorization",
1400
+ "feel": "optional",
1507
1401
  "binding": {
1508
1402
  "type": "zeebe:property",
1509
- "name": "inbound.hmacHeader"
1403
+ "name": "inbound.auth.apiKey"
1510
1404
  },
1511
1405
  "condition": {
1512
- "property": "shouldValidateHmac",
1513
- "equals": "enabled"
1406
+ "property": "authorizationType",
1407
+ "equals": "APIKEY"
1408
+ },
1409
+ "constraints": {
1410
+ "notEmpty": true
1514
1411
  }
1515
1412
  },
1516
1413
  {
1517
- "label": "HMAC algorithm",
1518
- "group": "endpoint",
1519
- "description": "Choose HMAC algorithm",
1520
- "value": "sha_256",
1521
- "type": "Dropdown",
1522
- "choices": [
1523
- {
1524
- "name": "SHA-1",
1525
- "value": "sha_1"
1526
- },
1527
- {
1528
- "name": "SHA-256",
1529
- "value": "sha_256"
1530
- },
1531
- {
1532
- "name": "SHA-512",
1533
- "value": "sha_512"
1534
- }
1535
- ],
1414
+ "label": "API Key locator",
1415
+ "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>",
1416
+ "type": "String",
1417
+ "group": "authorization",
1418
+ "feel": "required",
1536
1419
  "binding": {
1537
1420
  "type": "zeebe:property",
1538
- "name": "inbound.hmacAlgorithm"
1421
+ "name": "inbound.auth.apiKeyLocator"
1539
1422
  },
1540
1423
  "condition": {
1541
- "property": "shouldValidateHmac",
1542
- "equals": "enabled"
1543
- }
1424
+ "property": "authorizationType",
1425
+ "equals": "APIKEY"
1426
+ },
1427
+ "constraints": {
1428
+ "notEmpty": true
1429
+ },
1430
+ "value": "=split(request.headers.authorization, \" \")[2]"
1544
1431
  },
1545
1432
  {
1546
1433
  "label": "Condition",
@@ -1594,15 +1481,21 @@
1594
1481
  "keywords": []
1595
1482
  },
1596
1483
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
1597
- "version": 12,
1484
+ "version": 13,
1598
1485
  "category": {
1599
1486
  "id": "connectors",
1600
1487
  "name": "Connectors"
1601
1488
  },
1489
+ "deprecated": {
1490
+ "message": "Migrate to Webhook Message Start Event Connector"
1491
+ },
1602
1492
  "appliesTo": ["bpmn:StartEvent"],
1603
1493
  "elementType": {
1604
1494
  "value": "bpmn:StartEvent"
1605
1495
  },
1496
+ "engines": {
1497
+ "camunda": "^8.3"
1498
+ },
1606
1499
  "groups": [
1607
1500
  {
1608
1501
  "id": "endpoint",
@@ -1624,6 +1517,11 @@
1624
1517
  "id": "activation",
1625
1518
  "label": "Activation"
1626
1519
  },
1520
+ {
1521
+ "id": "deduplication",
1522
+ "label": "Deduplication",
1523
+ "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
1524
+ },
1627
1525
  {
1628
1526
  "id": "output",
1629
1527
  "label": "Output mapping"
@@ -2012,6 +1910,70 @@
2012
1910
  "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",
2013
1911
  "type": "Boolean"
2014
1912
  },
1913
+ {
1914
+ "id": "deduplicationModeManualFlag",
1915
+ "label": "Manual mode",
1916
+ "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
1917
+ "value": false,
1918
+ "group": "deduplication",
1919
+ "binding": {
1920
+ "name": "deduplicationModeManualFlag",
1921
+ "type": "zeebe:property"
1922
+ },
1923
+ "type": "Boolean"
1924
+ },
1925
+ {
1926
+ "id": "deduplicationId",
1927
+ "label": "Deduplication ID",
1928
+ "constraints": {
1929
+ "notEmpty": true,
1930
+ "pattern": {
1931
+ "value": "^[a-zA-Z0-9_-]+$",
1932
+ "message": "can only contain alphanumeric characters, dashes, and underscores"
1933
+ }
1934
+ },
1935
+ "group": "deduplication",
1936
+ "binding": {
1937
+ "name": "deduplicationId",
1938
+ "type": "zeebe:property"
1939
+ },
1940
+ "condition": {
1941
+ "property": "deduplicationModeManualFlag",
1942
+ "equals": true,
1943
+ "type": "simple"
1944
+ },
1945
+ "type": "String"
1946
+ },
1947
+ {
1948
+ "id": "deduplicationModeManual",
1949
+ "value": "MANUAL",
1950
+ "group": "deduplication",
1951
+ "binding": {
1952
+ "name": "deduplicationMode",
1953
+ "type": "zeebe:property"
1954
+ },
1955
+ "condition": {
1956
+ "property": "deduplicationId",
1957
+ "isActive": true,
1958
+ "type": "simple"
1959
+ },
1960
+ "type": "Hidden"
1961
+ },
1962
+ {
1963
+ "id": "deduplicationModeAuto",
1964
+ "value": "AUTO",
1965
+ "group": "deduplication",
1966
+ "binding": {
1967
+ "name": "deduplicationMode",
1968
+ "type": "zeebe:property"
1969
+ },
1970
+ "condition": {
1971
+ "property": "deduplicationId",
1972
+ "isActive": false,
1973
+ "type": "simple"
1974
+ },
1975
+ "type": "Hidden"
1976
+ },
2015
1977
  {
2016
1978
  "id": "resultVariable",
2017
1979
  "label": "Result variable",
@@ -2036,9 +1998,6 @@
2036
1998
  "type": "Text"
2037
1999
  }
2038
2000
  ],
2039
- "engines": {
2040
- "camunda": "^8.3"
2041
- },
2042
2001
  "icon": {
2043
2002
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
2044
2003
  }
@@ -2047,7 +2006,7 @@
2047
2006
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2048
2007
  "name": "Webhook Start Event Connector",
2049
2008
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2050
- "version": 9,
2009
+ "version": 8,
2051
2010
  "description": "Configure webhook to receive callbacks",
2052
2011
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2053
2012
  "category": {
@@ -2145,11 +2104,7 @@
2145
2104
  },
2146
2105
  "description": "The webhook ID is a part of the URL",
2147
2106
  "constraints": {
2148
- "notEmpty": true,
2149
- "pattern": {
2150
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
2151
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
2152
- }
2107
+ "notEmpty": true
2153
2108
  }
2154
2109
  },
2155
2110
  {
@@ -2464,14 +2419,14 @@
2464
2419
  "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"
2465
2420
  },
2466
2421
  "engines": {
2467
- "camunda": "^8.5"
2422
+ "camunda": "^8.4"
2468
2423
  }
2469
2424
  },
2470
2425
  {
2471
2426
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2472
- "name": "Webhook Connector",
2427
+ "name": "Webhook connector",
2473
2428
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2474
- "version": 1,
2429
+ "version": 6,
2475
2430
  "description": "Configure webhook to receive callbacks",
2476
2431
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2477
2432
  "category": {
@@ -2485,7 +2440,15 @@
2485
2440
  "groups": [
2486
2441
  {
2487
2442
  "id": "endpoint",
2488
- "label": "Webhook Configuration"
2443
+ "label": "Webhook configuration"
2444
+ },
2445
+ {
2446
+ "id": "authentication",
2447
+ "label": "Authentication"
2448
+ },
2449
+ {
2450
+ "id": "authorization",
2451
+ "label": "Authorization"
2489
2452
  },
2490
2453
  {
2491
2454
  "id": "activation",
@@ -2493,7 +2456,11 @@
2493
2456
  },
2494
2457
  {
2495
2458
  "id": "variable-mapping",
2496
- "label": "Variable Mapping"
2459
+ "label": "Variable mapping"
2460
+ },
2461
+ {
2462
+ "id": "webhookResponse",
2463
+ "label": "Webhook response"
2497
2464
  }
2498
2465
  ],
2499
2466
  "properties": [
@@ -2514,24 +2481,58 @@
2514
2481
  }
2515
2482
  },
2516
2483
  {
2517
- "label": "Webhook ID",
2518
- "type": "String",
2519
- "group": "endpoint",
2520
- "binding": {
2521
- "type": "zeebe:property",
2522
- "name": "inbound.context"
2523
- },
2524
- "constraints": {
2525
- "notEmpty": true
2526
- },
2527
- "description": "The webhook ID is a part of the URL"
2528
- },
2529
- {
2530
- "id": "shouldValidateHmac",
2531
- "label": "HMAC authentication",
2484
+ "id": "webhookMethod",
2485
+ "label": "Webhook method",
2532
2486
  "group": "endpoint",
2533
- "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",
2534
- "value": "disabled",
2487
+ "description": "Select HTTP method",
2488
+ "value": "any",
2489
+ "type": "Dropdown",
2490
+ "choices": [
2491
+ {
2492
+ "name": "Any",
2493
+ "value": "any"
2494
+ },
2495
+ {
2496
+ "name": "Get",
2497
+ "value": "get"
2498
+ },
2499
+ {
2500
+ "name": "Post",
2501
+ "value": "post"
2502
+ },
2503
+ {
2504
+ "name": "Put",
2505
+ "value": "put"
2506
+ },
2507
+ {
2508
+ "name": "Delete",
2509
+ "value": "delete"
2510
+ }
2511
+ ],
2512
+ "binding": {
2513
+ "type": "zeebe:property",
2514
+ "name": "inbound.method"
2515
+ }
2516
+ },
2517
+ {
2518
+ "label": "Webhook ID",
2519
+ "type": "String",
2520
+ "group": "endpoint",
2521
+ "binding": {
2522
+ "type": "zeebe:property",
2523
+ "name": "inbound.context"
2524
+ },
2525
+ "description": "The webhook ID is a part of the URL",
2526
+ "constraints": {
2527
+ "notEmpty": true
2528
+ }
2529
+ },
2530
+ {
2531
+ "id": "shouldValidateHmac",
2532
+ "label": "HMAC authentication",
2533
+ "group": "authentication",
2534
+ "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",
2535
+ "value": "disabled",
2535
2536
  "type": "Dropdown",
2536
2537
  "choices": [
2537
2538
  {
@@ -2552,7 +2553,7 @@
2552
2553
  "label": "HMAC secret key",
2553
2554
  "description": "Shared secret key",
2554
2555
  "type": "String",
2555
- "group": "endpoint",
2556
+ "group": "authentication",
2556
2557
  "optional": true,
2557
2558
  "binding": {
2558
2559
  "type": "zeebe:property",
@@ -2567,7 +2568,7 @@
2567
2568
  "label": "HMAC header",
2568
2569
  "description": "Name of header attribute that will contain the HMAC value",
2569
2570
  "type": "String",
2570
- "group": "endpoint",
2571
+ "group": "authentication",
2571
2572
  "optional": true,
2572
2573
  "binding": {
2573
2574
  "type": "zeebe:property",
@@ -2580,7 +2581,7 @@
2580
2581
  },
2581
2582
  {
2582
2583
  "label": "HMAC algorithm",
2583
- "group": "endpoint",
2584
+ "group": "authentication",
2584
2585
  "description": "Choose HMAC algorithm",
2585
2586
  "value": "sha_256",
2586
2587
  "type": "Dropdown",
@@ -2608,215 +2609,564 @@
2608
2609
  }
2609
2610
  },
2610
2611
  {
2611
- "label": "Condition",
2612
- "type": "String",
2613
- "group": "activation",
2612
+ "label": "HMAC scopes",
2613
+ "group": "authentication",
2614
+ "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>",
2614
2615
  "feel": "required",
2615
- "optional": true,
2616
- "binding": {
2617
- "type": "zeebe:property",
2618
- "name": "inbound.activationCondition"
2619
- },
2620
- "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>"
2621
- },
2622
- {
2623
- "label": "Variables",
2624
2616
  "type": "String",
2625
- "group": "variable-mapping",
2626
- "feel": "required",
2617
+ "optional": true,
2627
2618
  "binding": {
2628
2619
  "type": "zeebe:property",
2629
- "name": "inbound.variableMapping"
2630
- },
2631
- "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>"
2632
- }
2633
- ],
2634
- "icon": {
2635
- "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"
2636
- },
2637
- "engines": {
2638
- "camunda": "^8.2"
2639
- }
2640
- },
2641
- {
2642
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2643
- "name": "Webhook Start Event Connector",
2644
- "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2645
- "description": "Configure webhook to receive callbacks",
2646
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
2647
- "version": 11,
2648
- "category": {
2649
- "id": "connectors",
2650
- "name": "Connectors"
2651
- },
2652
- "appliesTo": ["bpmn:StartEvent"],
2653
- "elementType": {
2654
- "value": "bpmn:StartEvent"
2655
- },
2656
- "groups": [
2657
- {
2658
- "id": "endpoint",
2659
- "label": "Webhook configuration"
2660
- },
2661
- {
2662
- "id": "authentication",
2663
- "label": "Authentication"
2664
- },
2665
- {
2666
- "id": "authorization",
2667
- "label": "Authorization"
2668
- },
2669
- {
2670
- "id": "webhookResponse",
2671
- "label": "Webhook response"
2672
- },
2673
- {
2674
- "id": "activation",
2675
- "label": "Activation"
2676
- },
2677
- {
2678
- "id": "output",
2679
- "label": "Output mapping"
2680
- }
2681
- ],
2682
- "properties": [
2683
- {
2684
- "value": "io.camunda:webhook:1",
2685
- "binding": {
2686
- "name": "inbound.type",
2687
- "type": "zeebe:property"
2620
+ "name": "inbound.hmacScopes"
2688
2621
  },
2689
- "type": "Hidden"
2622
+ "condition": {
2623
+ "property": "shouldValidateHmac",
2624
+ "equals": "enabled"
2625
+ }
2690
2626
  },
2691
2627
  {
2692
- "id": "inbound.method",
2693
- "label": "Webhook method",
2694
- "description": "Select HTTP method",
2695
- "optional": false,
2696
- "value": "any",
2697
- "group": "endpoint",
2698
- "binding": {
2699
- "name": "inbound.method",
2700
- "type": "zeebe:property"
2701
- },
2628
+ "id": "authorizationType",
2629
+ "label": "Authorization type",
2630
+ "group": "authorization",
2631
+ "description": "Choose the authorization type.",
2632
+ "value": "NONE",
2702
2633
  "type": "Dropdown",
2703
2634
  "choices": [
2704
2635
  {
2705
- "name": "Any",
2706
- "value": "any"
2707
- },
2708
- {
2709
- "name": "GET",
2710
- "value": "get"
2636
+ "name": "None",
2637
+ "value": "NONE"
2711
2638
  },
2712
2639
  {
2713
- "name": "POST",
2714
- "value": "post"
2640
+ "name": "JWT",
2641
+ "value": "JWT"
2715
2642
  },
2716
2643
  {
2717
- "name": "PUT",
2718
- "value": "put"
2644
+ "name": "Basic",
2645
+ "value": "BASIC"
2719
2646
  },
2720
2647
  {
2721
- "name": "DELETE",
2722
- "value": "delete"
2648
+ "name": "API Key",
2649
+ "value": "APIKEY"
2723
2650
  }
2724
- ]
2651
+ ],
2652
+ "binding": {
2653
+ "type": "zeebe:property",
2654
+ "name": "inbound.auth.type"
2655
+ }
2725
2656
  },
2726
2657
  {
2727
- "id": "inbound.context",
2728
- "label": "Webhook ID",
2729
- "description": "The webhook ID is a part of the URL",
2730
- "optional": false,
2731
- "constraints": {
2732
- "notEmpty": true,
2733
- "pattern": {
2734
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
2735
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
2736
- }
2737
- },
2738
- "group": "endpoint",
2658
+ "label": "JWK url",
2659
+ "description": "Well-known url of JWKs",
2660
+ "type": "String",
2661
+ "group": "authorization",
2662
+ "feel": "optional",
2663
+ "optional": true,
2739
2664
  "binding": {
2740
- "name": "inbound.context",
2741
- "type": "zeebe:property"
2665
+ "type": "zeebe:property",
2666
+ "name": "inbound.auth.jwt.jwkUrl"
2742
2667
  },
2743
- "type": "String"
2668
+ "condition": {
2669
+ "property": "authorizationType",
2670
+ "equals": "JWT"
2671
+ }
2744
2672
  },
2745
2673
  {
2746
- "id": "inbound.shouldValidateHmac",
2747
- "label": "HMAC authentication",
2748
- "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",
2749
- "optional": false,
2750
- "value": "disabled",
2751
- "group": "authentication",
2674
+ "label": "JWT role property expression",
2675
+ "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>",
2676
+ "type": "String",
2677
+ "group": "authorization",
2678
+ "feel": "required",
2679
+ "optional": true,
2752
2680
  "binding": {
2753
- "name": "inbound.shouldValidateHmac",
2754
- "type": "zeebe:property"
2681
+ "type": "zeebe:property",
2682
+ "name": "inbound.auth.jwt.permissionsExpression"
2755
2683
  },
2756
- "type": "Dropdown",
2757
- "choices": [
2758
- {
2759
- "name": "Enabled",
2760
- "value": "enabled"
2761
- },
2762
- {
2763
- "name": "Disabled",
2764
- "value": "disabled"
2765
- }
2766
- ]
2684
+ "condition": {
2685
+ "property": "authorizationType",
2686
+ "equals": "JWT"
2687
+ }
2767
2688
  },
2768
2689
  {
2769
- "id": "inbound.hmacSecret",
2770
- "label": "HMAC secret key",
2771
- "description": "Shared secret key",
2690
+ "label": "Required roles",
2691
+ "description": "List of roles to test JWT roles against",
2692
+ "type": "String",
2693
+ "group": "authorization",
2694
+ "feel": "required",
2772
2695
  "optional": true,
2773
- "feel": "optional",
2774
- "group": "authentication",
2775
2696
  "binding": {
2776
- "name": "inbound.hmacSecret",
2777
- "type": "zeebe:property"
2697
+ "type": "zeebe:property",
2698
+ "name": "inbound.auth.jwt.requiredPermissions"
2778
2699
  },
2779
2700
  "condition": {
2780
- "property": "inbound.shouldValidateHmac",
2781
- "equals": "enabled",
2782
- "type": "simple"
2783
- },
2784
- "type": "String"
2701
+ "property": "authorizationType",
2702
+ "equals": "JWT"
2703
+ }
2704
+ },
2705
+ {
2706
+ "label": "Username",
2707
+ "description": "Username for basic authentication",
2708
+ "type": "String",
2709
+ "group": "authorization",
2710
+ "feel": "optional",
2711
+ "binding": {
2712
+ "type": "zeebe:property",
2713
+ "name": "inbound.auth.username"
2714
+ },
2715
+ "condition": {
2716
+ "property": "authorizationType",
2717
+ "equals": "BASIC"
2718
+ },
2719
+ "constraints": {
2720
+ "notEmpty": true
2721
+ }
2722
+ },
2723
+ {
2724
+ "label": "Password",
2725
+ "description": "Password for basic authentication",
2726
+ "type": "String",
2727
+ "group": "authorization",
2728
+ "feel": "optional",
2729
+ "binding": {
2730
+ "type": "zeebe:property",
2731
+ "name": "inbound.auth.password"
2732
+ },
2733
+ "condition": {
2734
+ "property": "authorizationType",
2735
+ "equals": "BASIC"
2736
+ },
2737
+ "constraints": {
2738
+ "notEmpty": true
2739
+ }
2740
+ },
2741
+ {
2742
+ "label": "API Key",
2743
+ "description": "Expected API key",
2744
+ "type": "String",
2745
+ "group": "authorization",
2746
+ "feel": "optional",
2747
+ "binding": {
2748
+ "type": "zeebe:property",
2749
+ "name": "inbound.auth.apiKey"
2750
+ },
2751
+ "condition": {
2752
+ "property": "authorizationType",
2753
+ "equals": "APIKEY"
2754
+ },
2755
+ "constraints": {
2756
+ "notEmpty": true
2757
+ }
2758
+ },
2759
+ {
2760
+ "label": "API Key locator",
2761
+ "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>",
2762
+ "type": "String",
2763
+ "group": "authorization",
2764
+ "feel": "required",
2765
+ "binding": {
2766
+ "type": "zeebe:property",
2767
+ "name": "inbound.auth.apiKeyLocator"
2768
+ },
2769
+ "condition": {
2770
+ "property": "authorizationType",
2771
+ "equals": "APIKEY"
2772
+ },
2773
+ "constraints": {
2774
+ "notEmpty": true
2775
+ },
2776
+ "value": "=split(request.headers.authorization, \" \")[2]"
2777
+ },
2778
+ {
2779
+ "label": "Condition",
2780
+ "type": "String",
2781
+ "group": "activation",
2782
+ "feel": "required",
2783
+ "optional": true,
2784
+ "binding": {
2785
+ "type": "zeebe:property",
2786
+ "name": "activationCondition"
2787
+ },
2788
+ "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>"
2789
+ },
2790
+ {
2791
+ "label": "Result variable",
2792
+ "type": "String",
2793
+ "group": "variable-mapping",
2794
+ "optional": true,
2795
+ "binding": {
2796
+ "type": "zeebe:property",
2797
+ "name": "resultVariable"
2798
+ },
2799
+ "description": "Name of variable to store the result of the connector in"
2800
+ },
2801
+ {
2802
+ "label": "Result expression",
2803
+ "type": "String",
2804
+ "group": "variable-mapping",
2805
+ "feel": "required",
2806
+ "optional": true,
2807
+ "binding": {
2808
+ "type": "zeebe:property",
2809
+ "name": "resultExpression"
2810
+ },
2811
+ "description": "Expression to map the inbound payload to process variables"
2812
+ },
2813
+ {
2814
+ "label": "Response body expression",
2815
+ "type": "Text",
2816
+ "group": "webhookResponse",
2817
+ "feel": "required",
2818
+ "optional": true,
2819
+ "binding": {
2820
+ "type": "zeebe:property",
2821
+ "name": "inbound.responseBodyExpression"
2822
+ },
2823
+ "description": "Specify condition and response"
2824
+ }
2825
+ ],
2826
+ "icon": {
2827
+ "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"
2828
+ },
2829
+ "engines": {
2830
+ "camunda": "^8.2"
2831
+ }
2832
+ },
2833
+ {
2834
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2835
+ "name": "Webhook Connector",
2836
+ "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2837
+ "version": 1,
2838
+ "description": "Configure webhook to receive callbacks",
2839
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2840
+ "category": {
2841
+ "id": "connectors",
2842
+ "name": "Connectors"
2843
+ },
2844
+ "appliesTo": ["bpmn:StartEvent"],
2845
+ "elementType": {
2846
+ "value": "bpmn:StartEvent"
2847
+ },
2848
+ "groups": [
2849
+ {
2850
+ "id": "endpoint",
2851
+ "label": "Webhook Configuration"
2852
+ },
2853
+ {
2854
+ "id": "activation",
2855
+ "label": "Activation"
2856
+ },
2857
+ {
2858
+ "id": "variable-mapping",
2859
+ "label": "Variable Mapping"
2860
+ }
2861
+ ],
2862
+ "properties": [
2863
+ {
2864
+ "type": "Hidden",
2865
+ "value": "io.camunda:webhook:1",
2866
+ "binding": {
2867
+ "type": "zeebe:property",
2868
+ "name": "inbound.type"
2869
+ }
2870
+ },
2871
+ {
2872
+ "type": "Hidden",
2873
+ "value": "ConfigurableInboundWebhook",
2874
+ "binding": {
2875
+ "type": "zeebe:property",
2876
+ "name": "inbound.subtype"
2877
+ }
2878
+ },
2879
+ {
2880
+ "label": "Webhook ID",
2881
+ "type": "String",
2882
+ "group": "endpoint",
2883
+ "binding": {
2884
+ "type": "zeebe:property",
2885
+ "name": "inbound.context"
2886
+ },
2887
+ "constraints": {
2888
+ "notEmpty": true
2889
+ },
2890
+ "description": "The webhook ID is a part of the URL"
2891
+ },
2892
+ {
2893
+ "id": "shouldValidateHmac",
2894
+ "label": "HMAC authentication",
2895
+ "group": "endpoint",
2896
+ "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",
2897
+ "value": "disabled",
2898
+ "type": "Dropdown",
2899
+ "choices": [
2900
+ {
2901
+ "name": "Enabled",
2902
+ "value": "enabled"
2903
+ },
2904
+ {
2905
+ "name": "Disabled",
2906
+ "value": "disabled"
2907
+ }
2908
+ ],
2909
+ "binding": {
2910
+ "type": "zeebe:property",
2911
+ "name": "inbound.shouldValidateHmac"
2912
+ }
2913
+ },
2914
+ {
2915
+ "label": "HMAC secret key",
2916
+ "description": "Shared secret key",
2917
+ "type": "String",
2918
+ "group": "endpoint",
2919
+ "optional": true,
2920
+ "binding": {
2921
+ "type": "zeebe:property",
2922
+ "name": "inbound.hmacSecret"
2923
+ },
2924
+ "condition": {
2925
+ "property": "shouldValidateHmac",
2926
+ "equals": "enabled"
2927
+ }
2785
2928
  },
2786
2929
  {
2787
- "id": "inbound.hmacHeader",
2788
2930
  "label": "HMAC header",
2789
2931
  "description": "Name of header attribute that will contain the HMAC value",
2932
+ "type": "String",
2933
+ "group": "endpoint",
2790
2934
  "optional": true,
2791
- "feel": "optional",
2792
- "group": "authentication",
2793
2935
  "binding": {
2794
- "name": "inbound.hmacHeader",
2795
- "type": "zeebe:property"
2936
+ "type": "zeebe:property",
2937
+ "name": "inbound.hmacHeader"
2796
2938
  },
2797
2939
  "condition": {
2798
- "property": "inbound.shouldValidateHmac",
2799
- "equals": "enabled",
2800
- "type": "simple"
2801
- },
2802
- "type": "String"
2940
+ "property": "shouldValidateHmac",
2941
+ "equals": "enabled"
2942
+ }
2803
2943
  },
2804
2944
  {
2805
- "id": "inbound.hmacAlgorithm",
2806
2945
  "label": "HMAC algorithm",
2946
+ "group": "endpoint",
2807
2947
  "description": "Choose HMAC algorithm",
2808
- "optional": false,
2809
2948
  "value": "sha_256",
2949
+ "type": "Dropdown",
2950
+ "choices": [
2951
+ {
2952
+ "name": "SHA-1",
2953
+ "value": "sha_1"
2954
+ },
2955
+ {
2956
+ "name": "SHA-256",
2957
+ "value": "sha_256"
2958
+ },
2959
+ {
2960
+ "name": "SHA-512",
2961
+ "value": "sha_512"
2962
+ }
2963
+ ],
2964
+ "binding": {
2965
+ "type": "zeebe:property",
2966
+ "name": "inbound.hmacAlgorithm"
2967
+ },
2968
+ "condition": {
2969
+ "property": "shouldValidateHmac",
2970
+ "equals": "enabled"
2971
+ }
2972
+ },
2973
+ {
2974
+ "label": "Condition",
2975
+ "type": "String",
2976
+ "group": "activation",
2977
+ "feel": "required",
2978
+ "optional": true,
2979
+ "binding": {
2980
+ "type": "zeebe:property",
2981
+ "name": "inbound.activationCondition"
2982
+ },
2983
+ "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>"
2984
+ },
2985
+ {
2986
+ "label": "Variables",
2987
+ "type": "String",
2988
+ "group": "variable-mapping",
2989
+ "feel": "required",
2990
+ "binding": {
2991
+ "type": "zeebe:property",
2992
+ "name": "inbound.variableMapping"
2993
+ },
2994
+ "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>"
2995
+ }
2996
+ ],
2997
+ "icon": {
2998
+ "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"
2999
+ },
3000
+ "engines": {
3001
+ "camunda": "^8.2"
3002
+ }
3003
+ },
3004
+ {
3005
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3006
+ "name": "Webhook Start Event Connector",
3007
+ "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3008
+ "version": 9,
3009
+ "description": "Configure webhook to receive callbacks",
3010
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3011
+ "category": {
3012
+ "id": "connectors",
3013
+ "name": "Connectors"
3014
+ },
3015
+ "appliesTo": ["bpmn:StartEvent"],
3016
+ "elementType": {
3017
+ "value": "bpmn:StartEvent"
3018
+ },
3019
+ "groups": [
3020
+ {
3021
+ "id": "endpoint",
3022
+ "label": "Webhook configuration"
3023
+ },
3024
+ {
3025
+ "id": "authentication",
3026
+ "label": "Authentication"
3027
+ },
3028
+ {
3029
+ "id": "authorization",
3030
+ "label": "Authorization"
3031
+ },
3032
+ {
3033
+ "id": "activation",
3034
+ "label": "Activation"
3035
+ },
3036
+ {
3037
+ "id": "variable-mapping",
3038
+ "label": "Variable mapping"
3039
+ },
3040
+ {
3041
+ "id": "webhookResponse",
3042
+ "label": "Webhook response"
3043
+ }
3044
+ ],
3045
+ "properties": [
3046
+ {
3047
+ "type": "Hidden",
3048
+ "value": "io.camunda:webhook:1",
3049
+ "binding": {
3050
+ "type": "zeebe:property",
3051
+ "name": "inbound.type"
3052
+ }
3053
+ },
3054
+ {
3055
+ "type": "Hidden",
3056
+ "value": "ConfigurableInboundWebhook",
3057
+ "binding": {
3058
+ "type": "zeebe:property",
3059
+ "name": "inbound.subtype"
3060
+ }
3061
+ },
3062
+ {
3063
+ "id": "webhookMethod",
3064
+ "label": "Webhook method",
3065
+ "group": "endpoint",
3066
+ "description": "Select HTTP method",
3067
+ "value": "any",
3068
+ "type": "Dropdown",
3069
+ "choices": [
3070
+ {
3071
+ "name": "Any",
3072
+ "value": "any"
3073
+ },
3074
+ {
3075
+ "name": "Get",
3076
+ "value": "get"
3077
+ },
3078
+ {
3079
+ "name": "Post",
3080
+ "value": "post"
3081
+ },
3082
+ {
3083
+ "name": "Put",
3084
+ "value": "put"
3085
+ },
3086
+ {
3087
+ "name": "Delete",
3088
+ "value": "delete"
3089
+ }
3090
+ ],
3091
+ "binding": {
3092
+ "type": "zeebe:property",
3093
+ "name": "inbound.method"
3094
+ }
3095
+ },
3096
+ {
3097
+ "label": "Webhook ID",
3098
+ "type": "String",
3099
+ "group": "endpoint",
3100
+ "binding": {
3101
+ "type": "zeebe:property",
3102
+ "name": "inbound.context"
3103
+ },
3104
+ "description": "The webhook ID is a part of the URL",
3105
+ "constraints": {
3106
+ "notEmpty": true,
3107
+ "pattern": {
3108
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
3109
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
3110
+ }
3111
+ }
3112
+ },
3113
+ {
3114
+ "id": "shouldValidateHmac",
3115
+ "label": "HMAC authentication",
2810
3116
  "group": "authentication",
3117
+ "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",
3118
+ "value": "disabled",
3119
+ "type": "Dropdown",
3120
+ "choices": [
3121
+ {
3122
+ "name": "Enabled",
3123
+ "value": "enabled"
3124
+ },
3125
+ {
3126
+ "name": "Disabled",
3127
+ "value": "disabled"
3128
+ }
3129
+ ],
2811
3130
  "binding": {
2812
- "name": "inbound.hmacAlgorithm",
2813
- "type": "zeebe:property"
3131
+ "type": "zeebe:property",
3132
+ "name": "inbound.shouldValidateHmac"
3133
+ }
3134
+ },
3135
+ {
3136
+ "label": "HMAC secret key",
3137
+ "description": "Shared secret key",
3138
+ "type": "String",
3139
+ "group": "authentication",
3140
+ "optional": true,
3141
+ "binding": {
3142
+ "type": "zeebe:property",
3143
+ "name": "inbound.hmacSecret"
2814
3144
  },
2815
3145
  "condition": {
2816
- "property": "inbound.shouldValidateHmac",
2817
- "equals": "enabled",
2818
- "type": "simple"
3146
+ "property": "shouldValidateHmac",
3147
+ "equals": "enabled"
3148
+ }
3149
+ },
3150
+ {
3151
+ "label": "HMAC header",
3152
+ "description": "Name of header attribute that will contain the HMAC value",
3153
+ "type": "String",
3154
+ "group": "authentication",
3155
+ "optional": true,
3156
+ "binding": {
3157
+ "type": "zeebe:property",
3158
+ "name": "inbound.hmacHeader"
2819
3159
  },
3160
+ "condition": {
3161
+ "property": "shouldValidateHmac",
3162
+ "equals": "enabled"
3163
+ }
3164
+ },
3165
+ {
3166
+ "label": "HMAC algorithm",
3167
+ "group": "authentication",
3168
+ "description": "Choose HMAC algorithm",
3169
+ "value": "sha_256",
2820
3170
  "type": "Dropdown",
2821
3171
  "choices": [
2822
3172
  {
@@ -2831,273 +3181,255 @@
2831
3181
  "name": "SHA-512",
2832
3182
  "value": "sha_512"
2833
3183
  }
2834
- ]
3184
+ ],
3185
+ "binding": {
3186
+ "type": "zeebe:property",
3187
+ "name": "inbound.hmacAlgorithm"
3188
+ },
3189
+ "condition": {
3190
+ "property": "shouldValidateHmac",
3191
+ "equals": "enabled"
3192
+ }
2835
3193
  },
2836
3194
  {
2837
- "id": "inbound.hmacScopes",
2838
3195
  "label": "HMAC scopes",
2839
- "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>",
2840
- "optional": true,
2841
- "feel": "required",
2842
3196
  "group": "authentication",
3197
+ "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>",
3198
+ "feel": "required",
3199
+ "type": "String",
3200
+ "optional": true,
2843
3201
  "binding": {
2844
- "name": "inbound.hmacScopes",
2845
- "type": "zeebe:property"
3202
+ "type": "zeebe:property",
3203
+ "name": "inbound.hmacScopes"
2846
3204
  },
2847
3205
  "condition": {
2848
- "property": "inbound.shouldValidateHmac",
2849
- "equals": "enabled",
2850
- "type": "simple"
2851
- },
2852
- "type": "String"
3206
+ "property": "shouldValidateHmac",
3207
+ "equals": "enabled"
3208
+ }
2853
3209
  },
2854
3210
  {
2855
- "id": "inbound.auth.type",
2856
- "label": "Authorization type",
2857
- "description": "Choose the authorization type",
2858
- "value": "NONE",
2859
- "group": "authorization",
2860
- "binding": {
2861
- "name": "inbound.auth.type",
2862
- "type": "zeebe:property"
2863
- },
3211
+ "id": "authorizationType",
3212
+ "label": "Authorization type",
3213
+ "group": "authorization",
3214
+ "description": "Choose the authorization type.",
3215
+ "value": "NONE",
2864
3216
  "type": "Dropdown",
2865
3217
  "choices": [
2866
3218
  {
2867
3219
  "name": "None",
2868
3220
  "value": "NONE"
2869
3221
  },
3222
+ {
3223
+ "name": "JWT",
3224
+ "value": "JWT"
3225
+ },
2870
3226
  {
2871
3227
  "name": "Basic",
2872
3228
  "value": "BASIC"
2873
3229
  },
2874
3230
  {
2875
- "name": "API key",
3231
+ "name": "API Key",
2876
3232
  "value": "APIKEY"
2877
- },
2878
- {
2879
- "name": "JWT",
2880
- "value": "JWT"
2881
3233
  }
2882
- ]
3234
+ ],
3235
+ "binding": {
3236
+ "type": "zeebe:property",
3237
+ "name": "inbound.auth.type"
3238
+ }
2883
3239
  },
2884
3240
  {
2885
- "id": "inbound.auth.username",
2886
- "label": "Username",
2887
- "description": "Username for basic authentication",
2888
- "optional": false,
2889
- "feel": "optional",
3241
+ "label": "JWK url",
3242
+ "description": "Well-known url of JWKs",
3243
+ "type": "String",
2890
3244
  "group": "authorization",
3245
+ "feel": "optional",
3246
+ "optional": true,
2891
3247
  "binding": {
2892
- "name": "inbound.auth.username",
2893
- "type": "zeebe:property"
3248
+ "type": "zeebe:property",
3249
+ "name": "inbound.auth.jwt.jwkUrl"
2894
3250
  },
2895
3251
  "condition": {
2896
- "property": "inbound.auth.type",
2897
- "equals": "BASIC",
2898
- "type": "simple"
2899
- },
2900
- "type": "String"
3252
+ "property": "authorizationType",
3253
+ "equals": "JWT"
3254
+ }
2901
3255
  },
2902
3256
  {
2903
- "id": "inbound.auth.password",
2904
- "label": "Password",
2905
- "description": "Password for basic authentication",
2906
- "optional": false,
2907
- "feel": "optional",
3257
+ "label": "JWT role property expression",
3258
+ "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>",
3259
+ "type": "String",
2908
3260
  "group": "authorization",
3261
+ "feel": "required",
3262
+ "optional": true,
2909
3263
  "binding": {
2910
- "name": "inbound.auth.password",
2911
- "type": "zeebe:property"
3264
+ "type": "zeebe:property",
3265
+ "name": "inbound.auth.jwt.permissionsExpression"
2912
3266
  },
2913
3267
  "condition": {
2914
- "property": "inbound.auth.type",
2915
- "equals": "BASIC",
2916
- "type": "simple"
2917
- },
2918
- "type": "String"
3268
+ "property": "authorizationType",
3269
+ "equals": "JWT"
3270
+ }
2919
3271
  },
2920
3272
  {
2921
- "id": "inbound.auth.apiKey",
2922
- "label": "API key",
2923
- "description": "Expected API key",
2924
- "optional": false,
2925
- "feel": "optional",
3273
+ "label": "Required roles",
3274
+ "description": "List of roles to test JWT roles against",
3275
+ "type": "String",
2926
3276
  "group": "authorization",
3277
+ "feel": "required",
3278
+ "optional": true,
2927
3279
  "binding": {
2928
- "name": "inbound.auth.apiKey",
2929
- "type": "zeebe:property"
3280
+ "type": "zeebe:property",
3281
+ "name": "inbound.auth.jwt.requiredPermissions"
2930
3282
  },
2931
3283
  "condition": {
2932
- "property": "inbound.auth.type",
2933
- "equals": "APIKEY",
2934
- "type": "simple"
2935
- },
2936
- "type": "String"
3284
+ "property": "authorizationType",
3285
+ "equals": "JWT"
3286
+ }
2937
3287
  },
2938
3288
  {
2939
- "id": "inbound.auth.apiKeyLocator",
2940
- "label": "API key locator",
2941
- "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>",
2942
- "optional": false,
2943
- "value": "=split(request.headers.authorization, \" \")[2]",
2944
- "constraints": {
2945
- "notEmpty": true
2946
- },
2947
- "feel": "required",
3289
+ "label": "Username",
3290
+ "description": "Username for basic authentication",
3291
+ "type": "String",
2948
3292
  "group": "authorization",
3293
+ "feel": "optional",
2949
3294
  "binding": {
2950
- "name": "inbound.auth.apiKeyLocator",
2951
- "type": "zeebe:property"
3295
+ "type": "zeebe:property",
3296
+ "name": "inbound.auth.username"
2952
3297
  },
2953
3298
  "condition": {
2954
- "property": "inbound.auth.type",
2955
- "equals": "APIKEY",
2956
- "type": "simple"
3299
+ "property": "authorizationType",
3300
+ "equals": "BASIC"
2957
3301
  },
2958
- "type": "String"
3302
+ "constraints": {
3303
+ "notEmpty": true
3304
+ }
2959
3305
  },
2960
3306
  {
2961
- "id": "inbound.auth.jwt.jwkUrl",
2962
- "label": "JWK URL",
2963
- "description": "Well-known URL of JWKs",
2964
- "optional": false,
2965
- "feel": "optional",
3307
+ "label": "Password",
3308
+ "description": "Password for basic authentication",
3309
+ "type": "String",
2966
3310
  "group": "authorization",
3311
+ "feel": "optional",
2967
3312
  "binding": {
2968
- "name": "inbound.auth.jwt.jwkUrl",
2969
- "type": "zeebe:property"
3313
+ "type": "zeebe:property",
3314
+ "name": "inbound.auth.password"
2970
3315
  },
2971
3316
  "condition": {
2972
- "property": "inbound.auth.type",
2973
- "equals": "JWT",
2974
- "type": "simple"
3317
+ "property": "authorizationType",
3318
+ "equals": "BASIC"
2975
3319
  },
2976
- "type": "String"
3320
+ "constraints": {
3321
+ "notEmpty": true
3322
+ }
2977
3323
  },
2978
3324
  {
2979
- "id": "inbound.auth.jwt.permissionsExpression",
2980
- "label": "JWT role property expression",
2981
- "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>",
2982
- "optional": false,
2983
- "feel": "required",
3325
+ "label": "API Key",
3326
+ "description": "Expected API key",
3327
+ "type": "String",
2984
3328
  "group": "authorization",
3329
+ "feel": "optional",
2985
3330
  "binding": {
2986
- "name": "inbound.auth.jwt.permissionsExpression",
2987
- "type": "zeebe:property"
3331
+ "type": "zeebe:property",
3332
+ "name": "inbound.auth.apiKey"
2988
3333
  },
2989
3334
  "condition": {
2990
- "property": "inbound.auth.type",
2991
- "equals": "JWT",
2992
- "type": "simple"
3335
+ "property": "authorizationType",
3336
+ "equals": "APIKEY"
2993
3337
  },
2994
- "type": "String"
3338
+ "constraints": {
3339
+ "notEmpty": true
3340
+ }
2995
3341
  },
2996
3342
  {
2997
- "id": "inbound.auth.jwt.requiredPermissions",
2998
- "label": "Required roles",
2999
- "description": "List of roles to test JWT roles against",
3000
- "optional": false,
3001
- "feel": "required",
3343
+ "label": "API Key locator",
3344
+ "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>",
3345
+ "type": "String",
3002
3346
  "group": "authorization",
3347
+ "feel": "required",
3003
3348
  "binding": {
3004
- "name": "inbound.auth.jwt.requiredPermissions",
3005
- "type": "zeebe:property"
3349
+ "type": "zeebe:property",
3350
+ "name": "inbound.auth.apiKeyLocator"
3006
3351
  },
3007
3352
  "condition": {
3008
- "property": "inbound.auth.type",
3009
- "equals": "JWT",
3010
- "type": "simple"
3353
+ "property": "authorizationType",
3354
+ "equals": "APIKEY"
3011
3355
  },
3012
- "type": "String"
3013
- },
3014
- {
3015
- "id": "inbound.responseExpression",
3016
- "label": "Response expression",
3017
- "description": "Expression used to generate the HTTP response",
3018
- "optional": true,
3019
- "feel": "required",
3020
- "group": "webhookResponse",
3021
- "binding": {
3022
- "name": "inbound.responseExpression",
3023
- "type": "zeebe:property"
3356
+ "constraints": {
3357
+ "notEmpty": true
3024
3358
  },
3025
- "type": "Text"
3359
+ "value": "=split(request.headers.authorization, \" \")[2]"
3026
3360
  },
3027
3361
  {
3028
- "id": "inbound.verificationExpression",
3029
- "label": "One time verification response expression",
3030
- "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>",
3031
- "optional": true,
3362
+ "label": "Condition",
3363
+ "type": "String",
3364
+ "group": "activation",
3032
3365
  "feel": "required",
3033
- "group": "webhookResponse",
3366
+ "optional": true,
3034
3367
  "binding": {
3035
- "name": "inbound.verificationExpression",
3036
- "type": "zeebe:property"
3368
+ "type": "zeebe:property",
3369
+ "name": "activationCondition"
3037
3370
  },
3038
- "type": "Text"
3371
+ "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>"
3039
3372
  },
3040
3373
  {
3041
- "id": "activationCondition",
3042
- "label": "Activation condition",
3043
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
3374
+ "label": "Result variable",
3375
+ "type": "String",
3376
+ "group": "variable-mapping",
3044
3377
  "optional": true,
3045
- "feel": "required",
3046
- "group": "activation",
3047
3378
  "binding": {
3048
- "name": "activationCondition",
3049
- "type": "zeebe:property"
3379
+ "type": "zeebe:property",
3380
+ "name": "resultVariable"
3050
3381
  },
3051
- "type": "String"
3382
+ "description": "Name of variable to store the result of the connector in"
3052
3383
  },
3053
3384
  {
3054
- "id": "consumeUnmatchedEvents",
3055
- "label": "Consume unmatched events",
3056
- "value": true,
3057
- "group": "activation",
3385
+ "label": "Result expression",
3386
+ "type": "String",
3387
+ "group": "variable-mapping",
3388
+ "feel": "required",
3389
+ "optional": true,
3058
3390
  "binding": {
3059
- "name": "consumeUnmatchedEvents",
3060
- "type": "zeebe:property"
3391
+ "type": "zeebe:property",
3392
+ "name": "resultExpression"
3061
3393
  },
3062
- "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",
3063
- "type": "Boolean"
3394
+ "description": "Expression to map the inbound payload to process variables"
3064
3395
  },
3065
3396
  {
3066
- "id": "resultVariable",
3067
- "label": "Result variable",
3068
- "description": "Name of variable to store the response in",
3069
- "group": "output",
3397
+ "label": "One time verification response expression",
3398
+ "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>",
3399
+ "type": "Text",
3400
+ "group": "webhookResponse",
3401
+ "feel": "required",
3402
+ "optional": true,
3070
3403
  "binding": {
3071
- "name": "resultVariable",
3072
- "type": "zeebe:property"
3073
- },
3074
- "type": "String"
3404
+ "type": "zeebe:property",
3405
+ "name": "inbound.verificationExpression"
3406
+ }
3075
3407
  },
3076
3408
  {
3077
- "id": "resultExpression",
3078
- "label": "Result expression",
3079
- "description": "Expression to map the response into process variables",
3409
+ "label": "Response body expression",
3410
+ "type": "Text",
3411
+ "group": "webhookResponse",
3080
3412
  "feel": "required",
3081
- "group": "output",
3413
+ "optional": true,
3082
3414
  "binding": {
3083
- "name": "resultExpression",
3084
- "type": "zeebe:property"
3415
+ "type": "zeebe:property",
3416
+ "name": "inbound.responseBodyExpression"
3085
3417
  },
3086
- "type": "Text"
3418
+ "description": "Specify condition and response"
3087
3419
  }
3088
3420
  ],
3089
3421
  "icon": {
3090
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3422
+ "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"
3091
3423
  },
3092
3424
  "engines": {
3093
- "camunda": "^8.6"
3425
+ "camunda": "^8.5"
3094
3426
  }
3095
3427
  },
3096
3428
  {
3097
3429
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3098
- "name": "Webhook connector",
3430
+ "name": "Webhook Start Event Connector",
3099
3431
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3100
- "version": 6,
3432
+ "version": 7,
3101
3433
  "description": "Configure webhook to receive callbacks",
3102
3434
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3103
3435
  "category": {
@@ -3506,8 +3838,11 @@
3506
3838
  "name": "Webhook Start Event Connector",
3507
3839
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3508
3840
  "description": "Configure webhook to receive callbacks",
3509
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3510
- "version": 10,
3841
+ "metadata": {
3842
+ "keywords": []
3843
+ },
3844
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3845
+ "version": 12,
3511
3846
  "category": {
3512
3847
  "id": "connectors",
3513
3848
  "name": "Connectors"
@@ -3608,7 +3943,7 @@
3608
3943
  {
3609
3944
  "id": "inbound.shouldValidateHmac",
3610
3945
  "label": "HMAC authentication",
3611
- "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",
3946
+ "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",
3612
3947
  "optional": false,
3613
3948
  "value": "disabled",
3614
3949
  "group": "authentication",
@@ -3699,7 +4034,7 @@
3699
4034
  {
3700
4035
  "id": "inbound.hmacScopes",
3701
4036
  "label": "HMAC scopes",
3702
- "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>",
4037
+ "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>",
3703
4038
  "optional": true,
3704
4039
  "feel": "required",
3705
4040
  "group": "authentication",
@@ -3801,7 +4136,7 @@
3801
4136
  {
3802
4137
  "id": "inbound.auth.apiKeyLocator",
3803
4138
  "label": "API key locator",
3804
- "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>",
4139
+ "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>",
3805
4140
  "optional": false,
3806
4141
  "value": "=split(request.headers.authorization, \" \")[2]",
3807
4142
  "constraints": {
@@ -3841,7 +4176,7 @@
3841
4176
  {
3842
4177
  "id": "inbound.auth.jwt.permissionsExpression",
3843
4178
  "label": "JWT role property expression",
3844
- "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>",
4179
+ "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>",
3845
4180
  "optional": false,
3846
4181
  "feel": "required",
3847
4182
  "group": "authorization",
@@ -3875,14 +4210,14 @@
3875
4210
  "type": "String"
3876
4211
  },
3877
4212
  {
3878
- "id": "inbound.responseBodyExpression",
3879
- "label": "Response body expression",
3880
- "description": "Specify condition and response",
4213
+ "id": "inbound.responseExpression",
4214
+ "label": "Response expression",
4215
+ "description": "Expression used to generate the HTTP response",
3881
4216
  "optional": true,
3882
4217
  "feel": "required",
3883
4218
  "group": "webhookResponse",
3884
4219
  "binding": {
3885
- "name": "inbound.responseBodyExpression",
4220
+ "name": "inbound.responseExpression",
3886
4221
  "type": "zeebe:property"
3887
4222
  },
3888
4223
  "type": "Text"
@@ -3913,6 +4248,18 @@
3913
4248
  },
3914
4249
  "type": "String"
3915
4250
  },
4251
+ {
4252
+ "id": "consumeUnmatchedEvents",
4253
+ "label": "Consume unmatched events",
4254
+ "value": true,
4255
+ "group": "activation",
4256
+ "binding": {
4257
+ "name": "consumeUnmatchedEvents",
4258
+ "type": "zeebe:property"
4259
+ },
4260
+ "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",
4261
+ "type": "Boolean"
4262
+ },
3916
4263
  {
3917
4264
  "id": "resultVariable",
3918
4265
  "label": "Result variable",
@@ -3937,11 +4284,194 @@
3937
4284
  "type": "Text"
3938
4285
  }
3939
4286
  ],
4287
+ "engines": {
4288
+ "camunda": "^8.3"
4289
+ },
3940
4290
  "icon": {
3941
4291
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
4292
+ }
4293
+ },
4294
+ {
4295
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4296
+ "name": "Webhook Connector",
4297
+ "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
4298
+ "version": 2,
4299
+ "description": "Configure webhook to receive callbacks",
4300
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
4301
+ "category": {
4302
+ "id": "connectors",
4303
+ "name": "Connectors"
4304
+ },
4305
+ "appliesTo": ["bpmn:StartEvent"],
4306
+ "elementType": {
4307
+ "value": "bpmn:StartEvent"
4308
+ },
4309
+ "groups": [
4310
+ {
4311
+ "id": "endpoint",
4312
+ "label": "Webhook Configuration"
4313
+ },
4314
+ {
4315
+ "id": "activation",
4316
+ "label": "Activation"
4317
+ },
4318
+ {
4319
+ "id": "variable-mapping",
4320
+ "label": "Variable Mapping"
4321
+ }
4322
+ ],
4323
+ "properties": [
4324
+ {
4325
+ "type": "Hidden",
4326
+ "value": "io.camunda:webhook:1",
4327
+ "binding": {
4328
+ "type": "zeebe:property",
4329
+ "name": "inbound.type"
4330
+ }
4331
+ },
4332
+ {
4333
+ "type": "Hidden",
4334
+ "value": "ConfigurableInboundWebhook",
4335
+ "binding": {
4336
+ "type": "zeebe:property",
4337
+ "name": "inbound.subtype"
4338
+ }
4339
+ },
4340
+ {
4341
+ "label": "Webhook ID",
4342
+ "type": "String",
4343
+ "group": "endpoint",
4344
+ "binding": {
4345
+ "type": "zeebe:property",
4346
+ "name": "inbound.context"
4347
+ },
4348
+ "description": "The webhook ID is a part of the URL",
4349
+ "constraints": {
4350
+ "notEmpty": true
4351
+ }
4352
+ },
4353
+ {
4354
+ "id": "shouldValidateHmac",
4355
+ "label": "HMAC authentication",
4356
+ "group": "endpoint",
4357
+ "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",
4358
+ "value": "disabled",
4359
+ "type": "Dropdown",
4360
+ "choices": [
4361
+ {
4362
+ "name": "Enabled",
4363
+ "value": "enabled"
4364
+ },
4365
+ {
4366
+ "name": "Disabled",
4367
+ "value": "disabled"
4368
+ }
4369
+ ],
4370
+ "binding": {
4371
+ "type": "zeebe:property",
4372
+ "name": "inbound.shouldValidateHmac"
4373
+ }
4374
+ },
4375
+ {
4376
+ "label": "HMAC secret key",
4377
+ "description": "Shared secret key",
4378
+ "type": "String",
4379
+ "group": "endpoint",
4380
+ "optional": true,
4381
+ "binding": {
4382
+ "type": "zeebe:property",
4383
+ "name": "inbound.hmacSecret"
4384
+ },
4385
+ "condition": {
4386
+ "property": "shouldValidateHmac",
4387
+ "equals": "enabled"
4388
+ }
4389
+ },
4390
+ {
4391
+ "label": "HMAC header",
4392
+ "description": "Name of header attribute that will contain the HMAC value",
4393
+ "type": "String",
4394
+ "group": "endpoint",
4395
+ "optional": true,
4396
+ "binding": {
4397
+ "type": "zeebe:property",
4398
+ "name": "inbound.hmacHeader"
4399
+ },
4400
+ "condition": {
4401
+ "property": "shouldValidateHmac",
4402
+ "equals": "enabled"
4403
+ }
4404
+ },
4405
+ {
4406
+ "label": "HMAC algorithm",
4407
+ "group": "endpoint",
4408
+ "description": "Choose HMAC algorithm",
4409
+ "value": "sha_256",
4410
+ "type": "Dropdown",
4411
+ "choices": [
4412
+ {
4413
+ "name": "SHA-1",
4414
+ "value": "sha_1"
4415
+ },
4416
+ {
4417
+ "name": "SHA-256",
4418
+ "value": "sha_256"
4419
+ },
4420
+ {
4421
+ "name": "SHA-512",
4422
+ "value": "sha_512"
4423
+ }
4424
+ ],
4425
+ "binding": {
4426
+ "type": "zeebe:property",
4427
+ "name": "inbound.hmacAlgorithm"
4428
+ },
4429
+ "condition": {
4430
+ "property": "shouldValidateHmac",
4431
+ "equals": "enabled"
4432
+ }
4433
+ },
4434
+ {
4435
+ "label": "Condition",
4436
+ "type": "String",
4437
+ "group": "activation",
4438
+ "feel": "required",
4439
+ "optional": true,
4440
+ "binding": {
4441
+ "type": "zeebe:property",
4442
+ "name": "inbound.activationCondition"
4443
+ },
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>"
4445
+ },
4446
+ {
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",
4459
+ "type": "String",
4460
+ "group": "variable-mapping",
4461
+ "feel": "required",
4462
+ "optional": true,
4463
+ "binding": {
4464
+ "type": "zeebe:property",
4465
+ "name": "resultExpression"
4466
+ },
4467
+ "description": "Expression to map the inbound payload to process variables"
4468
+ }
4469
+ ],
4470
+ "icon": {
4471
+ "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"
3942
4472
  },
3943
4473
  "engines": {
3944
- "camunda": "^8.5"
4474
+ "camunda": "^8.2"
3945
4475
  }
3946
4476
  },
3947
4477
  {
@@ -3953,14 +4483,11 @@
3953
4483
  "keywords": []
3954
4484
  },
3955
4485
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3956
- "version": 13,
4486
+ "version": 14,
3957
4487
  "category": {
3958
4488
  "id": "connectors",
3959
4489
  "name": "Connectors"
3960
4490
  },
3961
- "deprecated": {
3962
- "message": "Migrate to Webhook Message Start Event Connector"
3963
- },
3964
4491
  "appliesTo": ["bpmn:StartEvent"],
3965
4492
  "elementType": {
3966
4493
  "value": "bpmn:StartEvent"
@@ -3989,6 +4516,10 @@
3989
4516
  "id": "activation",
3990
4517
  "label": "Activation"
3991
4518
  },
4519
+ {
4520
+ "id": "synchronousResponse",
4521
+ "label": "Response mode"
4522
+ },
3992
4523
  {
3993
4524
  "id": "deduplication",
3994
4525
  "label": "Deduplication",
@@ -4382,6 +4913,29 @@
4382
4913
  "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",
4383
4914
  "type": "Boolean"
4384
4915
  },
4916
+ {
4917
+ "id": "synchronousResponse",
4918
+ "label": "Response mode",
4919
+ "description": "Synchronous or Asynchronous <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#response-mode\" target=\"_blank\">response handling</a>",
4920
+ "value": "false",
4921
+ "group": "synchronousResponse",
4922
+ "binding": {
4923
+ "name": "synchronousResponse",
4924
+ "type": "zeebe:property"
4925
+ },
4926
+ "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.",
4927
+ "type": "Dropdown",
4928
+ "choices": [
4929
+ {
4930
+ "name": "Asynchronous",
4931
+ "value": "false"
4932
+ },
4933
+ {
4934
+ "name": "Synchronous",
4935
+ "value": "true"
4936
+ }
4937
+ ]
4938
+ },
4385
4939
  {
4386
4940
  "id": "deduplicationModeManualFlag",
4387
4941
  "label": "Manual mode",