@camunda/connectors-element-templates 1.0.4 → 1.0.6

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 (80) hide show
  1. package/package.json +1 -1
  2. package/src/connectors.js +10 -2
  3. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +157 -0
  4. package/src/element-templates/agenticai-aiagent-outbound-connector.json +1521 -0
  5. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +1 -1
  6. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +2 -1
  7. package/src/element-templates/asana-connector.json +8 -8
  8. package/src/element-templates/automation-anywhere-outbound-connector.json +837 -15
  9. package/src/element-templates/aws-bedrock-outbound-connector.json +74 -74
  10. package/src/element-templates/aws-dynamodb-outbound-connector.json +2624 -2624
  11. package/src/element-templates/aws-eventbridge-connector-start-event.json +18 -15
  12. package/src/element-templates/aws-eventbridge-outbound-connector.json +305 -305
  13. package/src/element-templates/aws-lambda-outbound-connector.json +182 -182
  14. package/src/element-templates/aws-s3-outbound-connector.json +30 -30
  15. package/src/element-templates/aws-sns-inbound-intermediate.json +460 -460
  16. package/src/element-templates/aws-sns-inbound-message-start.json +336 -336
  17. package/src/element-templates/aws-sns-outbound-connector.json +719 -719
  18. package/src/element-templates/aws-sqs-boundary-connector.json +444 -444
  19. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +919 -919
  20. package/src/element-templates/aws-sqs-outbound-connector.json +434 -434
  21. package/src/element-templates/aws-sqs-start-event-connector.json +387 -387
  22. package/src/element-templates/aws-sqs-start-message.json +463 -463
  23. package/src/element-templates/aws-textract-outbound-connector.json +123 -123
  24. package/src/element-templates/azure-blobstorage-outbound-connector.json +349 -0
  25. package/src/element-templates/azure-open-ai-connector.json +32 -32
  26. package/src/element-templates/blue-prism-connector.json +47 -47
  27. package/src/element-templates/csv-outbound-connector.json +392 -0
  28. package/src/element-templates/easy-post-connector.json +149 -149
  29. package/src/element-templates/email-inbound-connector-intermediate.json +19 -19
  30. package/src/element-templates/email-outbound-connector.json +199 -199
  31. package/src/element-templates/embeddings-vector-database-outbound-connector.json +3473 -150
  32. package/src/element-templates/github-connector.json +3711 -3711
  33. package/src/element-templates/github-webhook-connector-boundary.json +16 -16
  34. package/src/element-templates/github-webhook-connector-intermediate.json +25 -25
  35. package/src/element-templates/github-webhook-connector-message-start.json +21 -21
  36. package/src/element-templates/github-webhook-connector-start-event.json +13 -10
  37. package/src/element-templates/gitlab-connector.json +3165 -3165
  38. package/src/element-templates/google-cloud-storage-outbound-connector.json +357 -0
  39. package/src/element-templates/google-drive-outbound-connector.json +495 -182
  40. package/src/element-templates/google-maps-platform-connector.json +534 -45
  41. package/src/element-templates/google-sheets-outbound-connector.json +1359 -1359
  42. package/src/element-templates/graphql-outbound-connector.json +1716 -1716
  43. package/src/element-templates/http-json-connector.json +2067 -1155
  44. package/src/element-templates/http-polling-boundary-catch-event-connector.json +255 -552
  45. package/src/element-templates/http-polling-connector.json +260 -557
  46. package/src/element-templates/idp-extraction-outbound-connector.json +115 -0
  47. package/src/element-templates/jdbc-outbound-connector.json +402 -0
  48. package/src/element-templates/kafka-inbound-connector-boundary.json +481 -481
  49. package/src/element-templates/kafka-inbound-connector-intermediate.json +555 -555
  50. package/src/element-templates/kafka-inbound-connector-start-message.json +532 -532
  51. package/src/element-templates/kafka-inbound-connector.json +606 -0
  52. package/src/element-templates/kafka-outbound-connector.json +434 -434
  53. package/src/element-templates/microsoft-office365-mail-connector.json +60 -60
  54. package/src/element-templates/microsoft-teams-outbound-connector.json +2899 -2899
  55. package/src/element-templates/openai-connector.json +363 -5
  56. package/src/element-templates/operate-connector.json +525 -9
  57. package/src/element-templates/power-automate-connector.json +1724 -0
  58. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +323 -323
  59. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +458 -458
  60. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +557 -557
  61. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +351 -351
  62. package/src/element-templates/rabbitmq-outbound-connector.json +873 -873
  63. package/src/element-templates/salesforce-connector.json +10 -10
  64. package/src/element-templates/sendgrid-outbound-connector.json +536 -4
  65. package/src/element-templates/slack-inbound-boundary.json +265 -265
  66. package/src/element-templates/slack-inbound-intermediate.json +430 -430
  67. package/src/element-templates/slack-inbound-message-start.json +320 -320
  68. package/src/element-templates/slack-inbound-start-event.json +126 -123
  69. package/src/element-templates/slack-outbound-connector.json +485 -230
  70. package/src/element-templates/twilio-connector.json +59 -59
  71. package/src/element-templates/twilio-webhook-boundary-connector.json +28 -28
  72. package/src/element-templates/twilio-webhook-connector.json +13 -10
  73. package/src/element-templates/twilio-webhook-message-start-connector.json +8 -8
  74. package/src/element-templates/uipath-connector.json +44 -44
  75. package/src/element-templates/webhook-connector-boundary.json +582 -582
  76. package/src/element-templates/webhook-connector-intermediate.json +1143 -1143
  77. package/src/element-templates/webhook-connector-start-event.json +2104 -2101
  78. package/src/element-templates/webhook-connector-start-message.json +1148 -1148
  79. package/src/element-templates/whatsapp-connector.json +6 -6
  80. package/src/element-templates/agenticai-aiagent-outbound-connector-8.8.0-alpha4.json +0 -843
@@ -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": 8,
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.3"
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,202 +87,250 @@
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
- }
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"
264
315
  },
265
316
  {
266
- "label": "Client authentication",
267
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
+ },
268
324
  "group": "authentication",
269
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
270
- "value": "basicAuthHeader",
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
+ },
271
334
  "type": "Dropdown",
272
335
  "choices": [
273
336
  {
@@ -278,114 +341,238 @@
278
341
  "name": "Send as Basic Auth header",
279
342
  "value": "basicAuthHeader"
280
343
  }
281
- ],
282
- "binding": {
283
- "type": "zeebe:input",
284
- "name": "authentication.clientAuthentication"
285
- },
286
- "condition": {
287
- "property": "authenticationType",
288
- "equals": "oauth-client-credentials-flow"
289
- }
344
+ ]
290
345
  },
291
346
  {
292
- "label": "Username",
293
- "group": "authentication",
294
- "type": "String",
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,
295
351
  "feel": "optional",
352
+ "group": "authentication",
296
353
  "binding": {
297
- "type": "zeebe:input",
298
- "name": "authentication.username"
354
+ "name": "authentication.scopes",
355
+ "type": "zeebe:input"
299
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",
300
369
  "constraints": {
301
370
  "notEmpty": true
302
371
  },
303
- "condition": {
304
- "property": "authenticationType",
305
- "equals": "basic"
306
- }
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
+ ]
307
388
  },
308
389
  {
309
- "label": "Password",
310
- "group": "authentication",
311
- "type": "String",
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
+ },
312
400
  "feel": "optional",
401
+ "group": "endpoint",
313
402
  "binding": {
314
- "type": "zeebe:input",
315
- "name": "authentication.password"
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"
316
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,
317
440
  "constraints": {
318
441
  "notEmpty": true
319
442
  },
320
- "condition": {
321
- "property": "authenticationType",
322
- "equals": "basic"
323
- }
443
+ "feel": "optional",
444
+ "group": "graphql",
445
+ "binding": {
446
+ "name": "graphql.query",
447
+ "type": "zeebe:input"
448
+ },
449
+ "type": "Text"
324
450
  },
325
451
  {
326
- "label": "Connection timeout",
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",
327
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",
328
470
  "group": "timeout",
329
- "type": "String",
330
- "value": "20",
331
471
  "binding": {
332
- "type": "zeebe:input",
333
- "name": "graphql.connectionTimeoutInSeconds"
472
+ "name": "graphql.connectionTimeoutInSeconds",
473
+ "type": "zeebe:input"
334
474
  },
335
- "feel": "optional",
336
- "optional": true,
337
- "constraints": {
338
- "notEmpty": false,
339
- "pattern": {
340
- "value": "^(=|([0-9]+|secrets\\..+)$)",
341
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
342
- }
343
- }
475
+ "type": "Number"
344
476
  },
345
477
  {
478
+ "id": "version",
479
+ "label": "Version",
480
+ "description": "Version of the element template",
481
+ "value": "8",
482
+ "group": "connector",
483
+ "binding": {
484
+ "key": "elementTemplateVersion",
485
+ "type": "zeebe:taskHeader"
486
+ },
487
+ "type": "Hidden"
488
+ },
489
+ {
490
+ "id": "id",
491
+ "label": "ID",
492
+ "description": "ID of the element template",
493
+ "value": "io.camunda.connectors.GraphQL.v1",
494
+ "group": "connector",
495
+ "binding": {
496
+ "key": "elementTemplateId",
497
+ "type": "zeebe:taskHeader"
498
+ },
499
+ "type": "Hidden"
500
+ },
501
+ {
502
+ "id": "resultVariable",
346
503
  "label": "Result variable",
347
504
  "description": "Name of variable to store the response in",
348
505
  "group": "output",
349
- "type": "String",
350
506
  "binding": {
351
- "type": "zeebe:taskHeader",
352
- "key": "resultVariable"
353
- }
507
+ "key": "resultVariable",
508
+ "type": "zeebe:taskHeader"
509
+ },
510
+ "type": "String"
354
511
  },
355
512
  {
513
+ "id": "resultExpression",
356
514
  "label": "Result expression",
357
515
  "description": "Expression to map the response into process variables",
358
- "group": "output",
359
- "type": "Text",
360
516
  "feel": "required",
517
+ "group": "output",
361
518
  "binding": {
362
- "type": "zeebe:taskHeader",
363
- "key": "resultExpression"
364
- }
519
+ "key": "resultExpression",
520
+ "type": "zeebe:taskHeader"
521
+ },
522
+ "type": "Text"
365
523
  },
366
524
  {
525
+ "id": "errorExpression",
367
526
  "label": "Error expression",
368
- "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>",
369
- "group": "errors",
370
- "type": "Text",
527
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
371
528
  "feel": "required",
529
+ "group": "error",
372
530
  "binding": {
373
- "type": "zeebe:taskHeader",
374
- "key": "errorExpression"
375
- }
531
+ "key": "errorExpression",
532
+ "type": "zeebe:taskHeader"
533
+ },
534
+ "type": "Text"
535
+ },
536
+ {
537
+ "id": "retryCount",
538
+ "label": "Retries",
539
+ "description": "Number of retries",
540
+ "value": "3",
541
+ "feel": "optional",
542
+ "group": "retries",
543
+ "binding": {
544
+ "property": "retries",
545
+ "type": "zeebe:taskDefinition"
546
+ },
547
+ "type": "String"
548
+ },
549
+ {
550
+ "id": "retryBackoff",
551
+ "label": "Retry backoff",
552
+ "description": "ISO-8601 duration to wait between retries",
553
+ "value": "PT0S",
554
+ "group": "retries",
555
+ "binding": {
556
+ "key": "retryBackoff",
557
+ "type": "zeebe:taskHeader"
558
+ },
559
+ "type": "String"
376
560
  }
377
561
  ],
378
- "engines": {
379
- "camunda": "^8.2"
562
+ "icon": {
563
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
380
564
  }
381
565
  },
382
566
  {
383
567
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
384
- "name": "GraphQL Outbound Connector",
568
+ "name": "GraphQL connector",
385
569
  "id": "io.camunda.connectors.GraphQL.v1",
386
570
  "description": "Execute GraphQL query",
387
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
388
- "version": 6,
571
+ "version": 2,
572
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
573
+ "icon": {
574
+ "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"
575
+ },
389
576
  "category": {
390
577
  "id": "connectors",
391
578
  "name": "Connectors"
@@ -401,7 +588,7 @@
401
588
  },
402
589
  {
403
590
  "id": "endpoint",
404
- "label": "HTTP Endpoint"
591
+ "label": "HTTP endpoint"
405
592
  },
406
593
  {
407
594
  "id": "graphql",
@@ -409,45 +596,37 @@
409
596
  },
410
597
  {
411
598
  "id": "timeout",
412
- "label": "Connection timeout"
599
+ "label": "Connect timeout"
413
600
  },
414
601
  {
415
602
  "id": "output",
416
- "label": "Output mapping"
603
+ "label": "Response mapping"
417
604
  },
418
605
  {
419
- "id": "error",
606
+ "id": "errors",
420
607
  "label": "Error handling"
421
- },
422
- {
423
- "id": "retries",
424
- "label": "Retries"
425
608
  }
426
609
  ],
427
610
  "properties": [
428
611
  {
612
+ "type": "Hidden",
429
613
  "value": "io.camunda:connector-graphql:1",
430
614
  "binding": {
431
- "property": "type",
432
- "type": "zeebe:taskDefinition"
433
- },
434
- "type": "Hidden"
615
+ "type": "zeebe:taskDefinition",
616
+ "property": "type"
617
+ }
435
618
  },
436
619
  {
437
- "id": "authentication.type",
438
620
  "label": "Type",
621
+ "id": "authenticationType",
622
+ "group": "authentication",
439
623
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
440
624
  "value": "noAuth",
441
- "group": "authentication",
442
- "binding": {
443
- "name": "authentication.type",
444
- "type": "zeebe:input"
445
- },
446
625
  "type": "Dropdown",
447
626
  "choices": [
448
627
  {
449
- "name": "API key",
450
- "value": "apiKey"
628
+ "name": "None",
629
+ "value": "noAuth"
451
630
  },
452
631
  {
453
632
  "name": "Basic",
@@ -457,250 +636,202 @@
457
636
  "name": "Bearer token",
458
637
  "value": "bearer"
459
638
  },
460
- {
461
- "name": "None",
462
- "value": "noAuth"
463
- },
464
639
  {
465
640
  "name": "OAuth 2.0",
466
641
  "value": "oauth-client-credentials-flow"
467
642
  }
468
- ]
643
+ ],
644
+ "binding": {
645
+ "type": "zeebe:input",
646
+ "name": "authentication.type"
647
+ }
469
648
  },
