@camunda/connectors-element-templates 1.0.18 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/package.json +1 -1
  2. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +2 -2
  3. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +2 -2
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +2 -2
  5. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +2 -2
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +2 -2
  7. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +22 -22
  8. package/src/element-templates/agenticai-aiagent-job-worker.json +240 -240
  9. package/src/element-templates/agenticai-aiagent-outbound-connector.json +3735 -3735
  10. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +550 -550
  11. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +733 -733
  12. package/src/element-templates/asana-connector.json +116 -116
  13. package/src/element-templates/automation-anywhere-outbound-connector.json +665 -665
  14. package/src/element-templates/aws-bedrock-outbound-connector.json +431 -431
  15. package/src/element-templates/aws-dynamodb-outbound-connector.json +1337 -1337
  16. package/src/element-templates/aws-eventbridge-connector-boundary.json +37 -37
  17. package/src/element-templates/aws-eventbridge-connector-intermediate.json +77 -77
  18. package/src/element-templates/aws-eventbridge-connector-message-start.json +21 -21
  19. package/src/element-templates/aws-eventbridge-connector-receive.json +6 -6
  20. package/src/element-templates/aws-eventbridge-outbound-connector.json +229 -229
  21. package/src/element-templates/aws-lambda-outbound-connector.json +278 -278
  22. package/src/element-templates/aws-s3-outbound-connector.json +244 -244
  23. package/src/element-templates/aws-sagemaker-outbound-connector.json +58 -58
  24. package/src/element-templates/aws-sns-inbound-boundary.json +224 -224
  25. package/src/element-templates/aws-sns-inbound-intermediate.json +329 -329
  26. package/src/element-templates/aws-sns-inbound-message-start.json +357 -357
  27. package/src/element-templates/aws-sns-inbound-start-event.json +135 -135
  28. package/src/element-templates/aws-sns-outbound-connector.json +293 -293
  29. package/src/element-templates/aws-sqs-boundary-connector.json +890 -890
  30. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +529 -529
  31. package/src/element-templates/aws-sqs-outbound-connector.json +573 -573
  32. package/src/element-templates/aws-sqs-start-event-connector.json +408 -408
  33. package/src/element-templates/aws-sqs-start-message.json +488 -488
  34. package/src/element-templates/aws-textract-outbound-connector.json +275 -275
  35. package/src/element-templates/azure-blobstorage-outbound-connector.json +200 -200
  36. package/src/element-templates/azure-open-ai-connector.json +48 -48
  37. package/src/element-templates/blue-prism-connector.json +101 -101
  38. package/src/element-templates/csv-outbound-connector.json +44 -44
  39. package/src/element-templates/easy-post-connector.json +216 -216
  40. package/src/element-templates/email-inbound-connector-boundary.json +37 -37
  41. package/src/element-templates/email-inbound-connector-intermediate.json +37 -37
  42. package/src/element-templates/email-message-start-event-connector.json +63 -63
  43. package/src/element-templates/email-outbound-connector.json +902 -902
  44. package/src/element-templates/embeddings-vector-database-outbound-connector.json +520 -520
  45. package/src/element-templates/github-connector.json +10272 -10272
  46. package/src/element-templates/github-webhook-connector-intermediate.json +41 -41
  47. package/src/element-templates/github-webhook-connector-message-start.json +19 -19
  48. package/src/element-templates/github-webhook-connector-start-event.json +54 -54
  49. package/src/element-templates/gitlab-connector.json +2854 -2854
  50. package/src/element-templates/google-cloud-storage-outbound-connector.json +200 -200
  51. package/src/element-templates/google-drive-outbound-connector.json +1139 -1139
  52. package/src/element-templates/google-gemini-outbound-connector.json +122 -122
  53. package/src/element-templates/google-maps-platform-connector.json +94 -94
  54. package/src/element-templates/google-sheets-outbound-connector.json +2455 -2455
  55. package/src/element-templates/graphql-outbound-connector.json +1814 -1814
  56. package/src/element-templates/http-json-connector.json +2221 -2221
  57. package/src/element-templates/http-polling-boundary-catch-event-connector.json +766 -766
  58. package/src/element-templates/http-polling-connector.json +1510 -1510
  59. package/src/element-templates/hubspot-outbound-connector.json +65 -65
  60. package/src/element-templates/hugging-face-connector.json +122 -122
  61. package/src/element-templates/jdbc-outbound-connector.json +67 -67
  62. package/src/element-templates/kafka-inbound-connector-boundary.json +130 -130
  63. package/src/element-templates/kafka-inbound-connector-intermediate.json +1371 -1371
  64. package/src/element-templates/kafka-inbound-connector-start-message.json +166 -166
  65. package/src/element-templates/kafka-outbound-connector.json +250 -250
  66. package/src/element-templates/microsoft-office365-mail-connector.json +77 -77
  67. package/src/element-templates/microsoft-teams-outbound-connector.json +4124 -4124
  68. package/src/element-templates/openai-connector.json +199 -199
  69. package/src/element-templates/operate-connector.json +144 -144
  70. package/src/element-templates/power-automate-connector.json +62 -62
  71. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +454 -454
  72. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +895 -895
  73. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +458 -458
  74. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +610 -610
  75. package/src/element-templates/rabbitmq-outbound-connector.json +662 -662
  76. package/src/element-templates/rpa-connector.json +5 -5
  77. package/src/element-templates/salesforce-connector.json +60 -60
  78. package/src/element-templates/sendgrid-outbound-connector.json +1301 -1301
  79. package/src/element-templates/servicenow-connector.json +6 -6
  80. package/src/element-templates/servicenow-incident-connector.json +6 -6
  81. package/src/element-templates/slack-inbound-boundary.json +305 -305
  82. package/src/element-templates/slack-inbound-intermediate.json +363 -363
  83. package/src/element-templates/slack-inbound-message-start.json +286 -286
  84. package/src/element-templates/slack-inbound-receive.json +23 -23
  85. package/src/element-templates/slack-inbound-start-event.json +301 -301
  86. package/src/element-templates/slack-outbound-connector.json +2249 -2249
  87. package/src/element-templates/twilio-connector.json +366 -366
  88. package/src/element-templates/twilio-webhook-boundary-connector.json +37 -37
  89. package/src/element-templates/twilio-webhook-connector.json +36 -36
  90. package/src/element-templates/twilio-webhook-intermediate-connector.json +59 -59
  91. package/src/element-templates/twilio-webhook-message-start-connector.json +42 -42
  92. package/src/element-templates/uipath-connector.json +54 -54
  93. package/src/element-templates/webhook-connector-boundary.json +1238 -1238
  94. package/src/element-templates/webhook-connector-intermediate.json +1254 -1254
  95. package/src/element-templates/webhook-connector-receive.json +61 -61
  96. package/src/element-templates/webhook-connector-start-event.json +1419 -1419
  97. package/src/element-templates/webhook-connector-start-message.json +1289 -1289
  98. package/src/element-templates/whatsapp-connector.json +21 -21
@@ -4,20 +4,11 @@
4
4
  "name": "GraphQL Outbound Connector",
5
5
  "id": "io.camunda.connectors.GraphQL.v1",
6
6
  "description": "Execute GraphQL query",
7
- "keywords": [
8
- "API",
9
- "query",
10
- "mutation",
11
- "HTTP",
12
- "web request",
13
- "GraphQL",
14
- "fetch data",
15
- "data query",
16
- "execute query",
17
- "API call"
18
- ],
19
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
20
- "version": 9,
7
+ "version": 4,
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"
11
+ },
21
12
  "category": {
22
13
  "id": "connectors",
23
14
  "name": "Connectors"
@@ -26,9 +17,6 @@
26
17
  "elementType": {
27
18
  "value": "bpmn:ServiceTask"
28
19
  },
29
- "engines": {
30
- "camunda": "^8.9"
31
- },
32
20
  "groups": [
33
21
  {
34
22
  "id": "authentication",
@@ -36,7 +24,7 @@
36
24
  },
37
25
  {
38
26
  "id": "endpoint",
39
- "label": "HTTP Endpoint"
27
+ "label": "HTTP endpoint"
40
28
  },
41
29
  {
42
30
  "id": "graphql",
@@ -44,49 +32,37 @@
44
32
  },
45
33
  {
46
34
  "id": "timeout",
47
- "label": "Connection timeout"
48
- },
49
- {
50
- "id": "connector",
51
- "label": "Connector"
35
+ "label": "Connect timeout"
52
36
  },
53
37
  {
54
38
  "id": "output",
55
- "label": "Output mapping"
39
+ "label": "Response mapping"
56
40
  },
57
41
  {
58
- "id": "error",
42
+ "id": "errors",
59
43
  "label": "Error handling"
60
- },
61
- {
62
- "id": "retries",
63
- "label": "Retries"
64
44
  }
65
45
  ],
66
46
  "properties": [
67
47
  {
48
+ "type": "Hidden",
68
49
  "value": "io.camunda:connector-graphql:1",
69
50
  "binding": {
70
- "property": "type",
71
- "type": "zeebe:taskDefinition"
72
- },
73
- "type": "Hidden"
51
+ "type": "zeebe:taskDefinition",
52
+ "property": "type"
53
+ }
74
54
  },
75
55
  {
76
- "id": "authentication.type",
77
56
  "label": "Type",
57
+ "id": "authenticationType",
58
+ "group": "authentication",
78
59
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
79
60
  "value": "noAuth",
80
- "group": "authentication",
81
- "binding": {
82
- "name": "authentication.type",
83
- "type": "zeebe:input"
84
- },
85
61
  "type": "Dropdown",
86
62
  "choices": [
87
63
  {
88
- "name": "API key",
89
- "value": "apiKey"
64
+ "name": "None",
65
+ "value": "noAuth"
90
66
  },
91
67
  {
92
68
  "name": "Basic",
@@ -96,250 +72,202 @@
96
72
  "name": "Bearer token",
97
73
  "value": "bearer"
98
74
  },
99
- {
100
- "name": "None",
101
- "value": "noAuth"
102
- },
103
75
  {
104
76
  "name": "OAuth 2.0",
105
77
  "value": "oauth-client-credentials-flow"
106
78
  }
107
- ]
79
+ ],
80
+ "binding": {
81
+ "type": "zeebe:input",
82
+ "name": "authentication.type"
83
+ }
108
84
  },
109
85
  {
110
- "id": "authentication.apiKeyLocation",
111
- "label": "Api key location",
112
- "description": "Choose type: Send API key in header or as query parameter.",
113
- "optional": false,
114
- "value": "headers",
115
- "constraints": {
116
- "notEmpty": true
117
- },
118
- "group": "authentication",
86
+ "label": "URL",
87
+ "group": "endpoint",
88
+ "type": "String",
89
+ "feel": "optional",
119
90
  "binding": {
120
- "name": "authentication.apiKeyLocation",
121
- "type": "zeebe:input"
122
- },
123
- "condition": {
124
- "property": "authentication.type",
125
- "equals": "apiKey",
126
- "type": "simple"
91
+ "type": "zeebe:input",
92
+ "name": "graphql.url"
127
93
  },
94
+ "constraints": {
95
+ "notEmpty": true,
96
+ "pattern": {
97
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
98
+ "message": "Must be a http(s) URL."
99
+ }
100
+ }
101
+ },
102
+ {
103
+ "id": "method",
104
+ "label": "Method",
105
+ "group": "endpoint",
128
106
  "type": "Dropdown",
107
+ "value": "post",
129
108
  "choices": [
130
109
  {
131
- "name": "Headers",
132
- "value": "headers"
110
+ "name": "POST",
111
+ "value": "post"
133
112
  },
134
113
  {
135
- "name": "Query parameters",
136
- "value": "query"
114
+ "name": "GET",
115
+ "value": "get"
137
116
  }
138
- ]
117
+ ],
118
+ "binding": {
119
+ "type": "zeebe:input",
120
+ "name": "graphql.method"
121
+ }
139
122
  },
140
123
  {
141
- "id": "authentication.name",
142
- "label": "API key name",
143
- "optional": false,
144
- "constraints": {
145
- "notEmpty": true
146
- },
147
- "feel": "optional",
148
- "group": "authentication",
124
+ "id": "headers",
125
+ "label": "Headers",
126
+ "group": "endpoint",
127
+ "type": "Text",
128
+ "feel": "required",
129
+ "optional": true,
149
130
  "binding": {
150
- "name": "authentication.name",
151
- "type": "zeebe:input"
152
- },
153
- "condition": {
154
- "property": "authentication.type",
155
- "equals": "apiKey",
156
- "type": "simple"
157
- },
158
- "type": "String"
131
+ "type": "zeebe:input",
132
+ "name": "graphql.headers"
133
+ }
159
134
  },
160
135
  {
161
- "id": "authentication.value",
162
- "label": "API key value",
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
+ },
163
145
  "optional": false,
164
146
  "constraints": {
165
147
  "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"
166
159
  },
167
- "feel": "optional",
160
+ "optional": true
161
+ },
162
+ {
163
+ "label": "Bearer token",
168
164
  "group": "authentication",
165
+ "type": "String",
166
+ "feel": "optional",
169
167
  "binding": {
170
- "name": "authentication.value",
171
- "type": "zeebe:input"
168
+ "type": "zeebe:input",
169
+ "name": "authentication.token"
172
170
  },
173
- "condition": {
174
- "property": "authentication.type",
175
- "equals": "apiKey",
176
- "type": "simple"
171
+ "constraints": {
172
+ "notEmpty": true
177
173
  },
178
- "type": "String"
174
+ "condition": {
175
+ "property": "authenticationType",
176
+ "equals": "bearer"
177
+ }
179
178
  },
180
179
  {
181
- "id": "authentication.username",
182
- "label": "Username",
183
- "optional": false,
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
+ },
184
189
  "constraints": {
185
190
  "notEmpty": true
186
191
  },
187
- "feel": "optional",
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",
188
200
  "group": "authentication",
201
+ "type": "String",
202
+ "feel": "optional",
189
203
  "binding": {
190
- "name": "authentication.username",
191
- "type": "zeebe:input"
204
+ "type": "zeebe:input",
205
+ "name": "authentication.clientId"
192
206
  },
193
- "condition": {
194
- "property": "authentication.type",
195
- "equals": "basic",
196
- "type": "simple"
207
+ "constraints": {
208
+ "notEmpty": true
197
209
  },
198
- "type": "String"
210
+ "condition": {
211
+ "property": "authenticationType",
212
+ "equals": "oauth-client-credentials-flow"
213
+ }
199
214
  },
200
215
  {
201
- "id": "authentication.password",
202
- "label": "Password",
203
- "optional": false,
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
+ },
204
225
  "constraints": {
205
226
  "notEmpty": true
206
227
  },
207
- "feel": "optional",
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)",
208
236
  "group": "authentication",
237
+ "type": "String",
238
+ "feel": "optional",
239
+ "optional": true,
209
240
  "binding": {
210
- "name": "authentication.password",
211
- "type": "zeebe:input"
241
+ "type": "zeebe:input",
242
+ "name": "authentication.scopes"
212
243
  },
213
244
  "condition": {
214
- "property": "authentication.type",
215
- "equals": "basic",
216
- "type": "simple"
217
- },
218
- "type": "String"
219
- },
220
- {
221
- "id": "authentication.token",
222
- "label": "Bearer token",
223
- "optional": false,
224
- "constraints": {
225
- "notEmpty": true
226
- },
227
- "feel": "optional",
228
- "group": "authentication",
229
- "binding": {
230
- "name": "authentication.token",
231
- "type": "zeebe:input"
232
- },
233
- "condition": {
234
- "property": "authentication.type",
235
- "equals": "bearer",
236
- "type": "simple"
237
- },
238
- "type": "String"
239
- },
240
- {
241
- "id": "authentication.oauthTokenEndpoint",
242
- "label": "OAuth 2.0 token endpoint",
243
- "description": "The OAuth token endpoint",
244
- "optional": false,
245
- "constraints": {
246
- "notEmpty": true,
247
- "pattern": {
248
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
249
- "message": "Must be a http(s) URL"
250
- }
251
- },
252
- "feel": "optional",
253
- "group": "authentication",
254
- "binding": {
255
- "name": "authentication.oauthTokenEndpoint",
256
- "type": "zeebe:input"
257
- },
258
- "condition": {
259
- "property": "authentication.type",
260
- "equals": "oauth-client-credentials-flow",
261
- "type": "simple"
262
- },
263
- "type": "String"
264
- },
265
- {
266
- "id": "authentication.clientId",
267
- "label": "Client ID",
268
- "description": "Your application's client ID from the OAuth client",
269
- "optional": false,
270
- "constraints": {
271
- "notEmpty": true
272
- },
273
- "feel": "optional",
274
- "group": "authentication",
275
- "binding": {
276
- "name": "authentication.clientId",
277
- "type": "zeebe:input"
278
- },
279
- "condition": {
280
- "property": "authentication.type",
281
- "equals": "oauth-client-credentials-flow",
282
- "type": "simple"
283
- },
284
- "type": "String"
285
- },
286
- {
287
- "id": "authentication.clientSecret",
288
- "label": "Client secret",
289
- "description": "Your application's client secret from the OAuth client",
290
- "optional": false,
291
- "constraints": {
292
- "notEmpty": true
293
- },
294
- "feel": "optional",
295
- "group": "authentication",
296
- "binding": {
297
- "name": "authentication.clientSecret",
298
- "type": "zeebe:input"
299
- },
300
- "condition": {
301
- "property": "authentication.type",
302
- "equals": "oauth-client-credentials-flow",
303
- "type": "simple"
304
- },
305
- "type": "String"
245
+ "property": "authenticationType",
246
+ "equals": "oauth-client-credentials-flow"
247
+ }
306
248
  },
307
249
  {
308
- "id": "authentication.audience",
309
250
  "label": "Audience",
310
251
  "description": "The unique identifier of the target API you want to access",
311
- "optional": true,
312
- "feel": "optional",
313
252
  "group": "authentication",
253
+ "type": "String",
254
+ "feel": "optional",
255
+ "optional": true,
314
256
  "binding": {
315
- "name": "authentication.audience",
316
- "type": "zeebe:input"
257
+ "type": "zeebe:input",
258
+ "name": "authentication.audience"
317
259
  },
318
260
  "condition": {
319
- "property": "authentication.type",
320
- "equals": "oauth-client-credentials-flow",
321
- "type": "simple"
322
- },
323
- "type": "String"
261
+ "property": "authenticationType",
262
+ "equals": "oauth-client-credentials-flow"
263
+ }
324
264
  },
