@camunda/connectors-element-templates 1.0.15 → 1.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/package.json +1 -1
  2. package/src/connectors.js +8 -6
  3. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +1 -0
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +3 -2
  5. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +3 -2
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +3 -2
  7. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +3 -2
  8. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +30 -30
  9. package/src/element-templates/agenticai-aiagent-job-worker.json +175 -171
  10. package/src/element-templates/agenticai-aiagent-outbound-connector.json +2144 -2144
  11. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +467 -466
  12. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +482 -481
  13. package/src/element-templates/automation-anywhere-outbound-connector.json +613 -613
  14. package/src/element-templates/aws-bedrock-outbound-connector.json +74 -74
  15. package/src/element-templates/aws-dynamodb-outbound-connector.json +80 -80
  16. package/src/element-templates/aws-eventbridge-connector-boundary.json +26 -26
  17. package/src/element-templates/aws-eventbridge-connector-intermediate.json +22 -22
  18. package/src/element-templates/aws-eventbridge-connector-message-start.json +10 -10
  19. package/src/element-templates/aws-eventbridge-connector-start-event.json +26 -26
  20. package/src/element-templates/aws-eventbridge-outbound-connector.json +188 -188
  21. package/src/element-templates/aws-lambda-outbound-connector.json +238 -238
  22. package/src/element-templates/aws-sns-inbound-boundary.json +193 -193
  23. package/src/element-templates/aws-sns-inbound-intermediate.json +332 -332
  24. package/src/element-templates/aws-sns-inbound-message-start.json +110 -110
  25. package/src/element-templates/aws-sns-outbound-connector.json +741 -741
  26. package/src/element-templates/aws-sqs-boundary-connector.json +232 -232
  27. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +493 -493
  28. package/src/element-templates/aws-sqs-outbound-connector.json +753 -753
  29. package/src/element-templates/aws-sqs-start-event-connector.json +483 -483
  30. package/src/element-templates/aws-sqs-start-message.json +438 -438
  31. package/src/element-templates/aws-textract-outbound-connector.json +123 -123
  32. package/src/element-templates/azure-open-ai-connector.json +32 -32
  33. package/src/element-templates/blue-prism-connector.json +6 -6
  34. package/src/element-templates/easy-post-connector.json +114 -114
  35. package/src/element-templates/email-inbound-connector-boundary.json +19 -19
  36. package/src/element-templates/email-inbound-connector-intermediate.json +19 -19
  37. package/src/element-templates/email-message-start-event-connector.json +32 -32
  38. package/src/element-templates/email-outbound-connector.json +233 -233
  39. package/src/element-templates/github-connector.json +11435 -7908
  40. package/src/element-templates/github-webhook-connector-boundary.json +16 -16
  41. package/src/element-templates/github-webhook-connector-intermediate.json +25 -25
  42. package/src/element-templates/github-webhook-connector-start-event.json +64 -64
  43. package/src/element-templates/gitlab-connector.json +3394 -3394
  44. package/src/element-templates/google-drive-outbound-connector.json +420 -420
  45. package/src/element-templates/google-gemini-outbound-connector.json +705 -0
  46. package/src/element-templates/google-maps-platform-connector.json +14 -14
  47. package/src/element-templates/google-sheets-outbound-connector.json +1055 -1055
  48. package/src/element-templates/graphql-outbound-connector.json +1341 -763
  49. package/src/element-templates/http-connector.json.json +654 -0
  50. package/src/element-templates/http-json-connector.json +1491 -1472
  51. package/src/element-templates/http-polling-boundary-catch-event-connector.json +801 -136
  52. package/src/element-templates/http-polling-connector.json +1604 -939
  53. package/src/element-templates/hugging-face-connector.json +215 -10
  54. package/src/element-templates/kafka-inbound-connector-boundary.json +483 -483
  55. package/src/element-templates/kafka-inbound-connector-intermediate.json +466 -466
  56. package/src/element-templates/kafka-inbound-connector-start-message.json +529 -529
  57. package/src/element-templates/kafka-outbound-connector.json +360 -360
  58. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +687 -0
  59. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +687 -0
  60. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +719 -0
  61. package/src/element-templates/microsoft-teams-outbound-connector.json +1892 -47
  62. package/src/element-templates/openai-connector.json +83 -83
  63. package/src/element-templates/operate-connector.json +21 -21
  64. package/src/element-templates/power-automate-connector.json +4 -4
  65. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +422 -422
  66. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +338 -338
  67. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +463 -463
  68. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +360 -360
  69. package/src/element-templates/rabbitmq-outbound-connector.json +354 -354
  70. package/src/element-templates/salesforce-connector.json +38 -38
  71. package/src/element-templates/sendgrid-outbound-connector.json +354 -354
  72. package/src/element-templates/slack-inbound-boundary.json +253 -253
  73. package/src/element-templates/slack-inbound-message-start.json +321 -321
  74. package/src/element-templates/slack-inbound-start-event.json +327 -327
  75. package/src/element-templates/slack-outbound-connector.json +1484 -717
  76. package/src/element-templates/twilio-connector.json +65 -65
  77. package/src/element-templates/twilio-webhook-boundary-connector.json +28 -28
  78. package/src/element-templates/twilio-webhook-intermediate-connector.json +25 -25
  79. package/src/element-templates/uipath-connector.json +10 -10
  80. package/src/element-templates/webhook-connector-boundary.json +1192 -547
  81. package/src/element-templates/webhook-connector-intermediate.json +1258 -613
  82. package/src/element-templates/webhook-connector-receive.json +644 -0
  83. package/src/element-templates/webhook-connector-start-event.json +1690 -1136
  84. package/src/element-templates/webhook-connector-start-message.json +1601 -924
  85. package/src/element-templates/idp-classification-outbound-connector.json +0 -1141
  86. package/src/element-templates/idp-structured-extraction-outbound-connector.json +0 -656
  87. package/src/element-templates/idp-unstructured-extraction-outbound-connector.json +0 -1115
@@ -1,14 +1,14 @@
1
1
  [
2
2
  {
3
3
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4
- "name": "GraphQL connector",
4
+ "name": "GraphQL Outbound Connector",
5
5
  "id": "io.camunda.connectors.GraphQL.v1",
6
6
  "description": "Execute GraphQL query",
7
- "version": 1,
8
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
9
- "icon": {
10
- "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
7
+ "metadata": {
8
+ "keywords": []
11
9
  },
10
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
11
+ "version": 9,
12
12
  "category": {
13
13
  "id": "connectors",
14
14
  "name": "Connectors"
@@ -17,6 +17,9 @@
17
17
  "elementType": {
18
18
  "value": "bpmn:ServiceTask"
19
19
  },
20
+ "engines": {
21
+ "camunda": "^8.9"
22
+ },
20
23
  "groups": [
21
24
  {
22
25
  "id": "authentication",
@@ -24,7 +27,7 @@
24
27
  },
25
28
  {
26
29
  "id": "endpoint",
27
- "label": "HTTP endpoint"
30
+ "label": "HTTP Endpoint"
28
31
  },
29
32
  {
30
33
  "id": "graphql",
@@ -32,37 +35,49 @@
32
35
  },
33
36
  {
34
37
  "id": "timeout",
35
- "label": "Connect timeout"
38
+ "label": "Connection timeout"
39
+ },
40
+ {
41
+ "id": "connector",
42
+ "label": "Connector"
36
43
  },
37
44
  {
38
45
  "id": "output",
39
- "label": "Response mapping"
46
+ "label": "Output mapping"
40
47
  },
41
48
  {
42
- "id": "errors",
49
+ "id": "error",
43
50
  "label": "Error handling"
51
+ },
52
+ {
53
+ "id": "retries",
54
+ "label": "Retries"
44
55
  }
45
56
  ],
46
57
  "properties": [
47
58
  {
48
- "type": "Hidden",
49
59
  "value": "io.camunda:connector-graphql:1",
50
60
  "binding": {
51
- "type": "zeebe:taskDefinition",
52
- "property": "type"
53
- }
61
+ "property": "type",
62
+ "type": "zeebe:taskDefinition"
63
+ },
64
+ "type": "Hidden"
54
65
  },
55
66
  {
67
+ "id": "authentication.type",
56
68
  "label": "Type",
57
- "id": "authenticationType",
58
- "group": "authentication",
59
69
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
60
70
  "value": "noAuth",
71
+ "group": "authentication",
72
+ "binding": {
73
+ "name": "authentication.type",
74
+ "type": "zeebe:input"
75
+ },
61
76
  "type": "Dropdown",
62
77
  "choices": [
63
78
  {
64
- "name": "None",
65
- "value": "noAuth"
79
+ "name": "API key",
80
+ "value": "apiKey"
66
81
  },
67
82
  {
68
83
  "name": "Basic",
@@ -72,196 +87,759 @@
72
87
  "name": "Bearer token",
73
88
  "value": "bearer"
74
89
  },
90
+ {
91
+ "name": "None",
92
+ "value": "noAuth"
93
+ },
75
94
  {
76
95
  "name": "OAuth 2.0",
77
96
  "value": "oauth-client-credentials-flow"
78
97
  }
79
- ],
80
- "binding": {
81
- "type": "zeebe:input",
82
- "name": "authentication.type"
83
- }
98
+ ]
84
99
  },
85
100
  {
86
- "label": "URL",
87
- "group": "endpoint",
88
- "type": "String",
89
- "feel": "optional",
101
+ "id": "authentication.apiKeyLocation",
102
+ "label": "Api key location",
103
+ "description": "Choose type: Send API key in header or as query parameter.",
104
+ "optional": false,
105
+ "value": "headers",
106
+ "constraints": {
107
+ "notEmpty": true
108
+ },
109
+ "group": "authentication",
90
110
  "binding": {
91
- "type": "zeebe:input",
92
- "name": "graphql.url"
111
+ "name": "authentication.apiKeyLocation",
112
+ "type": "zeebe:input"
113
+ },
114
+ "condition": {
115
+ "property": "authentication.type",
116
+ "equals": "apiKey",
117
+ "type": "simple"
93
118
  },
94
- "constraints": {
95
- "notEmpty": true,
96
- "pattern": {
97
- "value": "^(=|(http://|https://|secrets).*$)",
98
- "message": "Must be a http(s) URL."
99
- }
100
- }
101
- },
102
- {
103
- "id": "method",
104
- "label": "Method",
105
- "group": "endpoint",
106
119
  "type": "Dropdown",
107
- "value": "post",
108
120
  "choices": [
109
121
  {
110
- "name": "POST",
111
- "value": "post"
122
+ "name": "Headers",
123
+ "value": "headers"
112
124
  },
113
125
  {
114
- "name": "GET",
115
- "value": "get"
126
+ "name": "Query parameters",
127
+ "value": "query"
116
128
  }
117
- ],
118
- "binding": {
119
- "type": "zeebe:input",
120
- "name": "graphql.method"
121
- }
122
- },
123
- {
124
- "id": "headers",
125
- "label": "Headers",
126
- "group": "endpoint",
127
- "type": "Text",
128
- "feel": "required",
129
- "optional": true,
130
- "binding": {
131
- "type": "zeebe:input",
132
- "name": "graphql.headers"
133
- }
129
+ ]
134
130
  },
135
131
  {
136
- "label": "Query/Mutation",
137
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
138
- "group": "graphql",
139
- "type": "Text",
140
- "language": "graphql",
141
- "binding": {
142
- "type": "zeebe:input",
143
- "name": "graphql.query"
144
- },
132
+ "id": "authentication.name",
133
+ "label": "API key name",
145
134
  "optional": false,
146
135
  "constraints": {
147
136
  "notEmpty": true
148
- }
149
- },
150
- {
151
- "label": "Variables",
152
- "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
153
- "group": "graphql",
154
- "type": "Text",
155
- "feel": "required",
156
- "binding": {
157
- "type": "zeebe:input",
158
- "name": "graphql.variables"
159
137
  },
160
- "optional": true
161
- },
162
- {
163
- "label": "Bearer token",
164
- "group": "authentication",
165
- "type": "String",
166
138
  "feel": "optional",
139
+ "group": "authentication",
167
140
  "binding": {
168
- "type": "zeebe:input",
169
- "name": "graphql.authentication.token"
170
- },
171
- "constraints": {
172
- "notEmpty": true
141
+ "name": "authentication.name",
142
+ "type": "zeebe:input"
173
143
  },
174
144
  "condition": {
175
- "property": "authenticationType",
176
- "equals": "bearer"
177
- }
145
+ "property": "authentication.type",
146
+ "equals": "apiKey",
147
+ "type": "simple"
148
+ },
149
+ "type": "String"
178
150
  },
179
151
  {
180
- "label": "OAuth token endpoint",
181
- "description": "The OAuth token endpoint",
182
- "group": "authentication",
183
- "type": "String",
184
- "feel": "optional",
185
- "binding": {
186
- "type": "zeebe:input",
187
- "name": "authentication.oauthTokenEndpoint"
188
- },
152
+ "id": "authentication.value",
153
+ "label": "API key value",
154
+ "optional": false,
189
155
  "constraints": {
190
156
  "notEmpty": true
191
157
  },
192
- "condition": {
193
- "property": "authenticationType",
194
- "equals": "oauth-client-credentials-flow"
195
- }
196
- },
197
- {
198
- "label": "Client ID",
199
- "description": "Your application's client ID from the OAuth client",
200
- "group": "authentication",
201
- "type": "String",
202
158
  "feel": "optional",
159
+ "group": "authentication",
203
160
  "binding": {
204
- "type": "zeebe:input",
205
- "name": "authentication.clientId"
206
- },
207
- "constraints": {
208
- "notEmpty": true
161
+ "name": "authentication.value",
162
+ "type": "zeebe:input"
209
163
  },
210
164
  "condition": {
211
- "property": "authenticationType",
212
- "equals": "oauth-client-credentials-flow"
213
- }
165
+ "property": "authentication.type",
166
+ "equals": "apiKey",
167
+ "type": "simple"
168
+ },
169
+ "type": "String"
214
170
  },
