@camunda/connectors-element-templates 1.0.19 → 1.0.21

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 (116) hide show
  1. package/package.json +2 -2
  2. package/src/connectors-template.js +1 -3
  3. package/src/connectors.js +4 -0
  4. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +1 -1
  5. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +43 -43
  6. package/src/element-templates/agenticai-aiagent-job-worker.json +2230 -222
  7. package/src/element-templates/agenticai-aiagent-outbound-connector.json +6281 -4356
  8. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +718 -36
  9. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +2394 -949
  10. package/src/element-templates/app-integrations-connector.json +1047 -0
  11. package/src/element-templates/asana-connector.json +943 -109
  12. package/src/element-templates/automation-anywhere-outbound-connector.json +2240 -1747
  13. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +1068 -30
  14. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +386 -5
  15. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +442 -5
  16. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +417 -5
  17. package/src/element-templates/aws-bedrock-outbound-connector.json +2273 -623
  18. package/src/element-templates/aws-comprehend-outbound-connector.json +1573 -1
  19. package/src/element-templates/aws-dynamodb-outbound-connector.json +2950 -162
  20. package/src/element-templates/aws-eventbridge-connector-boundary.json +40 -40
  21. package/src/element-templates/aws-eventbridge-connector-intermediate.json +62 -62
  22. package/src/element-templates/aws-eventbridge-connector-start-event.json +33 -33
  23. package/src/element-templates/aws-eventbridge-outbound-connector.json +838 -424
  24. package/src/element-templates/aws-lambda-outbound-connector.json +495 -96
  25. package/src/element-templates/aws-s3-outbound-connector.json +2238 -44
  26. package/src/element-templates/aws-sagemaker-outbound-connector.json +681 -52
  27. package/src/element-templates/aws-sns-inbound-boundary.json +4 -3
  28. package/src/element-templates/aws-sns-inbound-intermediate.json +341 -340
  29. package/src/element-templates/aws-sns-inbound-message-start.json +241 -240
  30. package/src/element-templates/aws-sns-inbound-receive.json +4 -3
  31. package/src/element-templates/aws-sns-inbound-start-event.json +133 -133
  32. package/src/element-templates/aws-sns-outbound-connector.json +581 -124
  33. package/src/element-templates/aws-sqs-boundary-connector.json +939 -420
  34. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +851 -332
  35. package/src/element-templates/aws-sqs-outbound-connector.json +589 -136
  36. package/src/element-templates/aws-sqs-receive-connector.json +525 -7
  37. package/src/element-templates/aws-sqs-start-event-connector.json +380 -380
  38. package/src/element-templates/aws-sqs-start-message.json +736 -185
  39. package/src/element-templates/aws-textract-outbound-connector.json +866 -131
  40. package/src/element-templates/azure-blobstorage-outbound-connector.json +1648 -225
  41. package/src/element-templates/azure-open-ai-connector.json +1371 -8
  42. package/src/element-templates/blue-prism-connector.json +609 -30
  43. package/src/element-templates/box-outbound-connector.json +2356 -272
  44. package/src/element-templates/csv-outbound-connector.json +449 -0
  45. package/src/element-templates/easy-post-connector.json +1251 -170
  46. package/src/element-templates/email-outbound-connector.json +3087 -1013
  47. package/src/element-templates/embeddings-vector-database-outbound-connector.json +2161 -1
  48. package/src/element-templates/github-connector.json +18554 -14368
  49. package/src/element-templates/github-webhook-connector-boundary.json +24 -24
  50. package/src/element-templates/github-webhook-connector-intermediate.json +8 -8
  51. package/src/element-templates/github-webhook-connector-message-start.json +8 -8
  52. package/src/element-templates/github-webhook-connector-receive.json +8 -8
  53. package/src/element-templates/github-webhook-connector-start-event.json +58 -58
  54. package/src/element-templates/gitlab-connector.json +3022 -1120
  55. package/src/element-templates/google-cloud-storage-outbound-connector.json +1447 -240
  56. package/src/element-templates/google-drive-outbound-connector.json +2980 -1428
  57. package/src/element-templates/google-gemini-outbound-connector.json +41 -55
  58. package/src/element-templates/google-maps-platform-connector.json +688 -137
  59. package/src/element-templates/google-sheets-outbound-connector.json +3186 -2030
  60. package/src/element-templates/graphql-outbound-connector.json +4149 -1485
  61. package/src/element-templates/http-json-connector.json +6143 -2053
  62. package/src/element-templates/http-polling-boundary-catch-event-connector.json +2426 -364
  63. package/src/element-templates/http-polling-connector.json +3312 -1250
  64. package/src/element-templates/hubspot-outbound-connector.json +2817 -67
  65. package/src/element-templates/hugging-face-connector.json +83 -82
  66. package/src/element-templates/jdbc-outbound-connector.json +506 -9
  67. package/src/element-templates/kafka-inbound-connector-boundary.json +968 -971
  68. package/src/element-templates/kafka-inbound-connector-intermediate.json +53 -56
  69. package/src/element-templates/kafka-inbound-connector-receive.json +9 -12
  70. package/src/element-templates/kafka-inbound-connector-start-message.json +545 -548
  71. package/src/element-templates/kafka-inbound-connector.json +240 -240
  72. package/src/element-templates/kafka-outbound-connector.json +304 -308
  73. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +7 -10
  74. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +7 -10
  75. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +7 -10
  76. package/src/element-templates/microsoft-office365-mail-connector.json +2077 -35
  77. package/src/element-templates/microsoft-teams-outbound-connector.json +2897 -456
  78. package/src/element-templates/openai-connector.json +701 -207
  79. package/src/element-templates/operate-connector.json +83 -86
  80. package/src/element-templates/orchestration-connector.json +1843 -0
  81. package/src/element-templates/power-automate-connector.json +62 -62
  82. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +772 -774
  83. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +456 -458
  84. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +573 -575
  85. package/src/element-templates/rabbitmq-inbound-connector-receive.json +5 -7
  86. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +347 -347
  87. package/src/element-templates/rabbitmq-outbound-connector.json +631 -631
  88. package/src/element-templates/rpa-connector.json +6 -6
  89. package/src/element-templates/salesforce-connector.json +653 -19
  90. package/src/element-templates/send-message-connector-intermediate-throw-event.json +301 -1
  91. package/src/element-templates/send-message-connector-message-end-event.json +301 -1
  92. package/src/element-templates/send-message-connector-send-task.json +300 -1
  93. package/src/element-templates/sendgrid-outbound-connector.json +790 -790
  94. package/src/element-templates/servicenow-connector.json +1364 -7
  95. package/src/element-templates/servicenow-flow-starter-connector.json +16 -16
  96. package/src/element-templates/servicenow-incident-connector.json +1075 -29
  97. package/src/element-templates/slack-inbound-boundary.json +493 -493
  98. package/src/element-templates/slack-inbound-intermediate.json +448 -448
  99. package/src/element-templates/slack-inbound-message-start.json +369 -369
  100. package/src/element-templates/slack-inbound-receive.json +2 -2
  101. package/src/element-templates/slack-inbound-start-event.json +328 -328
  102. package/src/element-templates/slack-outbound-connector.json +2365 -1262
  103. package/src/element-templates/soap-outbound-connector.json +113 -117
  104. package/src/element-templates/twilio-connector.json +1186 -373
  105. package/src/element-templates/twilio-webhook-boundary-connector.json +9 -10
  106. package/src/element-templates/twilio-webhook-connector.json +60 -61
  107. package/src/element-templates/twilio-webhook-intermediate-connector.json +31 -32
  108. package/src/element-templates/twilio-webhook-message-start-connector.json +10 -11
  109. package/src/element-templates/twilio-webhook-receive-connector.json +9 -10
  110. package/src/element-templates/uipath-connector.json +668 -50
  111. package/src/element-templates/webhook-connector-boundary.json +1040 -385
  112. package/src/element-templates/webhook-connector-intermediate.json +2100 -1445
  113. package/src/element-templates/webhook-connector-receive.json +659 -5
  114. package/src/element-templates/webhook-connector-start-event.json +1860 -1299
  115. package/src/element-templates/webhook-connector-start-message.json +1535 -848
  116. package/src/element-templates/whatsapp-connector.json +393 -23
@@ -1,11 +1,11 @@
1
1
  [
2
2
  {
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
- "name": "Webhook connector",
4
+ "name": "Webhook Start Event Connector",
5
5
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
6
- "version": 5,
7
6
  "description": "Configure webhook to receive callbacks",
8
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
7
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
8
+ "version": 11,
9
9
  "category": {
10
10
  "id": "connectors",
11
11
  "name": "Connectors"
@@ -27,38 +27,39 @@
27
27
  "id": "authorization",
28
28
  "label": "Authorization"
29
29
  },
30
+ {
31
+ "id": "webhookResponse",
32
+ "label": "Webhook response"
33
+ },
30
34
  {
31
35
  "id": "activation",
32
36
  "label": "Activation"
33
37
  },
34
38
  {
35
- "id": "variable-mapping",
36
- "label": "Variable mapping"
39
+ "id": "output",
40
+ "label": "Output mapping"
37
41
  }
38
42
  ],
39
43
  "properties": [
40
44
  {
41
- "type": "Hidden",
42
45
  "value": "io.camunda:webhook:1",
43
46
  "binding": {
44
- "type": "zeebe:property",
45
- "name": "inbound.type"
46
- }
47
- },
48
- {
49
- "type": "Hidden",
50
- "value": "ConfigurableInboundWebhook",
51
- "binding": {
52
- "type": "zeebe:property",
53
- "name": "inbound.subtype"
54
- }
47
+ "name": "inbound.type",
48
+ "type": "zeebe:property"
49
+ },
50
+ "type": "Hidden"
55
51
  },
56
52
  {
57
- "id": "webhookMethod",
53
+ "id": "inbound.method",
58
54
  "label": "Webhook method",
59
- "group": "endpoint",
60
55
  "description": "Select HTTP method",
56
+ "optional": false,
61
57
  "value": "any",
58
+ "group": "endpoint",
59
+ "binding": {
60
+ "name": "inbound.method",
61
+ "type": "zeebe:property"
62
+ },
62
63
  "type": "Dropdown",
63
64
  "choices": [
64
65
  {
@@ -66,46 +67,53 @@
66
67
  "value": "any"
67
68
  },
68
69
  {
69
- "name": "Get",
70
+ "name": "GET",
70
71
  "value": "get"
71
72
  },
72
73
  {
73
- "name": "Post",
74
+ "name": "POST",
74
75
  "value": "post"
75
76
  },
76
77
  {
77
- "name": "Put",
78
+ "name": "PUT",
78
79
  "value": "put"
79
80
  },
80
81
  {
81
- "name": "Delete",
82
+ "name": "DELETE",
82
83
  "value": "delete"
83
84
  }
84
- ],
85
- "binding": {
86
- "type": "zeebe:property",
87
- "name": "inbound.method"
88
- }
85
+ ]
89
86
  },
90
87
  {
88
+ "id": "inbound.context",
91
89
  "label": "Webhook ID",
92
- "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
+ },
93
99
  "group": "endpoint",
94
100
  "binding": {
95
- "type": "zeebe:property",
96
- "name": "inbound.context"
101
+ "name": "inbound.context",
102
+ "type": "zeebe:property"
97
103
  },
98
- "description": "The webhook ID is a part of the URL",
99
- "constraints": {
100
- "notEmpty": true
101
- }
104
+ "type": "String"
102
105
  },
103
106
  {
104
- "id": "shouldValidateHmac",
107
+ "id": "inbound.shouldValidateHmac",
105
108
  "label": "HMAC authentication",
106
- "group": "authentication",
107
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
109
+ "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",
110
+ "optional": false,
108
111
  "value": "disabled",
112
+ "group": "authentication",
113
+ "binding": {
114
+ "name": "inbound.shouldValidateHmac",
115
+ "type": "zeebe:property"
116
+ },
109
117
  "type": "Dropdown",
110
118
  "choices": [
111
119
  {
@@ -116,47 +124,60 @@
116
124
  "name": "Disabled",
117
125
  "value": "disabled"
118
126
  }
119
- ],
120
- "binding": {
121
- "type": "zeebe:property",
122
- "name": "inbound.shouldValidateHmac"
123
- }
127
+ ]
124
128
  },
125
129
  {
130
+ "id": "inbound.hmacSecret",
126
131
  "label": "HMAC secret key",
127
132
  "description": "Shared secret key",
128
- "type": "String",
129
- "group": "authentication",
130
133
  "optional": true,
134
+ "feel": "optional",
135
+ "group": "authentication",
131
136
  "binding": {
132
- "type": "zeebe:property",
133
- "name": "inbound.hmacSecret"
137
+ "name": "inbound.hmacSecret",
138
+ "type": "zeebe:property"
134
139
  },
135
140
  "condition": {
136
- "property": "shouldValidateHmac",
137
- "equals": "enabled"
138
- }
141
+ "property": "inbound.shouldValidateHmac",
142
+ "equals": "enabled",
143
+ "type": "simple"
144
+ },
145
+ "type": "String"
139
146
  },
140
147
  {
148
+ "id": "inbound.hmacHeader",
141
149
  "label": "HMAC header",
142
150
  "description": "Name of header attribute that will contain the HMAC value",
143
- "type": "String",
144
- "group": "authentication",
145
151
  "optional": true,
152
+ "feel": "optional",
153
+ "group": "authentication",
146
154
  "binding": {
147
- "type": "zeebe:property",
148
- "name": "inbound.hmacHeader"
155
+ "name": "inbound.hmacHeader",
156
+ "type": "zeebe:property"
149
157
  },
150
158
  "condition": {
151
- "property": "shouldValidateHmac",
152
- "equals": "enabled"
153
- }
159
+ "property": "inbound.shouldValidateHmac",
160
+ "equals": "enabled",
161
+ "type": "simple"
162
+ },
163
+ "type": "String"
154
164
  },
155
165
  {
166
+ "id": "inbound.hmacAlgorithm",
156
167
  "label": "HMAC algorithm",
157
- "group": "authentication",
158
168
  "description": "Choose HMAC algorithm",
169
+ "optional": false,
159
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
+ },
160
181
  "type": "Dropdown",
161
182
  "choices": [
162
183
  {
@@ -171,231 +192,273 @@
171
192
  "name": "SHA-512",
172
193
  "value": "sha_512"
173
194
  }
174
- ],
175
- "binding": {
176
- "type": "zeebe:property",
177
- "name": "inbound.hmacAlgorithm"
178
- },
179
- "condition": {
180
- "property": "shouldValidateHmac",
181
- "equals": "enabled"
182
- }
195
+ ]
183
196
  },
184
197
  {
198
+ "id": "inbound.hmacScopes",
185
199
  "label": "HMAC scopes",
186
- "group": "authentication",
187
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
188
- "feel": "required",
189
- "type": "String",
200
+ "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>",
190
201
  "optional": true,
202
+ "feel": "required",
203
+ "group": "authentication",
191
204
  "binding": {
192
- "type": "zeebe:property",
193
- "name": "inbound.hmacScopes"
205
+ "name": "inbound.hmacScopes",
206
+ "type": "zeebe:property"
194
207
  },
195
208
  "condition": {
196
- "property": "shouldValidateHmac",
197
- "equals": "enabled"
198
- }
209
+ "property": "inbound.shouldValidateHmac",
210
+ "equals": "enabled",
211
+ "type": "simple"
212
+ },
213
+ "type": "String"
199
214
  },
200
215
  {
201
- "id": "authorizationType",
216
+ "id": "inbound.auth.type",
202
217
  "label": "Authorization type",
203
- "group": "authorization",
204
- "description": "Choose the authorization type.",
218
+ "description": "Choose the authorization type",
205
219
  "value": "NONE",
220
+ "group": "authorization",
221
+ "binding": {
222
+ "name": "inbound.auth.type",
223
+ "type": "zeebe:property"
224
+ },
206
225
  "type": "Dropdown",
207
226
  "choices": [
208
227
  {
209
228
  "name": "None",
210
229
  "value": "NONE"
211
230
  },
212
- {
213
- "name": "JWT",
214
- "value": "JWT"
215
- },
216
231
  {
217
232
  "name": "Basic",
218
233
  "value": "BASIC"
219
234
  },
220
235
  {
221
- "name": "API Key",
236
+ "name": "API key",
222
237
  "value": "APIKEY"
238
+ },
239
+ {
240
+ "name": "JWT",
241
+ "value": "JWT"
223
242
  }
224
- ],
225
- "binding": {
226
- "type": "zeebe:property",
227
- "name": "inbound.auth.type"
228
- }
243
+ ]
229
244
  },
230
245
  {
231
- "label": "JWK url",
232
- "description": "Well-known url of JWKs",
233
- "type": "String",
234
- "group": "authorization",
246
+ "id": "inbound.auth.username",
247
+ "label": "Username",
248
+ "description": "Username for basic authentication",
249
+ "optional": false,
235
250
  "feel": "optional",
236
- "optional": true,
251
+ "group": "authorization",
237
252
  "binding": {
238
- "type": "zeebe:property",
239
- "name": "inbound.auth.jwt.jwkUrl"
253
+ "name": "inbound.auth.username",
254
+ "type": "zeebe:property"
240
255
  },
241
256
  "condition": {
242
- "property": "authorizationType",
243
- "equals": "JWT"
244
- }
257
+ "property": "inbound.auth.type",
258
+ "equals": "BASIC",
259
+ "type": "simple"
260
+ },
261
+ "type": "String"
245
262
  },
246
263
  {
247
- "label": "JWT role property expression",
248
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
249
- "type": "String",
264
+ "id": "inbound.auth.password",
265
+ "label": "Password",
266
+ "description": "Password for basic authentication",
267
+ "optional": false,
268
+ "feel": "optional",
250
269
  "group": "authorization",
251
- "feel": "required",
252
- "optional": true,
253
270
  "binding": {
254
- "type": "zeebe:property",
255
- "name": "inbound.auth.jwt.permissionsExpression"
271
+ "name": "inbound.auth.password",
272
+ "type": "zeebe:property"
256
273
  },
257
274
  "condition": {
258
- "property": "authorizationType",
259
- "equals": "JWT"
260
- }
275
+ "property": "inbound.auth.type",
276
+ "equals": "BASIC",
277
+ "type": "simple"
278
+ },
279
+ "type": "String"
261
280
  },
