@camunda/connectors-element-templates 1.0.3 → 1.0.5

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 (77) hide show
  1. package/package.json +1 -1
  2. package/src/connectors.js +8 -2
  3. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +30 -30
  4. package/src/element-templates/agenticai-aiagent-outbound-connector.json +323 -9
  5. package/src/element-templates/asana-connector.json +101 -101
  6. package/src/element-templates/automation-anywhere-outbound-connector.json +1777 -961
  7. package/src/element-templates/aws-bedrock-outbound-connector.json +74 -74
  8. package/src/element-templates/aws-comprehend-outbound-connector.json +36 -36
  9. package/src/element-templates/aws-dynamodb-outbound-connector.json +1373 -1373
  10. package/src/element-templates/aws-eventbridge-connector-boundary.json +28 -28
  11. package/src/element-templates/aws-eventbridge-connector-message-start.json +10 -10
  12. package/src/element-templates/aws-eventbridge-connector-start-event.json +23 -23
  13. package/src/element-templates/aws-eventbridge-outbound-connector.json +326 -326
  14. package/src/element-templates/aws-lambda-outbound-connector.json +231 -231
  15. package/src/element-templates/aws-sagemaker-outbound-connector.json +50 -50
  16. package/src/element-templates/aws-sns-inbound-boundary.json +285 -285
  17. package/src/element-templates/aws-sns-inbound-intermediate.json +33 -33
  18. package/src/element-templates/aws-sns-inbound-message-start.json +227 -227
  19. package/src/element-templates/aws-sns-inbound-start-event.json +132 -132
  20. package/src/element-templates/aws-sns-outbound-connector.json +370 -370
  21. package/src/element-templates/aws-sqs-boundary-connector.json +232 -232
  22. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +532 -532
  23. package/src/element-templates/aws-sqs-outbound-connector.json +396 -396
  24. package/src/element-templates/aws-sqs-start-event-connector.json +389 -389
  25. package/src/element-templates/aws-textract-outbound-connector.json +123 -123
  26. package/src/element-templates/azure-blobstorage-outbound-connector.json +349 -0
  27. package/src/element-templates/blue-prism-connector.json +13 -13
  28. package/src/element-templates/box-outbound-connector.json +30 -30
  29. package/src/element-templates/easy-post-connector.json +121 -121
  30. package/src/element-templates/email-outbound-connector.json +233 -233
  31. package/src/element-templates/github-connector.json +1259 -1259
  32. package/src/element-templates/github-webhook-connector-boundary.json +35 -35
  33. package/src/element-templates/github-webhook-connector-intermediate.json +31 -31
  34. package/src/element-templates/github-webhook-connector-start-event.json +34 -34
  35. package/src/element-templates/gitlab-connector.json +3333 -3333
  36. package/src/element-templates/google-cloud-storage-outbound-connector.json +357 -0
  37. package/src/element-templates/google-drive-outbound-connector.json +414 -101
  38. package/src/element-templates/google-gemini-outbound-connector.json +32 -32
  39. package/src/element-templates/google-maps-platform-connector.json +489 -0
  40. package/src/element-templates/google-sheets-outbound-connector.json +2468 -2468
  41. package/src/element-templates/graphql-outbound-connector.json +1113 -1113
  42. package/src/element-templates/http-json-connector.json +2202 -1290
  43. package/src/element-templates/http-polling-boundary-catch-event-connector.json +6 -6
  44. package/src/element-templates/http-polling-connector.json +6 -6
  45. package/src/element-templates/hugging-face-connector.json +34 -34
  46. package/src/element-templates/idp-extraction-outbound-connector.json +115 -0
  47. package/src/element-templates/jdbc-outbound-connector.json +36 -36
  48. package/src/element-templates/kafka-inbound-connector-boundary.json +540 -540
  49. package/src/element-templates/kafka-inbound-connector-intermediate.json +585 -585
  50. package/src/element-templates/kafka-inbound-connector.json +603 -0
  51. package/src/element-templates/kafka-outbound-connector.json +261 -261
  52. package/src/element-templates/microsoft-office365-mail-connector.json +32 -32
  53. package/src/element-templates/microsoft-teams-outbound-connector.json +98 -98
  54. package/src/element-templates/openai-connector.json +517 -159
  55. package/src/element-templates/operate-connector.json +569 -53
  56. package/src/element-templates/power-automate-connector.json +1724 -0
  57. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +132 -132
  58. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +941 -941
  59. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +459 -459
  60. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +269 -269
  61. package/src/element-templates/rabbitmq-outbound-connector.json +631 -631
  62. package/src/element-templates/salesforce-connector.json +44 -44
  63. package/src/element-templates/sendgrid-outbound-connector.json +787 -255
  64. package/src/element-templates/slack-inbound-boundary.json +215 -215
  65. package/src/element-templates/slack-inbound-intermediate.json +178 -178
  66. package/src/element-templates/slack-inbound-message-start.json +323 -323
  67. package/src/element-templates/slack-inbound-start-event.json +212 -212
  68. package/src/element-templates/slack-outbound-connector.json +777 -522
  69. package/src/element-templates/twilio-connector.json +29 -29
  70. package/src/element-templates/twilio-webhook-boundary-connector.json +28 -28
  71. package/src/element-templates/twilio-webhook-intermediate-connector.json +31 -31
  72. package/src/element-templates/uipath-connector.json +8 -8
  73. package/src/element-templates/webhook-connector-boundary.json +1133 -1133
  74. package/src/element-templates/webhook-connector-intermediate.json +1380 -1380
  75. package/src/element-templates/webhook-connector-start-event.json +1370 -1370
  76. package/src/element-templates/webhook-connector-start-message.json +1171 -1171
  77. package/src/element-templates/agenticai-aiagent-outbound-connector-8.8.0-alpha4.json +0 -843
@@ -384,8 +384,11 @@
384
384
  "name": "GraphQL Outbound Connector",
385
385
  "id": "io.camunda.connectors.GraphQL.v1",
386
386
  "description": "Execute GraphQL query",
387
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
388
- "version": 6,
387
+ "version": 3,
388
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
389
+ "icon": {
390
+ "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
391
+ },
389
392
  "category": {
390
393
  "id": "connectors",
391
394
  "name": "Connectors"
@@ -401,7 +404,7 @@
401
404
  },
402
405
  {
403
406
  "id": "endpoint",
404
- "label": "HTTP Endpoint"
407
+ "label": "HTTP endpoint"
405
408
  },
406
409
  {
407
410
  "id": "graphql",
@@ -409,45 +412,37 @@
409
412
  },
410
413
  {
411
414
  "id": "timeout",
412
- "label": "Connection timeout"
415
+ "label": "Connect timeout"
413
416
  },
414
417
  {
415
418
  "id": "output",
416
- "label": "Output mapping"
419
+ "label": "Response mapping"
417
420
  },
418
421
  {
419
- "id": "error",
422
+ "id": "errors",
420
423
  "label": "Error handling"
421
- },
422
- {
423
- "id": "retries",
424
- "label": "Retries"
425
424
  }
426
425
  ],
427
426
  "properties": [
428
427
  {
428
+ "type": "Hidden",
429
429
  "value": "io.camunda:connector-graphql:1",
430
430
  "binding": {
431
- "property": "type",
432
- "type": "zeebe:taskDefinition"
433
- },
434
- "type": "Hidden"
431
+ "type": "zeebe:taskDefinition",
432
+ "property": "type"
433
+ }
435
434
  },
436
435
  {
437
- "id": "authentication.type",
438
436
  "label": "Type",
437
+ "id": "authenticationType",
438
+ "group": "authentication",
439
439
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
440
440
  "value": "noAuth",
441
- "group": "authentication",
442
- "binding": {
443
- "name": "authentication.type",
444
- "type": "zeebe:input"
445
- },
446
441
  "type": "Dropdown",
447
442
  "choices": [
448
443
  {
449
- "name": "API key",
450
- "value": "apiKey"
444
+ "name": "None",
445
+ "value": "noAuth"
451
446
  },
452
447
  {
453
448
  "name": "Basic",
@@ -457,250 +452,202 @@
457
452
  "name": "Bearer token",
458
453
  "value": "bearer"
459
454
  },
460
- {
461
- "name": "None",
462
- "value": "noAuth"
463
- },
464
455
  {
465
456
  "name": "OAuth 2.0",
466
457
  "value": "oauth-client-credentials-flow"
467
458
  }
468
- ]
459
+ ],
460
+ "binding": {
461
+ "type": "zeebe:input",
462
+ "name": "authentication.type"
463
+ }
469
464
  },
470
465
  {
471
- "id": "authentication.apiKeyLocation",
472
- "label": "Api key location",
473
- "description": "Choose type: Send API key in header or as query parameter.",
474
- "optional": false,
475
- "value": "headers",
476
- "constraints": {
477
- "notEmpty": true
478
- },
479
- "group": "authentication",
466
+ "label": "URL",
467
+ "group": "endpoint",
468
+ "type": "String",
469
+ "feel": "optional",
480
470
  "binding": {
481
- "name": "authentication.apiKeyLocation",
482
- "type": "zeebe:input"
483
- },
484
- "condition": {
485
- "property": "authentication.type",
486
- "equals": "apiKey",
487
- "type": "simple"
471
+ "type": "zeebe:input",
472
+ "name": "graphql.url"
488
473
  },
474
+ "constraints": {
475
+ "notEmpty": true,
476
+ "pattern": {
477
+ "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
478
+ "message": "Must be a http(s) URL."
479
+ }
480
+ }
481
+ },
482
+ {
483
+ "id": "method",
484
+ "label": "Method",
485
+ "group": "endpoint",
489
486
  "type": "Dropdown",
487
+ "value": "post",
490
488
  "choices": [
491
489
  {
492
- "name": "Headers",
493
- "value": "headers"
490
+ "name": "POST",
491
+ "value": "post"
494
492
  },
495
493
  {
496
- "name": "Query parameters",
497
- "value": "query"
494
+ "name": "GET",
495
+ "value": "get"
498
496
  }
499
- ]
497
+ ],
498
+ "binding": {
499
+ "type": "zeebe:input",
500
+ "name": "graphql.method"
501
+ }
500
502
  },
501
503
  {
502
- "id": "authentication.name",
503
- "label": "API key name",
504
- "optional": false,
505
- "constraints": {
506
- "notEmpty": true
507
- },
508
- "feel": "optional",
509
- "group": "authentication",
504
+ "id": "headers",
505
+ "label": "Headers",
506
+ "group": "endpoint",
507
+ "type": "Text",
508
+ "feel": "required",
509
+ "optional": true,
510
510
  "binding": {
511
- "name": "authentication.name",
512
- "type": "zeebe:input"
513
- },
514
- "condition": {
515
- "property": "authentication.type",
516
- "equals": "apiKey",
517
- "type": "simple"
518
- },
519
- "type": "String"
511
+ "type": "zeebe:input",
512
+ "name": "graphql.headers"
513
+ }
520
514
  },
521
515
  {
522
- "id": "authentication.value",
523
- "label": "API key value",
524
- "optional": false,
525
- "constraints": {
526
- "notEmpty": true
527
- },
528
- "feel": "optional",
529
- "group": "authentication",
516
+ "label": "Query/Mutation",
517
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
518
+ "group": "graphql",
519
+ "type": "Text",
520
+ "language": "graphql",
530
521
  "binding": {
531
- "name": "authentication.value",
532
- "type": "zeebe:input"
533
- },
534
- "condition": {
535
- "property": "authentication.type",
536
- "equals": "apiKey",
537
- "type": "simple"
522
+ "type": "zeebe:input",
523
+ "name": "graphql.query"
538
524
  },
539
- "type": "String"
540
- },
541
- {
542
- "id": "authentication.username",
543
- "label": "Username",
544
525
  "optional": false,
545
526
  "constraints": {
546
527
  "notEmpty": true
547
- },
548
- "feel": "optional",
549
- "group": "authentication",
550
- "binding": {
551
- "name": "authentication.username",
552
- "type": "zeebe:input"
553
- },
554
- "condition": {
555
- "property": "authentication.type",
556
- "equals": "basic",
557
- "type": "simple"
558
- },
559
- "type": "String"
528
+ }
560
529
  },
561
530
  {
562
- "id": "authentication.password",
563
- "label": "Password",
564
- "optional": false,
565
- "constraints": {
566
- "notEmpty": true
567
- },
568
- "feel": "optional",
569
- "group": "authentication",
531
+ "label": "Variables",
532
+ "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
533
+ "group": "graphql",
534
+ "type": "Text",
535
+ "feel": "required",
570
536
  "binding": {
571
- "name": "authentication.password",
572
- "type": "zeebe:input"
573
- },
574
- "condition": {
575
- "property": "authentication.type",
576
- "equals": "basic",
577
- "type": "simple"
537
+ "type": "zeebe:input",
538
+ "name": "graphql.variables"
578
539
  },
579
- "type": "String"
540
+ "optional": true
580
541
  },