325
265
  {
326
- "id": "authentication.clientAuthentication",
327
266
  "label": "Client authentication",
328
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
329
- "optional": false,
330
- "constraints": {
331
- "notEmpty": true
332
- },
267
+ "id": "authentication.clientAuthentication",
333
268
  "group": "authentication",
334
- "binding": {
335
- "name": "authentication.clientAuthentication",
336
- "type": "zeebe:input"
337
- },
338
- "condition": {
339
- "property": "authentication.type",
340
- "equals": "oauth-client-credentials-flow",
341
- "type": "simple"
342
- },
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",
343
271
  "type": "Dropdown",
344
272
  "choices": [
345
273
  {
@@ -350,240 +278,105 @@
350
278
  "name": "Send as Basic Auth header",
351
279
  "value": "basicAuthHeader"
352
280
  }
353
- ]
281
+ ],
282
+ "binding": {
283
+ "type": "zeebe:input",
284
+ "name": "authentication.clientAuthentication"
285
+ },
286
+ "condition": {
287
+ "property": "authenticationType",
288
+ "equals": "oauth-client-credentials-flow"
289
+ }
354
290
  },
355
291
  {
356
- "id": "authentication.scopes",
357
- "label": "Scopes",
358
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
359
- "optional": true,
360
- "feel": "optional",
292
+ "label": "Username",
361
293
  "group": "authentication",
294
+ "type": "String",
295
+ "feel": "optional",
362
296
  "binding": {
363
- "name": "authentication.scopes",
364
- "type": "zeebe:input"
297
+ "type": "zeebe:input",
298
+ "name": "authentication.username"
365
299
  },
366
- "condition": {
367
- "property": "authentication.type",
368
- "equals": "oauth-client-credentials-flow",
369
- "type": "simple"
300
+ "constraints": {
301
+ "notEmpty": true
370
302
  },
371
- "type": "String"
303
+ "condition": {
304
+ "property": "authenticationType",
305
+ "equals": "basic"
306
+ }
372
307
  },
373
308
  {
374
- "id": "graphql.method",
375
- "label": "Method",
376
- "optional": false,
377
- "value": "get",
309
+ "label": "Password",
310
+ "group": "authentication",
311
+ "type": "String",
312
+ "feel": "optional",
313
+ "binding": {
314
+ "type": "zeebe:input",
315
+ "name": "authentication.password"
316
+ },
378
317
  "constraints": {
379
318
  "notEmpty": true
380
319
  },
381
- "group": "endpoint",
382
- "binding": {
383
- "name": "graphql.method",
384
- "type": "zeebe:input"
385
- },
386
- "type": "Dropdown",
387
- "choices": [
388
- {
389
- "name": "GET",
390
- "value": "get"
391
- },
392
- {
393
- "name": "POST",
394
- "value": "post"
395
- }
396
- ]
320
+ "condition": {
321
+ "property": "authenticationType",
322
+ "equals": "basic"
323
+ }
397
324
  },
398
325
  {
399
- "id": "graphql.url",
400
- "label": "URL",
401
- "optional": false,
326
+ "label": "Connection timeout",
327
+ "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
328
+ "group": "timeout",
329
+ "type": "String",
330
+ "value": "20",
331
+ "binding": {
332
+ "type": "zeebe:input",
333
+ "name": "graphql.connectionTimeoutInSeconds"
334
+ },
335
+ "feel": "optional",
336
+ "optional": true,
402
337
  "constraints": {
403
- "notEmpty": true,
338
+ "notEmpty": false,
404
339
  "pattern": {
405
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
406
- "message": "Must be a http(s) URL"
340
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
341
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
407
342
  }
408
- },
409
- "feel": "optional",
410
- "group": "endpoint",
343
+ }
344
+ },
345
+ {
346
+ "label": "Result variable",
347
+ "description": "Name of variable to store the response in",
348
+ "group": "output",
349
+ "type": "String",
411
350
  "binding": {
412
- "name": "graphql.url",
413
- "type": "zeebe:input"
414
- },
415
- "type": "String"
351
+ "type": "zeebe:taskHeader",
352
+ "key": "resultVariable"
353
+ }
416
354
  },
417
355
  {
418
- "id": "graphql.headers",
419
- "label": "Headers",
420
- "description": "Map of HTTP headers to add to the request",
421
- "optional": true,
356
+ "label": "Result expression",
357
+ "description": "Expression to map the response into process variables",
358
+ "group": "output",
359
+ "type": "Text",
422
360
  "feel": "required",
423
- "group": "endpoint",
424
361
  "binding": {
425
- "name": "graphql.headers",
426
- "type": "zeebe:input"
427
- },
428
- "type": "String"
362
+ "type": "zeebe:taskHeader",
363
+ "key": "resultExpression"
364
+ }
429
365
  },
430
366
  {
431
- "id": "graphql.storeResponse",
432
- "label": "Store response",
433
- "description": "Store the response as a document in the document store",
434
- "optional": false,
435
- "value": false,
436
- "feel": "static",
437
- "group": "endpoint",
438
- "binding": {
439
- "name": "graphql.storeResponse",
440
- "type": "zeebe:input"
441
- },
442
- "type": "Boolean"
443
- },
444
- {
445
- "id": "graphql.query",
446
- "label": "Query/Mutation",
447
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
448
- "optional": false,
449
- "constraints": {
450
- "notEmpty": true
451
- },
452
- "feel": "optional",
453
- "group": "graphql",
454
- "binding": {
455
- "name": "graphql.query",
456
- "type": "zeebe:input"
457
- },
458
- "type": "Text"
459
- },
460
- {
461
- "id": "graphql.variables",
462
- "label": "Variables",
463
- "optional": true,
464
- "feel": "required",
465
- "group": "graphql",
466
- "binding": {
467
- "name": "graphql.variables",
468
- "type": "zeebe:input"
469
- },
470
- "type": "String"
471
- },
472
- {
473
- "id": "graphql.connectionTimeoutInSeconds",
474
- "label": "Connection timeout in seconds",
475
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
476
- "optional": true,
477
- "value": 20,
478
- "feel": "static",
479
- "group": "timeout",
480
- "binding": {
481
- "name": "graphql.connectionTimeoutInSeconds",
482
- "type": "zeebe:input"
483
- },
484
- "type": "Number"
485
- },
486
- {
487
- "id": "graphql.readTimeoutInSeconds",
488
- "label": "Read timeout in seconds",
489
- "description": "Timeout in seconds to read data from an established connection or 0 for an infinite timeout",
490
- "optional": true,
491
- "value": 20,
492
- "feel": "static",
493
- "group": "timeout",
494
- "binding": {
495
- "name": "graphql.readTimeoutInSeconds",
496
- "type": "zeebe:input"
497
- },
498
- "type": "Number"
499
- },
500
- {
501
- "id": "version",
502
- "label": "Version",
503
- "description": "Version of the element template",
504
- "value": "9",
505
- "group": "connector",
506
- "binding": {
507
- "key": "elementTemplateVersion",
508
- "type": "zeebe:taskHeader"
509
- },
510
- "type": "Hidden"
511
- },
512
- {
513
- "id": "id",
514
- "label": "ID",
515
- "description": "ID of the element template",
516
- "value": "io.camunda.connectors.GraphQL.v1",
517
- "group": "connector",
518
- "binding": {
519
- "key": "elementTemplateId",
520
- "type": "zeebe:taskHeader"
521
- },
522
- "type": "Hidden"
523
- },
524
- {
525
- "id": "resultVariable",
526
- "label": "Result variable",
527
- "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
528
- "group": "output",
529
- "binding": {
530
- "key": "resultVariable",
531
- "type": "zeebe:taskHeader"
532
- },
533
- "type": "String"
534
- },
535
- {
536
- "id": "resultExpression",
537
- "label": "Result expression",
538
- "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
539
- "feel": "required",
540
- "group": "output",
541
- "binding": {
542
- "key": "resultExpression",
543
- "type": "zeebe:taskHeader"
544
- },
545
- "type": "Text"
546
- },
547
- {
548
- "id": "errorExpression",
549
367
  "label": "Error expression",
550
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
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",
551
371
  "feel": "required",
552
- "group": "error",
553
- "binding": {
554
- "key": "errorExpression",
555
- "type": "zeebe:taskHeader"
556
- },
557
- "type": "Text"
558
- },
559
- {
560
- "id": "retryCount",
561
- "label": "Retries",
562
- "description": "Number of retries",
563
- "value": "3",
564
- "feel": "optional",
565
- "group": "retries",
566
- "binding": {
567
- "property": "retries",
568
- "type": "zeebe:taskDefinition"
569
- },
570
- "type": "String"
571
- },
572
- {
573
- "id": "retryBackoff",
574
- "label": "Retry backoff",
575
- "description": "ISO-8601 duration to wait between retries",
576
- "value": "PT0S",
577
- "group": "retries",
578
372
  "binding": {
579
- "key": "retryBackoff",
580
- "type": "zeebe:taskHeader"
581
- },
582
- "type": "String"
373
+ "type": "zeebe:taskHeader",
374
+ "key": "errorExpression"
375
+ }
583
376
  }
584
377
  ],
585
- "icon": {
586
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
378
+ "engines": {
379
+ "camunda": "^8.4"
587
380
  }
588
381
  },
589
382
  {
@@ -591,11 +384,11 @@
591
384
  "name": "GraphQL Outbound Connector",
592
385
  "id": "io.camunda.connectors.GraphQL.v1",
593
386
  "description": "Execute GraphQL query",
594
- "metadata": {
595
- "keywords": []
387
+ "version": 3,
388
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
389
+ "icon": {
390
+ "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
596
391
  },
597
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
598
- "version": 7,
599
392
  "category": {
600
393
  "id": "connectors",
601
394
  "name": "Connectors"
@@ -604,9 +397,6 @@
604
397
  "elementType": {
605
398
  "value": "bpmn:ServiceTask"
606
399
  },
607
- "engines": {
608
- "camunda": "^8.3"
609
- },
610
400
  "groups": [
611
401
  {
612
402
  "id": "authentication",
@@ -614,7 +404,7 @@
614
404
  },
615
405
  {
616
406
  "id": "endpoint",
617
- "label": "HTTP Endpoint"
407
+ "label": "HTTP endpoint"
618
408
  },
619
409
  {
620
410
  "id": "graphql",
@@ -622,45 +412,37 @@
622
412
  },
623
413
  {
624
414
  "id": "timeout",
625
- "label": "Connection timeout"
415
+ "label": "Connect timeout"
626
416
  },
627
417
  {
628
418
  "id": "output",
629
- "label": "Output mapping"
419
+ "label": "Response mapping"
630
420
  },
631
421
  {
632
- "id": "error",
422
+ "id": "errors",
633
423
  "label": "Error handling"
634
- },
635
- {
636
- "id": "retries",
637
- "label": "Retries"
638
424
  }
639
425
  ],
640
426
  "properties": [
641
427
  {
428
+ "type": "Hidden",
642
429
  "value": "io.camunda:connector-graphql:1",
643
430
  "binding": {
644
- "property": "type",
645
- "type": "zeebe:taskDefinition"
646
- },
647
- "type": "Hidden"
431
+ "type": "zeebe:taskDefinition",
432
+ "property": "type"
433
+ }
648
434
  },
649
435
  {
650
- "id": "authentication.type",
651
436
  "label": "Type",
437
+ "id": "authenticationType",
438
+ "group": "authentication",
652
439
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
653
440
  "value": "noAuth",
654
- "group": "authentication",
655
- "binding": {
656
- "name": "authentication.type",
657
- "type": "zeebe:input"
658
- },
659
441
  "type": "Dropdown",
660
442
  "choices": [
661
443
  {
662
- "name": "API key",
663
- "value": "apiKey"
444
+ "name": "None",
445
+ "value": "noAuth"
664
446
  },
665
447
  {
666
448
  "name": "Basic",
@@ -670,250 +452,202 @@
670
452
  "name": "Bearer token",
671
453
  "value": "bearer"
672
454
  },
673
- {
674
- "name": "None",
675
- "value": "noAuth"
676
- },
677
455
  {
678
456
  "name": "OAuth 2.0",
679
457
  "value": "oauth-client-credentials-flow"
680
458
  }
681
- ]
459
+ ],
460
+ "binding": {
461
+ "type": "zeebe:input",
462
+ "name": "authentication.type"
463
+ }
682
464
  },
683
465
  {
684
- "id": "authentication.apiKeyLocation",
685
- "label": "Api key location",
686
- "description": "Choose type: Send API key in header or as query parameter.",
687
- "optional": false,
688
- "value": "headers",
689
- "constraints": {
690
- "notEmpty": true
691
- },
692
- "group": "authentication",
466
+ "label": "URL",
467
+ "group": "endpoint",
468
+ "type": "String",
469
+ "feel": "optional",
693
470
  "binding": {
694
- "name": "authentication.apiKeyLocation",
695
- "type": "zeebe:input"
696
- },
697
- "condition": {
698
- "property": "authentication.type",
699
- "equals": "apiKey",
700
- "type": "simple"
471
+ "type": "zeebe:input",
472
+ "name": "graphql.url"
701
473
  },
474
+ "constraints": {
475
+ "notEmpty": true,
476
+ "pattern": {
477
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
478
+ "message": "Must be a http(s) URL."
479
+ }
480
+ }
481
+ },
482
+ {
483
+ "id": "method",
484
+ "label": "Method",
485
+ "group": "endpoint",
702
486
  "type": "Dropdown",
487
+ "value": "post",
703
488
  "choices": [
704
489
  {
705
- "name": "Headers",
706
- "value": "headers"
490
+ "name": "POST",
491
+ "value": "post"
707
492
  },
708
493
  {
709
- "name": "Query parameters",
710
- "value": "query"
494
+ "name": "GET",
495
+ "value": "get"
711
496
  }
712
- ]
497
+ ],
498
+ "binding": {
499
+ "type": "zeebe:input",
500
+ "name": "graphql.method"
501
+ }
713
502
  },
714
503
  {
715
- "id": "authentication.name",
716
- "label": "API key name",
717
- "optional": false,
718
- "constraints": {
719
- "notEmpty": true
720
- },
721
- "feel": "optional",
722
- "group": "authentication",
504
+ "id": "headers",
505
+ "label": "Headers",
506
+ "group": "endpoint",
507
+ "type": "Text",
508
+ "feel": "required",
509
+ "optional": true,
723
510
  "binding": {
724
- "name": "authentication.name",
725
- "type": "zeebe:input"
726
- },
727
- "condition": {
728
- "property": "authentication.type",
729
- "equals": "apiKey",
730
- "type": "simple"
731
- },
732
- "type": "String"
511
+ "type": "zeebe:input",
512
+ "name": "graphql.headers"
513
+ }
733
514
  },
734
515
  {
735
- "id": "authentication.value",
736
- "label": "API key value",
737
- "optional": false,
738
- "constraints": {
739
- "notEmpty": true
740
- },
741
- "feel": "optional",
742
- "group": "authentication",
516
+ "label": "Query/Mutation",
517
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
518
+ "group": "graphql",
519
+ "type": "Text",
520
+ "language": "graphql",
743
521
  "binding": {
744
- "name": "authentication.value",
745
- "type": "zeebe:input"
746
- },
747
- "condition": {
748
- "property": "authentication.type",
749
- "equals": "apiKey",
750
- "type": "simple"
522
+ "type": "zeebe:input",
523
+ "name": "graphql.query"
751
524
  },
752
- "type": "String"
753
- },
754
- {
755
- "id": "authentication.username",
756
- "label": "Username",
757
525
  "optional": false,
758
526
  "constraints": {
759
527
  "notEmpty": true
760
- },
761
- "feel": "optional",
762
- "group": "authentication",
763
- "binding": {
764
- "name": "authentication.username",
765
- "type": "zeebe:input"
766
- },
767
- "condition": {
768
- "property": "authentication.type",
769
- "equals": "basic",
770
- "type": "simple"
771
- },
772
- "type": "String"
528
+ }
773
529
  },
774
530
  {
775
- "id": "authentication.password",
776
- "label": "Password",
777
- "optional": false,
778
- "constraints": {
779
- "notEmpty": true
780
- },
781
- "feel": "optional",
782
- "group": "authentication",
531
+ "label": "Variables",
532
+ "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
533
+ "group": "graphql",
534
+ "type": "Text",
535
+ "feel": "required",
783
536
  "binding": {
784
- "name": "authentication.password",
785
- "type": "zeebe:input"
786
- },
787
- "condition": {
788
- "property": "authentication.type",
789
- "equals": "basic",
790
- "type": "simple"
537
+ "type": "zeebe:input",
538
+ "name": "graphql.variables"
791
539
  },
792
- "type": "String"
540
+ "optional": true
793
541
  },