215
171
  {
216
- "label": "Client secret",
217
- "description": "Your application's client secret from the OAuth client",
218
- "group": "authentication",
219
- "type": "String",
220
- "feel": "optional",
221
- "binding": {
222
- "type": "zeebe:input",
223
- "name": "authentication.clientSecret"
224
- },
172
+ "id": "authentication.username",
173
+ "label": "Username",
174
+ "optional": false,
225
175
  "constraints": {
226
176
  "notEmpty": true
227
177
  },
228
- "condition": {
229
- "property": "authenticationType",
230
- "equals": "oauth-client-credentials-flow"
231
- }
232
- },
233
- {
234
- "label": "Scopes",
235
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
236
- "group": "authentication",
237
- "type": "String",
238
178
  "feel": "optional",
239
- "optional": true,
179
+ "group": "authentication",
240
180
  "binding": {
241
- "type": "zeebe:input",
242
- "name": "authentication.scopes"
181
+ "name": "authentication.username",
182
+ "type": "zeebe:input"
243
183
  },
244
184
  "condition": {
245
- "property": "authenticationType",
246
- "equals": "oauth-client-credentials-flow"
247
- }
185
+ "property": "authentication.type",
186
+ "equals": "basic",
187
+ "type": "simple"
188
+ },
189
+ "type": "String"
248
190
  },