581
542
  {
582
- "id": "authentication.token",
583
543
  "label": "Bearer token",
584
- "optional": false,
585
- "constraints": {
586
- "notEmpty": true
587
- },
588
- "feel": "optional",
589
544
  "group": "authentication",
545
+ "type": "String",
546
+ "feel": "optional",
590
547
  "binding": {
591
- "name": "authentication.token",
592
- "type": "zeebe:input"
548
+ "type": "zeebe:input",
549
+ "name": "graphql.authentication.token"
593
550
  },
594
- "condition": {
595
- "property": "authentication.type",
596
- "equals": "bearer",
597
- "type": "simple"
551
+ "constraints": {
552
+ "notEmpty": true
598
553
  },
599
- "type": "String"
554
+ "condition": {
555
+ "property": "authenticationType",
556
+ "equals": "bearer"
557
+ }
600
558
  },
601
559
  {
602
- "id": "authentication.oauthTokenEndpoint",
603
- "label": "OAuth 2.0 token endpoint",
560
+ "label": "OAuth token endpoint",
604
561
  "description": "The OAuth token endpoint",
605
- "optional": false,
606
- "constraints": {
607
- "notEmpty": true,
608
- "pattern": {
609
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
610
- "message": "Must be a http(s) URL"
611
- }
612
- },
613
- "feel": "optional",
614
562
  "group": "authentication",
563
+ "type": "String",
564
+ "feel": "optional",
615
565
  "binding": {
616
- "name": "authentication.oauthTokenEndpoint",
617
- "type": "zeebe:input"
566
+ "type": "zeebe:input",
567
+ "name": "authentication.oauthTokenEndpoint"
618
568
  },
619
- "condition": {
620
- "property": "authentication.type",
621
- "equals": "oauth-client-credentials-flow",
622
- "type": "simple"
569
+ "constraints": {
570
+ "notEmpty": true
623
571
  },
624
- "type": "String"
572
+ "condition": {
573
+ "property": "authenticationType",
574
+ "equals": "oauth-client-credentials-flow"
575
+ }
625
576
  },
626
577
  {
627
- "id": "authentication.clientId",
628
578
  "label": "Client ID",
629
579
  "description": "Your application's client ID from the OAuth client",
630
- "optional": false,
631
- "constraints": {
632
- "notEmpty": true
633
- },
634
- "feel": "optional",
635
580
  "group": "authentication",
581
+ "type": "String",
582
+ "feel": "optional",
636
583
  "binding": {
637
- "name": "authentication.clientId",
638
- "type": "zeebe:input"
584
+ "type": "zeebe:input",
585
+ "name": "authentication.clientId"
586
+ },
587
+ "constraints": {
588
+ "notEmpty": true
639
589
  },
640
590
  "condition": {
641
- "property": "authentication.type",
642
- "equals": "oauth-client-credentials-flow",
643
- "type": "simple"
644
- },
645
- "type": "String"
591
+ "property": "authenticationType",
592
+ "equals": "oauth-client-credentials-flow"
593
+ }
646
594
  },
647
595
  {
648
- "id": "authentication.clientSecret",
649
596
  "label": "Client secret",
650
597
  "description": "Your application's client secret from the OAuth client",
651
- "optional": false,
598
+ "group": "authentication",
599
+ "type": "String",
600
+ "feel": "optional",
601
+ "binding": {
602
+ "type": "zeebe:input",
603
+ "name": "authentication.clientSecret"
604
+ },
652
605
  "constraints": {
653
606
  "notEmpty": true
654
607
  },
655
- "feel": "optional",
608
+ "condition": {
609
+ "property": "authenticationType",
610
+ "equals": "oauth-client-credentials-flow"
611
+ }
612
+ },
613
+ {
614
+ "label": "Scopes",
615
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
656
616
  "group": "authentication",
617
+ "type": "String",
618
+ "feel": "optional",
619
+ "optional": true,
657
620
  "binding": {
658
- "name": "authentication.clientSecret",
659
- "type": "zeebe:input"
621
+ "type": "zeebe:input",
622
+ "name": "authentication.scopes"
660
623
  },
661
624
  "condition": {
662
- "property": "authentication.type",
663
- "equals": "oauth-client-credentials-flow",
664
- "type": "simple"
665
- },
666
- "type": "String"
625
+ "property": "authenticationType",
626
+ "equals": "oauth-client-credentials-flow"
627
+ }
667
628
  },
668
629
  {
669
- "id": "authentication.audience",
670
630
  "label": "Audience",
671
631
  "description": "The unique identifier of the target API you want to access",
672
- "optional": true,
673
- "feel": "optional",
674
632
  "group": "authentication",
633
+ "type": "String",
634
+ "feel": "optional",
635
+ "optional": true,
675
636
  "binding": {
676
- "name": "authentication.audience",
677
- "type": "zeebe:input"
637
+ "type": "zeebe:input",
638
+ "name": "authentication.audience"
678
639
  },
679
640
  "condition": {
680
- "property": "authentication.type",
681
- "equals": "oauth-client-credentials-flow",
682
- "type": "simple"
683
- },
684
- "type": "String"
641
+ "property": "authenticationType",
642
+ "equals": "oauth-client-credentials-flow"
643
+ }
685
644
  },
686
645
  {
687
- "id": "authentication.clientAuthentication",
688
646
  "label": "Client authentication",
689
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
690
- "optional": false,
691
- "constraints": {
692
- "notEmpty": true
693
- },
647
+ "id": "authentication.clientAuthentication",
694
648
  "group": "authentication",
695
- "binding": {
696
- "name": "authentication.clientAuthentication",
697
- "type": "zeebe:input"
698
- },
699
- "condition": {
700
- "property": "authentication.type",
701
- "equals": "oauth-client-credentials-flow",
702
- "type": "simple"
703
- },
649
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
650
+ "value": "basicAuthHeader",
704
651
  "type": "Dropdown",
705
652
  "choices": [
706
653
  {
@@ -711,192 +658,105 @@
711
658
  "name": "Send as Basic Auth header",
712
659
  "value": "basicAuthHeader"
713
660
  }
714
- ]
715
- },
716
- {
717
- "id": "authentication.scopes",
718
- "label": "Scopes",
719
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
720
- "optional": true,
721
- "feel": "optional",
722
- "group": "authentication",
661
+ ],
723
662
  "binding": {
724
- "name": "authentication.scopes",
725
- "type": "zeebe:input"
663
+ "type": "zeebe:input",
664
+ "name": "authentication.clientAuthentication"
726
665
  },
727
666
  "condition": {
728
- "property": "authentication.type",
729
- "equals": "oauth-client-credentials-flow",
730
- "type": "simple"
731
- },
732
- "type": "String"
667
+ "property": "authenticationType",
668
+ "equals": "oauth-client-credentials-flow"
669
+ }
733
670
  },
734
671
  {
735
- "id": "graphql.method",
736
- "label": "Method",
737
- "optional": false,
738
- "value": "get",
739
- "constraints": {
740
- "notEmpty": true
741
- },
742
- "group": "endpoint",
672
+ "label": "Username",
673
+ "group": "authentication",
674
+ "type": "String",
675
+ "feel": "optional",
743
676
  "binding": {
744
- "name": "graphql.method",
745
- "type": "zeebe:input"
677
+ "type": "zeebe:input",
678
+ "name": "authentication.username"
746
679
  },
747
- "type": "Dropdown",
748
- "choices": [
749
- {
750
- "name": "GET",
751
- "value": "get"
752
- },
753
- {
754
- "name": "POST",
755
- "value": "post"
756
- }
757
- ]
758
- },
759
- {
760
- "id": "graphql.url",
761
- "label": "URL",
762
- "optional": false,
763
680
  "constraints": {
764
- "notEmpty": true,
765
- "pattern": {
766
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
767
- "message": "Must be a http(s) URL"
768
- }
769
- },
770
- "feel": "optional",
771
- "group": "endpoint",
772
- "binding": {
773
- "name": "graphql.url",
774
- "type": "zeebe:input"
681
+ "notEmpty": true
775
682
  },
776
- "type": "String"
683
+ "condition": {
684
+ "property": "authenticationType",
685
+ "equals": "basic"
686
+ }
777
687
  },
778
688
  {
779
- "id": "graphql.headers",
780
- "label": "Headers",
781
- "description": "Map of HTTP headers to add to the request",
782
- "optional": true,
783
- "feel": "required",
784
- "group": "endpoint",
689
+ "label": "Password",
690
+ "group": "authentication",
691
+ "type": "String",
692
+ "feel": "optional",
785
693
  "binding": {
786
- "name": "graphql.headers",
787
- "type": "zeebe:input"
694
+ "type": "zeebe:input",
695
+ "name": "authentication.password"
788
696
  },
789
- "type": "String"
790
- },
791
- {
792
- "id": "graphql.query",
793
- "label": "Query/Mutation",
794
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
795
- "optional": false,
796
697
  "constraints": {
797
698
  "notEmpty": true
798
699
  },
799
- "feel": "optional",
800
- "group": "graphql",
801
- "binding": {
802
- "name": "graphql.query",
803
- "type": "zeebe:input"
804
- },
805
- "type": "Text"
806
- },
807
- {
808
- "id": "graphql.variables",
809
- "label": "Variables",
810
- "optional": true,
811
- "feel": "required",
812
- "group": "graphql",
813
- "binding": {
814
- "name": "graphql.variables",
815
- "type": "zeebe:input"
816
- },
817
- "type": "String"
700
+ "condition": {
701
+ "property": "authenticationType",
702
+ "equals": "basic"
703
+ }
818
704
  },
819
705
  {
820
- "id": "graphql.connectionTimeoutInSeconds",
821
- "label": "Connection timeout in seconds",
706
+ "label": "Connection timeout",
822
707
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
823
- "optional": true,
824
- "value": "20",
825
- "feel": "optional",
826
708
  "group": "timeout",
709
+ "type": "String",
710
+ "value": "20",
827
711
  "binding": {
828
- "name": "graphql.connectionTimeoutInSeconds",
829
- "type": "zeebe:input"
712
+ "type": "zeebe:input",
713
+ "name": "graphql.connectionTimeoutInSeconds"
830
714
  },
831
- "type": "String"
715
+ "feel": "optional",
716
+ "optional": true,
717
+ "constraints": {
718
+ "notEmpty": false,
719
+ "pattern": {
720
+ "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
721
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
722
+ }
723
+ }
832
724
  },
833
725
  {
834
- "id": "resultVariable",
835
726
  "label": "Result variable",
836
727
  "description": "Name of variable to store the response in",
837
728
  "group": "output",
729
+ "type": "String",
838
730
  "binding": {
839
- "key": "resultVariable",
840
- "type": "zeebe:taskHeader"
841
- },
842
- "type": "String"
731
+ "type": "zeebe:taskHeader",
732
+ "key": "resultVariable"
733
+ }
843
734
  },
844
735
  {
845
- "id": "resultExpression",
846
736
  "label": "Result expression",
847
737
  "description": "Expression to map the response into process variables",
848
- "feel": "required",
849
738
  "group": "output",
739
+ "type": "Text",
740
+ "feel": "required",
850
741
  "binding": {
851
- "key": "resultExpression",
852
- "type": "zeebe:taskHeader"
853
- },
854
- "type": "Text"
742
+ "type": "zeebe:taskHeader",
743
+ "key": "resultExpression"
744
+ }
855
745
  },
856
746
  {
857
- "id": "errorExpression",
858
747
  "label": "Error expression",
859
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
748
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
749
+ "group": "errors",
750
+ "type": "Text",
860
751
  "feel": "required",
861
- "group": "error",
862
752
  "binding": {
863
- "key": "errorExpression",
864
- "type": "zeebe:taskHeader"
865
- },
866
- "type": "Text"
867
- },
868
- {
869
- "id": "retryCount",
870
- "label": "Retries",
871
- "description": "Number of retries",
872
- "value": "3",
873
- "feel": "optional",
874
- "group": "retries",
875
- "binding": {
876
- "property": "retries",
877
- "type": "zeebe:taskDefinition"
878
- },
879
- "type": "String"
880
- },
881
- {
882
- "id": "retryBackoff",
883
- "label": "Retry backoff",
884
- "description": "ISO-8601 duration to wait between retries",
885
- "value": "PT0S",
886
- "feel": "optional",
887
- "group": "retries",
888
- "binding": {
889
- "key": "retryBackoff",
890
- "type": "zeebe:taskHeader"
891
- },
892
- "type": "String"
753
+ "type": "zeebe:taskHeader",
754
+ "key": "errorExpression"
755
+ }
893
756
  }
894
757
  ],
895
- "icon": {
896
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
897
- },
898
758
  "engines": {
899
- "camunda": "^8.5"
759
+ "camunda": "^8.2"
900
760
  }
901
761
  },