794
542
  {
795
- "id": "authentication.token",
796
543
  "label": "Bearer token",
797
- "optional": false,
798
- "constraints": {
799
- "notEmpty": true
800
- },
801
- "feel": "optional",
802
544
  "group": "authentication",
545
+ "type": "String",
546
+ "feel": "optional",
803
547
  "binding": {
804
- "name": "authentication.token",
805
- "type": "zeebe:input"
548
+ "type": "zeebe:input",
549
+ "name": "graphql.authentication.token"
806
550
  },
807
- "condition": {
808
- "property": "authentication.type",
809
- "equals": "bearer",
810
- "type": "simple"
551
+ "constraints": {
552
+ "notEmpty": true
811
553
  },
812
- "type": "String"
554
+ "condition": {
555
+ "property": "authenticationType",
556
+ "equals": "bearer"
557
+ }
813
558
  },
814
559
  {
815
- "id": "authentication.oauthTokenEndpoint",
816
- "label": "OAuth 2.0 token endpoint",
560
+ "label": "OAuth token endpoint",
817
561
  "description": "The OAuth token endpoint",
818
- "optional": false,
819
- "constraints": {
820
- "notEmpty": true,
821
- "pattern": {
822
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
823
- "message": "Must be a http(s) URL"
824
- }
825
- },
826
- "feel": "optional",
827
562
  "group": "authentication",
563
+ "type": "String",
564
+ "feel": "optional",
828
565
  "binding": {
829
- "name": "authentication.oauthTokenEndpoint",
830
- "type": "zeebe:input"
566
+ "type": "zeebe:input",
567
+ "name": "authentication.oauthTokenEndpoint"
831
568
  },
832
- "condition": {
833
- "property": "authentication.type",
834
- "equals": "oauth-client-credentials-flow",
835
- "type": "simple"
569
+ "constraints": {
570
+ "notEmpty": true
836
571
  },
837
- "type": "String"
572
+ "condition": {
573
+ "property": "authenticationType",
574
+ "equals": "oauth-client-credentials-flow"
575
+ }
838
576
  },
839
577
  {
840
- "id": "authentication.clientId",
841
578
  "label": "Client ID",
842
579
  "description": "Your application's client ID from the OAuth client",
843
- "optional": false,
844
- "constraints": {
845
- "notEmpty": true
846
- },
847
- "feel": "optional",
848
580
  "group": "authentication",
581
+ "type": "String",
582
+ "feel": "optional",
849
583
  "binding": {
850
- "name": "authentication.clientId",
851
- "type": "zeebe:input"
584
+ "type": "zeebe:input",
585
+ "name": "authentication.clientId"
852
586
  },
853
- "condition": {
854
- "property": "authentication.type",
855
- "equals": "oauth-client-credentials-flow",
856
- "type": "simple"
587
+ "constraints": {
588
+ "notEmpty": true
857
589
  },
858
- "type": "String"
590
+ "condition": {
591
+ "property": "authenticationType",
592
+ "equals": "oauth-client-credentials-flow"
593
+ }
859
594
  },
860
595
  {
861
- "id": "authentication.clientSecret",
862
596
  "label": "Client secret",
863
597
  "description": "Your application's client secret from the OAuth client",
864
- "optional": false,
598
+ "group": "authentication",
599
+ "type": "String",
600
+ "feel": "optional",
601
+ "binding": {
602
+ "type": "zeebe:input",
603
+ "name": "authentication.clientSecret"
604
+ },
865
605
  "constraints": {
866
606
  "notEmpty": true
867
607
  },
868
- "feel": "optional",
608
+ "condition": {
609
+ "property": "authenticationType",
610
+ "equals": "oauth-client-credentials-flow"
611
+ }
612
+ },
613
+ {
614
+ "label": "Scopes",
615
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
869
616
  "group": "authentication",
617
+ "type": "String",
618
+ "feel": "optional",
619
+ "optional": true,
870
620
  "binding": {
871
- "name": "authentication.clientSecret",
872
- "type": "zeebe:input"
621
+ "type": "zeebe:input",
622
+ "name": "authentication.scopes"
873
623
  },
874
624
  "condition": {
875
- "property": "authentication.type",
876
- "equals": "oauth-client-credentials-flow",
877
- "type": "simple"
878
- },
879
- "type": "String"
625
+ "property": "authenticationType",
626
+ "equals": "oauth-client-credentials-flow"
627
+ }
880
628
  },
881
629
  {
882
- "id": "authentication.audience",
883
630
  "label": "Audience",
884
631
  "description": "The unique identifier of the target API you want to access",
885
- "optional": true,
886
- "feel": "optional",
887
632
  "group": "authentication",
633
+ "type": "String",
634
+ "feel": "optional",
635
+ "optional": true,
888
636
  "binding": {
889
- "name": "authentication.audience",
890
- "type": "zeebe:input"
637
+ "type": "zeebe:input",
638
+ "name": "authentication.audience"
891
639
  },
892
640
  "condition": {
893
- "property": "authentication.type",
894
- "equals": "oauth-client-credentials-flow",
895
- "type": "simple"
896
- },
897
- "type": "String"
641
+ "property": "authenticationType",
642
+ "equals": "oauth-client-credentials-flow"
643
+ }
898
644
  },
899
645
  {
900
- "id": "authentication.clientAuthentication",
901
646
  "label": "Client authentication",
902
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
903
- "optional": false,
904
- "constraints": {
905
- "notEmpty": true
906
- },
647
+ "id": "authentication.clientAuthentication",
907
648
  "group": "authentication",
908
- "binding": {
909
- "name": "authentication.clientAuthentication",
910
- "type": "zeebe:input"
911
- },
912
- "condition": {
913
- "property": "authentication.type",
914
- "equals": "oauth-client-credentials-flow",
915
- "type": "simple"
916
- },
649
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
650
+ "value": "basicAuthHeader",
917
651
  "type": "Dropdown",
918
652
  "choices": [
919
653
  {
@@ -924,214 +658,117 @@
924
658
  "name": "Send as Basic Auth header",
925
659
  "value": "basicAuthHeader"
926
660
  }
927
- ]
661
+ ],
662
+ "binding": {
663
+ "type": "zeebe:input",
664
+ "name": "authentication.clientAuthentication"
665
+ },
666
+ "condition": {
667
+ "property": "authenticationType",
668
+ "equals": "oauth-client-credentials-flow"
669
+ }
928
670
  },
929
671
  {
930
- "id": "authentication.scopes",
931
- "label": "Scopes",
932
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
933
- "optional": true,
934
- "feel": "optional",
672
+ "label": "Username",
935
673
  "group": "authentication",
674
+ "type": "String",
675
+ "feel": "optional",
936
676
  "binding": {
937
- "name": "authentication.scopes",
938
- "type": "zeebe:input"
677
+ "type": "zeebe:input",
678
+ "name": "authentication.username"
679
+ },
680
+ "constraints": {
681
+ "notEmpty": true
939
682
  },
940
683
  "condition": {
941
- "property": "authentication.type",
942
- "equals": "oauth-client-credentials-flow",
943
- "type": "simple"
944
- },
945
- "type": "String"
946
- },
947
- {
948
- "id": "graphql.method",
949
- "label": "Method",
950
- "optional": false,
951
- "value": "get",
952
- "constraints": {
953
- "notEmpty": true
954
- },
955
- "group": "endpoint",
956
- "binding": {
957
- "name": "graphql.method",
958
- "type": "zeebe:input"
959
- },
960
- "type": "Dropdown",
961
- "choices": [
962
- {
963
- "name": "GET",
964
- "value": "get"
965
- },
966
- {
967
- "name": "POST",
968
- "value": "post"
969
- }
970
- ]
684
+ "property": "authenticationType",
685
+ "equals": "basic"
686
+ }
971
687
  },
972
688
  {
973
- "id": "graphql.url",
974
- "label": "URL",
975
- "optional": false,
976
- "constraints": {
977
- "notEmpty": true,
978
- "pattern": {
979
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
980
- "message": "Must be a http(s) URL"
981
- }
982
- },
689
+ "label": "Password",
690
+ "group": "authentication",
691
+ "type": "String",
983
692
  "feel": "optional",
984
- "group": "endpoint",
985
- "binding": {
986
- "name": "graphql.url",
987
- "type": "zeebe:input"
988
- },
989
- "type": "String"
990
- },
991
- {
992
- "id": "graphql.headers",
993
- "label": "Headers",
994
- "description": "Map of HTTP headers to add to the request",
995
- "optional": true,
996
- "feel": "required",
997
- "group": "endpoint",
998
- "binding": {
999
- "name": "graphql.headers",
1000
- "type": "zeebe:input"
1001
- },
1002
- "type": "String"
1003
- },
1004
- {
1005
- "id": "graphql.storeResponse",
1006
- "label": "Store response",
1007
- "description": "Store the response as a document in the document store",
1008
- "optional": false,
1009
- "value": false,
1010
- "feel": "static",
1011
- "group": "endpoint",
1012
693
  "binding": {
1013
- "name": "graphql.storeResponse",
1014
- "type": "zeebe:input"
694
+ "type": "zeebe:input",
695
+ "name": "authentication.password"
1015
696
  },
1016
- "type": "Boolean"
1017
- },
1018
- {
1019
- "id": "graphql.query",
1020
- "label": "Query/Mutation",
1021
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1022
- "optional": false,
1023
697
  "constraints": {
1024
698
  "notEmpty": true
1025
699
  },
1026
- "feel": "optional",
1027
- "group": "graphql",
1028
- "binding": {
1029
- "name": "graphql.query",
1030
- "type": "zeebe:input"
1031
- },
1032
- "type": "Text"
1033
- },
1034
- {
1035
- "id": "graphql.variables",
1036
- "label": "Variables",
1037
- "optional": true,
1038
- "feel": "required",
1039
- "group": "graphql",
1040
- "binding": {
1041
- "name": "graphql.variables",
1042
- "type": "zeebe:input"
1043
- },
1044
- "type": "String"
700
+ "condition": {
701
+ "property": "authenticationType",
702
+ "equals": "basic"
703
+ }
1045
704
  },
1046
705
  {
1047
- "id": "graphql.connectionTimeoutInSeconds",
1048
- "label": "Connection timeout in seconds",
706
+ "label": "Connection timeout",
1049
707
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1050
- "optional": true,
1051
- "value": 20,
1052
- "feel": "static",
1053
708
  "group": "timeout",
709
+ "type": "String",
710
+ "value": "20",
1054
711
  "binding": {
1055
- "name": "graphql.connectionTimeoutInSeconds",
1056
- "type": "zeebe:input"
712
+ "type": "zeebe:input",
713
+ "name": "graphql.connectionTimeoutInSeconds"
1057
714
  },
1058
- "type": "Number"
715
+ "feel": "optional",
716
+ "optional": true,
717
+ "constraints": {
718
+ "notEmpty": false,
719
+ "pattern": {
720
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
721
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
722
+ }
723
+ }
1059
724
  },
1060
725
  {
1061
- "id": "resultVariable",
1062
726
  "label": "Result variable",
1063
727
  "description": "Name of variable to store the response in",
1064
728
  "group": "output",
729
+ "type": "String",
1065
730
  "binding": {
1066
- "key": "resultVariable",
1067
- "type": "zeebe:taskHeader"
1068
- },
1069
- "type": "String"
731
+ "type": "zeebe:taskHeader",
732
+ "key": "resultVariable"
733
+ }
1070
734
  },
1071
735
  {
1072
- "id": "resultExpression",
1073
736
  "label": "Result expression",
1074
737
  "description": "Expression to map the response into process variables",
1075
- "feel": "required",
1076
738
  "group": "output",
739
+ "type": "Text",
740
+ "feel": "required",
1077
741
  "binding": {
1078
- "key": "resultExpression",
1079
- "type": "zeebe:taskHeader"
1080
- },
1081
- "type": "Text"
742
+ "type": "zeebe:taskHeader",
743
+ "key": "resultExpression"
744
+ }
1082
745
  },
1083
746
  {
1084
- "id": "errorExpression",
1085
747
  "label": "Error expression",
1086
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
748
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
749
+ "group": "errors",
750
+ "type": "Text",
1087
751
  "feel": "required",
1088
- "group": "error",
1089
- "binding": {
1090
- "key": "errorExpression",
1091
- "type": "zeebe:taskHeader"
1092
- },
1093
- "type": "Text"
1094
- },
1095
- {
1096
- "id": "retryCount",
1097
- "label": "Retries",
1098
- "description": "Number of retries",
1099
- "value": "3",
1100
- "feel": "optional",
1101
- "group": "retries",
1102
- "binding": {
1103
- "property": "retries",
1104
- "type": "zeebe:taskDefinition"
1105
- },
1106
- "type": "String"
1107
- },
1108
- {
1109
- "id": "retryBackoff",
1110
- "label": "Retry backoff",
1111
- "description": "ISO-8601 duration to wait between retries",
1112
- "value": "PT0S",
1113
- "group": "retries",
1114
752
  "binding": {
1115
- "key": "retryBackoff",
1116
- "type": "zeebe:taskHeader"
1117
- },
1118
- "type": "String"
753
+ "type": "zeebe:taskHeader",
754
+ "key": "errorExpression"
755
+ }
1119
756
  }
1120
757
  ],
1121
- "icon": {
1122
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
758
+ "engines": {
759
+ "camunda": "^8.2"
1123
760
  }
1124
761
  },
1125
762
  {
1126
763
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1127
- "name": "GraphQL connector",
764
+ "name": "GraphQL Outbound Connector",
1128
765
  "id": "io.camunda.connectors.GraphQL.v1",
1129
766
  "description": "Execute GraphQL query",
1130
- "version": 2,
1131
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1132
- "icon": {
1133
- "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"
767
+ "metadata": {
768
+ "keywords": []
1134
769
  },
770
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
771
+ "version": 7,
1135
772
  "category": {
1136
773
  "id": "connectors",
1137
774
  "name": "Connectors"
@@ -1140,6 +777,9 @@
1140
777
  "elementType": {
1141
778
  "value": "bpmn:ServiceTask"
1142
779
  },
780
+ "engines": {
781
+ "camunda": "^8.3"
782
+ },
1143
783
  "groups": [
1144
784
  {
1145
785
  "id": "authentication",
@@ -1147,7 +787,7 @@
1147
787
  },
1148
788
  {
1149
789
  "id": "endpoint",
1150
- "label": "HTTP endpoint"
790
+ "label": "HTTP Endpoint"
1151
791
  },
1152
792
  {
1153
793
  "id": "graphql",
@@ -1155,37 +795,45 @@
1155
795
  },
1156
796
  {
1157
797
  "id": "timeout",
1158
- "label": "Connect timeout"
798
+ "label": "Connection timeout"
1159
799
  },
1160
800
  {
1161
801
  "id": "output",
1162
- "label": "Response mapping"
802
+ "label": "Output mapping"
1163
803
  },
1164
804
  {
1165
- "id": "errors",
805
+ "id": "error",
1166
806
  "label": "Error handling"
807
+ },
808
+ {
809
+ "id": "retries",
810
+ "label": "Retries"
1167
811
  }
1168
812
  ],
1169
813
  "properties": [
1170
814
  {
1171
- "type": "Hidden",
1172
815
  "value": "io.camunda:connector-graphql:1",
1173
816
  "binding": {
1174
- "type": "zeebe:taskDefinition",
1175
- "property": "type"
1176
- }
817
+ "property": "type",
818
+ "type": "zeebe:taskDefinition"
819
+ },
820
+ "type": "Hidden"
1177
821
  },
1178
822
  {
823
+ "id": "authentication.type",
1179
824
  "label": "Type",
1180
- "id": "authenticationType",
1181
- "group": "authentication",
1182
825
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1183
826
  "value": "noAuth",
827
+ "group": "authentication",
828
+ "binding": {
829
+ "name": "authentication.type",
830
+ "type": "zeebe:input"
831
+ },
1184
832
  "type": "Dropdown",
1185
833
  "choices": [
1186
834
  {
1187
- "name": "None",
1188
- "value": "noAuth"
835
+ "name": "API key",
836
+ "value": "apiKey"
1189
837
  },
1190
838
  {
1191
839
  "name": "Basic",
@@ -1195,202 +843,250 @@
1195
843
  "name": "Bearer token",
1196
844
  "value": "bearer"
1197
845
  },
846
+ {
847
+ "name": "None",
848
+ "value": "noAuth"
849
+ },
1198
850
  {
1199
851
  "name": "OAuth 2.0",
1200
852
  "value": "oauth-client-credentials-flow"
1201
853
  }
1202
- ],
1203
- "binding": {
1204
- "type": "zeebe:input",
1205
- "name": "authentication.type"
1206
- }
854
+ ]
1207
855
  },
1208
856
  {
1209
- "label": "URL",
1210
- "group": "endpoint",
1211
- "type": "String",
1212
- "feel": "optional",
1213
- "binding": {
1214
- "type": "zeebe:input",
1215
- "name": "graphql.url"
1216
- },
1217
- "constraints": {
1218
- "notEmpty": true,
1219
- "pattern": {
1220
- "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
1221
- "message": "Must be a http(s) URL."
1222
- }
1223
- }
1224
- },
1225
- {
1226
- "id": "method",
1227
- "label": "Method",
1228
- "group": "endpoint",
857
+ "id": "authentication.apiKeyLocation",
858
+ "label": "Api key location",
859
+ "description": "Choose type: Send API key in header or as query parameter.",
860
+ "optional": false,
861
+ "value": "headers",
862
+ "constraints": {
863
+ "notEmpty": true
864
+ },
865
+ "group": "authentication",
866
+ "binding": {
867
+ "name": "authentication.apiKeyLocation",
868
+ "type": "zeebe:input"
869
+ },
870
+ "condition": {
871
+ "property": "authentication.type",
872
+ "equals": "apiKey",
873
+ "type": "simple"
874
+ },
1229
875
  "type": "Dropdown",
1230
- "value": "post",
1231
876
  "choices": [
1232
877
  {
1233
- "name": "POST",
1234
- "value": "post"
878
+ "name": "Headers",
879
+ "value": "headers"
1235
880
  },
1236
881
  {
1237
- "name": "GET",
1238
- "value": "get"
882
+ "name": "Query parameters",
883
+ "value": "query"
1239
884
  }
1240
- ],
1241
- "binding": {
1242
- "type": "zeebe:input",
1243
- "name": "graphql.method"
1244
- }
885
+ ]
1245
886
  },
1246
887
  {
1247
- "id": "headers",
1248
- "label": "Headers",
1249
- "group": "endpoint",
1250
- "type": "Text",
1251
- "feel": "required",
1252
- "optional": true,
888
+ "id": "authentication.name",
889
+ "label": "API key name",
890
+ "optional": false,
891
+ "constraints": {
892
+ "notEmpty": true
893
+ },
894
+ "feel": "optional",
895
+ "group": "authentication",
1253
896
  "binding": {
1254
- "type": "zeebe:input",
1255
- "name": "graphql.headers"
1256
- }
897
+ "name": "authentication.name",
898
+ "type": "zeebe:input"
899
+ },
900
+ "condition": {
901
+ "property": "authentication.type",
902
+ "equals": "apiKey",
903
+ "type": "simple"
904
+ },
905
+ "type": "String"
1257
906
  },