249
191
  {
250
- "label": "Audience",
251
- "description": "The unique identifier of the target API you want to access",
252
- "group": "authentication",
253
- "type": "String",
192
+ "id": "authentication.password",
193
+ "label": "Password",
194
+ "optional": false,
195
+ "constraints": {
196
+ "notEmpty": true
197
+ },
254
198
  "feel": "optional",
255
- "optional": true,
199
+ "group": "authentication",
256
200
  "binding": {
257
- "type": "zeebe:input",
258
- "name": "authentication.audience"
201
+ "name": "authentication.password",
202
+ "type": "zeebe:input"
259
203
  },
260
204
  "condition": {
261
- "property": "authenticationType",
262
- "equals": "oauth-client-credentials-flow"
263
- }
264
- },
205
+ "property": "authentication.type",
206
+ "equals": "basic",
207
+ "type": "simple"
208
+ },
209
+ "type": "String"
210
+ },
211
+ {
212
+ "id": "authentication.token",
213
+ "label": "Bearer token",
214
+ "optional": false,
215
+ "constraints": {
216
+ "notEmpty": true
217
+ },
218
+ "feel": "optional",
219
+ "group": "authentication",
220
+ "binding": {
221
+ "name": "authentication.token",
222
+ "type": "zeebe:input"
223
+ },
224
+ "condition": {
225
+ "property": "authentication.type",
226
+ "equals": "bearer",
227
+ "type": "simple"
228
+ },
229
+ "type": "String"
230
+ },
231
+ {
232
+ "id": "authentication.oauthTokenEndpoint",
233
+ "label": "OAuth 2.0 token endpoint",
234
+ "description": "The OAuth token endpoint",
235
+ "optional": false,
236
+ "constraints": {
237
+ "notEmpty": true,
238
+ "pattern": {
239
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
240
+ "message": "Must be a http(s) URL"
241
+ }
242
+ },
243
+ "feel": "optional",
244
+ "group": "authentication",
245
+ "binding": {
246
+ "name": "authentication.oauthTokenEndpoint",
247
+ "type": "zeebe:input"
248
+ },
249
+ "condition": {
250
+ "property": "authentication.type",
251
+ "equals": "oauth-client-credentials-flow",
252
+ "type": "simple"
253
+ },
254
+ "type": "String"
255
+ },
256
+ {
257
+ "id": "authentication.clientId",
258
+ "label": "Client ID",
259
+ "description": "Your application's client ID from the OAuth client",
260
+ "optional": false,
261
+ "constraints": {
262
+ "notEmpty": true
263
+ },
264
+ "feel": "optional",
265
+ "group": "authentication",
266
+ "binding": {
267
+ "name": "authentication.clientId",
268
+ "type": "zeebe:input"
269
+ },
270
+ "condition": {
271
+ "property": "authentication.type",
272
+ "equals": "oauth-client-credentials-flow",
273
+ "type": "simple"
274
+ },
275
+ "type": "String"
276
+ },
277
+ {
278
+ "id": "authentication.clientSecret",
279
+ "label": "Client secret",
280
+ "description": "Your application's client secret from the OAuth client",
281
+ "optional": false,
282
+ "constraints": {
283
+ "notEmpty": true
284
+ },
285
+ "feel": "optional",
286
+ "group": "authentication",
287
+ "binding": {
288
+ "name": "authentication.clientSecret",
289
+ "type": "zeebe:input"
290
+ },
291
+ "condition": {
292
+ "property": "authentication.type",
293
+ "equals": "oauth-client-credentials-flow",
294
+ "type": "simple"
295
+ },
296
+ "type": "String"
297
+ },
298
+ {
299
+ "id": "authentication.audience",
300
+ "label": "Audience",
301
+ "description": "The unique identifier of the target API you want to access",
302
+ "optional": true,
303
+ "feel": "optional",
304
+ "group": "authentication",
305
+ "binding": {
306
+ "name": "authentication.audience",
307
+ "type": "zeebe:input"
308
+ },
309
+ "condition": {
310
+ "property": "authentication.type",
311
+ "equals": "oauth-client-credentials-flow",
312
+ "type": "simple"
313
+ },
314
+ "type": "String"
315
+ },
316
+ {
317
+ "id": "authentication.clientAuthentication",
318
+ "label": "Client authentication",
319
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
320
+ "optional": false,
321
+ "constraints": {
322
+ "notEmpty": true
323
+ },
324
+ "group": "authentication",
325
+ "binding": {
326
+ "name": "authentication.clientAuthentication",
327
+ "type": "zeebe:input"
328
+ },
329
+ "condition": {
330
+ "property": "authentication.type",
331
+ "equals": "oauth-client-credentials-flow",
332
+ "type": "simple"
333
+ },
334
+ "type": "Dropdown",
335
+ "choices": [
336
+ {
337
+ "name": "Send client credentials in body",
338
+ "value": "credentialsBody"
339
+ },
340
+ {
341
+ "name": "Send as Basic Auth header",
342
+ "value": "basicAuthHeader"
343
+ }
344
+ ]
345
+ },
346
+ {
347
+ "id": "authentication.scopes",
348
+ "label": "Scopes",
349
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
350
+ "optional": true,
351
+ "feel": "optional",
352
+ "group": "authentication",
353
+ "binding": {
354
+ "name": "authentication.scopes",
355
+ "type": "zeebe:input"
356
+ },
357
+ "condition": {
358
+ "property": "authentication.type",
359
+ "equals": "oauth-client-credentials-flow",
360
+ "type": "simple"
361
+ },
362
+ "type": "String"
363
+ },
364
+ {
365
+ "id": "graphql.method",
366
+ "label": "Method",
367
+ "optional": false,
368
+ "value": "get",
369
+ "constraints": {
370
+ "notEmpty": true
371
+ },
372
+ "group": "endpoint",
373
+ "binding": {
374
+ "name": "graphql.method",
375
+ "type": "zeebe:input"
376
+ },
377
+ "type": "Dropdown",
378
+ "choices": [
379
+ {
380
+ "name": "GET",
381
+ "value": "get"
382
+ },
383
+ {
384
+ "name": "POST",
385
+ "value": "post"
386
+ }
387
+ ]
388
+ },
389
+ {
390
+ "id": "graphql.url",
391
+ "label": "URL",
392
+ "optional": false,
393
+ "constraints": {
394
+ "notEmpty": true,
395
+ "pattern": {
396
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
397
+ "message": "Must be a http(s) URL"
398
+ }
399
+ },
400
+ "feel": "optional",
401
+ "group": "endpoint",
402
+ "binding": {
403
+ "name": "graphql.url",
404
+ "type": "zeebe:input"
405
+ },
406
+ "type": "String"
407
+ },
408
+ {
409
+ "id": "graphql.headers",
410
+ "label": "Headers",
411
+ "description": "Map of HTTP headers to add to the request",
412
+ "optional": true,
413
+ "feel": "required",
414
+ "group": "endpoint",
415
+ "binding": {
416
+ "name": "graphql.headers",
417
+ "type": "zeebe:input"
418
+ },
419
+ "type": "String"
420
+ },
421
+ {
422
+ "id": "graphql.storeResponse",
423
+ "label": "Store response",
424
+ "description": "Store the response as a document in the document store",
425
+ "optional": false,
426
+ "value": false,
427
+ "feel": "static",
428
+ "group": "endpoint",
429
+ "binding": {
430
+ "name": "graphql.storeResponse",
431
+ "type": "zeebe:input"
432
+ },
433
+ "type": "Boolean"
434
+ },
435
+ {
436
+ "id": "graphql.query",
437
+ "label": "Query/Mutation",
438
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
439
+ "optional": false,
440
+ "constraints": {
441
+ "notEmpty": true
442
+ },
443
+ "feel": "optional",
444
+ "group": "graphql",
445
+ "binding": {
446
+ "name": "graphql.query",
447
+ "type": "zeebe:input"
448
+ },
449
+ "type": "Text"
450
+ },
451
+ {
452
+ "id": "graphql.variables",
453
+ "label": "Variables",
454
+ "optional": true,
455
+ "feel": "required",
456
+ "group": "graphql",
457
+ "binding": {
458
+ "name": "graphql.variables",
459
+ "type": "zeebe:input"
460
+ },
461
+ "type": "String"
462
+ },
463
+ {
464
+ "id": "graphql.connectionTimeoutInSeconds",
465
+ "label": "Connection timeout in seconds",
466
+ "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
467
+ "optional": true,
468
+ "value": 20,
469
+ "feel": "static",
470
+ "group": "timeout",
471
+ "binding": {
472
+ "name": "graphql.connectionTimeoutInSeconds",
473
+ "type": "zeebe:input"
474
+ },
475
+ "type": "Number"
476
+ },
477
+ {
478
+ "id": "graphql.readTimeoutInSeconds",
479
+ "label": "Read timeout in seconds",
480
+ "description": "Timeout in seconds to read data from an established connection or 0 for an infinite timeout",
481
+ "optional": true,
482
+ "value": 20,
483
+ "feel": "static",
484
+ "group": "timeout",
485
+ "binding": {
486
+ "name": "graphql.readTimeoutInSeconds",
487
+ "type": "zeebe:input"
488
+ },
489
+ "type": "Number"
490
+ },
491
+ {
492
+ "id": "version",
493
+ "label": "Version",
494
+ "description": "Version of the element template",
495
+ "value": "9",
496
+ "group": "connector",
497
+ "binding": {
498
+ "key": "elementTemplateVersion",
499
+ "type": "zeebe:taskHeader"
500
+ },
501
+ "type": "Hidden"
502
+ },
503
+ {
504
+ "id": "id",
505
+ "label": "ID",
506
+ "description": "ID of the element template",
507
+ "value": "io.camunda.connectors.GraphQL.v1",
508
+ "group": "connector",
509
+ "binding": {
510
+ "key": "elementTemplateId",
511
+ "type": "zeebe:taskHeader"
512
+ },
513
+ "type": "Hidden"
514
+ },
515
+ {
516
+ "id": "resultVariable",
517
+ "label": "Result variable",
518
+ "description": "Name of variable to store the response in",
519
+ "group": "output",
520
+ "binding": {
521
+ "key": "resultVariable",
522
+ "type": "zeebe:taskHeader"
523
+ },
524
+ "type": "String"
525
+ },
526
+ {
527
+ "id": "resultExpression",
528
+ "label": "Result expression",
529
+ "description": "Expression to map the response into process variables",
530
+ "feel": "required",
531
+ "group": "output",
532
+ "binding": {
533
+ "key": "resultExpression",
534
+ "type": "zeebe:taskHeader"
535
+ },
536
+ "type": "Text"
537
+ },
538
+ {
539
+ "id": "errorExpression",
540
+ "label": "Error expression",
541
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
542
+ "feel": "required",
543
+ "group": "error",
544
+ "binding": {
545
+ "key": "errorExpression",
546
+ "type": "zeebe:taskHeader"
547
+ },
548
+ "type": "Text"
549
+ },
550
+ {
551
+ "id": "retryCount",
552
+ "label": "Retries",
553
+ "description": "Number of retries",
554
+ "value": "3",
555
+ "feel": "optional",
556
+ "group": "retries",
557
+ "binding": {
558
+ "property": "retries",
559
+ "type": "zeebe:taskDefinition"
560
+ },
561
+ "type": "String"
562
+ },
563
+ {
564
+ "id": "retryBackoff",
565
+ "label": "Retry backoff",
566
+ "description": "ISO-8601 duration to wait between retries",
567
+ "value": "PT0S",
568
+ "group": "retries",
569
+ "binding": {
570
+ "key": "retryBackoff",
571
+ "type": "zeebe:taskHeader"
572
+ },
573
+ "type": "String"
574
+ }
575
+ ],
576
+ "icon": {
577
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
578
+ }
579
+ },
580
+ {
581
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
582
+ "name": "GraphQL Outbound Connector",
583
+ "id": "io.camunda.connectors.GraphQL.v1",
584
+ "description": "Execute GraphQL query",
585
+ "version": 3,
586
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
587
+ "icon": {
588
+ "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
589
+ },
590
+ "category": {
591
+ "id": "connectors",
592
+ "name": "Connectors"
593
+ },
594
+ "appliesTo": ["bpmn:Task"],
595
+ "elementType": {
596
+ "value": "bpmn:ServiceTask"
597
+ },
598
+ "groups": [
599
+ {
600
+ "id": "authentication",
601
+ "label": "Authentication"
602
+ },
603
+ {
604
+ "id": "endpoint",
605
+ "label": "HTTP endpoint"
606
+ },
607
+ {
608
+ "id": "graphql",
609
+ "label": "GraphQL query"
610
+ },
611
+ {
612
+ "id": "timeout",
613
+ "label": "Connect timeout"
614
+ },
615
+ {
616
+ "id": "output",
617
+ "label": "Response mapping"
618
+ },
619
+ {
620
+ "id": "errors",
621
+ "label": "Error handling"
622
+ }
623
+ ],
624
+ "properties": [
625
+ {
626
+ "type": "Hidden",
627
+ "value": "io.camunda:connector-graphql:1",
628
+ "binding": {
629
+ "type": "zeebe:taskDefinition",
630
+ "property": "type"
631
+ }
632
+ },
633
+ {
634
+ "label": "Type",
635
+ "id": "authenticationType",
636
+ "group": "authentication",
637
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
638
+ "value": "noAuth",
639
+ "type": "Dropdown",
640
+ "choices": [
641
+ {
642
+ "name": "None",
643
+ "value": "noAuth"
644
+ },
645
+ {
646
+ "name": "Basic",
647
+ "value": "basic"
648
+ },
649
+ {
650
+ "name": "Bearer token",
651
+ "value": "bearer"
652
+ },
653
+ {
654
+ "name": "OAuth 2.0",
655
+ "value": "oauth-client-credentials-flow"
656
+ }
657
+ ],
658
+ "binding": {
659
+ "type": "zeebe:input",
660
+ "name": "authentication.type"
661
+ }
662
+ },
663
+ {
664
+ "label": "URL",
665
+ "group": "endpoint",
666
+ "type": "String",
667
+ "feel": "optional",
668
+ "binding": {
669
+ "type": "zeebe:input",
670
+ "name": "graphql.url"
671
+ },
672
+ "constraints": {
673
+ "notEmpty": true,
674
+ "pattern": {
675
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
676
+ "message": "Must be a http(s) URL."
677
+ }
678
+ }
679
+ },
680
+ {
681
+ "id": "method",
682
+ "label": "Method",
683
+ "group": "endpoint",
684
+ "type": "Dropdown",
685
+ "value": "post",
686
+ "choices": [
687
+ {
688
+ "name": "POST",
689
+ "value": "post"
690
+ },
691
+ {
692
+ "name": "GET",
693
+ "value": "get"
694
+ }
695
+ ],
696
+ "binding": {
697
+ "type": "zeebe:input",
698
+ "name": "graphql.method"
699
+ }
700
+ },
701
+ {
702
+ "id": "headers",
703
+ "label": "Headers",
704
+ "group": "endpoint",
705
+ "type": "Text",
706
+ "feel": "required",
707
+ "optional": true,
708
+ "binding": {
709
+ "type": "zeebe:input",
710
+ "name": "graphql.headers"
711
+ }
712
+ },
713
+ {
714
+ "label": "Query/Mutation",
715
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
716
+ "group": "graphql",
717
+ "type": "Text",
718
+ "language": "graphql",
719
+ "binding": {
720
+ "type": "zeebe:input",
721
+ "name": "graphql.query"
722
+ },
723
+ "optional": false,
724
+ "constraints": {
725
+ "notEmpty": true
726
+ }
727
+ },
728
+ {
729
+ "label": "Variables",
730
+ "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
731
+ "group": "graphql",
732
+ "type": "Text",
733
+ "feel": "required",
734
+ "binding": {
735
+ "type": "zeebe:input",
736
+ "name": "graphql.variables"
737
+ },
738
+ "optional": true
739
+ },
740
+ {
741
+ "label": "Bearer token",
742
+ "group": "authentication",
743
+ "type": "String",
744
+ "feel": "optional",
745
+ "binding": {
746
+ "type": "zeebe:input",
747
+ "name": "graphql.authentication.token"
748
+ },
749
+ "constraints": {
750
+ "notEmpty": true
751
+ },
752
+ "condition": {
753
+ "property": "authenticationType",
754
+ "equals": "bearer"
755
+ }
756
+ },
757
+ {
758
+ "label": "OAuth token endpoint",
759
+ "description": "The OAuth token endpoint",
760
+ "group": "authentication",
761
+ "type": "String",
762
+ "feel": "optional",
763
+ "binding": {
764
+ "type": "zeebe:input",
765
+ "name": "authentication.oauthTokenEndpoint"
766
+ },
767
+ "constraints": {
768
+ "notEmpty": true
769
+ },
770
+ "condition": {
771
+ "property": "authenticationType",
772
+ "equals": "oauth-client-credentials-flow"
773
+ }
774
+ },
775
+ {
776
+ "label": "Client ID",
777
+ "description": "Your application's client ID from the OAuth client",
778
+ "group": "authentication",
779
+ "type": "String",
780
+ "feel": "optional",
781
+ "binding": {
782
+ "type": "zeebe:input",
783
+ "name": "authentication.clientId"
784
+ },
785
+ "constraints": {
786
+ "notEmpty": true
787
+ },
788
+ "condition": {
789
+ "property": "authenticationType",
790
+ "equals": "oauth-client-credentials-flow"
791
+ }
792
+ },
793
+ {
794
+ "label": "Client secret",
795
+ "description": "Your application's client secret from the OAuth client",
796
+ "group": "authentication",
797
+ "type": "String",
798
+ "feel": "optional",
799
+ "binding": {
800
+ "type": "zeebe:input",
801
+ "name": "authentication.clientSecret"
802
+ },
803
+ "constraints": {
804
+ "notEmpty": true
805
+ },
806
+ "condition": {
807
+ "property": "authenticationType",
808
+ "equals": "oauth-client-credentials-flow"
809
+ }
810
+ },
811
+ {
812
+ "label": "Scopes",
813
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
814
+ "group": "authentication",
815
+ "type": "String",
816
+ "feel": "optional",
817
+ "optional": true,
818
+ "binding": {
819
+ "type": "zeebe:input",
820
+ "name": "authentication.scopes"
821
+ },
822
+ "condition": {
823
+ "property": "authenticationType",
824
+ "equals": "oauth-client-credentials-flow"
825
+ }
826
+ },
827
+ {
828
+ "label": "Audience",
829
+ "description": "The unique identifier of the target API you want to access",
830
+ "group": "authentication",
831
+ "type": "String",
832
+ "feel": "optional",
833
+ "optional": true,
834
+ "binding": {
835
+ "type": "zeebe:input",
836
+ "name": "authentication.audience"
837
+ },
838
+ "condition": {
839
+ "property": "authenticationType",
840
+ "equals": "oauth-client-credentials-flow"
841
+ }
842
+ },
265
843
  {
266
844
  "label": "Client authentication",
267
845
  "id": "authentication.clientAuthentication",
@@ -337,7 +915,7 @@
337
915
  "constraints": {
338
916
  "notEmpty": false,
339
917
  "pattern": {
340
- "value": "^(=|([0-9]+|secrets\\..+)$)",
918
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
341
919
  "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
342
920
  }
343
921
  }
@@ -384,11 +962,8 @@
384
962
  "name": "GraphQL Outbound Connector",
385
963
  "id": "io.camunda.connectors.GraphQL.v1",
386
964
  "description": "Execute GraphQL query",
387
- "version": 4,
388
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
389
- "icon": {
390
- "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
391
- },
965
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
966
+ "version": 6,
392
967
  "category": {
393
968
  "id": "connectors",
394
969
  "name": "Connectors"
@@ -404,7 +979,7 @@
404
979
  },
405
980
  {
406
981
  "id": "endpoint",
407
- "label": "HTTP endpoint"
982
+ "label": "HTTP Endpoint"
408
983
  },
409
984
  {
410
985
  "id": "graphql",
@@ -412,37 +987,45 @@
412
987
  },
413
988
  {
414
989
  "id": "timeout",
415
- "label": "Connect timeout"
990
+ "label": "Connection timeout"
416
991
  },
417
992
  {
418
993
  "id": "output",
419
- "label": "Response mapping"
994
+ "label": "Output mapping"
420
995
  },
421
996
  {
422
- "id": "errors",
997
+ "id": "error",
423
998
  "label": "Error handling"
999
+ },
1000
+ {
1001
+ "id": "retries",
1002
+ "label": "Retries"
424
1003
  }
425
1004
  ],
426
1005
  "properties": [
427
1006
  {
428
- "type": "Hidden",
429
1007
  "value": "io.camunda:connector-graphql:1",
430
1008
  "binding": {
431
- "type": "zeebe:taskDefinition",
432
- "property": "type"
433
- }
1009
+ "property": "type",
1010
+ "type": "zeebe:taskDefinition"
1011
+ },
1012
+ "type": "Hidden"
434
1013
  },
435
1014
  {
1015
+ "id": "authentication.type",
436
1016
  "label": "Type",
437
- "id": "authenticationType",
438
- "group": "authentication",
439
1017
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
440
1018
  "value": "noAuth",
1019
+ "group": "authentication",
1020
+ "binding": {
1021
+ "name": "authentication.type",
1022
+ "type": "zeebe:input"
1023
+ },
441
1024
  "type": "Dropdown",
442
1025
  "choices": [
443
1026
  {
444
- "name": "None",
445
- "value": "noAuth"
1027
+ "name": "API key",
1028
+ "value": "apiKey"
446
1029
  },
447
1030
  {
448
1031
  "name": "Basic",
@@ -452,202 +1035,250 @@
452
1035
  "name": "Bearer token",
453
1036
  "value": "bearer"
454
1037
  },
1038
+ {
1039
+ "name": "None",
1040
+ "value": "noAuth"
1041
+ },
455
1042
  {
456
1043
  "name": "OAuth 2.0",
457
1044
  "value": "oauth-client-credentials-flow"
458
1045
  }
459
- ],
460
- "binding": {
461
- "type": "zeebe:input",
462
- "name": "authentication.type"
463
- }
1046
+ ]
464
1047
  },
465
1048
  {
466
- "label": "URL",
467
- "group": "endpoint",
468
- "type": "String",
469
- "feel": "optional",
1049
+ "id": "authentication.apiKeyLocation",
1050
+ "label": "Api key location",
1051
+ "description": "Choose type: Send API key in header or as query parameter.",
1052
+ "optional": false,
1053
+ "value": "headers",
1054
+ "constraints": {
1055
+ "notEmpty": true
1056
+ },
1057
+ "group": "authentication",
470
1058
  "binding": {
471
- "type": "zeebe:input",
472
- "name": "graphql.url"
1059
+ "name": "authentication.apiKeyLocation",
1060
+ "type": "zeebe:input"
1061
+ },
1062
+ "condition": {
1063
+ "property": "authentication.type",
1064
+ "equals": "apiKey",
1065
+ "type": "simple"
473
1066
  },
474
- "constraints": {
475
- "notEmpty": true,
476
- "pattern": {
477
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
478
- "message": "Must be a http(s) URL."
479
- }
480
- }
481
- },
482
- {
483
- "id": "method",
484
- "label": "Method",
485
- "group": "endpoint",
486
1067
  "type": "Dropdown",
487
- "value": "post",
488
1068
  "choices": [
489
1069
  {
490
- "name": "POST",
491
- "value": "post"
1070
+ "name": "Headers",
1071
+ "value": "headers"
492
1072
  },
493
1073
  {
494
- "name": "GET",
495
- "value": "get"
1074
+ "name": "Query parameters",
1075
+ "value": "query"
496
1076
  }
497
- ],
498
- "binding": {
499
- "type": "zeebe:input",
500
- "name": "graphql.method"
501
- }
1077
+ ]
502
1078
  },