902
762
  {
@@ -904,11 +764,8 @@
904
764
  "name": "GraphQL Outbound Connector",
905
765
  "id": "io.camunda.connectors.GraphQL.v1",
906
766
  "description": "Execute GraphQL query",
907
- "version": 3,
908
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
909
- "icon": {
910
- "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"
911
- },
767
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
768
+ "version": 6,
912
769
  "category": {
913
770
  "id": "connectors",
914
771
  "name": "Connectors"
@@ -924,7 +781,7 @@
924
781
  },
925
782
  {
926
783
  "id": "endpoint",
927
- "label": "HTTP endpoint"
784
+ "label": "HTTP Endpoint"
928
785
  },
929
786
  {
930
787
  "id": "graphql",
@@ -932,37 +789,45 @@
932
789
  },
933
790
  {
934
791
  "id": "timeout",
935
- "label": "Connect timeout"
792
+ "label": "Connection timeout"
936
793
  },
937
794
  {
938
795
  "id": "output",
939
- "label": "Response mapping"
796
+ "label": "Output mapping"
940
797
  },
941
798
  {
942
- "id": "errors",
799
+ "id": "error",
943
800
  "label": "Error handling"
801
+ },
802
+ {
803
+ "id": "retries",
804
+ "label": "Retries"
944
805
  }
945
806
  ],
946
807
  "properties": [
947
808
  {
948
- "type": "Hidden",
949
809
  "value": "io.camunda:connector-graphql:1",
950
810
  "binding": {
951
- "type": "zeebe:taskDefinition",
952
- "property": "type"
953
- }
811
+ "property": "type",
812
+ "type": "zeebe:taskDefinition"
813
+ },
814
+ "type": "Hidden"
954
815
  },
955
816
  {
817
+ "id": "authentication.type",
956
818
  "label": "Type",
957
- "id": "authenticationType",
958
- "group": "authentication",
959
819
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
960
820
  "value": "noAuth",
821
+ "group": "authentication",
822
+ "binding": {
823
+ "name": "authentication.type",
824
+ "type": "zeebe:input"
825
+ },
961
826
  "type": "Dropdown",
962
827
  "choices": [
963
828
  {
964
- "name": "None",
965
- "value": "noAuth"
829
+ "name": "API key",
830
+ "value": "apiKey"
966
831
  },
967
832
  {
968
833
  "name": "Basic",
@@ -972,202 +837,250 @@
972
837
  "name": "Bearer token",
973
838
  "value": "bearer"
974
839
  },
840
+ {
841
+ "name": "None",
842
+ "value": "noAuth"
843
+ },
975
844
  {
976
845
  "name": "OAuth 2.0",
977
846
  "value": "oauth-client-credentials-flow"
978
847
  }
979
- ],
980
- "binding": {
981
- "type": "zeebe:input",
982
- "name": "authentication.type"
983
- }
848
+ ]
984
849
  },
985
850
  {
986
- "label": "URL",
987
- "group": "endpoint",
988
- "type": "String",
989
- "feel": "optional",
851
+ "id": "authentication.apiKeyLocation",
852
+ "label": "Api key location",
853
+ "description": "Choose type: Send API key in header or as query parameter.",
854
+ "optional": false,
855
+ "value": "headers",
856
+ "constraints": {
857
+ "notEmpty": true
858
+ },
859
+ "group": "authentication",
990
860
  "binding": {
991
- "type": "zeebe:input",
992
- "name": "graphql.url"
861
+ "name": "authentication.apiKeyLocation",
862
+ "type": "zeebe:input"
863
+ },
864
+ "condition": {
865
+ "property": "authentication.type",
866
+ "equals": "apiKey",
867
+ "type": "simple"
993
868
  },
994
- "constraints": {
995
- "notEmpty": true,
996
- "pattern": {
997
- "value": "^(=|(https?://|\\{\\{secrets\\..+\\}\\}).*$)",
998
- "message": "Must be a http(s) URL."
999
- }
1000
- }
1001
- },
1002
- {
1003
- "id": "method",
1004
- "label": "Method",
1005
- "group": "endpoint",
1006
869
  "type": "Dropdown",
1007
- "value": "post",
1008
870
  "choices": [
1009
871
  {
1010
- "name": "POST",
1011
- "value": "post"
872
+ "name": "Headers",
873
+ "value": "headers"
1012
874
  },
1013
875
  {
1014
- "name": "GET",
1015
- "value": "get"
876
+ "name": "Query parameters",
877
+ "value": "query"
1016
878
  }
1017
- ],
1018
- "binding": {
1019
- "type": "zeebe:input",
1020
- "name": "graphql.method"
1021
- }
1022
- },
1023
- {
1024
- "id": "headers",
1025
- "label": "Headers",
1026
- "group": "endpoint",
1027
- "type": "Text",
1028
- "feel": "required",
1029
- "optional": true,
1030
- "binding": {
1031
- "type": "zeebe:input",
1032
- "name": "graphql.headers"
1033
- }
879
+ ]
1034
880
  },
1035
881
  {
1036
- "label": "Query/Mutation",
1037
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1038
- "group": "graphql",
1039
- "type": "Text",
1040
- "language": "graphql",
1041
- "binding": {
1042
- "type": "zeebe:input",
1043
- "name": "graphql.query"
1044
- },
882
+ "id": "authentication.name",
883
+ "label": "API key name",
1045
884
  "optional": false,
1046
885
  "constraints": {
1047
886
  "notEmpty": true
1048
- }
1049
- },
1050
- {
1051
- "label": "Variables",
1052
- "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>",
1053
- "group": "graphql",
1054
- "type": "Text",
1055
- "feel": "required",
1056
- "binding": {
1057
- "type": "zeebe:input",
1058
- "name": "graphql.variables"
1059
887
  },
1060
- "optional": true
1061
- },
1062
- {
1063
- "label": "Bearer token",
1064
- "group": "authentication",
1065
- "type": "String",
1066
888
  "feel": "optional",
889
+ "group": "authentication",
1067
890
  "binding": {
1068
- "type": "zeebe:input",
1069
- "name": "graphql.authentication.token"
1070
- },
1071
- "constraints": {
1072
- "notEmpty": true
891
+ "name": "authentication.name",
892
+ "type": "zeebe:input"
1073
893
  },
1074
894
  "condition": {
1075
- "property": "authenticationType",
1076
- "equals": "bearer"
1077
- }
895
+ "property": "authentication.type",
896
+ "equals": "apiKey",
897
+ "type": "simple"
898
+ },
899
+ "type": "String"
1078
900
  },
1079
901
  {
1080
- "label": "OAuth token endpoint",
1081
- "description": "The OAuth token endpoint",
1082
- "group": "authentication",
1083
- "type": "String",
1084
- "feel": "optional",
1085
- "binding": {
1086
- "type": "zeebe:input",
1087
- "name": "authentication.oauthTokenEndpoint"
1088
- },
902
+ "id": "authentication.value",
903
+ "label": "API key value",
904
+ "optional": false,
1089
905
  "constraints": {
1090
906
  "notEmpty": true
1091
907
  },
1092
- "condition": {
1093
- "property": "authenticationType",
1094
- "equals": "oauth-client-credentials-flow"
1095
- }
1096
- },
1097
- {
1098
- "label": "Client ID",
1099
- "description": "Your application's client ID from the OAuth client",
1100
- "group": "authentication",
1101
- "type": "String",
1102
908
  "feel": "optional",
909
+ "group": "authentication",
1103
910
  "binding": {
1104
- "type": "zeebe:input",
1105
- "name": "authentication.clientId"
1106
- },
1107
- "constraints": {
1108
- "notEmpty": true
911
+ "name": "authentication.value",
912
+ "type": "zeebe:input"
1109
913
  },
1110
914
  "condition": {
1111
- "property": "authenticationType",
1112
- "equals": "oauth-client-credentials-flow"
1113
- }
915
+ "property": "authentication.type",
916
+ "equals": "apiKey",
917
+ "type": "simple"
918
+ },
919
+ "type": "String"
1114
920
  },
1115
921
  {
1116
- "label": "Client secret",
1117
- "description": "Your application's client secret from the OAuth client",
1118
- "group": "authentication",
1119
- "type": "String",
1120
- "feel": "optional",
1121
- "binding": {
1122
- "type": "zeebe:input",
1123
- "name": "authentication.clientSecret"
1124
- },
922
+ "id": "authentication.username",
923
+ "label": "Username",
924
+ "optional": false,
1125
925
  "constraints": {
1126
926
  "notEmpty": true
1127
927
  },
928
+ "feel": "optional",
929
+ "group": "authentication",
930
+ "binding": {
931
+ "name": "authentication.username",
932
+ "type": "zeebe:input"
933
+ },
1128
934
  "condition": {
1129
- "property": "authenticationType",
1130
- "equals": "oauth-client-credentials-flow"
1131
- }
935
+ "property": "authentication.type",
936
+ "equals": "basic",
937
+ "type": "simple"
938
+ },
939
+ "type": "String"
1132
940
  },
1133
941
  {
1134
- "label": "Scopes",
1135
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1136
- "group": "authentication",
1137
- "type": "String",
942
+ "id": "authentication.password",
943
+ "label": "Password",
944
+ "optional": false,
945
+ "constraints": {
946
+ "notEmpty": true
947
+ },
1138
948
  "feel": "optional",
1139
- "optional": true,
949
+ "group": "authentication",
1140
950
  "binding": {
1141
- "type": "zeebe:input",
1142
- "name": "authentication.scopes"
951
+ "name": "authentication.password",
952
+ "type": "zeebe:input"
1143
953
  },
1144
954
  "condition": {
1145
- "property": "authenticationType",
1146
- "equals": "oauth-client-credentials-flow"
1147
- }
955
+ "property": "authentication.type",
956
+ "equals": "basic",
957
+ "type": "simple"
958
+ },
959
+ "type": "String"
1148
960
  },
1149
961
  {
1150
- "label": "Audience",
1151
- "description": "The unique identifier of the target API you want to access",
962
+ "id": "authentication.token",
963
+ "label": "Bearer token",
964
+ "optional": false,
965
+ "constraints": {
966
+ "notEmpty": true
967
+ },
968
+ "feel": "optional",
1152
969
  "group": "authentication",
1153
- "type": "String",
970
+ "binding": {
971
+ "name": "authentication.token",
972
+ "type": "zeebe:input"
973
+ },
974
+ "condition": {
975
+ "property": "authentication.type",
976
+ "equals": "bearer",
977
+ "type": "simple"
978
+ },
979
+ "type": "String"
980
+ },
981
+ {
982
+ "id": "authentication.oauthTokenEndpoint",
983
+ "label": "OAuth 2.0 token endpoint",
984
+ "description": "The OAuth token endpoint",
985
+ "optional": false,
986
+ "constraints": {
987
+ "notEmpty": true,
988
+ "pattern": {
989
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
990
+ "message": "Must be a http(s) URL"
991
+ }
992
+ },
1154
993
  "feel": "optional",
994
+ "group": "authentication",
995
+ "binding": {
996
+ "name": "authentication.oauthTokenEndpoint",
997
+ "type": "zeebe:input"
998
+ },
999
+ "condition": {
1000
+ "property": "authentication.type",
1001
+ "equals": "oauth-client-credentials-flow",
1002
+ "type": "simple"
1003
+ },
1004
+ "type": "String"
1005
+ },
1006
+ {
1007
+ "id": "authentication.clientId",
1008
+ "label": "Client ID",
1009
+ "description": "Your application's client ID from the OAuth client",
1010
+ "optional": false,
1011
+ "constraints": {
1012
+ "notEmpty": true
1013
+ },
1014
+ "feel": "optional",
1015
+ "group": "authentication",
1016
+ "binding": {
1017
+ "name": "authentication.clientId",
1018
+ "type": "zeebe:input"
1019
+ },
1020
+ "condition": {
1021
+ "property": "authentication.type",
1022
+ "equals": "oauth-client-credentials-flow",
1023
+ "type": "simple"
1024
+ },
1025
+ "type": "String"
1026
+ },
1027
+ {
1028
+ "id": "authentication.clientSecret",
1029
+ "label": "Client secret",
1030
+ "description": "Your application's client secret from the OAuth client",
1031
+ "optional": false,
1032
+ "constraints": {
1033
+ "notEmpty": true
1034
+ },
1035
+ "feel": "optional",
1036
+ "group": "authentication",
1037
+ "binding": {
1038
+ "name": "authentication.clientSecret",
1039
+ "type": "zeebe:input"
1040
+ },
1041
+ "condition": {
1042
+ "property": "authentication.type",
1043
+ "equals": "oauth-client-credentials-flow",
1044
+ "type": "simple"
1045
+ },
1046
+ "type": "String"
1047
+ },
1048
+ {
1049
+ "id": "authentication.audience",
1050
+ "label": "Audience",
1051
+ "description": "The unique identifier of the target API you want to access",
1155
1052
  "optional": true,
1053
+ "feel": "optional",
1054
+ "group": "authentication",
1156
1055
  "binding": {
1157
- "type": "zeebe:input",
1158
- "name": "authentication.audience"
1056
+ "name": "authentication.audience",
1057
+ "type": "zeebe:input"
1159
1058
  },
1160
1059
  "condition": {
1161
- "property": "authenticationType",
1162
- "equals": "oauth-client-credentials-flow"
1163
- }
1060
+ "property": "authentication.type",
1061
+ "equals": "oauth-client-credentials-flow",
1062
+ "type": "simple"
1063
+ },
1064
+ "type": "String"
1164
1065
  },