1258
907
  {
1259
- "label": "Query/Mutation",
1260
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1261
- "group": "graphql",
1262
- "type": "Text",
1263
- "language": "graphql",
1264
- "binding": {
1265
- "type": "zeebe:input",
1266
- "name": "graphql.query"
1267
- },
908
+ "id": "authentication.value",
909
+ "label": "API key value",
1268
910
  "optional": false,
1269
911
  "constraints": {
1270
912
  "notEmpty": true
1271
- }
913
+ },
914
+ "feel": "optional",
915
+ "group": "authentication",
916
+ "binding": {
917
+ "name": "authentication.value",
918
+ "type": "zeebe:input"
919
+ },
920
+ "condition": {
921
+ "property": "authentication.type",
922
+ "equals": "apiKey",
923
+ "type": "simple"
924
+ },
925
+ "type": "String"
1272
926
  },
1273
927
  {
1274
- "label": "Variables",
1275
- "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>",
1276
- "group": "graphql",
1277
- "type": "Text",
1278
- "feel": "required",
928
+ "id": "authentication.username",
929
+ "label": "Username",
930
+ "optional": false,
931
+ "constraints": {
932
+ "notEmpty": true
933
+ },
934
+ "feel": "optional",
935
+ "group": "authentication",
1279
936
  "binding": {
1280
- "type": "zeebe:input",
1281
- "name": "graphql.variables"
937
+ "name": "authentication.username",
938
+ "type": "zeebe:input"
1282
939
  },
1283
- "optional": true
940
+ "condition": {
941
+ "property": "authentication.type",
942
+ "equals": "basic",
943
+ "type": "simple"
944
+ },
945
+ "type": "String"
1284
946
  },
1285
947
  {
1286
- "label": "Bearer token",
1287
- "group": "authentication",
1288
- "type": "String",
948
+ "id": "authentication.password",
949
+ "label": "Password",
950
+ "optional": false,
951
+ "constraints": {
952
+ "notEmpty": true
953
+ },
1289
954
  "feel": "optional",
955
+ "group": "authentication",
1290
956
  "binding": {
1291
- "type": "zeebe:input",
1292
- "name": "graphql.authentication.token"
957
+ "name": "authentication.password",
958
+ "type": "zeebe:input"
959
+ },
960
+ "condition": {
961
+ "property": "authentication.type",
962
+ "equals": "basic",
963
+ "type": "simple"
1293
964
  },
965
+ "type": "String"
966
+ },
967
+ {
968
+ "id": "authentication.token",
969
+ "label": "Bearer token",
970
+ "optional": false,
1294
971
  "constraints": {
1295
972
  "notEmpty": true
1296
973
  },
974
+ "feel": "optional",
975
+ "group": "authentication",
976
+ "binding": {
977
+ "name": "authentication.token",
978
+ "type": "zeebe:input"
979
+ },
1297
980
  "condition": {
1298
- "property": "authenticationType",
1299
- "equals": "bearer"
1300
- }
981
+ "property": "authentication.type",
982
+ "equals": "bearer",
983
+ "type": "simple"
984
+ },
985
+ "type": "String"
1301
986
  },
1302
987
  {
1303
- "label": "OAuth token endpoint",
988
+ "id": "authentication.oauthTokenEndpoint",
989
+ "label": "OAuth 2.0 token endpoint",
1304
990
  "description": "The OAuth token endpoint",
1305
- "group": "authentication",
1306
- "type": "String",
991
+ "optional": false,
992
+ "constraints": {
993
+ "notEmpty": true,
994
+ "pattern": {
995
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
996
+ "message": "Must be a http(s) URL"
997
+ }
998
+ },
1307
999
  "feel": "optional",
1000
+ "group": "authentication",
1308
1001
  "binding": {
1309
- "type": "zeebe:input",
1310
- "name": "authentication.oauthTokenEndpoint"
1311
- },
1312
- "constraints": {
1313
- "notEmpty": true
1002
+ "name": "authentication.oauthTokenEndpoint",
1003
+ "type": "zeebe:input"
1314
1004
  },
1315
1005
  "condition": {
1316
- "property": "authenticationType",
1317
- "equals": "oauth-client-credentials-flow"
1318
- }
1006
+ "property": "authentication.type",
1007
+ "equals": "oauth-client-credentials-flow",
1008
+ "type": "simple"
1009
+ },
1010
+ "type": "String"
1319
1011
  },
1320
1012
  {
1013
+ "id": "authentication.clientId",
1321
1014
  "label": "Client ID",
1322
1015
  "description": "Your application's client ID from the OAuth client",
1323
- "group": "authentication",
1324
- "type": "String",
1325
- "feel": "optional",
1326
- "binding": {
1327
- "type": "zeebe:input",
1328
- "name": "authentication.clientId"
1329
- },
1016
+ "optional": false,
1330
1017
  "constraints": {
1331
1018
  "notEmpty": true
1332
1019
  },
1020
+ "feel": "optional",
1021
+ "group": "authentication",
1022
+ "binding": {
1023
+ "name": "authentication.clientId",
1024
+ "type": "zeebe:input"
1025
+ },
1333
1026
  "condition": {
1334
- "property": "authenticationType",
1335
- "equals": "oauth-client-credentials-flow"
1336
- }
1027
+ "property": "authentication.type",
1028
+ "equals": "oauth-client-credentials-flow",
1029
+ "type": "simple"
1030
+ },
1031
+ "type": "String"
1337
1032
  },
1338
1033
  {
1034
+ "id": "authentication.clientSecret",
1339
1035
  "label": "Client secret",
1340
1036
  "description": "Your application's client secret from the OAuth client",
1341
- "group": "authentication",
1342
- "type": "String",
1343
- "feel": "optional",
1344
- "binding": {
1345
- "type": "zeebe:input",
1346
- "name": "authentication.clientSecret"
1347
- },
1037
+ "optional": false,
1348
1038
  "constraints": {
1349
1039
  "notEmpty": true
1350
1040
  },
1351
- "condition": {
1352
- "property": "authenticationType",
1353
- "equals": "oauth-client-credentials-flow"
1354
- }
1355
- },
1356
- {
1357
- "label": "Scopes",
1358
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1359
- "group": "authentication",
1360
- "type": "String",
1361
1041
  "feel": "optional",
1362
- "optional": true,
1042
+ "group": "authentication",
1363
1043
  "binding": {
1364
- "type": "zeebe:input",
1365
- "name": "authentication.scopes"
1044
+ "name": "authentication.clientSecret",
1045
+ "type": "zeebe:input"
1366
1046
  },
1367
1047
  "condition": {
1368
- "property": "authenticationType",
1369
- "equals": "oauth-client-credentials-flow"
1370
- }
1048
+ "property": "authentication.type",
1049
+ "equals": "oauth-client-credentials-flow",
1050
+ "type": "simple"
1051
+ },
1052
+ "type": "String"
1371
1053
  },
1372
1054
  {
1055
+ "id": "authentication.audience",
1373
1056
  "label": "Audience",
1374
1057
  "description": "The unique identifier of the target API you want to access",
1375
- "group": "authentication",
1376
- "type": "String",
1377
- "feel": "optional",
1378
1058
  "optional": true,
1059
+ "feel": "optional",
1060
+ "group": "authentication",
1379
1061
  "binding": {
1380
- "type": "zeebe:input",
1381
- "name": "authentication.audience"
1062
+ "name": "authentication.audience",
1063
+ "type": "zeebe:input"
1382
1064
  },
1383
1065
  "condition": {
1384
- "property": "authenticationType",
1385
- "equals": "oauth-client-credentials-flow"
1386
- }
1387
- },
1066
+ "property": "authentication.type",
1067
+ "equals": "oauth-client-credentials-flow",
1068
+ "type": "simple"
1069
+ },
1070
+ "type": "String"
1071
+ },
1388
1072
  {
1389
- "label": "Client authentication",
1390
1073
  "id": "authentication.clientAuthentication",
1074
+ "label": "Client authentication",
1075
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1076
+ "optional": false,
1077
+ "constraints": {
1078
+ "notEmpty": true
1079
+ },
1391
1080
  "group": "authentication",
1392
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
1393
- "value": "basicAuthHeader",
1081
+ "binding": {
1082
+ "name": "authentication.clientAuthentication",
1083
+ "type": "zeebe:input"
1084
+ },
1085
+ "condition": {
1086
+ "property": "authentication.type",
1087
+ "equals": "oauth-client-credentials-flow",
1088
+ "type": "simple"
1089
+ },
1394
1090
  "type": "Dropdown",
1395
1091
  "choices": [
1396
1092
  {
@@ -1401,105 +1097,202 @@
1401
1097
  "name": "Send as Basic Auth header",
1402
1098
  "value": "basicAuthHeader"
1403
1099
  }
1404
- ],
1405
- "binding": {
1406
- "type": "zeebe:input",
1407
- "name": "authentication.clientAuthentication"
1408
- },
1409
- "condition": {
1410
- "property": "authenticationType",
1411
- "equals": "oauth-client-credentials-flow"
1412
- }
1100
+ ]
1413
1101
  },
1414
1102
  {
1415
- "label": "Username",
1416
- "group": "authentication",
1417
- "type": "String",
1103
+ "id": "authentication.scopes",
1104
+ "label": "Scopes",
1105
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1106
+ "optional": true,
1418
1107
  "feel": "optional",
1108
+ "group": "authentication",
1419
1109
  "binding": {
1420
- "type": "zeebe:input",
1421
- "name": "authentication.username"
1110
+ "name": "authentication.scopes",
1111
+ "type": "zeebe:input"
1112
+ },
1113
+ "condition": {
1114
+ "property": "authentication.type",
1115
+ "equals": "oauth-client-credentials-flow",
1116
+ "type": "simple"
1422
1117
  },
1118
+ "type": "String"
1119
+ },
1120
+ {
1121
+ "id": "graphql.method",
1122
+ "label": "Method",
1123
+ "optional": false,
1124
+ "value": "get",
1423
1125
  "constraints": {
1424
1126
  "notEmpty": true
1425
1127
  },
1426
- "condition": {
1427
- "property": "authenticationType",
1428
- "equals": "basic"
1429
- }
1128
+ "group": "endpoint",
1129
+ "binding": {
1130
+ "name": "graphql.method",
1131
+ "type": "zeebe:input"
1132
+ },
1133
+ "type": "Dropdown",
1134
+ "choices": [
1135
+ {
1136
+ "name": "GET",
1137
+ "value": "get"
1138
+ },
1139
+ {
1140
+ "name": "POST",
1141
+ "value": "post"
1142
+ }
1143
+ ]
1430
1144
  },
1431
1145
  {
1432
- "label": "Password",
1433
- "group": "authentication",
1434
- "type": "String",
1146
+ "id": "graphql.url",
1147
+ "label": "URL",
1148
+ "optional": false,
1149
+ "constraints": {
1150
+ "notEmpty": true,
1151
+ "pattern": {
1152
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1153
+ "message": "Must be a http(s) URL"
1154
+ }
1155
+ },
1435
1156
  "feel": "optional",
1157
+ "group": "endpoint",
1436
1158
  "binding": {
1437
- "type": "zeebe:input",
1438
- "name": "authentication.password"
1159
+ "name": "graphql.url",
1160
+ "type": "zeebe:input"
1439
1161
  },
1162
+ "type": "String"
1163
+ },
1164
+ {
1165
+ "id": "graphql.headers",
1166
+ "label": "Headers",
1167
+ "description": "Map of HTTP headers to add to the request",
1168
+ "optional": true,
1169
+ "feel": "required",
1170
+ "group": "endpoint",
1171
+ "binding": {
1172
+ "name": "graphql.headers",
1173
+ "type": "zeebe:input"
1174
+ },
1175
+ "type": "String"
1176
+ },
1177
+ {
1178
+ "id": "graphql.storeResponse",
1179
+ "label": "Store response",
1180
+ "description": "Store the response as a document in the document store",
1181
+ "optional": false,
1182
+ "value": false,
1183
+ "feel": "static",
1184
+ "group": "endpoint",
1185
+ "binding": {
1186
+ "name": "graphql.storeResponse",
1187
+ "type": "zeebe:input"
1188
+ },
1189
+ "type": "Boolean"
1190
+ },
1191
+ {
1192
+ "id": "graphql.query",
1193
+ "label": "Query/Mutation",
1194
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1195
+ "optional": false,
1440
1196
  "constraints": {
1441
1197
  "notEmpty": true
1442
1198
  },
1443
- "condition": {
1444
- "property": "authenticationType",
1445
- "equals": "basic"
1446
- }
1199
+ "feel": "optional",
1200
+ "group": "graphql",
1201
+ "binding": {
1202
+ "name": "graphql.query",
1203
+ "type": "zeebe:input"
1204
+ },
1205
+ "type": "Text"
1447
1206
  },
1448
1207
  {
1449
- "label": "Connection timeout",
1208
+ "id": "graphql.variables",
1209
+ "label": "Variables",
1210
+ "optional": true,
1211
+ "feel": "required",
1212
+ "group": "graphql",
1213
+ "binding": {
1214
+ "name": "graphql.variables",
1215
+ "type": "zeebe:input"
1216
+ },
1217
+ "type": "String"
1218
+ },
1219
+ {
1220
+ "id": "graphql.connectionTimeoutInSeconds",
1221
+ "label": "Connection timeout in seconds",
1450
1222
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1223
+ "optional": true,
1224
+ "value": 20,
1225
+ "feel": "static",
1451
1226
  "group": "timeout",
1452
- "type": "String",
1453
- "value": "20",
1454
1227
  "binding": {
1455
- "type": "zeebe:input",
1456
- "name": "graphql.connectionTimeoutInSeconds"
1228
+ "name": "graphql.connectionTimeoutInSeconds",
1229
+ "type": "zeebe:input"
1457
1230
  },
1458
- "feel": "optional",
1459
- "optional": true,
1460
- "constraints": {
1461
- "notEmpty": false,
1462
- "pattern": {
1463
- "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
1464
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1465
- }
1466
- }
1231
+ "type": "Number"
1467
1232
  },
1468
1233
  {
1234
+ "id": "resultVariable",
1469
1235
  "label": "Result variable",
1470
1236
  "description": "Name of variable to store the response in",
1471
1237
  "group": "output",
1472
- "type": "String",
1473
1238
  "binding": {
1474
- "type": "zeebe:taskHeader",
1475
- "key": "resultVariable"
1476
- }
1239
+ "key": "resultVariable",
1240
+ "type": "zeebe:taskHeader"
1241
+ },
1242
+ "type": "String"
1477
1243
  },
1478
1244
  {
1245
+ "id": "resultExpression",
1479
1246
  "label": "Result expression",
1480
1247
  "description": "Expression to map the response into process variables",
1481
- "group": "output",
1482
- "type": "Text",
1483
1248
  "feel": "required",
1249
+ "group": "output",
1484
1250
  "binding": {
1485
- "type": "zeebe:taskHeader",
1486
- "key": "resultExpression"
1487
- }
1251
+ "key": "resultExpression",
1252
+ "type": "zeebe:taskHeader"
1253
+ },
1254
+ "type": "Text"
1488
1255
  },
1489
1256
  {
1257
+ "id": "errorExpression",
1490
1258
  "label": "Error expression",
1491
- "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>",
1492
- "group": "errors",
1493
- "type": "Text",
1259
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1494
1260
  "feel": "required",
1261
+ "group": "error",
1495
1262
  "binding": {
1496
- "type": "zeebe:taskHeader",
1497
- "key": "errorExpression"
1498
- }
1263
+ "key": "errorExpression",
1264
+ "type": "zeebe:taskHeader"
1265
+ },
1266
+ "type": "Text"
1267
+ },
1268
+ {
1269
+ "id": "retryCount",
1270
+ "label": "Retries",
1271
+ "description": "Number of retries",
1272
+ "value": "3",
1273
+ "feel": "optional",
1274
+ "group": "retries",
1275
+ "binding": {
1276
+ "property": "retries",
1277
+ "type": "zeebe:taskDefinition"
1278
+ },
1279
+ "type": "String"
1280
+ },
1281
+ {
1282
+ "id": "retryBackoff",
1283
+ "label": "Retry backoff",
1284
+ "description": "ISO-8601 duration to wait between retries",
1285
+ "value": "PT0S",
1286
+ "group": "retries",
1287
+ "binding": {
1288
+ "key": "retryBackoff",
1289
+ "type": "zeebe:taskHeader"
1290
+ },
1291
+ "type": "String"
1499
1292
  }
1500
1293
  ],
1501
- "engines": {
1502
- "camunda": "^8.2"
1294
+ "icon": {
1295
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
1503
1296
  }
1504
1297
  },