503
1079
  {
504
- "id": "headers",
505
- "label": "Headers",
506
- "group": "endpoint",
507
- "type": "Text",
508
- "feel": "required",
509
- "optional": true,
1080
+ "id": "authentication.name",
1081
+ "label": "API key name",
1082
+ "optional": false,
1083
+ "constraints": {
1084
+ "notEmpty": true
1085
+ },
1086
+ "feel": "optional",
1087
+ "group": "authentication",
510
1088
  "binding": {
511
- "type": "zeebe:input",
512
- "name": "graphql.headers"
513
- }
1089
+ "name": "authentication.name",
1090
+ "type": "zeebe:input"
1091
+ },
1092
+ "condition": {
1093
+ "property": "authentication.type",
1094
+ "equals": "apiKey",
1095
+ "type": "simple"
1096
+ },
1097
+ "type": "String"
514
1098
  },
515
1099
  {
516
- "label": "Query/Mutation",
517
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
518
- "group": "graphql",
519
- "type": "Text",
520
- "language": "graphql",
1100
+ "id": "authentication.value",
1101
+ "label": "API key value",
1102
+ "optional": false,
1103
+ "constraints": {
1104
+ "notEmpty": true
1105
+ },
1106
+ "feel": "optional",
1107
+ "group": "authentication",
521
1108
  "binding": {
522
- "type": "zeebe:input",
523
- "name": "graphql.query"
1109
+ "name": "authentication.value",
1110
+ "type": "zeebe:input"
1111
+ },
1112
+ "condition": {
1113
+ "property": "authentication.type",
1114
+ "equals": "apiKey",
1115
+ "type": "simple"
524
1116
  },
1117
+ "type": "String"
1118
+ },
1119
+ {
1120
+ "id": "authentication.username",
1121
+ "label": "Username",
525
1122
  "optional": false,
526
1123
  "constraints": {
527
1124
  "notEmpty": true
528
- }
1125
+ },
1126
+ "feel": "optional",
1127
+ "group": "authentication",
1128
+ "binding": {
1129
+ "name": "authentication.username",
1130
+ "type": "zeebe:input"
1131
+ },
1132
+ "condition": {
1133
+ "property": "authentication.type",
1134
+ "equals": "basic",
1135
+ "type": "simple"
1136
+ },
1137
+ "type": "String"
529
1138
  },
530
1139
  {
531
- "label": "Variables",
532
- "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
533
- "group": "graphql",
534
- "type": "Text",
535
- "feel": "required",
1140
+ "id": "authentication.password",
1141
+ "label": "Password",
1142
+ "optional": false,
1143
+ "constraints": {
1144
+ "notEmpty": true
1145
+ },
1146
+ "feel": "optional",
1147
+ "group": "authentication",
536
1148
  "binding": {
537
- "type": "zeebe:input",
538
- "name": "graphql.variables"
1149
+ "name": "authentication.password",
1150
+ "type": "zeebe:input"
539
1151
  },
540
- "optional": true
1152
+ "condition": {
1153
+ "property": "authentication.type",
1154
+ "equals": "basic",
1155
+ "type": "simple"
1156
+ },
1157
+ "type": "String"
541
1158
  },
542
1159
  {
1160
+ "id": "authentication.token",
543
1161
  "label": "Bearer token",
544
- "group": "authentication",
545
- "type": "String",
546
- "feel": "optional",
547
- "binding": {
548
- "type": "zeebe:input",
549
- "name": "authentication.token"
550
- },
1162
+ "optional": false,
551
1163
  "constraints": {
552
1164
  "notEmpty": true
553
1165
  },
1166
+ "feel": "optional",
1167
+ "group": "authentication",
1168
+ "binding": {
1169
+ "name": "authentication.token",
1170
+ "type": "zeebe:input"
1171
+ },
554
1172
  "condition": {
555
- "property": "authenticationType",
556
- "equals": "bearer"
557
- }
1173
+ "property": "authentication.type",
1174
+ "equals": "bearer",
1175
+ "type": "simple"
1176
+ },
1177
+ "type": "String"
558
1178
  },