1165
1066
  {
1166
- "label": "Client authentication",
1167
1067
  "id": "authentication.clientAuthentication",
1068
+ "label": "Client authentication",
1069
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1070
+ "optional": false,
1071
+ "constraints": {
1072
+ "notEmpty": true
1073
+ },
1168
1074
  "group": "authentication",
1169
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
1170
- "value": "basicAuthHeader",
1075
+ "binding": {
1076
+ "name": "authentication.clientAuthentication",
1077
+ "type": "zeebe:input"
1078
+ },
1079
+ "condition": {
1080
+ "property": "authentication.type",
1081
+ "equals": "oauth-client-credentials-flow",
1082
+ "type": "simple"
1083
+ },
1171
1084
  "type": "Dropdown",
1172
1085
  "choices": [
1173
1086
  {
@@ -1178,105 +1091,192 @@
1178
1091
  "name": "Send as Basic Auth header",
1179
1092
  "value": "basicAuthHeader"
1180
1093
  }
1181
- ],
1182
- "binding": {
1183
- "type": "zeebe:input",
1184
- "name": "authentication.clientAuthentication"
1185
- },
1186
- "condition": {
1187
- "property": "authenticationType",
1188
- "equals": "oauth-client-credentials-flow"
1189
- }
1094
+ ]
1190
1095
  },
1191
1096
  {
1192
- "label": "Username",
1193
- "group": "authentication",
1194
- "type": "String",
1097
+ "id": "authentication.scopes",
1098
+ "label": "Scopes",
1099
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1100
+ "optional": true,
1195
1101
  "feel": "optional",
1102
+ "group": "authentication",
1196
1103
  "binding": {
1197
- "type": "zeebe:input",
1198
- "name": "authentication.username"
1104
+ "name": "authentication.scopes",
1105
+ "type": "zeebe:input"
1199
1106
  },
1107
+ "condition": {
1108
+ "property": "authentication.type",
1109
+ "equals": "oauth-client-credentials-flow",
1110
+ "type": "simple"
1111
+ },
1112
+ "type": "String"
1113
+ },
1114
+ {
1115
+ "id": "graphql.method",
1116
+ "label": "Method",
1117
+ "optional": false,
1118
+ "value": "get",
1200
1119
  "constraints": {
1201
1120
  "notEmpty": true
1202
1121
  },
1203
- "condition": {
1204
- "property": "authenticationType",
1205
- "equals": "basic"
1206
- }
1122
+ "group": "endpoint",
1123
+ "binding": {
1124
+ "name": "graphql.method",
1125
+ "type": "zeebe:input"
1126
+ },
1127
+ "type": "Dropdown",
1128
+ "choices": [
1129
+ {
1130
+ "name": "GET",
1131
+ "value": "get"
1132
+ },
1133
+ {
1134
+ "name": "POST",
1135
+ "value": "post"
1136
+ }
1137
+ ]
1207
1138
  },
1208
1139
  {
1209
- "label": "Password",
1210
- "group": "authentication",
1211
- "type": "String",
1140
+ "id": "graphql.url",
1141
+ "label": "URL",
1142
+ "optional": false,
1143
+ "constraints": {
1144
+ "notEmpty": true,
1145
+ "pattern": {
1146
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1147
+ "message": "Must be a http(s) URL"
1148
+ }
1149
+ },
1212
1150
  "feel": "optional",
1151
+ "group": "endpoint",
1213
1152
  "binding": {
1214
- "type": "zeebe:input",
1215
- "name": "authentication.password"
1153
+ "name": "graphql.url",
1154
+ "type": "zeebe:input"
1216
1155
  },
1156
+ "type": "String"
1157
+ },
1158
+ {
1159
+ "id": "graphql.headers",
1160
+ "label": "Headers",
1161
+ "description": "Map of HTTP headers to add to the request",
1162
+ "optional": true,
1163
+ "feel": "required",
1164
+ "group": "endpoint",
1165
+ "binding": {
1166
+ "name": "graphql.headers",
1167
+ "type": "zeebe:input"
1168
+ },
1169
+ "type": "String"
1170
+ },
1171
+ {
1172
+ "id": "graphql.query",
1173
+ "label": "Query/Mutation",
1174
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1175
+ "optional": false,
1217
1176
  "constraints": {
1218
1177
  "notEmpty": true
1219
1178
  },
1220
- "condition": {
1221
- "property": "authenticationType",
1222
- "equals": "basic"
1223
- }
1179
+ "feel": "optional",
1180
+ "group": "graphql",
1181
+ "binding": {
1182
+ "name": "graphql.query",
1183
+ "type": "zeebe:input"
1184
+ },
1185
+ "type": "Text"
1224
1186
  },
1225
1187
  {
1226
- "label": "Connection timeout",
1188
+ "id": "graphql.variables",
1189
+ "label": "Variables",
1190
+ "optional": true,
1191
+ "feel": "required",
1192
+ "group": "graphql",
1193
+ "binding": {
1194
+ "name": "graphql.variables",
1195
+ "type": "zeebe:input"
1196
+ },
1197
+ "type": "String"
1198
+ },
1199
+ {
1200
+ "id": "graphql.connectionTimeoutInSeconds",
1201
+ "label": "Connection timeout in seconds",
1227
1202
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
1228
- "group": "timeout",
1229
- "type": "String",
1203
+ "optional": true,
1230
1204
  "value": "20",
1205
+ "feel": "optional",
1206
+ "group": "timeout",
1231
1207
  "binding": {
1232
- "type": "zeebe:input",
1233
- "name": "graphql.connectionTimeoutInSeconds"
1208
+ "name": "graphql.connectionTimeoutInSeconds",
1209
+ "type": "zeebe:input"
1234
1210
  },
1235
- "feel": "optional",
1236
- "optional": true,
1237
- "constraints": {
1238
- "notEmpty": false,
1239
- "pattern": {
1240
- "value": "^(=|([0-9]+|\\{\\{secrets\\..+\\}\\})$)",
1241
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
1242
- }
1243
- }
1211
+ "type": "String"
1244
1212
  },
1245
1213
  {
1214
+ "id": "resultVariable",
1246
1215
  "label": "Result variable",
1247
1216
  "description": "Name of variable to store the response in",
1248
1217
  "group": "output",
1249
- "type": "String",
1250
1218
  "binding": {
1251
- "type": "zeebe:taskHeader",
1252
- "key": "resultVariable"
1253
- }
1219
+ "key": "resultVariable",
1220
+ "type": "zeebe:taskHeader"
1221
+ },
1222
+ "type": "String"
1254
1223
  },
1255
1224
  {
1225
+ "id": "resultExpression",
1256
1226
  "label": "Result expression",
1257
1227
  "description": "Expression to map the response into process variables",
1258
- "group": "output",
1259
- "type": "Text",
1260
1228
  "feel": "required",
1229
+ "group": "output",
1261
1230
  "binding": {
1262
- "type": "zeebe:taskHeader",
1263
- "key": "resultExpression"
1264
- }
1231
+ "key": "resultExpression",
1232
+ "type": "zeebe:taskHeader"
1233
+ },
1234
+ "type": "Text"
1265
1235
  },
1266
1236
  {
1237
+ "id": "errorExpression",
1267
1238
  "label": "Error expression",
1268
- "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>",
1269
- "group": "errors",
1270
- "type": "Text",
1239
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
1271
1240
  "feel": "required",
1241
+ "group": "error",
1272
1242
  "binding": {
1273
- "type": "zeebe:taskHeader",
1274
- "key": "errorExpression"
1275
- }
1243
+ "key": "errorExpression",
1244
+ "type": "zeebe:taskHeader"
1245
+ },
1246
+ "type": "Text"
1247
+ },
1248
+ {
1249
+ "id": "retryCount",
1250
+ "label": "Retries",
1251
+ "description": "Number of retries",
1252
+ "value": "3",
1253
+ "feel": "optional",
1254
+ "group": "retries",
1255
+ "binding": {
1256
+ "property": "retries",
1257
+ "type": "zeebe:taskDefinition"
1258
+ },
1259
+ "type": "String"
1260
+ },
1261
+ {
1262
+ "id": "retryBackoff",
1263
+ "label": "Retry backoff",
1264
+ "description": "ISO-8601 duration to wait between retries",
1265
+ "value": "PT0S",
1266
+ "feel": "optional",
1267
+ "group": "retries",
1268
+ "binding": {
1269
+ "key": "retryBackoff",
1270
+ "type": "zeebe:taskHeader"
1271
+ },
1272
+ "type": "String"
1276
1273
  }
1277
1274
  ],
1275
+ "icon": {
1276
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
1277
+ },
1278
1278
  "engines": {
1279
- "camunda": "^8.2"
1279
+ "camunda": "^8.5"
1280
1280
  }
1281
1281
  },
1282
1282
  {
@@ -1661,14 +1661,14 @@
1661
1661
  },
1662
1662
  {
1663
1663
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1664
- "name": "GraphQL connector",
1664
+ "name": "GraphQL Outbound Connector",
1665
1665
  "id": "io.camunda.connectors.GraphQL.v1",
1666
1666
  "description": "Execute GraphQL query",
1667
- "version": 2,
1668
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
1669
- "icon": {
1670
- "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
1667
+ "metadata": {
1668
+ "keywords": []
1671
1669
  },
1670
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
1671
+ "version": 7,
1672
1672
  "category": {
1673
1673
  "id": "connectors",
1674
1674
  "name": "Connectors"
@@ -1677,6 +1677,9 @@
1677
1677
  "elementType": {
1678
1678
  "value": "bpmn:ServiceTask"
1679
1679
  },
1680
+ "engines": {
1681
+ "camunda": "^8.3"
1682
+ },
1680
1683
  "groups": [
1681
1684
  {
1682
1685
  "id": "authentication",
@@ -1684,7 +1687,7 @@
1684
1687
  },
1685
1688
  {
1686
1689
  "id": "endpoint",
1687
- "label": "HTTP endpoint"
1690
+ "label": "HTTP Endpoint"
1688
1691
  },
1689
1692
  {
1690
1693
  "id": "graphql",
@@ -1692,37 +1695,45 @@
1692
1695
  },
1693
1696
  {
1694
1697
  "id": "timeout",
1695
- "label": "Connect timeout"
1698
+ "label": "Connection timeout"
1696
1699
  },
1697
1700
  {
1698
1701
  "id": "output",
1699
- "label": "Response mapping"
1702
+ "label": "Output mapping"
1700
1703
  },
1701
1704
  {
1702
- "id": "errors",
1705
+ "id": "error",
1703
1706
  "label": "Error handling"
1707
+ },
1708
+ {
1709
+ "id": "retries",
1710
+ "label": "Retries"
1704
1711
  }
1705
1712
  ],
1706
1713
  "properties": [
1707
1714
  {
1708
- "type": "Hidden",
1709
1715
  "value": "io.camunda:connector-graphql:1",
1710
1716
  "binding": {
1711
- "type": "zeebe:taskDefinition",
1712
- "property": "type"
1713
- }
1717
+ "property": "type",
1718
+ "type": "zeebe:taskDefinition"
1719
+ },
1720
+ "type": "Hidden"
1714
1721
  },
1715
1722
  {
1723
+ "id": "authentication.type",
1716
1724
  "label": "Type",
1717
- "id": "authenticationType",
1718
- "group": "authentication",
1719
1725
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
1720
1726
  "value": "noAuth",
1727
+ "group": "authentication",
1728
+ "binding": {
1729
+ "name": "authentication.type",
1730
+ "type": "zeebe:input"
1731
+ },
1721
1732
  "type": "Dropdown",
1722
1733
  "choices": [
1723
1734
  {
1724
- "name": "None",
1725
- "value": "noAuth"
1735
+ "name": "API key",
1736
+ "value": "apiKey"
1726
1737
  },
1727
1738
  {
1728
1739
  "name": "Basic",
@@ -1732,323 +1743,468 @@
1732
1743
  "name": "Bearer token",
1733
1744
  "value": "bearer"
1734
1745
  },
1746
+ {
1747
+ "name": "None",
1748
+ "value": "noAuth"
1749
+ },
1735
1750
  {
1736
1751
  "name": "OAuth 2.0",
1737
1752
  "value": "oauth-client-credentials-flow"
1738
1753
  }
1739
- ],
1740
- "binding": {
1741
- "type": "zeebe:input",
1742
- "name": "authentication.type"
1743
- }
1754
+ ]
1744
1755
  },
1745
1756
  {
1746
- "label": "URL",
1747
- "group": "endpoint",
1748
- "type": "String",
1749
- "feel": "optional",
1757
+ "id": "authentication.apiKeyLocation",
1758
+ "label": "Api key location",
1759
+ "description": "Choose type: Send API key in header or as query parameter.",
1760
+ "optional": false,
1761
+ "value": "headers",
1762
+ "constraints": {
1763
+ "notEmpty": true
1764
+ },
1765
+ "group": "authentication",
1750
1766
  "binding": {
1751
- "type": "zeebe:input",
1752
- "name": "graphql.url"
1767
+ "name": "authentication.apiKeyLocation",
1768
+ "type": "zeebe:input"
1769
+ },
1770
+ "condition": {
1771
+ "property": "authentication.type",
1772
+ "equals": "apiKey",
1773
+ "type": "simple"
1753
1774
  },
1754
- "constraints": {
1755
- "notEmpty": true,
1756
- "pattern": {
1757
- "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
1758
- "message": "Must be a http(s) URL."
1759
- }
1760
- }
1761
- },
1762
- {
1763
- "id": "method",
1764
- "label": "Method",
1765
- "group": "endpoint",
1766
1775
  "type": "Dropdown",
1767
- "value": "post",
1768
1776
  "choices": [
1769
1777
  {
1770
- "name": "POST",
1771
- "value": "post"
1778
+ "name": "Headers",
1779
+ "value": "headers"
1772
1780
  },
1773
1781
  {
1774
- "name": "GET",
1775
- "value": "get"
1776
- }
1777
- ],
1778
- "binding": {
1779
- "type": "zeebe:input",
1780
- "name": "graphql.method"
1781
- }
1782
+ "name": "Query parameters",
1783
+ "value": "query"
1784
+ }
1785
+ ]
1782
1786
  },
