@camunda/connectors-element-templates 1.0.17 → 1.0.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/package.json +2 -2
  2. package/src/connectors.js +12 -2
  3. package/src/element-templates/agenticai-a2a-client-outbound-connector.json +4 -7
  4. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-intermediate.json +8 -8
  5. package/src/element-templates/agenticai-a2a-client-polling-inbound-connector-receive.json +8 -8
  6. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-intermediate.json +8 -8
  7. package/src/element-templates/agenticai-a2a-client-webhook-inbound-connector-receive.json +8 -8
  8. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +9 -12
  9. package/src/element-templates/agenticai-aiagent-job-worker.json +3770 -29
  10. package/src/element-templates/agenticai-aiagent-outbound-connector.json +6274 -2594
  11. package/src/element-templates/agenticai-mcp-client-outbound-connector.json +549 -552
  12. package/src/element-templates/agenticai-mcp-message-start-event.json +122 -0
  13. package/src/element-templates/agenticai-mcp-remote-client-outbound-connector.json +736 -739
  14. package/src/element-templates/asana-connector.json +759 -48
  15. package/src/element-templates/automation-anywhere-outbound-connector.json +1763 -1759
  16. package/src/element-templates/aws-bedrock-agentcore-long-term-memory-outbound-connector.json +431 -0
  17. package/src/element-templates/aws-bedrock-agentcore-runtime-outbound-connector.json +285 -0
  18. package/src/element-templates/aws-bedrock-codeinterpreter-outbound-connector.json +341 -0
  19. package/src/element-templates/aws-bedrock-knowledgebase-outbound-connector.json +316 -0
  20. package/src/element-templates/aws-bedrock-outbound-connector.json +747 -10
  21. package/src/element-templates/aws-comprehend-outbound-connector.json +10 -5
  22. package/src/element-templates/aws-dynamodb-outbound-connector.json +1358 -1358
  23. package/src/element-templates/aws-eventbridge-connector-boundary.json +383 -18
  24. package/src/element-templates/aws-eventbridge-connector-intermediate.json +377 -12
  25. package/src/element-templates/aws-eventbridge-connector-message-start.json +407 -8
  26. package/src/element-templates/aws-eventbridge-connector-receive.json +364 -0
  27. package/src/element-templates/aws-eventbridge-connector-start-event.json +317 -0
  28. package/src/element-templates/aws-eventbridge-outbound-connector.json +300 -295
  29. package/src/element-templates/aws-lambda-outbound-connector.json +238 -234
  30. package/src/element-templates/aws-s3-outbound-connector.json +646 -5
  31. package/src/element-templates/aws-sagemaker-outbound-connector.json +13 -9
  32. package/src/element-templates/aws-sns-inbound-boundary.json +44 -37
  33. package/src/element-templates/aws-sns-inbound-intermediate.json +210 -203
  34. package/src/element-templates/aws-sns-inbound-message-start.json +125 -118
  35. package/src/element-templates/aws-sns-inbound-receive.json +13 -6
  36. package/src/element-templates/aws-sns-inbound-start-event.json +134 -127
  37. package/src/element-templates/aws-sns-outbound-connector.json +581 -577
  38. package/src/element-templates/aws-sqs-boundary-connector.json +453 -449
  39. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +530 -526
  40. package/src/element-templates/aws-sqs-outbound-connector.json +711 -709
  41. package/src/element-templates/aws-sqs-receive-connector.json +15 -11
  42. package/src/element-templates/aws-sqs-start-event-connector.json +213 -205
  43. package/src/element-templates/aws-sqs-start-message.json +461 -457
  44. package/src/element-templates/aws-textract-outbound-connector.json +109 -105
  45. package/src/element-templates/azure-blobstorage-outbound-connector.json +676 -19
  46. package/src/element-templates/azure-open-ai-connector.json +1329 -4
  47. package/src/element-templates/blue-prism-connector.json +569 -24
  48. package/src/element-templates/box-outbound-connector.json +924 -12
  49. package/src/element-templates/csv-outbound-connector.json +13 -5
  50. package/src/element-templates/easy-post-connector.json +1077 -109
  51. package/src/element-templates/email-inbound-connector-boundary.json +32 -24
  52. package/src/element-templates/email-inbound-connector-intermediate.json +32 -24
  53. package/src/element-templates/email-inbound-connector-receive.json +564 -0
  54. package/src/element-templates/email-message-start-event-connector.json +58 -50
  55. package/src/element-templates/email-outbound-connector.json +2116 -243
  56. package/src/element-templates/embeddings-vector-database-outbound-connector.json +3 -6
  57. package/src/element-templates/github-connector.json +15257 -11722
  58. package/src/element-templates/github-webhook-connector-boundary.json +27 -29
  59. package/src/element-templates/github-webhook-connector-intermediate.json +36 -38
  60. package/src/element-templates/github-webhook-connector-message-start.json +11 -13
  61. package/src/element-templates/github-webhook-connector-receive.json +13 -15
  62. package/src/element-templates/github-webhook-connector-start-event.json +54 -56
  63. package/src/element-templates/gitlab-connector.json +4177 -2545
  64. package/src/element-templates/google-cloud-storage-outbound-connector.json +562 -13
  65. package/src/element-templates/google-drive-outbound-connector.json +1386 -766
  66. package/src/element-templates/google-gemini-outbound-connector.json +13 -5
  67. package/src/element-templates/google-maps-platform-connector.json +1059 -30
  68. package/src/element-templates/google-sheets-outbound-connector.json +2449 -1455
  69. package/src/element-templates/graphql-outbound-connector.json +1744 -1735
  70. package/src/element-templates/http-json-connector.json +2982 -2332
  71. package/src/element-templates/http-polling-boundary-catch-event-connector.json +752 -741
  72. package/src/element-templates/http-polling-connector.json +1512 -1501
  73. package/src/element-templates/hubspot-outbound-connector.json +2371 -25
  74. package/src/element-templates/hugging-face-connector.json +234 -3
  75. package/src/element-templates/jdbc-outbound-connector.json +20 -6
  76. package/src/element-templates/kafka-inbound-connector-boundary.json +613 -604
  77. package/src/element-templates/kafka-inbound-connector-intermediate.json +528 -519
  78. package/src/element-templates/kafka-inbound-connector-receive.json +15 -6
  79. package/src/element-templates/kafka-inbound-connector-start-message.json +530 -521
  80. package/src/element-templates/kafka-inbound-connector.json +240 -240
  81. package/src/element-templates/kafka-outbound-connector.json +518 -512
  82. package/src/element-templates/microsoft-o365-email-boundary-event-connector.json +18 -6
  83. package/src/element-templates/microsoft-o365-email-intermediate-catch-event-connector.json +18 -6
  84. package/src/element-templates/microsoft-o365-email-message-start-event-connector.json +18 -6
  85. package/src/element-templates/microsoft-office365-mail-connector.json +893 -10
  86. package/src/element-templates/microsoft-teams-outbound-connector.json +5971 -3807
  87. package/src/element-templates/openai-connector.json +550 -87
  88. package/src/element-templates/operate-connector.json +1198 -46
  89. package/src/element-templates/power-automate-connector.json +601 -9
  90. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +444 -435
  91. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +484 -475
  92. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +367 -358
  93. package/src/element-templates/rabbitmq-inbound-connector-receive.json +15 -6
  94. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +479 -470
  95. package/src/element-templates/rabbitmq-outbound-connector.json +356 -350
  96. package/src/element-templates/rpa-connector.json +346 -0
  97. package/src/element-templates/salesforce-connector.json +544 -0
  98. package/src/element-templates/send-message-connector-intermediate-throw-event.json +10 -5
  99. package/src/element-templates/send-message-connector-message-end-event.json +10 -5
  100. package/src/element-templates/send-message-connector-send-task.json +10 -5
  101. package/src/element-templates/sendgrid-outbound-connector.json +945 -337
  102. package/src/element-templates/servicenow-connector.json +971 -3
  103. package/src/element-templates/servicenow-flow-starter-connector.json +8 -3
  104. package/src/element-templates/servicenow-incident-connector.json +980 -3
  105. package/src/element-templates/slack-inbound-boundary.json +490 -192
  106. package/src/element-templates/slack-inbound-intermediate.json +421 -123
  107. package/src/element-templates/slack-inbound-message-start.json +469 -139
  108. package/src/element-templates/slack-inbound-receive.json +297 -0
  109. package/src/element-templates/slack-inbound-start-event.json +216 -211
  110. package/src/element-templates/slack-outbound-connector.json +2451 -753
  111. package/src/element-templates/soap-outbound-connector.json +812 -2
  112. package/src/element-templates/twilio-connector.json +1573 -93
  113. package/src/element-templates/twilio-webhook-boundary-connector.json +19 -10
  114. package/src/element-templates/twilio-webhook-connector.json +243 -13
  115. package/src/element-templates/twilio-webhook-intermediate-connector.json +34 -25
  116. package/src/element-templates/twilio-webhook-message-start-connector.json +312 -0
  117. package/src/element-templates/twilio-webhook-receive-connector.json +11 -2
  118. package/src/element-templates/uipath-connector.json +594 -2
  119. package/src/element-templates/webhook-connector-boundary.json +580 -570
  120. package/src/element-templates/webhook-connector-intermediate.json +1390 -1380
  121. package/src/element-templates/webhook-connector-receive.json +16 -6
  122. package/src/element-templates/webhook-connector-start-event.json +1382 -1375
  123. package/src/element-templates/webhook-connector-start-message.json +1306 -1296
  124. package/src/element-templates/whatsapp-connector.json +343 -9
  125. package/src/element-templates/http-connector.json.json +0 -654
@@ -4,11 +4,11 @@
4
4
  "name": "GraphQL Outbound Connector",
5
5
  "id": "io.camunda.connectors.GraphQL.v1",
6
6
  "description": "Execute GraphQL query",
7
- "metadata": {
8
- "keywords": []
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"
9
11
  },
10
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
11
- "version": 9,
12
12
  "category": {
13
13
  "id": "connectors",
14
14
  "name": "Connectors"
@@ -17,9 +17,6 @@
17
17
  "elementType": {
18
18
  "value": "bpmn:ServiceTask"
19
19
  },
20
- "engines": {
21
- "camunda": "^8.9"
22
- },
23
20
  "groups": [
24
21
  {
25
22
  "id": "authentication",
@@ -27,7 +24,7 @@
27
24
  },
28
25
  {
29
26
  "id": "endpoint",
30
- "label": "HTTP Endpoint"
27
+ "label": "HTTP endpoint"
31
28
  },
32
29
  {
33
30
  "id": "graphql",
@@ -35,49 +32,37 @@
35
32
  },
36
33
  {
37
34
  "id": "timeout",
38
- "label": "Connection timeout"
39
- },
40
- {
41
- "id": "connector",
42
- "label": "Connector"
35
+ "label": "Connect timeout"
43
36
  },
44
37
  {
45
38
  "id": "output",
46
- "label": "Output mapping"
39
+ "label": "Response mapping"
47
40
  },
48
41
  {
49
- "id": "error",
42
+ "id": "errors",
50
43
  "label": "Error handling"
51
- },
52
- {
53
- "id": "retries",
54
- "label": "Retries"
55
44
  }
56
45
  ],
57
46
  "properties": [
58
47
  {
48
+ "type": "Hidden",
59
49
  "value": "io.camunda:connector-graphql:1",
60
50
  "binding": {
61
- "property": "type",
62
- "type": "zeebe:taskDefinition"
63
- },
64
- "type": "Hidden"
51
+ "type": "zeebe:taskDefinition",
52
+ "property": "type"
53
+ }
65
54
  },
66
55
  {
67
- "id": "authentication.type",
68
56
  "label": "Type",
57
+ "id": "authenticationType",
58
+ "group": "authentication",
69
59
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
70
60
  "value": "noAuth",
71
- "group": "authentication",
72
- "binding": {
73
- "name": "authentication.type",
74
- "type": "zeebe:input"
75
- },
76
61
  "type": "Dropdown",
77
62
  "choices": [
78
63
  {
79
- "name": "API key",
80
- "value": "apiKey"
64
+ "name": "None",
65
+ "value": "noAuth"
81
66
  },
82
67
  {
83
68
  "name": "Basic",
@@ -87,250 +72,202 @@
87
72
  "name": "Bearer token",
88
73
  "value": "bearer"
89
74
  },
90
- {
91
- "name": "None",
92
- "value": "noAuth"
93
- },
94
75
  {
95
76
  "name": "OAuth 2.0",
96
77
  "value": "oauth-client-credentials-flow"
97
78
  }
98
- ]
79
+ ],
80
+ "binding": {
81
+ "type": "zeebe:input",
82
+ "name": "authentication.type"
83
+ }
99
84
  },
100
85
  {
101
- "id": "authentication.apiKeyLocation",
102
- "label": "Api key location",
103
- "description": "Choose type: Send API key in header or as query parameter.",
104
- "optional": false,
105
- "value": "headers",
106
- "constraints": {
107
- "notEmpty": true
108
- },
109
- "group": "authentication",
86
+ "label": "URL",
87
+ "group": "endpoint",
88
+ "type": "String",
89
+ "feel": "optional",
110
90
  "binding": {
111
- "name": "authentication.apiKeyLocation",
112
- "type": "zeebe:input"
113
- },
114
- "condition": {
115
- "property": "authentication.type",
116
- "equals": "apiKey",
117
- "type": "simple"
91
+ "type": "zeebe:input",
92
+ "name": "graphql.url"
118
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",
119
106
  "type": "Dropdown",
107
+ "value": "post",
120
108
  "choices": [
121
109
  {
122
- "name": "Headers",
123
- "value": "headers"
110
+ "name": "POST",
111
+ "value": "post"
124
112
  },
125
113
  {
126
- "name": "Query parameters",
127
- "value": "query"
114
+ "name": "GET",
115
+ "value": "get"
128
116
  }
129
- ]
117
+ ],
118
+ "binding": {
119
+ "type": "zeebe:input",
120
+ "name": "graphql.method"
121
+ }
130
122
  },
131
123
  {
132
- "id": "authentication.name",
133
- "label": "API key name",
134
- "optional": false,
135
- "constraints": {
136
- "notEmpty": true
137
- },
138
- "feel": "optional",
139
- "group": "authentication",
124
+ "id": "headers",
125
+ "label": "Headers",
126
+ "group": "endpoint",
127
+ "type": "Text",
128
+ "feel": "required",
129
+ "optional": true,
140
130
  "binding": {
141
- "name": "authentication.name",
142
- "type": "zeebe:input"
143
- },
144
- "condition": {
145
- "property": "authentication.type",
146
- "equals": "apiKey",
147
- "type": "simple"
148
- },
149
- "type": "String"
131
+ "type": "zeebe:input",
132
+ "name": "graphql.headers"
133
+ }
150
134
  },
151
135
  {
152
- "id": "authentication.value",
153
- "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
+ },
154
145
  "optional": false,
155
146
  "constraints": {
156
147
  "notEmpty": true
157
- },
158
- "feel": "optional",
159
- "group": "authentication",
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",
160
156
  "binding": {
161
- "name": "authentication.value",
162
- "type": "zeebe:input"
163
- },
164
- "condition": {
165
- "property": "authentication.type",
166
- "equals": "apiKey",
167
- "type": "simple"
157
+ "type": "zeebe:input",
158
+ "name": "graphql.variables"
168
159
  },
169
- "type": "String"
160
+ "optional": true
170
161
  },