559
1179
  {
560
- "label": "OAuth token endpoint",
1180
+ "id": "authentication.oauthTokenEndpoint",
1181
+ "label": "OAuth 2.0 token endpoint",
561
1182
  "description": "The OAuth token endpoint",
562
- "group": "authentication",
563
- "type": "String",
1183
+ "optional": false,
1184
+ "constraints": {
1185
+ "notEmpty": true,
1186
+ "pattern": {
1187
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1188
+ "message": "Must be a http(s) URL"
1189
+ }
1190
+ },
564
1191
  "feel": "optional",
1192
+ "group": "authentication",
565
1193
  "binding": {
566
- "type": "zeebe:input",
567
- "name": "authentication.oauthTokenEndpoint"
568
- },
569
- "constraints": {
570
- "notEmpty": true
1194
+ "name": "authentication.oauthTokenEndpoint",
1195
+ "type": "zeebe:input"
571
1196
  },
572
1197
  "condition": {
573
- "property": "authenticationType",
574
- "equals": "oauth-client-credentials-flow"
575
- }
1198
+ "property": "authentication.type",
1199
+ "equals": "oauth-client-credentials-flow",
1200
+ "type": "simple"
1201
+ },
1202
+ "type": "String"
576
1203
  },
577
1204
  {
1205
+ "id": "authentication.clientId",
578
1206
  "label": "Client ID",
579
1207
  "description": "Your application's client ID from the OAuth client",
580
- "group": "authentication",
581
- "type": "String",
582
- "feel": "optional",
583
- "binding": {
584
- "type": "zeebe:input",
585
- "name": "authentication.clientId"
586
- },
1208
+ "optional": false,
587
1209
  "constraints": {
588
1210
  "notEmpty": true
589
1211
  },
1212
+ "feel": "optional",
1213
+ "group": "authentication",
1214
+ "binding": {
1215
+ "name": "authentication.clientId",
1216
+ "type": "zeebe:input"
1217
+ },
590
1218
  "condition": {
591
- "property": "authenticationType",
592
- "equals": "oauth-client-credentials-flow"
593
- }
1219
+ "property": "authentication.type",
1220
+ "equals": "oauth-client-credentials-flow",
1221
+ "type": "simple"
1222
+ },
1223
+ "type": "String"
594
1224
  },
595
1225
  {
1226
+ "id": "authentication.clientSecret",
596
1227
  "label": "Client secret",
597
1228
  "description": "Your application's client secret from the OAuth client",
598
- "group": "authentication",
599
- "type": "String",
600
- "feel": "optional",
601
- "binding": {
602
- "type": "zeebe:input",
603
- "name": "authentication.clientSecret"
604
- },
1229
+ "optional": false,
605
1230
  "constraints": {
606
1231
  "notEmpty": true
607
1232
  },
608
- "condition": {
609
- "property": "authenticationType",
610
- "equals": "oauth-client-credentials-flow"
611
- }
612
- },
613
- {
614
- "label": "Scopes",
615
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
616
- "group": "authentication",
617
- "type": "String",
618
1233
  "feel": "optional",
619
- "optional": true,
1234
+ "group": "authentication",
620
1235
  "binding": {
621
- "type": "zeebe:input",
622
- "name": "authentication.scopes"
1236
+ "name": "authentication.clientSecret",
1237
+ "type": "zeebe:input"
623
1238
  },
624
1239
  "condition": {
625
- "property": "authenticationType",
626
- "equals": "oauth-client-credentials-flow"
627
- }
1240
+ "property": "authentication.type",
1241
+ "equals": "oauth-client-credentials-flow",
1242
+ "type": "simple"
1243
+ },
1244
+ "type": "String"
628
1245
  },
629
1246
  {
1247
+ "id": "authentication.audience",
630
1248
  "label": "Audience",
631
1249
  "description": "The unique identifier of the target API you want to access",
632
- "group": "authentication",
633
- "type": "String",
634
- "feel": "optional",
635
1250
  "optional": true,
1251
+ "feel": "optional",
1252
+ "group": "authentication",
636
1253
  "binding": {
637
- "type": "zeebe:input",
638
- "name": "authentication.audience"
1254
+ "name": "authentication.audience",
1255
+ "type": "zeebe:input"
639
1256
  },
640
1257
  "condition": {
641
- "property": "authenticationType",
642
- "equals": "oauth-client-credentials-flow"
643
- }
1258
+ "property": "authentication.type",
1259
+ "equals": "oauth-client-credentials-flow",
1260
+ "type": "simple"
1261
+ },
1262
+ "type": "String"
644
1263
  },
645
1264
  {
646
- "label": "Client authentication",
647
1265
  "id": "authentication.clientAuthentication",
1266
+ "label": "Client authentication",
1267
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1268
+ "optional": false,
1269
+ "constraints": {
1270
+ "notEmpty": true
1271
+ },
648
1272
  "group": "authentication",
649
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
650
- "value": "basicAuthHeader",
1273
+ "binding": {
1274
+ "name": "authentication.clientAuthentication",
1275
+ "type": "zeebe:input"
1276
+ },
1277
+ "condition": {
1278
+ "property": "authentication.type",
1279
+ "equals": "oauth-client-credentials-flow",
1280
+ "type": "simple"
1281
+ },
651
1282
  "type": "Dropdown",
652
1283
  "choices": [
653
1284
  {
@@ -658,113 +1289,200 @@
658
1289
  "name": "Send as Basic Auth header",
659
1290
  "value": "basicAuthHeader"
660
1291
  }
661
- ],
662
- "binding": {
663
- "type": "zeebe:input",
664
- "name": "authentication.clientAuthentication"
665
- },
666
- "condition": {
667
- "property": "authenticationType",
668
- "equals": "oauth-client-credentials-flow"
669
- }
1292
+ ]
670
1293
  },
671
1294
  {
672
- "label": "Username",
673
- "group": "authentication",
674
- "type": "String",
1295
+ "id": "authentication.scopes",
1296
+ "label": "Scopes",
1297
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1298
+ "optional": true,
675
1299
  "feel": "optional",
1300
+ "group": "authentication",
676
1301
  "binding": {
677
- "type": "zeebe:input",
678
- "name": "authentication.username"
1302
+ "name": "authentication.scopes",
1303
+ "type": "zeebe:input"
1304
+ },
1305
+ "condition": {
1306
+ "property": "authentication.type",
1307
+ "equals": "oauth-client-credentials-flow",
1308
+ "type": "simple"
679
1309
  },
1310
+ "type": "String"
1311
+ },
1312
+ {
1313
+ "id": "graphql.method",
1314
+ "label": "Method",
1315
+ "optional": false,
1316
+ "value": "get",
680
1317
  "constraints": {
681
1318
  "notEmpty": true
682
1319
  },
683
- "condition": {
684
- "property": "authenticationType",
685
- "equals": "basic"
686
- }
1320
+ "group": "endpoint",
1321
+ "binding": {
1322
+ "name": "graphql.method",
1323
+ "type": "zeebe:input"
1324
+ },
1325
+ "type": "Dropdown",
1326
+ "choices": [
1327
+ {
1328
+ "name": "GET",
1329
+ "value": "get"
1330
+ },
1331
+ {
1332
+ "name": "POST",
1333
+ "value": "post"
1334
+ }
1335
+ ]
687
1336
  },
688
1337
  {
689
- "label": "Password",
690
- "group": "authentication",
691
- "type": "String",
1338
+ "id": "graphql.url",
1339
+ "label": "URL",
1340
+ "optional": false,
1341
+ "constraints": {
1342
+ "notEmpty": true,
1343
+ "pattern": {
1344
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1345
+ "message": "Must be a http(s) URL"
1346
+ }
1347
+ },
692
1348
  "feel": "optional",
1349
+ "group": "endpoint",
693
1350
  "binding": {
694
- "type": "zeebe:input",
695
- "name": "authentication.password"
1351
+ "name": "graphql.url",
1352
+ "type": "zeebe:input"
1353
+ },
1354
+ "type": "String"
1355
+ },
1356
+ {
1357
+ "id": "graphql.headers",
1358
+ "label": "Headers",
1359
+ "description": "Map of HTTP headers to add to the request",
1360
+ "optional": true,
1361
+ "feel": "required",
1362
+ "group": "endpoint",
1363
+ "binding": {
1364
+ "name": "graphql.headers",
1365
+ "type": "zeebe:input"
696
1366
  },
1367
+ "type": "String"
1368
+ },
1369
+ {
1370
+ "id": "graphql.query",
1371
+ "label": "Query/Mutation",
1372
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1373
+ "optional": false,
697
1374
  "constraints": {
698
1375
  "notEmpty": true
699
1376
  },
700
- "condition": {
701
- "property": "authenticationType",
702
- "equals": "basic"
703
- }
1377
+ "feel": "optional",
1378
+ "group": "graphql",
1379
+ "binding": {
1380
+ "name": "graphql.query",
1381
+ "type": "zeebe:input"
1382
+ },
1383
+ "type": "Text"
1384
+ },
1385
+ {
1386
+ "id": "graphql.variables",
1387
+ "label": "Variables",
1388
+ "optional": true,
1389
+ "feel": "required",
1390
+ "group": "graphql",
1391
+ "binding": {
1392
+ "name": "graphql.variables",
1393
+ "type": "zeebe:input"
1394
+ },
1395
+ "type": "String"
704
1396
  },
705
1397
  {
706
- "label": "Connection timeout",
1398
+ "id": "graphql.connectionTimeoutInSeconds",
1399
+ "label": "Connection timeout in seconds",
707
1400
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
708
- "group": "timeout",
709
- "type": "String",
1401
+ "optional": true,
710
1402
  "value": "20",
1403
+ "feel": "optional",
1404
+ "group": "timeout",
711
1405
  "binding": {
712
- "type": "zeebe:input",
713
- "name": "graphql.connectionTimeoutInSeconds"
1406
+ "name": "graphql.connectionTimeoutInSeconds",
1407
+ "type": "zeebe:input"
714
1408
  },
715
- "feel": "optional",
716
- "optional": true,
717
- "constraints": {
718
- "notEmpty": false,
719
- "pattern": {
720
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
721
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
722
- }
723
- }
1409
+ "type": "String"
724
1410
  },
725
1411
  {
1412
+ "id": "resultVariable",
726
1413
  "label": "Result variable",
727
1414
  "description": "Name of variable to store the response in",
728
1415
  "group": "output",
729
- "type": "String",
730
1416
  "binding": {
731
- "type": "zeebe:taskHeader",
732
- "key": "resultVariable"
733
- }
1417
+ "key": "resultVariable",
1418
+ "type": "zeebe:taskHeader"
1419
+ },
1420
+ "type": "String"
734
1421
  },
735
1422
  {
1423
+ "id": "resultExpression",
736
1424
  "label": "Result expression",
737
1425
  "description": "Expression to map the response into process variables",
738
- "group": "output",
739
- "type": "Text",
740
1426
  "feel": "required",
1427
+ "group": "output",
741
1428
  "binding": {
742
- "type": "zeebe:taskHeader",
743
- "key": "resultExpression"
744
- }
1429
+ "key": "resultExpression",
1430
+ "type": "zeebe:taskHeader"
1431
+ },
1432
+ "type": "Text"
745
1433
  },
