@camunda/connectors-element-templates 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/package.json +2 -2
  2. package/src/connectors.js +12 -2
  3. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +4 -7
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +8 -8
  5. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +8 -8
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +8 -8
  7. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +8 -8
  8. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +9 -12
  9. package/src/element-templates/agenticai-aiagent-job-worker.json +3770 -29
  10. package/src/element-templates/agenticai-aiagent-outbound-connector.json +6274 -2594
  11. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +549 -552
  12. package/src/element-templates/agenticai-mcp-message-start-event.json +122 -0
  13. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +736 -739
  14. package/src/element-templates/asana-connector.json +759 -48
  15. package/src/element-templates/automation-anywhere-outbound-connector.json +1763 -1759
  16. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +431 -0
  17. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +285 -0
  18. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +341 -0
  19. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +316 -0
  20. package/src/element-templates/aws-bedrock-outbound-connector.json +747 -10
  21. package/src/element-templates/aws-comprehend-outbound-connector.json +10 -5
  22. package/src/element-templates/aws-dynamodb-outbound-connector.json +1358 -1358
  23. package/src/element-templates/aws-eventbridge-connector-boundary.json +383 -18
  24. package/src/element-templates/aws-eventbridge-connector-intermediate.json +377 -12
  25. package/src/element-templates/aws-eventbridge-connector-message-start.json +407 -8
  26. package/src/element-templates/aws-eventbridge-connector-receive.json +364 -0
  27. package/src/element-templates/aws-eventbridge-connector-start-event.json +317 -0
  28. package/src/element-templates/aws-eventbridge-outbound-connector.json +300 -295
  29. package/src/element-templates/aws-lambda-outbound-connector.json +238 -234
  30. package/src/element-templates/aws-s3-outbound-connector.json +646 -5
  31. package/src/element-templates/aws-sagemaker-outbound-connector.json +13 -9
  32. package/src/element-templates/aws-sns-inbound-boundary.json +44 -37
  33. package/src/element-templates/aws-sns-inbound-intermediate.json +210 -203
  34. package/src/element-templates/aws-sns-inbound-message-start.json +125 -118
  35. package/src/element-templates/aws-sns-inbound-receive.json +13 -6
  36. package/src/element-templates/aws-sns-inbound-start-event.json +134 -127
  37. package/src/element-templates/aws-sns-outbound-connector.json +581 -577
  38. package/src/element-templates/aws-sqs-boundary-connector.json +453 -449
  39. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +530 -526
  40. package/src/element-templates/aws-sqs-outbound-connector.json +711 -709
  41. package/src/element-templates/aws-sqs-receive-connector.json +15 -11
  42. package/src/element-templates/aws-sqs-start-event-connector.json +213 -205
  43. package/src/element-templates/aws-sqs-start-message.json +461 -457
  44. package/src/element-templates/aws-textract-outbound-connector.json +109 -105
  45. package/src/element-templates/azure-blobstorage-outbound-connector.json +676 -19
  46. package/src/element-templates/azure-open-ai-connector.json +1329 -4
  47. package/src/element-templates/blue-prism-connector.json +569 -24
  48. package/src/element-templates/box-outbound-connector.json +924 -12
  49. package/src/element-templates/csv-outbound-connector.json +13 -5
  50. package/src/element-templates/easy-post-connector.json +1077 -109
  51. package/src/element-templates/email-inbound-connector-boundary.json +32 -24
  52. package/src/element-templates/email-inbound-connector-intermediate.json +32 -24
  53. package/src/element-templates/email-inbound-connector-receive.json +564 -0
  54. package/src/element-templates/email-message-start-event-connector.json +58 -50
  55. package/src/element-templates/email-outbound-connector.json +2116 -243
  56. package/src/element-templates/embeddings-vector-database-outbound-connector.json +3 -6
  57. package/src/element-templates/github-connector.json +15257 -11722
  58. package/src/element-templates/github-webhook-connector-boundary.json +27 -29
  59. package/src/element-templates/github-webhook-connector-intermediate.json +36 -38
  60. package/src/element-templates/github-webhook-connector-message-start.json +11 -13
  61. package/src/element-templates/github-webhook-connector-receive.json +13 -15
  62. package/src/element-templates/github-webhook-connector-start-event.json +54 -56
  63. package/src/element-templates/gitlab-connector.json +4177 -2545
  64. package/src/element-templates/google-cloud-storage-outbound-connector.json +562 -13
  65. package/src/element-templates/google-drive-outbound-connector.json +1386 -766
  66. package/src/element-templates/google-gemini-outbound-connector.json +13 -5
  67. package/src/element-templates/google-maps-platform-connector.json +1059 -30
  68. package/src/element-templates/google-sheets-outbound-connector.json +2449 -1455
  69. package/src/element-templates/graphql-outbound-connector.json +1744 -1735
  70. package/src/element-templates/http-json-connector.json +2982 -2332
  71. package/src/element-templates/http-polling-boundary-catch-event-connector.json +752 -741
  72. package/src/element-templates/http-polling-connector.json +1512 -1501
  73. package/src/element-templates/hubspot-outbound-connector.json +2371 -25
  74. package/src/element-templates/hugging-face-connector.json +234 -3
  75. package/src/element-templates/jdbc-outbound-connector.json +20 -6
  76. package/src/element-templates/kafka-inbound-connector-boundary.json +613 -604
  77. package/src/element-templates/kafka-inbound-connector-intermediate.json +528 -519
  78. package/src/element-templates/kafka-inbound-connector-receive.json +15 -6
  79. package/src/element-templates/kafka-inbound-connector-start-message.json +530 -521
  80. package/src/element-templates/kafka-inbound-connector.json +240 -240
  81. package/src/element-templates/kafka-outbound-connector.json +518 -512
  82. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +18 -6
  83. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +18 -6
  84. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +18 -6
  85. package/src/element-templates/microsoft-office365-mail-connector.json +893 -10
  86. package/src/element-templates/microsoft-teams-outbound-connector.json +5971 -3807
  87. package/src/element-templates/openai-connector.json +550 -87
  88. package/src/element-templates/operate-connector.json +1198 -46
  89. package/src/element-templates/power-automate-connector.json +601 -9
  90. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +444 -435
  91. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +484 -475
  92. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +367 -358
  93. package/src/element-templates/rabbitmq-inbound-connector-receive.json +15 -6
  94. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +479 -470
  95. package/src/element-templates/rabbitmq-outbound-connector.json +356 -350
  96. package/src/element-templates/rpa-connector.json +346 -0
  97. package/src/element-templates/salesforce-connector.json +544 -0
  98. package/src/element-templates/send-message-connector-intermediate-throw-event.json +10 -5
  99. package/src/element-templates/send-message-connector-message-end-event.json +10 -5
  100. package/src/element-templates/send-message-connector-send-task.json +10 -5
  101. package/src/element-templates/sendgrid-outbound-connector.json +945 -337
  102. package/src/element-templates/servicenow-connector.json +971 -3
  103. package/src/element-templates/servicenow-flow-starter-connector.json +8 -3
  104. package/src/element-templates/servicenow-incident-connector.json +980 -3
  105. package/src/element-templates/slack-inbound-boundary.json +490 -192
  106. package/src/element-templates/slack-inbound-intermediate.json +421 -123
  107. package/src/element-templates/slack-inbound-message-start.json +469 -139
  108. package/src/element-templates/slack-inbound-receive.json +297 -0
  109. package/src/element-templates/slack-inbound-start-event.json +216 -211
  110. package/src/element-templates/slack-outbound-connector.json +2451 -753
  111. package/src/element-templates/soap-outbound-connector.json +812 -2
  112. package/src/element-templates/twilio-connector.json +1573 -93
  113. package/src/element-templates/twilio-webhook-boundary-connector.json +19 -10
  114. package/src/element-templates/twilio-webhook-connector.json +243 -13
  115. package/src/element-templates/twilio-webhook-intermediate-connector.json +34 -25
  116. package/src/element-templates/twilio-webhook-message-start-connector.json +312 -0
  117. package/src/element-templates/twilio-webhook-receive-connector.json +11 -2
  118. package/src/element-templates/uipath-connector.json +594 -2
  119. package/src/element-templates/webhook-connector-boundary.json +580 -570
  120. package/src/element-templates/webhook-connector-intermediate.json +1390 -1380
  121. package/src/element-templates/webhook-connector-receive.json +16 -6
  122. package/src/element-templates/webhook-connector-start-event.json +1382 -1375
  123. package/src/element-templates/webhook-connector-start-message.json +1306 -1296
  124. package/src/element-templates/whatsapp-connector.json +343 -9
  125. package/src/element-templates/http-connector.json.json +0 -654
@@ -1,11 +1,14 @@
1
1
  [
2
2
  {
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
- "name": "Webhook Intermediate Catch Event Connector",
4
+ "name": "Webhook Intermediate Event Connector",
5
5
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
6
- "version": 6,
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
+ "metadata": {
8
+ "keywords": []
9
+ },
10
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
11
+ "version": 12,
9
12
  "category": {
10
13
  "id": "connectors",
11
14
  "name": "Connectors"
@@ -28,52 +31,44 @@
28
31
  "id": "authorization",
29
32
  "label": "Authorization"
30
33
  },
34
+ {
35
+ "id": "webhookResponse",
36
+ "label": "Webhook response"
37
+ },
31
38
  {
32
39
  "id": "activation",
33
40
  "label": "Activation"
34
41
  },
35
42
  {
36
- "id": "variable-mapping",
37
- "label": "Variable mapping"
43
+ "id": "correlation",
44
+ "label": "Correlation",
45
+ "tooltip": "Learn more about message correlation in the <a href=\"https://docs.camunda.io/docs/components/concepts/messages/#message-correlation-overview\">documentation</a>."
38
46
  },
39
47
  {
40
- "id": "webhookResponse",
41
- "label": "Webhook response"
48
+ "id": "output",
49
+ "label": "Output mapping"
42
50
  }
43
51
  ],
44
52
  "properties": [
45
53
  {
46
- "type": "Hidden",
47
54
  "value": "io.camunda:webhook:1",
48
55
  "binding": {
49
- "type": "zeebe:property",
50
- "name": "inbound.type"
51
- }
52
- },
53
- {
54
- "type": "Hidden",
55
- "generatedValue": {
56
- "type": "uuid"
56
+ "name": "inbound.type",
57
+ "type": "zeebe:property"
57
58
  },
58
- "binding": {
59
- "type": "bpmn:Message#property",
60
- "name": "name"
61
- }
62
- },
63
- {
64
- "type": "Hidden",
65
- "value": "ConfigurableInboundWebhook",
66
- "binding": {
67
- "type": "zeebe:property",
68
- "name": "inbound.subtype"
69
- }
59
+ "type": "Hidden"
70
60
  },
71
61
  {
72
- "id": "webhookMethod",
62
+ "id": "inbound.method",
73
63
  "label": "Webhook method",
74
- "group": "endpoint",
75
64
  "description": "Select HTTP method",
65
+ "optional": false,
76
66
  "value": "any",
67
+ "group": "endpoint",
68
+ "binding": {
69
+ "name": "inbound.method",
70
+ "type": "zeebe:property"
71
+ },
77
72
  "type": "Dropdown",
78
73
  "choices": [
79
74
  {
@@ -81,50 +76,53 @@
81
76
  "value": "any"
82
77
  },
83
78
  {
84
- "name": "Get",
79
+ "name": "GET",
85
80
  "value": "get"
86
81
  },
87
82
  {
88
- "name": "Post",
83
+ "name": "POST",
89
84
  "value": "post"
90
85
  },
91
86
  {
92
- "name": "Put",
87
+ "name": "PUT",
93
88
  "value": "put"
94
89
  },
95
90
  {
96
- "name": "Delete",
91
+ "name": "DELETE",
97
92
  "value": "delete"
98
93
  }
99
- ],
100
- "binding": {
101
- "type": "zeebe:property",
102
- "name": "inbound.method"
103
- }
94
+ ]
104
95
  },
105
96
  {
97
+ "id": "inbound.context",
106
98
  "label": "Webhook ID",
107
- "type": "String",
108
- "group": "endpoint",
109
- "binding": {
110
- "type": "zeebe:property",
111
- "name": "inbound.context"
112
- },
113
99
  "description": "The webhook ID is a part of the URL",
100
+ "optional": false,
114
101
  "constraints": {
115
102
  "notEmpty": true,
116
103
  "pattern": {
117
104
  "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
118
105
  "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
119
106
  }
120
- }
107
+ },
108
+ "group": "endpoint",
109
+ "binding": {
110
+ "name": "inbound.context",
111
+ "type": "zeebe:property"
112
+ },
113
+ "type": "String"
121
114
  },
122
115
  {
123
- "id": "shouldValidateHmac",
116
+ "id": "inbound.shouldValidateHmac",
124
117
  "label": "HMAC authentication",
125
- "group": "authentication",
126
- "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",
118
+ "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",
119
+ "optional": false,
127
120
  "value": "disabled",
121
+ "group": "authentication",
122
+ "binding": {
123
+ "name": "inbound.shouldValidateHmac",
124
+ "type": "zeebe:property"
125
+ },
128
126
  "type": "Dropdown",
129
127
  "choices": [
130
128
  {
@@ -135,47 +133,60 @@
135
133
  "name": "Disabled",
136
134
  "value": "disabled"
137
135
  }
138
- ],
139
- "binding": {
140
- "type": "zeebe:property",
141
- "name": "inbound.shouldValidateHmac"
142
- }
136
+ ]
143
137
  },
144
138
  {
139
+ "id": "inbound.hmacSecret",
145
140
  "label": "HMAC secret key",
146
141
  "description": "Shared secret key",
147
- "type": "String",
148
- "group": "authentication",
149
142
  "optional": true,
143
+ "feel": "optional",
144
+ "group": "authentication",
150
145
  "binding": {
151
- "type": "zeebe:property",
152
- "name": "inbound.hmacSecret"
146
+ "name": "inbound.hmacSecret",
147
+ "type": "zeebe:property"
153
148
  },
154
149
  "condition": {
155
- "property": "shouldValidateHmac",
156
- "equals": "enabled"
157
- }
150
+ "property": "inbound.shouldValidateHmac",
151
+ "equals": "enabled",
152
+ "type": "simple"
153
+ },
154
+ "type": "String"
158
155
  },
159
156
  {
157
+ "id": "inbound.hmacHeader",
160
158
  "label": "HMAC header",
161
159
  "description": "Name of header attribute that will contain the HMAC value",
162
- "type": "String",
163
- "group": "authentication",
164
160
  "optional": true,
161
+ "feel": "optional",
162
+ "group": "authentication",
165
163
  "binding": {
166
- "type": "zeebe:property",
167
- "name": "inbound.hmacHeader"
164
+ "name": "inbound.hmacHeader",
165
+ "type": "zeebe:property"
168
166
  },
169
167
  "condition": {
170
- "property": "shouldValidateHmac",
171
- "equals": "enabled"
172
- }
168
+ "property": "inbound.shouldValidateHmac",
169
+ "equals": "enabled",
170
+ "type": "simple"
171
+ },
172
+ "type": "String"
173
173
  },
174
174
  {
175
+ "id": "inbound.hmacAlgorithm",
175
176
  "label": "HMAC algorithm",
176
- "group": "authentication",
177
177
  "description": "Choose HMAC algorithm",
178
+ "optional": false,
178
179
  "value": "sha_256",
180
+ "group": "authentication",
181
+ "binding": {
182
+ "name": "inbound.hmacAlgorithm",
183
+ "type": "zeebe:property"
184
+ },
185
+ "condition": {
186
+ "property": "inbound.shouldValidateHmac",
187
+ "equals": "enabled",
188
+ "type": "simple"
189
+ },
179
190
  "type": "Dropdown",
180
191
  "choices": [
181
192
  {
@@ -190,291 +201,344 @@
190
201
  "name": "SHA-512",
191
202
  "value": "sha_512"
192
203
  }
193
- ],
194
- "binding": {
195
- "type": "zeebe:property",
196
- "name": "inbound.hmacAlgorithm"
197
- },
198
- "condition": {
199
- "property": "shouldValidateHmac",
200
- "equals": "enabled"
201
- }
204
+ ]
202
205
  },