1783
1787
  {
1784
- "id": "headers",
1785
- "label": "Headers",
1786
- "group": "endpoint",
1787
- "type": "Text",
1788
- "feel": "required",
1789
- "optional": true,
1788
+ "id": "authentication.name",
1789
+ "label": "API key name",
1790
+ "optional": false,
1791
+ "constraints": {
1792
+ "notEmpty": true
1793
+ },
1794
+ "feel": "optional",
1795
+ "group": "authentication",
1790
1796
  "binding": {
1791
- "type": "zeebe:input",
1792
- "name": "graphql.headers"
1793
- }
1797
+ "name": "authentication.name",
1798
+ "type": "zeebe:input"
1799
+ },
1800
+ "condition": {
1801
+ "property": "authentication.type",
1802
+ "equals": "apiKey",
1803
+ "type": "simple"
1804
+ },
1805
+ "type": "String"
1794
1806
  },
1795
1807
  {
1796
- "label": "Query/Mutation",
1797
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
1798
- "group": "graphql",
1799
- "type": "Text",
1800
- "language": "graphql",
1801
- "binding": {
1802
- "type": "zeebe:input",
1803
- "name": "graphql.query"
1804
- },
1808
+ "id": "authentication.value",
1809
+ "label": "API key value",
1805
1810
  "optional": false,
1806
1811
  "constraints": {
1807
1812
  "notEmpty": true
1808
- }
1813
+ },
1814
+ "feel": "optional",
1815
+ "group": "authentication",
1816
+ "binding": {
1817
+ "name": "authentication.value",
1818
+ "type": "zeebe:input"
1819
+ },
1820
+ "condition": {
1821
+ "property": "authentication.type",
1822
+ "equals": "apiKey",
1823
+ "type": "simple"
1824
+ },
1825
+ "type": "String"
1809
1826
  },
1810
1827
  {
1811
- "label": "Variables",
1812
- "description": "Learn how to <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#variables\" target=\"_blank\">define variables</a>",
1813
- "group": "graphql",
1814
- "type": "Text",
1815
- "feel": "required",
1828
+ "id": "authentication.username",
1829
+ "label": "Username",
1830
+ "optional": false,
1831
+ "constraints": {
1832
+ "notEmpty": true
1833
+ },
1834
+ "feel": "optional",
1835
+ "group": "authentication",
1816
1836
  "binding": {
1817
- "type": "zeebe:input",
1818
- "name": "graphql.variables"
1837
+ "name": "authentication.username",
1838
+ "type": "zeebe:input"
1819
1839
  },
1820
- "optional": true
1840
+ "condition": {
1841
+ "property": "authentication.type",
1842
+ "equals": "basic",
1843
+ "type": "simple"
1844
+ },
1845
+ "type": "String"
1821
1846
  },
1822
1847
  {
1823
- "label": "Bearer token",
1824
- "group": "authentication",
1825
- "type": "String",
1848
+ "id": "authentication.password",
1849
+ "label": "Password",
1850
+ "optional": false,
1851
+ "constraints": {
1852
+ "notEmpty": true
1853
+ },
1826
1854
  "feel": "optional",
1855
+ "group": "authentication",
1827
1856
  "binding": {
1828
- "type": "zeebe:input",
1829
- "name": "graphql.authentication.token"
1857
+ "name": "authentication.password",
1858
+ "type": "zeebe:input"
1859
+ },
1860
+ "condition": {
1861
+ "property": "authentication.type",
1862
+ "equals": "basic",
1863
+ "type": "simple"
1830
1864
  },
1865
+ "type": "String"
1866
+ },
1867
+ {
1868
+ "id": "authentication.token",
1869
+ "label": "Bearer token",
1870
+ "optional": false,
1831
1871
  "constraints": {
1832
1872
  "notEmpty": true
1833
1873
  },
1874
+ "feel": "optional",
1875
+ "group": "authentication",
1876
+ "binding": {
1877
+ "name": "authentication.token",
1878
+ "type": "zeebe:input"
1879
+ },
1834
1880
  "condition": {
1835
- "property": "authenticationType",
1836
- "equals": "bearer"
1837
- }
1881
+ "property": "authentication.type",
1882
+ "equals": "bearer",
1883
+ "type": "simple"
1884
+ },
1885
+ "type": "String"
1838
1886
  },
1839
1887
  {
1840
- "label": "OAuth token endpoint",
1888
+ "id": "authentication.oauthTokenEndpoint",
1889
+ "label": "OAuth 2.0 token endpoint",
1841
1890
  "description": "The OAuth token endpoint",
1842
- "group": "authentication",
1843
- "type": "String",
1891
+ "optional": false,
1892
+ "constraints": {
1893
+ "notEmpty": true,
1894
+ "pattern": {
1895
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
1896
+ "message": "Must be a http(s) URL"
1897
+ }
1898
+ },
1844
1899
  "feel": "optional",
1900
+ "group": "authentication",
1845
1901
  "binding": {
1846
- "type": "zeebe:input",
1847
- "name": "authentication.oauthTokenEndpoint"
1848
- },
1849
- "constraints": {
1850
- "notEmpty": true
1902
+ "name": "authentication.oauthTokenEndpoint",
1903
+ "type": "zeebe:input"
1851
1904
  },
1852
1905
  "condition": {
1853
- "property": "authenticationType",
1854
- "equals": "oauth-client-credentials-flow"
1855
- }
1906
+ "property": "authentication.type",
1907
+ "equals": "oauth-client-credentials-flow",
1908
+ "type": "simple"
1909
+ },
1910
+ "type": "String"
1856
1911
  },
1857
1912
  {
1913
+ "id": "authentication.clientId",
1858
1914
  "label": "Client ID",
1859
1915
  "description": "Your application's client ID from the OAuth client",
1860
- "group": "authentication",
1861
- "type": "String",
1862
- "feel": "optional",
1863
- "binding": {
1864
- "type": "zeebe:input",
1865
- "name": "authentication.clientId"
1866
- },
1916
+ "optional": false,
1867
1917
  "constraints": {
1868
1918
  "notEmpty": true
1869
1919
  },
1920
+ "feel": "optional",
1921
+ "group": "authentication",
1922
+ "binding": {
1923
+ "name": "authentication.clientId",
1924
+ "type": "zeebe:input"
1925
+ },
1870
1926
  "condition": {
1871
- "property": "authenticationType",
1872
- "equals": "oauth-client-credentials-flow"
1873
- }
1927
+ "property": "authentication.type",
1928
+ "equals": "oauth-client-credentials-flow",
1929
+ "type": "simple"
1930
+ },
1931
+ "type": "String"
1874
1932
  },
1875
1933
  {
1934
+ "id": "authentication.clientSecret",
1876
1935
  "label": "Client secret",
1877
1936
  "description": "Your application's client secret from the OAuth client",
1878
- "group": "authentication",
1879
- "type": "String",
1880
- "feel": "optional",
1881
- "binding": {
1882
- "type": "zeebe:input",
1883
- "name": "authentication.clientSecret"
1884
- },
1937
+ "optional": false,
1885
1938
  "constraints": {
1886
1939
  "notEmpty": true
1887
1940
  },
1941
+ "feel": "optional",
1942
+ "group": "authentication",
1943
+ "binding": {
1944
+ "name": "authentication.clientSecret",
1945
+ "type": "zeebe:input"
1946
+ },
1888
1947
  "condition": {
1889
- "property": "authenticationType",
1890
- "equals": "oauth-client-credentials-flow"
1891
- }
1948
+ "property": "authentication.type",
1949
+ "equals": "oauth-client-credentials-flow",
1950
+ "type": "simple"
1951
+ },
1952
+ "type": "String"
1892
1953
  },
1893
1954
  {
1894
- "label": "Scopes",
1895
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
1896
- "group": "authentication",
1897
- "type": "String",
1898
- "feel": "optional",
1955
+ "id": "authentication.audience",
1956
+ "label": "Audience",
1957
+ "description": "The unique identifier of the target API you want to access",
1899
1958
  "optional": true,
1959
+ "feel": "optional",
1960
+ "group": "authentication",
1900
1961
  "binding": {
1901
- "type": "zeebe:input",
1902
- "name": "authentication.scopes"
1962
+ "name": "authentication.audience",
1963
+ "type": "zeebe:input"
1903
1964
  },
1904
1965
  "condition": {
1905
- "property": "authenticationType",
1906
- "equals": "oauth-client-credentials-flow"
1907
- }
1966
+ "property": "authentication.type",
1967
+ "equals": "oauth-client-credentials-flow",
1968
+ "type": "simple"
1969
+ },
1970
+ "type": "String"
1908
1971
  },
1909
1972
  {
1910
- "label": "Audience",
1911
- "description": "The unique identifier of the target API you want to access",
1973
+ "id": "authentication.clientAuthentication",
1974
+ "label": "Client authentication",
1975
+ "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
1976
+ "optional": false,
1977
+ "constraints": {
1978
+ "notEmpty": true
1979
+ },
1912
1980
  "group": "authentication",
1913
- "type": "String",
1914
- "feel": "optional",
1915
- "optional": true,
1916
1981
  "binding": {
1917
- "type": "zeebe:input",
1918
- "name": "authentication.audience"
1982
+ "name": "authentication.clientAuthentication",
1983
+ "type": "zeebe:input"
1984
+ },
1985
+ "condition": {
1986
+ "property": "authentication.type",
1987
+ "equals": "oauth-client-credentials-flow",
1988
+ "type": "simple"
1989
+ },
1990
+ "type": "Dropdown",
1991
+ "choices": [
1992
+ {
1993
+ "name": "Send client credentials in body",
1994
+ "value": "credentialsBody"
1995
+ },
1996
+ {
1997
+ "name": "Send as Basic Auth header",
1998
+ "value": "basicAuthHeader"
1999
+ }
2000
+ ]
2001
+ },
2002
+ {
2003
+ "id": "authentication.scopes",
2004
+ "label": "Scopes",
2005
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2006
+ "optional": true,
2007
+ "feel": "optional",
2008
+ "group": "authentication",
2009
+ "binding": {
2010
+ "name": "authentication.scopes",
2011
+ "type": "zeebe:input"
1919
2012
  },
1920
2013
  "condition": {
1921
- "property": "authenticationType",
1922
- "equals": "oauth-client-credentials-flow"
1923
- }
2014
+ "property": "authentication.type",
2015
+ "equals": "oauth-client-credentials-flow",
2016
+ "type": "simple"
2017
+ },
2018
+ "type": "String"
1924
2019
  },