470
649
  {
471
- "id": "authentication.apiKeyLocation",
472
- "label": "Api key location",
473
- "description": "Choose type: Send API key in header or as query parameter.",
474
- "optional": false,
475
- "value": "headers",
476
- "constraints": {
477
- "notEmpty": true
478
- },
479
- "group": "authentication",
650
+ "label": "URL",
651
+ "group": "endpoint",
652
+ "type": "String",
653
+ "feel": "optional",
480
654
  "binding": {
481
- "name": "authentication.apiKeyLocation",
482
- "type": "zeebe:input"
483
- },
484
- "condition": {
485
- "property": "authentication.type",
486
- "equals": "apiKey",
487
- "type": "simple"
655
+ "type": "zeebe:input",
656
+ "name": "graphql.url"
488
657
  },
658
+ "constraints": {
659
+ "notEmpty": true,
660
+ "pattern": {
661
+ "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
662
+ "message": "Must be a http(s) URL."
663
+ }
664
+ }
665
+ },
666
+ {
667
+ "id": "method",
668
+ "label": "Method",
669
+ "group": "endpoint",
489
670
  "type": "Dropdown",
671
+ "value": "post",
490
672
  "choices": [
491
673
  {
492
- "name": "Headers",
493
- "value": "headers"
674
+ "name": "POST",
675
+ "value": "post"
494
676
  },
495
677
  {
496
- "name": "Query parameters",
497
- "value": "query"
678
+ "name": "GET",
679
+ "value": "get"
498
680
  }
499
- ]
681
+ ],
682
+ "binding": {
683
+ "type": "zeebe:input",
684
+ "name": "graphql.method"
685
+ }
500
686
  },
501
687
  {
502
- "id": "authentication.name",
503
- "label": "API key name",
504
- "optional": false,
505
- "constraints": {
506
- "notEmpty": true
507
- },
508
- "feel": "optional",
509
- "group": "authentication",
688
+ "id": "headers",
689
+ "label": "Headers",
690
+ "group": "endpoint",
691
+ "type": "Text",
692
+ "feel": "required",
693
+ "optional": true,
510
694
  "binding": {
511
- "name": "authentication.name",
512
- "type": "zeebe:input"
513
- },
514
- "condition": {
515
- "property": "authentication.type",
516
- "equals": "apiKey",
517
- "type": "simple"
518
- },
519
- "type": "String"
695
+ "type": "zeebe:input",
696
+ "name": "graphql.headers"
697
+ }
520
698
  },
521
699
  {
522
- "id": "authentication.value",
523
- "label": "API key value",
524
- "optional": false,
525
- "constraints": {
526
- "notEmpty": true
527
- },
528
- "feel": "optional",
529
- "group": "authentication",
700
+ "label": "Query/Mutation",
701
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
702
+ "group": "graphql",
703
+ "type": "Text",
704
+ "language": "graphql",
530
705
  "binding": {
531
- "name": "authentication.value",
532
- "type": "zeebe:input"
533
- },
534
- "condition": {
535
- "property": "authentication.type",
536
- "equals": "apiKey",
537
- "type": "simple"
706
+ "type": "zeebe:input",
707
+ "name": "graphql.query"
538
708
  },
539
- "type": "String"
540
- },
541
- {
542
- "id": "authentication.username",
543
- "label": "Username",
544
709
  "optional": false,
545
710
  "constraints": {
546
711
  "notEmpty": true
547
- },
548
- "feel": "optional",
549
- "group": "authentication",
550
- "binding": {
551
- "name": "authentication.username",
552
- "type": "zeebe:input"
553
- },
554
- "condition": {
555
- "property": "authentication.type",
556
- "equals": "basic",
557
- "type": "simple"
558
- },
559
- "type": "String"
712
+ }
560
713
  },
561
714
  {
562
- "id": "authentication.password",
563
- "label": "Password",
564
- "optional": false,
565
- "constraints": {
566
- "notEmpty": true
567
- },
568
- "feel": "optional",
569
- "group": "authentication",
715
+ "label": "Variables",
716
+ "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>",
717
+ "group": "graphql",
718
+ "type": "Text",
719
+ "feel": "required",
570
720
  "binding": {
571
- "name": "authentication.password",
572
- "type": "zeebe:input"
573
- },
574
- "condition": {
575
- "property": "authentication.type",
576
- "equals": "basic",
577
- "type": "simple"
721
+ "type": "zeebe:input",
722
+ "name": "graphql.variables"
578
723
  },
579
- "type": "String"
724
+ "optional": true
580
725
  },
581
726
  {
582
- "id": "authentication.token",
583
727
  "label": "Bearer token",
584
- "optional": false,
585
- "constraints": {
586
- "notEmpty": true
587
- },
588
- "feel": "optional",
589
728
  "group": "authentication",
729
+ "type": "String",
730
+ "feel": "optional",
590
731
  "binding": {
591
- "name": "authentication.token",
592
- "type": "zeebe:input"
732
+ "type": "zeebe:input",
733
+ "name": "graphql.authentication.token"
593
734
  },
594
- "condition": {
595
- "property": "authentication.type",
596
- "equals": "bearer",
597
- "type": "simple"
735
+ "constraints": {
736
+ "notEmpty": true
598
737
  },
599
- "type": "String"
738
+ "condition": {
739
+ "property": "authenticationType",
740
+ "equals": "bearer"
741
+ }
600
742
  },
601
743
  {
602
- "id": "authentication.oauthTokenEndpoint",
603
- "label": "OAuth 2.0 token endpoint",
744
+ "label": "OAuth token endpoint",
604
745
  "description": "The OAuth token endpoint",
605
- "optional": false,
606
- "constraints": {
607
- "notEmpty": true,
608
- "pattern": {
609
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
610
- "message": "Must be a http(s) URL"
611
- }
612
- },
613
- "feel": "optional",
614
746
  "group": "authentication",
747
+ "type": "String",
748
+ "feel": "optional",
615
749
  "binding": {
616
- "name": "authentication.oauthTokenEndpoint",
617
- "type": "zeebe:input"
750
+ "type": "zeebe:input",
751
+ "name": "authentication.oauthTokenEndpoint"
618
752
  },
619
- "condition": {
620
- "property": "authentication.type",
621
- "equals": "oauth-client-credentials-flow",
622
- "type": "simple"
753
+ "constraints": {
754
+ "notEmpty": true
623
755
  },
624
- "type": "String"
756
+ "condition": {
757
+ "property": "authenticationType",
758
+ "equals": "oauth-client-credentials-flow"
759
+ }
625
760
  },
626
761
  {
627
- "id": "authentication.clientId",
628
762
  "label": "Client ID",
629
- "description": "Your application's client ID from the OAuth client",
630
- "optional": false,
631
- "constraints": {
632
- "notEmpty": true
633
- },
634
- "feel": "optional",
763
+ "description": "Your application's client ID from the OAuth client",
635
764
  "group": "authentication",
765
+ "type": "String",
766
+ "feel": "optional",
636
767
  "binding": {
637
- "name": "authentication.clientId",
638
- "type": "zeebe:input"
768
+ "type": "zeebe:input",
769
+ "name": "authentication.clientId"
639
770
  },
640
- "condition": {
641
- "property": "authentication.type",
642
- "equals": "oauth-client-credentials-flow",
643
- "type": "simple"
771
+ "constraints": {
772
+ "notEmpty": true
644
773
  },
645
- "type": "String"
774
+ "condition": {
775
+ "property": "authenticationType",
776
+ "equals": "oauth-client-credentials-flow"
777
+ }
646
778
  },
647
779
  {
648
- "id": "authentication.clientSecret",
649
780
  "label": "Client secret",
650
781
  "description": "Your application's client secret from the OAuth client",
651
- "optional": false,
782
+ "group": "authentication",
783
+ "type": "String",
784
+ "feel": "optional",
785
+ "binding": {
786
+ "type": "zeebe:input",
787
+ "name": "authentication.clientSecret"
788
+ },
652
789
  "constraints": {
653
790
  "notEmpty": true
654
791
  },
655
- "feel": "optional",
792
+ "condition": {
793
+ "property": "authenticationType",
794
+ "equals": "oauth-client-credentials-flow"
795
+ }
796
+ },
797
+ {
798
+ "label": "Scopes",
799
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
656
800
  "group": "authentication",
801
+ "type": "String",
802
+ "feel": "optional",
803
+ "optional": true,
657
804
  "binding": {
658
- "name": "authentication.clientSecret",
659
- "type": "zeebe:input"
805
+ "type": "zeebe:input",
806
+ "name": "authentication.scopes"
660
807
  },
661
808
  "condition": {
662
- "property": "authentication.type",
663
- "equals": "oauth-client-credentials-flow",
664
- "type": "simple"
665
- },
666
- "type": "String"
809
+ "property": "authenticationType",
810
+ "equals": "oauth-client-credentials-flow"
811
+ }
667
812
  },
668
813
  {
669
- "id": "authentication.audience",
670
814
  "label": "Audience",
671
815
  "description": "The unique identifier of the target API you want to access",
672
- "optional": true,
673
- "feel": "optional",
674
816
  "group": "authentication",
817
+ "type": "String",
818
+ "feel": "optional",
819
+ "optional": true,
675
820
  "binding": {
676
- "name": "authentication.audience",
677
- "type": "zeebe:input"
821
+ "type": "zeebe:input",
822
+ "name": "authentication.audience"
678
823
  },
679
824
  "condition": {
680
- "property": "authentication.type",
681
- "equals": "oauth-client-credentials-flow",
682
- "type": "simple"
683
- },
684
- "type": "String"
825
+ "property": "authenticationType",
826
+ "equals": "oauth-client-credentials-flow"
827
+ }
685
828
  },
686
829
  {
687
- "id": "authentication.clientAuthentication",
688
830
  "label": "Client authentication",
689
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
690
- "optional": false,
691
- "constraints": {
692
- "notEmpty": true
693
- },
831
+ "id": "authentication.clientAuthentication",
694
832
  "group": "authentication",
695
- "binding": {
696
- "name": "authentication.clientAuthentication",
697
- "type": "zeebe:input"
698
- },
699
- "condition": {
700
- "property": "authentication.type",
701
- "equals": "oauth-client-credentials-flow",
702
- "type": "simple"
703
- },
833
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
834
+ "value": "basicAuthHeader",
704
835
  "type": "Dropdown",
705
836
  "choices": [
706
837
  {
@@ -711,200 +842,113 @@
711
842
  "name": "Send as Basic Auth header",
712
843
  "value": "basicAuthHeader"
713
844
  }
714
- ]
715
- },
716
- {
717
- "id": "authentication.scopes",
718
- "label": "Scopes",
719
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
720
- "optional": true,
721
- "feel": "optional",
722
- "group": "authentication",
845
+ ],
723
846
  "binding": {
724
- "name": "authentication.scopes",
725
- "type": "zeebe:input"
847
+ "type": "zeebe:input",
848
+ "name": "authentication.clientAuthentication"
726
849
  },
727
850
  "condition": {
728
- "property": "authentication.type",
729
- "equals": "oauth-client-credentials-flow",
730
- "type": "simple"
731
- },
732
- "type": "String"
851
+ "property": "authenticationType",
852
+ "equals": "oauth-client-credentials-flow"
853
+ }
733
854
  },
734
855
  {
735
- "id": "graphql.method",
736
- "label": "Method",
737
- "optional": false,
738
- "value": "get",
739
- "constraints": {
740
- "notEmpty": true
741
- },
742
- "group": "endpoint",
856
+ "label": "Username",
857
+ "group": "authentication",
858
+ "type": "String",
859
+ "feel": "optional",
743
860
  "binding": {
744
- "name": "graphql.method",
745
- "type": "zeebe:input"
861
+ "type": "zeebe:input",
862
+ "name": "authentication.username"
746
863
  },
747
- "type": "Dropdown",
748
- "choices": [
749
- {
750
- "name": "GET",
751
- "value": "get"
752
- },
753
- {
754
- "name": "POST",
755
- "value": "post"
756
- }
757
- ]
758
- },
759
- {
760
- "id": "graphql.url",
761
- "label": "URL",
762
- "optional": false,
763
864
  "constraints": {
764
- "notEmpty": true,
765
- "pattern": {
766
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
767
- "message": "Must be a http(s) URL"
768
- }
769
- },
770
- "feel": "optional",
771
- "group": "endpoint",
772
- "binding": {
773
- "name": "graphql.url",
774
- "type": "zeebe:input"
865
+ "notEmpty": true
775
866
  },
776
- "type": "String"
867
+ "condition": {
868
+ "property": "authenticationType",
869
+ "equals": "basic"
870
+ }
777
871
  },
778
872
  {
779
- "id": "graphql.headers",
780
- "label": "Headers",
781
- "description": "Map of HTTP headers to add to the request",
782
- "optional": true,
783
- "feel": "required",
784
- "group": "endpoint",
873
+ "label": "Password",
874
+ "group": "authentication",
875
+ "type": "String",
876
+ "feel": "optional",
785
877
  "binding": {
786
- "name": "graphql.headers",
787
- "type": "zeebe:input"
878
+ "type": "zeebe:input",
879
+ "name": "authentication.password"
788
880
  },
789
- "type": "String"
790
- },
791
- {
792
- "id": "graphql.query",
793
- "label": "Query/Mutation",
794
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
795
- "optional": false,
796
881
  "constraints": {
797
882
  "notEmpty": true
798
883
  },
799
- "feel": "optional",
800
- "group": "graphql",
801
- "binding": {
802
- "name": "graphql.query",
803
- "type": "zeebe:input"
804
- },
805
- "type": "Text"
806
- },
807
- {
808
- "id": "graphql.variables",
809
- "label": "Variables",
810
- "optional": true,
811
- "feel": "required",
812
- "group": "graphql",
813
- "binding": {
814
- "name": "graphql.variables",
815
- "type": "zeebe:input"
816
- },
817
- "type": "String"
884
+ "condition": {
885
+ "property": "authenticationType",
886
+ "equals": "basic"
887
+ }
818
888
  },
819
889
  {
820
- "id": "graphql.connectionTimeoutInSeconds",
821
- "label": "Connection timeout in seconds",
890
+ "label": "Connection timeout",
822
891
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
823
- "optional": true,
824
- "value": "20",
825
- "feel": "optional",
826
892
  "group": "timeout",
893
+ "type": "String",
894
+ "value": "20",
827
895
  "binding": {
828
- "name": "graphql.connectionTimeoutInSeconds",
829
- "type": "zeebe:input"
896
+ "type": "zeebe:input",
897
+ "name": "graphql.connectionTimeoutInSeconds"
830
898
  },
831
- "type": "String"
899
+ "feel": "optional",
900
+ "optional": true,
901
+ "constraints": {
902
+ "notEmpty": false,
903
+ "pattern": {
904
+ "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
905
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
906
+ }
907
+ }
832
908
  },
833
909
  {
834
- "id": "resultVariable",
835
910
  "label": "Result variable",
836
911
  "description": "Name of variable to store the response in",
837
912
  "group": "output",
913
+ "type": "String",
838
914
  "binding": {
839
- "key": "resultVariable",
840
- "type": "zeebe:taskHeader"
841
- },
842
- "type": "String"
843
- },
844
- {
845
- "id": "resultExpression",
846
- "label": "Result expression",
847
- "description": "Expression to map the response into process variables",
848
- "feel": "required",
849
- "group": "output",
850
- "binding": {
851
- "key": "resultExpression",
852
- "type": "zeebe:taskHeader"
853
- },
854
- "type": "Text"
855
- },
856
- {
857
- "id": "errorExpression",
858
- "label": "Error expression",
859
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
860
- "feel": "required",
861
- "group": "error",
862
- "binding": {
863
- "key": "errorExpression",
864
- "type": "zeebe:taskHeader"
865
- },
866
- "type": "Text"
915
+ "type": "zeebe:taskHeader",
916
+ "key": "resultVariable"
917
+ }
867
918
  },