203
206
  {
207
+ "id": "inbound.hmacScopes",
204
208
  "label": "HMAC scopes",
205
- "group": "authentication",
206
- "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>",
207
- "feel": "required",
208
- "type": "String",
209
+ "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>",
209
210
  "optional": true,
211
+ "feel": "required",
212
+ "group": "authentication",
210
213
  "binding": {
211
- "type": "zeebe:property",
212
- "name": "inbound.hmacScopes"
214
+ "name": "inbound.hmacScopes",
215
+ "type": "zeebe:property"
213
216
  },
214
217
  "condition": {
215
- "property": "shouldValidateHmac",
216
- "equals": "enabled"
217
- }
218
+ "property": "inbound.shouldValidateHmac",
219
+ "equals": "enabled",
220
+ "type": "simple"
221
+ },
222
+ "type": "String"
218
223
  },
219
224
  {
220
- "id": "authorizationType",
225
+ "id": "inbound.auth.type",
221
226
  "label": "Authorization type",
222
- "group": "authorization",
223
- "description": "Choose the authorization type.",
227
+ "description": "Choose the authorization type",
224
228
  "value": "NONE",
229
+ "group": "authorization",
230
+ "binding": {
231
+ "name": "inbound.auth.type",
232
+ "type": "zeebe:property"
233
+ },
225
234
  "type": "Dropdown",
226
235
  "choices": [
227
236
  {
228
237
  "name": "None",
229
238
  "value": "NONE"
230
239
  },
231
- {
232
- "name": "JWT",
233
- "value": "JWT"
234
- },
235
240
  {
236
241
  "name": "Basic",
237
242
  "value": "BASIC"
238
243
  },
239
244
  {
240
- "name": "API Key",
245
+ "name": "API key",
241
246
  "value": "APIKEY"
247
+ },
248
+ {
249
+ "name": "JWT",
250
+ "value": "JWT"
242
251
  }
243
- ],
244
- "binding": {
245
- "type": "zeebe:property",
246
- "name": "inbound.auth.type"
247
- }
252
+ ]
248
253
  },
249
254
  {
250
- "label": "JWK url",
251
- "description": "Well-known url of JWKs",
252
- "type": "String",
253
- "group": "authorization",
255
+ "id": "inbound.auth.username",
256
+ "label": "Username",
257
+ "description": "Username for basic authentication",
258
+ "optional": false,
254
259
  "feel": "optional",
255
- "optional": true,
260
+ "group": "authorization",
256
261
  "binding": {
257
- "type": "zeebe:property",
258
- "name": "inbound.auth.jwt.jwkUrl"
262
+ "name": "inbound.auth.username",
263
+ "type": "zeebe:property"
259
264
  },
260
265
  "condition": {
261
- "property": "authorizationType",
262
- "equals": "JWT"
263
- }
266
+ "property": "inbound.auth.type",
267
+ "equals": "BASIC",
268
+ "type": "simple"
269
+ },
270
+ "type": "String"
264
271
  },
265
272
  {
266
- "label": "JWT role property expression",
267
- "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>",
268
- "type": "String",
273
+ "id": "inbound.auth.password",
274
+ "label": "Password",
275
+ "description": "Password for basic authentication",
276
+ "optional": false,
277
+ "feel": "optional",
269
278
  "group": "authorization",
270
- "feel": "required",
271
- "optional": true,
272
279
  "binding": {
273
- "type": "zeebe:property",
274
- "name": "inbound.auth.jwt.permissionsExpression"
280
+ "name": "inbound.auth.password",
281
+ "type": "zeebe:property"
275
282
  },
276
283
  "condition": {
277
- "property": "authorizationType",
278
- "equals": "JWT"
279
- }
284
+ "property": "inbound.auth.type",
285
+ "equals": "BASIC",
286
+ "type": "simple"
287
+ },
288
+ "type": "String"
280
289
  },
281
290
  {
282
- "label": "Required roles",
283
- "description": "List of roles to test JWT roles against",
284
- "type": "String",
285
- "group": "authorization",
286
- "feel": "required",
287
- "optional": true,
288
- "binding": {
289
- "type": "zeebe:property",
290
- "name": "inbound.auth.jwt.requiredPermissions"
291
+ "id": "inbound.auth.apiKey",
292
+ "label": "API key",
293
+ "description": "Expected API key",
294
+ "optional": false,
295
+ "feel": "optional",
296
+ "group": "authorization",
297
+ "binding": {
298
+ "name": "inbound.auth.apiKey",
299
+ "type": "zeebe:property"
291
300
  },
292
301
  "condition": {
293
- "property": "authorizationType",
294
- "equals": "JWT"
295
- }
302
+ "property": "inbound.auth.type",
303
+ "equals": "APIKEY",
304
+ "type": "simple"
305
+ },
306
+ "type": "String"
296
307
  },
297
308
  {
298
- "label": "Username",
299
- "description": "Username for basic authentication",
300
- "type": "String",
309
+ "id": "inbound.auth.apiKeyLocator",
310
+ "label": "API key locator",
311
+ "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>",
312
+ "optional": false,
313
+ "value": "=split(request.headers.authorization, \" \")[2]",
314
+ "constraints": {
315
+ "notEmpty": true
316
+ },
317
+ "feel": "required",
301
318
  "group": "authorization",
302
- "feel": "optional",
303
319
  "binding": {
304
- "type": "zeebe:property",
305
- "name": "inbound.auth.username"
320
+ "name": "inbound.auth.apiKeyLocator",
321
+ "type": "zeebe:property"
306
322
  },
307
323
  "condition": {
308
- "property": "authorizationType",
309
- "equals": "BASIC"
324
+ "property": "inbound.auth.type",
325
+ "equals": "APIKEY",
326
+ "type": "simple"
310
327
  },
311
- "constraints": {
312
- "notEmpty": true
313
- }
328
+ "type": "String"
314
329
  },
315
330
  {
316
- "label": "Password",
317
- "description": "Password for basic authentication",
318
- "type": "String",
319
- "group": "authorization",
331
+ "id": "inbound.auth.jwt.jwkUrl",
332
+ "label": "JWK URL",
333
+ "description": "Well-known URL of JWKs",
334
+ "optional": false,
320
335
  "feel": "optional",
336
+ "group": "authorization",
321
337
  "binding": {
322
- "type": "zeebe:property",
323
- "name": "inbound.auth.password"
338
+ "name": "inbound.auth.jwt.jwkUrl",
339
+ "type": "zeebe:property"
324
340
  },
325
341
  "condition": {
326
- "property": "authorizationType",
327
- "equals": "BASIC"
342
+ "property": "inbound.auth.type",
343
+ "equals": "JWT",
344
+ "type": "simple"
328
345
  },
329
- "constraints": {
330
- "notEmpty": true
331
- }
346
+ "type": "String"
332
347
  },
333
348
  {
334
- "label": "API Key",
335
- "description": "Expected API key",
336
- "type": "String",
349
+ "id": "inbound.auth.jwt.permissionsExpression",
350
+ "label": "JWT role property expression",
351
+ "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>",
352
+ "optional": false,
353
+ "feel": "required",
337
354
  "group": "authorization",
338
- "feel": "optional",
339
355
  "binding": {
340
- "type": "zeebe:property",
341
- "name": "inbound.auth.apiKey"
356
+ "name": "inbound.auth.jwt.permissionsExpression",
357
+ "type": "zeebe:property"
342
358
  },
343
359
  "condition": {
344
- "property": "authorizationType",
345
- "equals": "APIKEY"
360
+ "property": "inbound.auth.type",
361
+ "equals": "JWT",
362
+ "type": "simple"
346
363
  },
347
- "constraints": {
348
- "notEmpty": true
349
- }
364
+ "type": "String"
350
365
  },
351
366
  {
352
- "label": "API Key locator",
353
- "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>",
354
- "type": "String",
355
- "group": "authorization",
367
+ "id": "inbound.auth.jwt.requiredPermissions",
368
+ "label": "Required roles",
369
+ "description": "List of roles to test JWT roles against",
370
+ "optional": false,
356
371
  "feel": "required",
372
+ "group": "authorization",
357
373
  "binding": {
358
- "type": "zeebe:property",
359
- "name": "inbound.auth.apiKeyLocator"
374
+ "name": "inbound.auth.jwt.requiredPermissions",
375
+ "type": "zeebe:property"
360
376
  },
361
377
  "condition": {
362
- "property": "authorizationType",
363
- "equals": "APIKEY"
364
- },
365
- "constraints": {
366
- "notEmpty": true
378
+ "property": "inbound.auth.type",
379
+ "equals": "JWT",
380
+ "type": "simple"
367
381
  },
368
- "value": "=split(request.headers.authorization, \" \")[2]"
382
+ "type": "String"
369
383
  },
370
384
  {
371
- "label": "Correlation key (process)",
372
- "type": "String",
373
- "group": "activation",
385
+ "id": "inbound.responseExpression",
386
+ "label": "Response expression",
387
+ "description": "Expression used to generate the HTTP response",
388
+ "optional": true,
374
389
  "feel": "required",
375
- "description": "Sets up the correlation key from process variables",
390
+ "group": "webhookResponse",
376
391
  "binding": {
377
- "type": "bpmn:Message#zeebe:subscription#property",
378
- "name": "correlationKey"
392
+ "name": "inbound.responseExpression",
393
+ "type": "zeebe:property"
379
394
  },
380
- "constraints": {
381
- "notEmpty": true
382
- }
395
+ "type": "Text"
383
396
  },
384
397
  {
385
- "label": "Correlation key (payload)",
386
- "type": "String",
387
- "group": "activation",
398
+ "id": "inbound.verificationExpression",
399
+ "label": "One time verification response expression",
400
+ "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>",
401
+ "optional": true,
388
402
  "feel": "required",
403
+ "group": "webhookResponse",
389
404
  "binding": {
390
- "type": "zeebe:property",
391
- "name": "correlationKeyExpression"
405
+ "name": "inbound.verificationExpression",
406
+ "type": "zeebe:property"
392
407
  },
393
- "description": "Extracts the correlation key from the incoming message payload",
394
- "constraints": {
395
- "notEmpty": true
396
- }
408
+ "type": "Text"
397
409
  },
398
410
  {
399
- "label": "Message ID expression",
400
- "feel": "required",
401
- "type": "String",
411
+ "id": "activationCondition",
412
+ "label": "Activation condition",
413
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
402
414
  "optional": true,
415
+ "feel": "required",
403
416
  "group": "activation",
404
417
  "binding": {
405
- "type": "zeebe:property",
406
- "name": "messageIdExpression"
418
+ "name": "activationCondition",
419
+ "type": "zeebe:property"
407
420
  },
408
- "description": "Expression to extract unique identifier of a message"
421
+ "type": "String"
409
422
  },
410
423
  {
411
- "label": "Condition",
412
- "type": "String",
424
+ "id": "consumeUnmatchedEvents",
425
+ "label": "Consume unmatched events",
426
+ "value": true,
413
427
  "group": "activation",
414
- "feel": "required",
415
- "optional": true,
416
428
  "binding": {
417
- "type": "zeebe:property",
418
- "name": "activationCondition"
429
+ "name": "consumeUnmatchedEvents",
430
+ "type": "zeebe:property"
419
431
  },
420
- "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>"
432
+ "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",
433
+ "type": "Boolean"
421
434
  },
422
435
  {
423
- "label": "Result variable",
424
- "type": "String",
425
- "group": "variable-mapping",
426
- "optional": true,
436
+ "id": "correlationKeyProcess",
437
+ "label": "Correlation key (process)",
438
+ "description": "Sets up the correlation key from process variables",
439
+ "constraints": {
440
+ "notEmpty": true
441
+ },
442
+ "feel": "required",
443
+ "group": "correlation",
427
444
  "binding": {
428
- "type": "zeebe:property",
429
- "name": "resultVariable"
445
+ "name": "correlationKey",
446
+ "type": "bpmn:Message#zeebe:subscription#property"
430
447
  },
431
- "description": "Name of variable to store the result of the connector in"
448
+ "type": "String"
432
449
  },
433
450
  {
434
- "label": "Result expression",
435
- "type": "String",
436
- "group": "variable-mapping",
451
+ "id": "correlationKeyPayload",
452
+ "label": "Correlation key (payload)",
453
+ "description": "Extracts the correlation key from the incoming message payload",
454
+ "constraints": {
455
+ "notEmpty": true
456
+ },
437
457
  "feel": "required",
438
- "optional": true,
458
+ "group": "correlation",
439
459
  "binding": {
440
- "type": "zeebe:property",
441
- "name": "resultExpression"
460
+ "name": "correlationKeyExpression",
461
+ "type": "zeebe:property"
442
462
  },
443
- "description": "Expression to map the inbound payload to process variables"
463
+ "type": "String"
444
464
  },
445
465
  {
446
- "label": "One time verification response expression",
447
- "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>",
448
- "type": "Text",
449
- "group": "webhookResponse",
450
- "feel": "required",
466
+ "id": "messageIdExpression",
467
+ "label": "Message ID expression",
468
+ "description": "Expression to extract unique identifier of a message",
451
469
  "optional": true,
470
+ "feel": "required",
471
+ "group": "correlation",
452
472
  "binding": {
453
- "type": "zeebe:property",
454
- "name": "inbound.verificationExpression"
455
- }
473
+ "name": "messageIdExpression",
474
+ "type": "zeebe:property"
475
+ },
476
+ "type": "String"
456
477
  },
457
478
  {
458
- "label": "Response body expression",
459
- "type": "Text",
460
- "group": "webhookResponse",
461
- "feel": "required",
479
+ "id": "messageTtl",
480
+ "label": "Message TTL",
481
+ "description": "Time-to-live for the message in the broker (ISO-8601 duration)",
462
482
  "optional": true,
483
+ "constraints": {
484
+ "notEmpty": false,
485
+ "pattern": {
486
+ "value": "^(PT.*|)$",
487
+ "message": "must be an ISO-8601 duration"
488
+ }
489
+ },
490
+ "feel": "optional",
491
+ "group": "correlation",
463
492
  "binding": {
464
- "type": "zeebe:property",
465
- "name": "inbound.responseBodyExpression"
493
+ "name": "messageTtl",
494
+ "type": "zeebe:property"
466
495
  },
467
- "description": "Specify condition and response"
468
- }
469
- ],
470
- "icon": {
471
- "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"
472
- },
473
- "engines": {
474
- "camunda": "^8.5"
475
- }
476
- },
477
- {
496
+ "type": "String"
497
+ },
498
+ {
499
+ "id": "messageNameUuid",
500
+ "generatedValue": {
501
+ "type": "uuid"
502
+ },
503
+ "group": "correlation",
504
+ "binding": {
505
+ "name": "name",
506
+ "type": "bpmn:Message#property"
507
+ },
508
+ "type": "Hidden"
509
+ },
510
+ {
511
+ "id": "resultVariable",
512
+ "label": "Result variable",
513
+ "description": "Name of variable to store the response in",
514
+ "group": "output",
515
+ "binding": {
516
+ "name": "resultVariable",
517
+ "type": "zeebe:property"
518
+ },
519
+ "type": "String"
520
+ },
521
+ {
522
+ "id": "resultExpression",
523
+ "label": "Result expression",
524
+ "description": "Expression to map the response into process variables",
525
+ "feel": "required",
526
+ "group": "output",
527
+ "binding": {
528
+ "name": "resultExpression",
529
+ "type": "zeebe:property"
530
+ },
531
+ "type": "Text"
532
+ }
533
+ ],
534
+ "engines": {
535
+ "camunda": "^8.3"
536
+ },
537
+ "icon": {
538
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
539
+ }
540
+ },
541
+ {
478
542
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
479
543
  "name": "Webhook Intermediate Catch Event Connector",
480
544
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
@@ -923,14 +987,11 @@
923
987
  },