1925
2020
  {
1926
- "label": "Client authentication",
1927
- "id": "authentication.clientAuthentication",
1928
- "group": "authentication",
1929
- "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
1930
- "value": "basicAuthHeader",
2021
+ "id": "graphql.method",
2022
+ "label": "Method",
2023
+ "optional": false,
2024
+ "value": "get",
2025
+ "constraints": {
2026
+ "notEmpty": true
2027
+ },
2028
+ "group": "endpoint",
2029
+ "binding": {
2030
+ "name": "graphql.method",
2031
+ "type": "zeebe:input"
2032
+ },
1931
2033
  "type": "Dropdown",
1932
2034
  "choices": [
1933
2035
  {
1934
- "name": "Send client credentials in body",
1935
- "value": "credentialsBody"
2036
+ "name": "GET",
2037
+ "value": "get"
1936
2038
  },
1937
2039
  {
1938
- "name": "Send as Basic Auth header",
1939
- "value": "basicAuthHeader"
2040
+ "name": "POST",
2041
+ "value": "post"
1940
2042
  }
1941
- ],
1942
- "binding": {
1943
- "type": "zeebe:input",
1944
- "name": "authentication.clientAuthentication"
1945
- },
1946
- "condition": {
1947
- "property": "authenticationType",
1948
- "equals": "oauth-client-credentials-flow"
1949
- }
2043
+ ]
1950
2044
  },
1951
2045
  {
1952
- "label": "Username",
1953
- "group": "authentication",
1954
- "type": "String",
2046
+ "id": "graphql.url",
2047
+ "label": "URL",
2048
+ "optional": false,
2049
+ "constraints": {
2050
+ "notEmpty": true,
2051
+ "pattern": {
2052
+ "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2053
+ "message": "Must be a http(s) URL"
2054
+ }
2055
+ },
1955
2056
  "feel": "optional",
2057
+ "group": "endpoint",
1956
2058
  "binding": {
1957
- "type": "zeebe:input",
1958
- "name": "authentication.username"
2059
+ "name": "graphql.url",
2060
+ "type": "zeebe:input"
1959
2061
  },
1960
- "constraints": {
1961
- "notEmpty": true
2062
+ "type": "String"
2063
+ },
2064
+ {
2065
+ "id": "graphql.headers",
2066
+ "label": "Headers",
2067
+ "description": "Map of HTTP headers to add to the request",
2068
+ "optional": true,
2069
+ "feel": "required",
2070
+ "group": "endpoint",
2071
+ "binding": {
2072
+ "name": "graphql.headers",
2073
+ "type": "zeebe:input"
1962
2074
  },
1963
- "condition": {
1964
- "property": "authenticationType",
1965
- "equals": "basic"
1966
- }
2075
+ "type": "String"
1967
2076
  },
1968
2077
  {
1969
- "label": "Password",
1970
- "group": "authentication",
1971
- "type": "String",
1972
- "feel": "optional",
2078
+ "id": "graphql.storeResponse",
2079
+ "label": "Store response",
2080
+ "description": "Store the response as a document in the document store",
2081
+ "optional": false,
2082
+ "value": false,
2083
+ "feel": "static",
2084
+ "group": "endpoint",
1973
2085
  "binding": {
1974
- "type": "zeebe:input",
1975
- "name": "authentication.password"
2086
+ "name": "graphql.storeResponse",
2087
+ "type": "zeebe:input"
1976
2088
  },
2089
+ "type": "Boolean"
2090
+ },
2091
+ {
2092
+ "id": "graphql.query",
2093
+ "label": "Query/Mutation",
2094
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2095
+ "optional": false,
1977
2096
  "constraints": {
1978
2097
  "notEmpty": true
1979
2098
  },
1980
- "condition": {
1981
- "property": "authenticationType",
1982
- "equals": "basic"
1983
- }
2099
+ "feel": "optional",
2100
+ "group": "graphql",
2101
+ "binding": {
2102
+ "name": "graphql.query",
2103
+ "type": "zeebe:input"
2104
+ },
2105
+ "type": "Text"
1984
2106
  },
1985
2107
  {
1986
- "label": "Connection timeout",
2108
+ "id": "graphql.variables",
2109
+ "label": "Variables",
2110
+ "optional": true,
2111
+ "feel": "required",
2112
+ "group": "graphql",
2113
+ "binding": {
2114
+ "name": "graphql.variables",
2115
+ "type": "zeebe:input"
2116
+ },
2117
+ "type": "String"
2118
+ },
2119
+ {
2120
+ "id": "graphql.connectionTimeoutInSeconds",
2121
+ "label": "Connection timeout in seconds",
1987
2122
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2123
+ "optional": true,
2124
+ "value": 20,
2125
+ "feel": "static",
1988
2126
  "group": "timeout",
1989
- "type": "String",
1990
- "value": "20",
1991
2127
  "binding": {
1992
- "type": "zeebe:input",
1993
- "name": "graphql.connectionTimeoutInSeconds"
2128
+ "name": "graphql.connectionTimeoutInSeconds",
2129
+ "type": "zeebe:input"
1994
2130
  },
1995
- "feel": "optional",
1996
- "optional": true,
1997
- "constraints": {
1998
- "notEmpty": false,
1999
- "pattern": {
2000
- "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
2001
- "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2002
- }
2003
- }
2131
+ "type": "Number"
2004
2132
  },
2005
2133
  {
2134
+ "id": "resultVariable",
2006
2135
  "label": "Result variable",
2007
2136
  "description": "Name of variable to store the response in",
2008
2137
  "group": "output",
2009
- "type": "String",
2010
2138
  "binding": {
2011
- "type": "zeebe:taskHeader",
2012
- "key": "resultVariable"
2013
- }
2139
+ "key": "resultVariable",
2140
+ "type": "zeebe:taskHeader"
2141
+ },
2142
+ "type": "String"
2014
2143
  },
2015
2144
  {
2145
+ "id": "resultExpression",
2016
2146
  "label": "Result expression",
2017
2147
  "description": "Expression to map the response into process variables",
2018
- "group": "output",
2019
- "type": "Text",
2020
2148
  "feel": "required",
2149
+ "group": "output",
2021
2150
  "binding": {
2022
- "type": "zeebe:taskHeader",
2023
- "key": "resultExpression"
2024
- }
2151
+ "key": "resultExpression",
2152
+ "type": "zeebe:taskHeader"
2153
+ },
2154
+ "type": "Text"
2025
2155
  },
2026
2156
  {
2157
+ "id": "errorExpression",
2027
2158
  "label": "Error expression",
2028
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/#bpmn-errors\" target=\"_blank\">documentation</a>",
2029
- "group": "errors",
2030
- "type": "Text",
2159
+ "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2031
2160
  "feel": "required",
2161
+ "group": "error",
2032
2162
  "binding": {
2033
- "type": "zeebe:taskHeader",
2034
- "key": "errorExpression"
2035
- }
2163
+ "key": "errorExpression",
2164
+ "type": "zeebe:taskHeader"
2165
+ },
2166
+ "type": "Text"
2167
+ },
2168
+ {
2169
+ "id": "retryCount",
2170
+ "label": "Retries",
2171
+ "description": "Number of retries",
2172
+ "value": "3",
2173
+ "feel": "optional",
2174
+ "group": "retries",
2175
+ "binding": {
2176
+ "property": "retries",
2177
+ "type": "zeebe:taskDefinition"
2178
+ },
2179
+ "type": "String"
2180
+ },
2181
+ {
2182
+ "id": "retryBackoff",
2183
+ "label": "Retry backoff",
2184
+ "description": "ISO-8601 duration to wait between retries",
2185
+ "value": "PT0S",
2186
+ "group": "retries",
2187
+ "binding": {
2188
+ "key": "retryBackoff",
2189
+ "type": "zeebe:taskHeader"
2190
+ },
2191
+ "type": "String"
2036
2192
  }
2037
2193
  ],
2038
- "engines": {
2039
- "camunda": "^8.2"
2194
+ "icon": {
2195
+ "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
2040
2196
  }
2041
2197
  },
2042
2198
  {
2043
2199
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2044
- "name": "GraphQL Outbound Connector",
2200
+ "name": "GraphQL connector",
2045
2201
  "id": "io.camunda.connectors.GraphQL.v1",
2046
2202
  "description": "Execute GraphQL query",
2047
- "metadata": {
2048
- "keywords": []
2203
+ "version": 2,
2204
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/",
2205
+ "icon": {
2206
+ "contents": "data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' version='1.1' id='GraphQL_Logo' x='0px' y='0px' viewBox='0 0 400 400' enable-background='new 0 0 400 400' xml:space='preserve'%3E%3Cg%3E%3Cg%3E%3Cg%3E%3Crect x='122' y='-0.4' transform='matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)' fill='%23E535AB' width='16.6' height='320.3'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='39.8' y='272.2' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='37.9' y='312.2' transform='matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='177.1' y='71.1' transform='matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)' fill='%23E535AB' width='185' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='122.1' y='-13' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='109.6' y='151.6' transform='matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)' fill='%23E535AB' width='320.3' height='16.6'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='52.5' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='330.9' y='107.5' fill='%23E535AB' width='16.6' height='185'/%3E%3C/g%3E%3C/g%3E%3Cg%3E%3Cg%3E%3Crect x='262.4' y='240.1' transform='matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)' fill='%23E535AB' width='14.5' height='160.9'/%3E%3C/g%3E%3C/g%3E%3Cpath fill='%23E535AB' d='M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C373.5,259.9,379.2,281.2,369.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8 C94.8,99,100.5,120.3,90.9,137'/%3E%3Cpath fill='%23E535AB' d='M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C61.4,320.3,40.1,314.6,30.5,297.9'/%3E%3Cpath fill='%23E535AB' d='M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7 C340.1,159.4,318.7,153.7,309.1,137'/%3E%3Cpath fill='%23E535AB' d='M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,380.1,219.3,395.8,200,395.8'/%3E%3Cpath fill='%23E535AB' d='M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9 C234.9,58.4,219.3,74,200,74'/%3E%3C/g%3E%3C/svg%3E"
2049
2207
  },
2050
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/graphql/",
2051
- "version": 7,
2052
2208
  "category": {
2053
2209
  "id": "connectors",
2054
2210
  "name": "Connectors"
@@ -2057,9 +2213,6 @@
2057
2213
  "elementType": {
2058
2214
  "value": "bpmn:ServiceTask"
2059
2215
  },
2060
- "engines": {
2061
- "camunda": "^8.3"
2062
- },
2063
2216
  "groups": [
2064
2217
  {
2065
2218
  "id": "authentication",
@@ -2067,7 +2220,7 @@
2067
2220
  },
2068
2221
  {
2069
2222
  "id": "endpoint",
2070
- "label": "HTTP Endpoint"
2223
+ "label": "HTTP endpoint"
2071
2224
  },
2072
2225
  {
2073
2226
  "id": "graphql",
@@ -2075,45 +2228,37 @@
2075
2228
  },
2076
2229
  {
2077
2230
  "id": "timeout",
2078
- "label": "Connection timeout"
2231
+ "label": "Connect timeout"
2079
2232
  },
2080
2233
  {
2081
2234
  "id": "output",
2082
- "label": "Output mapping"
2235
+ "label": "Response mapping"
2083
2236
  },
2084
2237
  {
2085
- "id": "error",
2238
+ "id": "errors",
2086
2239
  "label": "Error handling"
2087
- },
2088
- {
2089
- "id": "retries",
2090
- "label": "Retries"
2091
2240
  }
2092
2241
  ],
2093
2242
  "properties": [
2094
2243
  {
2244
+ "type": "Hidden",
2095
2245
  "value": "io.camunda:connector-graphql:1",
2096
2246
  "binding": {
2097
- "property": "type",
2098
- "type": "zeebe:taskDefinition"
2099
- },
2100
- "type": "Hidden"
2247
+ "type": "zeebe:taskDefinition",
2248
+ "property": "type"
2249
+ }
2101
2250
  },
2102
2251
  {
2103
- "id": "authentication.type",
2104
2252
  "label": "Type",
2253
+ "id": "authenticationType",
2254
+ "group": "authentication",
2105
2255
  "description": "Choose the authentication type. Select 'None' if no authentication is necessary",
2106
2256
  "value": "noAuth",
2107
- "group": "authentication",
2108
- "binding": {
2109
- "name": "authentication.type",
2110
- "type": "zeebe:input"
2111
- },
2112
2257
  "type": "Dropdown",
2113
2258
  "choices": [
2114
- {
2115
- "name": "API key",
2116
- "value": "apiKey"
2259
+ {
2260
+ "name": "None",
2261
+ "value": "noAuth"
2117
2262
  },
2118
2263
  {
2119
2264
  "name": "Basic",
@@ -2123,250 +2268,202 @@
2123
2268
  "name": "Bearer token",
2124
2269
  "value": "bearer"
2125
2270
  },
2126
- {
2127
- "name": "None",
2128
- "value": "noAuth"
2129
- },
2130
2271
  {
2131
2272
  "name": "OAuth 2.0",
2132
2273
  "value": "oauth-client-credentials-flow"
2133
2274
  }
2134
- ]
2275
+ ],
2276
+ "binding": {
2277
+ "type": "zeebe:input",
2278
+ "name": "authentication.type"
2279
+ }
2135
2280
  },
2136
2281
  {
2137
- "id": "authentication.apiKeyLocation",
2138
- "label": "Api key location",
2139
- "description": "Choose type: Send API key in header or as query parameter.",
2140
- "optional": false,
2141
- "value": "headers",
2142
- "constraints": {
2143
- "notEmpty": true
2144
- },
2145
- "group": "authentication",
2282
+ "label": "URL",
2283
+ "group": "endpoint",
2284
+ "type": "String",
2285
+ "feel": "optional",
2146
2286
  "binding": {
2147
- "name": "authentication.apiKeyLocation",
2148
- "type": "zeebe:input"
2149
- },
2150
- "condition": {
2151
- "property": "authentication.type",
2152
- "equals": "apiKey",
2153
- "type": "simple"
2287
+ "type": "zeebe:input",
2288
+ "name": "graphql.url"
2154
2289
  },
2290
+ "constraints": {
2291
+ "notEmpty": true,
2292
+ "pattern": {
2293
+ "value": "^(=|(https?://|secrets\\..+|\\{\\{secrets\\..+\\}\\}).*$)",
2294
+ "message": "Must be a http(s) URL."
2295
+ }
2296
+ }
2297
+ },
2298
+ {
2299
+ "id": "method",
2300
+ "label": "Method",
2301
+ "group": "endpoint",
2155
2302
  "type": "Dropdown",
2303
+ "value": "post",
2156
2304
  "choices": [
2157
2305
  {
2158
- "name": "Headers",
2159
- "value": "headers"
2306
+ "name": "POST",
2307
+ "value": "post"
2160
2308
  },
2161
2309
  {
2162
- "name": "Query parameters",
2163
- "value": "query"
2310
+ "name": "GET",
2311
+ "value": "get"
2164
2312
  }
2165
- ]
2313
+ ],
2314
+ "binding": {
2315
+ "type": "zeebe:input",
2316
+ "name": "graphql.method"
2317
+ }
2166
2318
  },
2167
2319
  {
2168
- "id": "authentication.name",
2169
- "label": "API key name",
2170
- "optional": false,
2171
- "constraints": {
2172
- "notEmpty": true
2173
- },
2174
- "feel": "optional",
2175
- "group": "authentication",
2320
+ "id": "headers",
2321
+ "label": "Headers",
2322
+ "group": "endpoint",
2323
+ "type": "Text",
2324
+ "feel": "required",
2325
+ "optional": true,
2176
2326
  "binding": {
2177
- "name": "authentication.name",
2178
- "type": "zeebe:input"
2179
- },
2180
- "condition": {
2181
- "property": "authentication.type",
2182
- "equals": "apiKey",
2183
- "type": "simple"
2184
- },
2185
- "type": "String"
2327
+ "type": "zeebe:input",
2328
+ "name": "graphql.headers"
2329
+ }
2186
2330
  },
2187
2331
  {
2188
- "id": "authentication.value",
2189
- "label": "API key value",
2190
- "optional": false,
2191
- "constraints": {
2192
- "notEmpty": true
2193
- },
2194
- "feel": "optional",
2195
- "group": "authentication",
2332
+ "label": "Query/Mutation",
2333
+ "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2334
+ "group": "graphql",
2335
+ "type": "Text",
2336
+ "language": "graphql",
2196
2337
  "binding": {
2197
- "name": "authentication.value",
2198
- "type": "zeebe:input"
2199
- },
2200
- "condition": {
2201
- "property": "authentication.type",
2202
- "equals": "apiKey",
2203
- "type": "simple"
2338
+ "type": "zeebe:input",
2339
+ "name": "graphql.query"
2204
2340
  },
2205
- "type": "String"
2206
- },
2207
- {
2208
- "id": "authentication.username",
2209
- "label": "Username",
2210
2341
  "optional": false,
2211
2342
  "constraints": {
2212
2343
  "notEmpty": true
2213
- },
2214
- "feel": "optional",
2215
- "group": "authentication",
2216
- "binding": {
2217
- "name": "authentication.username",
2218
- "type": "zeebe:input"
2219
- },
2220
- "condition": {
2221
- "property": "authentication.type",
2222
- "equals": "basic",
2223
- "type": "simple"
2224
- },
2225
- "type": "String"
2344
+ }
2226
2345
  },