1505
1298
  {
@@ -2027,11 +1820,11 @@
2027
1820
  "name": "GraphQL Outbound Connector",
2028
1821
  "id": "io.camunda.connectors.GraphQL.v1",
2029
1822
  "description": "Execute GraphQL query",
2030
- "version": 4,
2031
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
2032
- "icon": {
2033
- "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"
1823
+ "metadata": {
1824
+ "keywords": []
2034
1825
  },
1826
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1827
+ "version": 8,
2035
1828
  "category": {
2036
1829
  "id": "connectors",
2037
1830
  "name": "Connectors"
@@ -2040,6 +1833,9 @@
2040
1833
  "elementType": {
2041
1834
  "value": "bpmn:ServiceTask"
2042
1835
  },
1836
+ "engines": {
1837
+ "camunda": "^8.3"
1838
+ },
2043
1839
  "groups": [
2044
1840
  {
2045
1841
  "id": "authentication",
@@ -2047,7 +1843,7 @@
2047
1843
  },
2048
1844
  {
2049
1845
  "id": "endpoint",
2050
- "label": "HTTP endpoint"
1846
+ "label": "HTTP Endpoint"
2051
1847
  },
2052
1848
  {
2053
1849
  "id": "graphql",
@@ -2055,37 +1851,49 @@
2055
1851
  },
2056
1852
  {
2057
1853
  "id": "timeout",
2058
- "label": "Connect timeout"
1854
+ "label": "Connection timeout"
2059
1855
  },
2060
1856
  {
2061
- "id": "output",
2062
- "label": "Response mapping"
1857
+ "id": "connector",
1858
+ "label": "Connector"
2063
1859
  },
2064
1860
  {
2065
- "id": "errors",
1861
+ "id": "output",
1862
+ "label": "Output mapping"
1863
+ },
1864
+ {
1865
+ "id": "error",
2066
1866
  "label": "Error handling"
1867
+ },
1868
+ {
1869
+ "id": "retries",
1870
+ "label": "Retries"
2067
1871
  }
2068
1872
  ],
2069
1873
  "properties": [
2070
1874
  {
2071
- "type": "Hidden",
2072
1875
  "value": "io.camunda:connector-graphql:1",
2073
1876
  "binding": {
2074
- "type": "zeebe:taskDefinition",
2075
- "property": "type"
2076
- }
1877
+ "property": "type",
1878
+ "type": "zeebe:taskDefinition"
1879
+ },
1880
+ "type": "Hidden"
2077
1881
  },
2078
1882
  {
1883
+ "id": "authentication.type",
2079
1884
  "label": "Type",
2080
- "id": "authenticationType",
2081
- "group": "authentication",
2082
1885
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2083
1886
  "value": "noAuth",
1887
+ "group": "authentication",
1888
+ "binding": {
1889
+ "name": "authentication.type",
1890
+ "type": "zeebe:input"
1891
+ },
2084
1892
  "type": "Dropdown",
2085
1893
  "choices": [
2086
1894
  {
2087
- "name": "None",
2088
- "value": "noAuth"
1895
+ "name": "API key",
1896
+ "value": "apiKey"
2089
1897
  },
2090
1898
  {
2091
1899
  "name": "Basic",
@@ -2095,202 +1903,250 @@
2095
1903
  "name": "Bearer token",
2096
1904
  "value": "bearer"
2097
1905
  },
1906
+ {
1907
+ "name": "None",
1908
+ "value": "noAuth"
1909
+ },
2098
1910
  {
2099
1911
  "name": "OAuth 2.0",
2100
1912
  "value": "oauth-client-credentials-flow"
2101
1913
  }
2102
- ],
2103
- "binding": {
2104
- "type": "zeebe:input",
2105
- "name": "authentication.type"
2106
- }
1914
+ ]
2107
1915
  },
2108
1916
  {
2109
- "label": "URL",
2110
- "group": "endpoint",
2111
- "type": "String",
2112
- "feel": "optional",
1917
+ "id": "authentication.apiKeyLocation",
1918
+ "label": "Api key location",
1919
+ "description": "Choose type: Send API key in header or as query parameter.",
1920
+ "optional": false,
1921
+ "value": "headers",
1922
+ "constraints": {
1923
+ "notEmpty": true
1924
+ },
1925
+ "group": "authentication",
2113
1926
  "binding": {
2114
- "type": "zeebe:input",
2115
- "name": "graphql.url"
1927
+ "name": "authentication.apiKeyLocation",
1928
+ "type": "zeebe:input"
1929
+ },
1930
+ "condition": {
1931
+ "property": "authentication.type",
1932
+ "equals": "apiKey",
1933
+ "type": "simple"
2116
1934
  },
2117
- "constraints": {
2118
- "notEmpty": true,
2119
- "pattern": {
2120
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
2121
- "message": "Must be a http(s) URL."
2122
- }
2123
- }
2124
- },
2125
- {
2126
- "id": "method",
2127
- "label": "Method",
2128
- "group": "endpoint",
2129
1935
  "type": "Dropdown",
2130
- "value": "post",
2131
1936
  "choices": [
2132
1937
  {
2133
- "name": "POST",
2134
- "value": "post"
1938
+ "name": "Headers",
1939
+ "value": "headers"
2135
1940
  },
2136
1941
  {
2137
- "name": "GET",
2138
- "value": "get"
1942
+ "name": "Query parameters",
1943
+ "value": "query"
2139
1944
  }
2140
- ],
2141
- "binding": {
2142
- "type": "zeebe:input",
2143
- "name": "graphql.method"
2144
- }
1945
+ ]
2145
1946
  },
2146
1947
  {
2147
- "id": "headers",
2148
- "label": "Headers",
2149
- "group": "endpoint",
2150
- "type": "Text",
2151
- "feel": "required",
2152
- "optional": true,
1948
+ "id": "authentication.name",
1949
+ "label": "API key name",
1950
+ "optional": false,
1951
+ "constraints": {
1952
+ "notEmpty": true
1953
+ },
1954
+ "feel": "optional",
1955
+ "group": "authentication",
2153
1956
  "binding": {
2154
- "type": "zeebe:input",
2155
- "name": "graphql.headers"
2156
- }
1957
+ "name": "authentication.name",
1958
+ "type": "zeebe:input"
1959
+ },
1960
+ "condition": {
1961
+ "property": "authentication.type",
1962
+ "equals": "apiKey",
1963
+ "type": "simple"
1964
+ },
1965
+ "type": "String"
2157
1966
  },
2158
1967
  {
2159
- "label": "Query/Mutation",
2160
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2161
- "group": "graphql",
2162
- "type": "Text",
2163
- "language": "graphql",
2164
- "binding": {
2165
- "type": "zeebe:input",
2166
- "name": "graphql.query"
2167
- },
1968
+ "id": "authentication.value",
1969
+ "label": "API key value",
2168
1970
  "optional": false,
2169
1971
  "constraints": {
2170
1972
  "notEmpty": true
2171
- }
1973
+ },
1974
+ "feel": "optional",
1975
+ "group": "authentication",
1976
+ "binding": {
1977
+ "name": "authentication.value",
1978
+ "type": "zeebe:input"
1979
+ },
1980
+ "condition": {
1981
+ "property": "authentication.type",
1982
+ "equals": "apiKey",
1983
+ "type": "simple"
1984
+ },
1985
+ "type": "String"
2172
1986
  },
2173
1987
  {
2174
- "label": "Variables",
2175
- "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>",
2176
- "group": "graphql",
2177
- "type": "Text",
2178
- "feel": "required",
1988
+ "id": "authentication.username",
1989
+ "label": "Username",
1990
+ "optional": false,
1991
+ "constraints": {
1992
+ "notEmpty": true
1993
+ },
1994
+ "feel": "optional",
1995
+ "group": "authentication",
2179
1996
  "binding": {
2180
- "type": "zeebe:input",
2181
- "name": "graphql.variables"
1997
+ "name": "authentication.username",
1998
+ "type": "zeebe:input"
2182
1999
  },
2183
- "optional": true
2000
+ "condition": {
2001
+ "property": "authentication.type",
2002
+ "equals": "basic",
2003
+ "type": "simple"
2004
+ },
2005
+ "type": "String"
2184
2006
  },
2185
2007
  {
2186
- "label": "Bearer token",
2187
- "group": "authentication",
2188
- "type": "String",
2008
+ "id": "authentication.password",
2009
+ "label": "Password",
2010
+ "optional": false,
2011
+ "constraints": {
2012
+ "notEmpty": true
2013
+ },
2189
2014
  "feel": "optional",
2015
+ "group": "authentication",
2190
2016
  "binding": {
2191
- "type": "zeebe:input",
2192
- "name": "authentication.token"
2017
+ "name": "authentication.password",
2018
+ "type": "zeebe:input"
2019
+ },
2020
+ "condition": {
2021
+ "property": "authentication.type",
2022
+ "equals": "basic",
2023
+ "type": "simple"
2193
2024
  },
2025
+ "type": "String"
2026
+ },
2027
+ {
2028
+ "id": "authentication.token",
2029
+ "label": "Bearer token",
2030
+ "optional": false,
2194
2031
  "constraints": {
2195
2032
  "notEmpty": true
2196
2033
  },
2034
+ "feel": "optional",
2035
+ "group": "authentication",
2036
+ "binding": {
2037
+ "name": "authentication.token",
2038
+ "type": "zeebe:input"
2039
+ },
2197
2040
  "condition": {
2198
- "property": "authenticationType",
2199
- "equals": "bearer"
2200
- }
2041
+ "property": "authentication.type",
2042
+ "equals": "bearer",
2043
+ "type": "simple"
2044
+ },
2045
+ "type": "String"
2201
2046
  },
2202
2047
  {
2203
- "label": "OAuth token endpoint",
2048
+ "id": "authentication.oauthTokenEndpoint",
2049
+ "label": "OAuth 2.0 token endpoint",
2204
2050
  "description": "The OAuth token endpoint",
2205
- "group": "authentication",
2206
- "type": "String",
2051
+ "optional": false,
2052
+ "constraints": {
2053
+ "notEmpty": true,
2054
+ "pattern": {
2055
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2056
+ "message": "Must be a http(s) URL"
2057
+ }
2058
+ },
2207
2059
  "feel": "optional",
2060
+ "group": "authentication",
2208
2061
  "binding": {
2209
- "type": "zeebe:input",
2210
- "name": "authentication.oauthTokenEndpoint"
2211
- },
2212
- "constraints": {
2213
- "notEmpty": true
2062
+ "name": "authentication.oauthTokenEndpoint",
2063
+ "type": "zeebe:input"
2214
2064
  },
2215
2065
  "condition": {
2216
- "property": "authenticationType",
2217
- "equals": "oauth-client-credentials-flow"
2218
- }
2066
+ "property": "authentication.type",
2067
+ "equals": "oauth-client-credentials-flow",
2068
+ "type": "simple"
2069
+ },
2070
+ "type": "String"
2219
2071
  },
2220
2072
  {
2073
+ "id": "authentication.clientId",
2221
2074
  "label": "Client ID",
2222
2075
  "description": "Your application's client ID from the OAuth client",
2223
- "group": "authentication",
2224
- "type": "String",
2225
- "feel": "optional",
2226
- "binding": {
2227
- "type": "zeebe:input",
2228
- "name": "authentication.clientId"
2229
- },
2076
+ "optional": false,
2230
2077
  "constraints": {
2231
2078
  "notEmpty": true
2232
2079
  },
2080
+ "feel": "optional",
2081
+ "group": "authentication",
2082
+ "binding": {
2083
+ "name": "authentication.clientId",
2084
+ "type": "zeebe:input"
2085
+ },
2233
2086
  "condition": {
2234
- "property": "authenticationType",
2235
- "equals": "oauth-client-credentials-flow"
2236
- }
2087
+ "property": "authentication.type",
2088
+ "equals": "oauth-client-credentials-flow",
2089
+ "type": "simple"
2090
+ },
2091
+ "type": "String"
2237
2092
  },
2238
2093
  {
2094
+ "id": "authentication.clientSecret",
2239
2095
  "label": "Client secret",
2240
2096
  "description": "Your application's client secret from the OAuth client",
2241
- "group": "authentication",
2242
- "type": "String",
2243
- "feel": "optional",
2244
- "binding": {
2245
- "type": "zeebe:input",
2246
- "name": "authentication.clientSecret"
2247
- },
2097
+ "optional": false,
2248
2098
  "constraints": {
2249
2099
  "notEmpty": true
2250
2100
  },
2251
- "condition": {
2252
- "property": "authenticationType",
2253
- "equals": "oauth-client-credentials-flow"
2254
- }
2255
- },
2256
- {
2257
- "label": "Scopes",
2258
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2259
- "group": "authentication",
2260
- "type": "String",
2261
2101
  "feel": "optional",
2262
- "optional": true,
2102
+ "group": "authentication",
2263
2103
  "binding": {
2264
- "type": "zeebe:input",
2265
- "name": "authentication.scopes"
2104
+ "name": "authentication.clientSecret",
2105
+ "type": "zeebe:input"
2266
2106
  },
2267
2107
  "condition": {
2268
- "property": "authenticationType",
2269
- "equals": "oauth-client-credentials-flow"
2270
- }
2108
+ "property": "authentication.type",
2109
+ "equals": "oauth-client-credentials-flow",
2110
+ "type": "simple"
2111
+ },
2112
+ "type": "String"
2271
2113
  },
2272
2114
  {
2115
+ "id": "authentication.audience",
2273
2116
  "label": "Audience",
2274
2117
  "description": "The unique identifier of the target API you want to access",
2275
- "group": "authentication",
2276
- "type": "String",
2277
- "feel": "optional",
2278
2118
  "optional": true,
2119
+ "feel": "optional",
2120
+ "group": "authentication",
2279
2121
  "binding": {
2280
- "type": "zeebe:input",
2281
- "name": "authentication.audience"
2122
+ "name": "authentication.audience",
2123
+ "type": "zeebe:input"
2282
2124
  },
2283
2125
  "condition": {
2284
- "property": "authenticationType",
2285
- "equals": "oauth-client-credentials-flow"
2286
- }
2126
+ "property": "authentication.type",
2127
+ "equals": "oauth-client-credentials-flow",
2128
+ "type": "simple"
2129
+ },
2130
+ "type": "String"
2287
2131
  },
2288
2132
  {
2289
- "label": "Client authentication",
2290
2133
  "id": "authentication.clientAuthentication",
2134
+ "label": "Client authentication",
2135
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2136
+ "optional": false,
2137
+ "constraints": {
2138
+ "notEmpty": true
2139
+ },
2291
2140
  "group": "authentication",
2292
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
2293
- "value": "basicAuthHeader",
2141
+ "binding": {
2142
+ "name": "authentication.clientAuthentication",
2143
+ "type": "zeebe:input"
2144
+ },
2145
+ "condition": {
2146
+ "property": "authentication.type",
2147
+ "equals": "oauth-client-credentials-flow",
2148
+ "type": "simple"
2149
+ },
2294
2150
  "type": "Dropdown",
2295
2151
  "choices": [
2296
2152
  {
@@ -2301,117 +2157,238 @@
2301
2157
  "name": "Send as Basic Auth header",
2302
2158
  "value": "basicAuthHeader"
2303
2159
  }
2304
- ],
2305
- "binding": {
2306
- "type": "zeebe:input",
2307
- "name": "authentication.clientAuthentication"
2308
- },
2309
- "condition": {
2310
- "property": "authenticationType",
2311
- "equals": "oauth-client-credentials-flow"
2312
- }
2160
+ ]
2313
2161
  },
2314
2162
  {
2315
- "label": "Username",
2316
- "group": "authentication",
2317
- "type": "String",
2163
+ "id": "authentication.scopes",
2164
+ "label": "Scopes",
2165
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2166
+ "optional": true,
2318
2167
  "feel": "optional",
2168
+ "group": "authentication",
2319
2169
  "binding": {
2320
- "type": "zeebe:input",
2321
- "name": "authentication.username"
2170
+ "name": "authentication.scopes",
2171
+ "type": "zeebe:input"
2172
+ },
2173
+ "condition": {
2174
+ "property": "authentication.type",
2175
+ "equals": "oauth-client-credentials-flow",
2176
+ "type": "simple"
2322
2177
  },
2178
+ "type": "String"
2179
+ },
2180
+ {
2181
+ "id": "graphql.method",
2182
+ "label": "Method",
2183
+ "optional": false,
2184
+ "value": "get",
2323
2185
  "constraints": {
2324
2186
  "notEmpty": true
2325
2187
  },
2326
- "condition": {
2327
- "property": "authenticationType",
2328
- "equals": "basic"
2329
- }
2188
+ "group": "endpoint",
2189
+ "binding": {
2190
+ "name": "graphql.method",
2191
+ "type": "zeebe:input"
2192
+ },
2193
+ "type": "Dropdown",
2194
+ "choices": [
2195
+ {
2196
+ "name": "GET",
2197
+ "value": "get"
2198
+ },
2199
+ {
2200
+ "name": "POST",
2201
+ "value": "post"
2202
+ }
2203
+ ]
2330
2204
  },
2331
2205
  {
2332
- "label": "Password",
2333
- "group": "authentication",
2334
- "type": "String",
2206
+ "id": "graphql.url",
2207
+ "label": "URL",
2208
+ "optional": false,
2209
+ "constraints": {
2210
+ "notEmpty": true,
2211
+ "pattern": {
2212
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2213
+ "message": "Must be a http(s) URL"
2214
+ }
2215
+ },
2335
2216
  "feel": "optional",
2217
+ "group": "endpoint",
2336
2218
  "binding": {
2337
- "type": "zeebe:input",
2338
- "name": "authentication.password"
2219
+ "name": "graphql.url",
2220
+ "type": "zeebe:input"
2221
+ },
2222
+ "type": "String"
2223
+ },
2224
+ {
2225
+ "id": "graphql.headers",
2226
+ "label": "Headers",
2227
+ "description": "Map of HTTP headers to add to the request",
2228
+ "optional": true,
2229
+ "feel": "required",
2230
+ "group": "endpoint",
2231
+ "binding": {
2232
+ "name": "graphql.headers",
2233
+ "type": "zeebe:input"
2234
+ },
2235
+ "type": "String"
2236
+ },
2237
+ {
2238
+ "id": "graphql.storeResponse",
2239
+ "label": "Store response",
2240
+ "description": "Store the response as a document in the document store",
2241
+ "optional": false,
2242
+ "value": false,
2243
+ "feel": "static",
2244
+ "group": "endpoint",
2245
+ "binding": {
2246
+ "name": "graphql.storeResponse",
2247
+ "type": "zeebe:input"
2339
2248
  },
2249
+ "type": "Boolean"
2250
+ },
2251
+ {
2252
+ "id": "graphql.query",
2253
+ "label": "Query/Mutation",
2254
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2255
+ "optional": false,
2340
2256
  "constraints": {
2341
2257
  "notEmpty": true
2342
2258
  },
2343
- "condition": {
2344
- "property": "authenticationType",
2345
- "equals": "basic"
2346
- }
2259
+ "feel": "optional",
2260
+ "group": "graphql",
2261
+ "binding": {
2262
+ "name": "graphql.query",
2263
+ "type": "zeebe:input"
2264
+ },
2265
+ "type": "Text"
2347
2266
  },