868
919
  {
869
- "id": "retryCount",
870
- "label": "Retries",
871
- "description": "Number of retries",
872
- "value": "3",
873
- "feel": "optional",
874
- "group": "retries",
920
+ "label": "Result expression",
921
+ "description": "Expression to map the response into process variables",
922
+ "group": "output",
923
+ "type": "Text",
924
+ "feel": "required",
875
925
  "binding": {
876
- "property": "retries",
877
- "type": "zeebe:taskDefinition"
878
- },
879
- "type": "String"
926
+ "type": "zeebe:taskHeader",
927
+ "key": "resultExpression"
928
+ }
880
929
  },
881
930
  {
882
- "id": "retryBackoff",
883
- "label": "Retry backoff",
884
- "description": "ISO-8601 duration to wait between retries",
885
- "value": "PT0S",
886
- "feel": "optional",
887
- "group": "retries",
931
+ "label": "Error expression",
932
+ "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>",
933
+ "group": "errors",
934
+ "type": "Text",
935
+ "feel": "required",
888
936
  "binding": {
889
- "key": "retryBackoff",
890
- "type": "zeebe:taskHeader"
891
- },
892
- "type": "String"
937
+ "type": "zeebe:taskHeader",
938
+ "key": "errorExpression"
939
+ }
893
940
  }
894
941
  ],
895
- "icon": {
896
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
897
- },
898
942
  "engines": {
899
- "camunda": "^8.5"
943
+ "camunda": "^8.2"
900
944
  }
901
945
  },
902
946
  {
903
947
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
904
- "name": "GraphQL Outbound Connector",
948
+ "name": "GraphQL connector",
905
949
  "id": "io.camunda.connectors.GraphQL.v1",
906
950
  "description": "Execute GraphQL query",
907
- "version": 3,
951
+ "version": 1,
908
952
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
909
953
  "icon": {
910
954
  "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"
@@ -994,7 +1038,7 @@
994
1038
  "constraints": {
995
1039
  "notEmpty": true,
996
1040
  "pattern": {
997
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
1041
+ "value": "^(=|(http://|https://|secrets).*$)",
998
1042
  "message": "Must be a http(s) URL."
999
1043
  }
1000
1044
  }
@@ -1237,7 +1281,7 @@
1237
1281
  "constraints": {
1238
1282
  "notEmpty": false,
1239
1283
  "pattern": {
1240
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1284
+ "value": "^(=|([0-9]+|secrets\\..+)$)",
1241
1285
  "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1242
1286
  }
1243
1287
  }
@@ -1284,11 +1328,11 @@
1284
1328
  "name": "GraphQL Outbound Connector",
1285
1329
  "id": "io.camunda.connectors.GraphQL.v1",
1286
1330
  "description": "Execute GraphQL query",
1287
- "version": 4,
1288
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1289
- "icon": {
1290
- "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"
1331
+ "metadata": {
1332
+ "keywords": []
1291
1333
  },
1334
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1335
+ "version": 7,
1292
1336
  "category": {
1293
1337
  "id": "connectors",
1294
1338
  "name": "Connectors"
@@ -1297,6 +1341,9 @@
1297
1341
  "elementType": {
1298
1342
  "value": "bpmn:ServiceTask"
1299
1343
  },
1344
+ "engines": {
1345
+ "camunda": "^8.3"
1346
+ },
1300
1347
  "groups": [
1301
1348
  {
1302
1349
  "id": "authentication",
@@ -1304,7 +1351,7 @@
1304
1351
  },
1305
1352
  {
1306
1353
  "id": "endpoint",
1307
- "label": "HTTP endpoint"
1354
+ "label": "HTTP Endpoint"
1308
1355
  },
1309
1356
  {
1310
1357
  "id": "graphql",
@@ -1312,37 +1359,45 @@
1312
1359
  },
1313
1360
  {
1314
1361
  "id": "timeout",
1315
- "label": "Connect timeout"
1362
+ "label": "Connection timeout"
1316
1363
  },
1317
1364
  {
1318
1365
  "id": "output",
1319
- "label": "Response mapping"
1366
+ "label": "Output mapping"
1320
1367
  },
1321
1368
  {
1322
- "id": "errors",
1369
+ "id": "error",
1323
1370
  "label": "Error handling"
1371
+ },
1372
+ {
1373
+ "id": "retries",
1374
+ "label": "Retries"
1324
1375
  }
1325
1376
  ],
1326
1377
  "properties": [
1327
1378
  {
1328
- "type": "Hidden",
1329
1379
  "value": "io.camunda:connector-graphql:1",
1330
1380
  "binding": {
1331
- "type": "zeebe:taskDefinition",
1332
- "property": "type"
1333
- }
1381
+ "property": "type",
1382
+ "type": "zeebe:taskDefinition"
1383
+ },
1384
+ "type": "Hidden"
1334
1385
  },
1335
1386
  {
1387
+ "id": "authentication.type",
1336
1388
  "label": "Type",
1337
- "id": "authenticationType",
1338
- "group": "authentication",
1339
1389
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1340
1390
  "value": "noAuth",
1391
+ "group": "authentication",
1392
+ "binding": {
1393
+ "name": "authentication.type",
1394
+ "type": "zeebe:input"
1395
+ },
1341
1396
  "type": "Dropdown",
1342
1397
  "choices": [
1343
1398
  {
1344
- "name": "None",
1345
- "value": "noAuth"
1399
+ "name": "API key",
1400
+ "value": "apiKey"
1346
1401
  },
1347
1402
  {
1348
1403
  "name": "Basic",
@@ -1352,202 +1407,250 @@
1352
1407
  "name": "Bearer token",
1353
1408
  "value": "bearer"
1354
1409
  },
1410
+ {
1411
+ "name": "None",
1412
+ "value": "noAuth"
1413
+ },
1355
1414
  {
1356
1415
  "name": "OAuth 2.0",
1357
1416
  "value": "oauth-client-credentials-flow"
1358
1417
  }
1359
- ],
1360
- "binding": {
1361
- "type": "zeebe:input",
1362
- "name": "authentication.type"
1363
- }
1418
+ ]
1364
1419
  },
1365
1420
  {
1366
- "label": "URL",
1367
- "group": "endpoint",
1368
- "type": "String",
1369
- "feel": "optional",
1421
+ "id": "authentication.apiKeyLocation",
1422
+ "label": "Api key location",
1423
+ "description": "Choose type: Send API key in header or as query parameter.",
1424
+ "optional": false,
1425
+ "value": "headers",
1426
+ "constraints": {
1427
+ "notEmpty": true
1428
+ },
1429
+ "group": "authentication",
1370
1430
  "binding": {
1371
- "type": "zeebe:input",
1372
- "name": "graphql.url"
1431
+ "name": "authentication.apiKeyLocation",
1432
+ "type": "zeebe:input"
1433
+ },
1434
+ "condition": {
1435
+ "property": "authentication.type",
1436
+ "equals": "apiKey",
1437
+ "type": "simple"
1373
1438
  },
1374
- "constraints": {
1375
- "notEmpty": true,
1376
- "pattern": {
1377
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
1378
- "message": "Must be a http(s) URL."
1379
- }
1380
- }
1381
- },
1382
- {
1383
- "id": "method",
1384
- "label": "Method",
1385
- "group": "endpoint",
1386
1439
  "type": "Dropdown",
1387
- "value": "post",
1388
1440
  "choices": [
1389
1441
  {
1390
- "name": "POST",
1391
- "value": "post"
1442
+ "name": "Headers",
1443
+ "value": "headers"
1392
1444
  },
1393
1445
  {
1394
- "name": "GET",
1395
- "value": "get"
1446
+ "name": "Query parameters",
1447
+ "value": "query"
1396
1448
  }
1397
- ],
1398
- "binding": {
1399
- "type": "zeebe:input",
1400
- "name": "graphql.method"
1401
- }
1449
+ ]
1402
1450
  },
1403
1451
  {
1404
- "id": "headers",
1405
- "label": "Headers",
1406
- "group": "endpoint",
1407
- "type": "Text",
1408
- "feel": "required",
1409
- "optional": true,
1452
+ "id": "authentication.name",
1453
+ "label": "API key name",
1454
+ "optional": false,
1455
+ "constraints": {
1456
+ "notEmpty": true
1457
+ },
1458
+ "feel": "optional",
1459
+ "group": "authentication",
1410
1460
  "binding": {
1411
- "type": "zeebe:input",
1412
- "name": "graphql.headers"
1413
- }
1461
+ "name": "authentication.name",
1462
+ "type": "zeebe:input"
1463
+ },
1464
+ "condition": {
1465
+ "property": "authentication.type",
1466
+ "equals": "apiKey",
1467
+ "type": "simple"
1468
+ },
1469
+ "type": "String"
1414
1470
  },
1415
1471
  {
1416
- "label": "Query/Mutation",
1417
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1418
- "group": "graphql",
1419
- "type": "Text",
1420
- "language": "graphql",
1421
- "binding": {
1422
- "type": "zeebe:input",
1423
- "name": "graphql.query"
1424
- },
1472
+ "id": "authentication.value",
1473
+ "label": "API key value",
1425
1474
  "optional": false,
1426
1475
  "constraints": {
1427
1476
  "notEmpty": true
1428
- }
1477
+ },
1478
+ "feel": "optional",
1479
+ "group": "authentication",
1480
+ "binding": {
1481
+ "name": "authentication.value",
1482
+ "type": "zeebe:input"
1483
+ },
1484
+ "condition": {
1485
+ "property": "authentication.type",
1486
+ "equals": "apiKey",
1487
+ "type": "simple"
1488
+ },
1489
+ "type": "String"
1429
1490
  },
1430
1491
  {
1431
- "label": "Variables",
1432
- "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>",
1433
- "group": "graphql",
1434
- "type": "Text",
1435
- "feel": "required",
1492
+ "id": "authentication.username",
1493
+ "label": "Username",
1494
+ "optional": false,
1495
+ "constraints": {
1496
+ "notEmpty": true
1497
+ },
1498
+ "feel": "optional",
1499
+ "group": "authentication",
1436
1500
  "binding": {
1437
- "type": "zeebe:input",
1438
- "name": "graphql.variables"
1501
+ "name": "authentication.username",
1502
+ "type": "zeebe:input"
1439
1503
  },
1440
- "optional": true
1504
+ "condition": {
1505
+ "property": "authentication.type",
1506
+ "equals": "basic",
1507
+ "type": "simple"
1508
+ },
1509
+ "type": "String"
1441
1510
  },
1442
1511
  {
1443
- "label": "Bearer token",
1444
- "group": "authentication",
1445
- "type": "String",
1512
+ "id": "authentication.password",
1513
+ "label": "Password",
1514
+ "optional": false,
1515
+ "constraints": {
1516
+ "notEmpty": true
1517
+ },
1446
1518
  "feel": "optional",
1519
+ "group": "authentication",
1447
1520
  "binding": {
1448
- "type": "zeebe:input",
1449
- "name": "authentication.token"
1521
+ "name": "authentication.password",
1522
+ "type": "zeebe:input"
1523
+ },
1524
+ "condition": {
1525
+ "property": "authentication.type",
1526
+ "equals": "basic",
1527
+ "type": "simple"
1450
1528
  },
1529
+ "type": "String"
1530
+ },
1531
+ {
1532
+ "id": "authentication.token",
1533
+ "label": "Bearer token",
1534
+ "optional": false,
1451
1535
  "constraints": {
1452
1536
  "notEmpty": true
1453
1537
  },
1538
+ "feel": "optional",
1539
+ "group": "authentication",
1540
+ "binding": {
1541
+ "name": "authentication.token",
1542
+ "type": "zeebe:input"
1543
+ },
1454
1544
  "condition": {
1455
- "property": "authenticationType",
1456
- "equals": "bearer"
1457
- }
1545
+ "property": "authentication.type",
1546
+ "equals": "bearer",
1547
+ "type": "simple"
1548
+ },
1549
+ "type": "String"
1458
1550
  },
1459
1551
  {
1460
- "label": "OAuth token endpoint",
1552
+ "id": "authentication.oauthTokenEndpoint",
1553
+ "label": "OAuth 2.0 token endpoint",
1461
1554
  "description": "The OAuth token endpoint",
1462
- "group": "authentication",
1463
- "type": "String",
1555
+ "optional": false,
1556
+ "constraints": {
1557
+ "notEmpty": true,
1558
+ "pattern": {
1559
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1560
+ "message": "Must be a http(s) URL"
1561
+ }
1562
+ },
1464
1563
  "feel": "optional",
1564
+ "group": "authentication",
1465
1565
  "binding": {
1466
- "type": "zeebe:input",
1467
- "name": "authentication.oauthTokenEndpoint"
1468
- },
1469
- "constraints": {
1470
- "notEmpty": true
1566
+ "name": "authentication.oauthTokenEndpoint",
1567
+ "type": "zeebe:input"
1471
1568
  },
1472
1569
  "condition": {
1473
- "property": "authenticationType",
1474
- "equals": "oauth-client-credentials-flow"
1475
- }
1570
+ "property": "authentication.type",
1571
+ "equals": "oauth-client-credentials-flow",
1572
+ "type": "simple"
1573
+ },
1574
+ "type": "String"
1476
1575
  },
1477
1576
  {
1577
+ "id": "authentication.clientId",
1478
1578
  "label": "Client ID",
1479
1579
  "description": "Your application's client ID from the OAuth client",
1480
- "group": "authentication",
1481
- "type": "String",
1482
- "feel": "optional",
1483
- "binding": {
1484
- "type": "zeebe:input",
1485
- "name": "authentication.clientId"
1486
- },
1580
+ "optional": false,
1487
1581
  "constraints": {
1488
1582
  "notEmpty": true
1489
1583
  },
1584
+ "feel": "optional",
1585
+ "group": "authentication",
1586
+ "binding": {
1587
+ "name": "authentication.clientId",
1588
+ "type": "zeebe:input"
1589
+ },
1490
1590
  "condition": {
1491
- "property": "authenticationType",
1492
- "equals": "oauth-client-credentials-flow"
1493
- }
1591
+ "property": "authentication.type",
1592
+ "equals": "oauth-client-credentials-flow",
1593
+ "type": "simple"
1594
+ },
1595
+ "type": "String"
1494
1596
  },