924
988
  {
925
989
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
926
- "name": "Webhook Intermediate Event Connector",
990
+ "name": "Webhook Intermediate Catch Event Connector",
927
991
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
992
+ "version": 5,
928
993
  "description": "Configure webhook to receive callbacks",
929
- "metadata": {
930
- "keywords": []
931
- },
932
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
933
- "version": 13,
994
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
934
995
  "category": {
935
996
  "id": "connectors",
936
997
  "name": "Connectors"
@@ -940,9 +1001,6 @@
940
1001
  "value": "bpmn:IntermediateCatchEvent",
941
1002
  "eventDefinition": "bpmn:MessageEventDefinition"
942
1003
  },
943
- "engines": {
944
- "camunda": "^8.3"
945
- },
946
1004
  "groups": [
947
1005
  {
948
1006
  "id": "endpoint",
@@ -956,49 +1014,52 @@
956
1014
  "id": "authorization",
957
1015
  "label": "Authorization"
958
1016
  },
959
- {
960
- "id": "webhookResponse",
961
- "label": "Webhook response"
962
- },
963
1017
  {
964
1018
  "id": "activation",
965
1019
  "label": "Activation"
966
1020
  },
967
1021
  {
968
- "id": "correlation",
969
- "label": "Correlation",
970
- "tooltip": "Learn more about message correlation in the <a href=\"https://docs.camunda.io/docs/components/concepts/messages/#message-correlation-overview\">documentation</a>."
971
- },
972
- {
973
- "id": "deduplication",
974
- "label": "Deduplication",
975
- "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
1022
+ "id": "variable-mapping",
1023
+ "label": "Variable mapping"
976
1024
  },
977
1025
  {
978
- "id": "output",
979
- "label": "Output mapping"
1026
+ "id": "webhookResponse",
1027
+ "label": "Webhook response"
980
1028
  }
981
1029
  ],
982
1030
  "properties": [
983
1031
  {
1032
+ "type": "Hidden",
984
1033
  "value": "io.camunda:webhook:1",
985
1034
  "binding": {
986
- "name": "inbound.type",
987
- "type": "zeebe:property"
1035
+ "type": "zeebe:property",
1036
+ "name": "inbound.type"
1037
+ }
1038
+ },
1039
+ {
1040
+ "type": "Hidden",
1041
+ "generatedValue": {
1042
+ "type": "uuid"
988
1043
  },
989
- "type": "Hidden"
1044
+ "binding": {
1045
+ "type": "bpmn:Message#property",
1046
+ "name": "name"
1047
+ }
990
1048
  },
991
1049
  {
992
- "id": "inbound.method",
1050
+ "type": "Hidden",
1051
+ "value": "ConfigurableInboundWebhook",
1052
+ "binding": {
1053
+ "type": "zeebe:property",
1054
+ "name": "inbound.subtype"
1055
+ }
1056
+ },
1057
+ {
1058
+ "id": "webhookMethod",
993
1059
  "label": "Webhook method",
1060
+ "group": "endpoint",
994
1061
  "description": "Select HTTP method",
995
- "optional": false,
996
1062
  "value": "any",
997
- "group": "endpoint",
998
- "binding": {
999
- "name": "inbound.method",
1000
- "type": "zeebe:property"
1001
- },
1002
1063
  "type": "Dropdown",
1003
1064
  "choices": [
1004
1065
  {
@@ -1006,53 +1067,46 @@
1006
1067
  "value": "any"
1007
1068
  },
1008
1069
  {
1009
- "name": "GET",
1070
+ "name": "Get",
1010
1071
  "value": "get"
1011
1072
  },
1012
1073
  {
1013
- "name": "POST",
1074
+ "name": "Post",
1014
1075
  "value": "post"
1015
1076
  },
1016
1077
  {
1017
- "name": "PUT",
1078
+ "name": "Put",
1018
1079
  "value": "put"
1019
1080
  },
1020
1081
  {
1021
- "name": "DELETE",
1082
+ "name": "Delete",
1022
1083
  "value": "delete"
1023
1084
  }
1024
- ]
1085
+ ],
1086
+ "binding": {
1087
+ "type": "zeebe:property",
1088
+ "name": "inbound.method"
1089
+ }
1025
1090
  },
1026
1091
  {
1027
- "id": "inbound.context",
1028
1092
  "label": "Webhook ID",
1029
- "description": "The webhook ID is a part of the URL",
1030
- "optional": false,
1031
- "constraints": {
1032
- "notEmpty": true,
1033
- "pattern": {
1034
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
1035
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
1036
- }
1037
- },
1093
+ "type": "String",
1038
1094
  "group": "endpoint",
1039
1095
  "binding": {
1040
- "name": "inbound.context",
1041
- "type": "zeebe:property"
1096
+ "type": "zeebe:property",
1097
+ "name": "inbound.context"
1042
1098
  },
1043
- "type": "String"
1099
+ "description": "The webhook ID is a part of the URL",
1100
+ "constraints": {
1101
+ "notEmpty": true
1102
+ }
1044
1103
  },
1045
1104
  {
1046
- "id": "inbound.shouldValidateHmac",
1105
+ "id": "shouldValidateHmac",
1047
1106
  "label": "HMAC authentication",
1048
- "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",
1049
- "optional": false,
1050
- "value": "disabled",
1051
1107
  "group": "authentication",
1052
- "binding": {
1053
- "name": "inbound.shouldValidateHmac",
1054
- "type": "zeebe:property"
1055
- },
1108
+ "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",
1109
+ "value": "disabled",
1056
1110
  "type": "Dropdown",
1057
1111
  "choices": [
1058
1112
  {
@@ -1063,60 +1117,47 @@
1063
1117
  "name": "Disabled",
1064
1118
  "value": "disabled"
1065
1119
  }
1066
- ]
1120
+ ],
1121
+ "binding": {
1122
+ "type": "zeebe:property",
1123
+ "name": "inbound.shouldValidateHmac"
1124
+ }
1067
1125
  },
1068
1126
  {
1069
- "id": "inbound.hmacSecret",
1070
1127
  "label": "HMAC secret key",
1071
1128
  "description": "Shared secret key",
1072
- "optional": true,
1073
- "feel": "optional",
1129
+ "type": "String",
1074
1130
  "group": "authentication",
1131
+ "optional": true,
1075
1132
  "binding": {
1076
- "name": "inbound.hmacSecret",
1077
- "type": "zeebe:property"
1133
+ "type": "zeebe:property",
1134
+ "name": "inbound.hmacSecret"
1078
1135
  },
1079
1136
  "condition": {
1080
- "property": "inbound.shouldValidateHmac",
1081
- "equals": "enabled",
1082
- "type": "simple"
1083
- },
1084
- "type": "String"
1137
+ "property": "shouldValidateHmac",
1138
+ "equals": "enabled"
1139
+ }
1085
1140
  },
1086
1141
  {
1087
- "id": "inbound.hmacHeader",
1088
1142
  "label": "HMAC header",
1089
1143
  "description": "Name of header attribute that will contain the HMAC value",
1090
- "optional": true,
1091
- "feel": "optional",
1144
+ "type": "String",
1092
1145
  "group": "authentication",
1146
+ "optional": true,
1093
1147
  "binding": {
1094
- "name": "inbound.hmacHeader",
1095
- "type": "zeebe:property"
1148
+ "type": "zeebe:property",
1149
+ "name": "inbound.hmacHeader"
1096
1150
  },
1097
1151
  "condition": {
1098
- "property": "inbound.shouldValidateHmac",
1099
- "equals": "enabled",
1100
- "type": "simple"
1101
- },
1102
- "type": "String"
1152
+ "property": "shouldValidateHmac",
1153
+ "equals": "enabled"
1154
+ }
1103
1155
  },
1104
1156
  {
1105
- "id": "inbound.hmacAlgorithm",
1106
1157
  "label": "HMAC algorithm",
1158
+ "group": "authentication",
1107
1159
  "description": "Choose HMAC algorithm",
1108
- "optional": false,
1109
1160
  "value": "sha_256",
1110
- "group": "authentication",
1111
- "binding": {
1112
- "name": "inbound.hmacAlgorithm",
1113
- "type": "zeebe:property"
1114
- },
1115
- "condition": {
1116
- "property": "inbound.shouldValidateHmac",
1117
- "equals": "enabled",
1118
- "type": "simple"
1119
- },
1120
1161
  "type": "Dropdown",
1121
1162
  "choices": [
1122
1163
  {
@@ -1131,411 +1172,300 @@
1131
1172
  "name": "SHA-512",
1132
1173
  "value": "sha_512"
1133
1174
  }
1134
- ]
1175
+ ],
1176
+ "binding": {
1177
+ "type": "zeebe:property",
1178
+ "name": "inbound.hmacAlgorithm"
1179
+ },
1180
+ "condition": {
1181
+ "property": "shouldValidateHmac",
1182
+ "equals": "enabled"
1183
+ }
1135
1184
  },
1136
1185
  {
1137
- "id": "inbound.hmacScopes",
1138
1186
  "label": "HMAC scopes",
1139
- "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>",
1140
- "optional": true,
1141
- "feel": "required",
1142
1187
  "group": "authentication",
1188
+ "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>",
1189
+ "feel": "required",
1190
+ "type": "String",
1191
+ "optional": true,
1143
1192
  "binding": {
1144
- "name": "inbound.hmacScopes",
1145
- "type": "zeebe:property"
1193
+ "type": "zeebe:property",
1194
+ "name": "inbound.hmacScopes"
1146
1195
  },
1147
1196
  "condition": {
1148
- "property": "inbound.shouldValidateHmac",
1149
- "equals": "enabled",
1150
- "type": "simple"
1151
- },
1152
- "type": "String"
1197
+ "property": "shouldValidateHmac",
1198
+ "equals": "enabled"
1199
+ }
1153
1200
  },
1154
1201
  {
1155
- "id": "inbound.auth.type",
1202
+ "id": "authorizationType",
1156
1203
  "label": "Authorization type",
1157
- "description": "Choose the authorization type",
1158
- "value": "NONE",
1159
1204
  "group": "authorization",
1160
- "binding": {
1161
- "name": "inbound.auth.type",
1162
- "type": "zeebe:property"
1163
- },
1205
+ "description": "Choose the authorization type.",
1206
+ "value": "NONE",
1164
1207
  "type": "Dropdown",
1165
1208
  "choices": [
1166
1209
  {
1167
1210
  "name": "None",
1168
1211
  "value": "NONE"
1169
1212
  },
1213
+ {
1214
+ "name": "JWT",
1215
+ "value": "JWT"
1216
+ },
1170
1217
  {
1171
1218
  "name": "Basic",
1172
1219
  "value": "BASIC"
1173
1220
  },
1174
1221
  {
1175
- "name": "API key",
1222
+ "name": "API Key",
1176
1223
  "value": "APIKEY"
1177
- },
1178
- {
1179
- "name": "JWT",
1180
- "value": "JWT"
1181
1224
  }
1182
- ]
1225
+ ],
1226
+ "binding": {
1227
+ "type": "zeebe:property",
1228
+ "name": "inbound.auth.type"
1229
+ }
1183
1230
  },
1184
1231
  {
1185
- "id": "inbound.auth.username",
1186
- "label": "Username",
1187
- "description": "Username for basic authentication",
1188
- "optional": false,
1189
- "feel": "optional",
1232
+ "label": "JWK url",
1233
+ "description": "Well-known url of JWKs",
1234
+ "type": "String",
1190
1235
  "group": "authorization",
1236
+ "feel": "optional",
1237
+ "optional": true,
1191
1238
  "binding": {
1192
- "name": "inbound.auth.username",
1193
- "type": "zeebe:property"
1239
+ "type": "zeebe:property",
1240
+ "name": "inbound.auth.jwt.jwkUrl"
1194
1241
  },
1195
1242
  "condition": {
1196
- "property": "inbound.auth.type",
1197
- "equals": "BASIC",
1198
- "type": "simple"
1199
- },
1200
- "type": "String"
1243
+ "property": "authorizationType",
1244
+ "equals": "JWT"
1245
+ }
1201
1246
  },
1202
1247
  {
1203
- "id": "inbound.auth.password",
1204
- "label": "Password",
1205
- "description": "Password for basic authentication",
1206
- "optional": false,
1207
- "feel": "optional",
1248
+ "label": "JWT role property expression",
1249
+ "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>",
1250
+ "type": "String",
1208
1251
  "group": "authorization",
1252
+ "feel": "required",
1253
+ "optional": true,
1209
1254
  "binding": {
1210
- "name": "inbound.auth.password",
1211
- "type": "zeebe:property"
1255
+ "type": "zeebe:property",
1256
+ "name": "inbound.auth.jwt.permissionsExpression"
1212
1257
  },
1213
1258
  "condition": {
1214
- "property": "inbound.auth.type",
1215
- "equals": "BASIC",
1216
- "type": "simple"
1217
- },
1218
- "type": "String"
1259
+ "property": "authorizationType",
1260
+ "equals": "JWT"
1261
+ }
1219
1262
  },
1220
1263
  {
1221
- "id": "inbound.auth.apiKey",
1222
- "label": "API key",
1223
- "description": "Expected API key",
1224
- "optional": false,
1225
- "feel": "optional",
1264
+ "label": "Required roles",
1265
+ "description": "List of roles to test JWT roles against",
1266
+ "type": "String",
1226
1267
  "group": "authorization",
1268
+ "feel": "required",
1269
+ "optional": true,
1227
1270
  "binding": {
1228
- "name": "inbound.auth.apiKey",
1229
- "type": "zeebe:property"
1271
+ "type": "zeebe:property",
1272
+ "name": "inbound.auth.jwt.requiredPermissions"
1230
1273
  },
1231
1274
  "condition": {
1232
- "property": "inbound.auth.type",
1233
- "equals": "APIKEY",
1234
- "type": "simple"
1235
- },
1236
- "type": "String"
1275
+ "property": "authorizationType",
1276
+ "equals": "JWT"
1277
+ }
1237
1278
  },
1238
1279
  {
1239
- "id": "inbound.auth.apiKeyLocator",
1240
- "label": "API key locator",
1241
- "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>",
1242
- "optional": false,
1243
- "value": "=split(request.headers.authorization, \" \")[2]",
1244
- "constraints": {
1245
- "notEmpty": true
1246
- },
1247
- "feel": "required",
1280
+ "label": "Username",
1281
+ "description": "Username for basic authentication",
1282
+ "type": "String",
1248
1283
  "group": "authorization",
1284
+ "feel": "optional",
1249
1285
  "binding": {
1250
- "name": "inbound.auth.apiKeyLocator",
1251
- "type": "zeebe:property"
1286
+ "type": "zeebe:property",
1287
+ "name": "inbound.auth.username"
1252
1288
  },
1253
1289
  "condition": {
1254
- "property": "inbound.auth.type",
1255
- "equals": "APIKEY",
1256
- "type": "simple"
1290
+ "property": "authorizationType",
1291
+ "equals": "BASIC"
1257
1292
  },
1258
- "type": "String"
1293
+ "constraints": {
1294
+ "notEmpty": true
1295
+ }
1259
1296
  },
1260
1297
  {
1261
- "id": "inbound.auth.jwt.jwkUrl",
1262
- "label": "JWK URL",
1263
- "description": "Well-known URL of JWKs",
1264
- "optional": false,
1265
- "feel": "optional",
1298
+ "label": "Password",
1299
+ "description": "Password for basic authentication",
1300
+ "type": "String",
1266
1301
  "group": "authorization",
1302
+ "feel": "optional",
1267
1303
  "binding": {
1268
- "name": "inbound.auth.jwt.jwkUrl",
1269
- "type": "zeebe:property"
1304
+ "type": "zeebe:property",
1305
+ "name": "inbound.auth.password"
1270
1306
  },
1271
1307
  "condition": {
1272
- "property": "inbound.auth.type",
1273
- "equals": "JWT",
1274
- "type": "simple"
1308
+ "property": "authorizationType",
1309
+ "equals": "BASIC"
1275
1310
  },
1276
- "type": "String"
1311
+ "constraints": {
1312
+ "notEmpty": true
1313
+ }
1277
1314
  },
1278
1315
  {
1279
- "id": "inbound.auth.jwt.permissionsExpression",
1280
- "label": "JWT role property expression",
1281
- "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>",
1282
- "optional": false,
1283
- "feel": "required",
1316
+ "label": "API Key",
1317
+ "description": "Expected API key",
1318
+ "type": "String",
1284
1319
  "group": "authorization",
1320
+ "feel": "optional",
1285
1321
  "binding": {
1286
- "name": "inbound.auth.jwt.permissionsExpression",
1287
- "type": "zeebe:property"
1322
+ "type": "zeebe:property",
1323
+ "name": "inbound.auth.apiKey"
1288
1324
  },
1289
1325
  "condition": {
1290
- "property": "inbound.auth.type",
1291
- "equals": "JWT",
1292
- "type": "simple"
1326
+ "property": "authorizationType",
1327
+ "equals": "APIKEY"
1293
1328
  },
1294
- "type": "String"
1329
+ "constraints": {
1330
+ "notEmpty": true
1331
+ }
1295
1332
  },