262
281
  {
263
- "label": "Required roles",
264
- "description": "List of roles to test JWT roles against",
265
- "type": "String",
282
+ "id": "inbound.auth.apiKey",
283
+ "label": "API key",
284
+ "description": "Expected API key",
285
+ "optional": false,
286
+ "feel": "optional",
266
287
  "group": "authorization",
267
- "feel": "required",
268
- "optional": true,
269
288
  "binding": {
270
- "type": "zeebe:property",
271
- "name": "inbound.auth.jwt.requiredPermissions"
289
+ "name": "inbound.auth.apiKey",
290
+ "type": "zeebe:property"
272
291
  },
273
292
  "condition": {
274
- "property": "authorizationType",
275
- "equals": "JWT"
276
- }
277
- },
278
- {
279
- "label": "Username",
280
- "description": "Username for basic authentication",
281
- "type": "String",
293
+ "property": "inbound.auth.type",
294
+ "equals": "APIKEY",
295
+ "type": "simple"
296
+ },
297
+ "type": "String"
298
+ },
299
+ {
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/protocol/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",
282
309
  "group": "authorization",
283
- "feel": "optional",
284
310
  "binding": {
285
- "type": "zeebe:property",
286
- "name": "inbound.auth.username"
311
+ "name": "inbound.auth.apiKeyLocator",
312
+ "type": "zeebe:property"
287
313
  },
288
314
  "condition": {
289
- "property": "authorizationType",
290
- "equals": "BASIC"
315
+ "property": "inbound.auth.type",
316
+ "equals": "APIKEY",
317
+ "type": "simple"
291
318
  },
292
- "constraints": {
293
- "notEmpty": true
294
- }
319
+ "type": "String"
295
320
  },
296
321
  {
297
- "label": "Password",
298
- "description": "Password for basic authentication",
299
- "type": "String",
300
- "group": "authorization",
322
+ "id": "inbound.auth.jwt.jwkUrl",
323
+ "label": "JWK URL",
324
+ "description": "Well-known URL of JWKs",
325
+ "optional": false,
301
326
  "feel": "optional",
327
+ "group": "authorization",
302
328
  "binding": {
303
- "type": "zeebe:property",
304
- "name": "inbound.auth.password"
329
+ "name": "inbound.auth.jwt.jwkUrl",
330
+ "type": "zeebe:property"
305
331
  },
306
332
  "condition": {
307
- "property": "authorizationType",
308
- "equals": "BASIC"
333
+ "property": "inbound.auth.type",
334
+ "equals": "JWT",
335
+ "type": "simple"
309
336
  },
310
- "constraints": {
311
- "notEmpty": true
312
- }
337
+ "type": "String"
313
338
  },
314
339
  {
315
- "label": "API Key",
316
- "description": "Expected API key",
317
- "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/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
343
+ "optional": false,
344
+ "feel": "required",
318
345
  "group": "authorization",
319
- "feel": "optional",
320
346
  "binding": {
321
- "type": "zeebe:property",
322
- "name": "inbound.auth.apiKey"
347
+ "name": "inbound.auth.jwt.permissionsExpression",
348
+ "type": "zeebe:property"
323
349
  },
324
350
  "condition": {
325
- "property": "authorizationType",
326
- "equals": "APIKEY"
351
+ "property": "inbound.auth.type",
352
+ "equals": "JWT",
353
+ "type": "simple"
327
354
  },
328
- "constraints": {
329
- "notEmpty": true
330
- }
355
+ "type": "String"
331
356
  },
332
357
  {
333
- "label": "API Key locator",
334
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
335
- "type": "String",
336
- "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,
337
362
  "feel": "required",
363
+ "group": "authorization",
338
364
  "binding": {
339
- "type": "zeebe:property",
340
- "name": "inbound.auth.apiKeyLocator"
365
+ "name": "inbound.auth.jwt.requiredPermissions",
366
+ "type": "zeebe:property"
341
367
  },
342
368
  "condition": {
343
- "property": "authorizationType",
344
- "equals": "APIKEY"
369
+ "property": "inbound.auth.type",
370
+ "equals": "JWT",
371
+ "type": "simple"
345
372
  },
346
- "constraints": {
347
- "notEmpty": true
373
+ "type": "String"
374
+ },
375
+ {
376
+ "id": "inbound.responseExpression",
377
+ "label": "Response expression",
378
+ "description": "Expression used to generate the HTTP response",
379
+ "optional": true,
380
+ "feel": "required",
381
+ "group": "webhookResponse",
382
+ "binding": {
383
+ "name": "inbound.responseExpression",
384
+ "type": "zeebe:property"
348
385
  },
349
- "value": "=split(request.headers.authorization, \" \")[2]"
386
+ "type": "Text"
350
387
  },
351
388
  {
352
- "label": "Condition",
353
- "type": "String",
354
- "group": "activation",
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>",
392
+ "optional": true,
355
393
  "feel": "required",
394
+ "group": "webhookResponse",
395
+ "binding": {
396
+ "name": "inbound.verificationExpression",
397
+ "type": "zeebe:property"
398
+ },
399
+ "type": "Text"
400
+ },
401
+ {
402
+ "id": "activationCondition",
403
+ "label": "Activation condition",
404
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
356
405
  "optional": true,
406
+ "feel": "required",
407
+ "group": "activation",
357
408
  "binding": {
358
- "type": "zeebe:property",
359
- "name": "activationCondition"
409
+ "name": "activationCondition",
410
+ "type": "zeebe:property"
360
411
  },
361
- "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
412
+ "type": "String"
413
+ },
414
+ {
415
+ "id": "consumeUnmatchedEvents",
416
+ "label": "Consume unmatched events",
417
+ "value": true,
418
+ "group": "activation",
419
+ "binding": {
420
+ "name": "consumeUnmatchedEvents",
421
+ "type": "zeebe:property"
422
+ },
423
+ "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",
424
+ "type": "Boolean"
362
425
  },
363
426
  {
427
+ "id": "resultVariable",
364
428
  "label": "Result variable",
365
- "type": "String",
366
- "group": "variable-mapping",
367
- "optional": true,
429
+ "description": "Name of variable to store the response in",
430
+ "group": "output",
368
431
  "binding": {
369
- "type": "zeebe:property",
370
- "name": "resultVariable"
432
+ "name": "resultVariable",
433
+ "type": "zeebe:property"
371
434
  },
372
- "description": "Name of variable to store the result of the connector in"
435
+ "type": "String"
373
436
  },
374
437
  {
438
+ "id": "resultExpression",
375
439
  "label": "Result expression",
376
- "type": "String",
377
- "group": "variable-mapping",
440
+ "description": "Expression to map the response into process variables",
378
441
  "feel": "required",
379
- "optional": true,
442
+ "group": "output",
380
443
  "binding": {
381
- "type": "zeebe:property",
382
- "name": "resultExpression"
444
+ "name": "resultExpression",
445
+ "type": "zeebe:property"
383
446
  },
384
- "description": "Expression to map the inbound payload to process variables"
447
+ "type": "Text"
385
448
  }
386
449
  ],
387
450
  "icon": {
388
- "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
451
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
389
452
  },
390
453
  "engines": {
391
- "camunda": "^8.2"
454
+ "camunda": "^8.6"
392
455
  }
393
456
  },
394
457
  {
395
458
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
396
- "name": "Webhook Start Event Connector",
459
+ "name": "Webhook Connector",
397
460
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
398
- "version": 8,
461
+ "version": 2,
399
462
  "description": "Configure webhook to receive callbacks",
400
463
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
401
464
  "category": {
@@ -409,15 +472,7 @@
409
472
  "groups": [
410
473
  {
411
474
  "id": "endpoint",
412
- "label": "Webhook configuration"
413
- },
414
- {
415
- "id": "authentication",
416
- "label": "Authentication"
417
- },
418
- {
419
- "id": "authorization",
420
- "label": "Authorization"
475
+ "label": "Webhook Configuration"
421
476
  },
422
477
  {
423
478
  "id": "activation",
@@ -425,11 +480,7 @@
425
480
  },
426
481
  {
427
482
  "id": "variable-mapping",
428
- "label": "Variable mapping"
429
- },
430
- {
431
- "id": "webhookResponse",
432
- "label": "Webhook response"
483
+ "label": "Variable Mapping"
433
484
  }
434
485
  ],
435
486
  "properties": [
@@ -449,40 +500,6 @@
449
500
  "name": "inbound.subtype"
450
501
  }
451
502
  },
452
- {
453
- "id": "webhookMethod",
454
- "label": "Webhook method",
455
- "group": "endpoint",
456
- "description": "Select HTTP method",
457
- "value": "any",
458
- "type": "Dropdown",
459
- "choices": [
460
- {
461
- "name": "Any",
462
- "value": "any"
463
- },
464
- {
465
- "name": "Get",
466
- "value": "get"
467
- },
468
- {
469
- "name": "Post",
470
- "value": "post"
471
- },
472
- {
473
- "name": "Put",
474
- "value": "put"
475
- },
476
- {
477
- "name": "Delete",
478
- "value": "delete"
479
- }
480
- ],
481
- "binding": {
482
- "type": "zeebe:property",
483
- "name": "inbound.method"
484
- }
485
- },
486
503
  {
487
504
  "label": "Webhook ID",
488
505
  "type": "String",
@@ -499,7 +516,7 @@
499
516
  {
500
517
  "id": "shouldValidateHmac",
501
518
  "label": "HMAC authentication",
502
- "group": "authentication",
519
+ "group": "endpoint",
503
520
  "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",
504
521
  "value": "disabled",
505
522
  "type": "Dropdown",
@@ -522,7 +539,7 @@
522
539
  "label": "HMAC secret key",
523
540
  "description": "Shared secret key",
524
541
  "type": "String",
525
- "group": "authentication",
542
+ "group": "endpoint",
526
543
  "optional": true,
527
544
  "binding": {
528
545
  "type": "zeebe:property",
@@ -537,7 +554,7 @@
537
554
  "label": "HMAC header",
538
555
  "description": "Name of header attribute that will contain the HMAC value",
539
556
  "type": "String",
540
- "group": "authentication",
557
+ "group": "endpoint",
541
558
  "optional": true,
542
559
  "binding": {
543
560
  "type": "zeebe:property",
@@ -550,7 +567,7 @@
550
567
  },
551
568
  {
552
569
  "label": "HMAC algorithm",
553
- "group": "authentication",
570
+ "group": "endpoint",
554
571
  "description": "Choose HMAC algorithm",
555
572
  "value": "sha_256",
556
573
  "type": "Dropdown",
@@ -578,183 +595,16 @@
578
595
  }
579
596
  },
580
597
  {
581
- "label": "HMAC scopes",
582
- "group": "authentication",
583
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
584
- "feel": "required",
598
+ "label": "Condition",
585
599
  "type": "String",
600
+ "group": "activation",
601
+ "feel": "required",
586
602
  "optional": true,
587
603
  "binding": {
588
604
  "type": "zeebe:property",
589
- "name": "inbound.hmacScopes"
605
+ "name": "inbound.activationCondition"
590
606
  },
591
- "condition": {
592
- "property": "shouldValidateHmac",
593
- "equals": "enabled"
594
- }
595
- },
596
- {
597
- "id": "authorizationType",
598
- "label": "Authorization type",
599
- "group": "authorization",
600
- "description": "Choose the authorization type.",
601
- "value": "NONE",
602
- "type": "Dropdown",
603
- "choices": [
604
- {
605
- "name": "None",
606
- "value": "NONE"
607
- },
608
- {
609
- "name": "JWT",
610
- "value": "JWT"
611
- },
612
- {
613
- "name": "Basic",
614
- "value": "BASIC"
615
- },
616
- {
617
- "name": "API Key",
618
- "value": "APIKEY"
619
- }
620
- ],
621
- "binding": {
622
- "type": "zeebe:property",
623
- "name": "inbound.auth.type"
624
- }
625
- },
626
- {
627
- "label": "JWK url",
628
- "description": "Well-known url of JWKs",
629
- "type": "String",
630
- "group": "authorization",
631
- "feel": "optional",
632
- "optional": true,
633
- "binding": {
634
- "type": "zeebe:property",
635
- "name": "inbound.auth.jwt.jwkUrl"
636
- },
637
- "condition": {
638
- "property": "authorizationType",
639
- "equals": "JWT"
640
- }
641
- },
642
- {
643
- "label": "JWT role property expression",
644
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
645
- "type": "String",
646
- "group": "authorization",
647
- "feel": "required",
648
- "optional": true,
649
- "binding": {
650
- "type": "zeebe:property",
651
- "name": "inbound.auth.jwt.permissionsExpression"
652
- },
653
- "condition": {
654
- "property": "authorizationType",
655
- "equals": "JWT"
656
- }
657
- },
658
- {
659
- "label": "Required roles",
660
- "description": "List of roles to test JWT roles against",
661
- "type": "String",
662
- "group": "authorization",
663
- "feel": "required",
664
- "optional": true,
665
- "binding": {
666
- "type": "zeebe:property",
667
- "name": "inbound.auth.jwt.requiredPermissions"
668
- },
669
- "condition": {
670
- "property": "authorizationType",
671
- "equals": "JWT"
672
- }
673
- },
674
- {
675
- "label": "Username",
676
- "description": "Username for basic authentication",
677
- "type": "String",
678
- "group": "authorization",
679
- "feel": "optional",
680
- "binding": {
681
- "type": "zeebe:property",
682
- "name": "inbound.auth.username"
683
- },
684
- "condition": {
685
- "property": "authorizationType",
686
- "equals": "BASIC"
687
- },
688
- "constraints": {
689
- "notEmpty": true
690
- }
691
- },
692
- {
693
- "label": "Password",
694
- "description": "Password for basic authentication",
695
- "type": "String",
696
- "group": "authorization",
697
- "feel": "optional",
698
- "binding": {
699
- "type": "zeebe:property",
700
- "name": "inbound.auth.password"
701
- },
702
- "condition": {
703
- "property": "authorizationType",
704
- "equals": "BASIC"
705
- },
706
- "constraints": {
707
- "notEmpty": true
708
- }
709
- },
710
- {
711
- "label": "API Key",
712
- "description": "Expected API key",
713
- "type": "String",
714
- "group": "authorization",
715
- "feel": "optional",
716
- "binding": {
717
- "type": "zeebe:property",
718
- "name": "inbound.auth.apiKey"
719
- },
720
- "condition": {
721
- "property": "authorizationType",
722
- "equals": "APIKEY"
723
- },
724
- "constraints": {
725
- "notEmpty": true
726
- }
727
- },
728
- {
729
- "label": "API Key locator",
730
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
731
- "type": "String",
732
- "group": "authorization",
733
- "feel": "required",
734
- "binding": {
735
- "type": "zeebe:property",
736
- "name": "inbound.auth.apiKeyLocator"
737
- },
738
- "condition": {
739
- "property": "authorizationType",
740
- "equals": "APIKEY"
741
- },
742
- "constraints": {
743
- "notEmpty": true
744
- },
745
- "value": "=split(request.headers.authorization, \" \")[2]"
746
- },
747
- {
748
- "label": "Condition",
749
- "type": "String",
750
- "group": "activation",
751
- "feel": "required",
752
- "optional": true,
753
- "binding": {
754
- "type": "zeebe:property",
755
- "name": "activationCondition"
756
- },
757
- "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>"
607
+ "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>"
758
608
  },
759
609
  {
760
610
  "label": "Result variable",
@@ -765,7 +615,7 @@
765
615
  "type": "zeebe:property",
766
616
  "name": "resultVariable"
767
617
  },
768
- "description": "Name of variable to store the result of the connector in"
618
+ "description": "Name of variable to store the result of the Connector in"
769
619
  },
770
620
  {
771
621
  "label": "Result expression",
@@ -778,37 +628,13 @@
778
628
  "name": "resultExpression"
779
629
  },
780
630
  "description": "Expression to map the inbound payload to process variables"
781
- },
782
- {
783
- "label": "One time verification response expression",
784
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
785
- "type": "Text",
786
- "group": "webhookResponse",
787
- "feel": "required",
788
- "optional": true,
789
- "binding": {
790
- "type": "zeebe:property",
791
- "name": "inbound.verificationExpression"
792
- }
793
- },
794
- {
795
- "label": "Response body expression",
796
- "type": "Text",
797
- "group": "webhookResponse",
798
- "feel": "required",
799
- "optional": true,
800
- "binding": {
801
- "type": "zeebe:property",
802
- "name": "inbound.responseBodyExpression"
803
- },
804
- "description": "Specify condition and response"
805
631
  }
806
632
  ],
807
633
  "icon": {
808
634
  "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"
809
635
  },
810
636
  "engines": {
811
- "camunda": "^8.4"
637
+ "camunda": "^8.2"
812
638
  }
813
639
  },