171
162
  {
172
- "id": "authentication.username",
173
- "label": "Username",
174
- "optional": false,
175
- "constraints": {
176
- "notEmpty": true
177
- },
178
- "feel": "optional",
163
+ "label": "Bearer token",
179
164
  "group": "authentication",
165
+ "type": "String",
166
+ "feel": "optional",
180
167
  "binding": {
181
- "name": "authentication.username",
182
- "type": "zeebe:input"
168
+ "type": "zeebe:input",
169
+ "name": "authentication.token"
183
170
  },
184
- "condition": {
185
- "property": "authentication.type",
186
- "equals": "basic",
187
- "type": "simple"
171
+ "constraints": {
172
+ "notEmpty": true
188
173
  },
189
- "type": "String"
174
+ "condition": {
175
+ "property": "authenticationType",
176
+ "equals": "bearer"
177
+ }
190
178
  },
191
179
  {
192
- "id": "authentication.password",
193
- "label": "Password",
194
- "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
+ },
195
189
  "constraints": {
196
190
  "notEmpty": true
197
191
  },
198
- "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",
199
200
  "group": "authentication",
201
+ "type": "String",
202
+ "feel": "optional",
200
203
  "binding": {
201
- "name": "authentication.password",
202
- "type": "zeebe:input"
204
+ "type": "zeebe:input",
205
+ "name": "authentication.clientId"
203
206
  },
204
- "condition": {
205
- "property": "authentication.type",
206
- "equals": "basic",
207
- "type": "simple"
207
+ "constraints": {
208
+ "notEmpty": true
208
209
  },
209
- "type": "String"
210
+ "condition": {
211
+ "property": "authenticationType",
212
+ "equals": "oauth-client-credentials-flow"
213
+ }
210
214
  },
211
215
  {
212
- "id": "authentication.token",
213
- "label": "Bearer token",
214
- "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
+ },
215
225
  "constraints": {
216
226
  "notEmpty": true
217
227
  },
218
- "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)",
219
236
  "group": "authentication",
237
+ "type": "String",
238
+ "feel": "optional",
239
+ "optional": true,
220
240
  "binding": {
221
- "name": "authentication.token",
222
- "type": "zeebe:input"
241
+ "type": "zeebe:input",
242
+ "name": "authentication.scopes"
223
243
  },
224
244
  "condition": {
225
- "property": "authentication.type",
226
- "equals": "bearer",
227
- "type": "simple"
228
- },
229
- "type": "String"
230
- },
231
- {
232
- "id": "authentication.oauthTokenEndpoint",
233
- "label": "OAuth 2.0 token endpoint",
234
- "description": "The OAuth token endpoint",
235
- "optional": false,
236
- "constraints": {
237
- "notEmpty": true,
238
- "pattern": {
239
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
240
- "message": "Must be a http(s) URL"
241
- }
242
- },
243
- "feel": "optional",
244
- "group": "authentication",
245
- "binding": {
246
- "name": "authentication.oauthTokenEndpoint",
247
- "type": "zeebe:input"
248
- },
249
- "condition": {
250
- "property": "authentication.type",
251
- "equals": "oauth-client-credentials-flow",
252
- "type": "simple"
253
- },
254
- "type": "String"
255
- },
256
- {
257
- "id": "authentication.clientId",
258
- "label": "Client ID",
259
- "description": "Your application's client ID from the OAuth client",
260
- "optional": false,
261
- "constraints": {
262
- "notEmpty": true
263
- },
264
- "feel": "optional",
265
- "group": "authentication",
266
- "binding": {
267
- "name": "authentication.clientId",
268
- "type": "zeebe:input"
269
- },
270
- "condition": {
271
- "property": "authentication.type",
272
- "equals": "oauth-client-credentials-flow",
273
- "type": "simple"
274
- },
275
- "type": "String"
276
- },
277
- {
278
- "id": "authentication.clientSecret",
279
- "label": "Client secret",
280
- "description": "Your application's client secret from the OAuth client",
281
- "optional": false,
282
- "constraints": {
283
- "notEmpty": true
284
- },
285
- "feel": "optional",
286
- "group": "authentication",
287
- "binding": {
288
- "name": "authentication.clientSecret",
289
- "type": "zeebe:input"
290
- },
291
- "condition": {
292
- "property": "authentication.type",
293
- "equals": "oauth-client-credentials-flow",
294
- "type": "simple"
295
- },
296
- "type": "String"
245
+ "property": "authenticationType",
246
+ "equals": "oauth-client-credentials-flow"
247
+ }
297
248
  },
298
249
  {
299
- "id": "authentication.audience",
300
250
  "label": "Audience",
301
251
  "description": "The unique identifier of the target API you want to access",
302
- "optional": true,
303
- "feel": "optional",
304
252
  "group": "authentication",
253
+ "type": "String",
254
+ "feel": "optional",
255
+ "optional": true,
305
256
  "binding": {
306
- "name": "authentication.audience",
307
- "type": "zeebe:input"
257
+ "type": "zeebe:input",
258
+ "name": "authentication.audience"
308
259
  },
309
260
  "condition": {
310
- "property": "authentication.type",
311
- "equals": "oauth-client-credentials-flow",
312
- "type": "simple"
313
- },
314
- "type": "String"
261
+ "property": "authenticationType",
262
+ "equals": "oauth-client-credentials-flow"
263
+ }
315
264
  },
316
265
  {
317
- "id": "authentication.clientAuthentication",
318
266
  "label": "Client authentication",
319
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
320
- "optional": false,
321
- "constraints": {
322
- "notEmpty": true
323
- },
267
+ "id": "authentication.clientAuthentication",
324
268
  "group": "authentication",
325
- "binding": {
326
- "name": "authentication.clientAuthentication",
327
- "type": "zeebe:input"
328
- },
329
- "condition": {
330
- "property": "authentication.type",
331
- "equals": "oauth-client-credentials-flow",
332
- "type": "simple"
333
- },
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",
334
271
  "type": "Dropdown",
335
272
  "choices": [
336
273
  {
@@ -341,240 +278,105 @@
341
278
  "name": "Send as Basic Auth header",
342
279
  "value": "basicAuthHeader"
343
280
  }
344
- ]
345
- },
346
- {
347
- "id": "authentication.scopes",
348
- "label": "Scopes",
349
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
350
- "optional": true,
351
- "feel": "optional",
352
- "group": "authentication",
281
+ ],
353
282
  "binding": {
354
- "name": "authentication.scopes",
355
- "type": "zeebe:input"
283
+ "type": "zeebe:input",
284
+ "name": "authentication.clientAuthentication"
356
285
  },
357
286
  "condition": {
358
- "property": "authentication.type",
359
- "equals": "oauth-client-credentials-flow",
360
- "type": "simple"
361
- },
362
- "type": "String"
287
+ "property": "authenticationType",
288
+ "equals": "oauth-client-credentials-flow"
289
+ }
363
290
  },
364
291
  {
365
- "id": "graphql.method",
366
- "label": "Method",
367
- "optional": false,
368
- "value": "get",
292
+ "label": "Username",
293
+ "group": "authentication",
294
+ "type": "String",
295
+ "feel": "optional",
296
+ "binding": {
297
+ "type": "zeebe:input",
298
+ "name": "authentication.username"
299
+ },
369
300
  "constraints": {
370
301
  "notEmpty": true
371
302
  },
372
- "group": "endpoint",
373
- "binding": {
374
- "name": "graphql.method",
375
- "type": "zeebe:input"
376
- },
377
- "type": "Dropdown",
378
- "choices": [
379
- {
380
- "name": "GET",
381
- "value": "get"
382
- },
383
- {
384
- "name": "POST",
385
- "value": "post"
386
- }
387
- ]
303
+ "condition": {
304
+ "property": "authenticationType",
305
+ "equals": "basic"
306
+ }
388
307
  },
389
308
  {
390
- "id": "graphql.url",
391
- "label": "URL",
392
- "optional": false,
393
- "constraints": {
394
- "notEmpty": true,
395
- "pattern": {
396
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
397
- "message": "Must be a http(s) URL"
398
- }
399
- },
309
+ "label": "Password",
310
+ "group": "authentication",
311
+ "type": "String",
400
312
  "feel": "optional",
401
- "group": "endpoint",
402
313
  "binding": {
403
- "name": "graphql.url",
404
- "type": "zeebe:input"
314
+ "type": "zeebe:input",
315
+ "name": "authentication.password"
405
316
  },
406
- "type": "String"
407
- },
408
- {
409
- "id": "graphql.headers",
410
- "label": "Headers",
411
- "description": "Map of HTTP headers to add to the request",
412
- "optional": true,
413
- "feel": "required",
414
- "group": "endpoint",
415
- "binding": {
416
- "name": "graphql.headers",
417
- "type": "zeebe:input"
317
+ "constraints": {
318
+ "notEmpty": true
418
319
  },
419
- "type": "String"
320
+ "condition": {
321
+ "property": "authenticationType",
322
+ "equals": "basic"
323
+ }
420
324
  },
421
325
  {
422
- "id": "graphql.storeResponse",
423
- "label": "Store response",
424
- "description": "Store the response as a document in the document store",
425
- "optional": false,
426
- "value": false,
427
- "feel": "static",
428
- "group": "endpoint",
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",
429
331
  "binding": {
430
- "name": "graphql.storeResponse",
431
- "type": "zeebe:input"
332
+ "type": "zeebe:input",
333
+ "name": "graphql.connectionTimeoutInSeconds"
432
334
  },
433
- "type": "Boolean"
335
+ "feel": "optional",
336
+ "optional": true,
337
+ "constraints": {
338
+ "notEmpty": false,
339
+ "pattern": {
340
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
341
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
342
+ }
343
+ }
434
344
  },
435
345
  {
436
- "id": "graphql.query",
437
- "label": "Query/Mutation",
438
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
439
- "optional": false,
440
- "constraints": {
441
- "notEmpty": true
442
- },
443
- "feel": "optional",
444
- "group": "graphql",
346
+ "label": "Result variable",
347
+ "description": "Name of variable to store the response in",
348
+ "group": "output",
349
+ "type": "String",
445
350
  "binding": {
446
- "name": "graphql.query",
447
- "type": "zeebe:input"
448
- },
449
- "type": "Text"
351
+ "type": "zeebe:taskHeader",
352
+ "key": "resultVariable"
353
+ }
450
354
  },
451
355
  {
452
- "id": "graphql.variables",
453
- "label": "Variables",
454
- "optional": true,
356
+ "label": "Result expression",
357
+ "description": "Expression to map the response into process variables",
358
+ "group": "output",
359
+ "type": "Text",
455
360
  "feel": "required",
456
- "group": "graphql",
457
361
  "binding": {
458
- "name": "graphql.variables",
459
- "type": "zeebe:input"
460
- },
461
- "type": "String"
462
- },
463
- {
464
- "id": "graphql.connectionTimeoutInSeconds",
465
- "label": "Connection timeout in seconds",
466
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
467
- "optional": true,
468
- "value": 20,
469
- "feel": "static",
470
- "group": "timeout",
471
- "binding": {
472
- "name": "graphql.connectionTimeoutInSeconds",
473
- "type": "zeebe:input"
474
- },
475
- "type": "Number"
476
- },
477
- {
478
- "id": "graphql.readTimeoutInSeconds",
479
- "label": "Read timeout in seconds",
480
- "description": "Timeout in seconds to read data from an established connection or 0 for an infinite timeout",
481
- "optional": true,
482
- "value": 20,
483
- "feel": "static",
484
- "group": "timeout",
485
- "binding": {
486
- "name": "graphql.readTimeoutInSeconds",
487
- "type": "zeebe:input"
488
- },
489
- "type": "Number"
490
- },
491
- {
492
- "id": "version",
493
- "label": "Version",
494
- "description": "Version of the element template",
495
- "value": "9",
496
- "group": "connector",
497
- "binding": {
498
- "key": "elementTemplateVersion",
499
- "type": "zeebe:taskHeader"
500
- },
501
- "type": "Hidden"
502
- },
503
- {
504
- "id": "id",
505
- "label": "ID",
506
- "description": "ID of the element template",
507
- "value": "io.camunda.connectors.GraphQL.v1",
508
- "group": "connector",
509
- "binding": {
510
- "key": "elementTemplateId",
511
- "type": "zeebe:taskHeader"
512
- },
513
- "type": "Hidden"
514
- },
515
- {
516
- "id": "resultVariable",
517
- "label": "Result variable",
518
- "description": "Name of variable to store the response in",
519
- "group": "output",
520
- "binding": {
521
- "key": "resultVariable",
522
- "type": "zeebe:taskHeader"
523
- },
524
- "type": "String"
525
- },
526
- {
527
- "id": "resultExpression",
528
- "label": "Result expression",
529
- "description": "Expression to map the response into process variables",
530
- "feel": "required",
531
- "group": "output",
532
- "binding": {
533
- "key": "resultExpression",
534
- "type": "zeebe:taskHeader"
535
- },
536
- "type": "Text"
362
+ "type": "zeebe:taskHeader",
363
+ "key": "resultExpression"
364
+ }
537
365
  },
538
366
  {
539
- "id": "errorExpression",
540
367
  "label": "Error expression",
541
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
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",
542
371
  "feel": "required",
543
- "group": "error",
544
- "binding": {
545
- "key": "errorExpression",
546
- "type": "zeebe:taskHeader"
547
- },
548
- "type": "Text"
549
- },
550
- {
551
- "id": "retryCount",
552
- "label": "Retries",
553
- "description": "Number of retries",
554
- "value": "3",
555
- "feel": "optional",
556
- "group": "retries",
557
- "binding": {
558
- "property": "retries",
559
- "type": "zeebe:taskDefinition"
560
- },
561
- "type": "String"
562
- },
563
- {
564
- "id": "retryBackoff",
565
- "label": "Retry backoff",
566
- "description": "ISO-8601 duration to wait between retries",
567
- "value": "PT0S",
568
- "group": "retries",
569
372
  "binding": {
570
- "key": "retryBackoff",
571
- "type": "zeebe:taskHeader"
572
- },
573
- "type": "String"
373
+ "type": "zeebe:taskHeader",
374
+ "key": "errorExpression"
375
+ }
574
376
  }
575
377
  ],
576
- "icon": {
577
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
378
+ "engines": {
379
+ "camunda": "^8.4"
578
380
  }
579
381
  },