2348
2267
  {
2349
- "label": "Connection timeout",
2268
+ "id": "graphql.variables",
2269
+ "label": "Variables",
2270
+ "optional": true,
2271
+ "feel": "required",
2272
+ "group": "graphql",
2273
+ "binding": {
2274
+ "name": "graphql.variables",
2275
+ "type": "zeebe:input"
2276
+ },
2277
+ "type": "String"
2278
+ },
2279
+ {
2280
+ "id": "graphql.connectionTimeoutInSeconds",
2281
+ "label": "Connection timeout in seconds",
2350
2282
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2283
+ "optional": true,
2284
+ "value": 20,
2285
+ "feel": "static",
2351
2286
  "group": "timeout",
2352
- "type": "String",
2353
- "value": "20",
2354
2287
  "binding": {
2355
- "type": "zeebe:input",
2356
- "name": "graphql.connectionTimeoutInSeconds"
2288
+ "name": "graphql.connectionTimeoutInSeconds",
2289
+ "type": "zeebe:input"
2357
2290
  },
2358
- "feel": "optional",
2359
- "optional": true,
2360
- "constraints": {
2361
- "notEmpty": false,
2362
- "pattern": {
2363
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
2364
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2365
- }
2366
- }
2291
+ "type": "Number"
2292
+ },
2293
+ {
2294
+ "id": "version",
2295
+ "label": "Version",
2296
+ "description": "Version of the element template",
2297
+ "value": "8",
2298
+ "group": "connector",
2299
+ "binding": {
2300
+ "key": "elementTemplateVersion",
2301
+ "type": "zeebe:taskHeader"
2302
+ },
2303
+ "type": "Hidden"
2304
+ },
2305
+ {
2306
+ "id": "id",
2307
+ "label": "ID",
2308
+ "description": "ID of the element template",
2309
+ "value": "io.camunda.connectors.GraphQL.v1",
2310
+ "group": "connector",
2311
+ "binding": {
2312
+ "key": "elementTemplateId",
2313
+ "type": "zeebe:taskHeader"
2314
+ },
2315
+ "type": "Hidden"
2367
2316
  },
2368
2317
  {
2318
+ "id": "resultVariable",
2369
2319
  "label": "Result variable",
2370
2320
  "description": "Name of variable to store the response in",
2371
2321
  "group": "output",
2372
- "type": "String",
2373
2322
  "binding": {
2374
- "type": "zeebe:taskHeader",
2375
- "key": "resultVariable"
2376
- }
2323
+ "key": "resultVariable",
2324
+ "type": "zeebe:taskHeader"
2325
+ },
2326
+ "type": "String"
2377
2327
  },
2378
2328
  {
2329
+ "id": "resultExpression",
2379
2330
  "label": "Result expression",
2380
2331
  "description": "Expression to map the response into process variables",
2381
- "group": "output",
2382
- "type": "Text",
2383
2332
  "feel": "required",
2333
+ "group": "output",
2384
2334
  "binding": {
2385
- "type": "zeebe:taskHeader",
2386
- "key": "resultExpression"
2387
- }
2335
+ "key": "resultExpression",
2336
+ "type": "zeebe:taskHeader"
2337
+ },
2338
+ "type": "Text"
2388
2339
  },
2389
2340
  {
2341
+ "id": "errorExpression",
2390
2342
  "label": "Error expression",
2391
- "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>",
2392
- "group": "errors",
2393
- "type": "Text",
2343
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2394
2344
  "feel": "required",
2345
+ "group": "error",
2395
2346
  "binding": {
2396
- "type": "zeebe:taskHeader",
2397
- "key": "errorExpression"
2398
- }
2347
+ "key": "errorExpression",
2348
+ "type": "zeebe:taskHeader"
2349
+ },
2350
+ "type": "Text"
2351
+ },
2352
+ {
2353
+ "id": "retryCount",
2354
+ "label": "Retries",
2355
+ "description": "Number of retries",
2356
+ "value": "3",
2357
+ "feel": "optional",
2358
+ "group": "retries",
2359
+ "binding": {
2360
+ "property": "retries",
2361
+ "type": "zeebe:taskDefinition"
2362
+ },
2363
+ "type": "String"
2364
+ },
2365
+ {
2366
+ "id": "retryBackoff",
2367
+ "label": "Retry backoff",
2368
+ "description": "ISO-8601 duration to wait between retries",
2369
+ "value": "PT0S",
2370
+ "group": "retries",
2371
+ "binding": {
2372
+ "key": "retryBackoff",
2373
+ "type": "zeebe:taskHeader"
2374
+ },
2375
+ "type": "String"
2399
2376
  }
2400
2377
  ],
2401
- "engines": {
2402
- "camunda": "^8.4"
2378
+ "icon": {
2379
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
2403
2380
  }
2404
2381
  },
2405
2382
  {
2406
2383
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2407
- "name": "GraphQL Outbound Connector",
2384
+ "name": "GraphQL connector",
2408
2385
  "id": "io.camunda.connectors.GraphQL.v1",
2409
2386
  "description": "Execute GraphQL query",
2410
- "metadata": {
2411
- "keywords": []
2387
+ "version": 1,
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"
2412
2391
  },
2413
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2414
- "version": 8,
2415
2392
  "category": {
2416
2393
  "id": "connectors",
2417
2394
  "name": "Connectors"
@@ -2420,9 +2397,6 @@
2420
2397
  "elementType": {
2421
2398
  "value": "bpmn:ServiceTask"
2422
2399
  },
2423
- "engines": {
2424
- "camunda": "^8.3"
2425
- },
2426
2400
  "groups": [
2427
2401
  {
2428
2402
  "id": "authentication",
@@ -2430,7 +2404,7 @@
2430
2404
  },
2431
2405
  {
2432
2406
  "id": "endpoint",
2433
- "label": "HTTP Endpoint"
2407
+ "label": "HTTP endpoint"
2434
2408
  },
2435
2409
  {
2436
2410
  "id": "graphql",
@@ -2438,49 +2412,37 @@
2438
2412
  },
2439
2413
  {
2440
2414
  "id": "timeout",
2441
- "label": "Connection timeout"
2442
- },
2443
- {
2444
- "id": "connector",
2445
- "label": "Connector"
2415
+ "label": "Connect timeout"
2446
2416
  },
2447
2417
  {
2448
2418
  "id": "output",
2449
- "label": "Output mapping"
2419
+ "label": "Response mapping"
2450
2420
  },
2451
2421
  {
2452
- "id": "error",
2422
+ "id": "errors",
2453
2423
  "label": "Error handling"
2454
- },
2455
- {
2456
- "id": "retries",
2457
- "label": "Retries"
2458
2424
  }
2459
2425
  ],
2460
2426
  "properties": [
2461
2427
  {
2428
+ "type": "Hidden",
2462
2429
  "value": "io.camunda:connector-graphql:1",
2463
2430
  "binding": {
2464
- "property": "type",
2465
- "type": "zeebe:taskDefinition"
2466
- },
2467
- "type": "Hidden"
2431
+ "type": "zeebe:taskDefinition",
2432
+ "property": "type"
2433
+ }
2468
2434
  },
2469
2435
  {
2470
- "id": "authentication.type",
2471
2436
  "label": "Type",
2437
+ "id": "authenticationType",
2438
+ "group": "authentication",
2472
2439
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2473
2440
  "value": "noAuth",
2474
- "group": "authentication",
2475
- "binding": {
2476
- "name": "authentication.type",
2477
- "type": "zeebe:input"
2478
- },
2479
2441
  "type": "Dropdown",
2480
2442
  "choices": [
2481
2443
  {
2482
- "name": "API key",
2483
- "value": "apiKey"
2444
+ "name": "None",
2445
+ "value": "noAuth"
2484
2446
  },
2485
2447
  {
2486
2448
  "name": "Basic",
@@ -2490,250 +2452,202 @@
2490
2452
  "name": "Bearer token",
2491
2453
  "value": "bearer"
2492
2454
  },
2493
- {
2494
- "name": "None",
2495
- "value": "noAuth"
2496
- },
2497
2455
  {
2498
2456
  "name": "OAuth 2.0",
2499
2457
  "value": "oauth-client-credentials-flow"
2500
2458
  }
2501
- ]
2459
+ ],
2460
+ "binding": {
2461
+ "type": "zeebe:input",
2462
+ "name": "authentication.type"
2463
+ }
2502
2464
  },
2503
2465
  {
2504
- "id": "authentication.apiKeyLocation",
2505
- "label": "Api key location",
2506
- "description": "Choose type: Send API key in header or as query parameter.",
2507
- "optional": false,
2508
- "value": "headers",
2509
- "constraints": {
2510
- "notEmpty": true
2511
- },
2512
- "group": "authentication",
2466
+ "label": "URL",
2467
+ "group": "endpoint",
2468
+ "type": "String",
2469
+ "feel": "optional",
2513
2470
  "binding": {
2514
- "name": "authentication.apiKeyLocation",
2515
- "type": "zeebe:input"
2516
- },
2517
- "condition": {
2518
- "property": "authentication.type",
2519
- "equals": "apiKey",
2520
- "type": "simple"
2471
+ "type": "zeebe:input",
2472
+ "name": "graphql.url"
2521
2473
  },
2474
+ "constraints": {
2475
+ "notEmpty": true,
2476
+ "pattern": {
2477
+ "value": "^(=|(http://|https://|secrets).*$)",
2478
+ "message": "Must be a http(s) URL."
2479
+ }
2480
+ }
2481
+ },
2482
+ {
2483
+ "id": "method",
2484
+ "label": "Method",
2485
+ "group": "endpoint",
2522
2486
  "type": "Dropdown",
2487
+ "value": "post",
2523
2488
  "choices": [
2524
2489
  {
2525
- "name": "Headers",
2526
- "value": "headers"
2490
+ "name": "POST",
2491
+ "value": "post"
2527
2492
  },
2528
2493
  {
2529
- "name": "Query parameters",
2530
- "value": "query"
2494
+ "name": "GET",
2495
+ "value": "get"
2531
2496
  }
2532
- ]
2497
+ ],
2498
+ "binding": {
2499
+ "type": "zeebe:input",
2500
+ "name": "graphql.method"
2501
+ }
2533
2502
  },
2534
2503
  {
2535
- "id": "authentication.name",
2536
- "label": "API key name",
2537
- "optional": false,
2538
- "constraints": {
2539
- "notEmpty": true
2540
- },
2541
- "feel": "optional",
2542
- "group": "authentication",
2504
+ "id": "headers",
2505
+ "label": "Headers",
2506
+ "group": "endpoint",
2507
+ "type": "Text",
2508
+ "feel": "required",
2509
+ "optional": true,
2543
2510
  "binding": {
2544
- "name": "authentication.name",
2545
- "type": "zeebe:input"
2546
- },
2547
- "condition": {
2548
- "property": "authentication.type",
2549
- "equals": "apiKey",
2550
- "type": "simple"
2551
- },
2552
- "type": "String"
2511
+ "type": "zeebe:input",
2512
+ "name": "graphql.headers"
2513
+ }
2553
2514
  },
2554
2515
  {
2555
- "id": "authentication.value",
2556
- "label": "API key value",
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
+ },
2557
2525
  "optional": false,
2558
2526
  "constraints": {
2559
2527
  "notEmpty": true
2560
- },
2561
- "feel": "optional",
2562
- "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",
2563
2536
  "binding": {
2564
- "name": "authentication.value",
2565
- "type": "zeebe:input"
2566
- },
2567
- "condition": {
2568
- "property": "authentication.type",
2569
- "equals": "apiKey",
2570
- "type": "simple"
2537
+ "type": "zeebe:input",
2538
+ "name": "graphql.variables"
2571
2539
  },
2572
- "type": "String"
2540
+ "optional": true
2573
2541
  },
2574
2542
  {
2575
- "id": "authentication.username",
2576
- "label": "Username",
2577
- "optional": false,
2578
- "constraints": {
2579
- "notEmpty": true
2580
- },
2581
- "feel": "optional",
2543
+ "label": "Bearer token",
2582
2544
  "group": "authentication",
2545
+ "type": "String",
2546
+ "feel": "optional",
2583
2547
  "binding": {
2584
- "name": "authentication.username",
2585
- "type": "zeebe:input"
2586
- },
2587
- "condition": {
2588
- "property": "authentication.type",
2589
- "equals": "basic",
2590
- "type": "simple"
2548
+ "type": "zeebe:input",
2549
+ "name": "graphql.authentication.token"
2591
2550
  },
2592
- "type": "String"
2593
- },
2594
- {
2595
- "id": "authentication.password",
2596
- "label": "Password",
2597
- "optional": false,
2598
2551
  "constraints": {
2599
2552
  "notEmpty": true
2600
2553
  },
2601
- "feel": "optional",
2602
- "group": "authentication",
2603
- "binding": {
2604
- "name": "authentication.password",
2605
- "type": "zeebe:input"
2606
- },
2607
2554
  "condition": {
2608
- "property": "authentication.type",
2609
- "equals": "basic",
2610
- "type": "simple"
2611
- },
2612
- "type": "String"
2555
+ "property": "authenticationType",
2556
+ "equals": "bearer"
2557
+ }
2613
2558
  },
2614
2559
  {
2615
- "id": "authentication.token",
2616
- "label": "Bearer token",
2617
- "optional": false,
2618
- "constraints": {
2619
- "notEmpty": true
2620
- },
2621
- "feel": "optional",
2560
+ "label": "OAuth token endpoint",
2561
+ "description": "The OAuth token endpoint",
2622
2562
  "group": "authentication",
2563
+ "type": "String",
2564
+ "feel": "optional",
2623
2565
  "binding": {
2624
- "name": "authentication.token",
2625
- "type": "zeebe:input"
2626
- },
2627
- "condition": {
2628
- "property": "authentication.type",
2629
- "equals": "bearer",
2630
- "type": "simple"
2566
+ "type": "zeebe:input",
2567
+ "name": "authentication.oauthTokenEndpoint"
2631
2568
  },
2632
- "type": "String"
2633
- },
2634
- {
2635
- "id": "authentication.oauthTokenEndpoint",
2636
- "label": "OAuth 2.0 token endpoint",
2637
- "description": "The OAuth token endpoint",
2638
- "optional": false,
2639
2569
  "constraints": {
2640
- "notEmpty": true,
2641
- "pattern": {
2642
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2643
- "message": "Must be a http(s) URL"
2644
- }
2645
- },
2646
- "feel": "optional",
2647
- "group": "authentication",
2648
- "binding": {
2649
- "name": "authentication.oauthTokenEndpoint",
2650
- "type": "zeebe:input"
2570
+ "notEmpty": true
2651
2571
  },
2652
2572
  "condition": {
2653
- "property": "authentication.type",
2654
- "equals": "oauth-client-credentials-flow",
2655
- "type": "simple"
2656
- },
2657
- "type": "String"
2573
+ "property": "authenticationType",
2574
+ "equals": "oauth-client-credentials-flow"
2575
+ }
2658
2576
  },
2659
2577
  {
2660
- "id": "authentication.clientId",
2661
2578
  "label": "Client ID",
2662
2579
  "description": "Your application's client ID from the OAuth client",
2663
- "optional": false,
2664
- "constraints": {
2665
- "notEmpty": true
2666
- },
2667
- "feel": "optional",
2668
2580
  "group": "authentication",
2581
+ "type": "String",
2582
+ "feel": "optional",
2669
2583
  "binding": {
2670
- "name": "authentication.clientId",
2671
- "type": "zeebe:input"
2584
+ "type": "zeebe:input",
2585
+ "name": "authentication.clientId"
2672
2586
  },
2673
- "condition": {
2674
- "property": "authentication.type",
2675
- "equals": "oauth-client-credentials-flow",
2676
- "type": "simple"
2587
+ "constraints": {
2588
+ "notEmpty": true
2677
2589
  },
2678
- "type": "String"
2590
+ "condition": {
2591
+ "property": "authenticationType",
2592
+ "equals": "oauth-client-credentials-flow"
2593
+ }
2679
2594
  },
2680
2595
  {
2681
- "id": "authentication.clientSecret",
2682
2596
  "label": "Client secret",
2683
2597
  "description": "Your application's client secret from the OAuth client",
2684
- "optional": false,
2598
+ "group": "authentication",
2599
+ "type": "String",
2600
+ "feel": "optional",
2601
+ "binding": {
2602
+ "type": "zeebe:input",
2603
+ "name": "authentication.clientSecret"
2604
+ },
2685
2605
  "constraints": {
2686
2606
  "notEmpty": true
2687
2607
  },
2688
- "feel": "optional",
2608
+ "condition": {
2609
+ "property": "authenticationType",
2610
+ "equals": "oauth-client-credentials-flow"
2611
+ }
2612
+ },
2613
+ {
2614
+ "label": "Scopes",
2615
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2689
2616
  "group": "authentication",
2617
+ "type": "String",
2618
+ "feel": "optional",
2619
+ "optional": true,
2690
2620
  "binding": {
2691
- "name": "authentication.clientSecret",
2692
- "type": "zeebe:input"
2621
+ "type": "zeebe:input",
2622
+ "name": "authentication.scopes"
2693
2623
  },
2694
2624
  "condition": {
2695
- "property": "authentication.type",
2696
- "equals": "oauth-client-credentials-flow",
2697
- "type": "simple"
2698
- },
2699
- "type": "String"
2625
+ "property": "authenticationType",
2626
+ "equals": "oauth-client-credentials-flow"
2627
+ }
2700
2628
  },
2701
2629
  {
2702
- "id": "authentication.audience",
2703
2630
  "label": "Audience",
2704
2631
  "description": "The unique identifier of the target API you want to access",
2705
- "optional": true,
2706
- "feel": "optional",
2707
2632
  "group": "authentication",
2633
+ "type": "String",
2634
+ "feel": "optional",
2635
+ "optional": true,
2708
2636
  "binding": {
2709
- "name": "authentication.audience",
2710
- "type": "zeebe:input"
2637
+ "type": "zeebe:input",
2638
+ "name": "authentication.audience"
2711
2639
  },
2712
2640
  "condition": {
2713
- "property": "authentication.type",
2714
- "equals": "oauth-client-credentials-flow",
2715
- "type": "simple"
2716
- },
2717
- "type": "String"
2641
+ "property": "authenticationType",
2642
+ "equals": "oauth-client-credentials-flow"
2643
+ }
2718
2644
  },