814
640
  {
@@ -816,8 +642,17 @@
816
642
  "name": "Webhook Start Event Connector",
817
643
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
818
644
  "description": "Configure webhook to receive callbacks",
819
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
820
- "version": 10,
645
+ "keywords": [
646
+ "receive webhook",
647
+ "HTTP trigger",
648
+ "event received",
649
+ "inbound event",
650
+ "webhook trigger",
651
+ "HTTP callback",
652
+ "listen for event"
653
+ ],
654
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
655
+ "version": 14,
821
656
  "category": {
822
657
  "id": "connectors",
823
658
  "name": "Connectors"
@@ -826,6 +661,9 @@
826
661
  "elementType": {
827
662
  "value": "bpmn:StartEvent"
828
663
  },
664
+ "engines": {
665
+ "camunda": "^8.3"
666
+ },
829
667
  "groups": [
830
668
  {
831
669
  "id": "endpoint",
@@ -847,6 +685,15 @@
847
685
  "id": "activation",
848
686
  "label": "Activation"
849
687
  },
688
+ {
689
+ "id": "synchronousResponse",
690
+ "label": "Response mode"
691
+ },
692
+ {
693
+ "id": "deduplication",
694
+ "label": "Deduplication",
695
+ "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
696
+ },
850
697
  {
851
698
  "id": "output",
852
699
  "label": "Output mapping"
@@ -918,7 +765,7 @@
918
765
  {
919
766
  "id": "inbound.shouldValidateHmac",
920
767
  "label": "HMAC authentication",
921
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
768
+ "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",
922
769
  "optional": false,
923
770
  "value": "disabled",
924
771
  "group": "authentication",
@@ -1009,7 +856,7 @@
1009
856
  {
1010
857
  "id": "inbound.hmacScopes",
1011
858
  "label": "HMAC scopes",
1012
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
859
+ "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>",
1013
860
  "optional": true,
1014
861
  "feel": "required",
1015
862
  "group": "authentication",
@@ -1111,7 +958,7 @@
1111
958
  {
1112
959
  "id": "inbound.auth.apiKeyLocator",
1113
960
  "label": "API key locator",
1114
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
961
+ "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>",
1115
962
  "optional": false,
1116
963
  "value": "=split(request.headers.authorization, \" \")[2]",
1117
964
  "constraints": {
@@ -1151,7 +998,7 @@
1151
998
  {
1152
999
  "id": "inbound.auth.jwt.permissionsExpression",
1153
1000
  "label": "JWT role property expression",
1154
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
1001
+ "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>",
1155
1002
  "optional": false,
1156
1003
  "feel": "required",
1157
1004
  "group": "authorization",
@@ -1185,27 +1032,27 @@
1185
1032
  "type": "String"
1186
1033
  },
1187
1034
  {
1188
- "id": "inbound.responseBodyExpression",
1189
- "label": "Response body expression",
1190
- "description": "Specify condition and response",
1035
+ "id": "inbound.verificationExpression",
1036
+ "label": "One time verification response expression",
1037
+ "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>",
1191
1038
  "optional": true,
1192
1039
  "feel": "required",
1193
1040
  "group": "webhookResponse",
1194
1041
  "binding": {
1195
- "name": "inbound.responseBodyExpression",
1042
+ "name": "inbound.verificationExpression",
1196
1043
  "type": "zeebe:property"
1197
1044
  },
1198
1045
  "type": "Text"
1199
1046
  },
1200
1047
  {
1201
- "id": "inbound.verificationExpression",
1202
- "label": "One time verification response expression",
1203
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
1048
+ "id": "inbound.responseExpression",
1049
+ "label": "Response expression",
1050
+ "description": "Expression used to generate the HTTP response",
1204
1051
  "optional": true,
1205
1052
  "feel": "required",
1206
1053
  "group": "webhookResponse",
1207
1054
  "binding": {
1208
- "name": "inbound.verificationExpression",
1055
+ "name": "inbound.responseExpression",
1209
1056
  "type": "zeebe:property"
1210
1057
  },
1211
1058
  "type": "Text"
@@ -1224,23 +1071,123 @@
1224
1071
  "type": "String"
1225
1072
  },
1226
1073
  {
1227
- "id": "resultVariable",
1228
- "label": "Result variable",
1229
- "description": "Name of variable to store the response in",
1230
- "group": "output",
1074
+ "id": "consumeUnmatchedEvents",
1075
+ "label": "Consume unmatched events",
1076
+ "value": true,
1077
+ "group": "activation",
1231
1078
  "binding": {
1232
- "name": "resultVariable",
1079
+ "name": "consumeUnmatchedEvents",
1233
1080
  "type": "zeebe:property"
1234
1081
  },
1235
- "type": "String"
1082
+ "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",
1083
+ "type": "Boolean"
1236
1084
  },
1237
1085
  {
1238
- "id": "resultExpression",
1239
- "label": "Result expression",
1240
- "description": "Expression to map the response into process variables",
1241
- "feel": "required",
1242
- "group": "output",
1243
- "binding": {
1086
+ "id": "synchronousResponse",
1087
+ "label": "Response mode",
1088
+ "description": "Synchronous or Asynchronous <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#response-mode\" target=\"_blank\">response handling</a>",
1089
+ "value": "false",
1090
+ "group": "synchronousResponse",
1091
+ "binding": {
1092
+ "name": "synchronousResponse",
1093
+ "type": "zeebe:property"
1094
+ },
1095
+ "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.",
1096
+ "type": "Dropdown",
1097
+ "choices": [
1098
+ {
1099
+ "name": "Asynchronous",
1100
+ "value": "false"
1101
+ },
1102
+ {
1103
+ "name": "Synchronous",
1104
+ "value": "true"
1105
+ }
1106
+ ]
1107
+ },
1108
+ {
1109
+ "id": "deduplicationModeManualFlag",
1110
+ "label": "Manual mode",
1111
+ "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
1112
+ "value": false,
1113
+ "group": "deduplication",
1114
+ "binding": {
1115
+ "name": "deduplicationModeManualFlag",
1116
+ "type": "zeebe:property"
1117
+ },
1118
+ "type": "Boolean"
1119
+ },
1120
+ {
1121
+ "id": "deduplicationId",
1122
+ "label": "Deduplication ID",
1123
+ "constraints": {
1124
+ "notEmpty": true,
1125
+ "pattern": {
1126
+ "value": "^[a-zA-Z0-9_-]+$",
1127
+ "message": "can only contain alphanumeric characters, dashes, and underscores"
1128
+ }
1129
+ },
1130
+ "group": "deduplication",
1131
+ "binding": {
1132
+ "name": "deduplicationId",
1133
+ "type": "zeebe:property"
1134
+ },
1135
+ "condition": {
1136
+ "property": "deduplicationModeManualFlag",
1137
+ "equals": true,
1138
+ "type": "simple"
1139
+ },
1140
+ "type": "String"
1141
+ },
1142
+ {
1143
+ "id": "deduplicationModeManual",
1144
+ "value": "MANUAL",
1145
+ "group": "deduplication",
1146
+ "binding": {
1147
+ "name": "deduplicationMode",
1148
+ "type": "zeebe:property"
1149
+ },
1150
+ "condition": {
1151
+ "property": "deduplicationId",
1152
+ "isActive": true,
1153
+ "type": "simple"
1154
+ },
1155
+ "type": "Hidden"
1156
+ },
1157
+ {
1158
+ "id": "deduplicationModeAuto",
1159
+ "value": "AUTO",
1160
+ "group": "deduplication",
1161
+ "binding": {
1162
+ "name": "deduplicationMode",
1163
+ "type": "zeebe:property"
1164
+ },
1165
+ "condition": {
1166
+ "property": "deduplicationId",
1167
+ "isActive": false,
1168
+ "type": "simple"
1169
+ },
1170
+ "type": "Hidden"
1171
+ },
1172
+ {
1173
+ "id": "resultVariable",
1174
+ "label": "Result variable",
1175
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
1176
+ "group": "output",
1177
+ "binding": {
1178
+ "name": "resultVariable",
1179
+ "type": "zeebe:property"
1180
+ },
1181
+ "type": "String"
1182
+ },
1183
+ {
1184
+ "id": "resultExpression",
1185
+ "label": "Result expression",
1186
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
1187
+ "value": "{\n myRequestBody: request.body\n // Use FEEL to extract values, e.g.,:\n // myMessage: request.body.message\n}",
1188
+ "feel": "required",
1189
+ "group": "output",
1190
+ "binding": {
1244
1191
  "name": "resultExpression",
1245
1192
  "type": "zeebe:property"
1246
1193
  },
@@ -1249,16 +1196,13 @@
1249
1196
  ],
1250
1197
  "icon": {
1251
1198
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1252
- },
1253
- "engines": {
1254
- "camunda": "^8.5"
1255
1199
  }
1256
1200
  },
1257
1201
  {
1258
1202
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1259
- "name": "Webhook Start Event Connector",
1203
+ "name": "Webhook connector",
1260
1204
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1261
- "version": 9,
1205
+ "version": 3,
1262
1206
  "description": "Configure webhook to receive callbacks",
1263
1207
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1264
1208
  "category": {
@@ -1274,14 +1218,6 @@
1274
1218
  "id": "endpoint",
1275
1219
  "label": "Webhook configuration"
1276
1220
  },
1277
- {
1278
- "id": "authentication",
1279
- "label": "Authentication"
1280
- },
1281
- {
1282
- "id": "authorization",
1283
- "label": "Authorization"
1284
- },
1285
1221
  {
1286
1222
  "id": "activation",
1287
1223
  "label": "Activation"
@@ -1289,10 +1225,6 @@
1289
1225
  {
1290
1226
  "id": "variable-mapping",
1291
1227
  "label": "Variable mapping"
1292
- },
1293
- {
1294
- "id": "webhookResponse",
1295
- "label": "Webhook response"
1296
1228
  }
1297
1229
  ],
1298
1230
  "properties": [
@@ -1312,40 +1244,6 @@
1312
1244
  "name": "inbound.subtype"
1313
1245
  }
1314
1246
  },
1315
- {
1316
- "id": "webhookMethod",
1317
- "label": "Webhook method",
1318
- "group": "endpoint",
1319
- "description": "Select HTTP method",
1320
- "value": "any",
1321
- "type": "Dropdown",
1322
- "choices": [
1323
- {
1324
- "name": "Any",
1325
- "value": "any"
1326
- },
1327
- {
1328
- "name": "Get",
1329
- "value": "get"
1330
- },
1331
- {
1332
- "name": "Post",
1333
- "value": "post"
1334
- },
1335
- {
1336
- "name": "Put",
1337
- "value": "put"
1338
- },
1339
- {
1340
- "name": "Delete",
1341
- "value": "delete"
1342
- }
1343
- ],
1344
- "binding": {
1345
- "type": "zeebe:property",
1346
- "name": "inbound.method"
1347
- }
1348
- },
1349
1247
  {
1350
1248
  "label": "Webhook ID",
1351
1249
  "type": "String",
@@ -1356,17 +1254,13 @@
1356
1254
  },
1357
1255
  "description": "The webhook ID is a part of the URL",
1358
1256
  "constraints": {
1359
- "notEmpty": true,
1360
- "pattern": {
1361
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
1362
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
1363
- }
1257
+ "notEmpty": true
1364
1258
  }
1365
1259
  },
1366
1260
  {
1367
1261
  "id": "shouldValidateHmac",
1368
1262
  "label": "HMAC authentication",
1369
- "group": "authentication",
1263
+ "group": "endpoint",
1370
1264
  "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",
1371
1265
  "value": "disabled",
1372
1266
  "type": "Dropdown",
@@ -1389,7 +1283,7 @@
1389
1283
  "label": "HMAC secret key",
1390
1284
  "description": "Shared secret key",
1391
1285
  "type": "String",
1392
- "group": "authentication",
1286
+ "group": "endpoint",
1393
1287
  "optional": true,
1394
1288
  "binding": {
1395
1289
  "type": "zeebe:property",
@@ -1404,7 +1298,7 @@
1404
1298
  "label": "HMAC header",
1405
1299
  "description": "Name of header attribute that will contain the HMAC value",
1406
1300
  "type": "String",
1407
- "group": "authentication",
1301
+ "group": "endpoint",
1408
1302
  "optional": true,
1409
1303
  "binding": {
1410
1304
  "type": "zeebe:property",
@@ -1417,7 +1311,7 @@
1417
1311
  },
1418
1312
  {
1419
1313
  "label": "HMAC algorithm",
1420
- "group": "authentication",
1314
+ "group": "endpoint",
1421
1315
  "description": "Choose HMAC algorithm",
1422
1316
  "value": "sha_256",
1423
1317
  "type": "Dropdown",
@@ -1445,244 +1339,53 @@
1445
1339
  }
1446
1340
  },
1447
1341
  {
1448
- "label": "HMAC scopes",
1449
- "group": "authentication",
1450
- "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>",
1451
- "feel": "required",
1452
- "type": "String",
1453
- "optional": true,
1454
- "binding": {
1455
- "type": "zeebe:property",
1456
- "name": "inbound.hmacScopes"
1457
- },
1458
- "condition": {
1459
- "property": "shouldValidateHmac",
1460
- "equals": "enabled"
1461
- }
1462
- },
1463
- {
1464
- "id": "authorizationType",
1465
- "label": "Authorization type",
1466
- "group": "authorization",
1467
- "description": "Choose the authorization type.",
1468
- "value": "NONE",
1469
- "type": "Dropdown",
1470
- "choices": [
1471
- {
1472
- "name": "None",
1473
- "value": "NONE"
1474
- },
1475
- {
1476
- "name": "JWT",
1477
- "value": "JWT"
1478
- },
1479
- {
1480
- "name": "Basic",
1481
- "value": "BASIC"
1482
- },
1483
- {
1484
- "name": "API Key",
1485
- "value": "APIKEY"
1486
- }
1487
- ],
1488
- "binding": {
1489
- "type": "zeebe:property",
1490
- "name": "inbound.auth.type"
1491
- }
1492
- },
1493
- {
1494
- "label": "JWK url",
1495
- "description": "Well-known url of JWKs",
1342
+ "label": "Condition",
1496
1343
  "type": "String",
1497
- "group": "authorization",
1498
- "feel": "optional",
1344
+ "group": "activation",
1345
+ "feel": "required",
1499
1346
  "optional": true,
1500
1347
  "binding": {
1501
1348
  "type": "zeebe:property",
1502
- "name": "inbound.auth.jwt.jwkUrl"
1349
+ "name": "activationCondition"
1503
1350
  },
1504
- "condition": {
1505
- "property": "authorizationType",
1506
- "equals": "JWT"
1507
- }
1351
+ "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>"
1508
1352
  },
1509
1353
  {
1510
- "label": "JWT role property expression",
1511
- "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>",
1354
+ "label": "Result variable",
1512
1355
  "type": "String",
1513
- "group": "authorization",
1514
- "feel": "required",
1356
+ "group": "variable-mapping",
1515
1357
  "optional": true,
1516
1358
  "binding": {
1517
1359
  "type": "zeebe:property",
1518
- "name": "inbound.auth.jwt.permissionsExpression"
1360
+ "name": "resultVariable"
1519
1361
  },
1520
- "condition": {
1521
- "property": "authorizationType",
1522
- "equals": "JWT"
1523
- }
1362
+ "description": "Name of variable to store the result of the connector in"
1524
1363
  },
1525
1364
  {
1526
- "label": "Required roles",
1527
- "description": "List of roles to test JWT roles against",
1365
+ "label": "Result expression",
1528
1366
  "type": "String",
1529
- "group": "authorization",
1367
+ "group": "variable-mapping",
1530
1368
  "feel": "required",
1531
1369
  "optional": true,
1532
1370
  "binding": {
1533
1371
  "type": "zeebe:property",
1534
- "name": "inbound.auth.jwt.requiredPermissions"
1535
- },
1536
- "condition": {
1537
- "property": "authorizationType",
1538
- "equals": "JWT"
1539
- }
1540
- },
1541
- {
1542
- "label": "Username",
1543
- "description": "Username for basic authentication",
1544
- "type": "String",
1545
- "group": "authorization",
1546
- "feel": "optional",
1547
- "binding": {
1548
- "type": "zeebe:property",
1549
- "name": "inbound.auth.username"
1550
- },
1551
- "condition": {
1552
- "property": "authorizationType",
1553
- "equals": "BASIC"
1554
- },
1555
- "constraints": {
1556
- "notEmpty": true
1557
- }
1558
- },
1559
- {
1560
- "label": "Password",
1561
- "description": "Password for basic authentication",
1562
- "type": "String",
1563
- "group": "authorization",
1564
- "feel": "optional",
1565
- "binding": {
1566
- "type": "zeebe:property",
1567
- "name": "inbound.auth.password"
1568
- },
1569
- "condition": {
1570
- "property": "authorizationType",
1571
- "equals": "BASIC"
1572
- },
1573
- "constraints": {
1574
- "notEmpty": true
1575
- }
1576
- },
1577
- {
1578
- "label": "API Key",
1579
- "description": "Expected API key",
1580
- "type": "String",
1581
- "group": "authorization",
1582
- "feel": "optional",
1583
- "binding": {
1584
- "type": "zeebe:property",
1585
- "name": "inbound.auth.apiKey"
1586
- },
1587
- "condition": {
1588
- "property": "authorizationType",
1589
- "equals": "APIKEY"
1590
- },
1591
- "constraints": {
1592
- "notEmpty": true
1593
- }
1594
- },
1595
- {
1596
- "label": "API Key locator",
1597
- "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>",
1598
- "type": "String",
1599
- "group": "authorization",
1600
- "feel": "required",
1601
- "binding": {
1602
- "type": "zeebe:property",
1603
- "name": "inbound.auth.apiKeyLocator"
1604
- },
1605
- "condition": {
1606
- "property": "authorizationType",
1607
- "equals": "APIKEY"
1608
- },
1609
- "constraints": {
1610
- "notEmpty": true
1611
- },
1612
- "value": "=split(request.headers.authorization, \" \")[2]"
1613
- },
1614
- {
1615
- "label": "Condition",
1616
- "type": "String",
1617
- "group": "activation",
1618
- "feel": "required",
1619
- "optional": true,
1620
- "binding": {
1621
- "type": "zeebe:property",
1622
- "name": "activationCondition"
1623
- },
1624
- "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>"
1625
- },
1626
- {
1627
- "label": "Result variable",
1628
- "type": "String",
1629
- "group": "variable-mapping",
1630
- "optional": true,
1631
- "binding": {
1632
- "type": "zeebe:property",
1633
- "name": "resultVariable"
1634
- },
1635
- "description": "Name of variable to store the result of the connector in"
1636
- },
1637
- {
1638
- "label": "Result expression",
1639
- "type": "String",
1640
- "group": "variable-mapping",
1641
- "feel": "required",
1642
- "optional": true,
1643
- "binding": {
1644
- "type": "zeebe:property",
1645
- "name": "resultExpression"
1372
+ "name": "resultExpression"
1646
1373
  },
1647
1374
  "description": "Expression to map the inbound payload to process variables"
1648
- },
1649
- {
1650
- "label": "One time verification response expression",
1651
- "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>",
1652
- "type": "Text",
1653
- "group": "webhookResponse",
1654
- "feel": "required",
1655
- "optional": true,
1656
- "binding": {
1657
- "type": "zeebe:property",
1658
- "name": "inbound.verificationExpression"
1659
- }
1660
- },
1661
- {
1662
- "label": "Response body expression",
1663
- "type": "Text",
1664
- "group": "webhookResponse",
1665
- "feel": "required",
1666
- "optional": true,
1667
- "binding": {
1668
- "type": "zeebe:property",
1669
- "name": "inbound.responseBodyExpression"
1670
- },
1671
- "description": "Specify condition and response"
1672
1375
  }
1673
1376
  ],
1674
1377
  "icon": {
1675
1378
  "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"
1676
1379
  },
1677
1380
  "engines": {
1678
- "camunda": "^8.5"
1381
+ "camunda": "^8.2"
1679
1382
  }
1680
1383
  },
1681
1384
  {
1682
1385
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1683
1386
  "name": "Webhook connector",
1684
1387
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1685
- "version": 6,
1388
+ "version": 5,
1686
1389
  "description": "Configure webhook to receive callbacks",
1687
1390
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1688
1391
  "category": {
@@ -1713,10 +1416,6 @@
1713
1416
  {
1714
1417
  "id": "variable-mapping",
1715
1418
  "label": "Variable mapping"
1716
- },
1717
- {
1718
- "id": "webhookResponse",
1719
- "label": "Webhook response"
1720
1419
  }
1721
1420
  ],
1722
1421
  "properties": [
@@ -2065,18 +1764,6 @@
2065
1764
  "name": "resultExpression"
2066
1765
  },
2067
1766
  "description": "Expression to map the inbound payload to process variables"
2068
- },
2069
- {
2070
- "label": "Response body expression",
2071
- "type": "Text",
2072
- "group": "webhookResponse",
2073
- "feel": "required",
2074
- "optional": true,
2075
- "binding": {
2076
- "type": "zeebe:property",
2077
- "name": "inbound.responseBodyExpression"
2078
- },
2079
- "description": "Specify condition and response"
2080
1767
  }
2081
1768
  ],
2082
1769
  "icon": {
@@ -2088,9 +1775,9 @@
2088
1775
  },
2089
1776
  {
2090
1777
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2091
- "name": "Webhook connector",
1778
+ "name": "Webhook Connector",
2092
1779
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2093
- "version": 3,
1780
+ "version": 1,
2094
1781
  "description": "Configure webhook to receive callbacks",
2095
1782
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2096
1783
  "category": {
@@ -2104,7 +1791,7 @@
2104
1791
  "groups": [
2105
1792
  {
2106
1793
  "id": "endpoint",
2107
- "label": "Webhook configuration"
1794
+ "label": "Webhook Configuration"
2108
1795
  },
2109
1796
  {
2110
1797
  "id": "activation",
@@ -2112,7 +1799,7 @@
2112
1799
  },
2113
1800
  {
2114
1801
  "id": "variable-mapping",
2115
- "label": "Variable mapping"
1802
+ "label": "Variable Mapping"
2116
1803
  }
2117
1804
  ],
2118
1805
  "properties": [
@@ -2140,10 +1827,10 @@
2140
1827
  "type": "zeebe:property",
2141
1828
  "name": "inbound.context"
2142
1829
  },
2143
- "description": "The webhook ID is a part of the URL",
2144
1830
  "constraints": {
2145
1831
  "notEmpty": true
2146
- }
1832
+ },
1833
+ "description": "The webhook ID is a part of the URL"
2147
1834
  },
2148
1835
  {
2149
1836
  "id": "shouldValidateHmac",
@@ -2234,32 +1921,20 @@
2234
1921
  "optional": true,
2235
1922
  "binding": {
2236
1923
  "type": "zeebe:property",
2237
- "name": "activationCondition"
1924
+ "name": "inbound.activationCondition"
2238
1925
  },
2239
1926
  "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>"
2240
1927
  },
2241
1928
  {
2242
- "label": "Result variable",
2243
- "type": "String",
2244
- "group": "variable-mapping",
2245
- "optional": true,
2246
- "binding": {
2247
- "type": "zeebe:property",
2248
- "name": "resultVariable"
2249
- },
2250
- "description": "Name of variable to store the result of the connector in"
2251
- },
2252
- {
2253
- "label": "Result expression",
1929
+ "label": "Variables",
2254
1930
  "type": "String",
2255
1931
  "group": "variable-mapping",
2256
1932
  "feel": "required",
2257
- "optional": true,
2258
1933
  "binding": {
2259
1934
  "type": "zeebe:property",
2260
- "name": "resultExpression"
1935
+ "name": "inbound.variableMapping"
2261
1936
  },
2262
- "description": "Expression to map the inbound payload to process variables"
1937
+ "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>"
2263
1938
  }
2264
1939
  ],
2265
1940
  "icon": {
@@ -2273,17 +1948,26 @@
2273
1948
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2274
1949
  "name": "Webhook Start Event Connector",
2275
1950
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2276
- "version": 7,
2277
1951
  "description": "Configure webhook to receive callbacks",
2278
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1952
+ "metadata": {
1953
+ "keywords": []
1954
+ },
1955
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
1956
+ "version": 13,
2279
1957
  "category": {
2280
1958
  "id": "connectors",
2281
1959
  "name": "Connectors"
2282
1960
  },
1961
+ "deprecated": {
1962
+ "message": "Migrate to Webhook Message Start Event Connector"
1963
+ },
2283
1964
  "appliesTo": ["bpmn:StartEvent"],
2284
1965
  "elementType": {
2285
1966
  "value": "bpmn:StartEvent"
2286
1967
  },
1968
+ "engines": {
1969
+ "camunda": "^8.3"
1970
+ },
2287
1971
  "groups": [
2288
1972
  {
2289
1973
  "id": "endpoint",
@@ -2297,42 +1981,44 @@
2297
1981
  "id": "authorization",
2298
1982
  "label": "Authorization"
2299
1983
  },
1984
+ {
1985
+ "id": "webhookResponse",
1986
+ "label": "Webhook response"
1987
+ },
2300
1988
  {
2301
1989
  "id": "activation",
2302
1990
  "label": "Activation"
2303
1991
  },
2304
1992
  {
2305
- "id": "variable-mapping",
2306
- "label": "Variable mapping"
1993
+ "id": "deduplication",
1994
+ "label": "Deduplication",
1995
+ "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
2307
1996
  },
2308
1997
  {
2309
- "id": "webhookResponse",
2310
- "label": "Webhook response"
1998
+ "id": "output",
1999
+ "label": "Output mapping"
2311
2000
  }
2312
2001
  ],
2313
2002
  "properties": [
2314
2003
  {
2315
- "type": "Hidden",
2316
2004
  "value": "io.camunda:webhook:1",
2317
2005
  "binding": {
2318
- "type": "zeebe:property",
2319
- "name": "inbound.type"
2320
- }
2321
- },
2322
- {
2323
- "type": "Hidden",
2324
- "value": "ConfigurableInboundWebhook",
2325
- "binding": {
2326
- "type": "zeebe:property",
2327
- "name": "inbound.subtype"
2328
- }
2006
+ "name": "inbound.type",
2007
+ "type": "zeebe:property"
2008
+ },
2009
+ "type": "Hidden"
2329
2010
  },
2330
2011
  {
2331
- "id": "webhookMethod",
2012
+ "id": "inbound.method",
2332
2013
  "label": "Webhook method",
2333
- "group": "endpoint",
2334
2014
  "description": "Select HTTP method",
2015
+ "optional": false,
2335
2016
  "value": "any",
2017
+ "group": "endpoint",
2018
+ "binding": {
2019
+ "name": "inbound.method",
2020
+ "type": "zeebe:property"
2021
+ },
2336
2022
  "type": "Dropdown",
2337
2023
  "choices": [
2338
2024
  {
@@ -2340,46 +2026,53 @@
2340
2026
  "value": "any"
2341
2027
  },
2342
2028
  {
2343
- "name": "Get",
2029
+ "name": "GET",
2344
2030
  "value": "get"
2345
2031
  },
2346
2032
  {
2347
- "name": "Post",
2033
+ "name": "POST",
2348
2034
  "value": "post"
2349
2035
  },
2350
2036
  {
2351
- "name": "Put",
2037
+ "name": "PUT",
2352
2038
  "value": "put"
2353
2039
  },
2354
2040
  {
2355
- "name": "Delete",
2041
+ "name": "DELETE",
2356
2042
  "value": "delete"
2357
2043
  }
2358
- ],
2359
- "binding": {
2360
- "type": "zeebe:property",
2361
- "name": "inbound.method"
2362
- }
2044
+ ]
2363
2045
  },
2364
2046
  {
2047
+ "id": "inbound.context",
2365
2048
  "label": "Webhook ID",
2366
- "type": "String",
2367
- "group": "endpoint",
2368
- "binding": {
2369
- "type": "zeebe:property",
2370
- "name": "inbound.context"
2371
- },
2372
2049
  "description": "The webhook ID is a part of the URL",
2050
+ "optional": false,
2373
2051
  "constraints": {
2374
- "notEmpty": true
2375
- }
2052
+ "notEmpty": true,
2053
+ "pattern": {
2054
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
2055
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
2056
+ }
2057
+ },
2058
+ "group": "endpoint",
2059
+ "binding": {
2060
+ "name": "inbound.context",
2061
+ "type": "zeebe:property"
2062
+ },
2063
+ "type": "String"
2376
2064
  },
2377
2065
  {
2378
- "id": "shouldValidateHmac",
2066
+ "id": "inbound.shouldValidateHmac",
2379
2067
  "label": "HMAC authentication",
2380
- "group": "authentication",
2381
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2068
+ "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",
2069
+ "optional": false,
2382
2070
  "value": "disabled",
2071
+ "group": "authentication",
2072
+ "binding": {
2073
+ "name": "inbound.shouldValidateHmac",
2074
+ "type": "zeebe:property"
2075
+ },
2383
2076
  "type": "Dropdown",
2384
2077
  "choices": [
2385
2078
  {
@@ -2390,47 +2083,60 @@
2390
2083
  "name": "Disabled",
2391
2084
  "value": "disabled"
2392
2085
  }
2393
- ],
2394
- "binding": {
2395
- "type": "zeebe:property",
2396
- "name": "inbound.shouldValidateHmac"
2397
- }
2086
+ ]
2398
2087
  },
2399
2088
  {
2089
+ "id": "inbound.hmacSecret",
2400
2090
  "label": "HMAC secret key",
2401
2091
  "description": "Shared secret key",
2402
- "type": "String",
2403
- "group": "authentication",
2404
2092
  "optional": true,
2093
+ "feel": "optional",
2094
+ "group": "authentication",
2405
2095
  "binding": {
2406
- "type": "zeebe:property",
2407
- "name": "inbound.hmacSecret"
2096
+ "name": "inbound.hmacSecret",
2097
+ "type": "zeebe:property"
2408
2098
  },
2409
2099
  "condition": {
2410
- "property": "shouldValidateHmac",
2411
- "equals": "enabled"
2412
- }
2100
+ "property": "inbound.shouldValidateHmac",
2101
+ "equals": "enabled",
2102
+ "type": "simple"
2103
+ },
2104
+ "type": "String"
2413
2105
  },
2414
2106
  {
2107
+ "id": "inbound.hmacHeader",
2415
2108
  "label": "HMAC header",
2416
2109
  "description": "Name of header attribute that will contain the HMAC value",
2417
- "type": "String",
2418
- "group": "authentication",
2419
2110
  "optional": true,
2111
+ "feel": "optional",
2112
+ "group": "authentication",
2420
2113
  "binding": {
2421
- "type": "zeebe:property",
2422
- "name": "inbound.hmacHeader"
2114
+ "name": "inbound.hmacHeader",
2115
+ "type": "zeebe:property"
2423
2116
  },
2424
2117
  "condition": {
2425
- "property": "shouldValidateHmac",
2426
- "equals": "enabled"
2427
- }
2118
+ "property": "inbound.shouldValidateHmac",
2119
+ "equals": "enabled",
2120
+ "type": "simple"
2121
+ },
2122
+ "type": "String"
2428
2123
  },