1495
1597
  {
1598
+ "id": "authentication.clientSecret",
1496
1599
  "label": "Client secret",
1497
1600
  "description": "Your application's client secret from the OAuth client",
1498
- "group": "authentication",
1499
- "type": "String",
1500
- "feel": "optional",
1501
- "binding": {
1502
- "type": "zeebe:input",
1503
- "name": "authentication.clientSecret"
1504
- },
1601
+ "optional": false,
1505
1602
  "constraints": {
1506
1603
  "notEmpty": true
1507
1604
  },
1508
- "condition": {
1509
- "property": "authenticationType",
1510
- "equals": "oauth-client-credentials-flow"
1511
- }
1512
- },
1513
- {
1514
- "label": "Scopes",
1515
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1516
- "group": "authentication",
1517
- "type": "String",
1518
1605
  "feel": "optional",
1519
- "optional": true,
1606
+ "group": "authentication",
1520
1607
  "binding": {
1521
- "type": "zeebe:input",
1522
- "name": "authentication.scopes"
1608
+ "name": "authentication.clientSecret",
1609
+ "type": "zeebe:input"
1523
1610
  },
1524
1611
  "condition": {
1525
- "property": "authenticationType",
1526
- "equals": "oauth-client-credentials-flow"
1527
- }
1612
+ "property": "authentication.type",
1613
+ "equals": "oauth-client-credentials-flow",
1614
+ "type": "simple"
1615
+ },
1616
+ "type": "String"
1528
1617
  },
1529
1618
  {
1619
+ "id": "authentication.audience",
1530
1620
  "label": "Audience",
1531
1621
  "description": "The unique identifier of the target API you want to access",
1532
- "group": "authentication",
1533
- "type": "String",
1534
- "feel": "optional",
1535
1622
  "optional": true,
1623
+ "feel": "optional",
1624
+ "group": "authentication",
1536
1625
  "binding": {
1537
- "type": "zeebe:input",
1538
- "name": "authentication.audience"
1626
+ "name": "authentication.audience",
1627
+ "type": "zeebe:input"
1539
1628
  },
1540
1629
  "condition": {
1541
- "property": "authenticationType",
1542
- "equals": "oauth-client-credentials-flow"
1543
- }
1630
+ "property": "authentication.type",
1631
+ "equals": "oauth-client-credentials-flow",
1632
+ "type": "simple"
1633
+ },
1634
+ "type": "String"
1544
1635
  },
1545
1636
  {
1546
- "label": "Client authentication",
1547
1637
  "id": "authentication.clientAuthentication",
1638
+ "label": "Client authentication",
1639
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1640
+ "optional": false,
1641
+ "constraints": {
1642
+ "notEmpty": true
1643
+ },
1548
1644
  "group": "authentication",
1549
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
1550
- "value": "basicAuthHeader",
1645
+ "binding": {
1646
+ "name": "authentication.clientAuthentication",
1647
+ "type": "zeebe:input"
1648
+ },
1649
+ "condition": {
1650
+ "property": "authentication.type",
1651
+ "equals": "oauth-client-credentials-flow",
1652
+ "type": "simple"
1653
+ },
1551
1654
  "type": "Dropdown",
1552
1655
  "choices": [
1553
1656
  {
@@ -1558,117 +1661,211 @@
1558
1661
  "name": "Send as Basic Auth header",
1559
1662
  "value": "basicAuthHeader"
1560
1663
  }
1561
- ],
1562
- "binding": {
1563
- "type": "zeebe:input",
1564
- "name": "authentication.clientAuthentication"
1565
- },
1566
- "condition": {
1567
- "property": "authenticationType",
1568
- "equals": "oauth-client-credentials-flow"
1569
- }
1664
+ ]
1570
1665
  },
1571
1666
  {
1572
- "label": "Username",
1573
- "group": "authentication",
1574
- "type": "String",
1667
+ "id": "authentication.scopes",
1668
+ "label": "Scopes",
1669
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1670
+ "optional": true,
1575
1671
  "feel": "optional",
1672
+ "group": "authentication",
1576
1673
  "binding": {
1577
- "type": "zeebe:input",
1578
- "name": "authentication.username"
1674
+ "name": "authentication.scopes",
1675
+ "type": "zeebe:input"
1676
+ },
1677
+ "condition": {
1678
+ "property": "authentication.type",
1679
+ "equals": "oauth-client-credentials-flow",
1680
+ "type": "simple"
1579
1681
  },
1682
+ "type": "String"
1683
+ },
1684
+ {
1685
+ "id": "graphql.method",
1686
+ "label": "Method",
1687
+ "optional": false,
1688
+ "value": "get",
1580
1689
  "constraints": {
1581
1690
  "notEmpty": true
1582
1691
  },
1583
- "condition": {
1584
- "property": "authenticationType",
1585
- "equals": "basic"
1586
- }
1692
+ "group": "endpoint",
1693
+ "binding": {
1694
+ "name": "graphql.method",
1695
+ "type": "zeebe:input"
1696
+ },
1697
+ "type": "Dropdown",
1698
+ "choices": [
1699
+ {
1700
+ "name": "GET",
1701
+ "value": "get"
1702
+ },
1703
+ {
1704
+ "name": "POST",
1705
+ "value": "post"
1706
+ }
1707
+ ]
1587
1708
  },
1588
1709
  {
1589
- "label": "Password",
1590
- "group": "authentication",
1591
- "type": "String",
1710
+ "id": "graphql.url",
1711
+ "label": "URL",
1712
+ "optional": false,
1713
+ "constraints": {
1714
+ "notEmpty": true,
1715
+ "pattern": {
1716
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1717
+ "message": "Must be a http(s) URL"
1718
+ }
1719
+ },
1592
1720
  "feel": "optional",
1721
+ "group": "endpoint",
1593
1722
  "binding": {
1594
- "type": "zeebe:input",
1595
- "name": "authentication.password"
1723
+ "name": "graphql.url",
1724
+ "type": "zeebe:input"
1725
+ },
1726
+ "type": "String"
1727
+ },
1728
+ {
1729
+ "id": "graphql.headers",
1730
+ "label": "Headers",
1731
+ "description": "Map of HTTP headers to add to the request",
1732
+ "optional": true,
1733
+ "feel": "required",
1734
+ "group": "endpoint",
1735
+ "binding": {
1736
+ "name": "graphql.headers",
1737
+ "type": "zeebe:input"
1738
+ },
1739
+ "type": "String"
1740
+ },
1741
+ {
1742
+ "id": "graphql.storeResponse",
1743
+ "label": "Store response",
1744
+ "description": "Store the response as a document in the document store",
1745
+ "optional": false,
1746
+ "value": false,
1747
+ "feel": "static",
1748
+ "group": "endpoint",
1749
+ "binding": {
1750
+ "name": "graphql.storeResponse",
1751
+ "type": "zeebe:input"
1596
1752
  },
1753
+ "type": "Boolean"
1754
+ },
1755
+ {
1756
+ "id": "graphql.query",
1757
+ "label": "Query/Mutation",
1758
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1759
+ "optional": false,
1597
1760
  "constraints": {
1598
1761
  "notEmpty": true
1599
1762
  },
1600
- "condition": {
1601
- "property": "authenticationType",
1602
- "equals": "basic"
1603
- }
1763
+ "feel": "optional",
1764
+ "group": "graphql",
1765
+ "binding": {
1766
+ "name": "graphql.query",
1767
+ "type": "zeebe:input"
1768
+ },
1769
+ "type": "Text"
1770
+ },
1771
+ {
1772
+ "id": "graphql.variables",
1773
+ "label": "Variables",
1774
+ "optional": true,
1775
+ "feel": "required",
1776
+ "group": "graphql",
1777
+ "binding": {
1778
+ "name": "graphql.variables",
1779
+ "type": "zeebe:input"
1780
+ },
1781
+ "type": "String"
1604
1782
  },
1605
1783
  {
1606
- "label": "Connection timeout",
1784
+ "id": "graphql.connectionTimeoutInSeconds",
1785
+ "label": "Connection timeout in seconds",
1607
1786
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1787
+ "optional": true,
1788
+ "value": 20,
1789
+ "feel": "static",
1608
1790
  "group": "timeout",
1609
- "type": "String",
1610
- "value": "20",
1611
1791
  "binding": {
1612
- "type": "zeebe:input",
1613
- "name": "graphql.connectionTimeoutInSeconds"
1792
+ "name": "graphql.connectionTimeoutInSeconds",
1793
+ "type": "zeebe:input"
1614
1794
  },
1615
- "feel": "optional",
1616
- "optional": true,
1617
- "constraints": {
1618
- "notEmpty": false,
1619
- "pattern": {
1620
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1621
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1622
- }
1623
- }
1795
+ "type": "Number"
1624
1796
  },
1625
1797
  {
1798
+ "id": "resultVariable",
1626
1799
  "label": "Result variable",
1627
1800
  "description": "Name of variable to store the response in",
1628
1801
  "group": "output",
1629
- "type": "String",
1630
1802
  "binding": {
1631
- "type": "zeebe:taskHeader",
1632
- "key": "resultVariable"
1633
- }
1803
+ "key": "resultVariable",
1804
+ "type": "zeebe:taskHeader"
1805
+ },
1806
+ "type": "String"
1634
1807
  },
1635
1808
  {
1809
+ "id": "resultExpression",
1636
1810
  "label": "Result expression",
1637
1811
  "description": "Expression to map the response into process variables",
1638
- "group": "output",
1639
- "type": "Text",
1640
1812
  "feel": "required",
1813
+ "group": "output",
1641
1814
  "binding": {
1642
- "type": "zeebe:taskHeader",
1643
- "key": "resultExpression"
1644
- }
1815
+ "key": "resultExpression",
1816
+ "type": "zeebe:taskHeader"
1817
+ },
1818
+ "type": "Text"
1645
1819
  },
1646
1820
  {
1821
+ "id": "errorExpression",
1647
1822
  "label": "Error expression",
1648
- "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>",
1649
- "group": "errors",
1650
- "type": "Text",
1823
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1651
1824
  "feel": "required",
1825
+ "group": "error",
1652
1826
  "binding": {
1653
- "type": "zeebe:taskHeader",
1654
- "key": "errorExpression"
1655
- }
1827
+ "key": "errorExpression",
1828
+ "type": "zeebe:taskHeader"
1829
+ },
1830
+ "type": "Text"
1831
+ },
1832
+ {
1833
+ "id": "retryCount",
1834
+ "label": "Retries",
1835
+ "description": "Number of retries",
1836
+ "value": "3",
1837
+ "feel": "optional",
1838
+ "group": "retries",
1839
+ "binding": {
1840
+ "property": "retries",
1841
+ "type": "zeebe:taskDefinition"
1842
+ },
1843
+ "type": "String"
1844
+ },
1845
+ {
1846
+ "id": "retryBackoff",
1847
+ "label": "Retry backoff",
1848
+ "description": "ISO-8601 duration to wait between retries",
1849
+ "value": "PT0S",
1850
+ "group": "retries",
1851
+ "binding": {
1852
+ "key": "retryBackoff",
1853
+ "type": "zeebe:taskHeader"
1854
+ },
1855
+ "type": "String"
1656
1856
  }
1657
1857
  ],
1658
- "engines": {
1659
- "camunda": "^8.4"
1858
+ "icon": {
1859
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
1660
1860
  }
1661
1861
  },
1662
1862
  {
1663
1863
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1664
- "name": "GraphQL connector",
1864
+ "name": "GraphQL Outbound Connector",
1665
1865
  "id": "io.camunda.connectors.GraphQL.v1",
1666
1866
  "description": "Execute GraphQL query",
1667
- "version": 2,
1668
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1669
- "icon": {
1670
- "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"
1671
- },
1867
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1868
+ "version": 6,
1672
1869
  "category": {
1673
1870
  "id": "connectors",
1674
1871
  "name": "Connectors"
@@ -1684,7 +1881,7 @@
1684
1881
  },
1685
1882
  {
1686
1883
  "id": "endpoint",
1687
- "label": "HTTP endpoint"
1884
+ "label": "HTTP Endpoint"
1688
1885
  },
1689
1886
  {
1690
1887
  "id": "graphql",
@@ -1692,37 +1889,45 @@
1692
1889
  },
1693
1890
  {
1694
1891
  "id": "timeout",
1695
- "label": "Connect timeout"
1892
+ "label": "Connection timeout"
1696
1893
  },
1697
1894
  {
1698
1895
  "id": "output",
1699
- "label": "Response mapping"
1896
+ "label": "Output mapping"
1700
1897
  },
1701
1898
  {
1702
- "id": "errors",
1899
+ "id": "error",
1703
1900
  "label": "Error handling"
1901
+ },
1902
+ {
1903
+ "id": "retries",
1904
+ "label": "Retries"
1704
1905
  }
1705
1906
  ],
1706
1907
  "properties": [
1707
1908
  {
1708
- "type": "Hidden",
1709
1909
  "value": "io.camunda:connector-graphql:1",
1710
1910
  "binding": {
1711
- "type": "zeebe:taskDefinition",
1712
- "property": "type"
1713
- }
1911
+ "property": "type",
1912
+ "type": "zeebe:taskDefinition"
1913
+ },
1914
+ "type": "Hidden"
1714
1915
  },
1715
1916
  {
1917
+ "id": "authentication.type",
1716
1918
  "label": "Type",
1717
- "id": "authenticationType",
1718
- "group": "authentication",
1719
1919
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1720
1920
  "value": "noAuth",
1921
+ "group": "authentication",
1922
+ "binding": {
1923
+ "name": "authentication.type",
1924
+ "type": "zeebe:input"
1925
+ },
1721
1926
  "type": "Dropdown",
1722
1927
  "choices": [
1723
1928
  {
1724
- "name": "None",
1725
- "value": "noAuth"
1929
+ "name": "API key",
1930
+ "value": "apiKey"
1726
1931
  },
1727
1932
  {
1728
1933
  "name": "Basic",
@@ -1732,202 +1937,250 @@
1732
1937
  "name": "Bearer token",
1733
1938
  "value": "bearer"
1734
1939
  },
1940
+ {
1941
+ "name": "None",
1942
+ "value": "noAuth"
1943
+ },
1735
1944
  {
1736
1945
  "name": "OAuth 2.0",
1737
1946
  "value": "oauth-client-credentials-flow"
1738
1947
  }
1739
- ],
1740
- "binding": {
1741
- "type": "zeebe:input",
1742
- "name": "authentication.type"
1743
- }
1948
+ ]
1744
1949
  },