580
382
  {
@@ -962,8 +764,11 @@
962
764
  "name": "GraphQL Outbound Connector",
963
765
  "id": "io.camunda.connectors.GraphQL.v1",
964
766
  "description": "Execute GraphQL query",
767
+ "metadata": {
768
+ "keywords": []
769
+ },
965
770
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
966
- "version": 6,
771
+ "version": 7,
967
772
  "category": {
968
773
  "id": "connectors",
969
774
  "name": "Connectors"
@@ -972,6 +777,9 @@
972
777
  "elementType": {
973
778
  "value": "bpmn:ServiceTask"
974
779
  },
780
+ "engines": {
781
+ "camunda": "^8.3"
782
+ },
975
783
  "groups": [
976
784
  {
977
785
  "id": "authentication",
@@ -1366,6 +1174,20 @@
1366
1174
  },
1367
1175
  "type": "String"
1368
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
+ },
1369
1191
  {
1370
1192
  "id": "graphql.query",
1371
1193
  "label": "Query/Mutation",
@@ -1399,14 +1221,14 @@
1399
1221
  "label": "Connection timeout in seconds",
1400
1222
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1401
1223
  "optional": true,
1402
- "value": "20",
1403
- "feel": "optional",
1224
+ "value": 20,
1225
+ "feel": "static",
1404
1226
  "group": "timeout",
1405
1227
  "binding": {
1406
1228
  "name": "graphql.connectionTimeoutInSeconds",
1407
1229
  "type": "zeebe:input"
1408
1230
  },
1409
- "type": "String"
1231
+ "type": "Number"
1410
1232
  },
1411
1233
  {
1412
1234
  "id": "resultVariable",
@@ -1461,7 +1283,6 @@
1461
1283
  "label": "Retry backoff",
1462
1284
  "description": "ISO-8601 duration to wait between retries",
1463
1285
  "value": "PT0S",
1464
- "feel": "optional",
1465
1286
  "group": "retries",
1466
1287
  "binding": {
1467
1288
  "key": "retryBackoff",
@@ -1472,21 +1293,15 @@
1472
1293
  ],
1473
1294
  "icon": {
1474
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+"
1475
- },
1476
- "engines": {
1477
- "camunda": "^8.5"
1478
1296
  }
1479
1297
  },
1480
1298
  {
1481
1299
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1482
- "name": "GraphQL connector",
1300
+ "name": "GraphQL Outbound Connector",
1483
1301
  "id": "io.camunda.connectors.GraphQL.v1",
1484
1302
  "description": "Execute GraphQL query",
1485
- "version": 1,
1486
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1487
- "icon": {
1488
- "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
1489
- },
1303
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1304
+ "version": 6,
1490
1305
  "category": {
1491
1306
  "id": "connectors",
1492
1307
  "name": "Connectors"
@@ -1502,7 +1317,7 @@
1502
1317
  },
1503
1318
  {
1504
1319
  "id": "endpoint",
1505
- "label": "HTTP endpoint"
1320
+ "label": "HTTP Endpoint"
1506
1321
  },
1507
1322
  {
1508
1323
  "id": "graphql",
@@ -1510,37 +1325,45 @@
1510
1325
  },
1511
1326
  {
1512
1327
  "id": "timeout",
1513
- "label": "Connect timeout"
1328
+ "label": "Connection timeout"
1514
1329
  },
1515
1330
  {
1516
1331
  "id": "output",
1517
- "label": "Response mapping"
1332
+ "label": "Output mapping"
1518
1333
  },
1519
1334
  {
1520
- "id": "errors",
1335
+ "id": "error",
1521
1336
  "label": "Error handling"
1337
+ },
1338
+ {
1339
+ "id": "retries",
1340
+ "label": "Retries"
1522
1341
  }
1523
1342
  ],
1524
1343
  "properties": [
1525
1344
  {
1526
- "type": "Hidden",
1527
1345
  "value": "io.camunda:connector-graphql:1",
1528
1346
  "binding": {
1529
- "type": "zeebe:taskDefinition",
1530
- "property": "type"
1531
- }
1347
+ "property": "type",
1348
+ "type": "zeebe:taskDefinition"
1349
+ },
1350
+ "type": "Hidden"
1532
1351
  },
1533
1352
  {
1353
+ "id": "authentication.type",
1534
1354
  "label": "Type",
1535
- "id": "authenticationType",
1536
- "group": "authentication",
1537
1355
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1538
1356
  "value": "noAuth",
1357
+ "group": "authentication",
1358
+ "binding": {
1359
+ "name": "authentication.type",
1360
+ "type": "zeebe:input"
1361
+ },
1539
1362
  "type": "Dropdown",
1540
1363
  "choices": [
1541
1364
  {
1542
- "name": "None",
1543
- "value": "noAuth"
1365
+ "name": "API key",
1366
+ "value": "apiKey"
1544
1367
  },
1545
1368
  {
1546
1369
  "name": "Basic",
@@ -1550,202 +1373,250 @@
1550
1373
  "name": "Bearer token",
1551
1374
  "value": "bearer"
1552
1375
  },
1376
+ {
1377
+ "name": "None",
1378
+ "value": "noAuth"
1379
+ },
1553
1380
  {
1554
1381
  "name": "OAuth 2.0",
1555
1382
  "value": "oauth-client-credentials-flow"
1556
1383
  }
1557
- ],
1558
- "binding": {
1559
- "type": "zeebe:input",
1560
- "name": "authentication.type"
1561
- }
1384
+ ]
1562
1385
  },
1563
1386
  {
1564
- "label": "URL",
1565
- "group": "endpoint",
1566
- "type": "String",
1567
- "feel": "optional",
1387
+ "id": "authentication.apiKeyLocation",
1388
+ "label": "Api key location",
1389
+ "description": "Choose type: Send API key in header or as query parameter.",
1390
+ "optional": false,
1391
+ "value": "headers",
1392
+ "constraints": {
1393
+ "notEmpty": true
1394
+ },
1395
+ "group": "authentication",
1568
1396
  "binding": {
1569
- "type": "zeebe:input",
1570
- "name": "graphql.url"
1397
+ "name": "authentication.apiKeyLocation",
1398
+ "type": "zeebe:input"
1399
+ },
1400
+ "condition": {
1401
+ "property": "authentication.type",
1402
+ "equals": "apiKey",
1403
+ "type": "simple"
1571
1404
  },
1572
- "constraints": {
1573
- "notEmpty": true,
1574
- "pattern": {
1575
- "value": "^(=|(http://|https://|secrets).*$)",
1576
- "message": "Must be a http(s) URL."
1577
- }
1578
- }
1579
- },
1580
- {
1581
- "id": "method",
1582
- "label": "Method",
1583
- "group": "endpoint",
1584
1405
  "type": "Dropdown",
1585
- "value": "post",
1586
1406
  "choices": [
1587
1407
  {
1588
- "name": "POST",
1589
- "value": "post"
1408
+ "name": "Headers",
1409
+ "value": "headers"
1590
1410
  },
1591
1411
  {
1592
- "name": "GET",
1593
- "value": "get"
1412
+ "name": "Query parameters",
1413
+ "value": "query"
1594
1414
  }
1595
- ],
1596
- "binding": {
1597
- "type": "zeebe:input",
1598
- "name": "graphql.method"
1599
- }
1415
+ ]
1600
1416
  },
1601
1417
  {
1602
- "id": "headers",
1603
- "label": "Headers",
1604
- "group": "endpoint",
1605
- "type": "Text",
1606
- "feel": "required",
1607
- "optional": true,
1418
+ "id": "authentication.name",
1419
+ "label": "API key name",
1420
+ "optional": false,
1421
+ "constraints": {
1422
+ "notEmpty": true
1423
+ },
1424
+ "feel": "optional",
1425
+ "group": "authentication",
1608
1426
  "binding": {
1609
- "type": "zeebe:input",
1610
- "name": "graphql.headers"
1611
- }
1427
+ "name": "authentication.name",
1428
+ "type": "zeebe:input"
1429
+ },
1430
+ "condition": {
1431
+ "property": "authentication.type",
1432
+ "equals": "apiKey",
1433
+ "type": "simple"
1434
+ },
1435
+ "type": "String"
1612
1436
  },
1613
1437
  {
1614
- "label": "Query/Mutation",
1615
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1616
- "group": "graphql",
1617
- "type": "Text",
1618
- "language": "graphql",
1619
- "binding": {
1620
- "type": "zeebe:input",
1621
- "name": "graphql.query"
1622
- },
1438
+ "id": "authentication.value",
1439
+ "label": "API key value",
1623
1440
  "optional": false,
1624
1441
  "constraints": {
1625
1442
  "notEmpty": true
1626
- }
1443
+ },
1444
+ "feel": "optional",
1445
+ "group": "authentication",
1446
+ "binding": {
1447
+ "name": "authentication.value",
1448
+ "type": "zeebe:input"
1449
+ },
1450
+ "condition": {
1451
+ "property": "authentication.type",
1452
+ "equals": "apiKey",
1453
+ "type": "simple"
1454
+ },
1455
+ "type": "String"
1627
1456
  },
1628
1457
  {
1629
- "label": "Variables",
1630
- "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>",
1631
- "group": "graphql",
1632
- "type": "Text",
1633
- "feel": "required",
1458
+ "id": "authentication.username",
1459
+ "label": "Username",
1460
+ "optional": false,
1461
+ "constraints": {
1462
+ "notEmpty": true
1463
+ },
1464
+ "feel": "optional",
1465
+ "group": "authentication",
1634
1466
  "binding": {
1635
- "type": "zeebe:input",
1636
- "name": "graphql.variables"
1467
+ "name": "authentication.username",
1468
+ "type": "zeebe:input"
1637
1469
  },
1638
- "optional": true
1470
+ "condition": {
1471
+ "property": "authentication.type",
1472
+ "equals": "basic",
1473
+ "type": "simple"
1474
+ },
1475
+ "type": "String"
1639
1476
  },
1640
1477
  {
1641
- "label": "Bearer token",
1642
- "group": "authentication",
1643
- "type": "String",
1478
+ "id": "authentication.password",
1479
+ "label": "Password",
1480
+ "optional": false,
1481
+ "constraints": {
1482
+ "notEmpty": true
1483
+ },
1644
1484
  "feel": "optional",
1485
+ "group": "authentication",
1645
1486
  "binding": {
1646
- "type": "zeebe:input",
1647
- "name": "graphql.authentication.token"
1487
+ "name": "authentication.password",
1488
+ "type": "zeebe:input"
1489
+ },
1490
+ "condition": {
1491
+ "property": "authentication.type",
1492
+ "equals": "basic",
1493
+ "type": "simple"
1648
1494
  },
1495
+ "type": "String"
1496
+ },
1497
+ {
1498
+ "id": "authentication.token",
1499
+ "label": "Bearer token",
1500
+ "optional": false,
1649
1501
  "constraints": {
1650
1502
  "notEmpty": true
1651
1503
  },
1504
+ "feel": "optional",
1505
+ "group": "authentication",
1506
+ "binding": {
1507
+ "name": "authentication.token",
1508
+ "type": "zeebe:input"
1509
+ },
1652
1510
  "condition": {
1653
- "property": "authenticationType",
1654
- "equals": "bearer"
1655
- }
1511
+ "property": "authentication.type",
1512
+ "equals": "bearer",
1513
+ "type": "simple"
1514
+ },
1515
+ "type": "String"
1656
1516
  },
1657
1517
  {
1658
- "label": "OAuth token endpoint",
1518
+ "id": "authentication.oauthTokenEndpoint",
1519
+ "label": "OAuth 2.0 token endpoint",
1659
1520
  "description": "The OAuth token endpoint",
1660
- "group": "authentication",
1661
- "type": "String",
1521
+ "optional": false,
1522
+ "constraints": {
1523
+ "notEmpty": true,
1524
+ "pattern": {
1525
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1526
+ "message": "Must be a http(s) URL"
1527
+ }
1528
+ },
1662
1529
  "feel": "optional",
1530
+ "group": "authentication",
1663
1531
  "binding": {
1664
- "type": "zeebe:input",
1665
- "name": "authentication.oauthTokenEndpoint"
1666
- },
1667
- "constraints": {
1668
- "notEmpty": true
1532
+ "name": "authentication.oauthTokenEndpoint",
1533
+ "type": "zeebe:input"
1669
1534
  },
1670
1535
  "condition": {
1671
- "property": "authenticationType",
1672
- "equals": "oauth-client-credentials-flow"
1673
- }
1536
+ "property": "authentication.type",
1537
+ "equals": "oauth-client-credentials-flow",
1538
+ "type": "simple"
1539
+ },
1540
+ "type": "String"
1674
1541
  },
1675
1542
  {
1543
+ "id": "authentication.clientId",
1676
1544
  "label": "Client ID",
1677
1545
  "description": "Your application's client ID from the OAuth client",
1678
- "group": "authentication",
1679
- "type": "String",
1680
- "feel": "optional",
1681
- "binding": {
1682
- "type": "zeebe:input",
1683
- "name": "authentication.clientId"
1684
- },
1546
+ "optional": false,
1685
1547
  "constraints": {
1686
1548
  "notEmpty": true
1687
1549
  },
1550
+ "feel": "optional",
1551
+ "group": "authentication",
1552
+ "binding": {
1553
+ "name": "authentication.clientId",
1554
+ "type": "zeebe:input"
1555
+ },
1688
1556
  "condition": {
1689
- "property": "authenticationType",
1690
- "equals": "oauth-client-credentials-flow"
1691
- }
1557
+ "property": "authentication.type",
1558
+ "equals": "oauth-client-credentials-flow",
1559
+ "type": "simple"
1560
+ },
1561
+ "type": "String"
1692
1562
  },
1693
1563
  {
1564
+ "id": "authentication.clientSecret",
1694
1565
  "label": "Client secret",
1695
1566
  "description": "Your application's client secret from the OAuth client",
1696
- "group": "authentication",
1697
- "type": "String",
1698
- "feel": "optional",
1699
- "binding": {
1700
- "type": "zeebe:input",
1701
- "name": "authentication.clientSecret"
1702
- },
1567
+ "optional": false,
1703
1568
  "constraints": {
1704
1569
  "notEmpty": true
1705
1570
  },
1706
- "condition": {
1707
- "property": "authenticationType",
1708
- "equals": "oauth-client-credentials-flow"
1709
- }
1710
- },
1711
- {
1712
- "label": "Scopes",
1713
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1714
- "group": "authentication",
1715
- "type": "String",
1716
1571
  "feel": "optional",
1717
- "optional": true,
1572
+ "group": "authentication",
1718
1573
  "binding": {
1719
- "type": "zeebe:input",
1720
- "name": "authentication.scopes"
1574
+ "name": "authentication.clientSecret",
1575
+ "type": "zeebe:input"
1721
1576
  },
1722
1577
  "condition": {
1723
- "property": "authenticationType",
1724
- "equals": "oauth-client-credentials-flow"
1725
- }
1578
+ "property": "authentication.type",
1579
+ "equals": "oauth-client-credentials-flow",
1580
+ "type": "simple"
1581
+ },
1582
+ "type": "String"
1726
1583
  },
1727
1584
  {
1585
+ "id": "authentication.audience",
1728
1586
  "label": "Audience",
1729
1587
  "description": "The unique identifier of the target API you want to access",
1730
- "group": "authentication",
1731
- "type": "String",
1732
- "feel": "optional",
1733
1588
  "optional": true,
1589
+ "feel": "optional",
1590
+ "group": "authentication",
1734
1591
  "binding": {
1735
- "type": "zeebe:input",
1736
- "name": "authentication.audience"
1592
+ "name": "authentication.audience",
1593
+ "type": "zeebe:input"
1737
1594
  },
1738
1595
  "condition": {
1739
- "property": "authenticationType",
1740
- "equals": "oauth-client-credentials-flow"
1741
- }
1596
+ "property": "authentication.type",
1597
+ "equals": "oauth-client-credentials-flow",
1598
+ "type": "simple"
1599
+ },
1600
+ "type": "String"
1742
1601
  },
1743
1602
  {
1744
- "label": "Client authentication",
1745
1603
  "id": "authentication.clientAuthentication",
1604
+ "label": "Client authentication",
1605
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1606
+ "optional": false,
1607
+ "constraints": {
1608
+ "notEmpty": true
1609
+ },
1746
1610
  "group": "authentication",
1747
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
1748
- "value": "basicAuthHeader",
1611
+ "binding": {
1612
+ "name": "authentication.clientAuthentication",
1613
+ "type": "zeebe:input"
1614
+ },
1615
+ "condition": {
1616
+ "property": "authentication.type",
1617
+ "equals": "oauth-client-credentials-flow",
1618
+ "type": "simple"
1619
+ },
1749
1620
  "type": "Dropdown",
1750
1621
  "choices": [
1751
1622
  {
@@ -1756,105 +1627,192 @@
1756
1627
  "name": "Send as Basic Auth header",
1757
1628
  "value": "basicAuthHeader"
1758
1629
  }
1759
- ],
1760
- "binding": {
1761
- "type": "zeebe:input",
1762
- "name": "authentication.clientAuthentication"
1763
- },
1764
- "condition": {
1765
- "property": "authenticationType",
1766
- "equals": "oauth-client-credentials-flow"
1767
- }
1630
+ ]
1768
1631
  },
1769
1632
  {
1770
- "label": "Username",
1771
- "group": "authentication",
1772
- "type": "String",
1633
+ "id": "authentication.scopes",
1634
+ "label": "Scopes",
1635
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1636
+ "optional": true,
1773
1637
  "feel": "optional",
1638
+ "group": "authentication",
1774
1639
  "binding": {
1775
- "type": "zeebe:input",
1776
- "name": "authentication.username"
1777
- },
1640
+ "name": "authentication.scopes",
1641
+ "type": "zeebe:input"
1642
+ },
1643
+ "condition": {
1644
+ "property": "authentication.type",
1645
+ "equals": "oauth-client-credentials-flow",
1646
+ "type": "simple"
1647
+ },
1648
+ "type": "String"
1649
+ },
1650
+ {
1651
+ "id": "graphql.method",
1652
+ "label": "Method",
1653
+ "optional": false,
1654
+ "value": "get",
1778
1655
  "constraints": {
1779
1656
  "notEmpty": true
1780
1657
  },
1781
- "condition": {
1782
- "property": "authenticationType",
1783
- "equals": "basic"
1784
- }
1658
+ "group": "endpoint",
1659
+ "binding": {
1660
+ "name": "graphql.method",
1661
+ "type": "zeebe:input"
1662
+ },
1663
+ "type": "Dropdown",
1664
+ "choices": [
1665
+ {
1666
+ "name": "GET",
1667
+ "value": "get"
1668
+ },
1669
+ {
1670
+ "name": "POST",
1671
+ "value": "post"
1672
+ }
1673
+ ]
1785
1674
  },