2429
2124
  {
2125
+ "id": "inbound.hmacAlgorithm",
2430
2126
  "label": "HMAC algorithm",
2431
- "group": "authentication",
2432
2127
  "description": "Choose HMAC algorithm",
2128
+ "optional": false,
2433
2129
  "value": "sha_256",
2130
+ "group": "authentication",
2131
+ "binding": {
2132
+ "name": "inbound.hmacAlgorithm",
2133
+ "type": "zeebe:property"
2134
+ },
2135
+ "condition": {
2136
+ "property": "inbound.shouldValidateHmac",
2137
+ "equals": "enabled",
2138
+ "type": "simple"
2139
+ },
2434
2140
  "type": "Dropdown",
2435
2141
  "choices": [
2436
2142
  {
@@ -2445,150 +2151,649 @@
2445
2151
  "name": "SHA-512",
2446
2152
  "value": "sha_512"
2447
2153
  }
2448
- ],
2449
- "binding": {
2450
- "type": "zeebe:property",
2451
- "name": "inbound.hmacAlgorithm"
2452
- },
2453
- "condition": {
2454
- "property": "shouldValidateHmac",
2455
- "equals": "enabled"
2456
- }
2154
+ ]
2457
2155
  },
2458
2156
  {
2157
+ "id": "inbound.hmacScopes",
2459
2158
  "label": "HMAC scopes",
2460
- "group": "authentication",
2461
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
2462
- "feel": "required",
2463
- "type": "String",
2159
+ "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>",
2464
2160
  "optional": true,
2161
+ "feel": "required",
2162
+ "group": "authentication",
2465
2163
  "binding": {
2466
- "type": "zeebe:property",
2467
- "name": "inbound.hmacScopes"
2164
+ "name": "inbound.hmacScopes",
2165
+ "type": "zeebe:property"
2468
2166
  },
2469
2167
  "condition": {
2470
- "property": "shouldValidateHmac",
2471
- "equals": "enabled"
2472
- }
2168
+ "property": "inbound.shouldValidateHmac",
2169
+ "equals": "enabled",
2170
+ "type": "simple"
2171
+ },
2172
+ "type": "String"
2473
2173
  },
2474
2174
  {
2475
- "id": "authorizationType",
2175
+ "id": "inbound.auth.type",
2476
2176
  "label": "Authorization type",
2477
- "group": "authorization",
2478
- "description": "Choose the authorization type.",
2177
+ "description": "Choose the authorization type",
2479
2178
  "value": "NONE",
2179
+ "group": "authorization",
2180
+ "binding": {
2181
+ "name": "inbound.auth.type",
2182
+ "type": "zeebe:property"
2183
+ },
2480
2184
  "type": "Dropdown",
2481
2185
  "choices": [
2482
2186
  {
2483
2187
  "name": "None",
2484
2188
  "value": "NONE"
2485
2189
  },
2486
- {
2487
- "name": "JWT",
2488
- "value": "JWT"
2489
- },
2490
2190
  {
2491
2191
  "name": "Basic",
2492
2192
  "value": "BASIC"
2493
2193
  },
2494
2194
  {
2495
- "name": "API Key",
2195
+ "name": "API key",
2496
2196
  "value": "APIKEY"
2197
+ },
2198
+ {
2199
+ "name": "JWT",
2200
+ "value": "JWT"
2497
2201
  }
2498
- ],
2499
- "binding": {
2500
- "type": "zeebe:property",
2501
- "name": "inbound.auth.type"
2502
- }
2202
+ ]
2503
2203
  },
2504
2204
  {
2505
- "label": "JWK url",
2506
- "description": "Well-known url of JWKs",
2507
- "type": "String",
2508
- "group": "authorization",
2205
+ "id": "inbound.auth.username",
2206
+ "label": "Username",
2207
+ "description": "Username for basic authentication",
2208
+ "optional": false,
2509
2209
  "feel": "optional",
2510
- "optional": true,
2210
+ "group": "authorization",
2511
2211
  "binding": {
2512
- "type": "zeebe:property",
2513
- "name": "inbound.auth.jwt.jwkUrl"
2212
+ "name": "inbound.auth.username",
2213
+ "type": "zeebe:property"
2514
2214
  },
2515
2215
  "condition": {
2516
- "property": "authorizationType",
2517
- "equals": "JWT"
2518
- }
2216
+ "property": "inbound.auth.type",
2217
+ "equals": "BASIC",
2218
+ "type": "simple"
2219
+ },
2220
+ "type": "String"
2519
2221
  },
2520
2222
  {
2521
- "label": "JWT role property expression",
2522
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
2523
- "type": "String",
2223
+ "id": "inbound.auth.password",
2224
+ "label": "Password",
2225
+ "description": "Password for basic authentication",
2226
+ "optional": false,
2227
+ "feel": "optional",
2524
2228
  "group": "authorization",
2525
- "feel": "required",
2526
- "optional": true,
2527
2229
  "binding": {
2528
- "type": "zeebe:property",
2529
- "name": "inbound.auth.jwt.permissionsExpression"
2230
+ "name": "inbound.auth.password",
2231
+ "type": "zeebe:property"
2530
2232
  },
2531
2233
  "condition": {
2532
- "property": "authorizationType",
2533
- "equals": "JWT"
2534
- }
2234
+ "property": "inbound.auth.type",
2235
+ "equals": "BASIC",
2236
+ "type": "simple"
2237
+ },
2238
+ "type": "String"
2535
2239
  },