1745
1950
  {
1746
- "label": "URL",
1747
- "group": "endpoint",
1748
- "type": "String",
1749
- "feel": "optional",
1951
+ "id": "authentication.apiKeyLocation",
1952
+ "label": "Api key location",
1953
+ "description": "Choose type: Send API key in header or as query parameter.",
1954
+ "optional": false,
1955
+ "value": "headers",
1956
+ "constraints": {
1957
+ "notEmpty": true
1958
+ },
1959
+ "group": "authentication",
1750
1960
  "binding": {
1751
- "type": "zeebe:input",
1752
- "name": "graphql.url"
1961
+ "name": "authentication.apiKeyLocation",
1962
+ "type": "zeebe:input"
1963
+ },
1964
+ "condition": {
1965
+ "property": "authentication.type",
1966
+ "equals": "apiKey",
1967
+ "type": "simple"
1753
1968
  },
1754
- "constraints": {
1755
- "notEmpty": true,
1756
- "pattern": {
1757
- "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
1758
- "message": "Must be a http(s) URL."
1759
- }
1760
- }
1761
- },
1762
- {
1763
- "id": "method",
1764
- "label": "Method",
1765
- "group": "endpoint",
1766
1969
  "type": "Dropdown",
1767
- "value": "post",
1768
1970
  "choices": [
1769
1971
  {
1770
- "name": "POST",
1771
- "value": "post"
1972
+ "name": "Headers",
1973
+ "value": "headers"
1772
1974
  },
1773
1975
  {
1774
- "name": "GET",
1775
- "value": "get"
1976
+ "name": "Query parameters",
1977
+ "value": "query"
1776
1978
  }
1777
- ],
1979
+ ]
1980
+ },
1981
+ {
1982
+ "id": "authentication.name",
1983
+ "label": "API key name",
1984
+ "optional": false,
1985
+ "constraints": {
1986
+ "notEmpty": true
1987
+ },
1988
+ "feel": "optional",
1989
+ "group": "authentication",
1778
1990
  "binding": {
1779
- "type": "zeebe:input",
1780
- "name": "graphql.method"
1781
- }
1991
+ "name": "authentication.name",
1992
+ "type": "zeebe:input"
1993
+ },
1994
+ "condition": {
1995
+ "property": "authentication.type",
1996
+ "equals": "apiKey",
1997
+ "type": "simple"
1998
+ },
1999
+ "type": "String"
1782
2000
  },
1783
2001
  {
1784
- "id": "headers",
1785
- "label": "Headers",
1786
- "group": "endpoint",
1787
- "type": "Text",
1788
- "feel": "required",
1789
- "optional": true,
2002
+ "id": "authentication.value",
2003
+ "label": "API key value",
2004
+ "optional": false,
2005
+ "constraints": {
2006
+ "notEmpty": true
2007
+ },
2008
+ "feel": "optional",
2009
+ "group": "authentication",
1790
2010
  "binding": {
1791
- "type": "zeebe:input",
1792
- "name": "graphql.headers"
1793
- }
2011
+ "name": "authentication.value",
2012
+ "type": "zeebe:input"
2013
+ },
2014
+ "condition": {
2015
+ "property": "authentication.type",
2016
+ "equals": "apiKey",
2017
+ "type": "simple"
2018
+ },
2019
+ "type": "String"
1794
2020
  },
1795
2021
  {
1796
- "label": "Query/Mutation",
1797
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1798
- "group": "graphql",
1799
- "type": "Text",
1800
- "language": "graphql",
2022
+ "id": "authentication.username",
2023
+ "label": "Username",
2024
+ "optional": false,
2025
+ "constraints": {
2026
+ "notEmpty": true
2027
+ },
2028
+ "feel": "optional",
2029
+ "group": "authentication",
1801
2030
  "binding": {
1802
- "type": "zeebe:input",
1803
- "name": "graphql.query"
2031
+ "name": "authentication.username",
2032
+ "type": "zeebe:input"
2033
+ },
2034
+ "condition": {
2035
+ "property": "authentication.type",
2036
+ "equals": "basic",
2037
+ "type": "simple"
1804
2038
  },
2039
+ "type": "String"
2040
+ },
2041
+ {
2042
+ "id": "authentication.password",
2043
+ "label": "Password",
1805
2044
  "optional": false,
1806
2045
  "constraints": {
1807
2046
  "notEmpty": true
1808
- }
1809
- },
1810
- {
1811
- "label": "Variables",
1812
- "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>",
1813
- "group": "graphql",
1814
- "type": "Text",
1815
- "feel": "required",
2047
+ },
2048
+ "feel": "optional",
2049
+ "group": "authentication",
1816
2050
  "binding": {
1817
- "type": "zeebe:input",
1818
- "name": "graphql.variables"
2051
+ "name": "authentication.password",
2052
+ "type": "zeebe:input"
1819
2053
  },
1820
- "optional": true
2054
+ "condition": {
2055
+ "property": "authentication.type",
2056
+ "equals": "basic",
2057
+ "type": "simple"
2058
+ },
2059
+ "type": "String"
1821
2060
  },
1822
2061
  {
2062
+ "id": "authentication.token",
1823
2063
  "label": "Bearer token",
1824
- "group": "authentication",
1825
- "type": "String",
1826
- "feel": "optional",
1827
- "binding": {
1828
- "type": "zeebe:input",
1829
- "name": "graphql.authentication.token"
1830
- },
2064
+ "optional": false,
1831
2065
  "constraints": {
1832
2066
  "notEmpty": true
1833
2067
  },
2068
+ "feel": "optional",
2069
+ "group": "authentication",
2070
+ "binding": {
2071
+ "name": "authentication.token",
2072
+ "type": "zeebe:input"
2073
+ },
1834
2074
  "condition": {
1835
- "property": "authenticationType",
1836
- "equals": "bearer"
1837
- }
2075
+ "property": "authentication.type",
2076
+ "equals": "bearer",
2077
+ "type": "simple"
2078
+ },
2079
+ "type": "String"
1838
2080
  },
1839
2081
  {
1840
- "label": "OAuth token endpoint",
2082
+ "id": "authentication.oauthTokenEndpoint",
2083
+ "label": "OAuth 2.0 token endpoint",
1841
2084
  "description": "The OAuth token endpoint",
1842
- "group": "authentication",
1843
- "type": "String",
2085
+ "optional": false,
2086
+ "constraints": {
2087
+ "notEmpty": true,
2088
+ "pattern": {
2089
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2090
+ "message": "Must be a http(s) URL"
2091
+ }
2092
+ },
1844
2093
  "feel": "optional",
2094
+ "group": "authentication",
1845
2095
  "binding": {
1846
- "type": "zeebe:input",
1847
- "name": "authentication.oauthTokenEndpoint"
1848
- },
1849
- "constraints": {
1850
- "notEmpty": true
2096
+ "name": "authentication.oauthTokenEndpoint",
2097
+ "type": "zeebe:input"
1851
2098
  },
1852
2099
  "condition": {
1853
- "property": "authenticationType",
1854
- "equals": "oauth-client-credentials-flow"
1855
- }
2100
+ "property": "authentication.type",
2101
+ "equals": "oauth-client-credentials-flow",
2102
+ "type": "simple"
2103
+ },
2104
+ "type": "String"
1856
2105
  },
1857
2106
  {
2107
+ "id": "authentication.clientId",
1858
2108
  "label": "Client ID",
1859
2109
  "description": "Your application's client ID from the OAuth client",
1860
- "group": "authentication",
1861
- "type": "String",
1862
- "feel": "optional",
1863
- "binding": {
1864
- "type": "zeebe:input",
1865
- "name": "authentication.clientId"
1866
- },
2110
+ "optional": false,
1867
2111
  "constraints": {
1868
2112
  "notEmpty": true
1869
2113
  },
2114
+ "feel": "optional",
2115
+ "group": "authentication",
2116
+ "binding": {
2117
+ "name": "authentication.clientId",
2118
+ "type": "zeebe:input"
2119
+ },
1870
2120
  "condition": {
1871
- "property": "authenticationType",
1872
- "equals": "oauth-client-credentials-flow"
1873
- }
2121
+ "property": "authentication.type",
2122
+ "equals": "oauth-client-credentials-flow",
2123
+ "type": "simple"
2124
+ },
2125
+ "type": "String"
1874
2126
  },
1875
2127
  {
2128
+ "id": "authentication.clientSecret",
1876
2129
  "label": "Client secret",
1877
2130
  "description": "Your application's client secret from the OAuth client",
1878
- "group": "authentication",
1879
- "type": "String",
1880
- "feel": "optional",
1881
- "binding": {
1882
- "type": "zeebe:input",
1883
- "name": "authentication.clientSecret"
1884
- },
2131
+ "optional": false,
1885
2132
  "constraints": {
1886
2133
  "notEmpty": true
1887
2134
  },
1888
- "condition": {
1889
- "property": "authenticationType",
1890
- "equals": "oauth-client-credentials-flow"
1891
- }
1892
- },
1893
- {
1894
- "label": "Scopes",
1895
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1896
- "group": "authentication",
1897
- "type": "String",
1898
2135
  "feel": "optional",
1899
- "optional": true,
2136
+ "group": "authentication",
1900
2137
  "binding": {
1901
- "type": "zeebe:input",
1902
- "name": "authentication.scopes"
2138
+ "name": "authentication.clientSecret",
2139
+ "type": "zeebe:input"
1903
2140
  },
1904
2141
  "condition": {
1905
- "property": "authenticationType",
1906
- "equals": "oauth-client-credentials-flow"
1907
- }
2142
+ "property": "authentication.type",
2143
+ "equals": "oauth-client-credentials-flow",
2144
+ "type": "simple"
2145
+ },
2146
+ "type": "String"
1908
2147
  },
1909
2148
  {
2149
+ "id": "authentication.audience",
1910
2150
  "label": "Audience",
1911
2151
  "description": "The unique identifier of the target API you want to access",
1912
- "group": "authentication",
1913
- "type": "String",
1914
- "feel": "optional",
1915
2152
  "optional": true,
2153
+ "feel": "optional",
2154
+ "group": "authentication",
1916
2155
  "binding": {
1917
- "type": "zeebe:input",
1918
- "name": "authentication.audience"
2156
+ "name": "authentication.audience",
2157
+ "type": "zeebe:input"
1919
2158
  },
1920
2159
  "condition": {
1921
- "property": "authenticationType",
1922
- "equals": "oauth-client-credentials-flow"
1923
- }
2160
+ "property": "authentication.type",
2161
+ "equals": "oauth-client-credentials-flow",
2162
+ "type": "simple"
2163
+ },
2164
+ "type": "String"
1924
2165
  },
1925
2166
  {
1926
- "label": "Client authentication",
1927
2167
  "id": "authentication.clientAuthentication",
2168
+ "label": "Client authentication",
2169
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2170
+ "optional": false,
2171
+ "constraints": {
2172
+ "notEmpty": true
2173
+ },
1928
2174
  "group": "authentication",
1929
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
1930
- "value": "basicAuthHeader",
2175
+ "binding": {
2176
+ "name": "authentication.clientAuthentication",
2177
+ "type": "zeebe:input"
2178
+ },
2179
+ "condition": {
2180
+ "property": "authentication.type",
2181
+ "equals": "oauth-client-credentials-flow",
2182
+ "type": "simple"
2183
+ },
1931
2184
  "type": "Dropdown",
1932
2185
  "choices": [
1933
2186
  {
@@ -1938,105 +2191,192 @@
1938
2191
  "name": "Send as Basic Auth header",
1939
2192
  "value": "basicAuthHeader"
1940
2193
  }
1941
- ],
2194
+ ]
2195
+ },
2196
+ {
2197
+ "id": "authentication.scopes",
2198
+ "label": "Scopes",
2199
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2200
+ "optional": true,
2201
+ "feel": "optional",
2202
+ "group": "authentication",
1942
2203
  "binding": {
1943
- "type": "zeebe:input",
1944
- "name": "authentication.clientAuthentication"
2204
+ "name": "authentication.scopes",
2205
+ "type": "zeebe:input"
1945
2206
  },
1946
2207
  "condition": {
1947
- "property": "authenticationType",
1948
- "equals": "oauth-client-credentials-flow"
1949
- }
2208
+ "property": "authentication.type",
2209
+ "equals": "oauth-client-credentials-flow",
2210
+ "type": "simple"
2211
+ },
2212
+ "type": "String"
1950
2213
  },
1951
2214
  {
1952
- "label": "Username",
1953
- "group": "authentication",
1954
- "type": "String",
2215
+ "id": "graphql.method",
2216
+ "label": "Method",
2217
+ "optional": false,
2218
+ "value": "get",
2219
+ "constraints": {
2220
+ "notEmpty": true
2221
+ },
2222
+ "group": "endpoint",
2223
+ "binding": {
2224
+ "name": "graphql.method",
2225
+ "type": "zeebe:input"
2226
+ },
2227
+ "type": "Dropdown",
2228
+ "choices": [
2229
+ {
2230
+ "name": "GET",
2231
+ "value": "get"
2232
+ },
2233
+ {
2234
+ "name": "POST",
2235
+ "value": "post"
2236
+ }
2237
+ ]
2238
+ },
2239
+ {
2240
+ "id": "graphql.url",
2241
+ "label": "URL",
2242
+ "optional": false,
2243
+ "constraints": {
2244
+ "notEmpty": true,
2245
+ "pattern": {
2246
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2247
+ "message": "Must be a http(s) URL"
2248
+ }
2249
+ },
1955
2250
  "feel": "optional",
2251
+ "group": "endpoint",
1956
2252
  "binding": {
1957
- "type": "zeebe:input",
1958
- "name": "authentication.username"
2253
+ "name": "graphql.url",
2254
+ "type": "zeebe:input"
2255
+ },
2256
+ "type": "String"
2257
+ },
2258
+ {
2259
+ "id": "graphql.headers",
2260
+ "label": "Headers",
2261
+ "description": "Map of HTTP headers to add to the request",
2262
+ "optional": true,
2263
+ "feel": "required",
2264
+ "group": "endpoint",
2265
+ "binding": {
2266
+ "name": "graphql.headers",
2267
+ "type": "zeebe:input"
1959
2268
  },
2269
+ "type": "String"
2270
+ },
2271
+ {
2272
+ "id": "graphql.query",
2273
+ "label": "Query/Mutation",
2274
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2275
+ "optional": false,
1960
2276
  "constraints": {
1961
2277
  "notEmpty": true
1962
2278
  },
1963
- "condition": {
1964
- "property": "authenticationType",
1965
- "equals": "basic"
1966
- }
2279
+ "feel": "optional",
2280
+ "group": "graphql",
2281
+ "binding": {
2282
+ "name": "graphql.query",
2283
+ "type": "zeebe:input"
2284
+ },
2285
+ "type": "Text"
1967
2286
  },
1968
2287
  {
1969
- "label": "Password",
1970
- "group": "authentication",
1971
- "type": "String",
1972
- "feel": "optional",
2288
+ "id": "graphql.variables",
2289
+ "label": "Variables",
2290
+ "optional": true,
2291
+ "feel": "required",
2292
+ "group": "graphql",
1973
2293
  "binding": {
1974
- "type": "zeebe:input",
1975
- "name": "authentication.password"
1976
- },
1977
- "constraints": {
1978
- "notEmpty": true
2294
+ "name": "graphql.variables",
2295
+ "type": "zeebe:input"
1979
2296
  },
1980
- "condition": {
1981
- "property": "authenticationType",
1982
- "equals": "basic"
1983
- }
2297
+ "type": "String"
1984
2298
  },