1786
1675
  {
1787
- "label": "Password",
1788
- "group": "authentication",
1789
- "type": "String",
1676
+ "id": "graphql.url",
1677
+ "label": "URL",
1678
+ "optional": false,
1679
+ "constraints": {
1680
+ "notEmpty": true,
1681
+ "pattern": {
1682
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1683
+ "message": "Must be a http(s) URL"
1684
+ }
1685
+ },
1790
1686
  "feel": "optional",
1687
+ "group": "endpoint",
1791
1688
  "binding": {
1792
- "type": "zeebe:input",
1793
- "name": "authentication.password"
1689
+ "name": "graphql.url",
1690
+ "type": "zeebe:input"
1691
+ },
1692
+ "type": "String"
1693
+ },
1694
+ {
1695
+ "id": "graphql.headers",
1696
+ "label": "Headers",
1697
+ "description": "Map of HTTP headers to add to the request",
1698
+ "optional": true,
1699
+ "feel": "required",
1700
+ "group": "endpoint",
1701
+ "binding": {
1702
+ "name": "graphql.headers",
1703
+ "type": "zeebe:input"
1794
1704
  },
1705
+ "type": "String"
1706
+ },
1707
+ {
1708
+ "id": "graphql.query",
1709
+ "label": "Query/Mutation",
1710
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1711
+ "optional": false,
1795
1712
  "constraints": {
1796
1713
  "notEmpty": true
1797
1714
  },
1798
- "condition": {
1799
- "property": "authenticationType",
1800
- "equals": "basic"
1801
- }
1715
+ "feel": "optional",
1716
+ "group": "graphql",
1717
+ "binding": {
1718
+ "name": "graphql.query",
1719
+ "type": "zeebe:input"
1720
+ },
1721
+ "type": "Text"
1802
1722
  },
1803
1723
  {
1804
- "label": "Connection timeout",
1724
+ "id": "graphql.variables",
1725
+ "label": "Variables",
1726
+ "optional": true,
1727
+ "feel": "required",
1728
+ "group": "graphql",
1729
+ "binding": {
1730
+ "name": "graphql.variables",
1731
+ "type": "zeebe:input"
1732
+ },
1733
+ "type": "String"
1734
+ },
1735
+ {
1736
+ "id": "graphql.connectionTimeoutInSeconds",
1737
+ "label": "Connection timeout in seconds",
1805
1738
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1806
- "group": "timeout",
1807
- "type": "String",
1739
+ "optional": true,
1808
1740
  "value": "20",
1741
+ "feel": "optional",
1742
+ "group": "timeout",
1809
1743
  "binding": {
1810
- "type": "zeebe:input",
1811
- "name": "graphql.connectionTimeoutInSeconds"
1744
+ "name": "graphql.connectionTimeoutInSeconds",
1745
+ "type": "zeebe:input"
1812
1746
  },
1813
- "feel": "optional",
1814
- "optional": true,
1815
- "constraints": {
1816
- "notEmpty": false,
1817
- "pattern": {
1818
- "value": "^(=|([0-9]+|secrets\\..+)$)",
1819
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1820
- }
1821
- }
1747
+ "type": "String"
1822
1748
  },
1823
1749
  {
1750
+ "id": "resultVariable",
1824
1751
  "label": "Result variable",
1825
1752
  "description": "Name of variable to store the response in",
1826
1753
  "group": "output",
1827
- "type": "String",
1828
1754
  "binding": {
1829
- "type": "zeebe:taskHeader",
1830
- "key": "resultVariable"
1831
- }
1755
+ "key": "resultVariable",
1756
+ "type": "zeebe:taskHeader"
1757
+ },
1758
+ "type": "String"
1832
1759
  },
1833
1760
  {
1761
+ "id": "resultExpression",
1834
1762
  "label": "Result expression",
1835
1763
  "description": "Expression to map the response into process variables",
1836
- "group": "output",
1837
- "type": "Text",
1838
1764
  "feel": "required",
1765
+ "group": "output",
1839
1766
  "binding": {
1840
- "type": "zeebe:taskHeader",
1841
- "key": "resultExpression"
1842
- }
1767
+ "key": "resultExpression",
1768
+ "type": "zeebe:taskHeader"
1769
+ },
1770
+ "type": "Text"
1843
1771
  },
1844
1772
  {
1773
+ "id": "errorExpression",
1845
1774
  "label": "Error expression",
1846
- "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>",
1847
- "group": "errors",
1848
- "type": "Text",
1775
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1849
1776
  "feel": "required",
1777
+ "group": "error",
1850
1778
  "binding": {
1851
- "type": "zeebe:taskHeader",
1852
- "key": "errorExpression"
1853
- }
1779
+ "key": "errorExpression",
1780
+ "type": "zeebe:taskHeader"
1781
+ },
1782
+ "type": "Text"
1783
+ },
1784
+ {
1785
+ "id": "retryCount",
1786
+ "label": "Retries",
1787
+ "description": "Number of retries",
1788
+ "value": "3",
1789
+ "feel": "optional",
1790
+ "group": "retries",
1791
+ "binding": {
1792
+ "property": "retries",
1793
+ "type": "zeebe:taskDefinition"
1794
+ },
1795
+ "type": "String"
1796
+ },
1797
+ {
1798
+ "id": "retryBackoff",
1799
+ "label": "Retry backoff",
1800
+ "description": "ISO-8601 duration to wait between retries",
1801
+ "value": "PT0S",
1802
+ "feel": "optional",
1803
+ "group": "retries",
1804
+ "binding": {
1805
+ "key": "retryBackoff",
1806
+ "type": "zeebe:taskHeader"
1807
+ },
1808
+ "type": "String"
1854
1809
  }
1855
1810
  ],
1811
+ "icon": {
1812
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
1813
+ },
1856
1814
  "engines": {
1857
- "camunda": "^8.2"
1815
+ "camunda": "^8.5"
1858
1816
  }
1859
1817
  },
1860
1818
  {
@@ -1862,11 +1820,11 @@
1862
1820
  "name": "GraphQL Outbound Connector",
1863
1821
  "id": "io.camunda.connectors.GraphQL.v1",
1864
1822
  "description": "Execute GraphQL query",
1865
- "version": 4,
1866
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1867
- "icon": {
1868
- "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
1823
+ "metadata": {
1824
+ "keywords": []
1869
1825
  },
1826
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1827
+ "version": 8,
1870
1828
  "category": {
1871
1829
  "id": "connectors",
1872
1830
  "name": "Connectors"
@@ -1875,6 +1833,9 @@
1875
1833
  "elementType": {
1876
1834
  "value": "bpmn:ServiceTask"
1877
1835
  },
1836
+ "engines": {
1837
+ "camunda": "^8.3"
1838
+ },
1878
1839
  "groups": [
1879
1840
  {
1880
1841
  "id": "authentication",
@@ -1882,7 +1843,7 @@
1882
1843
  },
1883
1844
  {
1884
1845
  "id": "endpoint",
1885
- "label": "HTTP endpoint"
1846
+ "label": "HTTP Endpoint"
1886
1847
  },
1887
1848
  {
1888
1849
  "id": "graphql",
@@ -1890,37 +1851,49 @@
1890
1851
  },
1891
1852
  {
1892
1853
  "id": "timeout",
1893
- "label": "Connect timeout"
1854
+ "label": "Connection timeout"
1855
+ },
1856
+ {
1857
+ "id": "connector",
1858
+ "label": "Connector"
1894
1859
  },
1895
1860
  {
1896
1861
  "id": "output",
1897
- "label": "Response mapping"
1862
+ "label": "Output mapping"
1898
1863
  },
1899
1864
  {
1900
- "id": "errors",
1865
+ "id": "error",
1901
1866
  "label": "Error handling"
1867
+ },
1868
+ {
1869
+ "id": "retries",
1870
+ "label": "Retries"
1902
1871
  }
1903
1872
  ],
1904
1873
  "properties": [
1905
1874
  {
1906
- "type": "Hidden",
1907
1875
  "value": "io.camunda:connector-graphql:1",
1908
1876
  "binding": {
1909
- "type": "zeebe:taskDefinition",
1910
- "property": "type"
1911
- }
1877
+ "property": "type",
1878
+ "type": "zeebe:taskDefinition"
1879
+ },
1880
+ "type": "Hidden"
1912
1881
  },
1913
1882
  {
1883
+ "id": "authentication.type",
1914
1884
  "label": "Type",
1915
- "id": "authenticationType",
1916
- "group": "authentication",
1917
1885
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1918
1886
  "value": "noAuth",
1887
+ "group": "authentication",
1888
+ "binding": {
1889
+ "name": "authentication.type",
1890
+ "type": "zeebe:input"
1891
+ },
1919
1892
  "type": "Dropdown",
1920
1893
  "choices": [
1921
1894
  {
1922
- "name": "None",
1923
- "value": "noAuth"
1895
+ "name": "API key",
1896
+ "value": "apiKey"
1924
1897
  },
1925
1898
  {
1926
1899
  "name": "Basic",
@@ -1930,202 +1903,250 @@
1930
1903
  "name": "Bearer token",
1931
1904
  "value": "bearer"
1932
1905
  },
1906
+ {
1907
+ "name": "None",
1908
+ "value": "noAuth"
1909
+ },
1933
1910
  {
1934
1911
  "name": "OAuth 2.0",
1935
1912
  "value": "oauth-client-credentials-flow"
1936
1913
  }
1937
- ],
1938
- "binding": {
1939
- "type": "zeebe:input",
1940
- "name": "authentication.type"
1941
- }
1914
+ ]
1942
1915
  },
1943
1916
  {
1944
- "label": "URL",
1945
- "group": "endpoint",
1946
- "type": "String",
1947
- "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",
1948
1926
  "binding": {
1949
- "type": "zeebe:input",
1950
- "name": "graphql.url"
1927
+ "name": "authentication.apiKeyLocation",
1928
+ "type": "zeebe:input"
1929
+ },
1930
+ "condition": {
1931
+ "property": "authentication.type",
1932
+ "equals": "apiKey",
1933
+ "type": "simple"
1951
1934
  },
1952
- "constraints": {
1953
- "notEmpty": true,
1954
- "pattern": {
1955
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
1956
- "message": "Must be a http(s) URL."
1957
- }
1958
- }
1959
- },
1960
- {
1961
- "id": "method",
1962
- "label": "Method",
1963
- "group": "endpoint",
1964
1935
  "type": "Dropdown",
1965
- "value": "post",
1966
1936
  "choices": [
1967
1937
  {
1968
- "name": "POST",
1969
- "value": "post"
1938
+ "name": "Headers",
1939
+ "value": "headers"
1970
1940
  },
1971
1941
  {
1972
- "name": "GET",
1973
- "value": "get"
1942
+ "name": "Query parameters",
1943
+ "value": "query"
1974
1944
  }
1975
- ],
1976
- "binding": {
1977
- "type": "zeebe:input",
1978
- "name": "graphql.method"
1979
- }
1945
+ ]
1980
1946
  },
1981
1947
  {
1982
- "id": "headers",
1983
- "label": "Headers",
1984
- "group": "endpoint",
1985
- "type": "Text",
1986
- "feel": "required",
1987
- "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",
1988
1956
  "binding": {
1989
- "type": "zeebe:input",
1990
- "name": "graphql.headers"
1991
- }
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"
1992
1966
  },
1993
1967
  {
1994
- "label": "Query/Mutation",
1995
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1996
- "group": "graphql",
1997
- "type": "Text",
1998
- "language": "graphql",
1999
- "binding": {
2000
- "type": "zeebe:input",
2001
- "name": "graphql.query"
2002
- },
1968
+ "id": "authentication.value",
1969
+ "label": "API key value",
2003
1970
  "optional": false,
2004
1971
  "constraints": {
2005
1972
  "notEmpty": true
2006
- }
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"
2007
1986
  },
2008
1987
  {
2009
- "label": "Variables",
2010
- "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>",
2011
- "group": "graphql",
2012
- "type": "Text",
2013
- "feel": "required",
1988
+ "id": "authentication.username",
1989
+ "label": "Username",
1990
+ "optional": false,
1991
+ "constraints": {
1992
+ "notEmpty": true
1993
+ },
1994
+ "feel": "optional",
1995
+ "group": "authentication",
2014
1996
  "binding": {
2015
- "type": "zeebe:input",
2016
- "name": "graphql.variables"
1997
+ "name": "authentication.username",
1998
+ "type": "zeebe:input"
2017
1999
  },
2018
- "optional": true
2000
+ "condition": {
2001
+ "property": "authentication.type",
2002
+ "equals": "basic",
2003
+ "type": "simple"
2004
+ },
2005
+ "type": "String"
2019
2006
  },
2020
2007
  {
2021
- "label": "Bearer token",
2022
- "group": "authentication",
2023
- "type": "String",
2008
+ "id": "authentication.password",
2009
+ "label": "Password",
2010
+ "optional": false,
2011
+ "constraints": {
2012
+ "notEmpty": true
2013
+ },
2024
2014
  "feel": "optional",
2015
+ "group": "authentication",
2025
2016
  "binding": {
2026
- "type": "zeebe:input",
2027
- "name": "authentication.token"
2017
+ "name": "authentication.password",
2018
+ "type": "zeebe:input"
2019
+ },
2020
+ "condition": {
2021
+ "property": "authentication.type",
2022
+ "equals": "basic",
2023
+ "type": "simple"
2028
2024
  },
2025
+ "type": "String"
2026
+ },
2027
+ {
2028
+ "id": "authentication.token",
2029
+ "label": "Bearer token",
2030
+ "optional": false,
2029
2031
  "constraints": {
2030
2032
  "notEmpty": true
2031
2033
  },
2034
+ "feel": "optional",
2035
+ "group": "authentication",
2036
+ "binding": {
2037
+ "name": "authentication.token",
2038
+ "type": "zeebe:input"
2039
+ },
2032
2040
  "condition": {
2033
- "property": "authenticationType",
2034
- "equals": "bearer"
2035
- }
2041
+ "property": "authentication.type",
2042
+ "equals": "bearer",
2043
+ "type": "simple"
2044
+ },
2045
+ "type": "String"
2036
2046
  },
2037
2047
  {
2038
- "label": "OAuth token endpoint",
2048
+ "id": "authentication.oauthTokenEndpoint",
2049
+ "label": "OAuth 2.0 token endpoint",
2039
2050
  "description": "The OAuth token endpoint",
2040
- "group": "authentication",
2041
- "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
+ },
2042
2059
  "feel": "optional",
2060
+ "group": "authentication",
2043
2061
  "binding": {
2044
- "type": "zeebe:input",
2045
- "name": "authentication.oauthTokenEndpoint"
2046
- },
2047
- "constraints": {
2048
- "notEmpty": true
2062
+ "name": "authentication.oauthTokenEndpoint",
2063
+ "type": "zeebe:input"
2049
2064
  },
2050
2065
  "condition": {
2051
- "property": "authenticationType",
2052
- "equals": "oauth-client-credentials-flow"
2053
- }
2066
+ "property": "authentication.type",
2067
+ "equals": "oauth-client-credentials-flow",
2068
+ "type": "simple"
2069
+ },
2070
+ "type": "String"
2054
2071
  },