2719
2645
  {
2720
- "id": "authentication.clientAuthentication",
2721
2646
  "label": "Client authentication",
2722
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2723
- "optional": false,
2724
- "constraints": {
2725
- "notEmpty": true
2726
- },
2647
+ "id": "authentication.clientAuthentication",
2727
2648
  "group": "authentication",
2728
- "binding": {
2729
- "name": "authentication.clientAuthentication",
2730
- "type": "zeebe:input"
2731
- },
2732
- "condition": {
2733
- "property": "authentication.type",
2734
- "equals": "oauth-client-credentials-flow",
2735
- "type": "simple"
2736
- },
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",
2737
2651
  "type": "Dropdown",
2738
2652
  "choices": [
2739
2653
  {
@@ -2744,234 +2658,113 @@
2744
2658
  "name": "Send as Basic Auth header",
2745
2659
  "value": "basicAuthHeader"
2746
2660
  }
2747
- ]
2661
+ ],
2662
+ "binding": {
2663
+ "type": "zeebe:input",
2664
+ "name": "authentication.clientAuthentication"
2665
+ },
2666
+ "condition": {
2667
+ "property": "authenticationType",
2668
+ "equals": "oauth-client-credentials-flow"
2669
+ }
2748
2670
  },
2749
2671
  {
2750
- "id": "authentication.scopes",
2751
- "label": "Scopes",
2752
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2753
- "optional": true,
2754
- "feel": "optional",
2672
+ "label": "Username",
2755
2673
  "group": "authentication",
2674
+ "type": "String",
2675
+ "feel": "optional",
2756
2676
  "binding": {
2757
- "name": "authentication.scopes",
2758
- "type": "zeebe:input"
2677
+ "type": "zeebe:input",
2678
+ "name": "authentication.username"
2759
2679
  },
2760
- "condition": {
2761
- "property": "authentication.type",
2762
- "equals": "oauth-client-credentials-flow",
2763
- "type": "simple"
2680
+ "constraints": {
2681
+ "notEmpty": true
2764
2682
  },
2765
- "type": "String"
2683
+ "condition": {
2684
+ "property": "authenticationType",
2685
+ "equals": "basic"
2686
+ }
2766
2687
  },
2767
2688
  {
2768
- "id": "graphql.method",
2769
- "label": "Method",
2770
- "optional": false,
2771
- "value": "get",
2689
+ "label": "Password",
2690
+ "group": "authentication",
2691
+ "type": "String",
2692
+ "feel": "optional",
2693
+ "binding": {
2694
+ "type": "zeebe:input",
2695
+ "name": "authentication.password"
2696
+ },
2772
2697
  "constraints": {
2773
2698
  "notEmpty": true
2774
2699
  },
2775
- "group": "endpoint",
2776
- "binding": {
2777
- "name": "graphql.method",
2778
- "type": "zeebe:input"
2779
- },
2780
- "type": "Dropdown",
2781
- "choices": [
2782
- {
2783
- "name": "GET",
2784
- "value": "get"
2785
- },
2786
- {
2787
- "name": "POST",
2788
- "value": "post"
2789
- }
2790
- ]
2700
+ "condition": {
2701
+ "property": "authenticationType",
2702
+ "equals": "basic"
2703
+ }
2791
2704
  },
2792
2705
  {
2793
- "id": "graphql.url",
2794
- "label": "URL",
2795
- "optional": false,
2706
+ "label": "Connection timeout",
2707
+ "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2708
+ "group": "timeout",
2709
+ "type": "String",
2710
+ "value": "20",
2711
+ "binding": {
2712
+ "type": "zeebe:input",
2713
+ "name": "graphql.connectionTimeoutInSeconds"
2714
+ },
2715
+ "feel": "optional",
2716
+ "optional": true,
2796
2717
  "constraints": {
2797
- "notEmpty": true,
2718
+ "notEmpty": false,
2798
2719
  "pattern": {
2799
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2800
- "message": "Must be a http(s) URL"
2720
+ "value": "^(=|([0-9]+|secrets\\..+)$)",
2721
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2801
2722
  }
2802
- },
2803
- "feel": "optional",
2804
- "group": "endpoint",
2723
+ }
2724
+ },
2725
+ {
2726
+ "label": "Result variable",
2727
+ "description": "Name of variable to store the response in",
2728
+ "group": "output",
2729
+ "type": "String",
2805
2730
  "binding": {
2806
- "name": "graphql.url",
2807
- "type": "zeebe:input"
2808
- },
2809
- "type": "String"
2731
+ "type": "zeebe:taskHeader",
2732
+ "key": "resultVariable"
2733
+ }
2810
2734
  },
2811
2735
  {
2812
- "id": "graphql.headers",
2813
- "label": "Headers",
2814
- "description": "Map of HTTP headers to add to the request",
2815
- "optional": true,
2736
+ "label": "Result expression",
2737
+ "description": "Expression to map the response into process variables",
2738
+ "group": "output",
2739
+ "type": "Text",
2816
2740
  "feel": "required",
2817
- "group": "endpoint",
2818
2741
  "binding": {
2819
- "name": "graphql.headers",
2820
- "type": "zeebe:input"
2821
- },
2822
- "type": "String"
2742
+ "type": "zeebe:taskHeader",
2743
+ "key": "resultExpression"
2744
+ }
2823
2745
  },
2824
2746
  {
2825
- "id": "graphql.storeResponse",
2826
- "label": "Store response",
2827
- "description": "Store the response as a document in the document store",
2828
- "optional": false,
2829
- "value": false,
2830
- "feel": "static",
2831
- "group": "endpoint",
2832
- "binding": {
2833
- "name": "graphql.storeResponse",
2834
- "type": "zeebe:input"
2835
- },
2836
- "type": "Boolean"
2837
- },
2838
- {
2839
- "id": "graphql.query",
2840
- "label": "Query/Mutation",
2841
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2842
- "optional": false,
2843
- "constraints": {
2844
- "notEmpty": true
2845
- },
2846
- "feel": "optional",
2847
- "group": "graphql",
2848
- "binding": {
2849
- "name": "graphql.query",
2850
- "type": "zeebe:input"
2851
- },
2852
- "type": "Text"
2853
- },
2854
- {
2855
- "id": "graphql.variables",
2856
- "label": "Variables",
2857
- "optional": true,
2858
- "feel": "required",
2859
- "group": "graphql",
2860
- "binding": {
2861
- "name": "graphql.variables",
2862
- "type": "zeebe:input"
2863
- },
2864
- "type": "String"
2865
- },
2866
- {
2867
- "id": "graphql.connectionTimeoutInSeconds",
2868
- "label": "Connection timeout in seconds",
2869
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2870
- "optional": true,
2871
- "value": 20,
2872
- "feel": "static",
2873
- "group": "timeout",
2874
- "binding": {
2875
- "name": "graphql.connectionTimeoutInSeconds",
2876
- "type": "zeebe:input"
2877
- },
2878
- "type": "Number"
2879
- },
2880
- {
2881
- "id": "version",
2882
- "label": "Version",
2883
- "description": "Version of the element template",
2884
- "value": "8",
2885
- "group": "connector",
2886
- "binding": {
2887
- "key": "elementTemplateVersion",
2888
- "type": "zeebe:taskHeader"
2889
- },
2890
- "type": "Hidden"
2891
- },
2892
- {
2893
- "id": "id",
2894
- "label": "ID",
2895
- "description": "ID of the element template",
2896
- "value": "io.camunda.connectors.GraphQL.v1",
2897
- "group": "connector",
2898
- "binding": {
2899
- "key": "elementTemplateId",
2900
- "type": "zeebe:taskHeader"
2901
- },
2902
- "type": "Hidden"
2903
- },
2904
- {
2905
- "id": "resultVariable",
2906
- "label": "Result variable",
2907
- "description": "Name of variable to store the response in",
2908
- "group": "output",
2909
- "binding": {
2910
- "key": "resultVariable",
2911
- "type": "zeebe:taskHeader"
2912
- },
2913
- "type": "String"
2914
- },
2915
- {
2916
- "id": "resultExpression",
2917
- "label": "Result expression",
2918
- "description": "Expression to map the response into process variables",
2919
- "feel": "required",
2920
- "group": "output",
2921
- "binding": {
2922
- "key": "resultExpression",
2923
- "type": "zeebe:taskHeader"
2924
- },
2925
- "type": "Text"
2926
- },
2927
- {
2928
- "id": "errorExpression",
2929
2747
  "label": "Error expression",
2930
- "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",
2931
2751
  "feel": "required",
2932
- "group": "error",
2933
- "binding": {
2934
- "key": "errorExpression",
2935
- "type": "zeebe:taskHeader"
2936
- },
2937
- "type": "Text"
2938
- },
2939
- {
2940
- "id": "retryCount",
2941
- "label": "Retries",
2942
- "description": "Number of retries",
2943
- "value": "3",
2944
- "feel": "optional",
2945
- "group": "retries",
2946
- "binding": {
2947
- "property": "retries",
2948
- "type": "zeebe:taskDefinition"
2949
- },
2950
- "type": "String"
2951
- },
2952
- {
2953
- "id": "retryBackoff",
2954
- "label": "Retry backoff",
2955
- "description": "ISO-8601 duration to wait between retries",
2956
- "value": "PT0S",
2957
- "group": "retries",
2958
2752
  "binding": {
2959
- "key": "retryBackoff",
2960
- "type": "zeebe:taskHeader"
2961
- },
2962
- "type": "String"
2753
+ "type": "zeebe:taskHeader",
2754
+ "key": "errorExpression"
2755
+ }
2963
2756
  }
2964
2757
  ],
2965
- "icon": {
2966
- "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.2"
2967
2760
  }
2968
2761
  },
2969
2762
  {
2970
2763
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2971
- "name": "GraphQL Outbound Connector",
2764
+ "name": "GraphQL connector",
2972
2765
  "id": "io.camunda.connectors.GraphQL.v1",
2973
2766
  "description": "Execute GraphQL query",
2974
- "version": 3,
2767
+ "version": 2,
2975
2768
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
2976
2769
  "icon": {
2977
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"
@@ -3061,7 +2854,7 @@
3061
2854
  "constraints": {
3062
2855
  "notEmpty": true,
3063
2856
  "pattern": {
3064
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
2857
+ "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
3065
2858
  "message": "Must be a http(s) URL."
3066
2859
  }
3067
2860
  }
@@ -3304,7 +3097,7 @@
3304
3097
  "constraints": {
3305
3098
  "notEmpty": false,
3306
3099
  "pattern": {
3307
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
3100
+ "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
3308
3101
  "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
3309
3102
  }
3310
3103
  }
@@ -3348,14 +3141,23 @@
3348
3141
  },
3349
3142
  {
3350
3143
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3351
- "name": "GraphQL connector",
3144
+ "name": "GraphQL Outbound Connector",
3352
3145
  "id": "io.camunda.connectors.GraphQL.v1",
3353
3146
  "description": "Execute GraphQL query",
3354
- "version": 1,
3355
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
3356
- "icon": {
3357
- "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"
3358
- },
3147
+ "keywords": [
3148
+ "API",
3149
+ "query",
3150
+ "mutation",
3151
+ "HTTP",
3152
+ "web request",
3153
+ "GraphQL",
3154
+ "fetch data",
3155
+ "data query",
3156
+ "execute query",
3157
+ "API call"
3158
+ ],
3159
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
3160
+ "version": 9,
3359
3161
  "category": {
3360
3162
  "id": "connectors",
3361
3163
  "name": "Connectors"
@@ -3364,6 +3166,9 @@
3364
3166
  "elementType": {
3365
3167
  "value": "bpmn:ServiceTask"
3366
3168
  },
3169
+ "engines": {
3170
+ "camunda": "^8.9"
3171
+ },
3367
3172
  "groups": [
3368
3173
  {
3369
3174
  "id": "authentication",
@@ -3371,7 +3176,7 @@
3371
3176
  },
3372
3177
  {
3373
3178
  "id": "endpoint",
3374
- "label": "HTTP endpoint"
3179
+ "label": "HTTP Endpoint"
3375
3180
  },
3376
3181
  {
3377
3182
  "id": "graphql",
@@ -3379,37 +3184,49 @@
3379
3184
  },
3380
3185
  {
3381
3186
  "id": "timeout",
3382
- "label": "Connect timeout"
3187
+ "label": "Connection timeout"
3188
+ },
3189
+ {
3190
+ "id": "connector",
3191
+ "label": "Connector"
3383
3192
  },
3384
3193
  {
3385
3194
  "id": "output",
3386
- "label": "Response mapping"
3195
+ "label": "Output mapping"
3387
3196
  },
3388
3197
  {
3389
- "id": "errors",
3198
+ "id": "error",
3390
3199
  "label": "Error handling"
3200
+ },
3201
+ {
3202
+ "id": "retries",
3203
+ "label": "Retries"
3391
3204
  }
3392
3205
  ],
3393
3206
  "properties": [
3394
3207
  {
3395
- "type": "Hidden",
3396
3208
  "value": "io.camunda:connector-graphql:1",
3397
3209
  "binding": {
3398
- "type": "zeebe:taskDefinition",
3399
- "property": "type"
3400
- }
3210
+ "property": "type",
3211
+ "type": "zeebe:taskDefinition"
3212
+ },
3213
+ "type": "Hidden"
3401
3214
  },
3402
3215
  {
3216
+ "id": "authentication.type",
3403
3217
  "label": "Type",
3404
- "id": "authenticationType",
3405
- "group": "authentication",
3406
3218
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
3407
3219
  "value": "noAuth",
3220
+ "group": "authentication",
3221
+ "binding": {
3222
+ "name": "authentication.type",
3223
+ "type": "zeebe:input"
3224
+ },
3408
3225
  "type": "Dropdown",
3409
3226
  "choices": [
3410
3227
  {
3411
- "name": "None",
3412
- "value": "noAuth"
3228
+ "name": "API key",
3229
+ "value": "apiKey"
3413
3230
  },
3414
3231
  {
3415
3232
  "name": "Basic",
@@ -3419,311 +3236,494 @@
3419
3236
  "name": "Bearer token",
3420
3237
  "value": "bearer"
3421
3238
  },
3239
+ {
3240
+ "name": "None",
3241
+ "value": "noAuth"
3242
+ },
3422
3243
  {
3423
3244
  "name": "OAuth 2.0",
3424
3245
  "value": "oauth-client-credentials-flow"
3425
3246
  }
3426
- ],
3427
- "binding": {
3428
- "type": "zeebe:input",
3429
- "name": "authentication.type"
3430
- }
3247
+ ]
3431
3248
  },
3432
3249
  {
3433
- "label": "URL",
3434
- "group": "endpoint",
3435
- "type": "String",
3436
- "feel": "optional",
3250
+ "id": "authentication.apiKeyLocation",
3251
+ "label": "Api key location",
3252
+ "description": "Choose type: Send API key in header or as query parameter.",
3253
+ "optional": false,
3254
+ "value": "headers",
3255
+ "constraints": {
3256
+ "notEmpty": true
3257
+ },
3258
+ "group": "authentication",
3437
3259
  "binding": {
3438
- "type": "zeebe:input",
3439
- "name": "graphql.url"
3260
+ "name": "authentication.apiKeyLocation",
3261
+ "type": "zeebe:input"
3440
3262
  },
3441
- "constraints": {
3442
- "notEmpty": true,
3443
- "pattern": {
3444
- "value": "^(=|(http://|https://|secrets).*$)",
3445
- "message": "Must be a http(s) URL."
3446
- }
3447
- }
3448
- },
3449
- {
3450
- "id": "method",
3451
- "label": "Method",
3452
- "group": "endpoint",
3453
- "type": "Dropdown",
3454
- "value": "post",
3455
- "choices": [
3456
- {
3457
- "name": "POST",
3458
- "value": "post"
3263
+ "condition": {
3264
+ "property": "authentication.type",
3265
+ "equals": "apiKey",
3266
+ "type": "simple"
3267
+ },
3268
+ "type": "Dropdown",
3269
+ "choices": [
3270
+ {
3271
+ "name": "Headers",
3272
+ "value": "headers"
3459
3273
  },
3460
3274
  {
3461
- "name": "GET",
3462
- "value": "get"
3275
+ "name": "Query parameters",
3276
+ "value": "query"
3463
3277
  }
3464
- ],
3465
- "binding": {
3466
- "type": "zeebe:input",
3467
- "name": "graphql.method"
3468
- }
3278
+ ]
3469
3279
  },
3470
3280
  {
3471
- "id": "headers",
3472
- "label": "Headers",
3473
- "group": "endpoint",
3474
- "type": "Text",
3475
- "feel": "required",
3476
- "optional": true,
3281
+ "id": "authentication.name",
3282
+ "label": "API key name",
3283
+ "optional": false,
3284
+ "constraints": {
3285
+ "notEmpty": true
3286
+ },
3287
+ "feel": "optional",
3288
+ "group": "authentication",
3477
3289
  "binding": {
3478
- "type": "zeebe:input",
3479
- "name": "graphql.headers"
3480
- }
3290
+ "name": "authentication.name",
3291
+ "type": "zeebe:input"
3292
+ },
3293
+ "condition": {
3294
+ "property": "authentication.type",
3295
+ "equals": "apiKey",
3296
+ "type": "simple"
3297
+ },
3298
+ "type": "String"
3481
3299
  },
3482
3300
  {
3483
- "label": "Query/Mutation",
3484
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
3485
- "group": "graphql",
3486
- "type": "Text",
3487
- "language": "graphql",
3301
+ "id": "authentication.value",
3302
+ "label": "API key value",
3303
+ "optional": false,
3304
+ "constraints": {
3305
+ "notEmpty": true
3306
+ },
3307
+ "feel": "optional",
3308
+ "group": "authentication",
3488
3309
  "binding": {
3489
- "type": "zeebe:input",
3490
- "name": "graphql.query"
3310
+ "name": "authentication.value",
3311
+ "type": "zeebe:input"
3312
+ },
3313
+ "condition": {
3314
+ "property": "authentication.type",
3315
+ "equals": "apiKey",
3316
+ "type": "simple"
3491
3317
  },
3318
+ "type": "String"
3319
+ },
3320
+ {
3321
+ "id": "authentication.username",
3322
+ "label": "Username",
3492
3323
  "optional": false,
3493
3324
  "constraints": {
3494
3325
  "notEmpty": true
3495
- }
3326
+ },
3327
+ "feel": "optional",
3328
+ "group": "authentication",
3329
+ "binding": {
3330
+ "name": "authentication.username",
3331
+ "type": "zeebe:input"
3332
+ },
3333
+ "condition": {
3334
+ "property": "authentication.type",
3335
+ "equals": "basic",
3336
+ "type": "simple"
3337
+ },
3338
+ "type": "String"
3496
3339
  },
3497
3340
  {
3498
- "label": "Variables",
3499
- "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>",
3500
- "group": "graphql",
3501
- "type": "Text",
3502
- "feel": "required",
3341
+ "id": "authentication.password",
3342
+ "label": "Password",
3343
+ "optional": false,
3344
+ "constraints": {
3345
+ "notEmpty": true
3346
+ },
3347
+ "feel": "optional",
3348
+ "group": "authentication",
3503
3349
  "binding": {
3504
- "type": "zeebe:input",
3505
- "name": "graphql.variables"
3350
+ "name": "authentication.password",
3351
+ "type": "zeebe:input"
3506
3352
  },
3507
- "optional": true
3353
+ "condition": {
3354
+ "property": "authentication.type",
3355
+ "equals": "basic",
3356
+ "type": "simple"
3357
+ },
3358
+ "type": "String"
3508
3359
  },
3509
3360
  {
3361
+ "id": "authentication.token",
3510
3362
  "label": "Bearer token",
3363
+ "optional": false,
3364
+ "constraints": {
3365
+ "notEmpty": true
3366
+ },
3367
+ "feel": "optional",
3511
3368
  "group": "authentication",
3512
- "type": "String",
3369
+ "binding": {
3370
+ "name": "authentication.token",
3371
+ "type": "zeebe:input"
3372
+ },
3373
+ "condition": {
3374
+ "property": "authentication.type",
3375
+ "equals": "bearer",
3376
+ "type": "simple"
3377
+ },
3378
+ "type": "String"
3379
+ },
3380
+ {
3381
+ "id": "authentication.oauthTokenEndpoint",
3382
+ "label": "OAuth 2.0 token endpoint",
3383
+ "description": "The OAuth token endpoint",
3384
+ "optional": false,
3385
+ "constraints": {
3386
+ "notEmpty": true,
3387
+ "pattern": {
3388
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
3389
+ "message": "Must be a http(s) URL"
3390
+ }
3391
+ },
3513
3392
  "feel": "optional",
3393
+ "group": "authentication",
3514
3394
  "binding": {
3515
- "type": "zeebe:input",
3516
- "name": "graphql.authentication.token"
3395
+ "name": "authentication.oauthTokenEndpoint",
3396
+ "type": "zeebe:input"
3397
+ },
3398
+ "condition": {
3399
+ "property": "authentication.type",
3400
+ "equals": "oauth-client-credentials-flow",
3401
+ "type": "simple"
3517
3402
  },
3403
+ "type": "String"
3404
+ },
3405
+ {
3406
+ "id": "authentication.clientId",
3407
+ "label": "Client ID",
3408
+ "description": "Your application's client ID from the OAuth client",
3409
+ "optional": false,
3518
3410
  "constraints": {
3519
3411
  "notEmpty": true
3520
3412
  },
3413
+ "feel": "optional",
3414
+ "group": "authentication",
3415
+ "binding": {
3416
+ "name": "authentication.clientId",
3417
+ "type": "zeebe:input"
3418
+ },
3521
3419
  "condition": {
3522
- "property": "authenticationType",
3523
- "equals": "bearer"
3524
- }
3420
+ "property": "authentication.type",
3421
+ "equals": "oauth-client-credentials-flow",
3422
+ "type": "simple"
3423
+ },
3424
+ "type": "String"
3525
3425
  },