1296
1333
  {
1297
- "id": "inbound.auth.jwt.requiredPermissions",
1298
- "label": "Required roles",
1299
- "description": "List of roles to test JWT roles against",
1300
- "optional": false,
1301
- "feel": "required",
1334
+ "label": "API Key locator",
1335
+ "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>",
1336
+ "type": "String",
1302
1337
  "group": "authorization",
1338
+ "feel": "required",
1303
1339
  "binding": {
1304
- "name": "inbound.auth.jwt.requiredPermissions",
1305
- "type": "zeebe:property"
1340
+ "type": "zeebe:property",
1341
+ "name": "inbound.auth.apiKeyLocator"
1306
1342
  },
1307
1343
  "condition": {
1308
- "property": "inbound.auth.type",
1309
- "equals": "JWT",
1310
- "type": "simple"
1344
+ "property": "authorizationType",
1345
+ "equals": "APIKEY"
1311
1346
  },
1312
- "type": "String"
1347
+ "constraints": {
1348
+ "notEmpty": true
1349
+ },
1350
+ "value": "=split(request.headers.authorization, \" \")[2]"
1313
1351
  },
1314
1352
  {
1315
- "id": "inbound.responseExpression",
1316
- "label": "Response expression",
1317
- "description": "Expression used to generate the HTTP response",
1318
- "optional": true,
1353
+ "label": "Correlation key (process)",
1354
+ "type": "String",
1355
+ "group": "activation",
1319
1356
  "feel": "required",
1320
- "group": "webhookResponse",
1357
+ "description": "Sets up the correlation key from process variables",
1321
1358
  "binding": {
1322
- "name": "inbound.responseExpression",
1323
- "type": "zeebe:property"
1359
+ "type": "bpmn:Message#zeebe:subscription#property",
1360
+ "name": "correlationKey"
1324
1361
  },
1325
- "type": "Text"
1362
+ "constraints": {
1363
+ "notEmpty": true
1364
+ }
1326
1365
  },
1327
1366
  {
1328
- "id": "inbound.verificationExpression",
1329
- "label": "One time verification response expression",
1330
- "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>",
1331
- "optional": true,
1367
+ "label": "Correlation key (payload)",
1368
+ "type": "String",
1369
+ "group": "activation",
1332
1370
  "feel": "required",
1333
- "group": "webhookResponse",
1334
1371
  "binding": {
1335
- "name": "inbound.verificationExpression",
1336
- "type": "zeebe:property"
1372
+ "type": "zeebe:property",
1373
+ "name": "correlationKeyExpression"
1337
1374
  },
1338
- "type": "Text"
1375
+ "description": "Extracts the correlation key from the incoming message payload",
1376
+ "constraints": {
1377
+ "notEmpty": true
1378
+ }
1339
1379
  },
1340
1380
  {
1341
- "id": "activationCondition",
1342
- "label": "Activation condition",
1343
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
1344
- "optional": true,
1381
+ "label": "Message ID expression",
1345
1382
  "feel": "required",
1383
+ "type": "String",
1384
+ "optional": true,
1346
1385
  "group": "activation",
1347
1386
  "binding": {
1348
- "name": "activationCondition",
1349
- "type": "zeebe:property"
1387
+ "type": "zeebe:property",
1388
+ "name": "messageIdExpression"
1350
1389
  },
1351
- "type": "String"
1390
+ "description": "Expression to extract unique identifier of a message"
1352
1391
  },
1353
1392
  {
1354
- "id": "consumeUnmatchedEvents",
1355
- "label": "Consume unmatched events",
1356
- "value": true,
1393
+ "label": "Condition",
1394
+ "type": "String",
1357
1395
  "group": "activation",
1396
+ "feel": "required",
1397
+ "optional": true,
1358
1398
  "binding": {
1359
- "name": "consumeUnmatchedEvents",
1360
- "type": "zeebe:property"
1399
+ "type": "zeebe:property",
1400
+ "name": "activationCondition"
1361
1401
  },
1362
- "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",
1363
- "type": "Boolean"
1402
+ "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>"
1364
1403
  },
1365
1404
  {
1366
- "id": "correlationKeyProcess",
1367
- "label": "Correlation key (process)",
1368
- "description": "Sets up the correlation key from process variables",
1369
- "constraints": {
1370
- "notEmpty": true
1371
- },
1372
- "feel": "required",
1373
- "group": "correlation",
1405
+ "label": "Result variable",
1406
+ "type": "String",
1407
+ "group": "variable-mapping",
1408
+ "optional": true,
1374
1409
  "binding": {
1375
- "name": "correlationKey",
1376
- "type": "bpmn:Message#zeebe:subscription#property"
1410
+ "type": "zeebe:property",
1411
+ "name": "resultVariable"
1377
1412
  },
1378
- "type": "String"
1413
+ "description": "Name of variable to store the result of the connector in"
1379
1414
  },
1380
1415
  {
1381
- "id": "correlationKeyPayload",
1382
- "label": "Correlation key (payload)",
1383
- "description": "Extracts the correlation key from the incoming message payload",
1384
- "constraints": {
1385
- "notEmpty": true
1386
- },
1416
+ "label": "Result expression",
1417
+ "type": "String",
1418
+ "group": "variable-mapping",
1387
1419
  "feel": "required",
1388
- "group": "correlation",
1420
+ "optional": true,
1389
1421
  "binding": {
1390
- "name": "correlationKeyExpression",
1391
- "type": "zeebe:property"
1422
+ "type": "zeebe:property",
1423
+ "name": "resultExpression"
1392
1424
  },
1393
- "type": "String"
1425
+ "description": "Expression to map the inbound payload to process variables"
1394
1426
  },
1395
1427
  {
1396
- "id": "messageIdExpression",
1397
- "label": "Message ID expression",
1398
- "description": "Expression to extract unique identifier of a message",
1399
- "optional": true,
1428
+ "label": "One time verification response expression",
1429
+ "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>",
1430
+ "type": "Text",
1431
+ "group": "webhookResponse",
1400
1432
  "feel": "required",
1401
- "group": "correlation",
1402
- "binding": {
1403
- "name": "messageIdExpression",
1404
- "type": "zeebe:property"
1405
- },
1406
- "type": "String"
1407
- },
1408
- {
1409
- "id": "messageTtl",
1410
- "label": "Message TTL",
1411
- "description": "Time-to-live for the message in the broker (ISO-8601 duration)",
1412
1433
  "optional": true,
1413
- "constraints": {
1414
- "notEmpty": false,
1415
- "pattern": {
1416
- "value": "^(PT.*|)$",
1417
- "message": "must be an ISO-8601 duration"
1418
- }
1419
- },
1420
- "feel": "optional",
1421
- "group": "correlation",
1422
- "binding": {
1423
- "name": "messageTtl",
1424
- "type": "zeebe:property"
1425
- },
1426
- "type": "String"
1427
- },
1428
- {
1429
- "id": "messageNameUuid",
1430
- "generatedValue": {
1431
- "type": "uuid"
1432
- },
1433
- "group": "correlation",
1434
- "binding": {
1435
- "name": "name",
1436
- "type": "bpmn:Message#property"
1437
- },
1438
- "type": "Hidden"
1439
- },
1440
- {
1441
- "id": "deduplicationModeManualFlag",
1442
- "label": "Manual mode",
1443
- "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
1444
- "value": false,
1445
- "group": "deduplication",
1446
- "binding": {
1447
- "name": "deduplicationModeManualFlag",
1448
- "type": "zeebe:property"
1449
- },
1450
- "type": "Boolean"
1451
- },
1452
- {
1453
- "id": "deduplicationId",
1454
- "label": "Deduplication ID",
1455
- "constraints": {
1456
- "notEmpty": true,
1457
- "pattern": {
1458
- "value": "^[a-zA-Z0-9_-]+$",
1459
- "message": "can only contain alphanumeric characters, dashes, and underscores"
1460
- }
1461
- },
1462
- "group": "deduplication",
1463
- "binding": {
1464
- "name": "deduplicationId",
1465
- "type": "zeebe:property"
1466
- },
1467
- "condition": {
1468
- "property": "deduplicationModeManualFlag",
1469
- "equals": true,
1470
- "type": "simple"
1471
- },
1472
- "type": "String"
1473
- },
1474
- {
1475
- "id": "deduplicationModeManual",
1476
- "value": "MANUAL",
1477
- "group": "deduplication",
1478
- "binding": {
1479
- "name": "deduplicationMode",
1480
- "type": "zeebe:property"
1481
- },
1482
- "condition": {
1483
- "property": "deduplicationId",
1484
- "isActive": true,
1485
- "type": "simple"
1486
- },
1487
- "type": "Hidden"
1488
- },
1489
- {
1490
- "id": "deduplicationModeAuto",
1491
- "value": "AUTO",
1492
- "group": "deduplication",
1493
- "binding": {
1494
- "name": "deduplicationMode",
1495
- "type": "zeebe:property"
1496
- },
1497
- "condition": {
1498
- "property": "deduplicationId",
1499
- "isActive": false,
1500
- "type": "simple"
1501
- },
1502
- "type": "Hidden"
1503
- },
1504
- {
1505
- "id": "resultVariable",
1506
- "label": "Result variable",
1507
- "description": "Name of variable to store the response in",
1508
- "group": "output",
1509
1434
  "binding": {
1510
- "name": "resultVariable",
1511
- "type": "zeebe:property"
1512
- },
1513
- "type": "String"
1435
+ "type": "zeebe:property",
1436
+ "name": "inbound.verificationExpression"
1437
+ }
1514
1438
  },
1515
1439
  {
1516
- "id": "resultExpression",
1517
- "label": "Result expression",
1518
- "description": "Expression to map the response into process variables",
1440
+ "label": "Response body expression",
1441
+ "type": "Text",
1442
+ "group": "webhookResponse",
1519
1443
  "feel": "required",
1520
- "group": "output",
1444
+ "optional": true,
1521
1445
  "binding": {
1522
- "name": "resultExpression",
1523
- "type": "zeebe:property"
1446
+ "type": "zeebe:property",
1447
+ "name": "inbound.responseBodyExpression"
1524
1448
  },
1525
- "type": "Text"
1449
+ "description": "Specify condition and response"
1526
1450
  }
1527
1451
  ],
1528
1452
  "icon": {
1529
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1453
+ "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"
1454
+ },
1455
+ "engines": {
1456
+ "camunda": "^8.4"
1530
1457
  }
1531
1458
  },
1532
1459
  {
1533
1460
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1534
- "name": "Webhook connector",
1461
+ "name": "Webhook Intermediate Event Connector",
1535
1462
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
1536
- "version": 3,
1537
1463
  "description": "Configure webhook to receive callbacks",
1538
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1464
+ "metadata": {
1465
+ "keywords": []
1466
+ },
1467
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
1468
+ "version": 13,
1539
1469
  "category": {
1540
1470
  "id": "connectors",
1541
1471
  "name": "Connectors"
@@ -1545,6 +1475,9 @@
1545
1475
  "value": "bpmn:IntermediateCatchEvent",
1546
1476
  "eventDefinition": "bpmn:MessageEventDefinition"
1547
1477
  },
1478
+ "engines": {
1479
+ "camunda": "^8.3"
1480
+ },
1548
1481
  "groups": [
1549
1482
  {
1550
1483
  "id": "endpoint",
@@ -1558,48 +1491,49 @@
1558
1491
  "id": "authorization",
1559
1492
  "label": "Authorization"
1560
1493
  },
1494
+ {
1495
+ "id": "webhookResponse",
1496
+ "label": "Webhook response"
1497
+ },
1561
1498
  {
1562
1499
  "id": "activation",
1563
1500
  "label": "Activation"
1564
1501
  },
1565
1502
  {
1566
- "id": "variable-mapping",
1567
- "label": "Variable mapping"
1503
+ "id": "correlation",
1504
+ "label": "Correlation",
1505
+ "tooltip": "Learn more about message correlation in the <a href=\"https://docs.camunda.io/docs/components/concepts/messages/#message-correlation-overview\">documentation</a>."
1506
+ },
1507
+ {
1508
+ "id": "deduplication",
1509
+ "label": "Deduplication",
1510
+ "tooltip": "Deduplication allows you to configure multiple inbound connector elements to reuse the same backend (consumer/thread/endpoint) by sharing the same deduplication ID."
1511
+ },
1512
+ {
1513
+ "id": "output",
1514
+ "label": "Output mapping"
1568
1515
  }
1569
1516
  ],
1570
1517
  "properties": [
1571
1518
  {
1572
- "type": "Hidden",
1573
1519
  "value": "io.camunda:webhook:1",
1574
1520
  "binding": {
1575
- "type": "zeebe:property",
1576
- "name": "inbound.type"
1577
- }
1578
- },
1579
- {
1580
- "type": "Hidden",
1581
- "generatedValue": {
1582
- "type": "uuid"
1521
+ "name": "inbound.type",
1522
+ "type": "zeebe:property"
1583
1523
  },
1584
- "binding": {
1585
- "type": "bpmn:Message#property",
1586
- "name": "name"
1587
- }
1588
- },
1589
- {
1590
- "type": "Hidden",
1591
- "value": "ConfigurableInboundWebhook",
1592
- "binding": {
1593
- "type": "zeebe:property",
1594
- "name": "inbound.subtype"
1595
- }
1524
+ "type": "Hidden"
1596
1525
  },
1597
1526
  {
1598
- "id": "webhookMethod",
1527
+ "id": "inbound.method",
1599
1528
  "label": "Webhook method",
1600
- "group": "endpoint",
1601
1529
  "description": "Select HTTP method",
1530
+ "optional": false,
1602
1531
  "value": "any",
1532
+ "group": "endpoint",
1533
+ "binding": {
1534
+ "name": "inbound.method",
1535
+ "type": "zeebe:property"
1536
+ },
1603
1537
  "type": "Dropdown",
1604
1538
  "choices": [
1605
1539
  {
@@ -1607,46 +1541,53 @@
1607
1541
  "value": "any"
1608
1542
  },
1609
1543
  {
1610
- "name": "Get",
1544
+ "name": "GET",
1611
1545
  "value": "get"
1612
1546
  },
1613
1547
  {
1614
- "name": "Post",
1548
+ "name": "POST",
1615
1549
  "value": "post"
1616
1550
  },
1617
1551
  {
1618
- "name": "Put",
1552
+ "name": "PUT",
1619
1553
  "value": "put"
1620
1554
  },
1621
1555
  {
1622
- "name": "Delete",
1556
+ "name": "DELETE",
1623
1557
  "value": "delete"
1624
1558
  }
1625
- ],
1626
- "binding": {
1627
- "type": "zeebe:property",
1628
- "name": "inbound.method"
1629
- }
1559
+ ]
1630
1560
  },
1631
1561
  {
1562
+ "id": "inbound.context",
1632
1563
  "label": "Webhook ID",
1633
- "type": "String",
1564
+ "description": "The webhook ID is a part of the URL",
1565
+ "optional": false,
1566
+ "constraints": {
1567
+ "notEmpty": true,
1568
+ "pattern": {
1569
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
1570
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
1571
+ }
1572
+ },
1634
1573
  "group": "endpoint",
1635
1574
  "binding": {
1636
- "type": "zeebe:property",
1637
- "name": "inbound.context"
1575
+ "name": "inbound.context",
1576
+ "type": "zeebe:property"
1638
1577
  },
1639
- "description": "The webhook ID is a part of the URL",
1640
- "constraints": {
1641
- "notEmpty": true
1642
- }
1578
+ "type": "String"
1643
1579
  },
1644
1580
  {
1645
- "id": "shouldValidateHmac",
1581
+ "id": "inbound.shouldValidateHmac",
1646
1582
  "label": "HMAC authentication",
1647
- "group": "authentication",
1648
- "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",
1583
+ "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",
1584
+ "optional": false,
1649
1585
  "value": "disabled",
1586
+ "group": "authentication",
1587
+ "binding": {
1588
+ "name": "inbound.shouldValidateHmac",
1589
+ "type": "zeebe:property"
1590
+ },
1650
1591
  "type": "Dropdown",
1651
1592
  "choices": [
1652
1593
  {
@@ -1657,47 +1598,60 @@
1657
1598
  "name": "Disabled",
1658
1599
  "value": "disabled"
1659
1600
  }
1660
- ],
1661
- "binding": {
1662
- "type": "zeebe:property",
1663
- "name": "inbound.shouldValidateHmac"
1664
- }
1601
+ ]
1665
1602
  },