2536
2240
  {
2537
- "label": "Required roles",
2538
- "description": "List of roles to test JWT roles against",
2539
- "type": "String",
2241
+ "id": "inbound.auth.apiKey",
2242
+ "label": "API key",
2243
+ "description": "Expected API key",
2244
+ "optional": false,
2245
+ "feel": "optional",
2540
2246
  "group": "authorization",
2541
- "feel": "required",
2542
- "optional": true,
2543
2247
  "binding": {
2544
- "type": "zeebe:property",
2545
- "name": "inbound.auth.jwt.requiredPermissions"
2248
+ "name": "inbound.auth.apiKey",
2249
+ "type": "zeebe:property"
2546
2250
  },
2547
2251
  "condition": {
2548
- "property": "authorizationType",
2549
- "equals": "JWT"
2550
- }
2252
+ "property": "inbound.auth.type",
2253
+ "equals": "APIKEY",
2254
+ "type": "simple"
2255
+ },
2256
+ "type": "String"
2551
2257
  },
2552
2258
  {
2553
- "label": "Username",
2554
- "description": "Username for basic authentication",
2555
- "type": "String",
2259
+ "id": "inbound.auth.apiKeyLocator",
2260
+ "label": "API key locator",
2261
+ "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>",
2262
+ "optional": false,
2263
+ "value": "=split(request.headers.authorization, \" \")[2]",
2264
+ "constraints": {
2265
+ "notEmpty": true
2266
+ },
2267
+ "feel": "required",
2556
2268
  "group": "authorization",
2557
- "feel": "optional",
2558
2269
  "binding": {
2559
- "type": "zeebe:property",
2560
- "name": "inbound.auth.username"
2270
+ "name": "inbound.auth.apiKeyLocator",
2271
+ "type": "zeebe:property"
2561
2272
  },
2562
2273
  "condition": {
2563
- "property": "authorizationType",
2564
- "equals": "BASIC"
2274
+ "property": "inbound.auth.type",
2275
+ "equals": "APIKEY",
2276
+ "type": "simple"
2565
2277
  },
2566
- "constraints": {
2567
- "notEmpty": true
2568
- }
2278
+ "type": "String"
2569
2279
  },
2570
2280
  {
2571
- "label": "Password",
2572
- "description": "Password for basic authentication",
2573
- "type": "String",
2574
- "group": "authorization",
2281
+ "id": "inbound.auth.jwt.jwkUrl",
2282
+ "label": "JWK URL",
2283
+ "description": "Well-known URL of JWKs",
2284
+ "optional": false,
2575
2285
  "feel": "optional",
2286
+ "group": "authorization",
2576
2287
  "binding": {
2577
- "type": "zeebe:property",
2578
- "name": "inbound.auth.password"
2288
+ "name": "inbound.auth.jwt.jwkUrl",
2289
+ "type": "zeebe:property"
2579
2290
  },
2580
2291
  "condition": {
2581
- "property": "authorizationType",
2582
- "equals": "BASIC"
2292
+ "property": "inbound.auth.type",
2293
+ "equals": "JWT",
2294
+ "type": "simple"
2583
2295
  },
2584
- "constraints": {
2585
- "notEmpty": true
2586
- }
2296
+ "type": "String"
2587
2297
  },