2055
2072
  {
2073
+ "id": "authentication.clientId",
2056
2074
  "label": "Client ID",
2057
2075
  "description": "Your application's client ID from the OAuth client",
2058
- "group": "authentication",
2059
- "type": "String",
2060
- "feel": "optional",
2061
- "binding": {
2062
- "type": "zeebe:input",
2063
- "name": "authentication.clientId"
2064
- },
2076
+ "optional": false,
2065
2077
  "constraints": {
2066
2078
  "notEmpty": true
2067
2079
  },
2080
+ "feel": "optional",
2081
+ "group": "authentication",
2082
+ "binding": {
2083
+ "name": "authentication.clientId",
2084
+ "type": "zeebe:input"
2085
+ },
2068
2086
  "condition": {
2069
- "property": "authenticationType",
2070
- "equals": "oauth-client-credentials-flow"
2071
- }
2087
+ "property": "authentication.type",
2088
+ "equals": "oauth-client-credentials-flow",
2089
+ "type": "simple"
2090
+ },
2091
+ "type": "String"
2072
2092
  },
2073
2093
  {
2094
+ "id": "authentication.clientSecret",
2074
2095
  "label": "Client secret",
2075
2096
  "description": "Your application's client secret from the OAuth client",
2076
- "group": "authentication",
2077
- "type": "String",
2078
- "feel": "optional",
2079
- "binding": {
2080
- "type": "zeebe:input",
2081
- "name": "authentication.clientSecret"
2082
- },
2097
+ "optional": false,
2083
2098
  "constraints": {
2084
2099
  "notEmpty": true
2085
2100
  },
2086
- "condition": {
2087
- "property": "authenticationType",
2088
- "equals": "oauth-client-credentials-flow"
2089
- }
2090
- },
2091
- {
2092
- "label": "Scopes",
2093
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2094
- "group": "authentication",
2095
- "type": "String",
2096
2101
  "feel": "optional",
2097
- "optional": true,
2102
+ "group": "authentication",
2098
2103
  "binding": {
2099
- "type": "zeebe:input",
2100
- "name": "authentication.scopes"
2104
+ "name": "authentication.clientSecret",
2105
+ "type": "zeebe:input"
2101
2106
  },
2102
2107
  "condition": {
2103
- "property": "authenticationType",
2104
- "equals": "oauth-client-credentials-flow"
2105
- }
2108
+ "property": "authentication.type",
2109
+ "equals": "oauth-client-credentials-flow",
2110
+ "type": "simple"
2111
+ },
2112
+ "type": "String"
2106
2113
  },
2107
2114
  {
2115
+ "id": "authentication.audience",
2108
2116
  "label": "Audience",
2109
2117
  "description": "The unique identifier of the target API you want to access",
2110
- "group": "authentication",
2111
- "type": "String",
2112
- "feel": "optional",
2113
2118
  "optional": true,
2119
+ "feel": "optional",
2120
+ "group": "authentication",
2114
2121
  "binding": {
2115
- "type": "zeebe:input",
2116
- "name": "authentication.audience"
2122
+ "name": "authentication.audience",
2123
+ "type": "zeebe:input"
2117
2124
  },
2118
2125
  "condition": {
2119
- "property": "authenticationType",
2120
- "equals": "oauth-client-credentials-flow"
2121
- }
2126
+ "property": "authentication.type",
2127
+ "equals": "oauth-client-credentials-flow",
2128
+ "type": "simple"
2129
+ },
2130
+ "type": "String"
2122
2131
  },
2123
2132
  {
2124
- "label": "Client authentication",
2125
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
+ },
2126
2140
  "group": "authentication",
2127
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
2128
- "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
+ },
2129
2150
  "type": "Dropdown",
2130
2151
  "choices": [
2131
2152
  {
@@ -2136,117 +2157,238 @@
2136
2157
  "name": "Send as Basic Auth header",
2137
2158
  "value": "basicAuthHeader"
2138
2159
  }
2139
- ],
2140
- "binding": {
2141
- "type": "zeebe:input",
2142
- "name": "authentication.clientAuthentication"
2143
- },
2144
- "condition": {
2145
- "property": "authenticationType",
2146
- "equals": "oauth-client-credentials-flow"
2147
- }
2160
+ ]
2148
2161
  },
2149
2162
  {
2150
- "label": "Username",
2151
- "group": "authentication",
2152
- "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,
2153
2167
  "feel": "optional",
2168
+ "group": "authentication",
2154
2169
  "binding": {
2155
- "type": "zeebe:input",
2156
- "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"
2157
2177
  },
2178
+ "type": "String"
2179
+ },
2180
+ {
2181
+ "id": "graphql.method",
2182
+ "label": "Method",
2183
+ "optional": false,
2184
+ "value": "get",
2158
2185
  "constraints": {
2159
2186
  "notEmpty": true
2160
2187
  },
2161
- "condition": {
2162
- "property": "authenticationType",
2163
- "equals": "basic"
2164
- }
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
+ ]
2165
2204
  },
2166
2205
  {
2167
- "label": "Password",
2168
- "group": "authentication",
2169
- "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
+ },
2170
2216
  "feel": "optional",
2217
+ "group": "endpoint",
2171
2218
  "binding": {
2172
- "type": "zeebe:input",
2173
- "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"
2174
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"
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,
2175
2256
  "constraints": {
2176
2257
  "notEmpty": true
2177
2258
  },
2178
- "condition": {
2179
- "property": "authenticationType",
2180
- "equals": "basic"
2181
- }
2259
+ "feel": "optional",
2260
+ "group": "graphql",
2261
+ "binding": {
2262
+ "name": "graphql.query",
2263
+ "type": "zeebe:input"
2264
+ },
2265
+ "type": "Text"
2182
2266
  },
2183
2267
  {
2184
- "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",
2185
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",
2186
2286
  "group": "timeout",
2187
- "type": "String",
2188
- "value": "20",
2189
2287
  "binding": {
2190
- "type": "zeebe:input",
2191
- "name": "graphql.connectionTimeoutInSeconds"
2288
+ "name": "graphql.connectionTimeoutInSeconds",
2289
+ "type": "zeebe:input"
2192
2290
  },
2193
- "feel": "optional",
2194
- "optional": true,
2195
- "constraints": {
2196
- "notEmpty": false,
2197
- "pattern": {
2198
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
2199
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2200
- }
2201
- }
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"
2202
2316
  },
2203
2317
  {
2318
+ "id": "resultVariable",
2204
2319
  "label": "Result variable",
2205
2320
  "description": "Name of variable to store the response in",
2206
2321
  "group": "output",
2207
- "type": "String",
2208
2322
  "binding": {
2209
- "type": "zeebe:taskHeader",
2210
- "key": "resultVariable"
2211
- }
2323
+ "key": "resultVariable",
2324
+ "type": "zeebe:taskHeader"
2325
+ },
2326
+ "type": "String"
2212
2327
  },
2213
2328
  {
2329
+ "id": "resultExpression",
2214
2330
  "label": "Result expression",
2215
2331
  "description": "Expression to map the response into process variables",
2216
- "group": "output",
2217
- "type": "Text",
2218
2332
  "feel": "required",
2333
+ "group": "output",
2219
2334
  "binding": {
2220
- "type": "zeebe:taskHeader",
2221
- "key": "resultExpression"
2222
- }
2335
+ "key": "resultExpression",
2336
+ "type": "zeebe:taskHeader"
2337
+ },
2338
+ "type": "Text"
2223
2339
  },
2224
2340
  {
2341
+ "id": "errorExpression",
2225
2342
  "label": "Error expression",
2226
- "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>",
2227
- "group": "errors",
2228
- "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>.",
2229
2344
  "feel": "required",
2345
+ "group": "error",
2230
2346
  "binding": {
2231
- "type": "zeebe:taskHeader",
2232
- "key": "errorExpression"
2233
- }
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"
2234
2376
  }
2235
2377
  ],
2236
- "engines": {
2237
- "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+"
2238
2380
  }
2239
2381
  },
2240
2382
  {
2241
2383
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2242
- "name": "GraphQL Outbound Connector",
2384
+ "name": "GraphQL connector",
2243
2385
  "id": "io.camunda.connectors.GraphQL.v1",
2244
2386
  "description": "Execute GraphQL query",
2245
- "metadata": {
2246
- "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"
2247
2391
  },
2248
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2249
- "version": 8,
2250
2392
  "category": {
2251
2393
  "id": "connectors",
2252
2394
  "name": "Connectors"
@@ -2255,9 +2397,6 @@
2255
2397
  "elementType": {
2256
2398
  "value": "bpmn:ServiceTask"
2257
2399
  },
2258
- "engines": {
2259
- "camunda": "^8.3"
2260
- },
2261
2400
  "groups": [
2262
2401
  {
2263
2402
  "id": "authentication",
@@ -2265,7 +2404,7 @@
2265
2404
  },
2266
2405
  {
2267
2406
  "id": "endpoint",
2268
- "label": "HTTP Endpoint"
2407
+ "label": "HTTP endpoint"
2269
2408
  },
2270
2409
  {
2271
2410
  "id": "graphql",
@@ -2273,49 +2412,37 @@
2273
2412
  },
2274
2413
  {
2275
2414
  "id": "timeout",
2276
- "label": "Connection timeout"
2277
- },
2278
- {
2279
- "id": "connector",
2280
- "label": "Connector"
2415
+ "label": "Connect timeout"
2281
2416
  },
2282
2417
  {
2283
2418
  "id": "output",
2284
- "label": "Output mapping"
2419
+ "label": "Response mapping"
2285
2420
  },
2286
2421
  {
2287
- "id": "error",
2422
+ "id": "errors",
2288
2423
  "label": "Error handling"
2289
- },
2290
- {
2291
- "id": "retries",
2292
- "label": "Retries"
2293
2424
  }
2294
2425
  ],
2295
2426
  "properties": [
2296
2427
  {
2428
+ "type": "Hidden",
2297
2429
  "value": "io.camunda:connector-graphql:1",
2298
2430
  "binding": {
2299
- "property": "type",
2300
- "type": "zeebe:taskDefinition"
2301
- },
2302
- "type": "Hidden"
2431
+ "type": "zeebe:taskDefinition",
2432
+ "property": "type"
2433
+ }
2303
2434
  },
2304
2435
  {
2305
- "id": "authentication.type",
2306
2436
  "label": "Type",
2437
+ "id": "authenticationType",
2438
+ "group": "authentication",
2307
2439
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2308
2440
  "value": "noAuth",
2309
- "group": "authentication",
2310
- "binding": {
2311
- "name": "authentication.type",
2312
- "type": "zeebe:input"
2313
- },
2314
2441
  "type": "Dropdown",
2315
2442
  "choices": [
2316
2443
  {
2317
- "name": "API key",
2318
- "value": "apiKey"
2444
+ "name": "None",
2445
+ "value": "noAuth"
2319
2446
  },
2320
2447
  {
2321
2448
  "name": "Basic",
@@ -2325,250 +2452,582 @@
2325
2452
  "name": "Bearer token",
2326
2453
  "value": "bearer"
2327
2454
  },
2328
- {
2329
- "name": "None",
2330
- "value": "noAuth"
2331
- },
2332
2455
  {
2333
2456
  "name": "OAuth 2.0",
2334
2457
  "value": "oauth-client-credentials-flow"
2335
2458
  }
2336
- ]
2459
+ ],
2460
+ "binding": {
2461
+ "type": "zeebe:input",
2462
+ "name": "authentication.type"
2463
+ }
2337
2464
  },
2338
2465
  {
2339
- "id": "authentication.apiKeyLocation",
2340
- "label": "Api key location",
2341
- "description": "Choose type: Send API key in header or as query parameter.",
2342
- "optional": false,
2343
- "value": "headers",
2344
- "constraints": {
2345
- "notEmpty": true
2346
- },
2347
- "group": "authentication",
2466
+ "label": "URL",
2467
+ "group": "endpoint",
2468
+ "type": "String",
2469
+ "feel": "optional",
2348
2470
  "binding": {
2349
- "name": "authentication.apiKeyLocation",
2350
- "type": "zeebe:input"
2351
- },
2352
- "condition": {
2353
- "property": "authentication.type",
2354
- "equals": "apiKey",
2355
- "type": "simple"
2471
+ "type": "zeebe:input",
2472
+ "name": "graphql.url"
2356
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",
2357
2486
  "type": "Dropdown",
2487
+ "value": "post",
2358
2488
  "choices": [
2359
2489
  {
2360
- "name": "Headers",
2361
- "value": "headers"
2490
+ "name": "POST",
2491
+ "value": "post"
2362
2492
  },
2363
2493
  {
2364
- "name": "Query parameters",
2365
- "value": "query"
2494
+ "name": "GET",
2495
+ "value": "get"
2366
2496
  }
2367
- ]
2497
+ ],
2498
+ "binding": {
2499
+ "type": "zeebe:input",
2500
+ "name": "graphql.method"
2501
+ }
2368
2502
  },
2369
2503
  {
2370
- "id": "authentication.name",
2371
- "label": "API key name",
2504
+ "id": "headers",
2505
+ "label": "Headers",
2506
+ "group": "endpoint",
2507
+ "type": "Text",
2508
+ "feel": "required",
2509
+ "optional": true,
2510
+ "binding": {
2511
+ "type": "zeebe:input",
2512
+ "name": "graphql.headers"
2513
+ }
2514
+ },
2515
+ {
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
+ },
2372
2525
  "optional": false,
2373
2526
  "constraints": {
2374
2527
  "notEmpty": true
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",
2536
+ "binding": {
2537
+ "type": "zeebe:input",
2538
+ "name": "graphql.variables"
2375
2539
  },
2376
- "feel": "optional",
2540
+ "optional": true
2541
+ },
2542
+ {
2543
+ "label": "Bearer token",
2377
2544
  "group": "authentication",
2545
+ "type": "String",
2546
+ "feel": "optional",
2378
2547
  "binding": {
2379
- "name": "authentication.name",
2380
- "type": "zeebe:input"
2548
+ "type": "zeebe:input",
2549
+ "name": "graphql.authentication.token"
2381
2550
  },
2382
- "condition": {
2383
- "property": "authentication.type",
2384
- "equals": "apiKey",
2385
- "type": "simple"
2551
+ "constraints": {
2552
+ "notEmpty": true
2386
2553
  },
2387
- "type": "String"
2554
+ "condition": {
2555
+ "property": "authenticationType",
2556
+ "equals": "bearer"
2557
+ }
2388
2558
  },
2389
2559
  {
2390
- "id": "authentication.value",
2391
- "label": "API key value",
2392
- "optional": false,
2560
+ "label": "OAuth token endpoint",
2561
+ "description": "The OAuth token endpoint",
2562
+ "group": "authentication",
2563
+ "type": "String",
2564
+ "feel": "optional",
2565
+ "binding": {
2566
+ "type": "zeebe:input",
2567
+ "name": "authentication.oauthTokenEndpoint"
2568
+ },
2393
2569
  "constraints": {
2394
2570
  "notEmpty": true
2395
2571
  },
2396
- "feel": "optional",
2572
+ "condition": {
2573
+ "property": "authenticationType",
2574
+ "equals": "oauth-client-credentials-flow"
2575
+ }
2576
+ },
2577
+ {
2578
+ "label": "Client ID",
2579
+ "description": "Your application's client ID from the OAuth client",
2397
2580
  "group": "authentication",
2581
+ "type": "String",
2582
+ "feel": "optional",
2398
2583
  "binding": {
2399
- "name": "authentication.value",
2400
- "type": "zeebe:input"
2584
+ "type": "zeebe:input",
2585
+ "name": "authentication.clientId"
2401
2586
  },
2402
- "condition": {
2403
- "property": "authentication.type",
2404
- "equals": "apiKey",
2405
- "type": "simple"
2587
+ "constraints": {
2588
+ "notEmpty": true
2406
2589
  },
2407
- "type": "String"
2590
+ "condition": {
2591
+ "property": "authenticationType",
2592
+ "equals": "oauth-client-credentials-flow"
2593
+ }
2408
2594
  },
2409
2595
  {
2410
- "id": "authentication.username",
2411
- "label": "Username",
2412
- "optional": false,
2596
+ "label": "Client secret",
2597
+ "description": "Your application's client secret from the OAuth client",
2598
+ "group": "authentication",
2599
+ "type": "String",
2600
+ "feel": "optional",
2601
+ "binding": {
2602
+ "type": "zeebe:input",
2603
+ "name": "authentication.clientSecret"
2604
+ },
2413
2605
  "constraints": {
2414
2606
  "notEmpty": true
2415
2607
  },
2416
- "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)",
2417
2616
  "group": "authentication",
2617
+ "type": "String",
2618
+ "feel": "optional",
2619
+ "optional": true,
2418
2620
  "binding": {
2419
- "name": "authentication.username",
2420
- "type": "zeebe:input"
2621
+ "type": "zeebe:input",
2622
+ "name": "authentication.scopes"
2421
2623
  },
2422
2624
  "condition": {
2423
- "property": "authentication.type",
2424
- "equals": "basic",
2425
- "type": "simple"
2426
- },
2427
- "type": "String"
2625
+ "property": "authenticationType",
2626
+ "equals": "oauth-client-credentials-flow"
2627
+ }
2428
2628
  },
2429
2629
  {
2430
- "id": "authentication.password",
2431
- "label": "Password",
2432
- "optional": false,
2433
- "constraints": {
2434
- "notEmpty": true
2435
- },
2436
- "feel": "optional",
2630
+ "label": "Audience",
2631
+ "description": "The unique identifier of the target API you want to access",
2437
2632
  "group": "authentication",
2633
+ "type": "String",
2634
+ "feel": "optional",
2635
+ "optional": true,
2438
2636
  "binding": {
2439
- "name": "authentication.password",
2440
- "type": "zeebe:input"
2637
+ "type": "zeebe:input",
2638
+ "name": "authentication.audience"
2441
2639
  },
2442
2640
  "condition": {
2443
- "property": "authentication.type",
2444
- "equals": "basic",
2445
- "type": "simple"
2446
- },
2447
- "type": "String"
2641
+ "property": "authenticationType",
2642
+ "equals": "oauth-client-credentials-flow"
2643
+ }
2448
2644
  },
2449
2645
  {
2450
- "id": "authentication.token",
2451
- "label": "Bearer token",
2452
- "optional": false,
2646
+ "label": "Client authentication",
2647
+ "id": "authentication.clientAuthentication",
2648
+ "group": "authentication",
2649
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
2650
+ "value": "basicAuthHeader",
2651
+ "type": "Dropdown",
2652
+ "choices": [
2653
+ {
2654
+ "name": "Send client credentials in body",
2655
+ "value": "credentialsBody"
2656
+ },
2657
+ {
2658
+ "name": "Send as Basic Auth header",
2659
+ "value": "basicAuthHeader"
2660
+ }
2661
+ ],
2662
+ "binding": {
2663
+ "type": "zeebe:input",
2664
+ "name": "authentication.clientAuthentication"
2665
+ },
2666
+ "condition": {
2667
+ "property": "authenticationType",
2668
+ "equals": "oauth-client-credentials-flow"
2669
+ }
2670
+ },
2671
+ {
2672
+ "label": "Username",
2673
+ "group": "authentication",
2674
+ "type": "String",
2675
+ "feel": "optional",
2676
+ "binding": {
2677
+ "type": "zeebe:input",
2678
+ "name": "authentication.username"
2679
+ },
2453
2680
  "constraints": {
2454
2681
  "notEmpty": true
2455
2682
  },
2456
- "feel": "optional",
2683
+ "condition": {
2684
+ "property": "authenticationType",
2685
+ "equals": "basic"
2686
+ }
2687
+ },
2688
+ {
2689
+ "label": "Password",
2457
2690
  "group": "authentication",
2691
+ "type": "String",
2692
+ "feel": "optional",
2458
2693
  "binding": {
2459
- "name": "authentication.token",
2460
- "type": "zeebe:input"
2694
+ "type": "zeebe:input",
2695
+ "name": "authentication.password"
2696
+ },
2697
+ "constraints": {
2698
+ "notEmpty": true
2461
2699
  },
2462
2700
  "condition": {
2463
- "property": "authentication.type",
2464
- "equals": "bearer",
2465
- "type": "simple"
2701
+ "property": "authenticationType",
2702
+ "equals": "basic"
2703
+ }
2704
+ },
2705
+ {
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"
2466
2714
  },
2467
- "type": "String"
2715
+ "feel": "optional",
2716
+ "optional": true,
2717
+ "constraints": {
2718
+ "notEmpty": false,
2719
+ "pattern": {
2720
+ "value": "^(=|([0-9]+|secrets\\..+)$)",
2721
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2722
+ }
2723
+ }
2468
2724
  },