1985
2299
  {
1986
- "label": "Connection timeout",
2300
+ "id": "graphql.connectionTimeoutInSeconds",
2301
+ "label": "Connection timeout in seconds",
1987
2302
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1988
- "group": "timeout",
1989
- "type": "String",
2303
+ "optional": true,
1990
2304
  "value": "20",
2305
+ "feel": "optional",
2306
+ "group": "timeout",
1991
2307
  "binding": {
1992
- "type": "zeebe:input",
1993
- "name": "graphql.connectionTimeoutInSeconds"
2308
+ "name": "graphql.connectionTimeoutInSeconds",
2309
+ "type": "zeebe:input"
1994
2310
  },
1995
- "feel": "optional",
1996
- "optional": true,
1997
- "constraints": {
1998
- "notEmpty": false,
1999
- "pattern": {
2000
- "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
2001
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2002
- }
2003
- }
2311
+ "type": "String"
2004
2312
  },
2005
2313
  {
2314
+ "id": "resultVariable",
2006
2315
  "label": "Result variable",
2007
2316
  "description": "Name of variable to store the response in",
2008
2317
  "group": "output",
2009
- "type": "String",
2010
2318
  "binding": {
2011
- "type": "zeebe:taskHeader",
2012
- "key": "resultVariable"
2013
- }
2319
+ "key": "resultVariable",
2320
+ "type": "zeebe:taskHeader"
2321
+ },
2322
+ "type": "String"
2014
2323
  },
2015
2324
  {
2325
+ "id": "resultExpression",
2016
2326
  "label": "Result expression",
2017
2327
  "description": "Expression to map the response into process variables",
2018
- "group": "output",
2019
- "type": "Text",
2020
2328
  "feel": "required",
2329
+ "group": "output",
2021
2330
  "binding": {
2022
- "type": "zeebe:taskHeader",
2023
- "key": "resultExpression"
2024
- }
2331
+ "key": "resultExpression",
2332
+ "type": "zeebe:taskHeader"
2333
+ },
2334
+ "type": "Text"
2025
2335
  },
2026
2336
  {
2337
+ "id": "errorExpression",
2027
2338
  "label": "Error expression",
2028
- "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>",
2029
- "group": "errors",
2030
- "type": "Text",
2339
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2031
2340
  "feel": "required",
2341
+ "group": "error",
2032
2342
  "binding": {
2033
- "type": "zeebe:taskHeader",
2034
- "key": "errorExpression"
2035
- }
2343
+ "key": "errorExpression",
2344
+ "type": "zeebe:taskHeader"
2345
+ },
2346
+ "type": "Text"
2347
+ },
2348
+ {
2349
+ "id": "retryCount",
2350
+ "label": "Retries",
2351
+ "description": "Number of retries",
2352
+ "value": "3",
2353
+ "feel": "optional",
2354
+ "group": "retries",
2355
+ "binding": {
2356
+ "property": "retries",
2357
+ "type": "zeebe:taskDefinition"
2358
+ },
2359
+ "type": "String"
2360
+ },
2361
+ {
2362
+ "id": "retryBackoff",
2363
+ "label": "Retry backoff",
2364
+ "description": "ISO-8601 duration to wait between retries",
2365
+ "value": "PT0S",
2366
+ "feel": "optional",
2367
+ "group": "retries",
2368
+ "binding": {
2369
+ "key": "retryBackoff",
2370
+ "type": "zeebe:taskHeader"
2371
+ },
2372
+ "type": "String"
2036
2373
  }
2037
2374
  ],
2375
+ "icon": {
2376
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
2377
+ },
2038
2378
  "engines": {
2039
- "camunda": "^8.2"
2379
+ "camunda": "^8.5"
2040
2380
  }
2041
2381
  },
2042
2382
  {
@@ -2044,11 +2384,11 @@
2044
2384
  "name": "GraphQL Outbound Connector",
2045
2385
  "id": "io.camunda.connectors.GraphQL.v1",
2046
2386
  "description": "Execute GraphQL query",
2047
- "metadata": {
2048
- "keywords": []
2387
+ "version": 4,
2388
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
2389
+ "icon": {
2390
+ "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"
2049
2391
  },
2050
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2051
- "version": 7,
2052
2392
  "category": {
2053
2393
  "id": "connectors",
2054
2394
  "name": "Connectors"
@@ -2057,9 +2397,6 @@
2057
2397
  "elementType": {
2058
2398
  "value": "bpmn:ServiceTask"
2059
2399
  },
2060
- "engines": {
2061
- "camunda": "^8.3"
2062
- },
2063
2400
  "groups": [
2064
2401
  {
2065
2402
  "id": "authentication",
@@ -2067,7 +2404,7 @@
2067
2404
  },
2068
2405
  {
2069
2406
  "id": "endpoint",
2070
- "label": "HTTP Endpoint"
2407
+ "label": "HTTP endpoint"
2071
2408
  },
2072
2409
  {
2073
2410
  "id": "graphql",
@@ -2075,45 +2412,37 @@
2075
2412
  },
2076
2413
  {
2077
2414
  "id": "timeout",
2078
- "label": "Connection timeout"
2415
+ "label": "Connect timeout"
2079
2416
  },
2080
2417
  {
2081
2418
  "id": "output",
2082
- "label": "Output mapping"
2419
+ "label": "Response mapping"
2083
2420
  },
2084
2421
  {
2085
- "id": "error",
2422
+ "id": "errors",
2086
2423
  "label": "Error handling"
2087
- },
2088
- {
2089
- "id": "retries",
2090
- "label": "Retries"
2091
2424
  }
2092
2425
  ],
2093
2426
  "properties": [
2094
2427
  {
2428
+ "type": "Hidden",
2095
2429
  "value": "io.camunda:connector-graphql:1",
2096
2430
  "binding": {
2097
- "property": "type",
2098
- "type": "zeebe:taskDefinition"
2099
- },
2100
- "type": "Hidden"
2431
+ "type": "zeebe:taskDefinition",
2432
+ "property": "type"
2433
+ }
2101
2434
  },
2102
2435
  {
2103
- "id": "authentication.type",
2104
2436
  "label": "Type",
2437
+ "id": "authenticationType",
2438
+ "group": "authentication",
2105
2439
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2106
2440
  "value": "noAuth",
2107
- "group": "authentication",
2108
- "binding": {
2109
- "name": "authentication.type",
2110
- "type": "zeebe:input"
2111
- },
2112
2441
  "type": "Dropdown",
2113
2442
  "choices": [
2114
2443
  {
2115
- "name": "API key",
2116
- "value": "apiKey"
2444
+ "name": "None",
2445
+ "value": "noAuth"
2117
2446
  },
2118
2447
  {
2119
2448
  "name": "Basic",
@@ -2123,456 +2452,311 @@
2123
2452
  "name": "Bearer token",
2124
2453
  "value": "bearer"
2125
2454
  },
2126
- {
2127
- "name": "None",
2128
- "value": "noAuth"
2129
- },
2130
2455
  {
2131
2456
  "name": "OAuth 2.0",
2132
2457
  "value": "oauth-client-credentials-flow"
2133
2458
  }
2134
- ]
2459
+ ],
2460
+ "binding": {
2461
+ "type": "zeebe:input",
2462
+ "name": "authentication.type"
2463
+ }
2135
2464
  },
2136
2465
  {
2137
- "id": "authentication.apiKeyLocation",
2138
- "label": "Api key location",
2139
- "description": "Choose type: Send API key in header or as query parameter.",
2140
- "optional": false,
2141
- "value": "headers",
2142
- "constraints": {
2143
- "notEmpty": true
2144
- },
2145
- "group": "authentication",
2466
+ "label": "URL",
2467
+ "group": "endpoint",
2468
+ "type": "String",
2469
+ "feel": "optional",
2146
2470
  "binding": {
2147
- "name": "authentication.apiKeyLocation",
2148
- "type": "zeebe:input"
2149
- },
2150
- "condition": {
2151
- "property": "authentication.type",
2152
- "equals": "apiKey",
2153
- "type": "simple"
2471
+ "type": "zeebe:input",
2472
+ "name": "graphql.url"
2154
2473
  },
2474
+ "constraints": {
2475
+ "notEmpty": true,
2476
+ "pattern": {
2477
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
2478
+ "message": "Must be a http(s) URL."
2479
+ }
2480
+ }
2481
+ },
2482
+ {
2483
+ "id": "method",
2484
+ "label": "Method",
2485
+ "group": "endpoint",
2155
2486
  "type": "Dropdown",
2487
+ "value": "post",
2156
2488
  "choices": [
2157
2489
  {
2158
- "name": "Headers",
2159
- "value": "headers"
2490
+ "name": "POST",
2491
+ "value": "post"
2160
2492
  },
2161
2493
  {
2162
- "name": "Query parameters",
2163
- "value": "query"
2494
+ "name": "GET",
2495
+ "value": "get"
2164
2496
  }
2165
- ]
2166
- },
2167
- {
2168
- "id": "authentication.name",
2169
- "label": "API key name",
2170
- "optional": false,
2171
- "constraints": {
2172
- "notEmpty": true
2173
- },
2174
- "feel": "optional",
2175
- "group": "authentication",
2176
- "binding": {
2177
- "name": "authentication.name",
2178
- "type": "zeebe:input"
2179
- },
2180
- "condition": {
2181
- "property": "authentication.type",
2182
- "equals": "apiKey",
2183
- "type": "simple"
2184
- },
2185
- "type": "String"
2186
- },
2187
- {
2188
- "id": "authentication.value",
2189
- "label": "API key value",
2190
- "optional": false,
2191
- "constraints": {
2192
- "notEmpty": true
2193
- },
2194
- "feel": "optional",
2195
- "group": "authentication",
2497
+ ],
2196
2498
  "binding": {
2197
- "name": "authentication.value",
2198
- "type": "zeebe:input"
2199
- },
2200
- "condition": {
2201
- "property": "authentication.type",
2202
- "equals": "apiKey",
2203
- "type": "simple"
2204
- },
2205
- "type": "String"
2499
+ "type": "zeebe:input",
2500
+ "name": "graphql.method"
2501
+ }
2206
2502
  },
2207
2503
  {
2208
- "id": "authentication.username",
2209
- "label": "Username",
2210
- "optional": false,
2211
- "constraints": {
2212
- "notEmpty": true
2213
- },
2214
- "feel": "optional",
2215
- "group": "authentication",
2504
+ "id": "headers",
2505
+ "label": "Headers",
2506
+ "group": "endpoint",
2507
+ "type": "Text",
2508
+ "feel": "required",
2509
+ "optional": true,
2216
2510
  "binding": {
2217
- "name": "authentication.username",
2218
- "type": "zeebe:input"
2219
- },
2220
- "condition": {
2221
- "property": "authentication.type",
2222
- "equals": "basic",
2223
- "type": "simple"
2224
- },
2225
- "type": "String"
2511
+ "type": "zeebe:input",
2512
+ "name": "graphql.headers"
2513
+ }
2226
2514
  },
2227
2515
  {
2228
- "id": "authentication.password",
2229
- "label": "Password",
2516
+ "label": "Query/Mutation",
2517
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2518
+ "group": "graphql",
2519
+ "type": "Text",
2520
+ "language": "graphql",
2521
+ "binding": {
2522
+ "type": "zeebe:input",
2523
+ "name": "graphql.query"
2524
+ },
2230
2525
  "optional": false,
2231
2526
  "constraints": {
2232
2527
  "notEmpty": true
2233
- },
2234
- "feel": "optional",
2235
- "group": "authentication",
2528
+ }
2529
+ },
2530
+ {
2531
+ "label": "Variables",
2532
+ "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>",
2533
+ "group": "graphql",
2534
+ "type": "Text",
2535
+ "feel": "required",
2236
2536
  "binding": {
2237
- "name": "authentication.password",
2238
- "type": "zeebe:input"
2239
- },
2240
- "condition": {
2241
- "property": "authentication.type",
2242
- "equals": "basic",
2243
- "type": "simple"
2537
+ "type": "zeebe:input",
2538
+ "name": "graphql.variables"
2244
2539
  },
2245
- "type": "String"
2540
+ "optional": true
2246
2541
  },
2247
2542
  {
2248
- "id": "authentication.token",
2249
2543
  "label": "Bearer token",
2250
- "optional": false,
2251
- "constraints": {
2252
- "notEmpty": true
2253
- },
2254
- "feel": "optional",
2255
2544
  "group": "authentication",
2545
+ "type": "String",
2546
+ "feel": "optional",
2256
2547
  "binding": {
2257
- "name": "authentication.token",
2258
- "type": "zeebe:input"
2548
+ "type": "zeebe:input",
2549
+ "name": "authentication.token"
2259
2550
  },
2260
- "condition": {
2261
- "property": "authentication.type",
2262
- "equals": "bearer",
2263
- "type": "simple"
2551
+ "constraints": {
2552
+ "notEmpty": true
2264
2553
  },
2265
- "type": "String"
2554
+ "condition": {
2555
+ "property": "authenticationType",
2556
+ "equals": "bearer"
2557
+ }
2266
2558
  },
2267
2559
  {
2268
- "id": "authentication.oauthTokenEndpoint",
2269
- "label": "OAuth 2.0 token endpoint",
2560
+ "label": "OAuth token endpoint",
2270
2561
  "description": "The OAuth token endpoint",
2271
- "optional": false,
2272
- "constraints": {
2273
- "notEmpty": true,
2274
- "pattern": {
2275
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2276
- "message": "Must be a http(s) URL"
2277
- }
2278
- },
2279
- "feel": "optional",
2280
2562
  "group": "authentication",
2563
+ "type": "String",
2564
+ "feel": "optional",
2281
2565
  "binding": {
2282
- "name": "authentication.oauthTokenEndpoint",
2283
- "type": "zeebe:input"
2566
+ "type": "zeebe:input",
2567
+ "name": "authentication.oauthTokenEndpoint"
2284
2568
  },
2285
- "condition": {
2286
- "property": "authentication.type",
2287
- "equals": "oauth-client-credentials-flow",
2288
- "type": "simple"
2569
+ "constraints": {
2570
+ "notEmpty": true
2289
2571
  },
2290
- "type": "String"
2572
+ "condition": {
2573
+ "property": "authenticationType",
2574
+ "equals": "oauth-client-credentials-flow"
2575
+ }
2291
2576
  },
2292
2577
  {
2293
- "id": "authentication.clientId",
2294
2578
  "label": "Client ID",
2295
2579
  "description": "Your application's client ID from the OAuth client",
2296
- "optional": false,
2297
- "constraints": {
2298
- "notEmpty": true
2299
- },
2300
- "feel": "optional",
2301
2580
  "group": "authentication",
2581
+ "type": "String",
2582
+ "feel": "optional",
2302
2583
  "binding": {
2303
- "name": "authentication.clientId",
2304
- "type": "zeebe:input"
2305
- },
2306
- "condition": {
2307
- "property": "authentication.type",
2308
- "equals": "oauth-client-credentials-flow",
2309
- "type": "simple"
2584
+ "type": "zeebe:input",
2585
+ "name": "authentication.clientId"
2310
2586
  },
2311
- "type": "String"
2312
- },
2313
- {
2314
- "id": "authentication.clientSecret",
2315
- "label": "Client secret",
2316
- "description": "Your application's client secret from the OAuth client",
2317
- "optional": false,
2318
2587
  "constraints": {
2319
2588
  "notEmpty": true
2320
2589
  },
2321
- "feel": "optional",
2322
- "group": "authentication",
2323
- "binding": {
2324
- "name": "authentication.clientSecret",
2325
- "type": "zeebe:input"
2326
- },
2327
2590
  "condition": {
2328
- "property": "authentication.type",
2329
- "equals": "oauth-client-credentials-flow",
2330
- "type": "simple"
2331
- },
2332
- "type": "String"
2591
+ "property": "authenticationType",
2592
+ "equals": "oauth-client-credentials-flow"
2593
+ }
2333
2594
  },
2334
2595
  {
2335
- "id": "authentication.audience",
2336
- "label": "Audience",
2337
- "description": "The unique identifier of the target API you want to access",
2338
- "optional": true,
2339
- "feel": "optional",
2596
+ "label": "Client secret",
2597
+ "description": "Your application's client secret from the OAuth client",
2340
2598
  "group": "authentication",
2599
+ "type": "String",
2600
+ "feel": "optional",
2341
2601
  "binding": {
2342
- "name": "authentication.audience",
2343
- "type": "zeebe:input"
2344
- },
2345
- "condition": {
2346
- "property": "authentication.type",
2347
- "equals": "oauth-client-credentials-flow",
2348
- "type": "simple"
2602
+ "type": "zeebe:input",
2603
+ "name": "authentication.clientSecret"
2349
2604
  },
2350
- "type": "String"
2351
- },
2352
- {
2353
- "id": "authentication.clientAuthentication",
2354
- "label": "Client authentication",
2355
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2356
- "optional": false,
2357
2605
  "constraints": {
2358
2606
  "notEmpty": true
2359
2607
  },
2360
- "group": "authentication",
2361
- "binding": {
2362
- "name": "authentication.clientAuthentication",
2363
- "type": "zeebe:input"
2364
- },
2365
2608
  "condition": {
2366
- "property": "authentication.type",
2367
- "equals": "oauth-client-credentials-flow",
2368
- "type": "simple"
2369
- },
2370
- "type": "Dropdown",
2371
- "choices": [
2372
- {
2373
- "name": "Send client credentials in body",
2374
- "value": "credentialsBody"
2375
- },
2376
- {
2377
- "name": "Send as Basic Auth header",
2378
- "value": "basicAuthHeader"
2379
- }
2380
- ]
2609
+ "property": "authenticationType",
2610
+ "equals": "oauth-client-credentials-flow"
2611
+ }
2381
2612
  },