2227
2346
  {
2228
- "id": "authentication.password",
2229
- "label": "Password",
2230
- "optional": false,
2231
- "constraints": {
2232
- "notEmpty": true
2233
- },
2234
- "feel": "optional",
2235
- "group": "authentication",
2347
+ "label": "Variables",
2348
+ "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>",
2349
+ "group": "graphql",
2350
+ "type": "Text",
2351
+ "feel": "required",
2236
2352
  "binding": {
2237
- "name": "authentication.password",
2238
- "type": "zeebe:input"
2239
- },
2240
- "condition": {
2241
- "property": "authentication.type",
2242
- "equals": "basic",
2243
- "type": "simple"
2353
+ "type": "zeebe:input",
2354
+ "name": "graphql.variables"
2244
2355
  },
2245
- "type": "String"
2356
+ "optional": true
2246
2357
  },
2247
2358
  {
2248
- "id": "authentication.token",
2249
2359
  "label": "Bearer token",
2250
- "optional": false,
2251
- "constraints": {
2252
- "notEmpty": true
2253
- },
2254
- "feel": "optional",
2255
2360
  "group": "authentication",
2361
+ "type": "String",
2362
+ "feel": "optional",
2256
2363
  "binding": {
2257
- "name": "authentication.token",
2258
- "type": "zeebe:input"
2364
+ "type": "zeebe:input",
2365
+ "name": "graphql.authentication.token"
2259
2366
  },
2260
- "condition": {
2261
- "property": "authentication.type",
2262
- "equals": "bearer",
2263
- "type": "simple"
2367
+ "constraints": {
2368
+ "notEmpty": true
2264
2369
  },
2265
- "type": "String"
2370
+ "condition": {
2371
+ "property": "authenticationType",
2372
+ "equals": "bearer"
2373
+ }
2266
2374
  },
2267
2375
  {
2268
- "id": "authentication.oauthTokenEndpoint",
2269
- "label": "OAuth 2.0 token endpoint",
2376
+ "label": "OAuth token endpoint",
2270
2377
  "description": "The OAuth token endpoint",
2271
- "optional": false,
2272
- "constraints": {
2273
- "notEmpty": true,
2274
- "pattern": {
2275
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2276
- "message": "Must be a http(s) URL"
2277
- }
2278
- },
2279
- "feel": "optional",
2280
2378
  "group": "authentication",
2379
+ "type": "String",
2380
+ "feel": "optional",
2281
2381
  "binding": {
2282
- "name": "authentication.oauthTokenEndpoint",
2283
- "type": "zeebe:input"
2382
+ "type": "zeebe:input",
2383
+ "name": "authentication.oauthTokenEndpoint"
2284
2384
  },
2285
- "condition": {
2286
- "property": "authentication.type",
2287
- "equals": "oauth-client-credentials-flow",
2288
- "type": "simple"
2385
+ "constraints": {
2386
+ "notEmpty": true
2289
2387
  },
2290
- "type": "String"
2388
+ "condition": {
2389
+ "property": "authenticationType",
2390
+ "equals": "oauth-client-credentials-flow"
2391
+ }
2291
2392
  },
2292
2393
  {
2293
- "id": "authentication.clientId",
2294
2394
  "label": "Client ID",
2295
2395
  "description": "Your application's client ID from the OAuth client",
2296
- "optional": false,
2297
- "constraints": {
2298
- "notEmpty": true
2299
- },
2300
- "feel": "optional",
2301
2396
  "group": "authentication",
2397
+ "type": "String",
2398
+ "feel": "optional",
2302
2399
  "binding": {
2303
- "name": "authentication.clientId",
2304
- "type": "zeebe:input"
2400
+ "type": "zeebe:input",
2401
+ "name": "authentication.clientId"
2305
2402
  },
2306
- "condition": {
2307
- "property": "authentication.type",
2308
- "equals": "oauth-client-credentials-flow",
2309
- "type": "simple"
2403
+ "constraints": {
2404
+ "notEmpty": true
2310
2405
  },
2311
- "type": "String"
2406
+ "condition": {
2407
+ "property": "authenticationType",
2408
+ "equals": "oauth-client-credentials-flow"
2409
+ }
2312
2410
  },
2313
2411
  {
2314
- "id": "authentication.clientSecret",
2315
2412
  "label": "Client secret",
2316
2413
  "description": "Your application's client secret from the OAuth client",
2317
- "optional": false,
2414
+ "group": "authentication",
2415
+ "type": "String",
2416
+ "feel": "optional",
2417
+ "binding": {
2418
+ "type": "zeebe:input",
2419
+ "name": "authentication.clientSecret"
2420
+ },
2318
2421
  "constraints": {
2319
2422
  "notEmpty": true
2320
2423
  },
2321
- "feel": "optional",
2424
+ "condition": {
2425
+ "property": "authenticationType",
2426
+ "equals": "oauth-client-credentials-flow"
2427
+ }
2428
+ },
2429
+ {
2430
+ "label": "Scopes",
2431
+ "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2322
2432
  "group": "authentication",
2433
+ "type": "String",
2434
+ "feel": "optional",
2435
+ "optional": true,
2323
2436
  "binding": {
2324
- "name": "authentication.clientSecret",
2325
- "type": "zeebe:input"
2326
- },
2327
- "condition": {
2328
- "property": "authentication.type",
2329
- "equals": "oauth-client-credentials-flow",
2330
- "type": "simple"
2437
+ "type": "zeebe:input",
2438
+ "name": "authentication.scopes"
2331
2439
  },
2332
- "type": "String"
2440
+ "condition": {
2441
+ "property": "authenticationType",
2442
+ "equals": "oauth-client-credentials-flow"
2443
+ }
2333
2444
  },
2334
2445
  {
2335
- "id": "authentication.audience",
2336
2446
  "label": "Audience",
2337
2447
  "description": "The unique identifier of the target API you want to access",
2338
- "optional": true,
2339
- "feel": "optional",
2340
2448
  "group": "authentication",
2449
+ "type": "String",
2450
+ "feel": "optional",
2451
+ "optional": true,
2341
2452
  "binding": {
2342
- "name": "authentication.audience",
2343
- "type": "zeebe:input"
2453
+ "type": "zeebe:input",
2454
+ "name": "authentication.audience"
2344
2455
  },
2345
2456
  "condition": {
2346
- "property": "authentication.type",
2347
- "equals": "oauth-client-credentials-flow",
2348
- "type": "simple"
2349
- },
2350
- "type": "String"
2457
+ "property": "authenticationType",
2458
+ "equals": "oauth-client-credentials-flow"
2459
+ }
2351
2460
  },
2352
2461
  {
2353
- "id": "authentication.clientAuthentication",
2354
2462
  "label": "Client authentication",
2355
- "description": "Send client ID and client secret as Basic Auth request in the header, or as client credentials in the request body",
2356
- "optional": false,
2357
- "constraints": {
2358
- "notEmpty": true
2359
- },
2463
+ "id": "authentication.clientAuthentication",
2360
2464
  "group": "authentication",
2361
- "binding": {
2362
- "name": "authentication.clientAuthentication",
2363
- "type": "zeebe:input"
2364
- },
2365
- "condition": {
2366
- "property": "authentication.type",
2367
- "equals": "oauth-client-credentials-flow",
2368
- "type": "simple"
2369
- },
2465
+ "description": "Send client id and client secret as Basic Auth request in the header, or as client credentials in the request body",
2466
+ "value": "basicAuthHeader",
2370
2467
  "type": "Dropdown",
2371
2468
  "choices": [
2372
2469
  {
@@ -2377,202 +2474,105 @@
2377
2474
  "name": "Send as Basic Auth header",
2378
2475
  "value": "basicAuthHeader"
2379
2476
  }
2380
- ]
2381
- },
2382
- {
2383
- "id": "authentication.scopes",
2384
- "label": "Scopes",
2385
- "description": "The scopes which you want to request authorization for (e.g.read:contacts)",
2386
- "optional": true,
2387
- "feel": "optional",
2388
- "group": "authentication",
2477
+ ],
2389
2478
  "binding": {
2390
- "name": "authentication.scopes",
2391
- "type": "zeebe:input"
2479
+ "type": "zeebe:input",
2480
+ "name": "authentication.clientAuthentication"
2392
2481
  },
2393
2482
  "condition": {
2394
- "property": "authentication.type",
2395
- "equals": "oauth-client-credentials-flow",
2396
- "type": "simple"
2397
- },
2398
- "type": "String"
2399
- },
2400
- {
2401
- "id": "graphql.method",
2402
- "label": "Method",
2403
- "optional": false,
2404
- "value": "get",
2405
- "constraints": {
2406
- "notEmpty": true
2407
- },
2408
- "group": "endpoint",
2409
- "binding": {
2410
- "name": "graphql.method",
2411
- "type": "zeebe:input"
2412
- },
2413
- "type": "Dropdown",
2414
- "choices": [
2415
- {
2416
- "name": "GET",
2417
- "value": "get"
2418
- },
2419
- {
2420
- "name": "POST",
2421
- "value": "post"
2422
- }
2423
- ]
2483
+ "property": "authenticationType",
2484
+ "equals": "oauth-client-credentials-flow"
2485
+ }
2424
2486
  },