2469
2725
  {
2470
- "id": "authentication.oauthTokenEndpoint",
2471
- "label": "OAuth 2.0 token endpoint",
2472
- "description": "The OAuth token endpoint",
2473
- "optional": false,
2726
+ "label": "Result variable",
2727
+ "description": "Name of variable to store the response in",
2728
+ "group": "output",
2729
+ "type": "String",
2730
+ "binding": {
2731
+ "type": "zeebe:taskHeader",
2732
+ "key": "resultVariable"
2733
+ }
2734
+ },
2735
+ {
2736
+ "label": "Result expression",
2737
+ "description": "Expression to map the response into process variables",
2738
+ "group": "output",
2739
+ "type": "Text",
2740
+ "feel": "required",
2741
+ "binding": {
2742
+ "type": "zeebe:taskHeader",
2743
+ "key": "resultExpression"
2744
+ }
2745
+ },
2746
+ {
2747
+ "label": "Error expression",
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",
2751
+ "feel": "required",
2752
+ "binding": {
2753
+ "type": "zeebe:taskHeader",
2754
+ "key": "errorExpression"
2755
+ }
2756
+ }
2757
+ ],
2758
+ "engines": {
2759
+ "camunda": "^8.2"
2760
+ }
2761
+ },
2762
+ {
2763
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2764
+ "name": "GraphQL connector",
2765
+ "id": "io.camunda.connectors.GraphQL.v1",
2766
+ "description": "Execute GraphQL query",
2767
+ "version": 2,
2768
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
2769
+ "icon": {
2770
+ "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
2771
+ },
2772
+ "category": {
2773
+ "id": "connectors",
2774
+ "name": "Connectors"
2775
+ },
2776
+ "appliesTo": ["bpmn:Task"],
2777
+ "elementType": {
2778
+ "value": "bpmn:ServiceTask"
2779
+ },
2780
+ "groups": [
2781
+ {
2782
+ "id": "authentication",
2783
+ "label": "Authentication"
2784
+ },
2785
+ {
2786
+ "id": "endpoint",
2787
+ "label": "HTTP endpoint"
2788
+ },
2789
+ {
2790
+ "id": "graphql",
2791
+ "label": "GraphQL query"
2792
+ },
2793
+ {
2794
+ "id": "timeout",
2795
+ "label": "Connect timeout"
2796
+ },
2797
+ {
2798
+ "id": "output",
2799
+ "label": "Response mapping"
2800
+ },
2801
+ {
2802
+ "id": "errors",
2803
+ "label": "Error handling"
2804
+ }
2805
+ ],
2806
+ "properties": [
2807
+ {
2808
+ "type": "Hidden",
2809
+ "value": "io.camunda:connector-graphql:1",
2810
+ "binding": {
2811
+ "type": "zeebe:taskDefinition",
2812
+ "property": "type"
2813
+ }
2814
+ },
2815
+ {
2816
+ "label": "Type",
2817
+ "id": "authenticationType",
2818
+ "group": "authentication",
2819
+ "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2820
+ "value": "noAuth",
2821
+ "type": "Dropdown",
2822
+ "choices": [
2823
+ {
2824
+ "name": "None",
2825
+ "value": "noAuth"
2826
+ },
2827
+ {
2828
+ "name": "Basic",
2829
+ "value": "basic"
2830
+ },
2831
+ {
2832
+ "name": "Bearer token",
2833
+ "value": "bearer"
2834
+ },
2835
+ {
2836
+ "name": "OAuth 2.0",
2837
+ "value": "oauth-client-credentials-flow"
2838
+ }
2839
+ ],
2840
+ "binding": {
2841
+ "type": "zeebe:input",
2842
+ "name": "authentication.type"
2843
+ }
2844
+ },
2845
+ {
2846
+ "label": "URL",
2847
+ "group": "endpoint",
2848
+ "type": "String",
2849
+ "feel": "optional",
2850
+ "binding": {
2851
+ "type": "zeebe:input",
2852
+ "name": "graphql.url"
2853
+ },
2474
2854
  "constraints": {
2475
2855
  "notEmpty": true,
2476
2856
  "pattern": {
2477
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2478
- "message": "Must be a http(s) URL"
2857
+ "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
2858
+ "message": "Must be a http(s) URL."
2859
+ }
2860
+ }
2861
+ },
2862
+ {
2863
+ "id": "method",
2864
+ "label": "Method",
2865
+ "group": "endpoint",
2866
+ "type": "Dropdown",
2867
+ "value": "post",
2868
+ "choices": [
2869
+ {
2870
+ "name": "POST",
2871
+ "value": "post"
2872
+ },
2873
+ {
2874
+ "name": "GET",
2875
+ "value": "get"
2479
2876
  }
2877
+ ],
2878
+ "binding": {
2879
+ "type": "zeebe:input",
2880
+ "name": "graphql.method"
2881
+ }
2882
+ },
2883
+ {
2884
+ "id": "headers",
2885
+ "label": "Headers",
2886
+ "group": "endpoint",
2887
+ "type": "Text",
2888
+ "feel": "required",
2889
+ "optional": true,
2890
+ "binding": {
2891
+ "type": "zeebe:input",
2892
+ "name": "graphql.headers"
2893
+ }
2894
+ },
2895
+ {
2896
+ "label": "Query/Mutation",
2897
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2898
+ "group": "graphql",
2899
+ "type": "Text",
2900
+ "language": "graphql",
2901
+ "binding": {
2902
+ "type": "zeebe:input",
2903
+ "name": "graphql.query"
2480
2904
  },
2481
- "feel": "optional",
2905
+ "optional": false,
2906
+ "constraints": {
2907
+ "notEmpty": true
2908
+ }
2909
+ },
2910
+ {
2911
+ "label": "Variables",
2912
+ "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
2913
+ "group": "graphql",
2914
+ "type": "Text",
2915
+ "feel": "required",
2916
+ "binding": {
2917
+ "type": "zeebe:input",
2918
+ "name": "graphql.variables"
2919
+ },
2920
+ "optional": true
2921
+ },
2922
+ {
2923
+ "label": "Bearer token",
2482
2924
  "group": "authentication",
2925
+ "type": "String",
2926
+ "feel": "optional",
2483
2927
  "binding": {
2484
- "name": "authentication.oauthTokenEndpoint",
2485
- "type": "zeebe:input"
2928
+ "type": "zeebe:input",
2929
+ "name": "graphql.authentication.token"
2486
2930
  },
2487
- "condition": {
2488
- "property": "authentication.type",
2489
- "equals": "oauth-client-credentials-flow",
2490
- "type": "simple"
2931
+ "constraints": {
2932
+ "notEmpty": true
2491
2933
  },
2492
- "type": "String"
2934
+ "condition": {
2935
+ "property": "authenticationType",
2936
+ "equals": "bearer"
2937
+ }
2493
2938
  },
2494
2939
  {
2495
- "id": "authentication.clientId",
2496
- "label": "Client ID",
2497
- "description": "Your application's client ID from the OAuth client",
2498
- "optional": false,
2940
+ "label": "OAuth token endpoint",
2941
+ "description": "The OAuth token endpoint",
2942
+ "group": "authentication",
2943
+ "type": "String",
2944
+ "feel": "optional",
2945
+ "binding": {
2946
+ "type": "zeebe:input",
2947
+ "name": "authentication.oauthTokenEndpoint"
2948
+ },
2499
2949
  "constraints": {
2500
2950
  "notEmpty": true
2501
2951
  },
2502
- "feel": "optional",
2952
+ "condition": {
2953
+ "property": "authenticationType",
2954
+ "equals": "oauth-client-credentials-flow"
2955
+ }
2956
+ },
2957
+ {
2958
+ "label": "Client ID",
2959
+ "description": "Your application's client ID from the OAuth client",
2503
2960
  "group": "authentication",
2961
+ "type": "String",
2962
+ "feel": "optional",
2504
2963
  "binding": {
2505
- "name": "authentication.clientId",
2506
- "type": "zeebe:input"
2964
+ "type": "zeebe:input",
2965
+ "name": "authentication.clientId"
2507
2966
  },
2508
- "condition": {
2509
- "property": "authentication.type",
2510
- "equals": "oauth-client-credentials-flow",
2511
- "type": "simple"
2967
+ "constraints": {
2968
+ "notEmpty": true
2512
2969
  },
2513
- "type": "String"
2970
+ "condition": {
2971
+ "property": "authenticationType",
2972
+ "equals": "oauth-client-credentials-flow"
2973
+ }
2514
2974
  },
2515
2975
  {
2516
- "id": "authentication.clientSecret",
2517
2976
  "label": "Client secret",
2518
2977
  "description": "Your application's client secret from the OAuth client",
2519
- "optional": false,
2520
- "constraints": {
2521
- "notEmpty": true
2522
- },
2523
- "feel": "optional",
2524
2978
  "group": "authentication",
2979
+ "type": "String",
2980
+ "feel": "optional",
2525
2981
  "binding": {
2526
- "name": "authentication.clientSecret",
2527
- "type": "zeebe:input"
2982
+ "type": "zeebe:input",
2983
+ "name": "authentication.clientSecret"
2528
2984
  },
2529
- "condition": {
2530
- "property": "authentication.type",
2531
- "equals": "oauth-client-credentials-flow",
2532
- "type": "simple"
2985
+ "constraints": {
2986
+ "notEmpty": true
2533
2987
  },
2534
- "type": "String"
2988
+ "condition": {
2989
+ "property": "authenticationType",
2990
+ "equals": "oauth-client-credentials-flow"
2991
+ }
2535
2992
  },
2536
2993
  {
2537
- "id": "authentication.audience",
2538
- "label": "Audience",
2539
- "description": "The unique identifier of the target API you want to access",
2540
- "optional": true,
2541
- "feel": "optional",
2994
+ "label": "Scopes",
2995
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2542
2996
  "group": "authentication",
2997
+ "type": "String",
2998
+ "feel": "optional",
2999
+ "optional": true,
2543
3000
  "binding": {
2544
- "name": "authentication.audience",
2545
- "type": "zeebe:input"
3001
+ "type": "zeebe:input",
3002
+ "name": "authentication.scopes"
2546
3003
  },
2547
3004
  "condition": {
2548
- "property": "authentication.type",
2549
- "equals": "oauth-client-credentials-flow",
2550
- "type": "simple"
2551
- },
2552
- "type": "String"
3005
+ "property": "authenticationType",
3006
+ "equals": "oauth-client-credentials-flow"
3007
+ }
2553
3008
  },
2554
3009
  {
2555
- "id": "authentication.clientAuthentication",
2556
- "label": "Client authentication",
2557
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2558
- "optional": false,
2559
- "constraints": {
2560
- "notEmpty": true
2561
- },
3010
+ "label": "Audience",
3011
+ "description": "The unique identifier of the target API you want to access",
2562
3012
  "group": "authentication",
3013
+ "type": "String",
3014
+ "feel": "optional",
3015
+ "optional": true,
2563
3016
  "binding": {
2564
- "name": "authentication.clientAuthentication",
2565
- "type": "zeebe:input"
3017
+ "type": "zeebe:input",
3018
+ "name": "authentication.audience"
2566
3019
  },
2567
3020
  "condition": {
2568
- "property": "authentication.type",
2569
- "equals": "oauth-client-credentials-flow",
2570
- "type": "simple"
2571
- },
3021
+ "property": "authenticationType",
3022
+ "equals": "oauth-client-credentials-flow"
3023
+ }
3024
+ },
3025
+ {
3026
+ "label": "Client authentication",
3027
+ "id": "authentication.clientAuthentication",
3028
+ "group": "authentication",
3029
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
3030
+ "value": "basicAuthHeader",
2572
3031
  "type": "Dropdown",
2573
3032
  "choices": [
2574
3033
  {
@@ -2579,226 +3038,105 @@
2579
3038
  "name": "Send as Basic Auth header",
2580
3039
  "value": "basicAuthHeader"
2581
3040
  }
2582
- ]
2583
- },
2584
- {
2585
- "id": "authentication.scopes",
2586
- "label": "Scopes",
2587
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2588
- "optional": true,
2589
- "feel": "optional",
2590
- "group": "authentication",
3041
+ ],
2591
3042
  "binding": {
2592
- "name": "authentication.scopes",
2593
- "type": "zeebe:input"
3043
+ "type": "zeebe:input",
3044
+ "name": "authentication.clientAuthentication"
2594
3045
  },
2595
3046
  "condition": {
2596
- "property": "authentication.type",
2597
- "equals": "oauth-client-credentials-flow",
2598
- "type": "simple"
2599
- },
2600
- "type": "String"
2601
- },
2602
- {
2603
- "id": "graphql.method",
2604
- "label": "Method",
2605
- "optional": false,
2606
- "value": "get",
2607
- "constraints": {
2608
- "notEmpty": true
2609
- },
2610
- "group": "endpoint",
2611
- "binding": {
2612
- "name": "graphql.method",
2613
- "type": "zeebe:input"
2614
- },
2615
- "type": "Dropdown",
2616
- "choices": [
2617
- {
2618
- "name": "GET",
2619
- "value": "get"
2620
- },
2621
- {
2622
- "name": "POST",
2623
- "value": "post"
2624
- }
2625
- ]
3047
+ "property": "authenticationType",
3048
+ "equals": "oauth-client-credentials-flow"
3049
+ }
2626
3050
  },
2627
3051
  {
2628
- "id": "graphql.url",
2629
- "label": "URL",
2630
- "optional": false,
2631
- "constraints": {
2632
- "notEmpty": true,
2633
- "pattern": {
2634
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2635
- "message": "Must be a http(s) URL"
2636
- }
2637
- },
3052
+ "label": "Username",
3053
+ "group": "authentication",
3054
+ "type": "String",
2638
3055
  "feel": "optional",
2639
- "group": "endpoint",
2640
3056
  "binding": {
2641
- "name": "graphql.url",
2642
- "type": "zeebe:input"
3057
+ "type": "zeebe:input",
3058
+ "name": "authentication.username"
2643
3059
  },
2644
- "type": "String"
2645
- },
2646
- {
2647
- "id": "graphql.headers",
2648
- "label": "Headers",
2649
- "description": "Map of HTTP headers to add to the request",
2650
- "optional": true,
2651
- "feel": "required",
2652
- "group": "endpoint",
2653
- "binding": {
2654
- "name": "graphql.headers",
2655
- "type": "zeebe:input"
3060
+ "constraints": {
3061
+ "notEmpty": true
2656
3062
  },
2657
- "type": "String"
3063
+ "condition": {
3064
+ "property": "authenticationType",
3065
+ "equals": "basic"
3066
+ }
2658
3067
  },
2659
3068
  {
2660
- "id": "graphql.storeResponse",
2661
- "label": "Store response",
2662
- "description": "Store the response as a document in the document store",
2663
- "optional": false,
2664
- "value": false,
2665
- "feel": "static",
2666
- "group": "endpoint",
3069
+ "label": "Password",
3070
+ "group": "authentication",
3071
+ "type": "String",
3072
+ "feel": "optional",
2667
3073
  "binding": {
2668
- "name": "graphql.storeResponse",
2669
- "type": "zeebe:input"
3074
+ "type": "zeebe:input",
3075
+ "name": "authentication.password"
2670
3076
  },
2671
- "type": "Boolean"
2672
- },
2673
- {
2674
- "id": "graphql.query",
2675
- "label": "Query/Mutation",
2676
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2677
- "optional": false,
2678
3077
  "constraints": {
2679
3078
  "notEmpty": true
2680
3079
  },
2681
- "feel": "optional",
2682
- "group": "graphql",
2683
- "binding": {
2684
- "name": "graphql.query",
2685
- "type": "zeebe:input"
2686
- },
2687
- "type": "Text"
2688
- },
2689
- {
2690
- "id": "graphql.variables",
2691
- "label": "Variables",
2692
- "optional": true,
2693
- "feel": "required",
2694
- "group": "graphql",
2695
- "binding": {
2696
- "name": "graphql.variables",
2697
- "type": "zeebe:input"
2698
- },
2699
- "type": "String"
3080
+ "condition": {
3081
+ "property": "authenticationType",
3082
+ "equals": "basic"
3083
+ }
2700
3084
  },
2701
3085
  {
2702
- "id": "graphql.connectionTimeoutInSeconds",
2703
- "label": "Connection timeout in seconds",
3086
+ "label": "Connection timeout",
2704
3087
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2705
- "optional": true,
2706
- "value": 20,
2707
- "feel": "static",
2708
3088
  "group": "timeout",
3089
+ "type": "String",
3090
+ "value": "20",
2709
3091
  "binding": {
2710
- "name": "graphql.connectionTimeoutInSeconds",
2711
- "type": "zeebe:input"
2712
- },
2713
- "type": "Number"
2714
- },
2715
- {
2716
- "id": "version",
2717
- "label": "Version",
2718
- "description": "Version of the element template",
2719
- "value": "8",
2720
- "group": "connector",
2721
- "binding": {
2722
- "key": "elementTemplateVersion",
2723
- "type": "zeebe:taskHeader"
2724
- },
2725
- "type": "Hidden"
2726
- },
2727
- {
2728
- "id": "id",
2729
- "label": "ID",
2730
- "description": "ID of the element template",
2731
- "value": "io.camunda.connectors.GraphQL.v1",
2732
- "group": "connector",
2733
- "binding": {
2734
- "key": "elementTemplateId",
2735
- "type": "zeebe:taskHeader"
3092
+ "type": "zeebe:input",
3093
+ "name": "graphql.connectionTimeoutInSeconds"
2736
3094
  },
2737
- "type": "Hidden"
3095
+ "feel": "optional",
3096
+ "optional": true,
3097
+ "constraints": {
3098
+ "notEmpty": false,
3099
+ "pattern": {
3100
+ "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
3101
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
3102
+ }
3103
+ }
2738
3104
  },
2739
3105
  {
2740
- "id": "resultVariable",
2741
3106
  "label": "Result variable",
2742
3107
  "description": "Name of variable to store the response in",
2743
3108
  "group": "output",
3109
+ "type": "String",
2744
3110
  "binding": {
2745
- "key": "resultVariable",
2746
- "type": "zeebe:taskHeader"
2747
- },
2748
- "type": "String"
3111
+ "type": "zeebe:taskHeader",
3112
+ "key": "resultVariable"
3113
+ }
2749
3114
  },
2750
3115
  {
2751
- "id": "resultExpression",
2752
3116
  "label": "Result expression",
2753
3117
  "description": "Expression to map the response into process variables",
2754
- "feel": "required",
2755
3118
  "group": "output",
3119
+ "type": "Text",
3120
+ "feel": "required",
2756
3121
  "binding": {
2757
- "key": "resultExpression",
2758
- "type": "zeebe:taskHeader"
2759
- },
2760
- "type": "Text"
3122
+ "type": "zeebe:taskHeader",
3123
+ "key": "resultExpression"
3124
+ }
2761
3125
  },