2382
2613
  {
2383
- "id": "authentication.scopes",
2384
2614
  "label": "Scopes",
2385
2615
  "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2386
- "optional": true,
2387
- "feel": "optional",
2388
2616
  "group": "authentication",
2617
+ "type": "String",
2618
+ "feel": "optional",
2619
+ "optional": true,
2389
2620
  "binding": {
2390
- "name": "authentication.scopes",
2391
- "type": "zeebe:input"
2621
+ "type": "zeebe:input",
2622
+ "name": "authentication.scopes"
2392
2623
  },
2393
2624
  "condition": {
2394
- "property": "authentication.type",
2395
- "equals": "oauth-client-credentials-flow",
2396
- "type": "simple"
2397
- },
2398
- "type": "String"
2399
- },
2400
- {
2401
- "id": "graphql.method",
2402
- "label": "Method",
2403
- "optional": false,
2404
- "value": "get",
2405
- "constraints": {
2406
- "notEmpty": true
2407
- },
2408
- "group": "endpoint",
2409
- "binding": {
2410
- "name": "graphql.method",
2411
- "type": "zeebe:input"
2412
- },
2413
- "type": "Dropdown",
2414
- "choices": [
2415
- {
2416
- "name": "GET",
2417
- "value": "get"
2418
- },
2419
- {
2420
- "name": "POST",
2421
- "value": "post"
2422
- }
2423
- ]
2625
+ "property": "authenticationType",
2626
+ "equals": "oauth-client-credentials-flow"
2627
+ }
2424
2628
  },
2425
2629
  {
2426
- "id": "graphql.url",
2427
- "label": "URL",
2428
- "optional": false,
2429
- "constraints": {
2430
- "notEmpty": true,
2431
- "pattern": {
2432
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2433
- "message": "Must be a http(s) URL"
2434
- }
2435
- },
2630
+ "label": "Audience",
2631
+ "description": "The unique identifier of the target API you want to access",
2632
+ "group": "authentication",
2633
+ "type": "String",
2436
2634
  "feel": "optional",
2437
- "group": "endpoint",
2635
+ "optional": true,
2438
2636
  "binding": {
2439
- "name": "graphql.url",
2440
- "type": "zeebe:input"
2637
+ "type": "zeebe:input",
2638
+ "name": "authentication.audience"
2441
2639
  },
2442
- "type": "String"
2640
+ "condition": {
2641
+ "property": "authenticationType",
2642
+ "equals": "oauth-client-credentials-flow"
2643
+ }
2443
2644
  },
2444
2645
  {
2445
- "id": "graphql.headers",
2446
- "label": "Headers",
2447
- "description": "Map of HTTP headers to add to the request",
2448
- "optional": true,
2449
- "feel": "required",
2450
- "group": "endpoint",
2646
+ "label": "Client authentication",
2647
+ "id": "authentication.clientAuthentication",
2648
+ "group": "authentication",
2649
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
2650
+ "value": "basicAuthHeader",
2651
+ "type": "Dropdown",
2652
+ "choices": [
2653
+ {
2654
+ "name": "Send client credentials in body",
2655
+ "value": "credentialsBody"
2656
+ },
2657
+ {
2658
+ "name": "Send as Basic Auth header",
2659
+ "value": "basicAuthHeader"
2660
+ }
2661
+ ],
2451
2662
  "binding": {
2452
- "name": "graphql.headers",
2453
- "type": "zeebe:input"
2663
+ "type": "zeebe:input",
2664
+ "name": "authentication.clientAuthentication"
2454
2665
  },
2455
- "type": "String"
2666
+ "condition": {
2667
+ "property": "authenticationType",
2668
+ "equals": "oauth-client-credentials-flow"
2669
+ }
2456
2670
  },
2457
2671
  {
2458
- "id": "graphql.storeResponse",
2459
- "label": "Store response",
2460
- "description": "Store the response as a document in the document store",
2461
- "optional": false,
2462
- "value": false,
2463
- "feel": "static",
2464
- "group": "endpoint",
2672
+ "label": "Username",
2673
+ "group": "authentication",
2674
+ "type": "String",
2675
+ "feel": "optional",
2465
2676
  "binding": {
2466
- "name": "graphql.storeResponse",
2467
- "type": "zeebe:input"
2677
+ "type": "zeebe:input",
2678
+ "name": "authentication.username"
2468
2679
  },
2469
- "type": "Boolean"
2470
- },
2471
- {
2472
- "id": "graphql.query",
2473
- "label": "Query/Mutation",
2474
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2475
- "optional": false,
2476
2680
  "constraints": {
2477
2681
  "notEmpty": true
2478
2682
  },
2479
- "feel": "optional",
2480
- "group": "graphql",
2481
- "binding": {
2482
- "name": "graphql.query",
2483
- "type": "zeebe:input"
2484
- },
2485
- "type": "Text"
2683
+ "condition": {
2684
+ "property": "authenticationType",
2685
+ "equals": "basic"
2686
+ }
2486
2687
  },
2487
2688
  {
2488
- "id": "graphql.variables",
2489
- "label": "Variables",
2490
- "optional": true,
2491
- "feel": "required",
2492
- "group": "graphql",
2689
+ "label": "Password",
2690
+ "group": "authentication",
2691
+ "type": "String",
2692
+ "feel": "optional",
2493
2693
  "binding": {
2494
- "name": "graphql.variables",
2495
- "type": "zeebe:input"
2694
+ "type": "zeebe:input",
2695
+ "name": "authentication.password"
2496
2696
  },
2497
- "type": "String"
2697
+ "constraints": {
2698
+ "notEmpty": true
2699
+ },
2700
+ "condition": {
2701
+ "property": "authenticationType",
2702
+ "equals": "basic"
2703
+ }
2498
2704
  },
2499
2705
  {
2500
- "id": "graphql.connectionTimeoutInSeconds",
2501
- "label": "Connection timeout in seconds",
2706
+ "label": "Connection timeout",
2502
2707
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2503
- "optional": true,
2504
- "value": 20,
2505
- "feel": "static",
2506
2708
  "group": "timeout",
2709
+ "type": "String",
2710
+ "value": "20",
2507
2711
  "binding": {
2508
- "name": "graphql.connectionTimeoutInSeconds",
2509
- "type": "zeebe:input"
2712
+ "type": "zeebe:input",
2713
+ "name": "graphql.connectionTimeoutInSeconds"
2510
2714
  },
2511
- "type": "Number"
2715
+ "feel": "optional",
2716
+ "optional": true,
2717
+ "constraints": {
2718
+ "notEmpty": false,
2719
+ "pattern": {
2720
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
2721
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2722
+ }
2723
+ }
2512
2724
  },
2513
2725
  {
2514
- "id": "resultVariable",
2515
2726
  "label": "Result variable",
2516
2727
  "description": "Name of variable to store the response in",
2517
2728
  "group": "output",
2729
+ "type": "String",
2518
2730
  "binding": {
2519
- "key": "resultVariable",
2520
- "type": "zeebe:taskHeader"
2521
- },
2522
- "type": "String"
2731
+ "type": "zeebe:taskHeader",
2732
+ "key": "resultVariable"
2733
+ }
2523
2734
  },
2524
2735
  {
2525
- "id": "resultExpression",
2526
2736
  "label": "Result expression",
2527
2737
  "description": "Expression to map the response into process variables",
2528
- "feel": "required",
2529
2738
  "group": "output",
2739
+ "type": "Text",
2740
+ "feel": "required",
2530
2741
  "binding": {
2531
- "key": "resultExpression",
2532
- "type": "zeebe:taskHeader"
2533
- },
2534
- "type": "Text"
2742
+ "type": "zeebe:taskHeader",
2743
+ "key": "resultExpression"
2744
+ }
2535
2745
  },
2536
2746
  {
2537
- "id": "errorExpression",
2538
2747
  "label": "Error expression",
2539
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2748
+ "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>",
2749
+ "group": "errors",
2750
+ "type": "Text",
2540
2751
  "feel": "required",
2541
- "group": "error",
2542
- "binding": {
2543
- "key": "errorExpression",
2544
- "type": "zeebe:taskHeader"
2545
- },
2546
- "type": "Text"
2547
- },
2548
- {
2549
- "id": "retryCount",
2550
- "label": "Retries",
2551
- "description": "Number of retries",
2552
- "value": "3",
2553
- "feel": "optional",
2554
- "group": "retries",
2555
- "binding": {
2556
- "property": "retries",
2557
- "type": "zeebe:taskDefinition"
2558
- },
2559
- "type": "String"
2560
- },
2561
- {
2562
- "id": "retryBackoff",
2563
- "label": "Retry backoff",
2564
- "description": "ISO-8601 duration to wait between retries",
2565
- "value": "PT0S",
2566
- "group": "retries",
2567
2752
  "binding": {
2568
- "key": "retryBackoff",
2569
- "type": "zeebe:taskHeader"
2570
- },
2571
- "type": "String"
2753
+ "type": "zeebe:taskHeader",
2754
+ "key": "errorExpression"
2755
+ }
2572
2756
  }
2573
2757
  ],
2574
- "icon": {
2575
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
2758
+ "engines": {
2759
+ "camunda": "^8.4"
2576
2760
  }
2577
2761
  },
2578
2762
  {
@@ -2580,11 +2764,11 @@
2580
2764
  "name": "GraphQL Outbound Connector",
2581
2765
  "id": "io.camunda.connectors.GraphQL.v1",
2582
2766
  "description": "Execute GraphQL query",
2583
- "metadata": {
2584
- "keywords": []
2767
+ "version": 3,
2768
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
2769
+ "icon": {
2770
+ "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
2771
  },
2586
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2587
- "version": 8,
2588
2772
  "category": {
2589
2773
  "id": "connectors",
2590
2774
  "name": "Connectors"
@@ -2593,9 +2777,6 @@
2593
2777
  "elementType": {
2594
2778
  "value": "bpmn:ServiceTask"
2595
2779
  },
2596
- "engines": {
2597
- "camunda": "^8.3"
2598
- },
2599
2780
  "groups": [
2600
2781
  {
2601
2782
  "id": "authentication",
@@ -2603,7 +2784,7 @@
2603
2784
  },
2604
2785
  {
2605
2786
  "id": "endpoint",
2606
- "label": "HTTP Endpoint"
2787
+ "label": "HTTP endpoint"
2607
2788
  },
2608
2789
  {
2609
2790
  "id": "graphql",
@@ -2611,49 +2792,37 @@
2611
2792
  },
2612
2793
  {
2613
2794
  "id": "timeout",
2614
- "label": "Connection timeout"
2615
- },
2616
- {
2617
- "id": "connector",
2618
- "label": "Connector"
2795
+ "label": "Connect timeout"
2619
2796
  },
2620
2797
  {
2621
2798
  "id": "output",
2622
- "label": "Output mapping"
2799
+ "label": "Response mapping"
2623
2800
  },
2624
2801
  {
2625
- "id": "error",
2802
+ "id": "errors",
2626
2803
  "label": "Error handling"
2627
- },
2628
- {
2629
- "id": "retries",
2630
- "label": "Retries"
2631
2804
  }
2632
2805
  ],
2633
2806
  "properties": [
2634
2807
  {
2808
+ "type": "Hidden",
2635
2809
  "value": "io.camunda:connector-graphql:1",
2636
2810
  "binding": {
2637
- "property": "type",
2638
- "type": "zeebe:taskDefinition"
2639
- },
2640
- "type": "Hidden"
2811
+ "type": "zeebe:taskDefinition",
2812
+ "property": "type"
2813
+ }
2641
2814
  },
2642
2815
  {
2643
- "id": "authentication.type",
2644
2816
  "label": "Type",
2817
+ "id": "authenticationType",
2818
+ "group": "authentication",
2645
2819
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2646
2820
  "value": "noAuth",
2647
- "group": "authentication",
2648
- "binding": {
2649
- "name": "authentication.type",
2650
- "type": "zeebe:input"
2651
- },
2652
2821
  "type": "Dropdown",
2653
2822
  "choices": [
2654
2823
  {
2655
- "name": "API key",
2656
- "value": "apiKey"
2824
+ "name": "None",
2825
+ "value": "noAuth"
2657
2826
  },
2658
2827
  {
2659
2828
  "name": "Basic",
@@ -2663,480 +2832,311 @@
2663
2832
  "name": "Bearer token",
2664
2833
  "value": "bearer"
2665
2834
  },
2666
- {
2667
- "name": "None",
2668
- "value": "noAuth"
2669
- },
2670
2835
  {
2671
2836
  "name": "OAuth 2.0",
2672
2837
  "value": "oauth-client-credentials-flow"
2673
2838
  }
2674
- ]
2839
+ ],
2840
+ "binding": {
2841
+ "type": "zeebe:input",
2842
+ "name": "authentication.type"
2843
+ }
2675
2844
  },
2676
2845
  {
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",
2846
+ "label": "URL",
2847
+ "group": "endpoint",
2848
+ "type": "String",
2849
+ "feel": "optional",
2686
2850
  "binding": {
2687
- "name": "authentication.apiKeyLocation",
2688
- "type": "zeebe:input"
2689
- },
2690
- "condition": {
2691
- "property": "authentication.type",
2692
- "equals": "apiKey",
2693
- "type": "simple"
2851
+ "type": "zeebe:input",
2852
+ "name": "graphql.url"
2694
2853
  },
2854
+ "constraints": {
2855
+ "notEmpty": true,
2856
+ "pattern": {
2857
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
2858
+ "message": "Must be a http(s) URL."
2859
+ }
2860
+ }
2861
+ },
2862
+ {
2863
+ "id": "method",
2864
+ "label": "Method",
2865
+ "group": "endpoint",
2695
2866
  "type": "Dropdown",
2867
+ "value": "post",
2696
2868
  "choices": [
2697
2869
  {
2698
- "name": "Headers",
2699
- "value": "headers"
2870
+ "name": "POST",
2871
+ "value": "post"
2700
2872
  },
2701
2873
  {
2702
- "name": "Query parameters",
2703
- "value": "query"
2874
+ "name": "GET",
2875
+ "value": "get"
2704
2876
  }
2705
- ]
2877
+ ],
2878
+ "binding": {
2879
+ "type": "zeebe:input",
2880
+ "name": "graphql.method"
2881
+ }
2706
2882
  },
2707
2883
  {
2708
- "id": "authentication.name",
2709
- "label": "API key name",
2710
- "optional": false,
2711
- "constraints": {
2712
- "notEmpty": true
2713
- },
2714
- "feel": "optional",
2715
- "group": "authentication",
2884
+ "id": "headers",
2885
+ "label": "Headers",
2886
+ "group": "endpoint",
2887
+ "type": "Text",
2888
+ "feel": "required",
2889
+ "optional": true,
2716
2890
  "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"
2891
+ "type": "zeebe:input",
2892
+ "name": "graphql.headers"
2893
+ }
2726
2894
  },