746
1434
  {
1435
+ "id": "errorExpression",
747
1436
  "label": "Error expression",
748
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
749
- "group": "errors",
750
- "type": "Text",
1437
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
751
1438
  "feel": "required",
1439
+ "group": "error",
752
1440
  "binding": {
753
- "type": "zeebe:taskHeader",
754
- "key": "errorExpression"
755
- }
1441
+ "key": "errorExpression",
1442
+ "type": "zeebe:taskHeader"
1443
+ },
1444
+ "type": "Text"
1445
+ },
1446
+ {
1447
+ "id": "retryCount",
1448
+ "label": "Retries",
1449
+ "description": "Number of retries",
1450
+ "value": "3",
1451
+ "feel": "optional",
1452
+ "group": "retries",
1453
+ "binding": {
1454
+ "property": "retries",
1455
+ "type": "zeebe:taskDefinition"
1456
+ },
1457
+ "type": "String"
1458
+ },
1459
+ {
1460
+ "id": "retryBackoff",
1461
+ "label": "Retry backoff",
1462
+ "description": "ISO-8601 duration to wait between retries",
1463
+ "value": "PT0S",
1464
+ "feel": "optional",
1465
+ "group": "retries",
1466
+ "binding": {
1467
+ "key": "retryBackoff",
1468
+ "type": "zeebe:taskHeader"
1469
+ },
1470
+ "type": "String"
756
1471
  }
757
1472
  ],
1473
+ "icon": {
1474
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
1475
+ },
758
1476
  "engines": {
759
- "camunda": "^8.4"
1477
+ "camunda": "^8.5"
760
1478
  }
761
1479
  },