2762
3126
  {
2763
- "id": "errorExpression",
2764
3127
  "label": "Error expression",
2765
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
3128
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
3129
+ "group": "errors",
3130
+ "type": "Text",
2766
3131
  "feel": "required",
2767
- "group": "error",
2768
- "binding": {
2769
- "key": "errorExpression",
2770
- "type": "zeebe:taskHeader"
2771
- },
2772
- "type": "Text"
2773
- },
2774
- {
2775
- "id": "retryCount",
2776
- "label": "Retries",
2777
- "description": "Number of retries",
2778
- "value": "3",
2779
- "feel": "optional",
2780
- "group": "retries",
2781
- "binding": {
2782
- "property": "retries",
2783
- "type": "zeebe:taskDefinition"
2784
- },
2785
- "type": "String"
2786
- },
2787
- {
2788
- "id": "retryBackoff",
2789
- "label": "Retry backoff",
2790
- "description": "ISO-8601 duration to wait between retries",
2791
- "value": "PT0S",
2792
- "group": "retries",
2793
3132
  "binding": {
2794
- "key": "retryBackoff",
2795
- "type": "zeebe:taskHeader"
2796
- },
2797
- "type": "String"
3133
+ "type": "zeebe:taskHeader",
3134
+ "key": "errorExpression"
3135
+ }
2798
3136
  }
2799
3137
  ],
2800
- "icon": {
2801
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
3138
+ "engines": {
3139
+ "camunda": "^8.2"
2802
3140
  }
2803
3141
  },
2804
3142
  {
@@ -2806,11 +3144,20 @@
2806
3144
  "name": "GraphQL Outbound Connector",
2807
3145
  "id": "io.camunda.connectors.GraphQL.v1",
2808
3146
  "description": "Execute GraphQL query",
2809
- "metadata": {
2810
- "keywords": []
2811
- },
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
+ ],
2812
3159
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2813
- "version": 7,
3160
+ "version": 9,
2814
3161
  "category": {
2815
3162
  "id": "connectors",
2816
3163
  "name": "Connectors"
@@ -2820,7 +3167,7 @@
2820
3167
  "value": "bpmn:ServiceTask"
2821
3168
  },
2822
3169
  "engines": {
2823
- "camunda": "^8.3"
3170
+ "camunda": "^8.9"
2824
3171
  },
2825
3172
  "groups": [
2826
3173
  {
@@ -2839,6 +3186,10 @@
2839
3186
  "id": "timeout",
2840
3187
  "label": "Connection timeout"
2841
3188
  },
3189
+ {
3190
+ "id": "connector",
3191
+ "label": "Connector"
3192
+ },
2842
3193
  {
2843
3194
  "id": "output",
2844
3195
  "label": "Output mapping"
@@ -3073,648 +3424,306 @@
3073
3424
  "type": "String"
3074
3425
  },
3075
3426
  {
3076
- "id": "authentication.clientSecret",
3077
- "label": "Client secret",
3078
- "description": "Your application's client secret from the OAuth client",
3079
- "optional": false,
3080
- "constraints": {
3081
- "notEmpty": true
3082
- },
3083
- "feel": "optional",
3084
- "group": "authentication",
3085
- "binding": {
3086
- "name": "authentication.clientSecret",
3087
- "type": "zeebe:input"
3088
- },
3089
- "condition": {
3090
- "property": "authentication.type",
3091
- "equals": "oauth-client-credentials-flow",
3092
- "type": "simple"
3093
- },
3094
- "type": "String"
3095
- },
3096
- {
3097
- "id": "authentication.audience",
3098
- "label": "Audience",
3099
- "description": "The unique identifier of the target API you want to access",
3100
- "optional": true,
3101
- "feel": "optional",
3102
- "group": "authentication",
3103
- "binding": {
3104
- "name": "authentication.audience",
3105
- "type": "zeebe:input"
3106
- },
3107
- "condition": {
3108
- "property": "authentication.type",
3109
- "equals": "oauth-client-credentials-flow",
3110
- "type": "simple"
3111
- },
3112
- "type": "String"
3113
- },
3114
- {
3115
- "id": "authentication.clientAuthentication",
3116
- "label": "Client authentication",
3117
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
3118
- "optional": false,
3119
- "constraints": {
3120
- "notEmpty": true
3121
- },
3122
- "group": "authentication",
3123
- "binding": {
3124
- "name": "authentication.clientAuthentication",
3125
- "type": "zeebe:input"
3126
- },
3127
- "condition": {
3128
- "property": "authentication.type",
3129
- "equals": "oauth-client-credentials-flow",
3130
- "type": "simple"
3131
- },
3132
- "type": "Dropdown",
3133
- "choices": [
3134
- {
3135
- "name": "Send client credentials in body",
3136
- "value": "credentialsBody"
3137
- },
3138
- {
3139
- "name": "Send as Basic Auth header",
3140
- "value": "basicAuthHeader"
3141
- }
3142
- ]
3143
- },
3144
- {
3145
- "id": "authentication.scopes",
3146
- "label": "Scopes",
3147
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
3148
- "optional": true,
3149
- "feel": "optional",
3150
- "group": "authentication",
3151
- "binding": {
3152
- "name": "authentication.scopes",
3153
- "type": "zeebe:input"
3154
- },
3155
- "condition": {
3156
- "property": "authentication.type",
3157
- "equals": "oauth-client-credentials-flow",
3158
- "type": "simple"
3159
- },
3160
- "type": "String"
3161
- },
3162
- {
3163
- "id": "graphql.method",
3164
- "label": "Method",
3165
- "optional": false,
3166
- "value": "get",
3167
- "constraints": {
3168
- "notEmpty": true
3169
- },
3170
- "group": "endpoint",
3171
- "binding": {
3172
- "name": "graphql.method",
3173
- "type": "zeebe:input"
3174
- },
3175
- "type": "Dropdown",
3176
- "choices": [
3177
- {
3178
- "name": "GET",
3179
- "value": "get"
3180
- },
3181
- {
3182
- "name": "POST",
3183
- "value": "post"
3184
- }
3185
- ]
3186
- },
3187
- {
3188
- "id": "graphql.url",
3189
- "label": "URL",
3190
- "optional": false,
3191
- "constraints": {
3192
- "notEmpty": true,
3193
- "pattern": {
3194
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
3195
- "message": "Must be a http(s) URL"
3196
- }
3197
- },
3198
- "feel": "optional",
3199
- "group": "endpoint",
3200
- "binding": {
3201
- "name": "graphql.url",
3202
- "type": "zeebe:input"
3203
- },
3204
- "type": "String"
3205
- },
3206
- {
3207
- "id": "graphql.headers",
3208
- "label": "Headers",
3209
- "description": "Map of HTTP headers to add to the request",
3210
- "optional": true,
3211
- "feel": "required",
3212
- "group": "endpoint",
3213
- "binding": {
3214
- "name": "graphql.headers",
3215
- "type": "zeebe:input"
3216
- },
3217
- "type": "String"
3218
- },
3219
- {
3220
- "id": "graphql.storeResponse",
3221
- "label": "Store response",
3222
- "description": "Store the response as a document in the document store",
3223
- "optional": false,
3224
- "value": false,
3225
- "feel": "static",
3226
- "group": "endpoint",
3227
- "binding": {
3228
- "name": "graphql.storeResponse",
3229
- "type": "zeebe:input"
3230
- },
3231
- "type": "Boolean"
3232
- },
3233
- {
3234
- "id": "graphql.query",
3235
- "label": "Query/Mutation",
3236
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
3237
- "optional": false,
3238
- "constraints": {
3239
- "notEmpty": true
3240
- },
3241
- "feel": "optional",
3242
- "group": "graphql",
3243
- "binding": {
3244
- "name": "graphql.query",
3245
- "type": "zeebe:input"
3246
- },
3247
- "type": "Text"
3248
- },
3249
- {
3250
- "id": "graphql.variables",
3251
- "label": "Variables",
3252
- "optional": true,
3253
- "feel": "required",
3254
- "group": "graphql",
3255
- "binding": {
3256
- "name": "graphql.variables",
3257
- "type": "zeebe:input"
3258
- },
3259
- "type": "String"
3260
- },
3261
- {
3262
- "id": "graphql.connectionTimeoutInSeconds",
3263
- "label": "Connection timeout in seconds",
3264
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
3265
- "optional": true,
3266
- "value": 20,
3267
- "feel": "static",
3268
- "group": "timeout",
3269
- "binding": {
3270
- "name": "graphql.connectionTimeoutInSeconds",
3271
- "type": "zeebe:input"
3272
- },
3273
- "type": "Number"
3274
- },
3275
- {
3276
- "id": "resultVariable",
3277
- "label": "Result variable",
3278
- "description": "Name of variable to store the response in",
3279
- "group": "output",
3280
- "binding": {
3281
- "key": "resultVariable",
3282
- "type": "zeebe:taskHeader"
3283
- },
3284
- "type": "String"
3285
- },
3286
- {
3287
- "id": "resultExpression",
3288
- "label": "Result expression",
3289
- "description": "Expression to map the response into process variables",
3290
- "feel": "required",
3291
- "group": "output",
3292
- "binding": {
3293
- "key": "resultExpression",
3294
- "type": "zeebe:taskHeader"
3295
- },
3296
- "type": "Text"
3297
- },
3298
- {
3299
- "id": "errorExpression",
3300
- "label": "Error expression",
3301
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
3302
- "feel": "required",
3303
- "group": "error",
3304
- "binding": {
3305
- "key": "errorExpression",
3306
- "type": "zeebe:taskHeader"
3307
- },
3308
- "type": "Text"
3309
- },
3310
- {
3311
- "id": "retryCount",
3312
- "label": "Retries",
3313
- "description": "Number of retries",
3314
- "value": "3",
3315
- "feel": "optional",
3316
- "group": "retries",
3317
- "binding": {
3318
- "property": "retries",
3319
- "type": "zeebe:taskDefinition"
3320
- },
3321
- "type": "String"
3322
- },
3323
- {
3324
- "id": "retryBackoff",
3325
- "label": "Retry backoff",
3326
- "description": "ISO-8601 duration to wait between retries",
3327
- "value": "PT0S",
3328
- "group": "retries",
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",
3435
+ "group": "authentication",
3329
3436
  "binding": {
3330
- "key": "retryBackoff",
3331
- "type": "zeebe:taskHeader"
3437
+ "name": "authentication.clientSecret",
3438
+ "type": "zeebe:input"
3439
+ },
3440
+ "condition": {
3441
+ "property": "authentication.type",
3442
+ "equals": "oauth-client-credentials-flow",
3443
+ "type": "simple"
3332
3444
  },
3333
3445
  "type": "String"
3334
- }
3335
- ],
3336
- "icon": {
3337
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
3338
- }
3339
- },
3340
- {
3341
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3342
- "name": "GraphQL connector",
3343
- "id": "io.camunda.connectors.GraphQL.v1",
3344
- "description": "Execute GraphQL query",
3345
- "version": 2,
3346
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
3347
- "icon": {
3348
- "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
3349
- },
3350
- "category": {
3351
- "id": "connectors",
3352
- "name": "Connectors"
3353
- },
3354
- "appliesTo": ["bpmn:Task"],
3355
- "elementType": {
3356
- "value": "bpmn:ServiceTask"
3357
- },
3358
- "groups": [
3359
- {
3360
- "id": "authentication",
3361
- "label": "Authentication"
3362
- },
3363
- {
3364
- "id": "endpoint",
3365
- "label": "HTTP endpoint"
3366
- },
3367
- {
3368
- "id": "graphql",
3369
- "label": "GraphQL query"
3370
- },
3371
- {
3372
- "id": "timeout",
3373
- "label": "Connect timeout"
3374
- },
3375
- {
3376
- "id": "output",
3377
- "label": "Response mapping"
3378
3446
  },
3379
3447
  {
3380
- "id": "errors",
3381
- "label": "Error handling"
3382
- }
3383
- ],
3384
- "properties": [
3385
- {
3386
- "type": "Hidden",
3387
- "value": "io.camunda:connector-graphql:1",
3448
+ "id": "authentication.audience",
3449
+ "label": "Audience",
3450
+ "description": "The unique identifier of the target API you want to access",
3451
+ "optional": true,
3452
+ "feel": "optional",
3453
+ "group": "authentication",
3388
3454
  "binding": {
3389
- "type": "zeebe:taskDefinition",
3390
- "property": "type"
3391
- }
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"
3392
3464
  },
3393
3465
  {
3394
- "label": "Type",
3395
- "id": "authenticationType",
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
+ },
3396
3473
  "group": "authentication",
3397
- "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
3398
- "value": "noAuth",
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
+ },
3399
3483
  "type": "Dropdown",
3400
3484
  "choices": [
3401
3485
  {
3402
- "name": "None",
3403
- "value": "noAuth"
3404
- },
3405
- {
3406
- "name": "Basic",
3407
- "value": "basic"
3408
- },
3409
- {
3410
- "name": "Bearer token",
3411
- "value": "bearer"
3486
+ "name": "Send client credentials in body",
3487
+ "value": "credentialsBody"
3412
3488
  },
3413
3489
  {
3414
- "name": "OAuth 2.0",
3415
- "value": "oauth-client-credentials-flow"
3490
+ "name": "Send as Basic Auth header",
3491
+ "value": "basicAuthHeader"
3416
3492
  }
3417
- ],
3418
- "binding": {
3419
- "type": "zeebe:input",
3420
- "name": "authentication.type"
3421
- }
3493
+ ]
3422
3494
  },