2588
2298
  {
2589
- "label": "API Key",
2590
- "description": "Expected API key",
2591
- "type": "String",
2299
+ "id": "inbound.auth.jwt.permissionsExpression",
2300
+ "label": "JWT role property expression",
2301
+ "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>",
2302
+ "optional": false,
2303
+ "feel": "required",
2304
+ "group": "authorization",
2305
+ "binding": {
2306
+ "name": "inbound.auth.jwt.permissionsExpression",
2307
+ "type": "zeebe:property"
2308
+ },
2309
+ "condition": {
2310
+ "property": "inbound.auth.type",
2311
+ "equals": "JWT",
2312
+ "type": "simple"
2313
+ },
2314
+ "type": "String"
2315
+ },
2316
+ {
2317
+ "id": "inbound.auth.jwt.requiredPermissions",
2318
+ "label": "Required roles",
2319
+ "description": "List of roles to test JWT roles against",
2320
+ "optional": false,
2321
+ "feel": "required",
2322
+ "group": "authorization",
2323
+ "binding": {
2324
+ "name": "inbound.auth.jwt.requiredPermissions",
2325
+ "type": "zeebe:property"
2326
+ },
2327
+ "condition": {
2328
+ "property": "inbound.auth.type",
2329
+ "equals": "JWT",
2330
+ "type": "simple"
2331
+ },
2332
+ "type": "String"
2333
+ },
2334
+ {
2335
+ "id": "inbound.responseExpression",
2336
+ "label": "Response expression",
2337
+ "description": "Expression used to generate the HTTP response",
2338
+ "optional": true,
2339
+ "feel": "required",
2340
+ "group": "webhookResponse",
2341
+ "binding": {
2342
+ "name": "inbound.responseExpression",
2343
+ "type": "zeebe:property"
2344
+ },
2345
+ "type": "Text"
2346
+ },
2347
+ {
2348
+ "id": "inbound.verificationExpression",
2349
+ "label": "One time verification response expression",
2350
+ "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>",
2351
+ "optional": true,
2352
+ "feel": "required",
2353
+ "group": "webhookResponse",
2354
+ "binding": {
2355
+ "name": "inbound.verificationExpression",
2356
+ "type": "zeebe:property"
2357
+ },
2358
+ "type": "Text"
2359
+ },
2360
+ {
2361
+ "id": "activationCondition",
2362
+ "label": "Activation condition",
2363
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
2364
+ "optional": true,
2365
+ "feel": "required",
2366
+ "group": "activation",
2367
+ "binding": {
2368
+ "name": "activationCondition",
2369
+ "type": "zeebe:property"
2370
+ },
2371
+ "type": "String"
2372
+ },
2373
+ {
2374
+ "id": "consumeUnmatchedEvents",
2375
+ "label": "Consume unmatched events",
2376
+ "value": true,
2377
+ "group": "activation",
2378
+ "binding": {
2379
+ "name": "consumeUnmatchedEvents",
2380
+ "type": "zeebe:property"
2381
+ },
2382
+ "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",
2383
+ "type": "Boolean"
2384
+ },
2385
+ {
2386
+ "id": "deduplicationModeManualFlag",
2387
+ "label": "Manual mode",
2388
+ "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
2389
+ "value": false,
2390
+ "group": "deduplication",
2391
+ "binding": {
2392
+ "name": "deduplicationModeManualFlag",
2393
+ "type": "zeebe:property"
2394
+ },
2395
+ "type": "Boolean"
2396
+ },
2397
+ {
2398
+ "id": "deduplicationId",
2399
+ "label": "Deduplication ID",
2400
+ "constraints": {
2401
+ "notEmpty": true,
2402
+ "pattern": {
2403
+ "value": "^[a-zA-Z0-9_-]+$",
2404
+ "message": "can only contain alphanumeric characters, dashes, and underscores"
2405
+ }
2406
+ },
2407
+ "group": "deduplication",
2408
+ "binding": {
2409
+ "name": "deduplicationId",
2410
+ "type": "zeebe:property"
2411
+ },
2412
+ "condition": {
2413
+ "property": "deduplicationModeManualFlag",
2414
+ "equals": true,
2415
+ "type": "simple"
2416
+ },
2417
+ "type": "String"
2418
+ },
2419
+ {
2420
+ "id": "deduplicationModeManual",
2421
+ "value": "MANUAL",
2422
+ "group": "deduplication",
2423
+ "binding": {
2424
+ "name": "deduplicationMode",
2425
+ "type": "zeebe:property"
2426
+ },
2427
+ "condition": {
2428
+ "property": "deduplicationId",
2429
+ "isActive": true,
2430
+ "type": "simple"
2431
+ },
2432
+ "type": "Hidden"
2433
+ },
2434
+ {
2435
+ "id": "deduplicationModeAuto",
2436
+ "value": "AUTO",
2437
+ "group": "deduplication",
2438
+ "binding": {
2439
+ "name": "deduplicationMode",
2440
+ "type": "zeebe:property"
2441
+ },
2442
+ "condition": {
2443
+ "property": "deduplicationId",
2444
+ "isActive": false,
2445
+ "type": "simple"
2446
+ },
2447
+ "type": "Hidden"
2448
+ },
2449
+ {
2450
+ "id": "resultVariable",
2451
+ "label": "Result variable",
2452
+ "description": "Name of variable to store the response in",
2453
+ "group": "output",
2454
+ "binding": {
2455
+ "name": "resultVariable",
2456
+ "type": "zeebe:property"
2457
+ },
2458
+ "type": "String"
2459
+ },
2460
+ {
2461
+ "id": "resultExpression",
2462
+ "label": "Result expression",
2463
+ "description": "Expression to map the response into process variables",
2464
+ "feel": "required",
2465
+ "group": "output",
2466
+ "binding": {
2467
+ "name": "resultExpression",
2468
+ "type": "zeebe:property"
2469
+ },
2470
+ "type": "Text"
2471
+ }
2472
+ ],
2473
+ "icon": {
2474
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
2475
+ }
2476
+ },
2477
+ {
2478
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2479
+ "name": "Webhook Start Event Connector",
2480
+ "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2481
+ "version": 8,
2482
+ "description": "Configure webhook to receive callbacks",
2483
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2484
+ "category": {
2485
+ "id": "connectors",
2486
+ "name": "Connectors"
2487
+ },
2488
+ "appliesTo": ["bpmn:StartEvent"],
2489
+ "elementType": {
2490
+ "value": "bpmn:StartEvent"
2491
+ },
2492
+ "groups": [
2493
+ {
2494
+ "id": "endpoint",
2495
+ "label": "Webhook configuration"
2496
+ },
2497
+ {
2498
+ "id": "authentication",
2499
+ "label": "Authentication"
2500
+ },
2501
+ {
2502
+ "id": "authorization",
2503
+ "label": "Authorization"
2504
+ },
2505
+ {
2506
+ "id": "activation",
2507
+ "label": "Activation"
2508
+ },
2509
+ {
2510
+ "id": "variable-mapping",
2511
+ "label": "Variable mapping"
2512
+ },
2513
+ {
2514
+ "id": "webhookResponse",
2515
+ "label": "Webhook response"
2516
+ }
2517
+ ],
2518
+ "properties": [
2519
+ {
2520
+ "type": "Hidden",
2521
+ "value": "io.camunda:webhook:1",
2522
+ "binding": {
2523
+ "type": "zeebe:property",
2524
+ "name": "inbound.type"
2525
+ }
2526
+ },
2527
+ {
2528
+ "type": "Hidden",
2529
+ "value": "ConfigurableInboundWebhook",
2530
+ "binding": {
2531
+ "type": "zeebe:property",
2532
+ "name": "inbound.subtype"
2533
+ }
2534
+ },
2535
+ {
2536
+ "id": "webhookMethod",
2537
+ "label": "Webhook method",
2538
+ "group": "endpoint",
2539
+ "description": "Select HTTP method",
2540
+ "value": "any",
2541
+ "type": "Dropdown",
2542
+ "choices": [
2543
+ {
2544
+ "name": "Any",
2545
+ "value": "any"
2546
+ },
2547
+ {
2548
+ "name": "Get",
2549
+ "value": "get"
2550
+ },
2551
+ {
2552
+ "name": "Post",
2553
+ "value": "post"
2554
+ },
2555
+ {
2556
+ "name": "Put",
2557
+ "value": "put"
2558
+ },
2559
+ {
2560
+ "name": "Delete",
2561
+ "value": "delete"
2562
+ }
2563
+ ],
2564
+ "binding": {
2565
+ "type": "zeebe:property",
2566
+ "name": "inbound.method"
2567
+ }
2568
+ },
2569
+ {
2570
+ "label": "Webhook ID",
2571
+ "type": "String",
2572
+ "group": "endpoint",
2573
+ "binding": {
2574
+ "type": "zeebe:property",
2575
+ "name": "inbound.context"
2576
+ },
2577
+ "description": "The webhook ID is a part of the URL",
2578
+ "constraints": {
2579
+ "notEmpty": true
2580
+ }
2581
+ },
2582
+ {
2583
+ "id": "shouldValidateHmac",
2584
+ "label": "HMAC authentication",
2585
+ "group": "authentication",
2586
+ "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",
2587
+ "value": "disabled",
2588
+ "type": "Dropdown",
2589
+ "choices": [
2590
+ {
2591
+ "name": "Enabled",
2592
+ "value": "enabled"
2593
+ },
2594
+ {
2595
+ "name": "Disabled",
2596
+ "value": "disabled"
2597
+ }
2598
+ ],
2599
+ "binding": {
2600
+ "type": "zeebe:property",
2601
+ "name": "inbound.shouldValidateHmac"
2602
+ }
2603
+ },
2604
+ {
2605
+ "label": "HMAC secret key",
2606
+ "description": "Shared secret key",
2607
+ "type": "String",
2608
+ "group": "authentication",
2609
+ "optional": true,
2610
+ "binding": {
2611
+ "type": "zeebe:property",
2612
+ "name": "inbound.hmacSecret"
2613
+ },
2614
+ "condition": {
2615
+ "property": "shouldValidateHmac",
2616
+ "equals": "enabled"
2617
+ }
2618
+ },
2619
+ {
2620
+ "label": "HMAC header",
2621
+ "description": "Name of header attribute that will contain the HMAC value",
2622
+ "type": "String",
2623
+ "group": "authentication",
2624
+ "optional": true,
2625
+ "binding": {
2626
+ "type": "zeebe:property",
2627
+ "name": "inbound.hmacHeader"
2628
+ },
2629
+ "condition": {
2630
+ "property": "shouldValidateHmac",
2631
+ "equals": "enabled"
2632
+ }
2633
+ },
2634
+ {
2635
+ "label": "HMAC algorithm",
2636
+ "group": "authentication",
2637
+ "description": "Choose HMAC algorithm",
2638
+ "value": "sha_256",
2639
+ "type": "Dropdown",
2640
+ "choices": [
2641
+ {
2642
+ "name": "SHA-1",
2643
+ "value": "sha_1"
2644
+ },
2645
+ {
2646
+ "name": "SHA-256",
2647
+ "value": "sha_256"
2648
+ },
2649
+ {
2650
+ "name": "SHA-512",
2651
+ "value": "sha_512"
2652
+ }
2653
+ ],
2654
+ "binding": {
2655
+ "type": "zeebe:property",
2656
+ "name": "inbound.hmacAlgorithm"
2657
+ },
2658
+ "condition": {
2659
+ "property": "shouldValidateHmac",
2660
+ "equals": "enabled"
2661
+ }
2662
+ },
2663
+ {
2664
+ "label": "HMAC scopes",
2665
+ "group": "authentication",
2666
+ "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>",
2667
+ "feel": "required",
2668
+ "type": "String",
2669
+ "optional": true,
2670
+ "binding": {
2671
+ "type": "zeebe:property",
2672
+ "name": "inbound.hmacScopes"
2673
+ },
2674
+ "condition": {
2675
+ "property": "shouldValidateHmac",
2676
+ "equals": "enabled"
2677
+ }
2678
+ },
2679
+ {
2680
+ "id": "authorizationType",
2681
+ "label": "Authorization type",
2682
+ "group": "authorization",
2683
+ "description": "Choose the authorization type.",
2684
+ "value": "NONE",
2685
+ "type": "Dropdown",
2686
+ "choices": [
2687
+ {
2688
+ "name": "None",
2689
+ "value": "NONE"
2690
+ },
2691
+ {
2692
+ "name": "JWT",
2693
+ "value": "JWT"
2694
+ },
2695
+ {
2696
+ "name": "Basic",
2697
+ "value": "BASIC"
2698
+ },
2699
+ {
2700
+ "name": "API Key",
2701
+ "value": "APIKEY"
2702
+ }
2703
+ ],
2704
+ "binding": {
2705
+ "type": "zeebe:property",
2706
+ "name": "inbound.auth.type"
2707
+ }
2708
+ },
2709
+ {
2710
+ "label": "JWK url",
2711
+ "description": "Well-known url of JWKs",
2712
+ "type": "String",
2713
+ "group": "authorization",
2714
+ "feel": "optional",
2715
+ "optional": true,
2716
+ "binding": {
2717
+ "type": "zeebe:property",
2718
+ "name": "inbound.auth.jwt.jwkUrl"
2719
+ },
2720
+ "condition": {
2721
+ "property": "authorizationType",
2722
+ "equals": "JWT"
2723
+ }
2724
+ },
2725
+ {
2726
+ "label": "JWT role property expression",
2727
+ "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>",
2728
+ "type": "String",
2729
+ "group": "authorization",
2730
+ "feel": "required",
2731
+ "optional": true,
2732
+ "binding": {
2733
+ "type": "zeebe:property",
2734
+ "name": "inbound.auth.jwt.permissionsExpression"
2735
+ },
2736
+ "condition": {
2737
+ "property": "authorizationType",
2738
+ "equals": "JWT"
2739
+ }
2740
+ },
2741
+ {
2742
+ "label": "Required roles",
2743
+ "description": "List of roles to test JWT roles against",
2744
+ "type": "String",
2745
+ "group": "authorization",
2746
+ "feel": "required",
2747
+ "optional": true,
2748
+ "binding": {
2749
+ "type": "zeebe:property",
2750
+ "name": "inbound.auth.jwt.requiredPermissions"
2751
+ },
2752
+ "condition": {
2753
+ "property": "authorizationType",
2754
+ "equals": "JWT"
2755
+ }
2756
+ },
2757
+ {
2758
+ "label": "Username",
2759
+ "description": "Username for basic authentication",
2760
+ "type": "String",
2761
+ "group": "authorization",
2762
+ "feel": "optional",
2763
+ "binding": {
2764
+ "type": "zeebe:property",
2765
+ "name": "inbound.auth.username"
2766
+ },
2767
+ "condition": {
2768
+ "property": "authorizationType",
2769
+ "equals": "BASIC"
2770
+ },
2771
+ "constraints": {
2772
+ "notEmpty": true
2773
+ }
2774
+ },
2775
+ {
2776
+ "label": "Password",
2777
+ "description": "Password for basic authentication",
2778
+ "type": "String",
2779
+ "group": "authorization",
2780
+ "feel": "optional",
2781
+ "binding": {
2782
+ "type": "zeebe:property",
2783
+ "name": "inbound.auth.password"
2784
+ },
2785
+ "condition": {
2786
+ "property": "authorizationType",
2787
+ "equals": "BASIC"
2788
+ },
2789
+ "constraints": {
2790
+ "notEmpty": true
2791
+ }
2792
+ },
2793
+ {
2794
+ "label": "API Key",
2795
+ "description": "Expected API key",
2796
+ "type": "String",
2592
2797
  "group": "authorization",
2593
2798
  "feel": "optional",
2594
2799
  "binding": {
@@ -2657,6 +2862,18 @@
2657
2862
  },
2658
2863
  "description": "Expression to map the inbound payload to process variables"
2659
2864
  },
2865
+ {
2866
+ "label": "One time verification response expression",
2867
+ "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>",
2868
+ "type": "Text",
2869
+ "group": "webhookResponse",
2870
+ "feel": "required",
2871
+ "optional": true,
2872
+ "binding": {
2873
+ "type": "zeebe:property",
2874
+ "name": "inbound.verificationExpression"
2875
+ }
2876
+ },
2660
2877
  {
2661
2878
  "label": "Response body expression",
2662
2879
  "type": "Text",
@@ -2674,7 +2891,7 @@
2674
2891
  "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
2675
2892
  },
2676
2893
  "engines": {
2677
- "camunda": "^8.2"
2894
+ "camunda": "^8.4"
2678
2895
  }
2679
2896
  },
2680
2897
  {
@@ -2686,21 +2903,15 @@
2686
2903
  "keywords": []
2687
2904
  },
2688
2905
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
2689
- "version": 13,
2906
+ "version": 12,
2690
2907
  "category": {
2691
2908
  "id": "connectors",
2692
2909
  "name": "Connectors"
2693
2910
  },
2694
- "deprecated": {
2695
- "message": "Migrate to Webhook Message Start Event Connector"
2696
- },
2697
2911
  "appliesTo": ["bpmn:StartEvent"],
2698
2912
  "elementType": {
2699
2913
  "value": "bpmn:StartEvent"
2700
2914
  },
2701
- "engines": {
2702
- "camunda": "^8.3"
2703
- },
2704
2915
  "groups": [
2705
2916
  {
2706
2917
  "id": "endpoint",
@@ -2722,11 +2933,6 @@
2722
2933
  "id": "activation",
2723
2934
  "label": "Activation"
2724
2935
  },
2725
- {
2726
- "id": "deduplication",
2727
- "label": "Deduplication",
2728
- "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
2729
- },
2730
2936
  {
2731
2937
  "id": "output",
2732
2938
  "label": "Output mapping"
@@ -3115,70 +3321,6 @@
3115
3321
  "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
3116
3322
  "type": "Boolean"
3117
3323
  },
3118
- {
3119
- "id": "deduplicationModeManualFlag",
3120
- "label": "Manual mode",
3121
- "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
3122
- "value": false,
3123
- "group": "deduplication",
3124
- "binding": {
3125
- "name": "deduplicationModeManualFlag",
3126
- "type": "zeebe:property"
3127
- },
3128
- "type": "Boolean"
3129
- },
3130
- {
3131
- "id": "deduplicationId",
3132
- "label": "Deduplication ID",
3133
- "constraints": {
3134
- "notEmpty": true,
3135
- "pattern": {
3136
- "value": "^[a-zA-Z0-9_-]+$",
3137
- "message": "can only contain alphanumeric characters, dashes, and underscores"
3138
- }
3139
- },
3140
- "group": "deduplication",
3141
- "binding": {
3142
- "name": "deduplicationId",
3143
- "type": "zeebe:property"
3144
- },
3145
- "condition": {
3146
- "property": "deduplicationModeManualFlag",
3147
- "equals": true,
3148
- "type": "simple"
3149
- },
3150
- "type": "String"
3151
- },
3152
- {
3153
- "id": "deduplicationModeManual",
3154
- "value": "MANUAL",
3155
- "group": "deduplication",
3156
- "binding": {
3157
- "name": "deduplicationMode",
3158
- "type": "zeebe:property"
3159
- },
3160
- "condition": {
3161
- "property": "deduplicationId",
3162
- "isActive": true,
3163
- "type": "simple"
3164
- },
3165
- "type": "Hidden"
3166
- },
3167
- {
3168
- "id": "deduplicationModeAuto",
3169
- "value": "AUTO",
3170
- "group": "deduplication",
3171
- "binding": {
3172
- "name": "deduplicationMode",
3173
- "type": "zeebe:property"
3174
- },
3175
- "condition": {
3176
- "property": "deduplicationId",
3177
- "isActive": false,
3178
- "type": "simple"
3179
- },
3180
- "type": "Hidden"
3181
- },
3182
3324
  {
3183
3325
  "id": "resultVariable",
3184
3326
  "label": "Result variable",
@@ -3203,6 +3345,9 @@
3203
3345
  "type": "Text"
3204
3346
  }
3205
3347
  ],
3348
+ "engines": {
3349
+ "camunda": "^8.3"
3350
+ },
3206
3351
  "icon": {
3207
3352
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3208
3353
  }
@@ -3212,8 +3357,8 @@
3212
3357
  "name": "Webhook Start Event Connector",
3213
3358
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3214
3359
  "description": "Configure webhook to receive callbacks",
3215
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3216
- "version": 11,
3360
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3361
+ "version": 10,
3217
3362
  "category": {
3218
3363
  "id": "connectors",
3219
3364
  "name": "Connectors"
@@ -3314,7 +3459,7 @@
3314
3459
  {
3315
3460
  "id": "inbound.shouldValidateHmac",
3316
3461
  "label": "HMAC authentication",
3317
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3462
+ "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",
3318
3463
  "optional": false,
3319
3464
  "value": "disabled",
3320
3465
  "group": "authentication",
@@ -3405,7 +3550,7 @@
3405
3550
  {
3406
3551
  "id": "inbound.hmacScopes",
3407
3552
  "label": "HMAC scopes",
3408
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
3553
+ "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>",
3409
3554
  "optional": true,
3410
3555
  "feel": "required",
3411
3556
  "group": "authentication",
@@ -3507,7 +3652,7 @@
3507
3652
  {
3508
3653
  "id": "inbound.auth.apiKeyLocator",
3509
3654
  "label": "API key locator",
3510
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3655
+ "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>",
3511
3656
  "optional": false,
3512
3657
  "value": "=split(request.headers.authorization, \" \")[2]",
3513
3658
  "constraints": {
@@ -3547,7 +3692,7 @@
3547
3692
  {
3548
3693
  "id": "inbound.auth.jwt.permissionsExpression",
3549
3694
  "label": "JWT role property expression",
3550
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3695
+ "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>",
3551
3696
  "optional": false,
3552
3697
  "feel": "required",
3553
3698
  "group": "authorization",
@@ -3581,14 +3726,14 @@
3581
3726
  "type": "String"
3582
3727
  },
3583
3728
  {
3584
- "id": "inbound.responseExpression",
3585
- "label": "Response expression",
3586
- "description": "Expression used to generate the HTTP response",
3729
+ "id": "inbound.responseBodyExpression",
3730
+ "label": "Response body expression",
3731
+ "description": "Specify condition and response",
3587
3732
  "optional": true,
3588
3733
  "feel": "required",
3589
3734
  "group": "webhookResponse",
3590
3735
  "binding": {
3591
- "name": "inbound.responseExpression",
3736
+ "name": "inbound.responseBodyExpression",
3592
3737
  "type": "zeebe:property"
3593
3738
  },
3594
3739
  "type": "Text"
@@ -3619,18 +3764,6 @@
3619
3764
  },
3620
3765
  "type": "String"
3621
3766
  },
3622
- {
3623
- "id": "consumeUnmatchedEvents",
3624
- "label": "Consume unmatched events",
3625
- "value": true,
3626
- "group": "activation",
3627
- "binding": {
3628
- "name": "consumeUnmatchedEvents",
3629
- "type": "zeebe:property"
3630
- },
3631
- "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
3632
- "type": "Boolean"
3633
- },
3634
3767
  {
3635
3768
  "id": "resultVariable",
3636
3769
  "label": "Result variable",
@@ -3659,14 +3792,14 @@
3659
3792
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3660
3793
  },
3661
3794
  "engines": {
3662
- "camunda": "^8.6"
3795
+ "camunda": "^8.5"
3663
3796
  }
3664
3797
  },
3665
3798
  {
3666
3799
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3667
- "name": "Webhook Connector",
3800
+ "name": "Webhook Start Event Connector",
3668
3801
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3669
- "version": 1,
3802
+ "version": 7,
3670
3803
  "description": "Configure webhook to receive callbacks",
3671
3804
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3672
3805
  "category": {
@@ -3680,7 +3813,15 @@
3680
3813
  "groups": [
3681
3814
  {
3682
3815
  "id": "endpoint",
3683
- "label": "Webhook Configuration"
3816
+ "label": "Webhook configuration"
3817
+ },
3818
+ {
3819
+ "id": "authentication",
3820
+ "label": "Authentication"
3821
+ },
3822
+ {
3823
+ "id": "authorization",
3824
+ "label": "Authorization"
3684
3825
  },
3685
3826
  {
3686
3827
  "id": "activation",
@@ -3688,7 +3829,11 @@
3688
3829
  },
3689
3830
  {
3690
3831
  "id": "variable-mapping",
3691
- "label": "Variable Mapping"
3832
+ "label": "Variable mapping"
3833
+ },
3834
+ {
3835
+ "id": "webhookResponse",
3836
+ "label": "Webhook response"
3692
3837
  }
3693
3838
  ],
3694
3839
  "properties": [
@@ -3708,6 +3853,40 @@
3708
3853
  "name": "inbound.subtype"
3709
3854
  }
3710
3855
  },
3856
+ {
3857
+ "id": "webhookMethod",
3858
+ "label": "Webhook method",
3859
+ "group": "endpoint",
3860
+ "description": "Select HTTP method",
3861
+ "value": "any",
3862
+ "type": "Dropdown",
3863
+ "choices": [
3864
+ {
3865
+ "name": "Any",
3866
+ "value": "any"
3867
+ },
3868
+ {
3869
+ "name": "Get",
3870
+ "value": "get"
3871
+ },
3872
+ {
3873
+ "name": "Post",
3874
+ "value": "post"
3875
+ },
3876
+ {
3877
+ "name": "Put",
3878
+ "value": "put"
3879
+ },
3880
+ {
3881
+ "name": "Delete",
3882
+ "value": "delete"
3883
+ }
3884
+ ],
3885
+ "binding": {
3886
+ "type": "zeebe:property",
3887
+ "name": "inbound.method"
3888
+ }
3889
+ },
3711
3890
  {
3712
3891
  "label": "Webhook ID",
3713
3892
  "type": "String",
@@ -3716,15 +3895,15 @@
3716
3895
  "type": "zeebe:property",
3717
3896
  "name": "inbound.context"
3718
3897
  },
3898
+ "description": "The webhook ID is a part of the URL",
3719
3899
  "constraints": {
3720
3900
  "notEmpty": true
3721
- },
3722
- "description": "The webhook ID is a part of the URL"
3901
+ }
3723
3902
  },
3724
3903
  {
3725
3904
  "id": "shouldValidateHmac",
3726
3905
  "label": "HMAC authentication",
3727
- "group": "endpoint",
3906
+ "group": "authentication",
3728
3907
  "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",
3729
3908
  "value": "disabled",
3730
3909
  "type": "Dropdown",
@@ -3747,7 +3926,7 @@
3747
3926
  "label": "HMAC secret key",
3748
3927
  "description": "Shared secret key",
3749
3928
  "type": "String",
3750
- "group": "endpoint",
3929
+ "group": "authentication",
3751
3930
  "optional": true,
3752
3931
  "binding": {
3753
3932
  "type": "zeebe:property",
@@ -3762,7 +3941,7 @@
3762
3941
  "label": "HMAC header",
3763
3942
  "description": "Name of header attribute that will contain the HMAC value",
3764
3943
  "type": "String",
3765
- "group": "endpoint",
3944
+ "group": "authentication",
3766
3945
  "optional": true,
3767
3946
  "binding": {
3768
3947
  "type": "zeebe:property",
@@ -3775,7 +3954,7 @@
3775
3954
  },
3776
3955
  {
3777
3956
  "label": "HMAC algorithm",
3778
- "group": "endpoint",
3957
+ "group": "authentication",
3779
3958
  "description": "Choose HMAC algorithm",
3780
3959
  "value": "sha_256",
3781
3960
  "type": "Dropdown",
@@ -3802,6 +3981,173 @@
3802
3981
  "equals": "enabled"
3803
3982
  }
3804
3983
  },
3984
+ {
3985
+ "label": "HMAC scopes",
3986
+ "group": "authentication",
3987
+ "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>",
3988
+ "feel": "required",
3989
+ "type": "String",
3990
+ "optional": true,
3991
+ "binding": {
3992
+ "type": "zeebe:property",
3993
+ "name": "inbound.hmacScopes"
3994
+ },
3995
+ "condition": {
3996
+ "property": "shouldValidateHmac",
3997
+ "equals": "enabled"
3998
+ }
3999
+ },
4000
+ {
4001
+ "id": "authorizationType",
4002
+ "label": "Authorization type",
4003
+ "group": "authorization",
4004
+ "description": "Choose the authorization type.",
4005
+ "value": "NONE",
4006
+ "type": "Dropdown",
4007
+ "choices": [
4008
+ {
4009
+ "name": "None",
4010
+ "value": "NONE"
4011
+ },
4012
+ {
4013
+ "name": "JWT",
4014
+ "value": "JWT"
4015
+ },
4016
+ {
4017
+ "name": "Basic",
4018
+ "value": "BASIC"
4019
+ },
4020
+ {
4021
+ "name": "API Key",
4022
+ "value": "APIKEY"
4023
+ }
4024
+ ],
4025
+ "binding": {
4026
+ "type": "zeebe:property",
4027
+ "name": "inbound.auth.type"
4028
+ }
4029
+ },
4030
+ {
4031
+ "label": "JWK url",
4032
+ "description": "Well-known url of JWKs",
4033
+ "type": "String",
4034
+ "group": "authorization",
4035
+ "feel": "optional",
4036
+ "optional": true,
4037
+ "binding": {
4038
+ "type": "zeebe:property",
4039
+ "name": "inbound.auth.jwt.jwkUrl"
4040
+ },
4041
+ "condition": {
4042
+ "property": "authorizationType",
4043
+ "equals": "JWT"
4044
+ }
4045
+ },
4046
+ {
4047
+ "label": "JWT role property expression",
4048
+ "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>",
4049
+ "type": "String",
4050
+ "group": "authorization",
4051
+ "feel": "required",
4052
+ "optional": true,
4053
+ "binding": {
4054
+ "type": "zeebe:property",
4055
+ "name": "inbound.auth.jwt.permissionsExpression"
4056
+ },
4057
+ "condition": {
4058
+ "property": "authorizationType",
4059
+ "equals": "JWT"
4060
+ }
4061
+ },
4062
+ {
4063
+ "label": "Required roles",
4064
+ "description": "List of roles to test JWT roles against",
4065
+ "type": "String",
4066
+ "group": "authorization",
4067
+ "feel": "required",
4068
+ "optional": true,
4069
+ "binding": {
4070
+ "type": "zeebe:property",
4071
+ "name": "inbound.auth.jwt.requiredPermissions"
4072
+ },
4073
+ "condition": {
4074
+ "property": "authorizationType",
4075
+ "equals": "JWT"
4076
+ }
4077
+ },
4078
+ {
4079
+ "label": "Username",
4080
+ "description": "Username for basic authentication",
4081
+ "type": "String",
4082
+ "group": "authorization",
4083
+ "feel": "optional",
4084
+ "binding": {
4085
+ "type": "zeebe:property",
4086
+ "name": "inbound.auth.username"
4087
+ },
4088
+ "condition": {
4089
+ "property": "authorizationType",
4090
+ "equals": "BASIC"
4091
+ },
4092
+ "constraints": {
4093
+ "notEmpty": true
4094
+ }
4095
+ },
4096
+ {
4097
+ "label": "Password",
4098
+ "description": "Password for basic authentication",
4099
+ "type": "String",
4100
+ "group": "authorization",
4101
+ "feel": "optional",
4102
+ "binding": {
4103
+ "type": "zeebe:property",
4104
+ "name": "inbound.auth.password"
4105
+ },
4106
+ "condition": {
4107
+ "property": "authorizationType",
4108
+ "equals": "BASIC"
4109
+ },
4110
+ "constraints": {
4111
+ "notEmpty": true
4112
+ }
4113
+ },
4114
+ {
4115
+ "label": "API Key",
4116
+ "description": "Expected API key",
4117
+ "type": "String",
4118
+ "group": "authorization",
4119
+ "feel": "optional",
4120
+ "binding": {
4121
+ "type": "zeebe:property",
4122
+ "name": "inbound.auth.apiKey"
4123
+ },
4124
+ "condition": {
4125
+ "property": "authorizationType",
4126
+ "equals": "APIKEY"
4127
+ },
4128
+ "constraints": {
4129
+ "notEmpty": true
4130
+ }
4131
+ },
4132
+ {
4133
+ "label": "API Key locator",
4134
+ "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>",
4135
+ "type": "String",
4136
+ "group": "authorization",
4137
+ "feel": "required",
4138
+ "binding": {
4139
+ "type": "zeebe:property",
4140
+ "name": "inbound.auth.apiKeyLocator"
4141
+ },
4142
+ "condition": {
4143
+ "property": "authorizationType",
4144
+ "equals": "APIKEY"
4145
+ },
4146
+ "constraints": {
4147
+ "notEmpty": true
4148
+ },
4149
+ "value": "=split(request.headers.authorization, \" \")[2]"
4150
+ },
3805
4151
  {
3806
4152
  "label": "Condition",
3807
4153
  "type": "String",
@@ -3810,20 +4156,44 @@
3810
4156
  "optional": true,
3811
4157
  "binding": {
3812
4158
  "type": "zeebe:property",
3813
- "name": "inbound.activationCondition"
4159
+ "name": "activationCondition"
3814
4160
  },
3815
4161
  "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>"
3816
4162
  },
3817
4163
  {
3818
- "label": "Variables",
4164
+ "label": "Result variable",
4165
+ "type": "String",
4166
+ "group": "variable-mapping",
4167
+ "optional": true,
4168
+ "binding": {
4169
+ "type": "zeebe:property",
4170
+ "name": "resultVariable"
4171
+ },
4172
+ "description": "Name of variable to store the result of the connector in"
4173
+ },
4174
+ {
4175
+ "label": "Result expression",
3819
4176
  "type": "String",
3820
4177
  "group": "variable-mapping",
3821
4178
  "feel": "required",
4179
+ "optional": true,
4180
+ "binding": {
4181
+ "type": "zeebe:property",
4182
+ "name": "resultExpression"
4183
+ },
4184
+ "description": "Expression to map the inbound payload to process variables"
4185
+ },
4186
+ {
4187
+ "label": "Response body expression",
4188
+ "type": "Text",
4189
+ "group": "webhookResponse",
4190
+ "feel": "required",
4191
+ "optional": true,
3822
4192
  "binding": {
3823
4193
  "type": "zeebe:property",
3824
- "name": "inbound.variableMapping"
4194
+ "name": "inbound.responseBodyExpression"
3825
4195
  },
3826
- "description": "Map variables from the webhook payload (request) to start the process with. When blank, entire payload is copied over. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
4196
+ "description": "Specify condition and response"
3827
4197
  }
3828
4198
  ],
3829
4199
  "icon": {
@@ -3835,14 +4205,11 @@
3835
4205
  },
3836
4206
  {
3837
4207
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3838
- "name": "Webhook Start Event Connector",
4208
+ "name": "Webhook connector",
3839
4209
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
4210
+ "version": 6,
3840
4211
  "description": "Configure webhook to receive callbacks",
3841
- "metadata": {
3842
- "keywords": []
3843
- },
3844
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3845
- "version": 12,
4212
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3846
4213
  "category": {
3847
4214
  "id": "connectors",
3848
4215
  "name": "Connectors"
@@ -3864,39 +4231,42 @@
3864
4231
  "id": "authorization",
3865
4232
  "label": "Authorization"
3866
4233
  },
3867
- {
3868
- "id": "webhookResponse",
3869
- "label": "Webhook response"
3870
- },
3871
4234
  {
3872
4235
  "id": "activation",
3873
4236
  "label": "Activation"
3874
4237
  },
3875
4238
  {
3876
- "id": "output",
3877
- "label": "Output mapping"
4239
+ "id": "variable-mapping",
4240
+ "label": "Variable mapping"
4241
+ },
4242
+ {
4243
+ "id": "webhookResponse",
4244
+ "label": "Webhook response"
3878
4245
  }
3879
4246
  ],
3880
4247
  "properties": [
3881
4248
  {
4249
+ "type": "Hidden",
3882
4250
  "value": "io.camunda:webhook:1",
3883
4251
  "binding": {
3884
- "name": "inbound.type",
3885
- "type": "zeebe:property"
3886
- },
3887
- "type": "Hidden"
4252
+ "type": "zeebe:property",
4253
+ "name": "inbound.type"
4254
+ }
3888
4255
  },
3889
4256
  {
3890
- "id": "inbound.method",
4257
+ "type": "Hidden",
4258
+ "value": "ConfigurableInboundWebhook",
4259
+ "binding": {
4260
+ "type": "zeebe:property",
4261
+ "name": "inbound.subtype"
4262
+ }
4263
+ },
4264
+ {
4265
+ "id": "webhookMethod",
3891
4266
  "label": "Webhook method",
4267
+ "group": "endpoint",
3892
4268
  "description": "Select HTTP method",
3893
- "optional": false,
3894
4269
  "value": "any",
3895
- "group": "endpoint",
3896
- "binding": {
3897
- "name": "inbound.method",
3898
- "type": "zeebe:property"
3899
- },
3900
4270
  "type": "Dropdown",
3901
4271
  "choices": [
3902
4272
  {
@@ -3904,53 +4274,46 @@
3904
4274
  "value": "any"
3905
4275
  },
3906
4276
  {
3907
- "name": "GET",
4277
+ "name": "Get",
3908
4278
  "value": "get"
3909
4279
  },
3910
4280
  {
3911
- "name": "POST",
4281
+ "name": "Post",
3912
4282
  "value": "post"
3913
4283
  },
3914
4284
  {
3915
- "name": "PUT",
4285
+ "name": "Put",
3916
4286
  "value": "put"
3917
4287
  },
3918
4288
  {
3919
- "name": "DELETE",
4289
+ "name": "Delete",
3920
4290
  "value": "delete"
3921
4291
  }
3922
- ]
4292
+ ],
4293
+ "binding": {
4294
+ "type": "zeebe:property",
4295
+ "name": "inbound.method"
4296
+ }
3923
4297
  },
3924
4298
  {
3925
- "id": "inbound.context",
3926
4299
  "label": "Webhook ID",
3927
- "description": "The webhook ID is a part of the URL",
3928
- "optional": false,
3929
- "constraints": {
3930
- "notEmpty": true,
3931
- "pattern": {
3932
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
3933
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
3934
- }
3935
- },
4300
+ "type": "String",
3936
4301
  "group": "endpoint",
3937
4302
  "binding": {
3938
- "name": "inbound.context",
3939
- "type": "zeebe:property"
4303
+ "type": "zeebe:property",
4304
+ "name": "inbound.context"
3940
4305
  },
3941
- "type": "String"
4306
+ "description": "The webhook ID is a part of the URL",
4307
+ "constraints": {
4308
+ "notEmpty": true
4309
+ }
3942
4310
  },
3943
4311
  {
3944
- "id": "inbound.shouldValidateHmac",
4312
+ "id": "shouldValidateHmac",
3945
4313
  "label": "HMAC authentication",
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",
3947
- "optional": false,
3948
- "value": "disabled",
3949
4314
  "group": "authentication",
3950
- "binding": {
3951
- "name": "inbound.shouldValidateHmac",
3952
- "type": "zeebe:property"
3953
- },
4315
+ "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",
4316
+ "value": "disabled",
3954
4317
  "type": "Dropdown",
3955
4318
  "choices": [
3956
4319
  {
@@ -3961,60 +4324,47 @@
3961
4324
  "name": "Disabled",
3962
4325
  "value": "disabled"
3963
4326
  }
3964
- ]
4327
+ ],
4328
+ "binding": {
4329
+ "type": "zeebe:property",
4330
+ "name": "inbound.shouldValidateHmac"
4331
+ }
3965
4332
  },
3966
4333
  {
3967
- "id": "inbound.hmacSecret",
3968
4334
  "label": "HMAC secret key",
3969
4335
  "description": "Shared secret key",
3970
- "optional": true,
3971
- "feel": "optional",
4336
+ "type": "String",
3972
4337
  "group": "authentication",
4338
+ "optional": true,
3973
4339
  "binding": {
3974
- "name": "inbound.hmacSecret",
3975
- "type": "zeebe:property"
4340
+ "type": "zeebe:property",
4341
+ "name": "inbound.hmacSecret"
3976
4342
  },
3977
4343
  "condition": {
3978
- "property": "inbound.shouldValidateHmac",
3979
- "equals": "enabled",
3980
- "type": "simple"
3981
- },
3982
- "type": "String"
4344
+ "property": "shouldValidateHmac",
4345
+ "equals": "enabled"
4346
+ }
3983
4347
  },