762
1480
  {
763
1481
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
764
- "name": "GraphQL Outbound Connector",
1482
+ "name": "GraphQL connector",
765
1483
  "id": "io.camunda.connectors.GraphQL.v1",
766
1484
  "description": "Execute GraphQL query",
767
- "version": 3,
1485
+ "version": 1,
768
1486
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
769
1487
  "icon": {
770
1488
  "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
@@ -854,7 +1572,7 @@
854
1572
  "constraints": {
855
1573
  "notEmpty": true,
856
1574
  "pattern": {
857
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
1575
+ "value": "^(=|(http://|https://|secrets).*$)",
858
1576
  "message": "Must be a http(s) URL."
859
1577
  }
860
1578
  }
@@ -1097,7 +1815,7 @@
1097
1815
  "constraints": {
1098
1816
  "notEmpty": false,
1099
1817
  "pattern": {
1100
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1818
+ "value": "^(=|([0-9]+|secrets\\..+)$)",
1101
1819
  "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1102
1820
  }
1103
1821
  }
@@ -1141,10 +1859,10 @@
1141
1859
  },
1142
1860
  {
1143
1861
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1144
- "name": "GraphQL connector",
1862
+ "name": "GraphQL Outbound Connector",
1145
1863
  "id": "io.camunda.connectors.GraphQL.v1",
1146
1864
  "description": "Execute GraphQL query",
1147
- "version": 2,
1865
+ "version": 4,
1148
1866
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1149
1867
  "icon": {
1150
1868
  "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
@@ -1234,7 +1952,7 @@
1234
1952
  "constraints": {
1235
1953
  "notEmpty": true,
1236
1954
  "pattern": {
1237
- "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
1955
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
1238
1956
  "message": "Must be a http(s) URL."
1239
1957
  }
1240
1958
  }
@@ -1306,7 +2024,7 @@
1306
2024
  "feel": "optional",
1307
2025
  "binding": {
1308
2026
  "type": "zeebe:input",
1309
- "name": "graphql.authentication.token"
2027
+ "name": "authentication.token"
1310
2028
  },
1311
2029
  "constraints": {
1312
2030
  "notEmpty": true
@@ -1477,7 +2195,7 @@
1477
2195
  "constraints": {
1478
2196
  "notEmpty": false,
1479
2197
  "pattern": {
1480
- "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
2198
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1481
2199
  "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1482
2200
  }
1483
2201
  }
@@ -1516,7 +2234,7 @@
1516
2234
  }
1517
2235
  ],
1518
2236
  "engines": {
1519
- "camunda": "^8.2"
2237
+ "camunda": "^8.4"
1520
2238
  }
1521
2239
  },
1522
2240
  {
@@ -1524,8 +2242,11 @@
1524
2242
  "name": "GraphQL Outbound Connector",
1525
2243
  "id": "io.camunda.connectors.GraphQL.v1",
1526
2244
  "description": "Execute GraphQL query",
2245
+ "metadata": {
2246
+ "keywords": []
2247
+ },
1527
2248
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1528
- "version": 6,
2249
+ "version": 8,
1529
2250
  "category": {
1530
2251
  "id": "connectors",
1531
2252
  "name": "Connectors"
@@ -1534,6 +2255,9 @@
1534
2255
  "elementType": {
1535
2256
  "value": "bpmn:ServiceTask"
1536
2257
  },
2258
+ "engines": {
2259
+ "camunda": "^8.3"
2260
+ },
1537
2261
  "groups": [
1538
2262
  {
1539
2263
  "id": "authentication",
@@ -1551,6 +2275,10 @@
1551
2275
  "id": "timeout",
1552
2276
  "label": "Connection timeout"
1553
2277
  },
2278
+ {
2279
+ "id": "connector",
2280
+ "label": "Connector"
2281
+ },
1554
2282
  {
1555
2283
  "id": "output",
1556
2284
  "label": "Output mapping"
@@ -1928,6 +2656,20 @@
1928
2656
  },
1929
2657
  "type": "String"
1930
2658
  },
2659
+ {
2660
+ "id": "graphql.storeResponse",
2661
+ "label": "Store response",
2662
+ "description": "Store the response as a document in the document store",
2663
+ "optional": false,
2664
+ "value": false,
2665
+ "feel": "static",
2666
+ "group": "endpoint",
2667
+ "binding": {
2668
+ "name": "graphql.storeResponse",
2669
+ "type": "zeebe:input"
2670
+ },
2671
+ "type": "Boolean"
2672
+ },
1931
2673
  {
1932
2674
  "id": "graphql.query",
1933
2675
  "label": "Query/Mutation",
@@ -1961,14 +2703,38 @@
1961
2703
  "label": "Connection timeout in seconds",
1962
2704
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1963
2705
  "optional": true,
1964
- "value": "20",
1965
- "feel": "optional",
2706
+ "value": 20,
2707
+ "feel": "static",
1966
2708
  "group": "timeout",
1967
2709
  "binding": {
1968
2710
  "name": "graphql.connectionTimeoutInSeconds",
1969
2711
  "type": "zeebe:input"
1970
2712
  },
1971
- "type": "String"
2713
+ "type": "Number"
2714
+ },
2715
+ {
2716
+ "id": "version",
2717
+ "label": "Version",
2718
+ "description": "Version of the element template",
2719
+ "value": "8",
2720
+ "group": "connector",
2721
+ "binding": {
2722
+ "key": "elementTemplateVersion",
2723
+ "type": "zeebe:taskHeader"
2724
+ },
2725
+ "type": "Hidden"
2726
+ },
2727
+ {
2728
+ "id": "id",
2729
+ "label": "ID",
2730
+ "description": "ID of the element template",
2731
+ "value": "io.camunda.connectors.GraphQL.v1",
2732
+ "group": "connector",
2733
+ "binding": {
2734
+ "key": "elementTemplateId",
2735
+ "type": "zeebe:taskHeader"
2736
+ },
2737
+ "type": "Hidden"
1972
2738
  },
1973
2739
  {
1974
2740
  "id": "resultVariable",
@@ -2023,7 +2789,6 @@
2023
2789
  "label": "Retry backoff",
2024
2790
  "description": "ISO-8601 duration to wait between retries",
2025
2791
  "value": "PT0S",
2026
- "feel": "optional",
2027
2792
  "group": "retries",
2028
2793
  "binding": {
2029
2794
  "key": "retryBackoff",
@@ -2034,9 +2799,6 @@
2034
2799
  ],
2035
2800
  "icon": {
2036
2801
  "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
2037
- },
2038
- "engines": {
2039
- "camunda": "^8.5"
2040
2802
  }
2041
2803
  },
2042
2804
  {
@@ -2577,14 +3339,14 @@
2577
3339
  },
2578
3340
  {
2579
3341
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2580
- "name": "GraphQL Outbound Connector",
3342
+ "name": "GraphQL connector",
2581
3343
  "id": "io.camunda.connectors.GraphQL.v1",
2582
3344
  "description": "Execute GraphQL query",
2583
- "metadata": {
2584
- "keywords": []
3345
+ "version": 2,
3346
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
3347
+ "icon": {
3348
+ "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
2585
3349
  },
2586
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2587
- "version": 8,
2588
3350
  "category": {
2589
3351
  "id": "connectors",
2590
3352
  "name": "Connectors"
@@ -2593,9 +3355,6 @@
2593
3355
  "elementType": {
2594
3356
  "value": "bpmn:ServiceTask"
2595
3357
  },
2596
- "engines": {
2597
- "camunda": "^8.3"
2598
- },
2599
3358
  "groups": [
2600
3359
  {
2601
3360
  "id": "authentication",
@@ -2603,7 +3362,7 @@
2603
3362
  },
2604
3363
  {
2605
3364
  "id": "endpoint",
2606
- "label": "HTTP Endpoint"
3365
+ "label": "HTTP endpoint"
2607
3366
  },
2608
3367
  {
2609
3368
  "id": "graphql",
@@ -2611,49 +3370,37 @@
2611
3370
  },
2612
3371
  {
2613
3372
  "id": "timeout",
2614
- "label": "Connection timeout"
2615
- },
2616
- {
2617
- "id": "connector",
2618
- "label": "Connector"
3373
+ "label": "Connect timeout"
2619
3374
  },
2620
3375
  {
2621
3376
  "id": "output",
2622
- "label": "Output mapping"
3377
+ "label": "Response mapping"
2623
3378
  },
2624
3379
  {
2625
- "id": "error",
3380
+ "id": "errors",
2626
3381
  "label": "Error handling"
2627
- },
2628
- {
2629
- "id": "retries",
2630
- "label": "Retries"
2631
3382
  }
2632
3383
  ],
2633
3384
  "properties": [
2634
3385
  {
3386
+ "type": "Hidden",
2635
3387
  "value": "io.camunda:connector-graphql:1",
2636
3388
  "binding": {
2637
- "property": "type",
2638
- "type": "zeebe:taskDefinition"
2639
- },
2640
- "type": "Hidden"
3389
+ "type": "zeebe:taskDefinition",
3390
+ "property": "type"
3391
+ }
2641
3392
  },
2642
3393
  {
2643
- "id": "authentication.type",
2644
3394
  "label": "Type",
3395
+ "id": "authenticationType",
3396
+ "group": "authentication",
2645
3397
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2646
3398
  "value": "noAuth",
2647
- "group": "authentication",
2648
- "binding": {
2649
- "name": "authentication.type",
2650
- "type": "zeebe:input"
2651
- },
2652
3399
  "type": "Dropdown",
2653
3400
  "choices": [
2654
3401
  {
2655
- "name": "API key",
2656
- "value": "apiKey"
3402
+ "name": "None",
3403
+ "value": "noAuth"
2657
3404
  },
2658
3405
  {
2659
3406
  "name": "Basic",
@@ -2663,480 +3410,311 @@
2663
3410
  "name": "Bearer token",
2664
3411
  "value": "bearer"
2665
3412
  },
2666
- {
2667
- "name": "None",
2668
- "value": "noAuth"
2669
- },
2670
3413
  {
2671
3414
  "name": "OAuth 2.0",
2672
3415
  "value": "oauth-client-credentials-flow"
2673
3416
  }
2674
- ]
3417
+ ],
3418
+ "binding": {
3419
+ "type": "zeebe:input",
3420
+ "name": "authentication.type"
3421
+ }
2675
3422
  },
2676
3423
  {
2677
- "id": "authentication.apiKeyLocation",
2678
- "label": "Api key location",
2679
- "description": "Choose type: Send API key in header or as query parameter.",
2680
- "optional": false,
2681
- "value": "headers",
2682
- "constraints": {
2683
- "notEmpty": true
2684
- },
2685
- "group": "authentication",
3424
+ "label": "URL",
3425
+ "group": "endpoint",
3426
+ "type": "String",
3427
+ "feel": "optional",
2686
3428
  "binding": {
2687
- "name": "authentication.apiKeyLocation",
2688
- "type": "zeebe:input"
2689
- },
2690
- "condition": {
2691
- "property": "authentication.type",
2692
- "equals": "apiKey",
2693
- "type": "simple"
3429
+ "type": "zeebe:input",
3430
+ "name": "graphql.url"
2694
3431
  },
3432
+ "constraints": {
3433
+ "notEmpty": true,
3434
+ "pattern": {
3435
+ "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
3436
+ "message": "Must be a http(s) URL."
3437
+ }
3438
+ }
3439
+ },
3440
+ {
3441
+ "id": "method",
3442
+ "label": "Method",
3443
+ "group": "endpoint",
2695
3444
  "type": "Dropdown",
3445
+ "value": "post",
2696
3446
  "choices": [
2697
3447
  {
2698
- "name": "Headers",
2699
- "value": "headers"
3448
+ "name": "POST",
3449
+ "value": "post"
2700
3450
  },
2701
3451
  {
2702
- "name": "Query parameters",
2703
- "value": "query"
3452
+ "name": "GET",
3453
+ "value": "get"
2704
3454
  }
2705
- ]
3455
+ ],
3456
+ "binding": {
3457
+ "type": "zeebe:input",
3458
+ "name": "graphql.method"
3459
+ }
2706
3460
  },
2707
3461
  {
2708
- "id": "authentication.name",
2709
- "label": "API key name",
2710
- "optional": false,
2711
- "constraints": {
2712
- "notEmpty": true
2713
- },
2714
- "feel": "optional",
2715
- "group": "authentication",
3462
+ "id": "headers",
3463
+ "label": "Headers",
3464
+ "group": "endpoint",
3465
+ "type": "Text",
3466
+ "feel": "required",
3467
+ "optional": true,
2716
3468
  "binding": {
2717
- "name": "authentication.name",
2718
- "type": "zeebe:input"
2719
- },
2720
- "condition": {
2721
- "property": "authentication.type",
2722
- "equals": "apiKey",
2723
- "type": "simple"
2724
- },
2725
- "type": "String"
3469
+ "type": "zeebe:input",
3470
+ "name": "graphql.headers"
3471
+ }
2726
3472
  },
2727
3473
  {
2728
- "id": "authentication.value",
2729
- "label": "API key value",
2730
- "optional": false,
2731
- "constraints": {
2732
- "notEmpty": true
2733
- },
2734
- "feel": "optional",
2735
- "group": "authentication",
3474
+ "label": "Query/Mutation",
3475
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
3476
+ "group": "graphql",
3477
+ "type": "Text",
3478
+ "language": "graphql",
2736
3479
  "binding": {
2737
- "name": "authentication.value",
2738
- "type": "zeebe:input"
2739
- },
2740
- "condition": {
2741
- "property": "authentication.type",
2742
- "equals": "apiKey",
2743
- "type": "simple"
3480
+ "type": "zeebe:input",
3481
+ "name": "graphql.query"
2744
3482
  },
2745
- "type": "String"
2746
- },
2747
- {
2748
- "id": "authentication.username",
2749
- "label": "Username",
2750
3483
  "optional": false,
2751
3484
  "constraints": {
2752
3485
  "notEmpty": true
2753
- },
2754
- "feel": "optional",
2755
- "group": "authentication",
2756
- "binding": {
2757
- "name": "authentication.username",
2758
- "type": "zeebe:input"
2759
- },
2760
- "condition": {
2761
- "property": "authentication.type",
2762
- "equals": "basic",
2763
- "type": "simple"
2764
- },
2765
- "type": "String"
3486
+ }
2766
3487
  },
2767
3488
  {
2768
- "id": "authentication.password",
2769
- "label": "Password",
2770
- "optional": false,
2771
- "constraints": {
2772
- "notEmpty": true
2773
- },
2774
- "feel": "optional",
2775
- "group": "authentication",
3489
+ "label": "Variables",
3490
+ "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
3491
+ "group": "graphql",
3492
+ "type": "Text",
3493
+ "feel": "required",
2776
3494
  "binding": {
2777
- "name": "authentication.password",
2778
- "type": "zeebe:input"
2779
- },
2780
- "condition": {
2781
- "property": "authentication.type",
2782
- "equals": "basic",
2783
- "type": "simple"
3495
+ "type": "zeebe:input",
3496
+ "name": "graphql.variables"
2784
3497
  },
2785
- "type": "String"
3498
+ "optional": true
2786
3499
  },
2787
3500
  {
2788
- "id": "authentication.token",
2789
3501
  "label": "Bearer token",
2790
- "optional": false,
2791
- "constraints": {
2792
- "notEmpty": true
2793
- },
2794
- "feel": "optional",
2795
3502
  "group": "authentication",
3503
+ "type": "String",
3504
+ "feel": "optional",
2796
3505
  "binding": {
2797
- "name": "authentication.token",
2798
- "type": "zeebe:input"
3506
+ "type": "zeebe:input",
3507
+ "name": "graphql.authentication.token"
2799
3508
  },
2800
- "condition": {
2801
- "property": "authentication.type",
2802
- "equals": "bearer",
2803
- "type": "simple"
3509
+ "constraints": {
3510
+ "notEmpty": true
2804
3511
  },
2805
- "type": "String"
3512
+ "condition": {
3513
+ "property": "authenticationType",
3514
+ "equals": "bearer"
3515
+ }
2806
3516
  },
2807
3517
  {
2808
- "id": "authentication.oauthTokenEndpoint",
2809
- "label": "OAuth 2.0 token endpoint",
3518
+ "label": "OAuth token endpoint",
2810
3519
  "description": "The OAuth token endpoint",
2811
- "optional": false,
2812
- "constraints": {
2813
- "notEmpty": true,
2814
- "pattern": {
2815
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2816
- "message": "Must be a http(s) URL"
2817
- }
2818
- },
2819
- "feel": "optional",
2820
3520
  "group": "authentication",
3521
+ "type": "String",
3522
+ "feel": "optional",
2821
3523
  "binding": {
2822
- "name": "authentication.oauthTokenEndpoint",
2823
- "type": "zeebe:input"
3524
+ "type": "zeebe:input",
3525
+ "name": "authentication.oauthTokenEndpoint"
2824
3526
  },
2825
- "condition": {
2826
- "property": "authentication.type",
2827
- "equals": "oauth-client-credentials-flow",
2828
- "type": "simple"
3527
+ "constraints": {
3528
+ "notEmpty": true
2829
3529
  },
2830
- "type": "String"
3530
+ "condition": {
3531
+ "property": "authenticationType",
3532
+ "equals": "oauth-client-credentials-flow"
3533
+ }
2831
3534
  },
2832
3535
  {
2833
- "id": "authentication.clientId",
2834
3536
  "label": "Client ID",
2835
3537
  "description": "Your application's client ID from the OAuth client",
2836
- "optional": false,
2837
- "constraints": {
2838
- "notEmpty": true
2839
- },
2840
- "feel": "optional",
2841
3538
  "group": "authentication",
3539
+ "type": "String",
3540
+ "feel": "optional",
2842
3541
  "binding": {
2843
- "name": "authentication.clientId",
2844
- "type": "zeebe:input"
2845
- },
2846
- "condition": {
2847
- "property": "authentication.type",
2848
- "equals": "oauth-client-credentials-flow",
2849
- "type": "simple"
3542
+ "type": "zeebe:input",
3543
+ "name": "authentication.clientId"
2850
3544
  },
2851
- "type": "String"
2852
- },
2853
- {
2854
- "id": "authentication.clientSecret",
2855
- "label": "Client secret",
2856
- "description": "Your application's client secret from the OAuth client",
2857
- "optional": false,
2858
3545
  "constraints": {
2859
3546
  "notEmpty": true
2860
3547
  },
2861
- "feel": "optional",
2862
- "group": "authentication",
2863
- "binding": {
2864
- "name": "authentication.clientSecret",
2865
- "type": "zeebe:input"
2866
- },
2867
3548
  "condition": {
2868
- "property": "authentication.type",
2869
- "equals": "oauth-client-credentials-flow",
2870
- "type": "simple"
2871
- },
2872
- "type": "String"
3549
+ "property": "authenticationType",
3550
+ "equals": "oauth-client-credentials-flow"
3551
+ }
2873
3552
  },
2874
3553
  {
2875
- "id": "authentication.audience",
2876
- "label": "Audience",
2877
- "description": "The unique identifier of the target API you want to access",
2878
- "optional": true,
2879
- "feel": "optional",
3554
+ "label": "Client secret",
3555
+ "description": "Your application's client secret from the OAuth client",
2880
3556
  "group": "authentication",
3557
+ "type": "String",
3558
+ "feel": "optional",
2881
3559
  "binding": {
2882
- "name": "authentication.audience",
2883
- "type": "zeebe:input"
2884
- },
2885
- "condition": {
2886
- "property": "authentication.type",
2887
- "equals": "oauth-client-credentials-flow",
2888
- "type": "simple"
3560
+ "type": "zeebe:input",
3561
+ "name": "authentication.clientSecret"
2889
3562
  },
2890
- "type": "String"
2891
- },
2892
- {
2893
- "id": "authentication.clientAuthentication",
2894
- "label": "Client authentication",
2895
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2896
- "optional": false,
2897
3563
  "constraints": {
2898
3564
  "notEmpty": true
2899
3565
  },
2900
- "group": "authentication",
2901
- "binding": {
2902
- "name": "authentication.clientAuthentication",
2903
- "type": "zeebe:input"
2904
- },
2905
3566
  "condition": {
2906
- "property": "authentication.type",
2907
- "equals": "oauth-client-credentials-flow",
2908
- "type": "simple"
2909
- },
2910
- "type": "Dropdown",
2911
- "choices": [
2912
- {
2913
- "name": "Send client credentials in body",
2914
- "value": "credentialsBody"
2915
- },
2916
- {
2917
- "name": "Send as Basic Auth header",
2918
- "value": "basicAuthHeader"
2919
- }
2920
- ]
3567
+ "property": "authenticationType",
3568
+ "equals": "oauth-client-credentials-flow"
3569
+ }
2921
3570
  },
2922
3571
  {
2923
- "id": "authentication.scopes",
2924
3572
  "label": "Scopes",
2925
3573
  "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2926
- "optional": true,
2927
- "feel": "optional",
2928
3574
  "group": "authentication",
3575
+ "type": "String",
3576
+ "feel": "optional",
3577
+ "optional": true,
2929
3578
  "binding": {
2930
- "name": "authentication.scopes",
2931
- "type": "zeebe:input"
3579
+ "type": "zeebe:input",
3580
+ "name": "authentication.scopes"
2932
3581
  },
2933
3582
  "condition": {
2934
- "property": "authentication.type",
2935
- "equals": "oauth-client-credentials-flow",
2936
- "type": "simple"
2937
- },
2938
- "type": "String"
3583
+ "property": "authenticationType",
3584
+ "equals": "oauth-client-credentials-flow"
3585
+ }
2939
3586
  },
2940
3587
  {
2941
- "id": "graphql.method",
2942
- "label": "Method",
2943
- "optional": false,
2944
- "value": "get",
2945
- "constraints": {
2946
- "notEmpty": true
2947
- },
2948
- "group": "endpoint",
3588
+ "label": "Audience",
3589
+ "description": "The unique identifier of the target API you want to access",
3590
+ "group": "authentication",
3591
+ "type": "String",
3592
+ "feel": "optional",
3593
+ "optional": true,
2949
3594
  "binding": {
2950
- "name": "graphql.method",
2951
- "type": "zeebe:input"
3595
+ "type": "zeebe:input",
3596
+ "name": "authentication.audience"
2952
3597
  },
3598
+ "condition": {
3599
+ "property": "authenticationType",
3600
+ "equals": "oauth-client-credentials-flow"
3601
+ }
3602
+ },
3603
+ {
3604
+ "label": "Client authentication",
3605
+ "id": "authentication.clientAuthentication",
3606
+ "group": "authentication",
3607
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
3608
+ "value": "basicAuthHeader",
2953
3609
  "type": "Dropdown",
2954
3610
  "choices": [
2955
3611
  {
2956
- "name": "GET",
2957
- "value": "get"
3612
+ "name": "Send client credentials in body",
3613
+ "value": "credentialsBody"
2958
3614
  },
2959
3615
  {
2960
- "name": "POST",
2961
- "value": "post"
2962
- }
2963
- ]
2964
- },
2965
- {
2966
- "id": "graphql.url",
2967
- "label": "URL",
2968
- "optional": false,
2969
- "constraints": {
2970
- "notEmpty": true,
2971
- "pattern": {
2972
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2973
- "message": "Must be a http(s) URL"
3616
+ "name": "Send as Basic Auth header",
3617
+ "value": "basicAuthHeader"
2974
3618
  }
2975
- },
2976
- "feel": "optional",
2977
- "group": "endpoint",
2978
- "binding": {
2979
- "name": "graphql.url",
2980
- "type": "zeebe:input"
2981
- },
2982
- "type": "String"
2983
- },
2984
- {
2985
- "id": "graphql.headers",
2986
- "label": "Headers",
2987
- "description": "Map of HTTP headers to add to the request",
2988
- "optional": true,
2989
- "feel": "required",
2990
- "group": "endpoint",
3619
+ ],
2991
3620
  "binding": {
2992
- "name": "graphql.headers",
2993
- "type": "zeebe:input"
3621
+ "type": "zeebe:input",
3622
+ "name": "authentication.clientAuthentication"
2994
3623
  },
2995
- "type": "String"
3624
+ "condition": {
3625
+ "property": "authenticationType",
3626
+ "equals": "oauth-client-credentials-flow"
3627
+ }
2996
3628
  },