3423
3495
  {
3424
- "label": "URL",
3425
- "group": "endpoint",
3426
- "type": "String",
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,
3427
3500
  "feel": "optional",
3501
+ "group": "authentication",
3428
3502
  "binding": {
3429
- "type": "zeebe:input",
3430
- "name": "graphql.url"
3503
+ "name": "authentication.scopes",
3504
+ "type": "zeebe:input"
3431
3505
  },
3432
- "constraints": {
3433
- "notEmpty": true,
3434
- "pattern": {
3435
- "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
3436
- "message": "Must be a http(s) URL."
3437
- }
3438
- }
3506
+ "condition": {
3507
+ "property": "authentication.type",
3508
+ "equals": "oauth-client-credentials-flow",
3509
+ "type": "simple"
3510
+ },
3511
+ "type": "String"
3439
3512
  },
3440
3513
  {
3441
- "id": "method",
3514
+ "id": "graphql.method",
3442
3515
  "label": "Method",
3516
+ "optional": false,
3517
+ "value": "get",
3518
+ "constraints": {
3519
+ "notEmpty": true
3520
+ },
3443
3521
  "group": "endpoint",
3522
+ "binding": {
3523
+ "name": "graphql.method",
3524
+ "type": "zeebe:input"
3525
+ },
3444
3526
  "type": "Dropdown",
3445
- "value": "post",
3446
3527
  "choices": [
3447
- {
3448
- "name": "POST",
3449
- "value": "post"
3450
- },
3451
3528
  {
3452
3529
  "name": "GET",
3453
3530
  "value": "get"
3531
+ },
3532
+ {
3533
+ "name": "POST",
3534
+ "value": "post"
3454
3535
  }
3455
- ],
3456
- "binding": {
3457
- "type": "zeebe:input",
3458
- "name": "graphql.method"
3459
- }
3460
- },
3461
- {
3462
- "id": "headers",
3463
- "label": "Headers",
3464
- "group": "endpoint",
3465
- "type": "Text",
3466
- "feel": "required",
3467
- "optional": true,
3468
- "binding": {
3469
- "type": "zeebe:input",
3470
- "name": "graphql.headers"
3471
- }
3536
+ ]
3472
3537
  },
3473
3538
  {
3474
- "label": "Query/Mutation",
3475
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
3476
- "group": "graphql",
3477
- "type": "Text",
3478
- "language": "graphql",
3479
- "binding": {
3480
- "type": "zeebe:input",
3481
- "name": "graphql.query"
3482
- },
3539
+ "id": "graphql.url",
3540
+ "label": "URL",
3483
3541
  "optional": false,
3484
3542
  "constraints": {
3485
- "notEmpty": true
3486
- }
3487
- },
3488
- {
3489
- "label": "Variables",
3490
- "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
3491
- "group": "graphql",
3492
- "type": "Text",
3493
- "feel": "required",
3494
- "binding": {
3495
- "type": "zeebe:input",
3496
- "name": "graphql.variables"
3497
- },
3498
- "optional": true
3499
- },
3500
- {
3501
- "label": "Bearer token",
3502
- "group": "authentication",
3503
- "type": "String",
3504
- "feel": "optional",
3505
- "binding": {
3506
- "type": "zeebe:input",
3507
- "name": "graphql.authentication.token"
3508
- },
3509
- "constraints": {
3510
- "notEmpty": true
3543
+ "notEmpty": true,
3544
+ "pattern": {
3545
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
3546
+ "message": "Must be a http(s) URL"
3547
+ }
3511
3548
  },
3512
- "condition": {
3513
- "property": "authenticationType",
3514
- "equals": "bearer"
3515
- }
3516
- },
3517
- {
3518
- "label": "OAuth token endpoint",
3519
- "description": "The OAuth token endpoint",
3520
- "group": "authentication",
3521
- "type": "String",
3522
3549
  "feel": "optional",
3550
+ "group": "endpoint",
3523
3551
  "binding": {
3524
- "type": "zeebe:input",
3525
- "name": "authentication.oauthTokenEndpoint"
3526
- },
3527
- "constraints": {
3528
- "notEmpty": true
3552
+ "name": "graphql.url",
3553
+ "type": "zeebe:input"
3529
3554
  },
3530
- "condition": {
3531
- "property": "authenticationType",
3532
- "equals": "oauth-client-credentials-flow"
3533
- }
3555
+ "type": "String"
3534
3556
  },
3535
3557
  {
3536
- "label": "Client ID",
3537
- "description": "Your application's client ID from the OAuth client",
3538
- "group": "authentication",
3539
- "type": "String",
3540
- "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",
3541
3564
  "binding": {
3542
- "type": "zeebe:input",
3543
- "name": "authentication.clientId"
3544
- },
3545
- "constraints": {
3546
- "notEmpty": true
3565
+ "name": "graphql.headers",
3566
+ "type": "zeebe:input"
3547
3567
  },
3548
- "condition": {
3549
- "property": "authenticationType",
3550
- "equals": "oauth-client-credentials-flow"
3551
- }
3568
+ "type": "String"
3552
3569
  },
3553
3570
  {
3554
- "label": "Client secret",
3555
- "description": "Your application's client secret from the OAuth client",
3556
- "group": "authentication",
3557
- "type": "String",
3558
- "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",
3559
3578
  "binding": {
3560
- "type": "zeebe:input",
3561
- "name": "authentication.clientSecret"
3579
+ "name": "graphql.storeResponse",
3580
+ "type": "zeebe:input"
3562
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,
3563
3589
  "constraints": {
3564
3590
  "notEmpty": true
3565
3591
  },
3566
- "condition": {
3567
- "property": "authenticationType",
3568
- "equals": "oauth-client-credentials-flow"
3569
- }
3570
- },
3571
- {
3572
- "label": "Scopes",
3573
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
3574
- "group": "authentication",
3575
- "type": "String",
3576
3592
  "feel": "optional",
3577
- "optional": true,
3593
+ "group": "graphql",
3578
3594
  "binding": {
3579
- "type": "zeebe:input",
3580
- "name": "authentication.scopes"
3595
+ "name": "graphql.query",
3596
+ "type": "zeebe:input"
3581
3597
  },
3582
- "condition": {
3583
- "property": "authenticationType",
3584
- "equals": "oauth-client-credentials-flow"
3585
- }
3598
+ "type": "Text"
3586
3599
  },
3587
3600
  {
3588
- "label": "Audience",
3589
- "description": "The unique identifier of the target API you want to access",
3590
- "group": "authentication",
3591
- "type": "String",
3592
- "feel": "optional",
3601
+ "id": "graphql.variables",
3602
+ "label": "Variables",
3593
3603
  "optional": true,
3604
+ "feel": "required",
3605
+ "group": "graphql",
3594
3606
  "binding": {
3595
- "type": "zeebe:input",
3596
- "name": "authentication.audience"
3607
+ "name": "graphql.variables",
3608
+ "type": "zeebe:input"
3597
3609
  },
3598
- "condition": {
3599
- "property": "authenticationType",
3600
- "equals": "oauth-client-credentials-flow"
3601
- }
3610
+ "type": "String"
3602
3611
  },
3603
3612
  {
3604
- "label": "Client authentication",
3605
- "id": "authentication.clientAuthentication",
3606
- "group": "authentication",
3607
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
3608
- "value": "basicAuthHeader",
3609
- "type": "Dropdown",
3610
- "choices": [
3611
- {
3612
- "name": "Send client credentials in body",
3613
- "value": "credentialsBody"
3614
- },
3615
- {
3616
- "name": "Send as Basic Auth header",
3617
- "value": "basicAuthHeader"
3618
- }
3619
- ],
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",
3620
3620
  "binding": {
3621
- "type": "zeebe:input",
3622
- "name": "authentication.clientAuthentication"
3621
+ "name": "graphql.connectionTimeoutInSeconds",
3622
+ "type": "zeebe:input"
3623
3623
  },
3624
- "condition": {
3625
- "property": "authenticationType",
3626
- "equals": "oauth-client-credentials-flow"
3627
- }
3624
+ "type": "Number"
3628
3625
  },
3629
3626
  {
3630
- "label": "Username",
3631
- "group": "authentication",
3632
- "type": "String",
3633
- "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",
3634
3634
  "binding": {
3635
- "type": "zeebe:input",
3636
- "name": "authentication.username"
3637
- },
3638
- "constraints": {
3639
- "notEmpty": true
3635
+ "name": "graphql.readTimeoutInSeconds",
3636
+ "type": "zeebe:input"
3640
3637
  },
3641
- "condition": {
3642
- "property": "authenticationType",
3643
- "equals": "basic"
3644
- }
3638
+ "type": "Number"
3645
3639
  },
3646
3640
  {
3647
- "label": "Password",
3648
- "group": "authentication",
3649
- "type": "String",
3650
- "feel": "optional",
3641
+ "id": "version",
3642
+ "label": "Version",
3643
+ "description": "Version of the element template",
3644
+ "value": "9",
3645
+ "group": "connector",
3651
3646
  "binding": {
3652
- "type": "zeebe:input",
3653
- "name": "authentication.password"
3654
- },
3655
- "constraints": {
3656
- "notEmpty": true
3647
+ "key": "elementTemplateVersion",
3648
+ "type": "zeebe:taskHeader"
3657
3649
  },
3658
- "condition": {
3659
- "property": "authenticationType",
3660
- "equals": "basic"
3661
- }
3650
+ "type": "Hidden"
3662
3651
  },
3663
3652
  {
3664
- "label": "Connection timeout",
3665
- "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
3666
- "group": "timeout",
3667
- "type": "String",
3668
- "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",
3669
3658
  "binding": {
3670
- "type": "zeebe:input",
3671
- "name": "graphql.connectionTimeoutInSeconds"
3659
+ "key": "elementTemplateId",
3660
+ "type": "zeebe:taskHeader"
3672
3661
  },
3673
- "feel": "optional",
3674
- "optional": true,
3675
- "constraints": {
3676
- "notEmpty": false,
3677
- "pattern": {
3678
- "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
3679
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
3680
- }
3681
- }
3662
+ "type": "Hidden"
3682
3663
  },
3683
3664
  {
3665
+ "id": "resultVariable",
3684
3666
  "label": "Result variable",
3685
- "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>.",
3686
3668
  "group": "output",
3687
- "type": "String",
3688
3669
  "binding": {
3689
- "type": "zeebe:taskHeader",
3690
- "key": "resultVariable"
3691
- }
3670
+ "key": "resultVariable",
3671
+ "type": "zeebe:taskHeader"
3672
+ },
3673
+ "type": "String"
3692
3674
  },
3693
3675
  {
3676
+ "id": "resultExpression",
3694
3677
  "label": "Result expression",
3695
- "description": "Expression to map the response into process variables",
3696
- "group": "output",
3697
- "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>.",
3698
3679
  "feel": "required",
3680
+ "group": "output",
3699
3681
  "binding": {
3700
- "type": "zeebe:taskHeader",
3701
- "key": "resultExpression"
3702
- }
3682
+ "key": "resultExpression",
3683
+ "type": "zeebe:taskHeader"
3684
+ },
3685
+ "type": "Text"
3703
3686
  },
3704
3687
  {
3688
+ "id": "errorExpression",
3705
3689
  "label": "Error expression",
3706
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
3707
- "group": "errors",
3708
- "type": "Text",
3690
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
3709
3691
  "feel": "required",
3692
+ "group": "error",
3710
3693
  "binding": {
3711
- "type": "zeebe:taskHeader",
3712
- "key": "errorExpression"
3713
- }
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"
3714
3723
  }
3715
3724
  ],
3716
- "engines": {
3717
- "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+"
3718
3727
  }
3719
3728
  }
3720
3729
  ]