1666
1603
  {
1604
+ "id": "inbound.hmacSecret",
1667
1605
  "label": "HMAC secret key",
1668
1606
  "description": "Shared secret key",
1669
- "type": "String",
1670
- "group": "authentication",
1671
1607
  "optional": true,
1608
+ "feel": "optional",
1609
+ "group": "authentication",
1672
1610
  "binding": {
1673
- "type": "zeebe:property",
1674
- "name": "inbound.hmacSecret"
1611
+ "name": "inbound.hmacSecret",
1612
+ "type": "zeebe:property"
1675
1613
  },
1676
1614
  "condition": {
1677
- "property": "shouldValidateHmac",
1678
- "equals": "enabled"
1679
- }
1615
+ "property": "inbound.shouldValidateHmac",
1616
+ "equals": "enabled",
1617
+ "type": "simple"
1618
+ },
1619
+ "type": "String"
1680
1620
  },
1681
1621
  {
1622
+ "id": "inbound.hmacHeader",
1682
1623
  "label": "HMAC header",
1683
1624
  "description": "Name of header attribute that will contain the HMAC value",
1684
- "type": "String",
1685
- "group": "authentication",
1686
1625
  "optional": true,
1626
+ "feel": "optional",
1627
+ "group": "authentication",
1687
1628
  "binding": {
1688
- "type": "zeebe:property",
1689
- "name": "inbound.hmacHeader"
1629
+ "name": "inbound.hmacHeader",
1630
+ "type": "zeebe:property"
1690
1631
  },
1691
1632
  "condition": {
1692
- "property": "shouldValidateHmac",
1693
- "equals": "enabled"
1694
- }
1633
+ "property": "inbound.shouldValidateHmac",
1634
+ "equals": "enabled",
1635
+ "type": "simple"
1636
+ },
1637
+ "type": "String"
1695
1638
  },
1696
1639
  {
1640
+ "id": "inbound.hmacAlgorithm",
1697
1641
  "label": "HMAC algorithm",
1698
- "group": "authentication",
1699
1642
  "description": "Choose HMAC algorithm",
1643
+ "optional": false,
1700
1644
  "value": "sha_256",
1645
+ "group": "authentication",
1646
+ "binding": {
1647
+ "name": "inbound.hmacAlgorithm",
1648
+ "type": "zeebe:property"
1649
+ },
1650
+ "condition": {
1651
+ "property": "inbound.shouldValidateHmac",
1652
+ "equals": "enabled",
1653
+ "type": "simple"
1654
+ },
1701
1655
  "type": "Dropdown",
1702
1656
  "choices": [
1703
1657
  {
@@ -1712,259 +1666,409 @@
1712
1666
  "name": "SHA-512",
1713
1667
  "value": "sha_512"
1714
1668
  }
1715
- ],
1716
- "binding": {
1717
- "type": "zeebe:property",
1718
- "name": "inbound.hmacAlgorithm"
1719
- },
1720
- "condition": {
1721
- "property": "shouldValidateHmac",
1722
- "equals": "enabled"
1723
- }
1669
+ ]
1724
1670
  },
1725
1671
  {
1672
+ "id": "inbound.hmacScopes",
1726
1673
  "label": "HMAC scopes",
1727
- "group": "authentication",
1728
- "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>",
1729
- "feel": "required",
1730
- "type": "String",
1674
+ "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>",
1731
1675
  "optional": true,
1676
+ "feel": "required",
1677
+ "group": "authentication",
1732
1678
  "binding": {
1733
- "type": "zeebe:property",
1734
- "name": "inbound.hmacScopes"
1679
+ "name": "inbound.hmacScopes",
1680
+ "type": "zeebe:property"
1735
1681
  },
1736
1682
  "condition": {
1737
- "property": "shouldValidateHmac",
1738
- "equals": "enabled"
1739
- }
1683
+ "property": "inbound.shouldValidateHmac",
1684
+ "equals": "enabled",
1685
+ "type": "simple"
1686
+ },
1687
+ "type": "String"
1740
1688
  },
1741
1689
  {
1742
- "id": "authorizationType",
1690
+ "id": "inbound.auth.type",
1743
1691
  "label": "Authorization type",
1744
- "group": "authorization",
1745
- "description": "Choose the authorization type.",
1692
+ "description": "Choose the authorization type",
1746
1693
  "value": "NONE",
1694
+ "group": "authorization",
1695
+ "binding": {
1696
+ "name": "inbound.auth.type",
1697
+ "type": "zeebe:property"
1698
+ },
1747
1699
  "type": "Dropdown",
1748
1700
  "choices": [
1749
1701
  {
1750
1702
  "name": "None",
1751
1703
  "value": "NONE"
1752
1704
  },
1753
- {
1754
- "name": "JWT",
1755
- "value": "JWT"
1756
- },
1757
1705
  {
1758
1706
  "name": "Basic",
1759
1707
  "value": "BASIC"
1760
1708
  },
1761
1709
  {
1762
- "name": "API Key",
1710
+ "name": "API key",
1763
1711
  "value": "APIKEY"
1712
+ },
1713
+ {
1714
+ "name": "JWT",
1715
+ "value": "JWT"
1764
1716
  }
1765
- ],
1766
- "binding": {
1767
- "type": "zeebe:property",
1768
- "name": "inbound.auth.type"
1769
- }
1717
+ ]
1770
1718
  },
1771
1719
  {
1772
- "label": "JWK url",
1773
- "description": "Well-known url of JWKs",
1774
- "type": "String",
1775
- "group": "authorization",
1720
+ "id": "inbound.auth.username",
1721
+ "label": "Username",
1722
+ "description": "Username for basic authentication",
1723
+ "optional": false,
1776
1724
  "feel": "optional",
1777
- "optional": true,
1725
+ "group": "authorization",
1778
1726
  "binding": {
1779
- "type": "zeebe:property",
1780
- "name": "inbound.auth.jwt.jwkUrl"
1727
+ "name": "inbound.auth.username",
1728
+ "type": "zeebe:property"
1781
1729
  },
1782
1730
  "condition": {
1783
- "property": "authorizationType",
1784
- "equals": "JWT"
1785
- }
1731
+ "property": "inbound.auth.type",
1732
+ "equals": "BASIC",
1733
+ "type": "simple"
1734
+ },
1735
+ "type": "String"
1786
1736
  },
1787
1737
  {
1788
- "label": "JWT role property expression",
1789
- "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>",
1790
- "type": "String",
1738
+ "id": "inbound.auth.password",
1739
+ "label": "Password",
1740
+ "description": "Password for basic authentication",
1741
+ "optional": false,
1742
+ "feel": "optional",
1791
1743
  "group": "authorization",
1792
- "feel": "required",
1793
- "optional": true,
1794
1744
  "binding": {
1795
- "type": "zeebe:property",
1796
- "name": "inbound.auth.jwt.permissionsExpression"
1745
+ "name": "inbound.auth.password",
1746
+ "type": "zeebe:property"
1797
1747
  },
1798
1748
  "condition": {
1799
- "property": "authorizationType",
1800
- "equals": "JWT"
1801
- }
1749
+ "property": "inbound.auth.type",
1750
+ "equals": "BASIC",
1751
+ "type": "simple"
1752
+ },
1753
+ "type": "String"
1802
1754
  },
1803
1755
  {
1804
- "label": "Required roles",
1805
- "description": "List of roles to test JWT roles against",
1806
- "type": "String",
1756
+ "id": "inbound.auth.apiKey",
1757
+ "label": "API key",
1758
+ "description": "Expected API key",
1759
+ "optional": false,
1760
+ "feel": "optional",
1807
1761
  "group": "authorization",
1808
- "feel": "required",
1809
- "optional": true,
1810
1762
  "binding": {
1811
- "type": "zeebe:property",
1812
- "name": "inbound.auth.jwt.requiredPermissions"
1763
+ "name": "inbound.auth.apiKey",
1764
+ "type": "zeebe:property"
1813
1765
  },
1814
1766
  "condition": {
1815
- "property": "authorizationType",
1816
- "equals": "JWT"
1817
- }
1767
+ "property": "inbound.auth.type",
1768
+ "equals": "APIKEY",
1769
+ "type": "simple"
1770
+ },
1771
+ "type": "String"
1818
1772
  },
1819
1773
  {
1820
- "label": "Username",
1821
- "description": "Username for basic authentication",
1822
- "type": "String",
1774
+ "id": "inbound.auth.apiKeyLocator",
1775
+ "label": "API key locator",
1776
+ "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>",
1777
+ "optional": false,
1778
+ "value": "=split(request.headers.authorization, \" \")[2]",
1779
+ "constraints": {
1780
+ "notEmpty": true
1781
+ },
1782
+ "feel": "required",
1823
1783
  "group": "authorization",
1824
- "feel": "optional",
1825
1784
  "binding": {
1826
- "type": "zeebe:property",
1827
- "name": "inbound.auth.username"
1785
+ "name": "inbound.auth.apiKeyLocator",
1786
+ "type": "zeebe:property"
1828
1787
  },
1829
1788
  "condition": {
1830
- "property": "authorizationType",
1831
- "equals": "BASIC"
1789
+ "property": "inbound.auth.type",
1790
+ "equals": "APIKEY",
1791
+ "type": "simple"
1832
1792
  },
1833
- "constraints": {
1834
- "notEmpty": true
1835
- }
1793
+ "type": "String"
1836
1794
  },
1837
1795
  {
1838
- "label": "Password",
1839
- "description": "Password for basic authentication",
1840
- "type": "String",
1841
- "group": "authorization",
1796
+ "id": "inbound.auth.jwt.jwkUrl",
1797
+ "label": "JWK URL",
1798
+ "description": "Well-known URL of JWKs",
1799
+ "optional": false,
1842
1800
  "feel": "optional",
1801
+ "group": "authorization",
1843
1802
  "binding": {
1844
- "type": "zeebe:property",
1845
- "name": "inbound.auth.password"
1803
+ "name": "inbound.auth.jwt.jwkUrl",
1804
+ "type": "zeebe:property"
1846
1805
  },
1847
1806
  "condition": {
1848
- "property": "authorizationType",
1849
- "equals": "BASIC"
1807
+ "property": "inbound.auth.type",
1808
+ "equals": "JWT",
1809
+ "type": "simple"
1850
1810
  },
1851
- "constraints": {
1852
- "notEmpty": true
1853
- }
1811
+ "type": "String"
1854
1812
  },
1855
1813
  {
1856
- "label": "API Key",
1857
- "description": "Expected API key",
1858
- "type": "String",
1814
+ "id": "inbound.auth.jwt.permissionsExpression",
1815
+ "label": "JWT role property expression",
1816
+ "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>",
1817
+ "optional": false,
1818
+ "feel": "required",
1859
1819
  "group": "authorization",
1860
- "feel": "optional",
1861
1820
  "binding": {
1862
- "type": "zeebe:property",
1863
- "name": "inbound.auth.apiKey"
1821
+ "name": "inbound.auth.jwt.permissionsExpression",
1822
+ "type": "zeebe:property"
1864
1823
  },
1865
1824
  "condition": {
1866
- "property": "authorizationType",
1867
- "equals": "APIKEY"
1825
+ "property": "inbound.auth.type",
1826
+ "equals": "JWT",
1827
+ "type": "simple"
1868
1828
  },
1869
- "constraints": {
1870
- "notEmpty": true
1871
- }
1829
+ "type": "String"
1872
1830
  },
1873
1831
  {
1874
- "label": "API Key locator",
1875
- "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>",
1876
- "type": "String",
1877
- "group": "authorization",
1832
+ "id": "inbound.auth.jwt.requiredPermissions",
1833
+ "label": "Required roles",
1834
+ "description": "List of roles to test JWT roles against",
1835
+ "optional": false,
1878
1836
  "feel": "required",
1837
+ "group": "authorization",
1879
1838
  "binding": {
1880
- "type": "zeebe:property",
1881
- "name": "inbound.auth.apiKeyLocator"
1882
- },
1839
+ "name": "inbound.auth.jwt.requiredPermissions",
1840
+ "type": "zeebe:property"
1841
+ },
1883
1842
  "condition": {
1884
- "property": "authorizationType",
1885
- "equals": "APIKEY"
1843
+ "property": "inbound.auth.type",
1844
+ "equals": "JWT",
1845
+ "type": "simple"
1886
1846
  },
1887
- "constraints": {
1888
- "notEmpty": true
1847
+ "type": "String"
1848
+ },
1849
+ {
1850
+ "id": "inbound.responseExpression",
1851
+ "label": "Response expression",
1852
+ "description": "Expression used to generate the HTTP response",
1853
+ "optional": true,
1854
+ "feel": "required",
1855
+ "group": "webhookResponse",
1856
+ "binding": {
1857
+ "name": "inbound.responseExpression",
1858
+ "type": "zeebe:property"
1889
1859
  },
1890
- "value": "=split(request.headers.authorization, \" \")[2]"
1860
+ "type": "Text"
1891
1861
  },
1892
1862
  {
1893
- "label": "Correlation key (process)",
1894
- "type": "String",
1895
- "group": "activation",
1863
+ "id": "inbound.verificationExpression",
1864
+ "label": "One time verification response expression",
1865
+ "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>",
1866
+ "optional": true,
1896
1867
  "feel": "required",
1897
- "description": "Sets up the correlation key from process variables",
1868
+ "group": "webhookResponse",
1898
1869
  "binding": {
1899
- "type": "bpmn:Message#zeebe:subscription#property",
1900
- "name": "correlationKey"
1870
+ "name": "inbound.verificationExpression",
1871
+ "type": "zeebe:property"
1901
1872
  },
1902
- "constraints": {
1903
- "notEmpty": true
1904
- }
1873
+ "type": "Text"
1905
1874
  },
1906
1875
  {
1907
- "label": "Correlation key (payload)",
1908
- "type": "String",
1876
+ "id": "activationCondition",
1877
+ "label": "Activation condition",
1878
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
1879
+ "optional": true,
1880
+ "feel": "required",
1909
1881
  "group": "activation",
1882
+ "binding": {
1883
+ "name": "activationCondition",
1884
+ "type": "zeebe:property"
1885
+ },
1886
+ "type": "String"
1887
+ },
1888
+ {
1889
+ "id": "consumeUnmatchedEvents",
1890
+ "label": "Consume unmatched events",
1891
+ "value": true,
1892
+ "group": "activation",
1893
+ "binding": {
1894
+ "name": "consumeUnmatchedEvents",
1895
+ "type": "zeebe:property"
1896
+ },
1897
+ "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",
1898
+ "type": "Boolean"
1899
+ },
1900
+ {
1901
+ "id": "correlationKeyProcess",
1902
+ "label": "Correlation key (process)",
1903
+ "description": "Sets up the correlation key from process variables",
1904
+ "constraints": {
1905
+ "notEmpty": true
1906
+ },
1910
1907
  "feel": "required",
1908
+ "group": "correlation",
1911
1909
  "binding": {
1912
- "type": "zeebe:property",
1913
- "name": "correlationKeyExpression"
1910
+ "name": "correlationKey",
1911
+ "type": "bpmn:Message#zeebe:subscription#property"
1914
1912
  },
1913
+ "type": "String"
1914
+ },
1915
+ {
1916
+ "id": "correlationKeyPayload",
1917
+ "label": "Correlation key (payload)",
1915
1918
  "description": "Extracts the correlation key from the incoming message payload",
1916
1919
  "constraints": {
1917
1920
  "notEmpty": true
1918
- }
1921
+ },
1922
+ "feel": "required",
1923
+ "group": "correlation",
1924
+ "binding": {
1925
+ "name": "correlationKeyExpression",
1926
+ "type": "zeebe:property"
1927
+ },
1928
+ "type": "String"
1919
1929
  },