2727
2895
  {
2728
- "id": "authentication.value",
2729
- "label": "API key value",
2730
- "optional": false,
2731
- "constraints": {
2732
- "notEmpty": true
2733
- },
2734
- "feel": "optional",
2735
- "group": "authentication",
2896
+ "label": "Query/Mutation",
2897
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2898
+ "group": "graphql",
2899
+ "type": "Text",
2900
+ "language": "graphql",
2736
2901
  "binding": {
2737
- "name": "authentication.value",
2738
- "type": "zeebe:input"
2739
- },
2740
- "condition": {
2741
- "property": "authentication.type",
2742
- "equals": "apiKey",
2743
- "type": "simple"
2902
+ "type": "zeebe:input",
2903
+ "name": "graphql.query"
2744
2904
  },
2745
- "type": "String"
2746
- },
2747
- {
2748
- "id": "authentication.username",
2749
- "label": "Username",
2750
2905
  "optional": false,
2751
2906
  "constraints": {
2752
2907
  "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"
2908
+ }
2766
2909
  },
2767
2910
  {
2768
- "id": "authentication.password",
2769
- "label": "Password",
2770
- "optional": false,
2771
- "constraints": {
2772
- "notEmpty": true
2773
- },
2774
- "feel": "optional",
2775
- "group": "authentication",
2911
+ "label": "Variables",
2912
+ "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>",
2913
+ "group": "graphql",
2914
+ "type": "Text",
2915
+ "feel": "required",
2776
2916
  "binding": {
2777
- "name": "authentication.password",
2778
- "type": "zeebe:input"
2779
- },
2780
- "condition": {
2781
- "property": "authentication.type",
2782
- "equals": "basic",
2783
- "type": "simple"
2917
+ "type": "zeebe:input",
2918
+ "name": "graphql.variables"
2784
2919
  },
2785
- "type": "String"
2920
+ "optional": true
2786
2921
  },
2787
2922
  {
2788
- "id": "authentication.token",
2789
2923
  "label": "Bearer token",
2790
- "optional": false,
2791
- "constraints": {
2792
- "notEmpty": true
2793
- },
2794
- "feel": "optional",
2795
2924
  "group": "authentication",
2925
+ "type": "String",
2926
+ "feel": "optional",
2796
2927
  "binding": {
2797
- "name": "authentication.token",
2798
- "type": "zeebe:input"
2928
+ "type": "zeebe:input",
2929
+ "name": "graphql.authentication.token"
2799
2930
  },
2800
- "condition": {
2801
- "property": "authentication.type",
2802
- "equals": "bearer",
2803
- "type": "simple"
2931
+ "constraints": {
2932
+ "notEmpty": true
2804
2933
  },
2805
- "type": "String"
2934
+ "condition": {
2935
+ "property": "authenticationType",
2936
+ "equals": "bearer"
2937
+ }
2806
2938
  },
2807
2939
  {
2808
- "id": "authentication.oauthTokenEndpoint",
2809
- "label": "OAuth 2.0 token endpoint",
2940
+ "label": "OAuth token endpoint",
2810
2941
  "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
2942
  "group": "authentication",
2943
+ "type": "String",
2944
+ "feel": "optional",
2821
2945
  "binding": {
2822
- "name": "authentication.oauthTokenEndpoint",
2823
- "type": "zeebe:input"
2946
+ "type": "zeebe:input",
2947
+ "name": "authentication.oauthTokenEndpoint"
2824
2948
  },
2825
- "condition": {
2826
- "property": "authentication.type",
2827
- "equals": "oauth-client-credentials-flow",
2828
- "type": "simple"
2949
+ "constraints": {
2950
+ "notEmpty": true
2829
2951
  },
2830
- "type": "String"
2952
+ "condition": {
2953
+ "property": "authenticationType",
2954
+ "equals": "oauth-client-credentials-flow"
2955
+ }
2831
2956
  },
2832
2957
  {
2833
- "id": "authentication.clientId",
2834
2958
  "label": "Client ID",
2835
2959
  "description": "Your application's client ID from the OAuth client",
2836
- "optional": false,
2837
- "constraints": {
2838
- "notEmpty": true
2839
- },
2840
- "feel": "optional",
2841
2960
  "group": "authentication",
2961
+ "type": "String",
2962
+ "feel": "optional",
2842
2963
  "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"
2964
+ "type": "zeebe:input",
2965
+ "name": "authentication.clientId"
2850
2966
  },
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
2967
  "constraints": {
2859
2968
  "notEmpty": true
2860
2969
  },
2861
- "feel": "optional",
2862
- "group": "authentication",
2863
- "binding": {
2864
- "name": "authentication.clientSecret",
2865
- "type": "zeebe:input"
2866
- },
2867
2970
  "condition": {
2868
- "property": "authentication.type",
2869
- "equals": "oauth-client-credentials-flow",
2870
- "type": "simple"
2871
- },
2872
- "type": "String"
2971
+ "property": "authenticationType",
2972
+ "equals": "oauth-client-credentials-flow"
2973
+ }
2873
2974
  },
2874
2975
  {
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",
2976
+ "label": "Client secret",
2977
+ "description": "Your application's client secret from the OAuth client",
2880
2978
  "group": "authentication",
2979
+ "type": "String",
2980
+ "feel": "optional",
2881
2981
  "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"
2982
+ "type": "zeebe:input",
2983
+ "name": "authentication.clientSecret"
2889
2984
  },
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
2985
  "constraints": {
2898
2986
  "notEmpty": true
2899
2987
  },
2900
- "group": "authentication",
2901
- "binding": {
2902
- "name": "authentication.clientAuthentication",
2903
- "type": "zeebe:input"
2904
- },
2905
2988
  "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
- ]
2989
+ "property": "authenticationType",
2990
+ "equals": "oauth-client-credentials-flow"
2991
+ }
2921
2992
  },
2922
2993
  {
2923
- "id": "authentication.scopes",
2924
2994
  "label": "Scopes",
2925
2995
  "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2926
- "optional": true,
2927
- "feel": "optional",
2928
2996
  "group": "authentication",
2997
+ "type": "String",
2998
+ "feel": "optional",
2999
+ "optional": true,
2929
3000
  "binding": {
2930
- "name": "authentication.scopes",
2931
- "type": "zeebe:input"
3001
+ "type": "zeebe:input",
3002
+ "name": "authentication.scopes"
2932
3003
  },
2933
3004
  "condition": {
2934
- "property": "authentication.type",
2935
- "equals": "oauth-client-credentials-flow",
2936
- "type": "simple"
2937
- },
2938
- "type": "String"
3005
+ "property": "authenticationType",
3006
+ "equals": "oauth-client-credentials-flow"
3007
+ }
2939
3008
  },
2940
3009
  {
2941
- "id": "graphql.method",
2942
- "label": "Method",
2943
- "optional": false,
2944
- "value": "get",
2945
- "constraints": {
2946
- "notEmpty": true
2947
- },
2948
- "group": "endpoint",
3010
+ "label": "Audience",
3011
+ "description": "The unique identifier of the target API you want to access",
3012
+ "group": "authentication",
3013
+ "type": "String",
3014
+ "feel": "optional",
3015
+ "optional": true,
2949
3016
  "binding": {
2950
- "name": "graphql.method",
2951
- "type": "zeebe:input"
3017
+ "type": "zeebe:input",
3018
+ "name": "authentication.audience"
2952
3019
  },
3020
+ "condition": {
3021
+ "property": "authenticationType",
3022
+ "equals": "oauth-client-credentials-flow"
3023
+ }
3024
+ },
3025
+ {
3026
+ "label": "Client authentication",
3027
+ "id": "authentication.clientAuthentication",
3028
+ "group": "authentication",
3029
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
3030
+ "value": "basicAuthHeader",
2953
3031
  "type": "Dropdown",
2954
3032
  "choices": [
2955
3033
  {
2956
- "name": "GET",
2957
- "value": "get"
3034
+ "name": "Send client credentials in body",
3035
+ "value": "credentialsBody"
2958
3036
  },
2959
3037
  {
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"
3038
+ "name": "Send as Basic Auth header",
3039
+ "value": "basicAuthHeader"
2974
3040
  }
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",
3041
+ ],
2991
3042
  "binding": {
2992
- "name": "graphql.headers",
2993
- "type": "zeebe:input"
3043
+ "type": "zeebe:input",
3044
+ "name": "authentication.clientAuthentication"
2994
3045
  },
2995
- "type": "String"
3046
+ "condition": {
3047
+ "property": "authenticationType",
3048
+ "equals": "oauth-client-credentials-flow"
3049
+ }
2996
3050
  },
2997
3051
  {
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",
3052
+ "label": "Username",
3053
+ "group": "authentication",
3054
+ "type": "String",
3055
+ "feel": "optional",
3005
3056
  "binding": {
3006
- "name": "graphql.storeResponse",
3007
- "type": "zeebe:input"
3057
+ "type": "zeebe:input",
3058
+ "name": "authentication.username"
3008
3059
  },
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
3060
  "constraints": {
3017
3061
  "notEmpty": true
3018
3062
  },
3019
- "feel": "optional",
3020
- "group": "graphql",
3021
- "binding": {
3022
- "name": "graphql.query",
3023
- "type": "zeebe:input"
3024
- },
3025
- "type": "Text"
3063
+ "condition": {
3064
+ "property": "authenticationType",
3065
+ "equals": "basic"
3066
+ }
3026
3067
  },
3027
3068
  {
3028
- "id": "graphql.variables",
3029
- "label": "Variables",
3030
- "optional": true,
3031
- "feel": "required",
3032
- "group": "graphql",
3069
+ "label": "Password",
3070
+ "group": "authentication",
3071
+ "type": "String",
3072
+ "feel": "optional",
3033
3073
  "binding": {
3034
- "name": "graphql.variables",
3035
- "type": "zeebe:input"
3074
+ "type": "zeebe:input",
3075
+ "name": "authentication.password"
3036
3076
  },
3037
- "type": "String"
3077
+ "constraints": {
3078
+ "notEmpty": true
3079
+ },
3080
+ "condition": {
3081
+ "property": "authenticationType",
3082
+ "equals": "basic"
3083
+ }
3038
3084
  },
3039
3085
  {
3040
- "id": "graphql.connectionTimeoutInSeconds",
3041
- "label": "Connection timeout in seconds",
3086
+ "label": "Connection timeout",
3042
3087
  "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
3088
  "group": "timeout",
3089
+ "type": "String",
3090
+ "value": "20",
3047
3091
  "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"
3092
+ "type": "zeebe:input",
3093
+ "name": "graphql.connectionTimeoutInSeconds"
3074
3094
  },
3075
- "type": "Hidden"
3095
+ "feel": "optional",
3096
+ "optional": true,
3097
+ "constraints": {
3098
+ "notEmpty": false,
3099
+ "pattern": {
3100
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
3101
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
3102
+ }
3103
+ }
3076
3104
  },
3077
3105
  {
3078
- "id": "resultVariable",
3079
3106
  "label": "Result variable",
3080
3107
  "description": "Name of variable to store the response in",
3081
3108
  "group": "output",
3109
+ "type": "String",
3082
3110
  "binding": {
3083
- "key": "resultVariable",
3084
- "type": "zeebe:taskHeader"
3085
- },
3086
- "type": "String"
3111
+ "type": "zeebe:taskHeader",
3112
+ "key": "resultVariable"
3113
+ }
3087
3114
  },
3088
3115
  {
3089
- "id": "resultExpression",
3090
3116
  "label": "Result expression",
3091
3117
  "description": "Expression to map the response into process variables",
3092
- "feel": "required",
3093
3118
  "group": "output",
3119
+ "type": "Text",
3120
+ "feel": "required",
3094
3121
  "binding": {
3095
- "key": "resultExpression",
3096
- "type": "zeebe:taskHeader"
3097
- },
3098
- "type": "Text"
3122
+ "type": "zeebe:taskHeader",
3123
+ "key": "resultExpression"
3124
+ }
3099
3125
  },
3100
3126
  {
3101
- "id": "errorExpression",
3102
3127
  "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>.",
3128
+ "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>",
3129
+ "group": "errors",
3130
+ "type": "Text",
3104
3131
  "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
3132
  "binding": {
3132
- "key": "retryBackoff",
3133
- "type": "zeebe:taskHeader"
3134
- },
3135
- "type": "String"
3133
+ "type": "zeebe:taskHeader",
3134
+ "key": "errorExpression"
3135
+ }
3136
3136
  }
3137
3137
  ],
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+"
3138
+ "engines": {
3139
+ "camunda": "^8.2"
3140
3140
  }
3141
3141
  }
3142
3142
  ]