3984
4348
  {
3985
- "id": "inbound.hmacHeader",
3986
4349
  "label": "HMAC header",
3987
4350
  "description": "Name of header attribute that will contain the HMAC value",
3988
- "optional": true,
3989
- "feel": "optional",
4351
+ "type": "String",
3990
4352
  "group": "authentication",
4353
+ "optional": true,
3991
4354
  "binding": {
3992
- "name": "inbound.hmacHeader",
3993
- "type": "zeebe:property"
4355
+ "type": "zeebe:property",
4356
+ "name": "inbound.hmacHeader"
3994
4357
  },
3995
4358
  "condition": {
3996
- "property": "inbound.shouldValidateHmac",
3997
- "equals": "enabled",
3998
- "type": "simple"
3999
- },
4000
- "type": "String"
4359
+ "property": "shouldValidateHmac",
4360
+ "equals": "enabled"
4361
+ }
4001
4362
  },
4002
4363
  {
4003
- "id": "inbound.hmacAlgorithm",
4004
4364
  "label": "HMAC algorithm",
4365
+ "group": "authentication",
4005
4366
  "description": "Choose HMAC algorithm",
4006
- "optional": false,
4007
4367
  "value": "sha_256",
4008
- "group": "authentication",
4009
- "binding": {
4010
- "name": "inbound.hmacAlgorithm",
4011
- "type": "zeebe:property"
4012
- },
4013
- "condition": {
4014
- "property": "inbound.shouldValidateHmac",
4015
- "equals": "enabled",
4016
- "type": "simple"
4017
- },
4018
4368
  "type": "Dropdown",
4019
4369
  "choices": [
4020
4370
  {
@@ -4029,273 +4379,243 @@
4029
4379
  "name": "SHA-512",
4030
4380
  "value": "sha_512"
4031
4381
  }
4032
- ]
4382
+ ],
4383
+ "binding": {
4384
+ "type": "zeebe:property",
4385
+ "name": "inbound.hmacAlgorithm"
4386
+ },
4387
+ "condition": {
4388
+ "property": "shouldValidateHmac",
4389
+ "equals": "enabled"
4390
+ }
4033
4391
  },
4034
4392
  {
4035
- "id": "inbound.hmacScopes",
4036
4393
  "label": "HMAC scopes",
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>",
4038
- "optional": true,
4039
- "feel": "required",
4040
4394
  "group": "authentication",
4395
+ "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>",
4396
+ "feel": "required",
4397
+ "type": "String",
4398
+ "optional": true,
4041
4399
  "binding": {
4042
- "name": "inbound.hmacScopes",
4043
- "type": "zeebe:property"
4400
+ "type": "zeebe:property",
4401
+ "name": "inbound.hmacScopes"
4044
4402
  },
4045
4403
  "condition": {
4046
- "property": "inbound.shouldValidateHmac",
4047
- "equals": "enabled",
4048
- "type": "simple"
4049
- },
4050
- "type": "String"
4404
+ "property": "shouldValidateHmac",
4405
+ "equals": "enabled"
4406
+ }
4051
4407
  },
4052
4408
  {
4053
- "id": "inbound.auth.type",
4409
+ "id": "authorizationType",
4054
4410
  "label": "Authorization type",
4055
- "description": "Choose the authorization type",
4056
- "value": "NONE",
4057
4411
  "group": "authorization",
4058
- "binding": {
4059
- "name": "inbound.auth.type",
4060
- "type": "zeebe:property"
4061
- },
4412
+ "description": "Choose the authorization type.",
4413
+ "value": "NONE",
4062
4414
  "type": "Dropdown",
4063
4415
  "choices": [
4064
4416
  {
4065
4417
  "name": "None",
4066
4418
  "value": "NONE"
4067
4419
  },
4420
+ {
4421
+ "name": "JWT",
4422
+ "value": "JWT"
4423
+ },
4068
4424
  {
4069
4425
  "name": "Basic",
4070
4426
  "value": "BASIC"
4071
4427
  },
4072
4428
  {
4073
- "name": "API key",
4429
+ "name": "API Key",
4074
4430
  "value": "APIKEY"
4075
- },
4076
- {
4077
- "name": "JWT",
4078
- "value": "JWT"
4079
4431
  }
4080
- ]
4081
- },
4082
- {
4083
- "id": "inbound.auth.username",
4084
- "label": "Username",
4085
- "description": "Username for basic authentication",
4086
- "optional": false,
4087
- "feel": "optional",
4088
- "group": "authorization",
4432
+ ],
4089
4433
  "binding": {
4090
- "name": "inbound.auth.username",
4091
- "type": "zeebe:property"
4092
- },
4093
- "condition": {
4094
- "property": "inbound.auth.type",
4095
- "equals": "BASIC",
4096
- "type": "simple"
4097
- },
4098
- "type": "String"
4434
+ "type": "zeebe:property",
4435
+ "name": "inbound.auth.type"
4436
+ }
4099
4437
  },
4100
4438
  {
4101
- "id": "inbound.auth.password",
4102
- "label": "Password",
4103
- "description": "Password for basic authentication",
4104
- "optional": false,
4105
- "feel": "optional",
4439
+ "label": "JWK url",
4440
+ "description": "Well-known url of JWKs",
4441
+ "type": "String",
4106
4442
  "group": "authorization",
4443
+ "feel": "optional",
4444
+ "optional": true,
4107
4445
  "binding": {
4108
- "name": "inbound.auth.password",
4109
- "type": "zeebe:property"
4446
+ "type": "zeebe:property",
4447
+ "name": "inbound.auth.jwt.jwkUrl"
4110
4448
  },
4111
4449
  "condition": {
4112
- "property": "inbound.auth.type",
4113
- "equals": "BASIC",
4114
- "type": "simple"
4115
- },
4116
- "type": "String"
4450
+ "property": "authorizationType",
4451
+ "equals": "JWT"
4452
+ }
4117
4453
  },
4118
4454
  {
4119
- "id": "inbound.auth.apiKey",
4120
- "label": "API key",
4121
- "description": "Expected API key",
4122
- "optional": false,
4123
- "feel": "optional",
4455
+ "label": "JWT role property expression",
4456
+ "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>",
4457
+ "type": "String",
4124
4458
  "group": "authorization",
4459
+ "feel": "required",
4460
+ "optional": true,
4125
4461
  "binding": {
4126
- "name": "inbound.auth.apiKey",
4127
- "type": "zeebe:property"
4462
+ "type": "zeebe:property",
4463
+ "name": "inbound.auth.jwt.permissionsExpression"
4128
4464
  },
4129
4465
  "condition": {
4130
- "property": "inbound.auth.type",
4131
- "equals": "APIKEY",
4132
- "type": "simple"
4133
- },
4134
- "type": "String"
4466
+ "property": "authorizationType",
4467
+ "equals": "JWT"
4468
+ }
4135
4469
  },
4136
4470
  {
4137
- "id": "inbound.auth.apiKeyLocator",
4138
- "label": "API key locator",
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>",
4140
- "optional": false,
4141
- "value": "=split(request.headers.authorization, \" \")[2]",
4142
- "constraints": {
4143
- "notEmpty": true
4144
- },
4145
- "feel": "required",
4471
+ "label": "Required roles",
4472
+ "description": "List of roles to test JWT roles against",
4473
+ "type": "String",
4146
4474
  "group": "authorization",
4475
+ "feel": "required",
4476
+ "optional": true,
4147
4477
  "binding": {
4148
- "name": "inbound.auth.apiKeyLocator",
4149
- "type": "zeebe:property"
4478
+ "type": "zeebe:property",
4479
+ "name": "inbound.auth.jwt.requiredPermissions"
4150
4480
  },
4151
4481
  "condition": {
4152
- "property": "inbound.auth.type",
4153
- "equals": "APIKEY",
4154
- "type": "simple"
4155
- },
4156
- "type": "String"
4482
+ "property": "authorizationType",
4483
+ "equals": "JWT"
4484
+ }
4157
4485
  },
4158
4486
  {
4159
- "id": "inbound.auth.jwt.jwkUrl",
4160
- "label": "JWK URL",
4161
- "description": "Well-known URL of JWKs",
4162
- "optional": false,
4163
- "feel": "optional",
4487
+ "label": "Username",
4488
+ "description": "Username for basic authentication",
4489
+ "type": "String",
4164
4490
  "group": "authorization",
4491
+ "feel": "optional",
4165
4492
  "binding": {
4166
- "name": "inbound.auth.jwt.jwkUrl",
4167
- "type": "zeebe:property"
4493
+ "type": "zeebe:property",
4494
+ "name": "inbound.auth.username"
4168
4495
  },
4169
4496
  "condition": {
4170
- "property": "inbound.auth.type",
4171
- "equals": "JWT",
4172
- "type": "simple"
4497
+ "property": "authorizationType",
4498
+ "equals": "BASIC"
4173
4499
  },
4174
- "type": "String"
4500
+ "constraints": {
4501
+ "notEmpty": true
4502
+ }
4175
4503
  },
4176
4504
  {
4177
- "id": "inbound.auth.jwt.permissionsExpression",
4178
- "label": "JWT role property expression",
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>",
4180
- "optional": false,
4181
- "feel": "required",
4505
+ "label": "Password",
4506
+ "description": "Password for basic authentication",
4507
+ "type": "String",
4182
4508
  "group": "authorization",
4509
+ "feel": "optional",
4183
4510
  "binding": {
4184
- "name": "inbound.auth.jwt.permissionsExpression",
4185
- "type": "zeebe:property"
4511
+ "type": "zeebe:property",
4512
+ "name": "inbound.auth.password"
4186
4513
  },
4187
4514
  "condition": {
4188
- "property": "inbound.auth.type",
4189
- "equals": "JWT",
4190
- "type": "simple"
4515
+ "property": "authorizationType",
4516
+ "equals": "BASIC"
4191
4517
  },
4192
- "type": "String"
4518
+ "constraints": {
4519
+ "notEmpty": true
4520
+ }
4193
4521
  },