1920
1930
  {
1921
- "label": "Condition",
1922
- "type": "String",
1923
- "group": "activation",
1931
+ "id": "messageIdExpression",
1932
+ "label": "Message ID expression",
1933
+ "description": "Expression to extract unique identifier of a message",
1934
+ "optional": true,
1924
1935
  "feel": "required",
1936
+ "group": "correlation",
1937
+ "binding": {
1938
+ "name": "messageIdExpression",
1939
+ "type": "zeebe:property"
1940
+ },
1941
+ "type": "String"
1942
+ },
1943
+ {
1944
+ "id": "messageTtl",
1945
+ "label": "Message TTL",
1946
+ "description": "Time-to-live for the message in the broker (ISO-8601 duration)",
1925
1947
  "optional": true,
1948
+ "constraints": {
1949
+ "notEmpty": false,
1950
+ "pattern": {
1951
+ "value": "^(PT.*|)$",
1952
+ "message": "must be an ISO-8601 duration"
1953
+ }
1954
+ },
1955
+ "feel": "optional",
1956
+ "group": "correlation",
1926
1957
  "binding": {
1927
- "type": "zeebe:property",
1928
- "name": "activationCondition"
1958
+ "name": "messageTtl",
1959
+ "type": "zeebe:property"
1929
1960
  },
1930
- "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>"
1961
+ "type": "String"
1962
+ },
1963
+ {
1964
+ "id": "messageNameUuid",
1965
+ "generatedValue": {
1966
+ "type": "uuid"
1967
+ },
1968
+ "group": "correlation",
1969
+ "binding": {
1970
+ "name": "name",
1971
+ "type": "bpmn:Message#property"
1972
+ },
1973
+ "type": "Hidden"
1974
+ },
1975
+ {
1976
+ "id": "deduplicationModeManualFlag",
1977
+ "label": "Manual mode",
1978
+ "description": "By default, similar connectors receive the same deduplication ID. Customize by activating manual mode",
1979
+ "value": false,
1980
+ "group": "deduplication",
1981
+ "binding": {
1982
+ "name": "deduplicationModeManualFlag",
1983
+ "type": "zeebe:property"
1984
+ },
1985
+ "type": "Boolean"
1986
+ },
1987
+ {
1988
+ "id": "deduplicationId",
1989
+ "label": "Deduplication ID",
1990
+ "constraints": {
1991
+ "notEmpty": true,
1992
+ "pattern": {
1993
+ "value": "^[a-zA-Z0-9_-]+$",
1994
+ "message": "can only contain alphanumeric characters, dashes, and underscores"
1995
+ }
1996
+ },
1997
+ "group": "deduplication",
1998
+ "binding": {
1999
+ "name": "deduplicationId",
2000
+ "type": "zeebe:property"
2001
+ },
2002
+ "condition": {
2003
+ "property": "deduplicationModeManualFlag",
2004
+ "equals": true,
2005
+ "type": "simple"
2006
+ },
2007
+ "type": "String"
2008
+ },
2009
+ {
2010
+ "id": "deduplicationModeManual",
2011
+ "value": "MANUAL",
2012
+ "group": "deduplication",
2013
+ "binding": {
2014
+ "name": "deduplicationMode",
2015
+ "type": "zeebe:property"
2016
+ },
2017
+ "condition": {
2018
+ "property": "deduplicationId",
2019
+ "isActive": true,
2020
+ "type": "simple"
2021
+ },
2022
+ "type": "Hidden"
2023
+ },
2024
+ {
2025
+ "id": "deduplicationModeAuto",
2026
+ "value": "AUTO",
2027
+ "group": "deduplication",
2028
+ "binding": {
2029
+ "name": "deduplicationMode",
2030
+ "type": "zeebe:property"
2031
+ },
2032
+ "condition": {
2033
+ "property": "deduplicationId",
2034
+ "isActive": false,
2035
+ "type": "simple"
2036
+ },
2037
+ "type": "Hidden"
1931
2038
  },
1932
2039
  {
2040
+ "id": "resultVariable",
1933
2041
  "label": "Result variable",
1934
- "type": "String",
1935
- "group": "variable-mapping",
1936
- "optional": true,
2042
+ "description": "Name of variable to store the response in",
2043
+ "group": "output",
1937
2044
  "binding": {
1938
- "type": "zeebe:property",
1939
- "name": "resultVariable"
2045
+ "name": "resultVariable",
2046
+ "type": "zeebe:property"
1940
2047
  },
1941
- "description": "Name of variable to store the result of the connector in"
2048
+ "type": "String"
1942
2049
  },
1943
2050
  {
2051
+ "id": "resultExpression",
1944
2052
  "label": "Result expression",
1945
- "type": "String",
1946
- "group": "variable-mapping",
2053
+ "description": "Expression to map the response into process variables",
1947
2054
  "feel": "required",
1948
- "optional": true,
2055
+ "group": "output",
1949
2056
  "binding": {
1950
- "type": "zeebe:property",
1951
- "name": "resultExpression"
2057
+ "name": "resultExpression",
2058
+ "type": "zeebe:property"
1952
2059
  },
1953
- "description": "Expression to map the inbound payload to process variables"
2060
+ "type": "Text"
1954
2061
  }
1955
2062
  ],
1956
2063
  "icon": {
1957
- "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"
1958
- },
1959
- "engines": {
1960
- "camunda": "^8.2"
2064
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1961
2065
  }
1962
2066
  },
1963
2067
  {
1964
2068
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1965
2069
  "name": "Webhook Intermediate Catch Event Connector",
1966
2070
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
1967
- "version": 5,
2071
+ "version": 6,
1968
2072
  "description": "Configure webhook to receive callbacks",
1969
2073
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1970
2074
  "category": {
@@ -2073,7 +2177,11 @@
2073
2177
  },
2074
2178
  "description": "The webhook ID is a part of the URL",
2075
2179
  "constraints": {
2076
- "notEmpty": true
2180
+ "notEmpty": true,
2181
+ "pattern": {
2182
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
2183
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
2184
+ }
2077
2185
  }
2078
2186
  },
2079
2187
  {
@@ -2428,16 +2536,16 @@
2428
2536
  "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"
2429
2537
  },
2430
2538
  "engines": {
2431
- "camunda": "^8.4"
2539
+ "camunda": "^8.5"
2432
2540
  }
2433
2541
  },
2434
2542
  {
2435
2543
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2436
- "name": "Webhook connector",
2544
+ "name": "Webhook Intermediate Event Connector",
2437
2545
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
2438
- "version": 2,
2439
2546
  "description": "Configure webhook to receive callbacks",
2440
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2547
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
2548
+ "version": 11,
2441
2549
  "category": {
2442
2550
  "id": "connectors",
2443
2551
  "name": "Connectors"
@@ -2453,230 +2561,8 @@
2453
2561
  "label": "Webhook configuration"
2454
2562
  },
2455
2563
  {
2456
- "id": "activation",
2457
- "label": "Activation"
2458
- },
2459
- {
2460
- "id": "variable-mapping",
2461
- "label": "Variable mapping"
2462
- }
2463
- ],
2464
- "properties": [
2465
- {
2466
- "type": "Hidden",
2467
- "value": "io.camunda:webhook:1",
2468
- "binding": {
2469
- "type": "zeebe:property",
2470
- "name": "inbound.type"
2471
- }
2472
- },
2473
- {
2474
- "type": "Hidden",
2475
- "generatedValue": {
2476
- "type": "uuid"
2477
- },
2478
- "binding": {
2479
- "type": "bpmn:Message#property",
2480
- "name": "name"
2481
- }
2482
- },
2483
- {
2484
- "type": "Hidden",
2485
- "value": "ConfigurableInboundWebhook",
2486
- "binding": {
2487
- "type": "zeebe:property",
2488
- "name": "inbound.subtype"
2489
- }
2490
- },
2491
- {
2492
- "label": "Webhook ID",
2493
- "type": "String",
2494
- "group": "endpoint",
2495
- "binding": {
2496
- "type": "zeebe:property",
2497
- "name": "inbound.context"
2498
- },
2499
- "description": "The webhook ID is a part of the URL",
2500
- "constraints": {
2501
- "notEmpty": true
2502
- }
2503
- },
2504
- {
2505
- "id": "shouldValidateHmac",
2506
- "label": "HMAC authentication",
2507
- "group": "endpoint",
2508
- "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",
2509
- "value": "disabled",
2510
- "type": "Dropdown",
2511
- "choices": [
2512
- {
2513
- "name": "Enabled",
2514
- "value": "enabled"
2515
- },
2516
- {
2517
- "name": "Disabled",
2518
- "value": "disabled"
2519
- }
2520
- ],
2521
- "binding": {
2522
- "type": "zeebe:property",
2523
- "name": "inbound.shouldValidateHmac"
2524
- }
2525
- },
2526
- {
2527
- "label": "HMAC secret key",
2528
- "description": "Shared secret key",
2529
- "type": "String",
2530
- "group": "endpoint",
2531
- "optional": true,
2532
- "binding": {
2533
- "type": "zeebe:property",
2534
- "name": "inbound.hmacSecret"
2535
- },
2536
- "condition": {
2537
- "property": "shouldValidateHmac",
2538
- "equals": "enabled"
2539
- }
2540
- },
2541
- {
2542
- "label": "HMAC header",
2543
- "description": "Name of header attribute that will contain the HMAC value",
2544
- "type": "String",
2545
- "group": "endpoint",
2546
- "optional": true,
2547
- "binding": {
2548
- "type": "zeebe:property",
2549
- "name": "inbound.hmacHeader"
2550
- },
2551
- "condition": {
2552
- "property": "shouldValidateHmac",
2553
- "equals": "enabled"
2554
- }
2555
- },
2556
- {
2557
- "label": "HMAC algorithm",
2558
- "group": "endpoint",
2559
- "description": "Choose HMAC algorithm",
2560
- "value": "sha_256",
2561
- "type": "Dropdown",
2562
- "choices": [
2563
- {
2564
- "name": "SHA-1",
2565
- "value": "sha_1"
2566
- },
2567
- {
2568
- "name": "SHA-256",
2569
- "value": "sha_256"
2570
- },
2571
- {
2572
- "name": "SHA-512",
2573
- "value": "sha_512"
2574
- }
2575
- ],
2576
- "binding": {
2577
- "type": "zeebe:property",
2578
- "name": "inbound.hmacAlgorithm"
2579
- },
2580
- "condition": {
2581
- "property": "shouldValidateHmac",
2582
- "equals": "enabled"
2583
- }
2584
- },
2585
- {
2586
- "label": "Correlation key (process)",
2587
- "type": "String",
2588
- "group": "activation",
2589
- "feel": "required",
2590
- "description": "Sets up the correlation key from process variables",
2591
- "binding": {
2592
- "type": "bpmn:Message#zeebe:subscription#property",
2593
- "name": "correlationKey"
2594
- },
2595
- "constraints": {
2596
- "notEmpty": true
2597
- }
2598
- },
2599
- {
2600
- "label": "Correlation key (payload)",
2601
- "type": "String",
2602
- "group": "activation",
2603
- "feel": "required",
2604
- "binding": {
2605
- "type": "zeebe:property",
2606
- "name": "correlationKeyExpression"
2607
- },
2608
- "description": "Extracts the correlation key from the incoming message payload",
2609
- "constraints": {
2610
- "notEmpty": true
2611
- }
2612
- },
2613
- {
2614
- "label": "Condition",
2615
- "type": "String",
2616
- "group": "activation",
2617
- "feel": "required",
2618
- "optional": true,
2619
- "binding": {
2620
- "type": "zeebe:property",
2621
- "name": "activationCondition"
2622
- },
2623
- "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>"
2624
- },
2625
- {
2626
- "label": "Result variable",
2627
- "type": "String",
2628
- "group": "variable-mapping",
2629
- "optional": true,
2630
- "binding": {
2631
- "type": "zeebe:property",
2632
- "name": "resultVariable"
2633
- },
2634
- "description": "Name of variable to store the result of the connector in"
2635
- },
2636
- {
2637
- "label": "Result expression",
2638
- "type": "String",
2639
- "group": "variable-mapping",
2640
- "feel": "required",
2641
- "optional": true,
2642
- "binding": {
2643
- "type": "zeebe:property",
2644
- "name": "resultExpression"
2645
- },
2646
- "description": "Expression to map the inbound payload to process variables"
2647
- }
2648
- ],
2649
- "icon": {
2650
- "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"
2651
- },
2652
- "engines": {
2653
- "camunda": "^8.2"
2654
- }
2655
- },
2656
- {
2657
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2658
- "name": "Webhook Intermediate Event Connector",
2659
- "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
2660
- "description": "Configure webhook to receive callbacks",
2661
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
2662
- "version": 11,
2663
- "category": {
2664
- "id": "connectors",
2665
- "name": "Connectors"
2666
- },
2667
- "appliesTo": ["bpmn:IntermediateCatchEvent", "bpmn:IntermediateThrowEvent"],
2668
- "elementType": {
2669
- "value": "bpmn:IntermediateCatchEvent",
2670
- "eventDefinition": "bpmn:MessageEventDefinition"
2671
- },
2672
- "groups": [
2673
- {
2674
- "id": "endpoint",
2675
- "label": "Webhook configuration"
2676
- },
2677
- {
2678
- "id": "authentication",
2679
- "label": "Authentication"
2564
+ "id": "authentication",
2565
+ "label": "Authentication"
2680
2566
  },
2681
2567
  {
2682
2568
  "id": "authorization",
@@ -3191,11 +3077,11 @@
3191
3077
  },
3192
3078
  {
3193
3079
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3194
- "name": "Webhook Intermediate Event Connector",
3080
+ "name": "Webhook connector",
3195
3081
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
3082
+ "version": 3,
3196
3083
  "description": "Configure webhook to receive callbacks",
3197
3084
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3198
- "version": 10,
3199
3085
  "category": {
3200
3086
  "id": "connectors",
3201
3087
  "name": "Connectors"
@@ -3218,43 +3104,48 @@
3218
3104
  "id": "authorization",
3219
3105
  "label": "Authorization"
3220
3106
  },
3221
- {
3222
- "id": "webhookResponse",
3223
- "label": "Webhook response"
3224
- },
3225
3107
  {
3226
3108
  "id": "activation",
3227
3109
  "label": "Activation"
3228
3110
  },
3229
3111
  {
3230
- "id": "correlation",
3231
- "label": "Correlation"
3232
- },
3233
- {
3234
- "id": "output",
3235
- "label": "Output mapping"
3112
+ "id": "variable-mapping",
3113
+ "label": "Variable mapping"
3236
3114
  }
3237
3115
  ],
3238
3116
  "properties": [
3239
3117
  {
3118
+ "type": "Hidden",
3240
3119
  "value": "io.camunda:webhook:1",
3241
3120
  "binding": {
3242
- "name": "inbound.type",
3243
- "type": "zeebe:property"
3121
+ "type": "zeebe:property",
3122
+ "name": "inbound.type"
3123
+ }
3124
+ },
3125
+ {
3126
+ "type": "Hidden",
3127
+ "generatedValue": {
3128
+ "type": "uuid"
3244
3129
  },
3245
- "type": "Hidden"
3130
+ "binding": {
3131
+ "type": "bpmn:Message#property",
3132
+ "name": "name"
3133
+ }
3246
3134
  },
3247
3135
  {
3248
- "id": "inbound.method",
3249
- "label": "Webhook method",
3250
- "description": "Select HTTP method",
3251
- "optional": false,
3252
- "value": "any",
3253
- "group": "endpoint",
3136
+ "type": "Hidden",
3137
+ "value": "ConfigurableInboundWebhook",
3254
3138
  "binding": {
3255
- "name": "inbound.method",
3256
- "type": "zeebe:property"
3257
- },
3139
+ "type": "zeebe:property",
3140
+ "name": "inbound.subtype"
3141
+ }
3142
+ },
3143
+ {
3144
+ "id": "webhookMethod",
3145
+ "label": "Webhook method",
3146
+ "group": "endpoint",
3147
+ "description": "Select HTTP method",
3148
+ "value": "any",
3258
3149
  "type": "Dropdown",
3259
3150
  "choices": [
3260
3151
  {
@@ -3262,53 +3153,46 @@
3262
3153
  "value": "any"
3263
3154
  },
3264
3155
  {
3265
- "name": "GET",
3156
+ "name": "Get",
3266
3157
  "value": "get"
3267
3158
  },
3268
3159
  {
3269
- "name": "POST",
3160
+ "name": "Post",
3270
3161
  "value": "post"
3271
3162
  },
3272
3163
  {
3273
- "name": "PUT",
3164
+ "name": "Put",
3274
3165
  "value": "put"
3275
3166
  },
3276
3167
  {
3277
- "name": "DELETE",
3168
+ "name": "Delete",
3278
3169
  "value": "delete"
3279
3170
  }
3280
- ]
3171
+ ],
3172
+ "binding": {
3173
+ "type": "zeebe:property",
3174
+ "name": "inbound.method"
3175
+ }
3281
3176
  },
3282
3177
  {
3283
- "id": "inbound.context",
3284
3178
  "label": "Webhook ID",
3285
- "description": "The webhook ID is a part of the URL",
3286
- "optional": false,
3287
- "constraints": {
3288
- "notEmpty": true,
3289
- "pattern": {
3290
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
3291
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
3292
- }
3293
- },
3179
+ "type": "String",
3294
3180
  "group": "endpoint",
3295
3181
  "binding": {
3296
- "name": "inbound.context",
3297
- "type": "zeebe:property"
3182
+ "type": "zeebe:property",
3183
+ "name": "inbound.context"
3298
3184
  },
3299
- "type": "String"
3185
+ "description": "The webhook ID is a part of the URL",
3186
+ "constraints": {
3187
+ "notEmpty": true
3188
+ }
3300
3189
  },
3301
3190
  {
3302
- "id": "inbound.shouldValidateHmac",
3191
+ "id": "shouldValidateHmac",
3303
3192
  "label": "HMAC authentication",
3193
+ "group": "authentication",
3304
3194
  "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",
3305
- "optional": false,
3306
3195
  "value": "disabled",
3307
- "group": "authentication",
3308
- "binding": {
3309
- "name": "inbound.shouldValidateHmac",
3310
- "type": "zeebe:property"
3311
- },
3312
3196
  "type": "Dropdown",
3313
3197
  "choices": [
3314
3198
  {
@@ -3319,60 +3203,47 @@
3319
3203
  "name": "Disabled",
3320
3204
  "value": "disabled"
3321
3205
  }
3322
- ]
3206
+ ],
3207
+ "binding": {
3208
+ "type": "zeebe:property",
3209
+ "name": "inbound.shouldValidateHmac"
3210
+ }
3323
3211
  },