2425
2487
  {
2426
- "id": "graphql.url",
2427
- "label": "URL",
2428
- "optional": false,
2429
- "constraints": {
2430
- "notEmpty": true,
2431
- "pattern": {
2432
- "value": "^(=|(http://|https://|secrets|\\{\\{).*$)",
2433
- "message": "Must be a http(s) URL"
2434
- }
2435
- },
2488
+ "label": "Username",
2489
+ "group": "authentication",
2490
+ "type": "String",
2436
2491
  "feel": "optional",
2437
- "group": "endpoint",
2438
2492
  "binding": {
2439
- "name": "graphql.url",
2440
- "type": "zeebe:input"
2493
+ "type": "zeebe:input",
2494
+ "name": "authentication.username"
2441
2495
  },
2442
- "type": "String"
2443
- },
2444
- {
2445
- "id": "graphql.headers",
2446
- "label": "Headers",
2447
- "description": "Map of HTTP headers to add to the request",
2448
- "optional": true,
2449
- "feel": "required",
2450
- "group": "endpoint",
2451
- "binding": {
2452
- "name": "graphql.headers",
2453
- "type": "zeebe:input"
2496
+ "constraints": {
2497
+ "notEmpty": true
2454
2498
  },
2455
- "type": "String"
2499
+ "condition": {
2500
+ "property": "authenticationType",
2501
+ "equals": "basic"
2502
+ }
2456
2503
  },
2457
2504
  {
2458
- "id": "graphql.storeResponse",
2459
- "label": "Store response",
2460
- "description": "Store the response as a document in the document store",
2461
- "optional": false,
2462
- "value": false,
2463
- "feel": "static",
2464
- "group": "endpoint",
2505
+ "label": "Password",
2506
+ "group": "authentication",
2507
+ "type": "String",
2508
+ "feel": "optional",
2465
2509
  "binding": {
2466
- "name": "graphql.storeResponse",
2467
- "type": "zeebe:input"
2510
+ "type": "zeebe:input",
2511
+ "name": "authentication.password"
2468
2512
  },
2469
- "type": "Boolean"
2470
- },
2471
- {
2472
- "id": "graphql.query",
2473
- "label": "Query/Mutation",
2474
- "description": "See <a href=\"https://docs.camunda.io/docs/components/connectors/protocol/graphql/#querymutation\" target=\"_blank\">documentation</a>",
2475
- "optional": false,
2476
2513
  "constraints": {
2477
2514
  "notEmpty": true
2478
2515
  },
2479
- "feel": "optional",
2480
- "group": "graphql",
2481
- "binding": {
2482
- "name": "graphql.query",
2483
- "type": "zeebe:input"
2484
- },
2485
- "type": "Text"
2486
- },
2487
- {
2488
- "id": "graphql.variables",
2489
- "label": "Variables",
2490
- "optional": true,
2491
- "feel": "required",
2492
- "group": "graphql",
2493
- "binding": {
2494
- "name": "graphql.variables",
2495
- "type": "zeebe:input"
2496
- },
2497
- "type": "String"
2516
+ "condition": {
2517
+ "property": "authenticationType",
2518
+ "equals": "basic"
2519
+ }
2498
2520
  },
2499
2521
  {
2500
- "id": "graphql.connectionTimeoutInSeconds",
2501
- "label": "Connection timeout in seconds",
2522
+ "label": "Connection timeout",
2502
2523
  "description": "Sets the timeout in seconds to establish a connection or 0 for an infinite timeout",
2503
- "optional": true,
2504
- "value": 20,
2505
- "feel": "static",
2506
2524
  "group": "timeout",
2525
+ "type": "String",
2526
+ "value": "20",
2507
2527
  "binding": {
2508
- "name": "graphql.connectionTimeoutInSeconds",
2509
- "type": "zeebe:input"
2528
+ "type": "zeebe:input",
2529
+ "name": "graphql.connectionTimeoutInSeconds"
2510
2530
  },
2511
- "type": "Number"
2531
+ "feel": "optional",
2532
+ "optional": true,
2533
+ "constraints": {
2534
+ "notEmpty": false,
2535
+ "pattern": {
2536
+ "value": "^(=|([0-9]+|secrets\\..+|\\{\\{secrets\\..+\\}\\})$)",
2537
+ "message": "Must be a timeout in seconds (default value is 20 seconds) or a FEEL expression"
2538
+ }
2539
+ }
2512
2540
  },
2513
2541
  {
2514
- "id": "resultVariable",
2515
2542
  "label": "Result variable",
2516
2543
  "description": "Name of variable to store the response in",
2517
2544
  "group": "output",
2545
+ "type": "String",
2518
2546
  "binding": {
2519
- "key": "resultVariable",
2520
- "type": "zeebe:taskHeader"
2521
- },
2522
- "type": "String"
2547
+ "type": "zeebe:taskHeader",
2548
+ "key": "resultVariable"
2549
+ }
2523
2550
  },
2524
2551
  {
2525
- "id": "resultExpression",
2526
2552
  "label": "Result expression",
2527
2553
  "description": "Expression to map the response into process variables",
2528
- "feel": "required",
2529
2554
  "group": "output",
2555
+ "type": "Text",
2556
+ "feel": "required",
2530
2557
  "binding": {
2531
- "key": "resultExpression",
2532
- "type": "zeebe:taskHeader"
2533
- },
2534
- "type": "Text"
2558
+ "type": "zeebe:taskHeader",
2559
+ "key": "resultExpression"
2560
+ }
2535
2561
  },
2536
2562
  {
2537
- "id": "errorExpression",
2538
2563
  "label": "Error expression",
2539
- "description": "Expression to handle errors. Details in the <a href=\"https://docs.camunda.io/docs/components/connectors/use-connectors/\" target=\"_blank\">documentation</a>.",
2564
+ "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>",
2565
+ "group": "errors",
2566
+ "type": "Text",
2540
2567
  "feel": "required",
2541
- "group": "error",
2542
- "binding": {
2543
- "key": "errorExpression",
2544
- "type": "zeebe:taskHeader"
2545
- },
2546
- "type": "Text"
2547
- },
2548
- {
2549
- "id": "retryCount",
2550
- "label": "Retries",
2551
- "description": "Number of retries",
2552
- "value": "3",
2553
- "feel": "optional",
2554
- "group": "retries",
2555
- "binding": {
2556
- "property": "retries",
2557
- "type": "zeebe:taskDefinition"
2558
- },
2559
- "type": "String"
2560
- },
2561
- {
2562
- "id": "retryBackoff",
2563
- "label": "Retry backoff",
2564
- "description": "ISO-8601 duration to wait between retries",
2565
- "value": "PT0S",
2566
- "group": "retries",
2567
2568
  "binding": {
2568
- "key": "retryBackoff",
2569
- "type": "zeebe:taskHeader"
2570
- },
2571
- "type": "String"
2569
+ "type": "zeebe:taskHeader",
2570
+ "key": "errorExpression"
2571
+ }
2572
2572
  }
2573
2573
  ],
2574
- "icon": {
2575
- "contents": "data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHhtbG5zOnhsaW5rPSdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rJyB2ZXJzaW9uPScxLjEnIGlkPSdHcmFwaFFMX0xvZ28nCiAgICAgeD0nMHB4JyB5PScwcHgnIHZpZXdCb3g9JzAgMCA0MDAgNDAwJyBlbmFibGUtYmFja2dyb3VuZD0nbmV3IDAgMCA0MDAgNDAwJyB4bWw6c3BhY2U9J3ByZXNlcnZlJz48Zz48Zz48Zz48cmVjdCB4PScxMjInIHk9Jy0wLjQnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjg2NiAtMC41IDAuNSAtMC44NjYgMTYzLjMxOTYgMzYzLjMxMzYpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PSczMjAuMycvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMzkuOCcgeT0nMjcyLjInIGZpbGw9JyNFNTM1QUInIHdpZHRoPSczMjAuMycgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PSczNy45JyB5PSczMTIuMicgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA4My4wNjkzIDY2My4zNDA5KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE4NScgaGVpZ2h0PScxNi42Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScxNzcuMScgeT0nNzEuMScgdHJhbnNmb3JtPSdtYXRyaXgoLTAuODY2IC0wLjUgMC41IC0wLjg2NiA0NjMuMzQwOSAyODMuMDY5MyknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxODUnIGhlaWdodD0nMTYuNicvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTIyLjEnIHk9Jy0xMycgdHJhbnNmb3JtPSdtYXRyaXgoLTAuNSAtMC44NjYgMC44NjYgLTAuNSAxMjYuNzkwMyAyMzIuMTIyMSknIGZpbGw9JyNFNTM1QUInIHdpZHRoPScxNi42JyBoZWlnaHQ9JzE4NScvPjwvZz48L2c+PGc+PGc+PHJlY3QgeD0nMTA5LjYnIHk9JzE1MS42JyB0cmFuc2Zvcm09J21hdHJpeCgtMC41IC0wLjg2NiAwLjg2NiAtMC41IDI2Ni4wODI4IDQ3My4zNzY2KScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzMyMC4zJyBoZWlnaHQ9JzE2LjYnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzUyLjUnIHk9JzEwNy41JyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTYuNicgaGVpZ2h0PScxODUnLz48L2c+PC9nPjxnPjxnPjxyZWN0IHg9JzMzMC45JyB5PScxMDcuNScgZmlsbD0nI0U1MzVBQicgd2lkdGg9JzE2LjYnIGhlaWdodD0nMTg1Jy8+PC9nPjwvZz48Zz48Zz48cmVjdCB4PScyNjIuNCcgeT0nMjQwLjEnIHRyYW5zZm9ybT0nbWF0cml4KC0wLjUgLTAuODY2IDAuODY2IC0wLjUgMTI2Ljc5NTMgNzE0LjI4NzUpJyBmaWxsPScjRTUzNUFCJyB3aWR0aD0nMTQuNScgaGVpZ2h0PScxNjAuOScvPjwvZz48L2c+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zNjkuNSwyOTcuOWMtOS42LDE2LjctMzEsMjIuNC00Ny43LDEyLjhjLTE2LjctOS42LTIyLjQtMzEtMTIuOC00Ny43YzkuNi0xNi43LDMxLTIyLjQsNDcuNy0xMi44IEMzNzMuNSwyNTkuOSwzNzkuMiwyODEuMiwzNjkuNSwyOTcuOScvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNOTAuOSwxMzdjLTkuNiwxNi43LTMxLDIyLjQtNDcuNywxMi44Yy0xNi43LTkuNi0yMi40LTMxLTEyLjgtNDcuN2M5LjYtMTYuNywzMS0yMi40LDQ3LjctMTIuOCBDOTQuOCw5OSwxMDAuNSwxMjAuMyw5MC45LDEzNycvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMzAuNSwyOTcuOWMtOS42LTE2LjctMy45LTM4LDEyLjgtNDcuN2MxNi43LTkuNiwzOC0zLjksNDcuNywxMi44YzkuNiwxNi43LDMuOSwzOC0xMi44LDQ3LjcgQzYxLjQsMzIwLjMsNDAuMSwzMTQuNiwzMC41LDI5Ny45Jy8+PHBhdGgKICAgICAgICBmaWxsPScjRTUzNUFCJwogICAgICAgIGQ9J00zMDkuMSwxMzdjLTkuNi0xNi43LTMuOS0zOCwxMi44LTQ3LjdjMTYuNy05LjYsMzgtMy45LDQ3LjcsMTIuOGM5LjYsMTYuNywzLjksMzgtMTIuOCw0Ny43IEMzNDAuMSwxNTkuNCwzMTguNywxNTMuNywzMDkuMSwxMzcnLz48cGF0aAogICAgICAgIGZpbGw9JyNFNTM1QUInCiAgICAgICAgZD0nTTIwMCwzOTUuOGMtMTkuMywwLTM0LjktMTUuNi0zNC45LTM0LjljMC0xOS4zLDE1LjYtMzQuOSwzNC45LTM0LjljMTkuMywwLDM0LjksMTUuNiwzNC45LDM0LjkgQzIzNC45LDM4MC4xLDIxOS4zLDM5NS44LDIwMCwzOTUuOCcvPjxwYXRoCiAgICAgICAgZmlsbD0nI0U1MzVBQicKICAgICAgICBkPSdNMjAwLDc0Yy0xOS4zLDAtMzQuOS0xNS42LTM0LjktMzQuOWMwLTE5LjMsMTUuNi0zNC45LDM0LjktMzQuOWMxOS4zLDAsMzQuOSwxNS42LDM0LjksMzQuOSBDMjM0LjksNTguNCwyMTkuMyw3NCwyMDAsNzQnLz48L2c+PC9zdmc+"
2574
+ "engines": {
2575
+ "camunda": "^8.2"
2576
2576
  }
2577
2577
  },
2578
2578
  {