2997
3629
  {
2998
- "id": "graphql.storeResponse",
2999
- "label": "Store response",
3000
- "description": "Store the response as a document in the document store",
3001
- "optional": false,
3002
- "value": false,
3003
- "feel": "static",
3004
- "group": "endpoint",
3630
+ "label": "Username",
3631
+ "group": "authentication",
3632
+ "type": "String",
3633
+ "feel": "optional",
3005
3634
  "binding": {
3006
- "name": "graphql.storeResponse",
3007
- "type": "zeebe:input"
3635
+ "type": "zeebe:input",
3636
+ "name": "authentication.username"
3008
3637
  },
3009
- "type": "Boolean"
3010
- },
3011
- {
3012
- "id": "graphql.query",
3013
- "label": "Query/Mutation",
3014
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
3015
- "optional": false,
3016
3638
  "constraints": {
3017
3639
  "notEmpty": true
3018
3640
  },
3019
- "feel": "optional",
3020
- "group": "graphql",
3021
- "binding": {
3022
- "name": "graphql.query",
3023
- "type": "zeebe:input"
3024
- },
3025
- "type": "Text"
3641
+ "condition": {
3642
+ "property": "authenticationType",
3643
+ "equals": "basic"
3644
+ }
3026
3645
  },
3027
3646
  {
3028
- "id": "graphql.variables",
3029
- "label": "Variables",
3030
- "optional": true,
3031
- "feel": "required",
3032
- "group": "graphql",
3647
+ "label": "Password",
3648
+ "group": "authentication",
3649
+ "type": "String",
3650
+ "feel": "optional",
3033
3651
  "binding": {
3034
- "name": "graphql.variables",
3035
- "type": "zeebe:input"
3652
+ "type": "zeebe:input",
3653
+ "name": "authentication.password"
3036
3654
  },
3037
- "type": "String"
3655
+ "constraints": {
3656
+ "notEmpty": true
3657
+ },
3658
+ "condition": {
3659
+ "property": "authenticationType",
3660
+ "equals": "basic"
3661
+ }
3038
3662
  },
3039
3663
  {
3040
- "id": "graphql.connectionTimeoutInSeconds",
3041
- "label": "Connection timeout in seconds",
3664
+ "label": "Connection timeout",
3042
3665
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
3043
- "optional": true,
3044
- "value": 20,
3045
- "feel": "static",
3046
3666
  "group": "timeout",
3667
+ "type": "String",
3668
+ "value": "20",
3047
3669
  "binding": {
3048
- "name": "graphql.connectionTimeoutInSeconds",
3049
- "type": "zeebe:input"
3050
- },
3051
- "type": "Number"
3052
- },
3053
- {
3054
- "id": "version",
3055
- "label": "Version",
3056
- "description": "Version of the element template",
3057
- "value": "8",
3058
- "group": "connector",
3059
- "binding": {
3060
- "key": "elementTemplateVersion",
3061
- "type": "zeebe:taskHeader"
3062
- },
3063
- "type": "Hidden"
3064
- },
3065
- {
3066
- "id": "id",
3067
- "label": "ID",
3068
- "description": "ID of the element template",
3069
- "value": "io.camunda.connectors.GraphQL.v1",
3070
- "group": "connector",
3071
- "binding": {
3072
- "key": "elementTemplateId",
3073
- "type": "zeebe:taskHeader"
3670
+ "type": "zeebe:input",
3671
+ "name": "graphql.connectionTimeoutInSeconds"
3074
3672
  },
3075
- "type": "Hidden"
3673
+ "feel": "optional",
3674
+ "optional": true,
3675
+ "constraints": {
3676
+ "notEmpty": false,
3677
+ "pattern": {
3678
+ "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
3679
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
3680
+ }
3681
+ }
3076
3682
  },
3077
3683
  {
3078
- "id": "resultVariable",
3079
3684
  "label": "Result variable",
3080
3685
  "description": "Name of variable to store the response in",
3081
3686
  "group": "output",
3687
+ "type": "String",
3082
3688
  "binding": {
3083
- "key": "resultVariable",
3084
- "type": "zeebe:taskHeader"
3085
- },
3086
- "type": "String"
3689
+ "type": "zeebe:taskHeader",
3690
+ "key": "resultVariable"
3691
+ }
3087
3692
  },
3088
3693
  {
3089
- "id": "resultExpression",
3090
3694
  "label": "Result expression",
3091
3695
  "description": "Expression to map the response into process variables",
3092
- "feel": "required",
3093
3696
  "group": "output",
3697
+ "type": "Text",
3698
+ "feel": "required",
3094
3699
  "binding": {
3095
- "key": "resultExpression",
3096
- "type": "zeebe:taskHeader"
3097
- },
3098
- "type": "Text"
3700
+ "type": "zeebe:taskHeader",
3701
+ "key": "resultExpression"
3702
+ }
3099
3703
  },
3100
3704
  {
3101
- "id": "errorExpression",
3102
3705
  "label": "Error expression",
3103
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
3706
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
3707
+ "group": "errors",
3708
+ "type": "Text",
3104
3709
  "feel": "required",
3105
- "group": "error",
3106
- "binding": {
3107
- "key": "errorExpression",
3108
- "type": "zeebe:taskHeader"
3109
- },
3110
- "type": "Text"
3111
- },
3112
- {
3113
- "id": "retryCount",
3114
- "label": "Retries",
3115
- "description": "Number of retries",
3116
- "value": "3",
3117
- "feel": "optional",
3118
- "group": "retries",
3119
- "binding": {
3120
- "property": "retries",
3121
- "type": "zeebe:taskDefinition"
3122
- },
3123
- "type": "String"
3124
- },
3125
- {
3126
- "id": "retryBackoff",
3127
- "label": "Retry backoff",
3128
- "description": "ISO-8601 duration to wait between retries",
3129
- "value": "PT0S",
3130
- "group": "retries",
3131
3710
  "binding": {
3132
- "key": "retryBackoff",
3133
- "type": "zeebe:taskHeader"
3134
- },
3135
- "type": "String"
3711
+ "type": "zeebe:taskHeader",
3712
+ "key": "errorExpression"
3713
+ }
3136
3714
  }
3137
3715
  ],
3138
- "icon": {
3139
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
3716
+ "engines": {
3717
+ "camunda": "^8.2"
3140
3718
  }
3141
3719
  }
3142
3720
  ]