3324
3212
  {
3325
- "id": "inbound.hmacSecret",
3326
3213
  "label": "HMAC secret key",
3327
3214
  "description": "Shared secret key",
3328
- "optional": true,
3329
- "feel": "optional",
3215
+ "type": "String",
3330
3216
  "group": "authentication",
3217
+ "optional": true,
3331
3218
  "binding": {
3332
- "name": "inbound.hmacSecret",
3333
- "type": "zeebe:property"
3219
+ "type": "zeebe:property",
3220
+ "name": "inbound.hmacSecret"
3334
3221
  },
3335
3222
  "condition": {
3336
- "property": "inbound.shouldValidateHmac",
3337
- "equals": "enabled",
3338
- "type": "simple"
3339
- },
3340
- "type": "String"
3223
+ "property": "shouldValidateHmac",
3224
+ "equals": "enabled"
3225
+ }
3341
3226
  },
3342
3227
  {
3343
- "id": "inbound.hmacHeader",
3344
3228
  "label": "HMAC header",
3345
3229
  "description": "Name of header attribute that will contain the HMAC value",
3346
- "optional": true,
3347
- "feel": "optional",
3230
+ "type": "String",
3348
3231
  "group": "authentication",
3232
+ "optional": true,
3349
3233
  "binding": {
3350
- "name": "inbound.hmacHeader",
3351
- "type": "zeebe:property"
3234
+ "type": "zeebe:property",
3235
+ "name": "inbound.hmacHeader"
3352
3236
  },
3353
3237
  "condition": {
3354
- "property": "inbound.shouldValidateHmac",
3355
- "equals": "enabled",
3356
- "type": "simple"
3357
- },
3358
- "type": "String"
3238
+ "property": "shouldValidateHmac",
3239
+ "equals": "enabled"
3240
+ }
3359
3241
  },
3360
3242
  {
3361
- "id": "inbound.hmacAlgorithm",
3362
3243
  "label": "HMAC algorithm",
3244
+ "group": "authentication",
3363
3245
  "description": "Choose HMAC algorithm",
3364
- "optional": false,
3365
3246
  "value": "sha_256",
3366
- "group": "authentication",
3367
- "binding": {
3368
- "name": "inbound.hmacAlgorithm",
3369
- "type": "zeebe:property"
3370
- },
3371
- "condition": {
3372
- "property": "inbound.shouldValidateHmac",
3373
- "equals": "enabled",
3374
- "type": "simple"
3375
- },
3376
3247
  "type": "Dropdown",
3377
3248
  "choices": [
3378
3249
  {
@@ -3387,309 +3258,474 @@
3387
3258
  "name": "SHA-512",
3388
3259
  "value": "sha_512"
3389
3260
  }
3390
- ]
3261
+ ],
3262
+ "binding": {
3263
+ "type": "zeebe:property",
3264
+ "name": "inbound.hmacAlgorithm"
3265
+ },
3266
+ "condition": {
3267
+ "property": "shouldValidateHmac",
3268
+ "equals": "enabled"
3269
+ }
3391
3270
  },
3392
3271
  {
3393
- "id": "inbound.hmacScopes",
3394
3272
  "label": "HMAC scopes",
3273
+ "group": "authentication",
3395
3274
  "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>",
3396
- "optional": true,
3397
3275
  "feel": "required",
3398
- "group": "authentication",
3276
+ "type": "String",
3277
+ "optional": true,
3399
3278
  "binding": {
3400
- "name": "inbound.hmacScopes",
3401
- "type": "zeebe:property"
3279
+ "type": "zeebe:property",
3280
+ "name": "inbound.hmacScopes"
3402
3281
  },
3403
3282
  "condition": {
3404
- "property": "inbound.shouldValidateHmac",
3405
- "equals": "enabled",
3406
- "type": "simple"
3407
- },
3408
- "type": "String"
3283
+ "property": "shouldValidateHmac",
3284
+ "equals": "enabled"
3285
+ }
3409
3286
  },
3410
3287
  {
3411
- "id": "inbound.auth.type",
3288
+ "id": "authorizationType",
3412
3289
  "label": "Authorization type",
3413
- "description": "Choose the authorization type",
3414
- "value": "NONE",
3415
3290
  "group": "authorization",
3416
- "binding": {
3417
- "name": "inbound.auth.type",
3418
- "type": "zeebe:property"
3419
- },
3291
+ "description": "Choose the authorization type.",
3292
+ "value": "NONE",
3420
3293
  "type": "Dropdown",
3421
3294
  "choices": [
3422
3295
  {
3423
3296
  "name": "None",
3424
3297
  "value": "NONE"
3425
3298
  },
3299
+ {
3300
+ "name": "JWT",
3301
+ "value": "JWT"
3302
+ },
3426
3303
  {
3427
3304
  "name": "Basic",
3428
3305
  "value": "BASIC"
3429
3306
  },
3430
3307
  {
3431
- "name": "API key",
3308
+ "name": "API Key",
3432
3309
  "value": "APIKEY"
3433
- },
3434
- {
3435
- "name": "JWT",
3436
- "value": "JWT"
3437
3310
  }
3438
- ]
3311
+ ],
3312
+ "binding": {
3313
+ "type": "zeebe:property",
3314
+ "name": "inbound.auth.type"
3315
+ }
3316
+ },
3317
+ {
3318
+ "label": "JWK url",
3319
+ "description": "Well-known url of JWKs",
3320
+ "type": "String",
3321
+ "group": "authorization",
3322
+ "feel": "optional",
3323
+ "optional": true,
3324
+ "binding": {
3325
+ "type": "zeebe:property",
3326
+ "name": "inbound.auth.jwt.jwkUrl"
3327
+ },
3328
+ "condition": {
3329
+ "property": "authorizationType",
3330
+ "equals": "JWT"
3331
+ }
3332
+ },
3333
+ {
3334
+ "label": "JWT role property expression",
3335
+ "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>",
3336
+ "type": "String",
3337
+ "group": "authorization",
3338
+ "feel": "required",
3339
+ "optional": true,
3340
+ "binding": {
3341
+ "type": "zeebe:property",
3342
+ "name": "inbound.auth.jwt.permissionsExpression"
3343
+ },
3344
+ "condition": {
3345
+ "property": "authorizationType",
3346
+ "equals": "JWT"
3347
+ }
3348
+ },
3349
+ {
3350
+ "label": "Required roles",
3351
+ "description": "List of roles to test JWT roles against",
3352
+ "type": "String",
3353
+ "group": "authorization",
3354
+ "feel": "required",
3355
+ "optional": true,
3356
+ "binding": {
3357
+ "type": "zeebe:property",
3358
+ "name": "inbound.auth.jwt.requiredPermissions"
3359
+ },
3360
+ "condition": {
3361
+ "property": "authorizationType",
3362
+ "equals": "JWT"
3363
+ }
3439
3364
  },
3440
3365
  {
3441
- "id": "inbound.auth.username",
3442
3366
  "label": "Username",
3443
3367
  "description": "Username for basic authentication",
3444
- "optional": false,
3445
- "feel": "optional",
3368
+ "type": "String",
3446
3369
  "group": "authorization",
3370
+ "feel": "optional",
3447
3371
  "binding": {
3448
- "name": "inbound.auth.username",
3449
- "type": "zeebe:property"
3372
+ "type": "zeebe:property",
3373
+ "name": "inbound.auth.username"
3450
3374
  },
3451
3375
  "condition": {
3452
- "property": "inbound.auth.type",
3453
- "equals": "BASIC",
3454
- "type": "simple"
3376
+ "property": "authorizationType",
3377
+ "equals": "BASIC"
3455
3378
  },
3456
- "type": "String"
3379
+ "constraints": {
3380
+ "notEmpty": true
3381
+ }
3457
3382
  },
3458
3383
  {
3459
- "id": "inbound.auth.password",
3460
3384
  "label": "Password",
3461
3385
  "description": "Password for basic authentication",
3462
- "optional": false,
3463
- "feel": "optional",
3386
+ "type": "String",
3464
3387
  "group": "authorization",
3388
+ "feel": "optional",
3465
3389
  "binding": {
3466
- "name": "inbound.auth.password",
3467
- "type": "zeebe:property"
3390
+ "type": "zeebe:property",
3391
+ "name": "inbound.auth.password"
3468
3392
  },
3469
3393
  "condition": {
3470
- "property": "inbound.auth.type",
3471
- "equals": "BASIC",
3472
- "type": "simple"
3394
+ "property": "authorizationType",
3395
+ "equals": "BASIC"
3473
3396
  },
3474
- "type": "String"
3397
+ "constraints": {
3398
+ "notEmpty": true
3399
+ }
3475
3400
  },
3476
3401
  {
3477
- "id": "inbound.auth.apiKey",
3478
- "label": "API key",
3402
+ "label": "API Key",
3479
3403
  "description": "Expected API key",
3480
- "optional": false,
3481
- "feel": "optional",
3404
+ "type": "String",
3482
3405
  "group": "authorization",
3406
+ "feel": "optional",
3483
3407
  "binding": {
3484
- "name": "inbound.auth.apiKey",
3485
- "type": "zeebe:property"
3408
+ "type": "zeebe:property",
3409
+ "name": "inbound.auth.apiKey"
3486
3410
  },
3487
3411
  "condition": {
3488
- "property": "inbound.auth.type",
3489
- "equals": "APIKEY",
3490
- "type": "simple"
3412
+ "property": "authorizationType",
3413
+ "equals": "APIKEY"
3491
3414
  },
3492
- "type": "String"
3415
+ "constraints": {
3416
+ "notEmpty": true
3417
+ }
3493
3418
  },