4194
4522
  {
4195
- "id": "inbound.auth.jwt.requiredPermissions",
4196
- "label": "Required roles",
4197
- "description": "List of roles to test JWT roles against",
4198
- "optional": false,
4199
- "feel": "required",
4523
+ "label": "API Key",
4524
+ "description": "Expected API key",
4525
+ "type": "String",
4200
4526
  "group": "authorization",
4527
+ "feel": "optional",
4201
4528
  "binding": {
4202
- "name": "inbound.auth.jwt.requiredPermissions",
4203
- "type": "zeebe:property"
4529
+ "type": "zeebe:property",
4530
+ "name": "inbound.auth.apiKey"
4204
4531
  },
4205
4532
  "condition": {
4206
- "property": "inbound.auth.type",
4207
- "equals": "JWT",
4208
- "type": "simple"
4533
+ "property": "authorizationType",
4534
+ "equals": "APIKEY"
4209
4535
  },
4210
- "type": "String"
4536
+ "constraints": {
4537
+ "notEmpty": true
4538
+ }
4211
4539
  },
4212
4540
  {
4213
- "id": "inbound.responseExpression",
4214
- "label": "Response expression",
4215
- "description": "Expression used to generate the HTTP response",
4216
- "optional": true,
4541
+ "label": "API Key locator",
4542
+ "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>",
4543
+ "type": "String",
4544
+ "group": "authorization",
4217
4545
  "feel": "required",
4218
- "group": "webhookResponse",
4219
4546
  "binding": {
4220
- "name": "inbound.responseExpression",
4221
- "type": "zeebe:property"
4547
+ "type": "zeebe:property",
4548
+ "name": "inbound.auth.apiKeyLocator"
4222
4549
  },
4223
- "type": "Text"
4224
- },
4225
- {
4226
- "id": "inbound.verificationExpression",
4227
- "label": "One time verification response expression",
4228
- "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>",
4229
- "optional": true,
4230
- "feel": "required",
4231
- "group": "webhookResponse",
4232
- "binding": {
4233
- "name": "inbound.verificationExpression",
4234
- "type": "zeebe:property"
4550
+ "condition": {
4551
+ "property": "authorizationType",
4552
+ "equals": "APIKEY"
4235
4553
  },
4236
- "type": "Text"
4554
+ "constraints": {
4555
+ "notEmpty": true
4556
+ },
4557
+ "value": "=split(request.headers.authorization, \" \")[2]"
4237
4558
  },
4238
4559
  {
4239
- "id": "activationCondition",
4240
- "label": "Activation condition",
4241
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
4242
- "optional": true,
4243
- "feel": "required",
4560
+ "label": "Condition",
4561
+ "type": "String",
4244
4562
  "group": "activation",
4563
+ "feel": "required",
4564
+ "optional": true,
4245
4565
  "binding": {
4246
- "name": "activationCondition",
4247
- "type": "zeebe:property"
4566
+ "type": "zeebe:property",
4567
+ "name": "activationCondition"
4248
4568
  },
4249
- "type": "String"
4569
+ "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>"
4250
4570
  },
4251
4571
  {
4252
- "id": "consumeUnmatchedEvents",
4253
- "label": "Consume unmatched events",
4254
- "value": true,
4255
- "group": "activation",
4572
+ "label": "Result variable",
4573
+ "type": "String",
4574
+ "group": "variable-mapping",
4575
+ "optional": true,
4256
4576
  "binding": {
4257
- "name": "consumeUnmatchedEvents",
4258
- "type": "zeebe:property"
4577
+ "type": "zeebe:property",
4578
+ "name": "resultVariable"
4259
4579
  },
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"
4580
+ "description": "Name of variable to store the result of the connector in"
4262
4581
  },
4263
4582
  {
4264
- "id": "resultVariable",
4265
- "label": "Result variable",
4266
- "description": "Name of variable to store the response in",
4267
- "group": "output",
4583
+ "label": "Result expression",
4584
+ "type": "String",
4585
+ "group": "variable-mapping",
4586
+ "feel": "required",
4587
+ "optional": true,
4268
4588
  "binding": {
4269
- "name": "resultVariable",
4270
- "type": "zeebe:property"
4589
+ "type": "zeebe:property",
4590
+ "name": "resultExpression"
4271
4591
  },
4272
- "type": "String"
4592
+ "description": "Expression to map the inbound payload to process variables"
4273
4593
  },
4274
4594
  {
4275
- "id": "resultExpression",
4276
- "label": "Result expression",
4277
- "description": "Expression to map the response into process variables",
4595
+ "label": "Response body expression",
4596
+ "type": "Text",
4597
+ "group": "webhookResponse",
4278
4598
  "feel": "required",
4279
- "group": "output",
4599
+ "optional": true,
4280
4600
  "binding": {
4281
- "name": "resultExpression",
4282
- "type": "zeebe:property"
4601
+ "type": "zeebe:property",
4602
+ "name": "inbound.responseBodyExpression"
4283
4603
  },
4284
- "type": "Text"
4604
+ "description": "Specify condition and response"
4285
4605
  }
4286
4606
  ],
4287
- "engines": {
4288
- "camunda": "^8.3"
4289
- },
4290
4607
  "icon": {
4291
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
4608
+ "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"
4609
+ },
4610
+ "engines": {
4611
+ "camunda": "^8.2"
4292
4612
  }
4293
4613
  },
4294
4614
  {
4295
4615
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4296
- "name": "Webhook Connector",
4616
+ "name": "Webhook Start Event Connector",
4297
4617
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
4298
- "version": 2,
4618
+ "version": 9,
4299
4619
  "description": "Configure webhook to receive callbacks",
4300
4620
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
4301
4621
  "category": {
@@ -4309,7 +4629,15 @@
4309
4629
  "groups": [
4310
4630
  {
4311
4631
  "id": "endpoint",
4312
- "label": "Webhook Configuration"
4632
+ "label": "Webhook configuration"
4633
+ },
4634
+ {
4635
+ "id": "authentication",
4636
+ "label": "Authentication"
4637
+ },
4638
+ {
4639
+ "id": "authorization",
4640
+ "label": "Authorization"
4313
4641
  },
4314
4642
  {
4315
4643
  "id": "activation",
@@ -4317,7 +4645,11 @@
4317
4645
  },
4318
4646
  {
4319
4647
  "id": "variable-mapping",
4320
- "label": "Variable Mapping"
4648
+ "label": "Variable mapping"
4649
+ },
4650
+ {
4651
+ "id": "webhookResponse",
4652
+ "label": "Webhook response"
4321
4653
  }
4322
4654
  ],
4323
4655
  "properties": [
@@ -4334,7 +4666,41 @@
4334
4666
  "value": "ConfigurableInboundWebhook",
4335
4667
  "binding": {
4336
4668
  "type": "zeebe:property",
4337
- "name": "inbound.subtype"
4669
+ "name": "inbound.subtype"
4670
+ }
4671
+ },
4672
+ {
4673
+ "id": "webhookMethod",
4674
+ "label": "Webhook method",
4675
+ "group": "endpoint",
4676
+ "description": "Select HTTP method",
4677
+ "value": "any",
4678
+ "type": "Dropdown",
4679
+ "choices": [
4680
+ {
4681
+ "name": "Any",
4682
+ "value": "any"
4683
+ },
4684
+ {
4685
+ "name": "Get",
4686
+ "value": "get"
4687
+ },
4688
+ {
4689
+ "name": "Post",
4690
+ "value": "post"
4691
+ },
4692
+ {
4693
+ "name": "Put",
4694
+ "value": "put"
4695
+ },
4696
+ {
4697
+ "name": "Delete",
4698
+ "value": "delete"
4699
+ }
4700
+ ],
4701
+ "binding": {
4702
+ "type": "zeebe:property",
4703
+ "name": "inbound.method"
4338
4704
  }
4339
4705
  },
4340
4706
  {
@@ -4347,13 +4713,17 @@
4347
4713
  },
4348
4714
  "description": "The webhook ID is a part of the URL",
4349
4715
  "constraints": {
4350
- "notEmpty": true
4716
+ "notEmpty": true,
4717
+ "pattern": {
4718
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
4719
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
4720
+ }
4351
4721
  }
4352
4722
  },
4353
4723
  {
4354
4724
  "id": "shouldValidateHmac",
4355
4725
  "label": "HMAC authentication",
4356
- "group": "endpoint",
4726
+ "group": "authentication",
4357
4727
  "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
4728
  "value": "disabled",
4359
4729
  "type": "Dropdown",
@@ -4376,7 +4746,7 @@
4376
4746
  "label": "HMAC secret key",
4377
4747
  "description": "Shared secret key",
4378
4748
  "type": "String",
4379
- "group": "endpoint",
4749
+ "group": "authentication",
4380
4750
  "optional": true,
4381
4751
  "binding": {
4382
4752
  "type": "zeebe:property",
@@ -4391,7 +4761,7 @@
4391
4761
  "label": "HMAC header",
4392
4762
  "description": "Name of header attribute that will contain the HMAC value",
4393
4763
  "type": "String",
4394
- "group": "endpoint",
4764
+ "group": "authentication",
4395
4765
  "optional": true,
4396
4766
  "binding": {
4397
4767
  "type": "zeebe:property",
@@ -4404,7 +4774,7 @@
4404
4774
  },
4405
4775
  {
4406
4776
  "label": "HMAC algorithm",
4407
- "group": "endpoint",
4777
+ "group": "authentication",
4408
4778
  "description": "Choose HMAC algorithm",
4409
4779
  "value": "sha_256",
4410
4780
  "type": "Dropdown",
@@ -4431,6 +4801,173 @@
4431
4801
  "equals": "enabled"
4432
4802
  }
4433
4803
  },
4804
+ {
4805
+ "label": "HMAC scopes",
4806
+ "group": "authentication",
4807
+ "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>",
4808
+ "feel": "required",
4809
+ "type": "String",
4810
+ "optional": true,
4811
+ "binding": {
4812
+ "type": "zeebe:property",
4813
+ "name": "inbound.hmacScopes"
4814
+ },
4815
+ "condition": {
4816
+ "property": "shouldValidateHmac",
4817
+ "equals": "enabled"
4818
+ }
4819
+ },
4820
+ {
4821
+ "id": "authorizationType",
4822
+ "label": "Authorization type",
4823
+ "group": "authorization",
4824
+ "description": "Choose the authorization type.",
4825
+ "value": "NONE",
4826
+ "type": "Dropdown",
4827
+ "choices": [
4828
+ {
4829
+ "name": "None",
4830
+ "value": "NONE"
4831
+ },
4832
+ {
4833
+ "name": "JWT",
4834
+ "value": "JWT"
4835
+ },
4836
+ {
4837
+ "name": "Basic",
4838
+ "value": "BASIC"
4839
+ },
4840
+ {
4841
+ "name": "API Key",
4842
+ "value": "APIKEY"
4843
+ }
4844
+ ],
4845
+ "binding": {
4846
+ "type": "zeebe:property",
4847
+ "name": "inbound.auth.type"
4848
+ }
4849
+ },
4850
+ {
4851
+ "label": "JWK url",
4852
+ "description": "Well-known url of JWKs",
4853
+ "type": "String",
4854
+ "group": "authorization",
4855
+ "feel": "optional",
4856
+ "optional": true,
4857
+ "binding": {
4858
+ "type": "zeebe:property",
4859
+ "name": "inbound.auth.jwt.jwkUrl"
4860
+ },
4861
+ "condition": {
4862
+ "property": "authorizationType",
4863
+ "equals": "JWT"
4864
+ }
4865
+ },
4866
+ {
4867
+ "label": "JWT role property expression",
4868
+ "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>",
4869
+ "type": "String",
4870
+ "group": "authorization",
4871
+ "feel": "required",
4872
+ "optional": true,
4873
+ "binding": {
4874
+ "type": "zeebe:property",
4875
+ "name": "inbound.auth.jwt.permissionsExpression"
4876
+ },
4877
+ "condition": {
4878
+ "property": "authorizationType",
4879
+ "equals": "JWT"
4880
+ }
4881
+ },
4882
+ {
4883
+ "label": "Required roles",
4884
+ "description": "List of roles to test JWT roles against",
4885
+ "type": "String",
4886
+ "group": "authorization",
4887
+ "feel": "required",
4888
+ "optional": true,
4889
+ "binding": {
4890
+ "type": "zeebe:property",
4891
+ "name": "inbound.auth.jwt.requiredPermissions"
4892
+ },
4893
+ "condition": {
4894
+ "property": "authorizationType",
4895
+ "equals": "JWT"
4896
+ }
4897
+ },
4898
+ {
4899
+ "label": "Username",
4900
+ "description": "Username for basic authentication",
4901
+ "type": "String",
4902
+ "group": "authorization",
4903
+ "feel": "optional",
4904
+ "binding": {
4905
+ "type": "zeebe:property",
4906
+ "name": "inbound.auth.username"
4907
+ },
4908
+ "condition": {
4909
+ "property": "authorizationType",
4910
+ "equals": "BASIC"
4911
+ },
4912
+ "constraints": {
4913
+ "notEmpty": true
4914
+ }
4915
+ },
4916
+ {
4917
+ "label": "Password",
4918
+ "description": "Password for basic authentication",
4919
+ "type": "String",
4920
+ "group": "authorization",
4921
+ "feel": "optional",
4922
+ "binding": {
4923
+ "type": "zeebe:property",
4924
+ "name": "inbound.auth.password"
4925
+ },
4926
+ "condition": {
4927
+ "property": "authorizationType",
4928
+ "equals": "BASIC"
4929
+ },
4930
+ "constraints": {
4931
+ "notEmpty": true
4932
+ }
4933
+ },
4934
+ {
4935
+ "label": "API Key",
4936
+ "description": "Expected API key",
4937
+ "type": "String",
4938
+ "group": "authorization",
4939
+ "feel": "optional",
4940
+ "binding": {
4941
+ "type": "zeebe:property",
4942
+ "name": "inbound.auth.apiKey"
4943
+ },
4944
+ "condition": {
4945
+ "property": "authorizationType",
4946
+ "equals": "APIKEY"
4947
+ },
4948
+ "constraints": {
4949
+ "notEmpty": true
4950
+ }
4951
+ },
4952
+ {
4953
+ "label": "API Key locator",
4954
+ "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>",
4955
+ "type": "String",
4956
+ "group": "authorization",
4957
+ "feel": "required",
4958
+ "binding": {
4959
+ "type": "zeebe:property",
4960
+ "name": "inbound.auth.apiKeyLocator"
4961
+ },
4962
+ "condition": {
4963
+ "property": "authorizationType",
4964
+ "equals": "APIKEY"
4965
+ },
4966
+ "constraints": {
4967
+ "notEmpty": true
4968
+ },
4969
+ "value": "=split(request.headers.authorization, \" \")[2]"
4970
+ },
4434
4971
  {
4435
4972
  "label": "Condition",
4436
4973
  "type": "String",
@@ -4439,7 +4976,7 @@
4439
4976
  "optional": true,
4440
4977
  "binding": {
4441
4978
  "type": "zeebe:property",
4442
- "name": "inbound.activationCondition"
4979
+ "name": "activationCondition"
4443
4980
  },
4444
4981
  "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
4982
  },
@@ -4452,7 +4989,7 @@
4452
4989
  "type": "zeebe:property",
4453
4990
  "name": "resultVariable"
4454
4991
  },
4455
- "description": "Name of variable to store the result of the Connector in"
4992
+ "description": "Name of variable to store the result of the connector in"
4456
4993
  },
4457
4994
  {
4458
4995
  "label": "Result expression",
@@ -4465,13 +5002,37 @@
4465
5002
  "name": "resultExpression"
4466
5003
  },
4467
5004
  "description": "Expression to map the inbound payload to process variables"
5005
+ },
5006
+ {
5007
+ "label": "One time verification response expression",
5008
+ "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>",
5009
+ "type": "Text",
5010
+ "group": "webhookResponse",
5011
+ "feel": "required",
5012
+ "optional": true,
5013
+ "binding": {
5014
+ "type": "zeebe:property",
5015
+ "name": "inbound.verificationExpression"
5016
+ }
5017
+ },
5018
+ {
5019
+ "label": "Response body expression",
5020
+ "type": "Text",
5021
+ "group": "webhookResponse",
5022
+ "feel": "required",
5023
+ "optional": true,
5024
+ "binding": {
5025
+ "type": "zeebe:property",
5026
+ "name": "inbound.responseBodyExpression"
5027
+ },
5028
+ "description": "Specify condition and response"
4468
5029
  }
4469
5030
  ],
4470
5031
  "icon": {
4471
5032
  "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"
4472
5033
  },
4473
5034
  "engines": {
4474
- "camunda": "^8.2"
5035
+ "camunda": "^8.5"
4475
5036
  }
4476
5037
  },
4477
5038
  {
@@ -4489,7 +5050,7 @@
4489
5050
  "listen for event"
4490
5051
  ],
4491
5052
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
4492
- "version": 14,
5053
+ "version": 15,
4493
5054
  "category": {
4494
5055
  "id": "connectors",
4495
5056
  "name": "Connectors"
@@ -4869,27 +5430,27 @@
4869
5430
  "type": "String"
4870
5431
  },
4871
5432
  {
4872
- "id": "inbound.responseExpression",
4873
- "label": "Response expression",
4874
- "description": "Expression used to generate the HTTP response",
5433
+ "id": "inbound.verificationExpression",
5434
+ "label": "One time verification response expression",
5435
+ "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>",
4875
5436
  "optional": true,
4876
5437
  "feel": "required",
4877
5438
  "group": "webhookResponse",
4878
5439
  "binding": {
4879
- "name": "inbound.responseExpression",
5440
+ "name": "inbound.verificationExpression",
4880
5441
  "type": "zeebe:property"
4881
5442
  },
4882
5443
  "type": "Text"
4883
5444
  },
4884
5445
  {
4885
- "id": "inbound.verificationExpression",
4886
- "label": "One time verification response expression",
4887
- "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>",
5446
+ "id": "inbound.responseExpression",
5447
+ "label": "Response expression",
5448
+ "description": "Expression used to generate the HTTP response",
4888
5449
  "optional": true,
4889
5450
  "feel": "required",
4890
5451
  "group": "webhookResponse",
4891
5452
  "binding": {
4892
- "name": "inbound.verificationExpression",
5453
+ "name": "inbound.responseExpression",
4893
5454
  "type": "zeebe:property"
4894
5455
  },
4895
5456
  "type": "Text"