3526
3426
  {
3527
- "label": "OAuth token endpoint",
3528
- "description": "The OAuth token endpoint",
3427
+ "id": "authentication.clientSecret",
3428
+ "label": "Client secret",
3429
+ "description": "Your application's client secret from the OAuth client",
3430
+ "optional": false,
3431
+ "constraints": {
3432
+ "notEmpty": true
3433
+ },
3434
+ "feel": "optional",
3529
3435
  "group": "authentication",
3530
- "type": "String",
3436
+ "binding": {
3437
+ "name": "authentication.clientSecret",
3438
+ "type": "zeebe:input"
3439
+ },
3440
+ "condition": {
3441
+ "property": "authentication.type",
3442
+ "equals": "oauth-client-credentials-flow",
3443
+ "type": "simple"
3444
+ },
3445
+ "type": "String"
3446
+ },
3447
+ {
3448
+ "id": "authentication.audience",
3449
+ "label": "Audience",
3450
+ "description": "The unique identifier of the target API you want to access",
3451
+ "optional": true,
3531
3452
  "feel": "optional",
3453
+ "group": "authentication",
3532
3454
  "binding": {
3533
- "type": "zeebe:input",
3534
- "name": "authentication.oauthTokenEndpoint"
3455
+ "name": "authentication.audience",
3456
+ "type": "zeebe:input"
3457
+ },
3458
+ "condition": {
3459
+ "property": "authentication.type",
3460
+ "equals": "oauth-client-credentials-flow",
3461
+ "type": "simple"
3462
+ },
3463
+ "type": "String"
3464
+ },
3465
+ {
3466
+ "id": "authentication.clientAuthentication",
3467
+ "label": "Client authentication",
3468
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
3469
+ "optional": false,
3470
+ "constraints": {
3471
+ "notEmpty": true
3472
+ },
3473
+ "group": "authentication",
3474
+ "binding": {
3475
+ "name": "authentication.clientAuthentication",
3476
+ "type": "zeebe:input"
3477
+ },
3478
+ "condition": {
3479
+ "property": "authentication.type",
3480
+ "equals": "oauth-client-credentials-flow",
3481
+ "type": "simple"
3482
+ },
3483
+ "type": "Dropdown",
3484
+ "choices": [
3485
+ {
3486
+ "name": "Send client credentials in body",
3487
+ "value": "credentialsBody"
3488
+ },
3489
+ {
3490
+ "name": "Send as Basic Auth header",
3491
+ "value": "basicAuthHeader"
3492
+ }
3493
+ ]
3494
+ },
3495
+ {
3496
+ "id": "authentication.scopes",
3497
+ "label": "Scopes",
3498
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
3499
+ "optional": true,
3500
+ "feel": "optional",
3501
+ "group": "authentication",
3502
+ "binding": {
3503
+ "name": "authentication.scopes",
3504
+ "type": "zeebe:input"
3535
3505
  },
3506
+ "condition": {
3507
+ "property": "authentication.type",
3508
+ "equals": "oauth-client-credentials-flow",
3509
+ "type": "simple"
3510
+ },
3511
+ "type": "String"
3512
+ },
3513
+ {
3514
+ "id": "graphql.method",
3515
+ "label": "Method",
3516
+ "optional": false,
3517
+ "value": "get",
3536
3518
  "constraints": {
3537
3519
  "notEmpty": true
3538
3520
  },
3539
- "condition": {
3540
- "property": "authenticationType",
3541
- "equals": "oauth-client-credentials-flow"
3542
- }
3521
+ "group": "endpoint",
3522
+ "binding": {
3523
+ "name": "graphql.method",
3524
+ "type": "zeebe:input"
3525
+ },
3526
+ "type": "Dropdown",
3527
+ "choices": [
3528
+ {
3529
+ "name": "GET",
3530
+ "value": "get"
3531
+ },
3532
+ {
3533
+ "name": "POST",
3534
+ "value": "post"
3535
+ }
3536
+ ]
3537
+ },
3538
+ {
3539
+ "id": "graphql.url",
3540
+ "label": "URL",
3541
+ "optional": false,
3542
+ "constraints": {
3543
+ "notEmpty": true,
3544
+ "pattern": {
3545
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
3546
+ "message": "Must be a http(s) URL"
3547
+ }
3548
+ },
3549
+ "feel": "optional",
3550
+ "group": "endpoint",
3551
+ "binding": {
3552
+ "name": "graphql.url",
3553
+ "type": "zeebe:input"
3554
+ },
3555
+ "type": "String"
3543
3556
  },
3544
3557
  {
3545
- "label": "Client ID",
3546
- "description": "Your application's client ID from the OAuth client",
3547
- "group": "authentication",
3548
- "type": "String",
3549
- "feel": "optional",
3558
+ "id": "graphql.headers",
3559
+ "label": "Headers",
3560
+ "description": "Map of HTTP headers to add to the request",
3561
+ "optional": true,
3562
+ "feel": "required",
3563
+ "group": "endpoint",
3550
3564
  "binding": {
3551
- "type": "zeebe:input",
3552
- "name": "authentication.clientId"
3553
- },
3554
- "constraints": {
3555
- "notEmpty": true
3565
+ "name": "graphql.headers",
3566
+ "type": "zeebe:input"
3556
3567
  },
3557
- "condition": {
3558
- "property": "authenticationType",
3559
- "equals": "oauth-client-credentials-flow"
3560
- }
3568
+ "type": "String"
3561
3569
  },
3562
3570
  {
3563
- "label": "Client secret",
3564
- "description": "Your application's client secret from the OAuth client",
3565
- "group": "authentication",
3566
- "type": "String",
3567
- "feel": "optional",
3571
+ "id": "graphql.storeResponse",
3572
+ "label": "Store response",
3573
+ "description": "Store the response as a document in the document store",
3574
+ "optional": false,
3575
+ "value": false,
3576
+ "feel": "static",
3577
+ "group": "endpoint",
3568
3578
  "binding": {
3569
- "type": "zeebe:input",
3570
- "name": "authentication.clientSecret"
3579
+ "name": "graphql.storeResponse",
3580
+ "type": "zeebe:input"
3571
3581
  },
3582
+ "type": "Boolean"
3583
+ },
3584
+ {
3585
+ "id": "graphql.query",
3586
+ "label": "Query/Mutation",
3587
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
3588
+ "optional": false,
3572
3589
  "constraints": {
3573
3590
  "notEmpty": true
3574
3591
  },
3575
- "condition": {
3576
- "property": "authenticationType",
3577
- "equals": "oauth-client-credentials-flow"
3578
- }
3579
- },
3580
- {
3581
- "label": "Scopes",
3582
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
3583
- "group": "authentication",
3584
- "type": "String",
3585
3592
  "feel": "optional",
3586
- "optional": true,
3593
+ "group": "graphql",
3587
3594
  "binding": {
3588
- "type": "zeebe:input",
3589
- "name": "authentication.scopes"
3595
+ "name": "graphql.query",
3596
+ "type": "zeebe:input"
3590
3597
  },
3591
- "condition": {
3592
- "property": "authenticationType",
3593
- "equals": "oauth-client-credentials-flow"
3594
- }
3598
+ "type": "Text"
3595
3599
  },
3596
3600
  {
3597
- "label": "Audience",
3598
- "description": "The unique identifier of the target API you want to access",
3599
- "group": "authentication",
3600
- "type": "String",
3601
- "feel": "optional",
3601
+ "id": "graphql.variables",
3602
+ "label": "Variables",
3602
3603
  "optional": true,
3604
+ "feel": "required",
3605
+ "group": "graphql",
3603
3606
  "binding": {
3604
- "type": "zeebe:input",
3605
- "name": "authentication.audience"
3607
+ "name": "graphql.variables",
3608
+ "type": "zeebe:input"
3606
3609
  },
3607
- "condition": {
3608
- "property": "authenticationType",
3609
- "equals": "oauth-client-credentials-flow"
3610
- }
3610
+ "type": "String"
3611
3611
  },
3612
3612
  {
3613
- "label": "Client authentication",
3614
- "id": "authentication.clientAuthentication",
3615
- "group": "authentication",
3616
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
3617
- "value": "basicAuthHeader",
3618
- "type": "Dropdown",
3619
- "choices": [
3620
- {
3621
- "name": "Send client credentials in body",
3622
- "value": "credentialsBody"
3623
- },
3624
- {
3625
- "name": "Send as Basic Auth header",
3626
- "value": "basicAuthHeader"
3627
- }
3628
- ],
3613
+ "id": "graphql.connectionTimeoutInSeconds",
3614
+ "label": "Connection timeout in seconds",
3615
+ "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
3616
+ "optional": true,
3617
+ "value": 20,
3618
+ "feel": "static",
3619
+ "group": "timeout",
3629
3620
  "binding": {
3630
- "type": "zeebe:input",
3631
- "name": "authentication.clientAuthentication"
3621
+ "name": "graphql.connectionTimeoutInSeconds",
3622
+ "type": "zeebe:input"
3632
3623
  },
3633
- "condition": {
3634
- "property": "authenticationType",
3635
- "equals": "oauth-client-credentials-flow"
3636
- }
3624
+ "type": "Number"
3637
3625
  },
3638
3626
  {
3639
- "label": "Username",
3640
- "group": "authentication",
3641
- "type": "String",
3642
- "feel": "optional",
3627
+ "id": "graphql.readTimeoutInSeconds",
3628
+ "label": "Read timeout in seconds",
3629
+ "description": "Timeout in seconds to read data from an established connection or 0 for an infinite timeout",
3630
+ "optional": true,
3631
+ "value": 20,
3632
+ "feel": "static",
3633
+ "group": "timeout",
3643
3634
  "binding": {
3644
- "type": "zeebe:input",
3645
- "name": "authentication.username"
3646
- },
3647
- "constraints": {
3648
- "notEmpty": true
3635
+ "name": "graphql.readTimeoutInSeconds",
3636
+ "type": "zeebe:input"
3649
3637
  },
3650
- "condition": {
3651
- "property": "authenticationType",
3652
- "equals": "basic"
3653
- }
3638
+ "type": "Number"
3654
3639
  },
3655
3640
  {
3656
- "label": "Password",
3657
- "group": "authentication",
3658
- "type": "String",
3659
- "feel": "optional",
3641
+ "id": "version",
3642
+ "label": "Version",
3643
+ "description": "Version of the element template",
3644
+ "value": "9",
3645
+ "group": "connector",
3660
3646
  "binding": {
3661
- "type": "zeebe:input",
3662
- "name": "authentication.password"
3663
- },
3664
- "constraints": {
3665
- "notEmpty": true
3647
+ "key": "elementTemplateVersion",
3648
+ "type": "zeebe:taskHeader"
3666
3649
  },
3667
- "condition": {
3668
- "property": "authenticationType",
3669
- "equals": "basic"
3670
- }
3650
+ "type": "Hidden"
3671
3651
  },
3672
3652
  {
3673
- "label": "Connection timeout",
3674
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
3675
- "group": "timeout",
3676
- "type": "String",
3677
- "value": "20",
3653
+ "id": "id",
3654
+ "label": "ID",
3655
+ "description": "ID of the element template",
3656
+ "value": "io.camunda.connectors.GraphQL.v1",
3657
+ "group": "connector",
3678
3658
  "binding": {
3679
- "type": "zeebe:input",
3680
- "name": "graphql.connectionTimeoutInSeconds"
3659
+ "key": "elementTemplateId",
3660
+ "type": "zeebe:taskHeader"
3681
3661
  },
3682
- "feel": "optional",
3683
- "optional": true,
3684
- "constraints": {
3685
- "notEmpty": false,
3686
- "pattern": {
3687
- "value": "^(=|([0-9]+|secrets\\..+)$)",
3688
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
3689
- }
3690
- }
3662
+ "type": "Hidden"
3691
3663
  },
3692
3664
  {
3665
+ "id": "resultVariable",
3693
3666
  "label": "Result variable",
3694
- "description": "Name of variable to store the response in",
3667
+ "description": "Name of variable to store the response in. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-variable\" target=\"_blank\">documentation</a>.",
3695
3668
  "group": "output",
3696
- "type": "String",
3697
3669
  "binding": {
3698
- "type": "zeebe:taskHeader",
3699
- "key": "resultVariable"
3700
- }
3670
+ "key": "resultVariable",
3671
+ "type": "zeebe:taskHeader"
3672
+ },
3673
+ "type": "String"
3701
3674
  },
3702
3675
  {
3676
+ "id": "resultExpression",
3703
3677
  "label": "Result expression",
3704
- "description": "Expression to map the response into process variables",
3705
- "group": "output",
3706
- "type": "Text",
3678
+ "description": "Expression to map the response into process variables. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#result-expression\" target=\"_blank\">documentation</a>.",
3707
3679
  "feel": "required",
3680
+ "group": "output",
3708
3681
  "binding": {
3709
- "type": "zeebe:taskHeader",
3710
- "key": "resultExpression"
3711
- }
3682
+ "key": "resultExpression",
3683
+ "type": "zeebe:taskHeader"
3684
+ },
3685
+ "type": "Text"
3712
3686
  },
3713
3687
  {
3688
+ "id": "errorExpression",
3714
3689
  "label": "Error expression",
3715
- "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>",
3716
- "group": "errors",
3717
- "type": "Text",
3690
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
3718
3691
  "feel": "required",
3692
+ "group": "error",
3719
3693
  "binding": {
3720
- "type": "zeebe:taskHeader",
3721
- "key": "errorExpression"
3722
- }
3694
+ "key": "errorExpression",
3695
+ "type": "zeebe:taskHeader"
3696
+ },
3697
+ "type": "Text"
3698
+ },
3699
+ {
3700
+ "id": "retryCount",
3701
+ "label": "Retries",
3702
+ "description": "Number of retries",
3703
+ "value": "3",
3704
+ "feel": "optional",
3705
+ "group": "retries",
3706
+ "binding": {
3707
+ "property": "retries",
3708
+ "type": "zeebe:taskDefinition"
3709
+ },
3710
+ "type": "String"
3711
+ },
3712
+ {
3713
+ "id": "retryBackoff",
3714
+ "label": "Retry backoff",
3715
+ "description": "ISO-8601 duration to wait between retries",
3716
+ "value": "PT0S",
3717
+ "group": "retries",
3718
+ "binding": {
3719
+ "key": "retryBackoff",
3720
+ "type": "zeebe:taskHeader"
3721
+ },
3722
+ "type": "String"
3723
3723
  }
3724
3724
  ],
3725
- "engines": {
3726
- "camunda": "^8.2"
3725
+ "icon": {
3726
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
3727
3727
  }
3728
3728
  }
3729
3729
  ]