3494
3419
  {
3495
- "id": "inbound.auth.apiKeyLocator",
3496
- "label": "API key locator",
3420
+ "label": "API Key locator",
3497
3421
  "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>",
3498
- "optional": false,
3499
- "value": "=split(request.headers.authorization, \" \")[2]",
3422
+ "type": "String",
3423
+ "group": "authorization",
3424
+ "feel": "required",
3425
+ "binding": {
3426
+ "type": "zeebe:property",
3427
+ "name": "inbound.auth.apiKeyLocator"
3428
+ },
3429
+ "condition": {
3430
+ "property": "authorizationType",
3431
+ "equals": "APIKEY"
3432
+ },
3500
3433
  "constraints": {
3501
3434
  "notEmpty": true
3502
3435
  },
3436
+ "value": "=split(request.headers.authorization, \" \")[2]"
3437
+ },
3438
+ {
3439
+ "label": "Correlation key (process)",
3440
+ "type": "String",
3441
+ "group": "activation",
3503
3442
  "feel": "required",
3504
- "group": "authorization",
3443
+ "description": "Sets up the correlation key from process variables",
3505
3444
  "binding": {
3506
- "name": "inbound.auth.apiKeyLocator",
3507
- "type": "zeebe:property"
3445
+ "type": "bpmn:Message#zeebe:subscription#property",
3446
+ "name": "correlationKey"
3508
3447
  },
3509
- "condition": {
3510
- "property": "inbound.auth.type",
3511
- "equals": "APIKEY",
3512
- "type": "simple"
3448
+ "constraints": {
3449
+ "notEmpty": true
3450
+ }
3451
+ },
3452
+ {
3453
+ "label": "Correlation key (payload)",
3454
+ "type": "String",
3455
+ "group": "activation",
3456
+ "feel": "required",
3457
+ "binding": {
3458
+ "type": "zeebe:property",
3459
+ "name": "correlationKeyExpression"
3513
3460
  },
3514
- "type": "String"
3461
+ "description": "Extracts the correlation key from the incoming message payload",
3462
+ "constraints": {
3463
+ "notEmpty": true
3464
+ }
3515
3465
  },
3516
3466
  {
3517
- "id": "inbound.auth.jwt.jwkUrl",
3518
- "label": "JWK URL",
3519
- "description": "Well-known URL of JWKs",
3520
- "optional": false,
3521
- "feel": "optional",
3522
- "group": "authorization",
3467
+ "label": "Condition",
3468
+ "type": "String",
3469
+ "group": "activation",
3470
+ "feel": "required",
3471
+ "optional": true,
3523
3472
  "binding": {
3524
- "name": "inbound.auth.jwt.jwkUrl",
3525
- "type": "zeebe:property"
3473
+ "type": "zeebe:property",
3474
+ "name": "activationCondition"
3526
3475
  },
3527
- "condition": {
3528
- "property": "inbound.auth.type",
3529
- "equals": "JWT",
3530
- "type": "simple"
3476
+ "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>"
3477
+ },
3478
+ {
3479
+ "label": "Result variable",
3480
+ "type": "String",
3481
+ "group": "variable-mapping",
3482
+ "optional": true,
3483
+ "binding": {
3484
+ "type": "zeebe:property",
3485
+ "name": "resultVariable"
3531
3486
  },
3532
- "type": "String"
3487
+ "description": "Name of variable to store the result of the connector in"
3533
3488
  },
3534
3489
  {
3535
- "id": "inbound.auth.jwt.permissionsExpression",
3536
- "label": "JWT role property expression",
3537
- "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>",
3538
- "optional": false,
3490
+ "label": "Result expression",
3491
+ "type": "String",
3492
+ "group": "variable-mapping",
3539
3493
  "feel": "required",
3540
- "group": "authorization",
3494
+ "optional": true,
3541
3495
  "binding": {
3542
- "name": "inbound.auth.jwt.permissionsExpression",
3543
- "type": "zeebe:property"
3496
+ "type": "zeebe:property",
3497
+ "name": "resultExpression"
3544
3498
  },
3545
- "condition": {
3546
- "property": "inbound.auth.type",
3547
- "equals": "JWT",
3548
- "type": "simple"
3499
+ "description": "Expression to map the inbound payload to process variables"
3500
+ }
3501
+ ],
3502
+ "icon": {
3503
+ "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"
3504
+ },
3505
+ "engines": {
3506
+ "camunda": "^8.2"
3507
+ }
3508
+ },
3509
+ {
3510
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3511
+ "name": "Webhook connector",
3512
+ "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
3513
+ "version": 2,
3514
+ "description": "Configure webhook to receive callbacks",
3515
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3516
+ "category": {
3517
+ "id": "connectors",
3518
+ "name": "Connectors"
3519
+ },
3520
+ "appliesTo": ["bpmn:IntermediateCatchEvent", "bpmn:IntermediateThrowEvent"],
3521
+ "elementType": {
3522
+ "value": "bpmn:IntermediateCatchEvent",
3523
+ "eventDefinition": "bpmn:MessageEventDefinition"
3524
+ },
3525
+ "groups": [
3526
+ {
3527
+ "id": "endpoint",
3528
+ "label": "Webhook configuration"
3529
+ },
3530
+ {
3531
+ "id": "activation",
3532
+ "label": "Activation"
3533
+ },
3534
+ {
3535
+ "id": "variable-mapping",
3536
+ "label": "Variable mapping"
3537
+ }
3538
+ ],
3539
+ "properties": [
3540
+ {
3541
+ "type": "Hidden",
3542
+ "value": "io.camunda:webhook:1",
3543
+ "binding": {
3544
+ "type": "zeebe:property",
3545
+ "name": "inbound.type"
3546
+ }
3547
+ },
3548
+ {
3549
+ "type": "Hidden",
3550
+ "generatedValue": {
3551
+ "type": "uuid"
3549
3552
  },
3550
- "type": "String"
3553
+ "binding": {
3554
+ "type": "bpmn:Message#property",
3555
+ "name": "name"
3556
+ }
3551
3557
  },
3552
3558
  {
3553
- "id": "inbound.auth.jwt.requiredPermissions",
3554
- "label": "Required roles",
3555
- "description": "List of roles to test JWT roles against",
3556
- "optional": false,
3557
- "feel": "required",
3558
- "group": "authorization",
3559
+ "type": "Hidden",
3560
+ "value": "ConfigurableInboundWebhook",
3561
+ "binding": {
3562
+ "type": "zeebe:property",
3563
+ "name": "inbound.subtype"
3564
+ }
3565
+ },
3566
+ {
3567
+ "label": "Webhook ID",
3568
+ "type": "String",
3569
+ "group": "endpoint",
3570
+ "binding": {
3571
+ "type": "zeebe:property",
3572
+ "name": "inbound.context"
3573
+ },
3574
+ "description": "The webhook ID is a part of the URL",
3575
+ "constraints": {
3576
+ "notEmpty": true
3577
+ }
3578
+ },
3579
+ {
3580
+ "id": "shouldValidateHmac",
3581
+ "label": "HMAC authentication",
3582
+ "group": "endpoint",
3583
+ "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",
3584
+ "value": "disabled",
3585
+ "type": "Dropdown",
3586
+ "choices": [
3587
+ {
3588
+ "name": "Enabled",
3589
+ "value": "enabled"
3590
+ },
3591
+ {
3592
+ "name": "Disabled",
3593
+ "value": "disabled"
3594
+ }
3595
+ ],
3559
3596
  "binding": {
3560
- "name": "inbound.auth.jwt.requiredPermissions",
3561
- "type": "zeebe:property"
3562
- },
3563
- "condition": {
3564
- "property": "inbound.auth.type",
3565
- "equals": "JWT",
3566
- "type": "simple"
3567
- },
3568
- "type": "String"
3597
+ "type": "zeebe:property",
3598
+ "name": "inbound.shouldValidateHmac"
3599
+ }
3569
3600
  },
3570
3601
  {
3571
- "id": "inbound.responseBodyExpression",
3572
- "label": "Response body expression",
3573
- "description": "Specify condition and response",
3602
+ "label": "HMAC secret key",
3603
+ "description": "Shared secret key",
3604
+ "type": "String",
3605
+ "group": "endpoint",
3574
3606
  "optional": true,
3575
- "feel": "required",
3576
- "group": "webhookResponse",
3577
3607
  "binding": {
3578
- "name": "inbound.responseBodyExpression",
3579
- "type": "zeebe:property"
3608
+ "type": "zeebe:property",
3609
+ "name": "inbound.hmacSecret"
3580
3610
  },
3581
- "type": "Text"
3611
+ "condition": {
3612
+ "property": "shouldValidateHmac",
3613
+ "equals": "enabled"
3614
+ }
3582
3615
  },
3583
3616
  {
3584
- "id": "inbound.verificationExpression",
3585
- "label": "One time verification response expression",
3586
- "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>",
3617
+ "label": "HMAC header",
3618
+ "description": "Name of header attribute that will contain the HMAC value",
3619
+ "type": "String",
3620
+ "group": "endpoint",
3587
3621
  "optional": true,
3588
- "feel": "required",
3589
- "group": "webhookResponse",
3590
3622
  "binding": {
3591
- "name": "inbound.verificationExpression",
3592
- "type": "zeebe:property"
3623
+ "type": "zeebe:property",
3624
+ "name": "inbound.hmacHeader"
3593
3625
  },
3594
- "type": "Text"
3626
+ "condition": {
3627
+ "property": "shouldValidateHmac",
3628
+ "equals": "enabled"
3629
+ }
3595
3630
  },
3596
3631
  {
3597
- "id": "activationCondition",
3598
- "label": "Activation condition",
3599
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
3600
- "optional": true,
3601
- "feel": "required",
3602
- "group": "activation",
3632
+ "label": "HMAC algorithm",
3633
+ "group": "endpoint",
3634
+ "description": "Choose HMAC algorithm",
3635
+ "value": "sha_256",
3636
+ "type": "Dropdown",
3637
+ "choices": [
3638
+ {
3639
+ "name": "SHA-1",
3640
+ "value": "sha_1"
3641
+ },
3642
+ {
3643
+ "name": "SHA-256",
3644
+ "value": "sha_256"
3645
+ },
3646
+ {
3647
+ "name": "SHA-512",
3648
+ "value": "sha_512"
3649
+ }
3650
+ ],
3603
3651
  "binding": {
3604
- "name": "activationCondition",
3605
- "type": "zeebe:property"
3652
+ "type": "zeebe:property",
3653
+ "name": "inbound.hmacAlgorithm"
3606
3654
  },
3607
- "type": "String"
3655
+ "condition": {
3656
+ "property": "shouldValidateHmac",
3657
+ "equals": "enabled"
3658
+ }
3608
3659
  },
3609
3660
  {
3610
- "id": "correlationKeyProcess",
3611
3661
  "label": "Correlation key (process)",
3612
- "description": "Sets up the correlation key from process variables",
3613
- "constraints": {
3614
- "notEmpty": true
3615
- },
3662
+ "type": "String",
3663
+ "group": "activation",
3616
3664
  "feel": "required",
3617
- "group": "correlation",
3665
+ "description": "Sets up the correlation key from process variables",
3618
3666
  "binding": {
3619
- "name": "correlationKey",
3620
- "type": "bpmn:Message#zeebe:subscription#property"
3667
+ "type": "bpmn:Message#zeebe:subscription#property",
3668
+ "name": "correlationKey"
3621
3669
  },
3622
- "type": "String"
3623
- },
3624
- {
3625
- "id": "correlationKeyPayload",
3626
- "label": "Correlation key (payload)",
3627
- "description": "Extracts the correlation key from the incoming message payload",
3628
3670
  "constraints": {
3629
3671
  "notEmpty": true
3630
- },
3631
- "feel": "required",
3632
- "group": "correlation",
3633
- "binding": {
3634
- "name": "correlationKeyExpression",
3635
- "type": "zeebe:property"
3636
- },
3637
- "type": "String"
3672
+ }
3638
3673
  },
3639
3674
  {
3640
- "id": "messageIdExpression",
3641
- "label": "Message ID expression",
3642
- "description": "Expression to extract unique identifier of a message",
3643
- "optional": true,
3675
+ "label": "Correlation key (payload)",
3676
+ "type": "String",
3677
+ "group": "activation",
3644
3678
  "feel": "required",
3645
- "group": "correlation",
3646
3679
  "binding": {
3647
- "name": "messageIdExpression",
3648
- "type": "zeebe:property"
3680
+ "type": "zeebe:property",
3681
+ "name": "correlationKeyExpression"
3649
3682
  },
3650
- "type": "String"
3683
+ "description": "Extracts the correlation key from the incoming message payload",
3684
+ "constraints": {
3685
+ "notEmpty": true
3686
+ }
3651
3687
  },
3652
3688
  {
3653
- "id": "messageNameUuid",
3654
- "generatedValue": {
3655
- "type": "uuid"
3656
- },
3657
- "group": "correlation",
3689
+ "label": "Condition",
3690
+ "type": "String",
3691
+ "group": "activation",
3692
+ "feel": "required",
3693
+ "optional": true,
3658
3694
  "binding": {
3659
- "name": "name",
3660
- "type": "bpmn:Message#property"
3695
+ "type": "zeebe:property",
3696
+ "name": "activationCondition"
3661
3697
  },
3662
- "type": "Hidden"
3698
+ "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>"
3663
3699
  },
3664
3700
  {
3665
- "id": "resultVariable",
3666
3701
  "label": "Result variable",
3667
- "description": "Name of variable to store the response in",
3668
- "group": "output",
3702
+ "type": "String",
3703
+ "group": "variable-mapping",
3704
+ "optional": true,
3669
3705
  "binding": {
3670
- "name": "resultVariable",
3671
- "type": "zeebe:property"
3706
+ "type": "zeebe:property",
3707
+ "name": "resultVariable"
3672
3708
  },
3673
- "type": "String"
3709
+ "description": "Name of variable to store the result of the connector in"
3674
3710
  },
3675
3711
  {
3676
- "id": "resultExpression",
3677
3712
  "label": "Result expression",
3678
- "description": "Expression to map the response into process variables",
3713
+ "type": "String",
3714
+ "group": "variable-mapping",
3679
3715
  "feel": "required",
3680
- "group": "output",
3716
+ "optional": true,
3681
3717
  "binding": {
3682
- "name": "resultExpression",
3683
- "type": "zeebe:property"
3718
+ "type": "zeebe:property",
3719
+ "name": "resultExpression"
3684
3720
  },
3685
- "type": "Text"
3721
+ "description": "Expression to map the inbound payload to process variables"
3686
3722
  }
3687
3723
  ],
3688
3724
  "icon": {
3689
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3725
+ "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"
3690
3726
  },
3691
3727
  "engines": {
3692
- "camunda": "^8.5"
3728
+ "camunda": "^8.2"
3693
3729
  }
3694
3730
  },
3695
3731
  {
@@ -3697,11 +3733,8 @@
3697
3733
  "name": "Webhook Intermediate Event Connector",
3698
3734
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
3699
3735
  "description": "Configure webhook to receive callbacks",
3700
- "metadata": {
3701
- "keywords": []
3702
- },
3703
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3704
- "version": 12,
3736
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3737
+ "version": 10,
3705
3738
  "category": {
3706
3739
  "id": "connectors",
3707
3740
  "name": "Connectors"
@@ -3734,8 +3767,7 @@
3734
3767
  },
3735
3768
  {
3736
3769
  "id": "correlation",
3737
- "label": "Correlation",
3738
- "tooltip": "Learn more about message correlation in the <a href=\"https://docs.camunda.io/docs/components/concepts/messages/#message-correlation-overview\">documentation</a>."
3770
+ "label": "Correlation"
3739
3771
  },
3740
3772
  {
3741
3773
  "id": "output",
@@ -3808,7 +3840,7 @@
3808
3840
  {
3809
3841
  "id": "inbound.shouldValidateHmac",
3810
3842
  "label": "HMAC authentication",
3811
- "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",
3843
+ "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",
3812
3844
  "optional": false,
3813
3845
  "value": "disabled",
3814
3846
  "group": "authentication",
@@ -3899,7 +3931,7 @@
3899
3931
  {
3900
3932
  "id": "inbound.hmacScopes",
3901
3933
  "label": "HMAC scopes",
3902
- "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>",
3934
+ "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>",
3903
3935
  "optional": true,
3904
3936
  "feel": "required",
3905
3937
  "group": "authentication",
@@ -4001,7 +4033,7 @@
4001
4033
  {
4002
4034
  "id": "inbound.auth.apiKeyLocator",
4003
4035
  "label": "API key locator",
4004
- "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>",
4036
+ "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>",
4005
4037
  "optional": false,
4006
4038
  "value": "=split(request.headers.authorization, \" \")[2]",
4007
4039
  "constraints": {
@@ -4041,7 +4073,7 @@
4041
4073
  {
4042
4074
  "id": "inbound.auth.jwt.permissionsExpression",
4043
4075
  "label": "JWT role property expression",
4044
- "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>",
4076
+ "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>",
4045
4077
  "optional": false,
4046
4078
  "feel": "required",
4047
4079
  "group": "authorization",
@@ -4075,14 +4107,14 @@
4075
4107
  "type": "String"
4076
4108
  },
4077
4109
  {
4078
- "id": "inbound.responseExpression",
4079
- "label": "Response expression",
4080
- "description": "Expression used to generate the HTTP response",
4110
+ "id": "inbound.responseBodyExpression",
4111
+ "label": "Response body expression",
4112
+ "description": "Specify condition and response",
4081
4113
  "optional": true,
4082
4114
  "feel": "required",
4083
4115
  "group": "webhookResponse",
4084
4116
  "binding": {
4085
- "name": "inbound.responseExpression",
4117
+ "name": "inbound.responseBodyExpression",
4086
4118
  "type": "zeebe:property"
4087
4119
  },
4088
4120
  "type": "Text"
@@ -4113,18 +4145,6 @@
4113
4145
  },
4114
4146
  "type": "String"
4115
4147
  },
4116
- {
4117
- "id": "consumeUnmatchedEvents",
4118
- "label": "Consume unmatched events",
4119
- "value": true,
4120
- "group": "activation",
4121
- "binding": {
4122
- "name": "consumeUnmatchedEvents",
4123
- "type": "zeebe:property"
4124
- },
4125
- "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",
4126
- "type": "Boolean"
4127
- },
4128
4148
  {
4129
4149
  "id": "correlationKeyProcess",
4130
4150
  "label": "Correlation key (process)",
@@ -4168,26 +4188,6 @@
4168
4188
  },
4169
4189
  "type": "String"
4170
4190
  },
4171
- {
4172
- "id": "messageTtl",
4173
- "label": "Message TTL",
4174
- "description": "Time-to-live for the message in the broker (ISO-8601 duration)",
4175
- "optional": true,
4176
- "constraints": {
4177
- "notEmpty": false,
4178
- "pattern": {
4179
- "value": "^(PT.*|)$",
4180
- "message": "must be an ISO-8601 duration"
4181
- }
4182
- },
4183
- "feel": "optional",
4184
- "group": "correlation",
4185
- "binding": {
4186
- "name": "messageTtl",
4187
- "type": "zeebe:property"
4188
- },
4189
- "type": "String"
4190
- },
4191
4191
  {
4192
4192
  "id": "messageNameUuid",
4193
4193
  "generatedValue": {
@@ -4224,11 +4224,11 @@
4224
4224
  "type": "Text"
4225
4225
  }
4226
4226
  ],
4227
- "engines": {
4228
- "camunda": "^8.3"
4229
- },
4230
4227
  "icon": {
4231
4228
  "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
4229
+ },
4230
+ "engines": {
4231
+ "camunda": "^8.5"
4232
4232
  }
4233
4233
  },
4234
4234
  {
@@ -4236,9 +4236,15 @@
4236
4236
  "name": "Webhook Intermediate Event Connector",
4237
4237
  "id": "io.camunda.connectors.webhook.WebhookConnectorIntermediate.v1",
4238
4238
  "description": "Configure webhook to receive callbacks",
4239
- "metadata": {
4240
- "keywords": []
4241
- },
4239
+ "keywords": [
4240
+ "receive webhook",
4241
+ "HTTP trigger",
4242
+ "event received",
4243
+ "inbound event",
4244
+ "webhook trigger",
4245
+ "HTTP callback",
4246
+ "listen for event"
4247
+ ],
4242
4248
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
4243
4249
  "version": 14,
4244
4250
  "category": {
@@ -4774,15 +4780,18 @@
4774
4780
  },
4775
4781
  {
4776
4782
  "id": "messageNameUuid",
4783
+ "label": "Message name",
4777
4784
  "generatedValue": {
4778
4785
  "type": "uuid"
4779
4786
  },
4787
+ "feel": "optional",
4780
4788
  "group": "correlation",
4781
4789
  "binding": {
4782
4790
  "name": "name",
4783
4791
  "type": "bpmn:Message#property"
4784
4792
  },
4785
- "type": "Hidden"
4793
+ "tooltip": "By default, this is an auto-generated random UUID. We recommend using a unique message name for each connector element in the diagram. Override to set a custom message name. Learn more about <a href=\"https://docs.camunda.io/docs/components/concepts/messages/#message-subscriptions\">message subscriptions</a> that power inbound connectors.",
4794
+ "type": "String"
4786
4795
  },
4787
4796
  {
4788
4797
  "id": "deduplicationModeManualFlag",
@@ -4851,7 +4860,7 @@
4851
4860
  {
4852
4861
  "id": "resultVariable",
4853
4862
  "label": "Result variable",
4854
- "description": "Name of variable to store the response in",
4863
+ "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>.",
4855
4864
  "group": "output",
4856
4865
  "binding": {
4857
4866
  "name": "resultVariable",
@@ -4862,7 +4871,8 @@
4862
4871
  {
4863
4872
  "id": "resultExpression",
4864
4873
  "label": "Result expression",
4865
- "description": "Expression to map the response into process variables",
4874
+ "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>.",
4875
+ "value": "{\n myRequestBody: request.body\n // Use FEEL to extract values, e.g.,:\n // myMessage: request.body.message\n}",
4866
4876
  "feel": "required",
4867
4877
  "group": "output",
4868
4878
  "binding": {