@camunda/connectors-element-templates 1.0.6 → 1.0.7

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 (78) hide show
  1. package/package.json +1 -1
  2. package/src/build_element_template_array_json_files.sh +9 -0
  3. package/src/connectors.js +2 -2
  4. package/src/element-templates/agenticai-adhoctoolsschema-outbound-connector.json +1 -0
  5. package/src/element-templates/agenticai-aiagent-job-worker.json +1618 -0
  6. package/src/element-templates/agenticai-aiagent-outbound-connector.json +1593 -36
  7. package/src/element-templates/asana-connector.json +99 -99
  8. package/src/element-templates/automation-anywhere-outbound-connector.json +70 -70
  9. package/src/element-templates/aws-comprehend-outbound-connector.json +36 -36
  10. package/src/element-templates/aws-dynamodb-outbound-connector.json +1423 -1423
  11. package/src/element-templates/aws-eventbridge-connector-boundary.json +26 -26
  12. package/src/element-templates/aws-eventbridge-connector-intermediate.json +38 -38
  13. package/src/element-templates/aws-eventbridge-connector-start-event.json +26 -26
  14. package/src/element-templates/aws-eventbridge-outbound-connector.json +475 -475
  15. package/src/element-templates/aws-lambda-outbound-connector.json +314 -314
  16. package/src/element-templates/aws-sns-inbound-boundary.json +193 -193
  17. package/src/element-templates/aws-sns-inbound-intermediate.json +229 -229
  18. package/src/element-templates/aws-sns-inbound-start-event.json +6 -6
  19. package/src/element-templates/aws-sns-outbound-connector.json +362 -362
  20. package/src/element-templates/aws-sqs-boundary-connector.json +238 -238
  21. package/src/element-templates/aws-sqs-inbound-intermediate-connector.json +528 -528
  22. package/src/element-templates/aws-sqs-outbound-connector.json +393 -393
  23. package/src/element-templates/aws-sqs-start-event-connector.json +748 -748
  24. package/src/element-templates/aws-sqs-start-message.json +422 -422
  25. package/src/element-templates/azure-open-ai-connector.json +32 -32
  26. package/src/element-templates/blue-prism-connector.json +13 -13
  27. package/src/element-templates/box-outbound-connector.json +30 -30
  28. package/src/element-templates/csv-outbound-connector.json +412 -0
  29. package/src/element-templates/easy-post-connector.json +121 -121
  30. package/src/element-templates/email-message-start-event-connector.json +19 -19
  31. package/src/element-templates/email-outbound-connector.json +233 -233
  32. package/src/element-templates/embeddings-vector-database-outbound-connector.json +20 -35
  33. package/src/element-templates/github-connector.json +4988 -4988
  34. package/src/element-templates/github-webhook-connector-boundary.json +21 -21
  35. package/src/element-templates/github-webhook-connector-intermediate.json +24 -24
  36. package/src/element-templates/github-webhook-connector-message-start.json +21 -21
  37. package/src/element-templates/github-webhook-connector-start-event.json +34 -34
  38. package/src/element-templates/gitlab-connector.json +1185 -1185
  39. package/src/element-templates/google-drive-outbound-connector.json +759 -759
  40. package/src/element-templates/google-maps-platform-connector.json +75 -75
  41. package/src/element-templates/google-sheets-outbound-connector.json +1259 -1259
  42. package/src/element-templates/graphql-outbound-connector.json +573 -573
  43. package/src/element-templates/http-json-connector.json +1863 -1863
  44. package/src/element-templates/http-polling-boundary-catch-event-connector.json +7 -7
  45. package/src/element-templates/http-polling-connector.json +7 -7
  46. package/src/element-templates/jdbc-outbound-connector.json +36 -36
  47. package/src/element-templates/kafka-inbound-connector-boundary.json +432 -432
  48. package/src/element-templates/kafka-inbound-connector-intermediate.json +915 -915
  49. package/src/element-templates/kafka-inbound-connector-start-message.json +608 -608
  50. package/src/element-templates/kafka-inbound-connector.json +240 -240
  51. package/src/element-templates/kafka-outbound-connector.json +166 -166
  52. package/src/element-templates/microsoft-office365-mail-connector.json +60 -60
  53. package/src/element-templates/microsoft-teams-outbound-connector.json +4368 -4368
  54. package/src/element-templates/openai-connector.json +173 -173
  55. package/src/element-templates/operate-connector.json +23 -19
  56. package/src/element-templates/power-automate-connector.json +4 -4
  57. package/src/element-templates/rabbitmq-inbound-connector-boundary.json +431 -431
  58. package/src/element-templates/rabbitmq-inbound-connector-intermediate.json +440 -440
  59. package/src/element-templates/rabbitmq-inbound-connector-message-start.json +461 -461
  60. package/src/element-templates/rabbitmq-inbound-connector-start-event.json +487 -487
  61. package/src/element-templates/rabbitmq-outbound-connector.json +360 -360
  62. package/src/element-templates/salesforce-connector.json +10 -10
  63. package/src/element-templates/sendgrid-outbound-connector.json +484 -484
  64. package/src/element-templates/slack-inbound-boundary.json +362 -362
  65. package/src/element-templates/slack-inbound-intermediate.json +438 -438
  66. package/src/element-templates/slack-inbound-message-start.json +217 -217
  67. package/src/element-templates/slack-inbound-start-event.json +235 -235
  68. package/src/element-templates/slack-outbound-connector.json +895 -895
  69. package/src/element-templates/twilio-connector.json +67 -67
  70. package/src/element-templates/twilio-webhook-boundary-connector.json +28 -28
  71. package/src/element-templates/twilio-webhook-connector.json +10 -10
  72. package/src/element-templates/uipath-connector.json +41 -41
  73. package/src/element-templates/webhook-connector-boundary.json +1651 -1651
  74. package/src/element-templates/webhook-connector-intermediate.json +771 -771
  75. package/src/element-templates/webhook-connector-start-event.json +1630 -1630
  76. package/src/element-templates/webhook-connector-start-message.json +1251 -1251
  77. package/src/element-templates/whatsapp-connector.json +42 -42
  78. package/src/element-templates/idp-extraction-outbound-connector.json +0 -932
@@ -531,11 +531,11 @@
531
531
  },
532
532
  {
533
533
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
534
- "name": "Webhook connector",
534
+ "name": "Webhook Start Event Connector",
535
535
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
536
- "version": 6,
537
536
  "description": "Configure webhook to receive callbacks",
538
537
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
538
+ "version": 10,
539
539
  "category": {
540
540
  "id": "connectors",
541
541
  "name": "Connectors"
@@ -558,41 +558,38 @@
558
558
  "label": "Authorization"
559
559
  },
560
560
  {
561
- "id": "activation",
562
- "label": "Activation"
561
+ "id": "webhookResponse",
562
+ "label": "Webhook response"
563
563
  },
564
564
  {
565
- "id": "variable-mapping",
566
- "label": "Variable mapping"
565
+ "id": "activation",
566
+ "label": "Activation"
567
567
  },
568
568
  {
569
- "id": "webhookResponse",
570
- "label": "Webhook response"
569
+ "id": "output",
570
+ "label": "Output mapping"
571
571
  }
572
572
  ],
573
573
  "properties": [
574
574
  {
575
- "type": "Hidden",
576
575
  "value": "io.camunda:webhook:1",
577
576
  "binding": {
578
- "type": "zeebe:property",
579
- "name": "inbound.type"
580
- }
581
- },
582
- {
583
- "type": "Hidden",
584
- "value": "ConfigurableInboundWebhook",
585
- "binding": {
586
- "type": "zeebe:property",
587
- "name": "inbound.subtype"
588
- }
577
+ "name": "inbound.type",
578
+ "type": "zeebe:property"
579
+ },
580
+ "type": "Hidden"
589
581
  },
590
582
  {
591
- "id": "webhookMethod",
583
+ "id": "inbound.method",
592
584
  "label": "Webhook method",
593
- "group": "endpoint",
594
585
  "description": "Select HTTP method",
586
+ "optional": false,
595
587
  "value": "any",
588
+ "group": "endpoint",
589
+ "binding": {
590
+ "name": "inbound.method",
591
+ "type": "zeebe:property"
592
+ },
596
593
  "type": "Dropdown",
597
594
  "choices": [
598
595
  {
@@ -600,46 +597,53 @@
600
597
  "value": "any"
601
598
  },
602
599
  {
603
- "name": "Get",
600
+ "name": "GET",
604
601
  "value": "get"
605
602
  },
606
603
  {
607
- "name": "Post",
604
+ "name": "POST",
608
605
  "value": "post"
609
606
  },
610
607
  {
611
- "name": "Put",
608
+ "name": "PUT",
612
609
  "value": "put"
613
610
  },
614
611
  {
615
- "name": "Delete",
612
+ "name": "DELETE",
616
613
  "value": "delete"
617
614
  }
618
- ],
619
- "binding": {
620
- "type": "zeebe:property",
621
- "name": "inbound.method"
622
- }
615
+ ]
623
616
  },
624
617
  {
618
+ "id": "inbound.context",
625
619
  "label": "Webhook ID",
626
- "type": "String",
620
+ "description": "The webhook ID is a part of the URL",
621
+ "optional": false,
622
+ "constraints": {
623
+ "notEmpty": true,
624
+ "pattern": {
625
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
626
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
627
+ }
628
+ },
627
629
  "group": "endpoint",
628
630
  "binding": {
629
- "type": "zeebe:property",
630
- "name": "inbound.context"
631
+ "name": "inbound.context",
632
+ "type": "zeebe:property"
631
633
  },
632
- "description": "The webhook ID is a part of the URL",
633
- "constraints": {
634
- "notEmpty": true
635
- }
634
+ "type": "String"
636
635
  },
637
636
  {
638
- "id": "shouldValidateHmac",
637
+ "id": "inbound.shouldValidateHmac",
639
638
  "label": "HMAC authentication",
640
- "group": "authentication",
641
639
  "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
640
+ "optional": false,
642
641
  "value": "disabled",
642
+ "group": "authentication",
643
+ "binding": {
644
+ "name": "inbound.shouldValidateHmac",
645
+ "type": "zeebe:property"
646
+ },
643
647
  "type": "Dropdown",
644
648
  "choices": [
645
649
  {
@@ -650,47 +654,60 @@
650
654
  "name": "Disabled",
651
655
  "value": "disabled"
652
656
  }
653
- ],
654
- "binding": {
655
- "type": "zeebe:property",
656
- "name": "inbound.shouldValidateHmac"
657
- }
657
+ ]
658
658
  },
659
659
  {
660
+ "id": "inbound.hmacSecret",
660
661
  "label": "HMAC secret key",
661
662
  "description": "Shared secret key",
662
- "type": "String",
663
- "group": "authentication",
664
663
  "optional": true,
664
+ "feel": "optional",
665
+ "group": "authentication",
665
666
  "binding": {
666
- "type": "zeebe:property",
667
- "name": "inbound.hmacSecret"
667
+ "name": "inbound.hmacSecret",
668
+ "type": "zeebe:property"
668
669
  },
669
670
  "condition": {
670
- "property": "shouldValidateHmac",
671
- "equals": "enabled"
672
- }
671
+ "property": "inbound.shouldValidateHmac",
672
+ "equals": "enabled",
673
+ "type": "simple"
674
+ },
675
+ "type": "String"
673
676
  },
674
677
  {
678
+ "id": "inbound.hmacHeader",
675
679
  "label": "HMAC header",
676
680
  "description": "Name of header attribute that will contain the HMAC value",
677
- "type": "String",
678
- "group": "authentication",
679
681
  "optional": true,
682
+ "feel": "optional",
683
+ "group": "authentication",
680
684
  "binding": {
681
- "type": "zeebe:property",
682
- "name": "inbound.hmacHeader"
685
+ "name": "inbound.hmacHeader",
686
+ "type": "zeebe:property"
683
687
  },
684
688
  "condition": {
685
- "property": "shouldValidateHmac",
686
- "equals": "enabled"
687
- }
689
+ "property": "inbound.shouldValidateHmac",
690
+ "equals": "enabled",
691
+ "type": "simple"
692
+ },
693
+ "type": "String"
688
694
  },
689
695
  {
696
+ "id": "inbound.hmacAlgorithm",
690
697
  "label": "HMAC algorithm",
691
- "group": "authentication",
692
698
  "description": "Choose HMAC algorithm",
699
+ "optional": false,
693
700
  "value": "sha_256",
701
+ "group": "authentication",
702
+ "binding": {
703
+ "name": "inbound.hmacAlgorithm",
704
+ "type": "zeebe:property"
705
+ },
706
+ "condition": {
707
+ "property": "inbound.shouldValidateHmac",
708
+ "equals": "enabled",
709
+ "type": "simple"
710
+ },
694
711
  "type": "Dropdown",
695
712
  "choices": [
696
713
  {
@@ -705,245 +722,266 @@
705
722
  "name": "SHA-512",
706
723
  "value": "sha_512"
707
724
  }
708
- ],
709
- "binding": {
710
- "type": "zeebe:property",
711
- "name": "inbound.hmacAlgorithm"
712
- },
713
- "condition": {
714
- "property": "shouldValidateHmac",
715
- "equals": "enabled"
716
- }
725
+ ]
717
726
  },
718
727
  {
728
+ "id": "inbound.hmacScopes",
719
729
  "label": "HMAC scopes",
720
- "group": "authentication",
721
730
  "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
722
- "feel": "required",
723
- "type": "String",
724
731
  "optional": true,
732
+ "feel": "required",
733
+ "group": "authentication",
725
734
  "binding": {
726
- "type": "zeebe:property",
727
- "name": "inbound.hmacScopes"
735
+ "name": "inbound.hmacScopes",
736
+ "type": "zeebe:property"
728
737
  },
729
738
  "condition": {
730
- "property": "shouldValidateHmac",
731
- "equals": "enabled"
732
- }
739
+ "property": "inbound.shouldValidateHmac",
740
+ "equals": "enabled",
741
+ "type": "simple"
742
+ },
743
+ "type": "String"
733
744
  },
734
745
  {
735
- "id": "authorizationType",
746
+ "id": "inbound.auth.type",
736
747
  "label": "Authorization type",
737
- "group": "authorization",
738
- "description": "Choose the authorization type.",
748
+ "description": "Choose the authorization type",
739
749
  "value": "NONE",
750
+ "group": "authorization",
751
+ "binding": {
752
+ "name": "inbound.auth.type",
753
+ "type": "zeebe:property"
754
+ },
740
755
  "type": "Dropdown",
741
756
  "choices": [
742
757
  {
743
758
  "name": "None",
744
759
  "value": "NONE"
745
760
  },
746
- {
747
- "name": "JWT",
748
- "value": "JWT"
749
- },
750
761
  {
751
762
  "name": "Basic",
752
763
  "value": "BASIC"
753
764
  },
754
765
  {
755
- "name": "API Key",
766
+ "name": "API key",
756
767
  "value": "APIKEY"
768
+ },
769
+ {
770
+ "name": "JWT",
771
+ "value": "JWT"
757
772
  }
758
- ],
759
- "binding": {
760
- "type": "zeebe:property",
761
- "name": "inbound.auth.type"
762
- }
773
+ ]
763
774
  },
764
775
  {
765
- "label": "JWK url",
766
- "description": "Well-known url of JWKs",
767
- "type": "String",
768
- "group": "authorization",
776
+ "id": "inbound.auth.username",
777
+ "label": "Username",
778
+ "description": "Username for basic authentication",
779
+ "optional": false,
769
780
  "feel": "optional",
770
- "optional": true,
781
+ "group": "authorization",
771
782
  "binding": {
772
- "type": "zeebe:property",
773
- "name": "inbound.auth.jwt.jwkUrl"
783
+ "name": "inbound.auth.username",
784
+ "type": "zeebe:property"
774
785
  },
775
786
  "condition": {
776
- "property": "authorizationType",
777
- "equals": "JWT"
778
- }
787
+ "property": "inbound.auth.type",
788
+ "equals": "BASIC",
789
+ "type": "simple"
790
+ },
791
+ "type": "String"
779
792
  },
780
793
  {
781
- "label": "JWT role property expression",
782
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
783
- "type": "String",
794
+ "id": "inbound.auth.password",
795
+ "label": "Password",
796
+ "description": "Password for basic authentication",
797
+ "optional": false,
798
+ "feel": "optional",
784
799
  "group": "authorization",
785
- "feel": "required",
786
- "optional": true,
787
800
  "binding": {
788
- "type": "zeebe:property",
789
- "name": "inbound.auth.jwt.permissionsExpression"
801
+ "name": "inbound.auth.password",
802
+ "type": "zeebe:property"
790
803
  },
791
804
  "condition": {
792
- "property": "authorizationType",
793
- "equals": "JWT"
794
- }
805
+ "property": "inbound.auth.type",
806
+ "equals": "BASIC",
807
+ "type": "simple"
808
+ },
809
+ "type": "String"
795
810
  },
796
811
  {
797
- "label": "Required roles",
798
- "description": "List of roles to test JWT roles against",
799
- "type": "String",
812
+ "id": "inbound.auth.apiKey",
813
+ "label": "API key",
814
+ "description": "Expected API key",
815
+ "optional": false,
816
+ "feel": "optional",
800
817
  "group": "authorization",
801
- "feel": "required",
802
- "optional": true,
803
818
  "binding": {
804
- "type": "zeebe:property",
805
- "name": "inbound.auth.jwt.requiredPermissions"
819
+ "name": "inbound.auth.apiKey",
820
+ "type": "zeebe:property"
806
821
  },
807
822
  "condition": {
808
- "property": "authorizationType",
809
- "equals": "JWT"
810
- }
811
- },
812
- {
813
- "label": "Username",
814
- "description": "Username for basic authentication",
815
- "type": "String",
823
+ "property": "inbound.auth.type",
824
+ "equals": "APIKEY",
825
+ "type": "simple"
826
+ },
827
+ "type": "String"
828
+ },
829
+ {
830
+ "id": "inbound.auth.apiKeyLocator",
831
+ "label": "API key locator",
832
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
833
+ "optional": false,
834
+ "value": "=split(request.headers.authorization, \" \")[2]",
835
+ "constraints": {
836
+ "notEmpty": true
837
+ },
838
+ "feel": "required",
816
839
  "group": "authorization",
817
- "feel": "optional",
818
840
  "binding": {
819
- "type": "zeebe:property",
820
- "name": "inbound.auth.username"
841
+ "name": "inbound.auth.apiKeyLocator",
842
+ "type": "zeebe:property"
821
843
  },
822
844
  "condition": {
823
- "property": "authorizationType",
824
- "equals": "BASIC"
845
+ "property": "inbound.auth.type",
846
+ "equals": "APIKEY",
847
+ "type": "simple"
825
848
  },
826
- "constraints": {
827
- "notEmpty": true
828
- }
849
+ "type": "String"
829
850
  },
830
851
  {
831
- "label": "Password",
832
- "description": "Password for basic authentication",
833
- "type": "String",
834
- "group": "authorization",
852
+ "id": "inbound.auth.jwt.jwkUrl",
853
+ "label": "JWK URL",
854
+ "description": "Well-known URL of JWKs",
855
+ "optional": false,
835
856
  "feel": "optional",
857
+ "group": "authorization",
836
858
  "binding": {
837
- "type": "zeebe:property",
838
- "name": "inbound.auth.password"
859
+ "name": "inbound.auth.jwt.jwkUrl",
860
+ "type": "zeebe:property"
839
861
  },
840
862
  "condition": {
841
- "property": "authorizationType",
842
- "equals": "BASIC"
863
+ "property": "inbound.auth.type",
864
+ "equals": "JWT",
865
+ "type": "simple"
843
866
  },
844
- "constraints": {
845
- "notEmpty": true
846
- }
867
+ "type": "String"
847
868
  },
848
869
  {
849
- "label": "API Key",
850
- "description": "Expected API key",
851
- "type": "String",
870
+ "id": "inbound.auth.jwt.permissionsExpression",
871
+ "label": "JWT role property expression",
872
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
873
+ "optional": false,
874
+ "feel": "required",
852
875
  "group": "authorization",
853
- "feel": "optional",
854
876
  "binding": {
855
- "type": "zeebe:property",
856
- "name": "inbound.auth.apiKey"
877
+ "name": "inbound.auth.jwt.permissionsExpression",
878
+ "type": "zeebe:property"
857
879
  },
858
880
  "condition": {
859
- "property": "authorizationType",
860
- "equals": "APIKEY"
881
+ "property": "inbound.auth.type",
882
+ "equals": "JWT",
883
+ "type": "simple"
861
884
  },
862
- "constraints": {
863
- "notEmpty": true
864
- }
885
+ "type": "String"
865
886
  },
866
887
  {
867
- "label": "API Key locator",
868
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
869
- "type": "String",
870
- "group": "authorization",
888
+ "id": "inbound.auth.jwt.requiredPermissions",
889
+ "label": "Required roles",
890
+ "description": "List of roles to test JWT roles against",
891
+ "optional": false,
871
892
  "feel": "required",
893
+ "group": "authorization",
872
894
  "binding": {
873
- "type": "zeebe:property",
874
- "name": "inbound.auth.apiKeyLocator"
895
+ "name": "inbound.auth.jwt.requiredPermissions",
896
+ "type": "zeebe:property"
875
897
  },
876
898
  "condition": {
877
- "property": "authorizationType",
878
- "equals": "APIKEY"
879
- },
880
- "constraints": {
881
- "notEmpty": true
899
+ "property": "inbound.auth.type",
900
+ "equals": "JWT",
901
+ "type": "simple"
882
902
  },
883
- "value": "=split(request.headers.authorization, \" \")[2]"
903
+ "type": "String"
884
904
  },
885
905
  {
886
- "label": "Condition",
887
- "type": "String",
888
- "group": "activation",
889
- "feel": "required",
906
+ "id": "inbound.responseBodyExpression",
907
+ "label": "Response body expression",
908
+ "description": "Specify condition and response",
890
909
  "optional": true,
910
+ "feel": "required",
911
+ "group": "webhookResponse",
891
912
  "binding": {
892
- "type": "zeebe:property",
893
- "name": "activationCondition"
913
+ "name": "inbound.responseBodyExpression",
914
+ "type": "zeebe:property"
894
915
  },
895
- "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
916
+ "type": "Text"
896
917
  },
897
918
  {
898
- "label": "Result variable",
899
- "type": "String",
900
- "group": "variable-mapping",
919
+ "id": "inbound.verificationExpression",
920
+ "label": "One time verification response expression",
921
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
901
922
  "optional": true,
923
+ "feel": "required",
924
+ "group": "webhookResponse",
902
925
  "binding": {
903
- "type": "zeebe:property",
904
- "name": "resultVariable"
926
+ "name": "inbound.verificationExpression",
927
+ "type": "zeebe:property"
905
928
  },
906
- "description": "Name of variable to store the result of the connector in"
929
+ "type": "Text"
907
930
  },
908
931
  {
909
- "label": "Result expression",
910
- "type": "String",
911
- "group": "variable-mapping",
912
- "feel": "required",
932
+ "id": "activationCondition",
933
+ "label": "Activation condition",
934
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
913
935
  "optional": true,
936
+ "feel": "required",
937
+ "group": "activation",
914
938
  "binding": {
915
- "type": "zeebe:property",
916
- "name": "resultExpression"
939
+ "name": "activationCondition",
940
+ "type": "zeebe:property"
917
941
  },
918
- "description": "Expression to map the inbound payload to process variables"
942
+ "type": "String"
919
943
  },
920
944
  {
921
- "label": "Response body expression",
922
- "type": "Text",
923
- "group": "webhookResponse",
945
+ "id": "resultVariable",
946
+ "label": "Result variable",
947
+ "description": "Name of variable to store the response in",
948
+ "group": "output",
949
+ "binding": {
950
+ "name": "resultVariable",
951
+ "type": "zeebe:property"
952
+ },
953
+ "type": "String"
954
+ },
955
+ {
956
+ "id": "resultExpression",
957
+ "label": "Result expression",
958
+ "description": "Expression to map the response into process variables",
924
959
  "feel": "required",
925
- "optional": true,
960
+ "group": "output",
926
961
  "binding": {
927
- "type": "zeebe:property",
928
- "name": "inbound.responseBodyExpression"
962
+ "name": "resultExpression",
963
+ "type": "zeebe:property"
929
964
  },
930
- "description": "Specify condition and response"
965
+ "type": "Text"
931
966
  }
932
967
  ],
933
968
  "icon": {
934
- "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
969
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
935
970
  },
936
971
  "engines": {
937
- "camunda": "^8.2"
972
+ "camunda": "^8.5"
938
973
  }
939
974
  },
940
975
  {
941
976
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
942
977
  "name": "Webhook Start Event Connector",
943
978
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
944
- "version": 9,
945
979
  "description": "Configure webhook to receive callbacks",
946
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
980
+ "metadata": {
981
+ "keywords": []
982
+ },
983
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
984
+ "version": 12,
947
985
  "category": {
948
986
  "id": "connectors",
949
987
  "name": "Connectors"
@@ -966,41 +1004,38 @@
966
1004
  "label": "Authorization"
967
1005
  },
968
1006
  {
969
- "id": "activation",
970
- "label": "Activation"
1007
+ "id": "webhookResponse",
1008
+ "label": "Webhook response"
971
1009
  },
972
1010
  {
973
- "id": "variable-mapping",
974
- "label": "Variable mapping"
1011
+ "id": "activation",
1012
+ "label": "Activation"
975
1013
  },
976
1014
  {
977
- "id": "webhookResponse",
978
- "label": "Webhook response"
1015
+ "id": "output",
1016
+ "label": "Output mapping"
979
1017
  }
980
1018
  ],
981
1019
  "properties": [
982
1020
  {
983
- "type": "Hidden",
984
1021
  "value": "io.camunda:webhook:1",
985
1022
  "binding": {
986
- "type": "zeebe:property",
987
- "name": "inbound.type"
988
- }
989
- },
990
- {
991
- "type": "Hidden",
992
- "value": "ConfigurableInboundWebhook",
993
- "binding": {
994
- "type": "zeebe:property",
995
- "name": "inbound.subtype"
996
- }
1023
+ "name": "inbound.type",
1024
+ "type": "zeebe:property"
1025
+ },
1026
+ "type": "Hidden"
997
1027
  },
998
1028
  {
999
- "id": "webhookMethod",
1029
+ "id": "inbound.method",
1000
1030
  "label": "Webhook method",
1001
- "group": "endpoint",
1002
1031
  "description": "Select HTTP method",
1032
+ "optional": false,
1003
1033
  "value": "any",
1034
+ "group": "endpoint",
1035
+ "binding": {
1036
+ "name": "inbound.method",
1037
+ "type": "zeebe:property"
1038
+ },
1004
1039
  "type": "Dropdown",
1005
1040
  "choices": [
1006
1041
  {
@@ -1008,50 +1043,53 @@
1008
1043
  "value": "any"
1009
1044
  },
1010
1045
  {
1011
- "name": "Get",
1046
+ "name": "GET",
1012
1047
  "value": "get"
1013
1048
  },
1014
1049
  {
1015
- "name": "Post",
1050
+ "name": "POST",
1016
1051
  "value": "post"
1017
1052
  },
1018
1053
  {
1019
- "name": "Put",
1054
+ "name": "PUT",
1020
1055
  "value": "put"
1021
1056
  },
1022
1057
  {
1023
- "name": "Delete",
1058
+ "name": "DELETE",
1024
1059
  "value": "delete"
1025
1060
  }
1026
- ],
1027
- "binding": {
1028
- "type": "zeebe:property",
1029
- "name": "inbound.method"
1030
- }
1061
+ ]
1031
1062
  },
1032
1063
  {
1064
+ "id": "inbound.context",
1033
1065
  "label": "Webhook ID",
1034
- "type": "String",
1035
- "group": "endpoint",
1036
- "binding": {
1037
- "type": "zeebe:property",
1038
- "name": "inbound.context"
1039
- },
1040
1066
  "description": "The webhook ID is a part of the URL",
1067
+ "optional": false,
1041
1068
  "constraints": {
1042
1069
  "notEmpty": true,
1043
1070
  "pattern": {
1044
1071
  "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
1045
1072
  "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
1046
1073
  }
1047
- }
1074
+ },
1075
+ "group": "endpoint",
1076
+ "binding": {
1077
+ "name": "inbound.context",
1078
+ "type": "zeebe:property"
1079
+ },
1080
+ "type": "String"
1048
1081
  },
1049
1082
  {
1050
- "id": "shouldValidateHmac",
1083
+ "id": "inbound.shouldValidateHmac",
1051
1084
  "label": "HMAC authentication",
1052
- "group": "authentication",
1053
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
1085
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
1086
+ "optional": false,
1054
1087
  "value": "disabled",
1088
+ "group": "authentication",
1089
+ "binding": {
1090
+ "name": "inbound.shouldValidateHmac",
1091
+ "type": "zeebe:property"
1092
+ },
1055
1093
  "type": "Dropdown",
1056
1094
  "choices": [
1057
1095
  {
@@ -1062,47 +1100,60 @@
1062
1100
  "name": "Disabled",
1063
1101
  "value": "disabled"
1064
1102
  }
1065
- ],
1066
- "binding": {
1067
- "type": "zeebe:property",
1068
- "name": "inbound.shouldValidateHmac"
1069
- }
1103
+ ]
1070
1104
  },
1071
1105
  {
1106
+ "id": "inbound.hmacSecret",
1072
1107
  "label": "HMAC secret key",
1073
1108
  "description": "Shared secret key",
1074
- "type": "String",
1075
- "group": "authentication",
1076
1109
  "optional": true,
1110
+ "feel": "optional",
1111
+ "group": "authentication",
1077
1112
  "binding": {
1078
- "type": "zeebe:property",
1079
- "name": "inbound.hmacSecret"
1113
+ "name": "inbound.hmacSecret",
1114
+ "type": "zeebe:property"
1080
1115
  },
1081
1116
  "condition": {
1082
- "property": "shouldValidateHmac",
1083
- "equals": "enabled"
1084
- }
1117
+ "property": "inbound.shouldValidateHmac",
1118
+ "equals": "enabled",
1119
+ "type": "simple"
1120
+ },
1121
+ "type": "String"
1085
1122
  },
1086
1123
  {
1124
+ "id": "inbound.hmacHeader",
1087
1125
  "label": "HMAC header",
1088
1126
  "description": "Name of header attribute that will contain the HMAC value",
1089
- "type": "String",
1090
- "group": "authentication",
1091
1127
  "optional": true,
1128
+ "feel": "optional",
1129
+ "group": "authentication",
1092
1130
  "binding": {
1093
- "type": "zeebe:property",
1094
- "name": "inbound.hmacHeader"
1131
+ "name": "inbound.hmacHeader",
1132
+ "type": "zeebe:property"
1095
1133
  },
1096
1134
  "condition": {
1097
- "property": "shouldValidateHmac",
1098
- "equals": "enabled"
1099
- }
1135
+ "property": "inbound.shouldValidateHmac",
1136
+ "equals": "enabled",
1137
+ "type": "simple"
1138
+ },
1139
+ "type": "String"
1100
1140
  },
1101
1141
  {
1142
+ "id": "inbound.hmacAlgorithm",
1102
1143
  "label": "HMAC algorithm",
1103
- "group": "authentication",
1104
1144
  "description": "Choose HMAC algorithm",
1145
+ "optional": false,
1105
1146
  "value": "sha_256",
1147
+ "group": "authentication",
1148
+ "binding": {
1149
+ "name": "inbound.hmacAlgorithm",
1150
+ "type": "zeebe:property"
1151
+ },
1152
+ "condition": {
1153
+ "property": "inbound.shouldValidateHmac",
1154
+ "equals": "enabled",
1155
+ "type": "simple"
1156
+ },
1106
1157
  "type": "Dropdown",
1107
1158
  "choices": [
1108
1159
  {
@@ -1117,257 +1168,275 @@
1117
1168
  "name": "SHA-512",
1118
1169
  "value": "sha_512"
1119
1170
  }
1120
- ],
1121
- "binding": {
1122
- "type": "zeebe:property",
1123
- "name": "inbound.hmacAlgorithm"
1124
- },
1125
- "condition": {
1126
- "property": "shouldValidateHmac",
1127
- "equals": "enabled"
1128
- }
1171
+ ]
1129
1172
  },
1130
1173
  {
1174
+ "id": "inbound.hmacScopes",
1131
1175
  "label": "HMAC scopes",
1132
- "group": "authentication",
1133
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
1134
- "feel": "required",
1135
- "type": "String",
1176
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
1136
1177
  "optional": true,
1178
+ "feel": "required",
1179
+ "group": "authentication",
1137
1180
  "binding": {
1138
- "type": "zeebe:property",
1139
- "name": "inbound.hmacScopes"
1181
+ "name": "inbound.hmacScopes",
1182
+ "type": "zeebe:property"
1140
1183
  },
1141
1184
  "condition": {
1142
- "property": "shouldValidateHmac",
1143
- "equals": "enabled"
1144
- }
1185
+ "property": "inbound.shouldValidateHmac",
1186
+ "equals": "enabled",
1187
+ "type": "simple"
1188
+ },
1189
+ "type": "String"
1145
1190
  },
1146
1191
  {
1147
- "id": "authorizationType",
1192
+ "id": "inbound.auth.type",
1148
1193
  "label": "Authorization type",
1149
- "group": "authorization",
1150
- "description": "Choose the authorization type.",
1194
+ "description": "Choose the authorization type",
1151
1195
  "value": "NONE",
1196
+ "group": "authorization",
1197
+ "binding": {
1198
+ "name": "inbound.auth.type",
1199
+ "type": "zeebe:property"
1200
+ },
1152
1201
  "type": "Dropdown",
1153
1202
  "choices": [
1154
1203
  {
1155
1204
  "name": "None",
1156
1205
  "value": "NONE"
1157
1206
  },
1158
- {
1159
- "name": "JWT",
1160
- "value": "JWT"
1161
- },
1162
1207
  {
1163
1208
  "name": "Basic",
1164
1209
  "value": "BASIC"
1165
1210
  },
1166
1211
  {
1167
- "name": "API Key",
1212
+ "name": "API key",
1168
1213
  "value": "APIKEY"
1214
+ },
1215
+ {
1216
+ "name": "JWT",
1217
+ "value": "JWT"
1169
1218
  }
1170
- ],
1171
- "binding": {
1172
- "type": "zeebe:property",
1173
- "name": "inbound.auth.type"
1174
- }
1219
+ ]
1175
1220
  },
1176
1221
  {
1177
- "label": "JWK url",
1178
- "description": "Well-known url of JWKs",
1179
- "type": "String",
1180
- "group": "authorization",
1222
+ "id": "inbound.auth.username",
1223
+ "label": "Username",
1224
+ "description": "Username for basic authentication",
1225
+ "optional": false,
1181
1226
  "feel": "optional",
1182
- "optional": true,
1227
+ "group": "authorization",
1183
1228
  "binding": {
1184
- "type": "zeebe:property",
1185
- "name": "inbound.auth.jwt.jwkUrl"
1229
+ "name": "inbound.auth.username",
1230
+ "type": "zeebe:property"
1186
1231
  },
1187
1232
  "condition": {
1188
- "property": "authorizationType",
1189
- "equals": "JWT"
1190
- }
1233
+ "property": "inbound.auth.type",
1234
+ "equals": "BASIC",
1235
+ "type": "simple"
1236
+ },
1237
+ "type": "String"
1191
1238
  },
1192
1239
  {
1193
- "label": "JWT role property expression",
1194
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
1195
- "type": "String",
1240
+ "id": "inbound.auth.password",
1241
+ "label": "Password",
1242
+ "description": "Password for basic authentication",
1243
+ "optional": false,
1244
+ "feel": "optional",
1196
1245
  "group": "authorization",
1197
- "feel": "required",
1198
- "optional": true,
1199
1246
  "binding": {
1200
- "type": "zeebe:property",
1201
- "name": "inbound.auth.jwt.permissionsExpression"
1247
+ "name": "inbound.auth.password",
1248
+ "type": "zeebe:property"
1202
1249
  },
1203
1250
  "condition": {
1204
- "property": "authorizationType",
1205
- "equals": "JWT"
1206
- }
1251
+ "property": "inbound.auth.type",
1252
+ "equals": "BASIC",
1253
+ "type": "simple"
1254
+ },
1255
+ "type": "String"
1207
1256
  },
1208
1257
  {
1209
- "label": "Required roles",
1210
- "description": "List of roles to test JWT roles against",
1211
- "type": "String",
1258
+ "id": "inbound.auth.apiKey",
1259
+ "label": "API key",
1260
+ "description": "Expected API key",
1261
+ "optional": false,
1262
+ "feel": "optional",
1212
1263
  "group": "authorization",
1213
- "feel": "required",
1214
- "optional": true,
1215
1264
  "binding": {
1216
- "type": "zeebe:property",
1217
- "name": "inbound.auth.jwt.requiredPermissions"
1265
+ "name": "inbound.auth.apiKey",
1266
+ "type": "zeebe:property"
1218
1267
  },
1219
1268
  "condition": {
1220
- "property": "authorizationType",
1221
- "equals": "JWT"
1222
- }
1269
+ "property": "inbound.auth.type",
1270
+ "equals": "APIKEY",
1271
+ "type": "simple"
1272
+ },
1273
+ "type": "String"
1223
1274
  },
1224
1275
  {
1225
- "label": "Username",
1226
- "description": "Username for basic authentication",
1227
- "type": "String",
1276
+ "id": "inbound.auth.apiKeyLocator",
1277
+ "label": "API key locator",
1278
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
1279
+ "optional": false,
1280
+ "value": "=split(request.headers.authorization, \" \")[2]",
1281
+ "constraints": {
1282
+ "notEmpty": true
1283
+ },
1284
+ "feel": "required",
1228
1285
  "group": "authorization",
1229
- "feel": "optional",
1230
1286
  "binding": {
1231
- "type": "zeebe:property",
1232
- "name": "inbound.auth.username"
1287
+ "name": "inbound.auth.apiKeyLocator",
1288
+ "type": "zeebe:property"
1233
1289
  },
1234
1290
  "condition": {
1235
- "property": "authorizationType",
1236
- "equals": "BASIC"
1291
+ "property": "inbound.auth.type",
1292
+ "equals": "APIKEY",
1293
+ "type": "simple"
1237
1294
  },
1238
- "constraints": {
1239
- "notEmpty": true
1240
- }
1295
+ "type": "String"
1241
1296
  },
1242
1297
  {
1243
- "label": "Password",
1244
- "description": "Password for basic authentication",
1245
- "type": "String",
1246
- "group": "authorization",
1298
+ "id": "inbound.auth.jwt.jwkUrl",
1299
+ "label": "JWK URL",
1300
+ "description": "Well-known URL of JWKs",
1301
+ "optional": false,
1247
1302
  "feel": "optional",
1303
+ "group": "authorization",
1248
1304
  "binding": {
1249
- "type": "zeebe:property",
1250
- "name": "inbound.auth.password"
1305
+ "name": "inbound.auth.jwt.jwkUrl",
1306
+ "type": "zeebe:property"
1251
1307
  },
1252
1308
  "condition": {
1253
- "property": "authorizationType",
1254
- "equals": "BASIC"
1309
+ "property": "inbound.auth.type",
1310
+ "equals": "JWT",
1311
+ "type": "simple"
1255
1312
  },
1256
- "constraints": {
1257
- "notEmpty": true
1258
- }
1313
+ "type": "String"
1259
1314
  },
1260
1315
  {
1261
- "label": "API Key",
1262
- "description": "Expected API key",
1263
- "type": "String",
1316
+ "id": "inbound.auth.jwt.permissionsExpression",
1317
+ "label": "JWT role property expression",
1318
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
1319
+ "optional": false,
1320
+ "feel": "required",
1264
1321
  "group": "authorization",
1265
- "feel": "optional",
1266
1322
  "binding": {
1267
- "type": "zeebe:property",
1268
- "name": "inbound.auth.apiKey"
1323
+ "name": "inbound.auth.jwt.permissionsExpression",
1324
+ "type": "zeebe:property"
1269
1325
  },
1270
1326
  "condition": {
1271
- "property": "authorizationType",
1272
- "equals": "APIKEY"
1327
+ "property": "inbound.auth.type",
1328
+ "equals": "JWT",
1329
+ "type": "simple"
1273
1330
  },
1274
- "constraints": {
1275
- "notEmpty": true
1276
- }
1331
+ "type": "String"
1277
1332
  },
1278
1333
  {
1279
- "label": "API Key locator",
1280
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
1281
- "type": "String",
1282
- "group": "authorization",
1334
+ "id": "inbound.auth.jwt.requiredPermissions",
1335
+ "label": "Required roles",
1336
+ "description": "List of roles to test JWT roles against",
1337
+ "optional": false,
1283
1338
  "feel": "required",
1339
+ "group": "authorization",
1284
1340
  "binding": {
1285
- "type": "zeebe:property",
1286
- "name": "inbound.auth.apiKeyLocator"
1341
+ "name": "inbound.auth.jwt.requiredPermissions",
1342
+ "type": "zeebe:property"
1287
1343
  },
1288
1344
  "condition": {
1289
- "property": "authorizationType",
1290
- "equals": "APIKEY"
1291
- },
1292
- "constraints": {
1293
- "notEmpty": true
1345
+ "property": "inbound.auth.type",
1346
+ "equals": "JWT",
1347
+ "type": "simple"
1294
1348
  },
1295
- "value": "=split(request.headers.authorization, \" \")[2]"
1349
+ "type": "String"
1296
1350
  },
1297
1351
  {
1298
- "label": "Condition",
1299
- "type": "String",
1300
- "group": "activation",
1301
- "feel": "required",
1352
+ "id": "inbound.responseExpression",
1353
+ "label": "Response expression",
1354
+ "description": "Expression used to generate the HTTP response",
1302
1355
  "optional": true,
1356
+ "feel": "required",
1357
+ "group": "webhookResponse",
1303
1358
  "binding": {
1304
- "type": "zeebe:property",
1305
- "name": "activationCondition"
1359
+ "name": "inbound.responseExpression",
1360
+ "type": "zeebe:property"
1306
1361
  },
1307
- "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
1362
+ "type": "Text"
1308
1363
  },
1309
1364
  {
1310
- "label": "Result variable",
1311
- "type": "String",
1312
- "group": "variable-mapping",
1365
+ "id": "inbound.verificationExpression",
1366
+ "label": "One time verification response expression",
1367
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
1313
1368
  "optional": true,
1369
+ "feel": "required",
1370
+ "group": "webhookResponse",
1314
1371
  "binding": {
1315
- "type": "zeebe:property",
1316
- "name": "resultVariable"
1372
+ "name": "inbound.verificationExpression",
1373
+ "type": "zeebe:property"
1317
1374
  },
1318
- "description": "Name of variable to store the result of the connector in"
1375
+ "type": "Text"
1319
1376
  },
1320
1377
  {
1321
- "label": "Result expression",
1322
- "type": "String",
1323
- "group": "variable-mapping",
1324
- "feel": "required",
1378
+ "id": "activationCondition",
1379
+ "label": "Activation condition",
1380
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
1325
1381
  "optional": true,
1382
+ "feel": "required",
1383
+ "group": "activation",
1326
1384
  "binding": {
1327
- "type": "zeebe:property",
1328
- "name": "resultExpression"
1385
+ "name": "activationCondition",
1386
+ "type": "zeebe:property"
1329
1387
  },
1330
- "description": "Expression to map the inbound payload to process variables"
1388
+ "type": "String"
1331
1389
  },
1332
1390
  {
1333
- "label": "One time verification response expression",
1334
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
1335
- "type": "Text",
1336
- "group": "webhookResponse",
1337
- "feel": "required",
1338
- "optional": true,
1391
+ "id": "consumeUnmatchedEvents",
1392
+ "label": "Consume unmatched events",
1393
+ "value": true,
1394
+ "group": "activation",
1339
1395
  "binding": {
1340
- "type": "zeebe:property",
1341
- "name": "inbound.verificationExpression"
1342
- }
1396
+ "name": "consumeUnmatchedEvents",
1397
+ "type": "zeebe:property"
1398
+ },
1399
+ "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
1400
+ "type": "Boolean"
1343
1401
  },
1344
1402
  {
1345
- "label": "Response body expression",
1346
- "type": "Text",
1347
- "group": "webhookResponse",
1403
+ "id": "resultVariable",
1404
+ "label": "Result variable",
1405
+ "description": "Name of variable to store the response in",
1406
+ "group": "output",
1407
+ "binding": {
1408
+ "name": "resultVariable",
1409
+ "type": "zeebe:property"
1410
+ },
1411
+ "type": "String"
1412
+ },
1413
+ {
1414
+ "id": "resultExpression",
1415
+ "label": "Result expression",
1416
+ "description": "Expression to map the response into process variables",
1348
1417
  "feel": "required",
1349
- "optional": true,
1418
+ "group": "output",
1350
1419
  "binding": {
1351
- "type": "zeebe:property",
1352
- "name": "inbound.responseBodyExpression"
1420
+ "name": "resultExpression",
1421
+ "type": "zeebe:property"
1353
1422
  },
1354
- "description": "Specify condition and response"
1423
+ "type": "Text"
1355
1424
  }
1356
1425
  ],
1357
- "icon": {
1358
- "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
1359
- },
1360
1426
  "engines": {
1361
- "camunda": "^8.5"
1427
+ "camunda": "^8.3"
1428
+ },
1429
+ "icon": {
1430
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1362
1431
  }
1363
1432
  },
1364
1433
  {
1365
1434
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1366
- "name": "Webhook Start Event Connector",
1435
+ "name": "Webhook connector",
1367
1436
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1437
+ "version": 6,
1368
1438
  "description": "Configure webhook to receive callbacks",
1369
1439
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
1370
- "version": 10,
1371
1440
  "category": {
1372
1441
  "id": "connectors",
1373
1442
  "name": "Connectors"
@@ -1389,39 +1458,42 @@
1389
1458
  "id": "authorization",
1390
1459
  "label": "Authorization"
1391
1460
  },
1392
- {
1393
- "id": "webhookResponse",
1394
- "label": "Webhook response"
1395
- },
1396
1461
  {
1397
1462
  "id": "activation",
1398
1463
  "label": "Activation"
1399
1464
  },
1400
1465
  {
1401
- "id": "output",
1402
- "label": "Output mapping"
1466
+ "id": "variable-mapping",
1467
+ "label": "Variable mapping"
1468
+ },
1469
+ {
1470
+ "id": "webhookResponse",
1471
+ "label": "Webhook response"
1403
1472
  }
1404
1473
  ],
1405
1474
  "properties": [
1406
1475
  {
1476
+ "type": "Hidden",
1407
1477
  "value": "io.camunda:webhook:1",
1408
1478
  "binding": {
1409
- "name": "inbound.type",
1410
- "type": "zeebe:property"
1411
- },
1412
- "type": "Hidden"
1479
+ "type": "zeebe:property",
1480
+ "name": "inbound.type"
1481
+ }
1413
1482
  },
1414
1483
  {
1415
- "id": "inbound.method",
1484
+ "type": "Hidden",
1485
+ "value": "ConfigurableInboundWebhook",
1486
+ "binding": {
1487
+ "type": "zeebe:property",
1488
+ "name": "inbound.subtype"
1489
+ }
1490
+ },
1491
+ {
1492
+ "id": "webhookMethod",
1416
1493
  "label": "Webhook method",
1494
+ "group": "endpoint",
1417
1495
  "description": "Select HTTP method",
1418
- "optional": false,
1419
1496
  "value": "any",
1420
- "group": "endpoint",
1421
- "binding": {
1422
- "name": "inbound.method",
1423
- "type": "zeebe:property"
1424
- },
1425
1497
  "type": "Dropdown",
1426
1498
  "choices": [
1427
1499
  {
@@ -1429,53 +1501,46 @@
1429
1501
  "value": "any"
1430
1502
  },
1431
1503
  {
1432
- "name": "GET",
1504
+ "name": "Get",
1433
1505
  "value": "get"
1434
1506
  },
1435
1507
  {
1436
- "name": "POST",
1508
+ "name": "Post",
1437
1509
  "value": "post"
1438
1510
  },
1439
1511
  {
1440
- "name": "PUT",
1512
+ "name": "Put",
1441
1513
  "value": "put"
1442
1514
  },
1443
1515
  {
1444
- "name": "DELETE",
1516
+ "name": "Delete",
1445
1517
  "value": "delete"
1446
1518
  }
1447
- ]
1519
+ ],
1520
+ "binding": {
1521
+ "type": "zeebe:property",
1522
+ "name": "inbound.method"
1523
+ }
1448
1524
  },
1449
1525
  {
1450
- "id": "inbound.context",
1451
1526
  "label": "Webhook ID",
1452
- "description": "The webhook ID is a part of the URL",
1453
- "optional": false,
1454
- "constraints": {
1455
- "notEmpty": true,
1456
- "pattern": {
1457
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
1458
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
1459
- }
1460
- },
1527
+ "type": "String",
1461
1528
  "group": "endpoint",
1462
1529
  "binding": {
1463
- "name": "inbound.context",
1464
- "type": "zeebe:property"
1530
+ "type": "zeebe:property",
1531
+ "name": "inbound.context"
1465
1532
  },
1466
- "type": "String"
1533
+ "description": "The webhook ID is a part of the URL",
1534
+ "constraints": {
1535
+ "notEmpty": true
1536
+ }
1467
1537
  },
1468
1538
  {
1469
- "id": "inbound.shouldValidateHmac",
1539
+ "id": "shouldValidateHmac",
1470
1540
  "label": "HMAC authentication",
1541
+ "group": "authentication",
1471
1542
  "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
1472
- "optional": false,
1473
1543
  "value": "disabled",
1474
- "group": "authentication",
1475
- "binding": {
1476
- "name": "inbound.shouldValidateHmac",
1477
- "type": "zeebe:property"
1478
- },
1479
1544
  "type": "Dropdown",
1480
1545
  "choices": [
1481
1546
  {
@@ -1486,60 +1551,47 @@
1486
1551
  "name": "Disabled",
1487
1552
  "value": "disabled"
1488
1553
  }
1489
- ]
1554
+ ],
1555
+ "binding": {
1556
+ "type": "zeebe:property",
1557
+ "name": "inbound.shouldValidateHmac"
1558
+ }
1490
1559
  },
1491
1560
  {
1492
- "id": "inbound.hmacSecret",
1493
1561
  "label": "HMAC secret key",
1494
1562
  "description": "Shared secret key",
1495
- "optional": true,
1496
- "feel": "optional",
1563
+ "type": "String",
1497
1564
  "group": "authentication",
1565
+ "optional": true,
1498
1566
  "binding": {
1499
- "name": "inbound.hmacSecret",
1500
- "type": "zeebe:property"
1567
+ "type": "zeebe:property",
1568
+ "name": "inbound.hmacSecret"
1501
1569
  },
1502
1570
  "condition": {
1503
- "property": "inbound.shouldValidateHmac",
1504
- "equals": "enabled",
1505
- "type": "simple"
1506
- },
1507
- "type": "String"
1571
+ "property": "shouldValidateHmac",
1572
+ "equals": "enabled"
1573
+ }
1508
1574
  },
1509
1575
  {
1510
- "id": "inbound.hmacHeader",
1511
1576
  "label": "HMAC header",
1512
1577
  "description": "Name of header attribute that will contain the HMAC value",
1513
- "optional": true,
1514
- "feel": "optional",
1578
+ "type": "String",
1515
1579
  "group": "authentication",
1580
+ "optional": true,
1516
1581
  "binding": {
1517
- "name": "inbound.hmacHeader",
1518
- "type": "zeebe:property"
1582
+ "type": "zeebe:property",
1583
+ "name": "inbound.hmacHeader"
1519
1584
  },
1520
1585
  "condition": {
1521
- "property": "inbound.shouldValidateHmac",
1522
- "equals": "enabled",
1523
- "type": "simple"
1524
- },
1525
- "type": "String"
1586
+ "property": "shouldValidateHmac",
1587
+ "equals": "enabled"
1588
+ }
1526
1589
  },
1527
1590
  {
1528
- "id": "inbound.hmacAlgorithm",
1529
1591
  "label": "HMAC algorithm",
1592
+ "group": "authentication",
1530
1593
  "description": "Choose HMAC algorithm",
1531
- "optional": false,
1532
1594
  "value": "sha_256",
1533
- "group": "authentication",
1534
- "binding": {
1535
- "name": "inbound.hmacAlgorithm",
1536
- "type": "zeebe:property"
1537
- },
1538
- "condition": {
1539
- "property": "inbound.shouldValidateHmac",
1540
- "equals": "enabled",
1541
- "type": "simple"
1542
- },
1543
1595
  "type": "Dropdown",
1544
1596
  "choices": [
1545
1597
  {
@@ -1554,719 +1606,243 @@
1554
1606
  "name": "SHA-512",
1555
1607
  "value": "sha_512"
1556
1608
  }
1557
- ]
1609
+ ],
1610
+ "binding": {
1611
+ "type": "zeebe:property",
1612
+ "name": "inbound.hmacAlgorithm"
1613
+ },
1614
+ "condition": {
1615
+ "property": "shouldValidateHmac",
1616
+ "equals": "enabled"
1617
+ }
1558
1618
  },
1559
1619
  {
1560
- "id": "inbound.hmacScopes",
1561
1620
  "label": "HMAC scopes",
1621
+ "group": "authentication",
1562
1622
  "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
1563
- "optional": true,
1564
1623
  "feel": "required",
1565
- "group": "authentication",
1624
+ "type": "String",
1625
+ "optional": true,
1566
1626
  "binding": {
1567
- "name": "inbound.hmacScopes",
1568
- "type": "zeebe:property"
1627
+ "type": "zeebe:property",
1628
+ "name": "inbound.hmacScopes"
1569
1629
  },
1570
1630
  "condition": {
1571
- "property": "inbound.shouldValidateHmac",
1572
- "equals": "enabled",
1573
- "type": "simple"
1574
- },
1575
- "type": "String"
1631
+ "property": "shouldValidateHmac",
1632
+ "equals": "enabled"
1633
+ }
1576
1634
  },
1577
1635
  {
1578
- "id": "inbound.auth.type",
1636
+ "id": "authorizationType",
1579
1637
  "label": "Authorization type",
1580
- "description": "Choose the authorization type",
1581
- "value": "NONE",
1582
1638
  "group": "authorization",
1583
- "binding": {
1584
- "name": "inbound.auth.type",
1585
- "type": "zeebe:property"
1586
- },
1639
+ "description": "Choose the authorization type.",
1640
+ "value": "NONE",
1587
1641
  "type": "Dropdown",
1588
1642
  "choices": [
1589
1643
  {
1590
1644
  "name": "None",
1591
1645
  "value": "NONE"
1592
1646
  },
1647
+ {
1648
+ "name": "JWT",
1649
+ "value": "JWT"
1650
+ },
1593
1651
  {
1594
1652
  "name": "Basic",
1595
1653
  "value": "BASIC"
1596
1654
  },
1597
1655
  {
1598
- "name": "API key",
1656
+ "name": "API Key",
1599
1657
  "value": "APIKEY"
1600
- },
1601
- {
1602
- "name": "JWT",
1603
- "value": "JWT"
1604
1658
  }
1605
- ]
1659
+ ],
1660
+ "binding": {
1661
+ "type": "zeebe:property",
1662
+ "name": "inbound.auth.type"
1663
+ }
1606
1664
  },
1607
1665
  {
1608
- "id": "inbound.auth.username",
1609
- "label": "Username",
1610
- "description": "Username for basic authentication",
1611
- "optional": false,
1612
- "feel": "optional",
1666
+ "label": "JWK url",
1667
+ "description": "Well-known url of JWKs",
1668
+ "type": "String",
1613
1669
  "group": "authorization",
1670
+ "feel": "optional",
1671
+ "optional": true,
1614
1672
  "binding": {
1615
- "name": "inbound.auth.username",
1616
- "type": "zeebe:property"
1673
+ "type": "zeebe:property",
1674
+ "name": "inbound.auth.jwt.jwkUrl"
1617
1675
  },
1618
1676
  "condition": {
1619
- "property": "inbound.auth.type",
1620
- "equals": "BASIC",
1621
- "type": "simple"
1622
- },
1623
- "type": "String"
1677
+ "property": "authorizationType",
1678
+ "equals": "JWT"
1679
+ }
1624
1680
  },
1625
1681
  {
1626
- "id": "inbound.auth.password",
1627
- "label": "Password",
1628
- "description": "Password for basic authentication",
1629
- "optional": false,
1630
- "feel": "optional",
1682
+ "label": "JWT role property expression",
1683
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
1684
+ "type": "String",
1631
1685
  "group": "authorization",
1686
+ "feel": "required",
1687
+ "optional": true,
1632
1688
  "binding": {
1633
- "name": "inbound.auth.password",
1634
- "type": "zeebe:property"
1689
+ "type": "zeebe:property",
1690
+ "name": "inbound.auth.jwt.permissionsExpression"
1635
1691
  },
1636
1692
  "condition": {
1637
- "property": "inbound.auth.type",
1638
- "equals": "BASIC",
1639
- "type": "simple"
1640
- },
1641
- "type": "String"
1693
+ "property": "authorizationType",
1694
+ "equals": "JWT"
1695
+ }
1642
1696
  },
1643
1697
  {
1644
- "id": "inbound.auth.apiKey",
1645
- "label": "API key",
1646
- "description": "Expected API key",
1647
- "optional": false,
1648
- "feel": "optional",
1698
+ "label": "Required roles",
1699
+ "description": "List of roles to test JWT roles against",
1700
+ "type": "String",
1649
1701
  "group": "authorization",
1702
+ "feel": "required",
1703
+ "optional": true,
1650
1704
  "binding": {
1651
- "name": "inbound.auth.apiKey",
1652
- "type": "zeebe:property"
1705
+ "type": "zeebe:property",
1706
+ "name": "inbound.auth.jwt.requiredPermissions"
1653
1707
  },
1654
1708
  "condition": {
1655
- "property": "inbound.auth.type",
1656
- "equals": "APIKEY",
1657
- "type": "simple"
1658
- },
1659
- "type": "String"
1709
+ "property": "authorizationType",
1710
+ "equals": "JWT"
1711
+ }
1660
1712
  },
1661
1713
  {
1662
- "id": "inbound.auth.apiKeyLocator",
1663
- "label": "API key locator",
1664
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
1665
- "optional": false,
1666
- "value": "=split(request.headers.authorization, \" \")[2]",
1667
- "constraints": {
1668
- "notEmpty": true
1669
- },
1670
- "feel": "required",
1714
+ "label": "Username",
1715
+ "description": "Username for basic authentication",
1716
+ "type": "String",
1671
1717
  "group": "authorization",
1718
+ "feel": "optional",
1672
1719
  "binding": {
1673
- "name": "inbound.auth.apiKeyLocator",
1674
- "type": "zeebe:property"
1720
+ "type": "zeebe:property",
1721
+ "name": "inbound.auth.username"
1675
1722
  },
1676
1723
  "condition": {
1677
- "property": "inbound.auth.type",
1678
- "equals": "APIKEY",
1679
- "type": "simple"
1724
+ "property": "authorizationType",
1725
+ "equals": "BASIC"
1680
1726
  },
1681
- "type": "String"
1727
+ "constraints": {
1728
+ "notEmpty": true
1729
+ }
1682
1730
  },
1683
1731
  {
1684
- "id": "inbound.auth.jwt.jwkUrl",
1685
- "label": "JWK URL",
1686
- "description": "Well-known URL of JWKs",
1687
- "optional": false,
1688
- "feel": "optional",
1732
+ "label": "Password",
1733
+ "description": "Password for basic authentication",
1734
+ "type": "String",
1689
1735
  "group": "authorization",
1736
+ "feel": "optional",
1690
1737
  "binding": {
1691
- "name": "inbound.auth.jwt.jwkUrl",
1692
- "type": "zeebe:property"
1738
+ "type": "zeebe:property",
1739
+ "name": "inbound.auth.password"
1693
1740
  },
1694
1741
  "condition": {
1695
- "property": "inbound.auth.type",
1696
- "equals": "JWT",
1697
- "type": "simple"
1742
+ "property": "authorizationType",
1743
+ "equals": "BASIC"
1698
1744
  },
1699
- "type": "String"
1745
+ "constraints": {
1746
+ "notEmpty": true
1747
+ }
1700
1748
  },
1701
1749
  {
1702
- "id": "inbound.auth.jwt.permissionsExpression",
1703
- "label": "JWT role property expression",
1704
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
1705
- "optional": false,
1706
- "feel": "required",
1750
+ "label": "API Key",
1751
+ "description": "Expected API key",
1752
+ "type": "String",
1707
1753
  "group": "authorization",
1754
+ "feel": "optional",
1708
1755
  "binding": {
1709
- "name": "inbound.auth.jwt.permissionsExpression",
1710
- "type": "zeebe:property"
1756
+ "type": "zeebe:property",
1757
+ "name": "inbound.auth.apiKey"
1711
1758
  },
1712
1759
  "condition": {
1713
- "property": "inbound.auth.type",
1714
- "equals": "JWT",
1715
- "type": "simple"
1760
+ "property": "authorizationType",
1761
+ "equals": "APIKEY"
1716
1762
  },
1717
- "type": "String"
1763
+ "constraints": {
1764
+ "notEmpty": true
1765
+ }
1718
1766
  },
1719
1767
  {
1720
- "id": "inbound.auth.jwt.requiredPermissions",
1721
- "label": "Required roles",
1722
- "description": "List of roles to test JWT roles against",
1723
- "optional": false,
1724
- "feel": "required",
1768
+ "label": "API Key locator",
1769
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
1770
+ "type": "String",
1725
1771
  "group": "authorization",
1772
+ "feel": "required",
1726
1773
  "binding": {
1727
- "name": "inbound.auth.jwt.requiredPermissions",
1728
- "type": "zeebe:property"
1774
+ "type": "zeebe:property",
1775
+ "name": "inbound.auth.apiKeyLocator"
1729
1776
  },
1730
1777
  "condition": {
1731
- "property": "inbound.auth.type",
1732
- "equals": "JWT",
1733
- "type": "simple"
1778
+ "property": "authorizationType",
1779
+ "equals": "APIKEY"
1734
1780
  },
1735
- "type": "String"
1736
- },
1737
- {
1738
- "id": "inbound.responseBodyExpression",
1739
- "label": "Response body expression",
1740
- "description": "Specify condition and response",
1741
- "optional": true,
1742
- "feel": "required",
1743
- "group": "webhookResponse",
1744
- "binding": {
1745
- "name": "inbound.responseBodyExpression",
1746
- "type": "zeebe:property"
1781
+ "constraints": {
1782
+ "notEmpty": true
1747
1783
  },
1748
- "type": "Text"
1784
+ "value": "=split(request.headers.authorization, \" \")[2]"
1749
1785
  },
1750
1786
  {
1751
- "id": "inbound.verificationExpression",
1752
- "label": "One time verification response expression",
1753
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
1754
- "optional": true,
1787
+ "label": "Condition",
1788
+ "type": "String",
1789
+ "group": "activation",
1755
1790
  "feel": "required",
1756
- "group": "webhookResponse",
1757
- "binding": {
1758
- "name": "inbound.verificationExpression",
1759
- "type": "zeebe:property"
1760
- },
1761
- "type": "Text"
1762
- },
1763
- {
1764
- "id": "activationCondition",
1765
- "label": "Activation condition",
1766
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
1767
1791
  "optional": true,
1768
- "feel": "required",
1769
- "group": "activation",
1770
1792
  "binding": {
1771
- "name": "activationCondition",
1772
- "type": "zeebe:property"
1793
+ "type": "zeebe:property",
1794
+ "name": "activationCondition"
1773
1795
  },
1774
- "type": "String"
1796
+ "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
1775
1797
  },
1776
1798
  {
1777
- "id": "resultVariable",
1778
1799
  "label": "Result variable",
1779
- "description": "Name of variable to store the response in",
1780
- "group": "output",
1800
+ "type": "String",
1801
+ "group": "variable-mapping",
1802
+ "optional": true,
1781
1803
  "binding": {
1782
- "name": "resultVariable",
1783
- "type": "zeebe:property"
1804
+ "type": "zeebe:property",
1805
+ "name": "resultVariable"
1784
1806
  },
1785
- "type": "String"
1807
+ "description": "Name of variable to store the result of the connector in"
1786
1808
  },
1787
1809
  {
1788
- "id": "resultExpression",
1789
1810
  "label": "Result expression",
1790
- "description": "Expression to map the response into process variables",
1791
- "feel": "required",
1792
- "group": "output",
1793
- "binding": {
1794
- "name": "resultExpression",
1795
- "type": "zeebe:property"
1796
- },
1797
- "type": "Text"
1798
- }
1799
- ],
1800
- "icon": {
1801
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1802
- },
1803
- "engines": {
1804
- "camunda": "^8.5"
1805
- }
1806
- },
1807
- {
1808
- "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
1809
- "name": "Webhook Start Event Connector",
1810
- "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
1811
- "description": "Configure webhook to receive callbacks",
1812
- "metadata": {
1813
- "keywords": []
1814
- },
1815
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
1816
- "version": 12,
1817
- "category": {
1818
- "id": "connectors",
1819
- "name": "Connectors"
1820
- },
1821
- "appliesTo": ["bpmn:StartEvent"],
1822
- "elementType": {
1823
- "value": "bpmn:StartEvent"
1824
- },
1825
- "groups": [
1826
- {
1827
- "id": "endpoint",
1828
- "label": "Webhook configuration"
1829
- },
1830
- {
1831
- "id": "authentication",
1832
- "label": "Authentication"
1833
- },
1834
- {
1835
- "id": "authorization",
1836
- "label": "Authorization"
1837
- },
1838
- {
1839
- "id": "webhookResponse",
1840
- "label": "Webhook response"
1841
- },
1842
- {
1843
- "id": "activation",
1844
- "label": "Activation"
1845
- },
1846
- {
1847
- "id": "output",
1848
- "label": "Output mapping"
1849
- }
1850
- ],
1851
- "properties": [
1852
- {
1853
- "value": "io.camunda:webhook:1",
1854
- "binding": {
1855
- "name": "inbound.type",
1856
- "type": "zeebe:property"
1857
- },
1858
- "type": "Hidden"
1859
- },
1860
- {
1861
- "id": "inbound.method",
1862
- "label": "Webhook method",
1863
- "description": "Select HTTP method",
1864
- "optional": false,
1865
- "value": "any",
1866
- "group": "endpoint",
1867
- "binding": {
1868
- "name": "inbound.method",
1869
- "type": "zeebe:property"
1870
- },
1871
- "type": "Dropdown",
1872
- "choices": [
1873
- {
1874
- "name": "Any",
1875
- "value": "any"
1876
- },
1877
- {
1878
- "name": "GET",
1879
- "value": "get"
1880
- },
1881
- {
1882
- "name": "POST",
1883
- "value": "post"
1884
- },
1885
- {
1886
- "name": "PUT",
1887
- "value": "put"
1888
- },
1889
- {
1890
- "name": "DELETE",
1891
- "value": "delete"
1892
- }
1893
- ]
1894
- },
1895
- {
1896
- "id": "inbound.context",
1897
- "label": "Webhook ID",
1898
- "description": "The webhook ID is a part of the URL",
1899
- "optional": false,
1900
- "constraints": {
1901
- "notEmpty": true,
1902
- "pattern": {
1903
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
1904
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
1905
- }
1906
- },
1907
- "group": "endpoint",
1908
- "binding": {
1909
- "name": "inbound.context",
1910
- "type": "zeebe:property"
1911
- },
1912
- "type": "String"
1913
- },
1914
- {
1915
- "id": "inbound.shouldValidateHmac",
1916
- "label": "HMAC authentication",
1917
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
1918
- "optional": false,
1919
- "value": "disabled",
1920
- "group": "authentication",
1921
- "binding": {
1922
- "name": "inbound.shouldValidateHmac",
1923
- "type": "zeebe:property"
1924
- },
1925
- "type": "Dropdown",
1926
- "choices": [
1927
- {
1928
- "name": "Enabled",
1929
- "value": "enabled"
1930
- },
1931
- {
1932
- "name": "Disabled",
1933
- "value": "disabled"
1934
- }
1935
- ]
1936
- },
1937
- {
1938
- "id": "inbound.hmacSecret",
1939
- "label": "HMAC secret key",
1940
- "description": "Shared secret key",
1941
- "optional": true,
1942
- "feel": "optional",
1943
- "group": "authentication",
1944
- "binding": {
1945
- "name": "inbound.hmacSecret",
1946
- "type": "zeebe:property"
1947
- },
1948
- "condition": {
1949
- "property": "inbound.shouldValidateHmac",
1950
- "equals": "enabled",
1951
- "type": "simple"
1952
- },
1953
- "type": "String"
1954
- },
1955
- {
1956
- "id": "inbound.hmacHeader",
1957
- "label": "HMAC header",
1958
- "description": "Name of header attribute that will contain the HMAC value",
1959
- "optional": true,
1960
- "feel": "optional",
1961
- "group": "authentication",
1962
- "binding": {
1963
- "name": "inbound.hmacHeader",
1964
- "type": "zeebe:property"
1965
- },
1966
- "condition": {
1967
- "property": "inbound.shouldValidateHmac",
1968
- "equals": "enabled",
1969
- "type": "simple"
1970
- },
1971
- "type": "String"
1972
- },
1973
- {
1974
- "id": "inbound.hmacAlgorithm",
1975
- "label": "HMAC algorithm",
1976
- "description": "Choose HMAC algorithm",
1977
- "optional": false,
1978
- "value": "sha_256",
1979
- "group": "authentication",
1980
- "binding": {
1981
- "name": "inbound.hmacAlgorithm",
1982
- "type": "zeebe:property"
1983
- },
1984
- "condition": {
1985
- "property": "inbound.shouldValidateHmac",
1986
- "equals": "enabled",
1987
- "type": "simple"
1988
- },
1989
- "type": "Dropdown",
1990
- "choices": [
1991
- {
1992
- "name": "SHA-1",
1993
- "value": "sha_1"
1994
- },
1995
- {
1996
- "name": "SHA-256",
1997
- "value": "sha_256"
1998
- },
1999
- {
2000
- "name": "SHA-512",
2001
- "value": "sha_512"
2002
- }
2003
- ]
2004
- },
2005
- {
2006
- "id": "inbound.hmacScopes",
2007
- "label": "HMAC scopes",
2008
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
2009
- "optional": true,
2010
- "feel": "required",
2011
- "group": "authentication",
2012
- "binding": {
2013
- "name": "inbound.hmacScopes",
2014
- "type": "zeebe:property"
2015
- },
2016
- "condition": {
2017
- "property": "inbound.shouldValidateHmac",
2018
- "equals": "enabled",
2019
- "type": "simple"
2020
- },
2021
- "type": "String"
2022
- },
2023
- {
2024
- "id": "inbound.auth.type",
2025
- "label": "Authorization type",
2026
- "description": "Choose the authorization type",
2027
- "value": "NONE",
2028
- "group": "authorization",
2029
- "binding": {
2030
- "name": "inbound.auth.type",
2031
- "type": "zeebe:property"
2032
- },
2033
- "type": "Dropdown",
2034
- "choices": [
2035
- {
2036
- "name": "None",
2037
- "value": "NONE"
2038
- },
2039
- {
2040
- "name": "Basic",
2041
- "value": "BASIC"
2042
- },
2043
- {
2044
- "name": "API key",
2045
- "value": "APIKEY"
2046
- },
2047
- {
2048
- "name": "JWT",
2049
- "value": "JWT"
2050
- }
2051
- ]
2052
- },
2053
- {
2054
- "id": "inbound.auth.username",
2055
- "label": "Username",
2056
- "description": "Username for basic authentication",
2057
- "optional": false,
2058
- "feel": "optional",
2059
- "group": "authorization",
2060
- "binding": {
2061
- "name": "inbound.auth.username",
2062
- "type": "zeebe:property"
2063
- },
2064
- "condition": {
2065
- "property": "inbound.auth.type",
2066
- "equals": "BASIC",
2067
- "type": "simple"
2068
- },
2069
- "type": "String"
2070
- },
2071
- {
2072
- "id": "inbound.auth.password",
2073
- "label": "Password",
2074
- "description": "Password for basic authentication",
2075
- "optional": false,
2076
- "feel": "optional",
2077
- "group": "authorization",
2078
- "binding": {
2079
- "name": "inbound.auth.password",
2080
- "type": "zeebe:property"
2081
- },
2082
- "condition": {
2083
- "property": "inbound.auth.type",
2084
- "equals": "BASIC",
2085
- "type": "simple"
2086
- },
2087
- "type": "String"
2088
- },
2089
- {
2090
- "id": "inbound.auth.apiKey",
2091
- "label": "API key",
2092
- "description": "Expected API key",
2093
- "optional": false,
2094
- "feel": "optional",
2095
- "group": "authorization",
2096
- "binding": {
2097
- "name": "inbound.auth.apiKey",
2098
- "type": "zeebe:property"
2099
- },
2100
- "condition": {
2101
- "property": "inbound.auth.type",
2102
- "equals": "APIKEY",
2103
- "type": "simple"
2104
- },
2105
- "type": "String"
2106
- },
2107
- {
2108
- "id": "inbound.auth.apiKeyLocator",
2109
- "label": "API key locator",
2110
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2111
- "optional": false,
2112
- "value": "=split(request.headers.authorization, \" \")[2]",
2113
- "constraints": {
2114
- "notEmpty": true
2115
- },
2116
- "feel": "required",
2117
- "group": "authorization",
2118
- "binding": {
2119
- "name": "inbound.auth.apiKeyLocator",
2120
- "type": "zeebe:property"
2121
- },
2122
- "condition": {
2123
- "property": "inbound.auth.type",
2124
- "equals": "APIKEY",
2125
- "type": "simple"
2126
- },
2127
- "type": "String"
2128
- },
2129
- {
2130
- "id": "inbound.auth.jwt.jwkUrl",
2131
- "label": "JWK URL",
2132
- "description": "Well-known URL of JWKs",
2133
- "optional": false,
2134
- "feel": "optional",
2135
- "group": "authorization",
2136
- "binding": {
2137
- "name": "inbound.auth.jwt.jwkUrl",
2138
- "type": "zeebe:property"
2139
- },
2140
- "condition": {
2141
- "property": "inbound.auth.type",
2142
- "equals": "JWT",
2143
- "type": "simple"
2144
- },
2145
- "type": "String"
2146
- },
2147
- {
2148
- "id": "inbound.auth.jwt.permissionsExpression",
2149
- "label": "JWT role property expression",
2150
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
2151
- "optional": false,
2152
- "feel": "required",
2153
- "group": "authorization",
2154
- "binding": {
2155
- "name": "inbound.auth.jwt.permissionsExpression",
2156
- "type": "zeebe:property"
2157
- },
2158
- "condition": {
2159
- "property": "inbound.auth.type",
2160
- "equals": "JWT",
2161
- "type": "simple"
2162
- },
2163
- "type": "String"
2164
- },
2165
- {
2166
- "id": "inbound.auth.jwt.requiredPermissions",
2167
- "label": "Required roles",
2168
- "description": "List of roles to test JWT roles against",
2169
- "optional": false,
2170
- "feel": "required",
2171
- "group": "authorization",
2172
- "binding": {
2173
- "name": "inbound.auth.jwt.requiredPermissions",
2174
- "type": "zeebe:property"
2175
- },
2176
- "condition": {
2177
- "property": "inbound.auth.type",
2178
- "equals": "JWT",
2179
- "type": "simple"
2180
- },
2181
- "type": "String"
2182
- },
2183
- {
2184
- "id": "inbound.responseExpression",
2185
- "label": "Response expression",
2186
- "description": "Expression used to generate the HTTP response",
2187
- "optional": true,
2188
- "feel": "required",
2189
- "group": "webhookResponse",
2190
- "binding": {
2191
- "name": "inbound.responseExpression",
2192
- "type": "zeebe:property"
2193
- },
2194
- "type": "Text"
2195
- },
2196
- {
2197
- "id": "inbound.verificationExpression",
2198
- "label": "One time verification response expression",
2199
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
2200
- "optional": true,
2201
- "feel": "required",
2202
- "group": "webhookResponse",
2203
- "binding": {
2204
- "name": "inbound.verificationExpression",
2205
- "type": "zeebe:property"
2206
- },
2207
- "type": "Text"
2208
- },
2209
- {
2210
- "id": "activationCondition",
2211
- "label": "Activation condition",
2212
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
2213
- "optional": true,
2214
- "feel": "required",
2215
- "group": "activation",
2216
- "binding": {
2217
- "name": "activationCondition",
2218
- "type": "zeebe:property"
2219
- },
2220
- "type": "String"
2221
- },
2222
- {
2223
- "id": "consumeUnmatchedEvents",
2224
- "label": "Consume unmatched events",
2225
- "value": true,
2226
- "group": "activation",
2227
- "binding": {
2228
- "name": "consumeUnmatchedEvents",
2229
- "type": "zeebe:property"
2230
- },
2231
- "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
2232
- "type": "Boolean"
2233
- },
2234
- {
2235
- "id": "resultVariable",
2236
- "label": "Result variable",
2237
- "description": "Name of variable to store the response in",
2238
- "group": "output",
1811
+ "type": "String",
1812
+ "group": "variable-mapping",
1813
+ "feel": "required",
1814
+ "optional": true,
2239
1815
  "binding": {
2240
- "name": "resultVariable",
2241
- "type": "zeebe:property"
1816
+ "type": "zeebe:property",
1817
+ "name": "resultExpression"
2242
1818
  },
2243
- "type": "String"
1819
+ "description": "Expression to map the inbound payload to process variables"
2244
1820
  },
2245
1821
  {
2246
- "id": "resultExpression",
2247
- "label": "Result expression",
2248
- "description": "Expression to map the response into process variables",
1822
+ "label": "Response body expression",
1823
+ "type": "Text",
1824
+ "group": "webhookResponse",
2249
1825
  "feel": "required",
2250
- "group": "output",
1826
+ "optional": true,
2251
1827
  "binding": {
2252
- "name": "resultExpression",
2253
- "type": "zeebe:property"
1828
+ "type": "zeebe:property",
1829
+ "name": "inbound.responseBodyExpression"
2254
1830
  },
2255
- "type": "Text"
1831
+ "description": "Specify condition and response"
2256
1832
  }
2257
1833
  ],
2258
- "engines": {
2259
- "camunda": "^8.3"
2260
- },
2261
1834
  "icon": {
2262
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
1835
+ "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
1836
+ },
1837
+ "engines": {
1838
+ "camunda": "^8.2"
2263
1839
  }
2264
1840
  },
2265
1841
  {
2266
1842
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2267
- "name": "Webhook connector",
1843
+ "name": "Webhook Start Event Connector",
2268
1844
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2269
- "version": 3,
1845
+ "version": 7,
2270
1846
  "description": "Configure webhook to receive callbacks",
2271
1847
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2272
1848
  "category": {
@@ -2282,6 +1858,14 @@
2282
1858
  "id": "endpoint",
2283
1859
  "label": "Webhook configuration"
2284
1860
  },
1861
+ {
1862
+ "id": "authentication",
1863
+ "label": "Authentication"
1864
+ },
1865
+ {
1866
+ "id": "authorization",
1867
+ "label": "Authorization"
1868
+ },
2285
1869
  {
2286
1870
  "id": "activation",
2287
1871
  "label": "Activation"
@@ -2289,6 +1873,10 @@
2289
1873
  {
2290
1874
  "id": "variable-mapping",
2291
1875
  "label": "Variable mapping"
1876
+ },
1877
+ {
1878
+ "id": "webhookResponse",
1879
+ "label": "Webhook response"
2292
1880
  }
2293
1881
  ],
2294
1882
  "properties": [
@@ -2308,6 +1896,40 @@
2308
1896
  "name": "inbound.subtype"
2309
1897
  }
2310
1898
  },
1899
+ {
1900
+ "id": "webhookMethod",
1901
+ "label": "Webhook method",
1902
+ "group": "endpoint",
1903
+ "description": "Select HTTP method",
1904
+ "value": "any",
1905
+ "type": "Dropdown",
1906
+ "choices": [
1907
+ {
1908
+ "name": "Any",
1909
+ "value": "any"
1910
+ },
1911
+ {
1912
+ "name": "Get",
1913
+ "value": "get"
1914
+ },
1915
+ {
1916
+ "name": "Post",
1917
+ "value": "post"
1918
+ },
1919
+ {
1920
+ "name": "Put",
1921
+ "value": "put"
1922
+ },
1923
+ {
1924
+ "name": "Delete",
1925
+ "value": "delete"
1926
+ }
1927
+ ],
1928
+ "binding": {
1929
+ "type": "zeebe:property",
1930
+ "name": "inbound.method"
1931
+ }
1932
+ },
2311
1933
  {
2312
1934
  "label": "Webhook ID",
2313
1935
  "type": "String",
@@ -2324,7 +1946,7 @@
2324
1946
  {
2325
1947
  "id": "shouldValidateHmac",
2326
1948
  "label": "HMAC authentication",
2327
- "group": "endpoint",
1949
+ "group": "authentication",
2328
1950
  "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2329
1951
  "value": "disabled",
2330
1952
  "type": "Dropdown",
@@ -2347,60 +1969,227 @@
2347
1969
  "label": "HMAC secret key",
2348
1970
  "description": "Shared secret key",
2349
1971
  "type": "String",
2350
- "group": "endpoint",
1972
+ "group": "authentication",
1973
+ "optional": true,
1974
+ "binding": {
1975
+ "type": "zeebe:property",
1976
+ "name": "inbound.hmacSecret"
1977
+ },
1978
+ "condition": {
1979
+ "property": "shouldValidateHmac",
1980
+ "equals": "enabled"
1981
+ }
1982
+ },
1983
+ {
1984
+ "label": "HMAC header",
1985
+ "description": "Name of header attribute that will contain the HMAC value",
1986
+ "type": "String",
1987
+ "group": "authentication",
1988
+ "optional": true,
1989
+ "binding": {
1990
+ "type": "zeebe:property",
1991
+ "name": "inbound.hmacHeader"
1992
+ },
1993
+ "condition": {
1994
+ "property": "shouldValidateHmac",
1995
+ "equals": "enabled"
1996
+ }
1997
+ },
1998
+ {
1999
+ "label": "HMAC algorithm",
2000
+ "group": "authentication",
2001
+ "description": "Choose HMAC algorithm",
2002
+ "value": "sha_256",
2003
+ "type": "Dropdown",
2004
+ "choices": [
2005
+ {
2006
+ "name": "SHA-1",
2007
+ "value": "sha_1"
2008
+ },
2009
+ {
2010
+ "name": "SHA-256",
2011
+ "value": "sha_256"
2012
+ },
2013
+ {
2014
+ "name": "SHA-512",
2015
+ "value": "sha_512"
2016
+ }
2017
+ ],
2018
+ "binding": {
2019
+ "type": "zeebe:property",
2020
+ "name": "inbound.hmacAlgorithm"
2021
+ },
2022
+ "condition": {
2023
+ "property": "shouldValidateHmac",
2024
+ "equals": "enabled"
2025
+ }
2026
+ },
2027
+ {
2028
+ "label": "HMAC scopes",
2029
+ "group": "authentication",
2030
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
2031
+ "feel": "required",
2032
+ "type": "String",
2033
+ "optional": true,
2034
+ "binding": {
2035
+ "type": "zeebe:property",
2036
+ "name": "inbound.hmacScopes"
2037
+ },
2038
+ "condition": {
2039
+ "property": "shouldValidateHmac",
2040
+ "equals": "enabled"
2041
+ }
2042
+ },
2043
+ {
2044
+ "id": "authorizationType",
2045
+ "label": "Authorization type",
2046
+ "group": "authorization",
2047
+ "description": "Choose the authorization type.",
2048
+ "value": "NONE",
2049
+ "type": "Dropdown",
2050
+ "choices": [
2051
+ {
2052
+ "name": "None",
2053
+ "value": "NONE"
2054
+ },
2055
+ {
2056
+ "name": "JWT",
2057
+ "value": "JWT"
2058
+ },
2059
+ {
2060
+ "name": "Basic",
2061
+ "value": "BASIC"
2062
+ },
2063
+ {
2064
+ "name": "API Key",
2065
+ "value": "APIKEY"
2066
+ }
2067
+ ],
2068
+ "binding": {
2069
+ "type": "zeebe:property",
2070
+ "name": "inbound.auth.type"
2071
+ }
2072
+ },
2073
+ {
2074
+ "label": "JWK url",
2075
+ "description": "Well-known url of JWKs",
2076
+ "type": "String",
2077
+ "group": "authorization",
2078
+ "feel": "optional",
2351
2079
  "optional": true,
2352
2080
  "binding": {
2353
2081
  "type": "zeebe:property",
2354
- "name": "inbound.hmacSecret"
2082
+ "name": "inbound.auth.jwt.jwkUrl"
2083
+ },
2084
+ "condition": {
2085
+ "property": "authorizationType",
2086
+ "equals": "JWT"
2087
+ }
2088
+ },
2089
+ {
2090
+ "label": "JWT role property expression",
2091
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
2092
+ "type": "String",
2093
+ "group": "authorization",
2094
+ "feel": "required",
2095
+ "optional": true,
2096
+ "binding": {
2097
+ "type": "zeebe:property",
2098
+ "name": "inbound.auth.jwt.permissionsExpression"
2099
+ },
2100
+ "condition": {
2101
+ "property": "authorizationType",
2102
+ "equals": "JWT"
2103
+ }
2104
+ },
2105
+ {
2106
+ "label": "Required roles",
2107
+ "description": "List of roles to test JWT roles against",
2108
+ "type": "String",
2109
+ "group": "authorization",
2110
+ "feel": "required",
2111
+ "optional": true,
2112
+ "binding": {
2113
+ "type": "zeebe:property",
2114
+ "name": "inbound.auth.jwt.requiredPermissions"
2115
+ },
2116
+ "condition": {
2117
+ "property": "authorizationType",
2118
+ "equals": "JWT"
2119
+ }
2120
+ },
2121
+ {
2122
+ "label": "Username",
2123
+ "description": "Username for basic authentication",
2124
+ "type": "String",
2125
+ "group": "authorization",
2126
+ "feel": "optional",
2127
+ "binding": {
2128
+ "type": "zeebe:property",
2129
+ "name": "inbound.auth.username"
2130
+ },
2131
+ "condition": {
2132
+ "property": "authorizationType",
2133
+ "equals": "BASIC"
2134
+ },
2135
+ "constraints": {
2136
+ "notEmpty": true
2137
+ }
2138
+ },
2139
+ {
2140
+ "label": "Password",
2141
+ "description": "Password for basic authentication",
2142
+ "type": "String",
2143
+ "group": "authorization",
2144
+ "feel": "optional",
2145
+ "binding": {
2146
+ "type": "zeebe:property",
2147
+ "name": "inbound.auth.password"
2355
2148
  },
2356
2149
  "condition": {
2357
- "property": "shouldValidateHmac",
2358
- "equals": "enabled"
2150
+ "property": "authorizationType",
2151
+ "equals": "BASIC"
2152
+ },
2153
+ "constraints": {
2154
+ "notEmpty": true
2359
2155
  }
2360
2156
  },
2361
2157
  {
2362
- "label": "HMAC header",
2363
- "description": "Name of header attribute that will contain the HMAC value",
2158
+ "label": "API Key",
2159
+ "description": "Expected API key",
2364
2160
  "type": "String",
2365
- "group": "endpoint",
2366
- "optional": true,
2161
+ "group": "authorization",
2162
+ "feel": "optional",
2367
2163
  "binding": {
2368
2164
  "type": "zeebe:property",
2369
- "name": "inbound.hmacHeader"
2165
+ "name": "inbound.auth.apiKey"
2370
2166
  },
2371
2167
  "condition": {
2372
- "property": "shouldValidateHmac",
2373
- "equals": "enabled"
2168
+ "property": "authorizationType",
2169
+ "equals": "APIKEY"
2170
+ },
2171
+ "constraints": {
2172
+ "notEmpty": true
2374
2173
  }
2375
2174
  },
2376
2175
  {
2377
- "label": "HMAC algorithm",
2378
- "group": "endpoint",
2379
- "description": "Choose HMAC algorithm",
2380
- "value": "sha_256",
2381
- "type": "Dropdown",
2382
- "choices": [
2383
- {
2384
- "name": "SHA-1",
2385
- "value": "sha_1"
2386
- },
2387
- {
2388
- "name": "SHA-256",
2389
- "value": "sha_256"
2390
- },
2391
- {
2392
- "name": "SHA-512",
2393
- "value": "sha_512"
2394
- }
2395
- ],
2176
+ "label": "API Key locator",
2177
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2178
+ "type": "String",
2179
+ "group": "authorization",
2180
+ "feel": "required",
2396
2181
  "binding": {
2397
2182
  "type": "zeebe:property",
2398
- "name": "inbound.hmacAlgorithm"
2183
+ "name": "inbound.auth.apiKeyLocator"
2399
2184
  },
2400
2185
  "condition": {
2401
- "property": "shouldValidateHmac",
2402
- "equals": "enabled"
2403
- }
2186
+ "property": "authorizationType",
2187
+ "equals": "APIKEY"
2188
+ },
2189
+ "constraints": {
2190
+ "notEmpty": true
2191
+ },
2192
+ "value": "=split(request.headers.authorization, \" \")[2]"
2404
2193
  },
2405
2194
  {
2406
2195
  "label": "Condition",
@@ -2436,6 +2225,18 @@
2436
2225
  "name": "resultExpression"
2437
2226
  },
2438
2227
  "description": "Expression to map the inbound payload to process variables"
2228
+ },
2229
+ {
2230
+ "label": "Response body expression",
2231
+ "type": "Text",
2232
+ "group": "webhookResponse",
2233
+ "feel": "required",
2234
+ "optional": true,
2235
+ "binding": {
2236
+ "type": "zeebe:property",
2237
+ "name": "inbound.responseBodyExpression"
2238
+ },
2239
+ "description": "Specify condition and response"
2439
2240
  }
2440
2241
  ],
2441
2242
  "icon": {
@@ -2447,9 +2248,9 @@
2447
2248
  },
2448
2249
  {
2449
2250
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2450
- "name": "Webhook Start Event Connector",
2251
+ "name": "Webhook connector",
2451
2252
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2452
- "version": 8,
2253
+ "version": 5,
2453
2254
  "description": "Configure webhook to receive callbacks",
2454
2255
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2455
2256
  "category": {
@@ -2480,10 +2281,6 @@
2480
2281
  {
2481
2282
  "id": "variable-mapping",
2482
2283
  "label": "Variable mapping"
2483
- },
2484
- {
2485
- "id": "webhookResponse",
2486
- "label": "Webhook response"
2487
2284
  }
2488
2285
  ],
2489
2286
  "properties": [
@@ -2780,23 +2577,206 @@
2780
2577
  }
2781
2578
  },
2782
2579
  {
2783
- "label": "API Key locator",
2784
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2785
- "type": "String",
2786
- "group": "authorization",
2787
- "feel": "required",
2580
+ "label": "API Key locator",
2581
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
2582
+ "type": "String",
2583
+ "group": "authorization",
2584
+ "feel": "required",
2585
+ "binding": {
2586
+ "type": "zeebe:property",
2587
+ "name": "inbound.auth.apiKeyLocator"
2588
+ },
2589
+ "condition": {
2590
+ "property": "authorizationType",
2591
+ "equals": "APIKEY"
2592
+ },
2593
+ "constraints": {
2594
+ "notEmpty": true
2595
+ },
2596
+ "value": "=split(request.headers.authorization, \" \")[2]"
2597
+ },
2598
+ {
2599
+ "label": "Condition",
2600
+ "type": "String",
2601
+ "group": "activation",
2602
+ "feel": "required",
2603
+ "optional": true,
2604
+ "binding": {
2605
+ "type": "zeebe:property",
2606
+ "name": "activationCondition"
2607
+ },
2608
+ "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
2609
+ },
2610
+ {
2611
+ "label": "Result variable",
2612
+ "type": "String",
2613
+ "group": "variable-mapping",
2614
+ "optional": true,
2615
+ "binding": {
2616
+ "type": "zeebe:property",
2617
+ "name": "resultVariable"
2618
+ },
2619
+ "description": "Name of variable to store the result of the connector in"
2620
+ },
2621
+ {
2622
+ "label": "Result expression",
2623
+ "type": "String",
2624
+ "group": "variable-mapping",
2625
+ "feel": "required",
2626
+ "optional": true,
2627
+ "binding": {
2628
+ "type": "zeebe:property",
2629
+ "name": "resultExpression"
2630
+ },
2631
+ "description": "Expression to map the inbound payload to process variables"
2632
+ }
2633
+ ],
2634
+ "icon": {
2635
+ "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
2636
+ },
2637
+ "engines": {
2638
+ "camunda": "^8.2"
2639
+ }
2640
+ },
2641
+ {
2642
+ "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2643
+ "name": "Webhook Connector",
2644
+ "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2645
+ "version": 2,
2646
+ "description": "Configure webhook to receive callbacks",
2647
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2648
+ "category": {
2649
+ "id": "connectors",
2650
+ "name": "Connectors"
2651
+ },
2652
+ "appliesTo": ["bpmn:StartEvent"],
2653
+ "elementType": {
2654
+ "value": "bpmn:StartEvent"
2655
+ },
2656
+ "groups": [
2657
+ {
2658
+ "id": "endpoint",
2659
+ "label": "Webhook Configuration"
2660
+ },
2661
+ {
2662
+ "id": "activation",
2663
+ "label": "Activation"
2664
+ },
2665
+ {
2666
+ "id": "variable-mapping",
2667
+ "label": "Variable Mapping"
2668
+ }
2669
+ ],
2670
+ "properties": [
2671
+ {
2672
+ "type": "Hidden",
2673
+ "value": "io.camunda:webhook:1",
2674
+ "binding": {
2675
+ "type": "zeebe:property",
2676
+ "name": "inbound.type"
2677
+ }
2678
+ },
2679
+ {
2680
+ "type": "Hidden",
2681
+ "value": "ConfigurableInboundWebhook",
2682
+ "binding": {
2683
+ "type": "zeebe:property",
2684
+ "name": "inbound.subtype"
2685
+ }
2686
+ },
2687
+ {
2688
+ "label": "Webhook ID",
2689
+ "type": "String",
2690
+ "group": "endpoint",
2691
+ "binding": {
2692
+ "type": "zeebe:property",
2693
+ "name": "inbound.context"
2694
+ },
2695
+ "description": "The webhook ID is a part of the URL",
2696
+ "constraints": {
2697
+ "notEmpty": true
2698
+ }
2699
+ },
2700
+ {
2701
+ "id": "shouldValidateHmac",
2702
+ "label": "HMAC authentication",
2703
+ "group": "endpoint",
2704
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
2705
+ "value": "disabled",
2706
+ "type": "Dropdown",
2707
+ "choices": [
2708
+ {
2709
+ "name": "Enabled",
2710
+ "value": "enabled"
2711
+ },
2712
+ {
2713
+ "name": "Disabled",
2714
+ "value": "disabled"
2715
+ }
2716
+ ],
2717
+ "binding": {
2718
+ "type": "zeebe:property",
2719
+ "name": "inbound.shouldValidateHmac"
2720
+ }
2721
+ },
2722
+ {
2723
+ "label": "HMAC secret key",
2724
+ "description": "Shared secret key",
2725
+ "type": "String",
2726
+ "group": "endpoint",
2727
+ "optional": true,
2728
+ "binding": {
2729
+ "type": "zeebe:property",
2730
+ "name": "inbound.hmacSecret"
2731
+ },
2732
+ "condition": {
2733
+ "property": "shouldValidateHmac",
2734
+ "equals": "enabled"
2735
+ }
2736
+ },
2737
+ {
2738
+ "label": "HMAC header",
2739
+ "description": "Name of header attribute that will contain the HMAC value",
2740
+ "type": "String",
2741
+ "group": "endpoint",
2742
+ "optional": true,
2743
+ "binding": {
2744
+ "type": "zeebe:property",
2745
+ "name": "inbound.hmacHeader"
2746
+ },
2747
+ "condition": {
2748
+ "property": "shouldValidateHmac",
2749
+ "equals": "enabled"
2750
+ }
2751
+ },
2752
+ {
2753
+ "label": "HMAC algorithm",
2754
+ "group": "endpoint",
2755
+ "description": "Choose HMAC algorithm",
2756
+ "value": "sha_256",
2757
+ "type": "Dropdown",
2758
+ "choices": [
2759
+ {
2760
+ "name": "SHA-1",
2761
+ "value": "sha_1"
2762
+ },
2763
+ {
2764
+ "name": "SHA-256",
2765
+ "value": "sha_256"
2766
+ },
2767
+ {
2768
+ "name": "SHA-512",
2769
+ "value": "sha_512"
2770
+ }
2771
+ ],
2788
2772
  "binding": {
2789
2773
  "type": "zeebe:property",
2790
- "name": "inbound.auth.apiKeyLocator"
2774
+ "name": "inbound.hmacAlgorithm"
2791
2775
  },
2792
2776
  "condition": {
2793
- "property": "authorizationType",
2794
- "equals": "APIKEY"
2795
- },
2796
- "constraints": {
2797
- "notEmpty": true
2798
- },
2799
- "value": "=split(request.headers.authorization, \" \")[2]"
2777
+ "property": "shouldValidateHmac",
2778
+ "equals": "enabled"
2779
+ }
2800
2780
  },
2801
2781
  {
2802
2782
  "label": "Condition",
@@ -2806,7 +2786,7 @@
2806
2786
  "optional": true,
2807
2787
  "binding": {
2808
2788
  "type": "zeebe:property",
2809
- "name": "activationCondition"
2789
+ "name": "inbound.activationCondition"
2810
2790
  },
2811
2791
  "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
2812
2792
  },
@@ -2819,7 +2799,7 @@
2819
2799
  "type": "zeebe:property",
2820
2800
  "name": "resultVariable"
2821
2801
  },
2822
- "description": "Name of variable to store the result of the connector in"
2802
+ "description": "Name of variable to store the result of the Connector in"
2823
2803
  },
2824
2804
  {
2825
2805
  "label": "Result expression",
@@ -2832,44 +2812,20 @@
2832
2812
  "name": "resultExpression"
2833
2813
  },
2834
2814
  "description": "Expression to map the inbound payload to process variables"
2835
- },
2836
- {
2837
- "label": "One time verification response expression",
2838
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
2839
- "type": "Text",
2840
- "group": "webhookResponse",
2841
- "feel": "required",
2842
- "optional": true,
2843
- "binding": {
2844
- "type": "zeebe:property",
2845
- "name": "inbound.verificationExpression"
2846
- }
2847
- },
2848
- {
2849
- "label": "Response body expression",
2850
- "type": "Text",
2851
- "group": "webhookResponse",
2852
- "feel": "required",
2853
- "optional": true,
2854
- "binding": {
2855
- "type": "zeebe:property",
2856
- "name": "inbound.responseBodyExpression"
2857
- },
2858
- "description": "Specify condition and response"
2859
2815
  }
2860
2816
  ],
2861
2817
  "icon": {
2862
2818
  "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
2863
2819
  },
2864
2820
  "engines": {
2865
- "camunda": "^8.4"
2821
+ "camunda": "^8.2"
2866
2822
  }
2867
2823
  },
2868
2824
  {
2869
2825
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
2870
- "name": "Webhook Connector",
2826
+ "name": "Webhook connector",
2871
2827
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
2872
- "version": 1,
2828
+ "version": 3,
2873
2829
  "description": "Configure webhook to receive callbacks",
2874
2830
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
2875
2831
  "category": {
@@ -2883,7 +2839,7 @@
2883
2839
  "groups": [
2884
2840
  {
2885
2841
  "id": "endpoint",
2886
- "label": "Webhook Configuration"
2842
+ "label": "Webhook configuration"
2887
2843
  },
2888
2844
  {
2889
2845
  "id": "activation",
@@ -2891,7 +2847,7 @@
2891
2847
  },
2892
2848
  {
2893
2849
  "id": "variable-mapping",
2894
- "label": "Variable Mapping"
2850
+ "label": "Variable mapping"
2895
2851
  }
2896
2852
  ],
2897
2853
  "properties": [
@@ -2919,10 +2875,10 @@
2919
2875
  "type": "zeebe:property",
2920
2876
  "name": "inbound.context"
2921
2877
  },
2878
+ "description": "The webhook ID is a part of the URL",
2922
2879
  "constraints": {
2923
2880
  "notEmpty": true
2924
- },
2925
- "description": "The webhook ID is a part of the URL"
2881
+ }
2926
2882
  },
2927
2883
  {
2928
2884
  "id": "shouldValidateHmac",
@@ -3013,20 +2969,32 @@
3013
2969
  "optional": true,
3014
2970
  "binding": {
3015
2971
  "type": "zeebe:property",
3016
- "name": "inbound.activationCondition"
2972
+ "name": "activationCondition"
3017
2973
  },
3018
2974
  "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
3019
2975
  },
3020
2976
  {
3021
- "label": "Variables",
2977
+ "label": "Result variable",
2978
+ "type": "String",
2979
+ "group": "variable-mapping",
2980
+ "optional": true,
2981
+ "binding": {
2982
+ "type": "zeebe:property",
2983
+ "name": "resultVariable"
2984
+ },
2985
+ "description": "Name of variable to store the result of the connector in"
2986
+ },
2987
+ {
2988
+ "label": "Result expression",
3022
2989
  "type": "String",
3023
2990
  "group": "variable-mapping",
3024
2991
  "feel": "required",
2992
+ "optional": true,
3025
2993
  "binding": {
3026
2994
  "type": "zeebe:property",
3027
- "name": "inbound.variableMapping"
2995
+ "name": "resultExpression"
3028
2996
  },
3029
- "description": "Map variables from the webhook payload (request) to start the process with. When blank, entire payload is copied over. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
2997
+ "description": "Expression to map the inbound payload to process variables"
3030
2998
  }
3031
2999
  ],
3032
3000
  "icon": {
@@ -3040,7 +3008,7 @@
3040
3008
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3041
3009
  "name": "Webhook Start Event Connector",
3042
3010
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3043
- "version": 7,
3011
+ "version": 9,
3044
3012
  "description": "Configure webhook to receive callbacks",
3045
3013
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3046
3014
  "category": {
@@ -3138,7 +3106,11 @@
3138
3106
  },
3139
3107
  "description": "The webhook ID is a part of the URL",
3140
3108
  "constraints": {
3141
- "notEmpty": true
3109
+ "notEmpty": true,
3110
+ "pattern": {
3111
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
3112
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
3113
+ }
3142
3114
  }
3143
3115
  },
3144
3116
  {
@@ -3424,6 +3396,18 @@
3424
3396
  },
3425
3397
  "description": "Expression to map the inbound payload to process variables"
3426
3398
  },
3399
+ {
3400
+ "label": "One time verification response expression",
3401
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
3402
+ "type": "Text",
3403
+ "group": "webhookResponse",
3404
+ "feel": "required",
3405
+ "optional": true,
3406
+ "binding": {
3407
+ "type": "zeebe:property",
3408
+ "name": "inbound.verificationExpression"
3409
+ }
3410
+ },
3427
3411
  {
3428
3412
  "label": "Response body expression",
3429
3413
  "type": "Text",
@@ -3441,16 +3425,16 @@
3441
3425
  "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
3442
3426
  },
3443
3427
  "engines": {
3444
- "camunda": "^8.2"
3428
+ "camunda": "^8.5"
3445
3429
  }
3446
3430
  },
3447
3431
  {
3448
3432
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3449
- "name": "Webhook connector",
3433
+ "name": "Webhook Start Event Connector",
3450
3434
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3451
- "version": 5,
3452
3435
  "description": "Configure webhook to receive callbacks",
3453
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3436
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3437
+ "version": 11,
3454
3438
  "category": {
3455
3439
  "id": "connectors",
3456
3440
  "name": "Connectors"
@@ -3472,38 +3456,39 @@
3472
3456
  "id": "authorization",
3473
3457
  "label": "Authorization"
3474
3458
  },
3459
+ {
3460
+ "id": "webhookResponse",
3461
+ "label": "Webhook response"
3462
+ },
3475
3463
  {
3476
3464
  "id": "activation",
3477
3465
  "label": "Activation"
3478
3466
  },
3479
3467
  {
3480
- "id": "variable-mapping",
3481
- "label": "Variable mapping"
3468
+ "id": "output",
3469
+ "label": "Output mapping"
3482
3470
  }
3483
3471
  ],
3484
3472
  "properties": [
3485
3473
  {
3486
- "type": "Hidden",
3487
3474
  "value": "io.camunda:webhook:1",
3488
3475
  "binding": {
3489
- "type": "zeebe:property",
3490
- "name": "inbound.type"
3491
- }
3492
- },
3493
- {
3494
- "type": "Hidden",
3495
- "value": "ConfigurableInboundWebhook",
3496
- "binding": {
3497
- "type": "zeebe:property",
3498
- "name": "inbound.subtype"
3499
- }
3476
+ "name": "inbound.type",
3477
+ "type": "zeebe:property"
3478
+ },
3479
+ "type": "Hidden"
3500
3480
  },
3501
3481
  {
3502
- "id": "webhookMethod",
3482
+ "id": "inbound.method",
3503
3483
  "label": "Webhook method",
3504
- "group": "endpoint",
3505
3484
  "description": "Select HTTP method",
3485
+ "optional": false,
3506
3486
  "value": "any",
3487
+ "group": "endpoint",
3488
+ "binding": {
3489
+ "name": "inbound.method",
3490
+ "type": "zeebe:property"
3491
+ },
3507
3492
  "type": "Dropdown",
3508
3493
  "choices": [
3509
3494
  {
@@ -3511,46 +3496,53 @@
3511
3496
  "value": "any"
3512
3497
  },
3513
3498
  {
3514
- "name": "Get",
3499
+ "name": "GET",
3515
3500
  "value": "get"
3516
3501
  },
3517
3502
  {
3518
- "name": "Post",
3503
+ "name": "POST",
3519
3504
  "value": "post"
3520
3505
  },
3521
3506
  {
3522
- "name": "Put",
3507
+ "name": "PUT",
3523
3508
  "value": "put"
3524
3509
  },
3525
3510
  {
3526
- "name": "Delete",
3511
+ "name": "DELETE",
3527
3512
  "value": "delete"
3528
3513
  }
3529
- ],
3530
- "binding": {
3531
- "type": "zeebe:property",
3532
- "name": "inbound.method"
3533
- }
3514
+ ]
3534
3515
  },
3535
3516
  {
3517
+ "id": "inbound.context",
3536
3518
  "label": "Webhook ID",
3537
- "type": "String",
3519
+ "description": "The webhook ID is a part of the URL",
3520
+ "optional": false,
3521
+ "constraints": {
3522
+ "notEmpty": true,
3523
+ "pattern": {
3524
+ "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
3525
+ "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
3526
+ }
3527
+ },
3538
3528
  "group": "endpoint",
3539
3529
  "binding": {
3540
- "type": "zeebe:property",
3541
- "name": "inbound.context"
3530
+ "name": "inbound.context",
3531
+ "type": "zeebe:property"
3542
3532
  },
3543
- "description": "The webhook ID is a part of the URL",
3544
- "constraints": {
3545
- "notEmpty": true
3546
- }
3533
+ "type": "String"
3547
3534
  },
3548
3535
  {
3549
- "id": "shouldValidateHmac",
3536
+ "id": "inbound.shouldValidateHmac",
3550
3537
  "label": "HMAC authentication",
3551
- "group": "authentication",
3552
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3538
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3539
+ "optional": false,
3553
3540
  "value": "disabled",
3541
+ "group": "authentication",
3542
+ "binding": {
3543
+ "name": "inbound.shouldValidateHmac",
3544
+ "type": "zeebe:property"
3545
+ },
3554
3546
  "type": "Dropdown",
3555
3547
  "choices": [
3556
3548
  {
@@ -3561,47 +3553,60 @@
3561
3553
  "name": "Disabled",
3562
3554
  "value": "disabled"
3563
3555
  }
3564
- ],
3565
- "binding": {
3566
- "type": "zeebe:property",
3567
- "name": "inbound.shouldValidateHmac"
3568
- }
3556
+ ]
3569
3557
  },
3570
3558
  {
3559
+ "id": "inbound.hmacSecret",
3571
3560
  "label": "HMAC secret key",
3572
3561
  "description": "Shared secret key",
3573
- "type": "String",
3574
- "group": "authentication",
3575
3562
  "optional": true,
3563
+ "feel": "optional",
3564
+ "group": "authentication",
3576
3565
  "binding": {
3577
- "type": "zeebe:property",
3578
- "name": "inbound.hmacSecret"
3566
+ "name": "inbound.hmacSecret",
3567
+ "type": "zeebe:property"
3579
3568
  },
3580
3569
  "condition": {
3581
- "property": "shouldValidateHmac",
3582
- "equals": "enabled"
3583
- }
3570
+ "property": "inbound.shouldValidateHmac",
3571
+ "equals": "enabled",
3572
+ "type": "simple"
3573
+ },
3574
+ "type": "String"
3584
3575
  },
3585
3576
  {
3577
+ "id": "inbound.hmacHeader",
3586
3578
  "label": "HMAC header",
3587
3579
  "description": "Name of header attribute that will contain the HMAC value",
3588
- "type": "String",
3589
- "group": "authentication",
3590
3580
  "optional": true,
3581
+ "feel": "optional",
3582
+ "group": "authentication",
3591
3583
  "binding": {
3592
- "type": "zeebe:property",
3593
- "name": "inbound.hmacHeader"
3584
+ "name": "inbound.hmacHeader",
3585
+ "type": "zeebe:property"
3594
3586
  },
3595
3587
  "condition": {
3596
- "property": "shouldValidateHmac",
3597
- "equals": "enabled"
3598
- }
3588
+ "property": "inbound.shouldValidateHmac",
3589
+ "equals": "enabled",
3590
+ "type": "simple"
3591
+ },
3592
+ "type": "String"
3599
3593
  },
3600
3594
  {
3595
+ "id": "inbound.hmacAlgorithm",
3601
3596
  "label": "HMAC algorithm",
3602
- "group": "authentication",
3603
3597
  "description": "Choose HMAC algorithm",
3598
+ "optional": false,
3604
3599
  "value": "sha_256",
3600
+ "group": "authentication",
3601
+ "binding": {
3602
+ "name": "inbound.hmacAlgorithm",
3603
+ "type": "zeebe:property"
3604
+ },
3605
+ "condition": {
3606
+ "property": "inbound.shouldValidateHmac",
3607
+ "equals": "enabled",
3608
+ "type": "simple"
3609
+ },
3605
3610
  "type": "Dropdown",
3606
3611
  "choices": [
3607
3612
  {
@@ -3616,233 +3621,275 @@
3616
3621
  "name": "SHA-512",
3617
3622
  "value": "sha_512"
3618
3623
  }
3619
- ],
3620
- "binding": {
3621
- "type": "zeebe:property",
3622
- "name": "inbound.hmacAlgorithm"
3623
- },
3624
- "condition": {
3625
- "property": "shouldValidateHmac",
3626
- "equals": "enabled"
3627
- }
3624
+ ]
3628
3625
  },
3629
3626
  {
3627
+ "id": "inbound.hmacScopes",
3630
3628
  "label": "HMAC scopes",
3631
- "group": "authentication",
3632
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
3633
- "feel": "required",
3634
- "type": "String",
3629
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
3635
3630
  "optional": true,
3631
+ "feel": "required",
3632
+ "group": "authentication",
3636
3633
  "binding": {
3637
- "type": "zeebe:property",
3638
- "name": "inbound.hmacScopes"
3634
+ "name": "inbound.hmacScopes",
3635
+ "type": "zeebe:property"
3639
3636
  },
3640
3637
  "condition": {
3641
- "property": "shouldValidateHmac",
3642
- "equals": "enabled"
3643
- }
3638
+ "property": "inbound.shouldValidateHmac",
3639
+ "equals": "enabled",
3640
+ "type": "simple"
3641
+ },
3642
+ "type": "String"
3644
3643
  },
3645
3644
  {
3646
- "id": "authorizationType",
3645
+ "id": "inbound.auth.type",
3647
3646
  "label": "Authorization type",
3648
- "group": "authorization",
3649
- "description": "Choose the authorization type.",
3647
+ "description": "Choose the authorization type",
3650
3648
  "value": "NONE",
3649
+ "group": "authorization",
3650
+ "binding": {
3651
+ "name": "inbound.auth.type",
3652
+ "type": "zeebe:property"
3653
+ },
3651
3654
  "type": "Dropdown",
3652
3655
  "choices": [
3653
3656
  {
3654
3657
  "name": "None",
3655
3658
  "value": "NONE"
3656
3659
  },
3657
- {
3658
- "name": "JWT",
3659
- "value": "JWT"
3660
- },
3661
3660
  {
3662
3661
  "name": "Basic",
3663
3662
  "value": "BASIC"
3664
3663
  },
3665
3664
  {
3666
- "name": "API Key",
3665
+ "name": "API key",
3667
3666
  "value": "APIKEY"
3667
+ },
3668
+ {
3669
+ "name": "JWT",
3670
+ "value": "JWT"
3668
3671
  }
3669
- ],
3670
- "binding": {
3671
- "type": "zeebe:property",
3672
- "name": "inbound.auth.type"
3673
- }
3672
+ ]
3674
3673
  },
3675
3674
  {
3676
- "label": "JWK url",
3677
- "description": "Well-known url of JWKs",
3678
- "type": "String",
3679
- "group": "authorization",
3675
+ "id": "inbound.auth.username",
3676
+ "label": "Username",
3677
+ "description": "Username for basic authentication",
3678
+ "optional": false,
3680
3679
  "feel": "optional",
3681
- "optional": true,
3680
+ "group": "authorization",
3682
3681
  "binding": {
3683
- "type": "zeebe:property",
3684
- "name": "inbound.auth.jwt.jwkUrl"
3682
+ "name": "inbound.auth.username",
3683
+ "type": "zeebe:property"
3685
3684
  },
3686
3685
  "condition": {
3687
- "property": "authorizationType",
3688
- "equals": "JWT"
3689
- }
3686
+ "property": "inbound.auth.type",
3687
+ "equals": "BASIC",
3688
+ "type": "simple"
3689
+ },
3690
+ "type": "String"
3690
3691
  },
3691
3692
  {
3692
- "label": "JWT role property expression",
3693
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3694
- "type": "String",
3693
+ "id": "inbound.auth.password",
3694
+ "label": "Password",
3695
+ "description": "Password for basic authentication",
3696
+ "optional": false,
3697
+ "feel": "optional",
3695
3698
  "group": "authorization",
3696
- "feel": "required",
3697
- "optional": true,
3698
3699
  "binding": {
3699
- "type": "zeebe:property",
3700
- "name": "inbound.auth.jwt.permissionsExpression"
3700
+ "name": "inbound.auth.password",
3701
+ "type": "zeebe:property"
3701
3702
  },
3702
3703
  "condition": {
3703
- "property": "authorizationType",
3704
- "equals": "JWT"
3705
- }
3704
+ "property": "inbound.auth.type",
3705
+ "equals": "BASIC",
3706
+ "type": "simple"
3707
+ },
3708
+ "type": "String"
3706
3709
  },
3707
3710
  {
3708
- "label": "Required roles",
3709
- "description": "List of roles to test JWT roles against",
3710
- "type": "String",
3711
+ "id": "inbound.auth.apiKey",
3712
+ "label": "API key",
3713
+ "description": "Expected API key",
3714
+ "optional": false,
3715
+ "feel": "optional",
3711
3716
  "group": "authorization",
3712
- "feel": "required",
3713
- "optional": true,
3714
3717
  "binding": {
3715
- "type": "zeebe:property",
3716
- "name": "inbound.auth.jwt.requiredPermissions"
3718
+ "name": "inbound.auth.apiKey",
3719
+ "type": "zeebe:property"
3717
3720
  },
3718
3721
  "condition": {
3719
- "property": "authorizationType",
3720
- "equals": "JWT"
3721
- }
3722
+ "property": "inbound.auth.type",
3723
+ "equals": "APIKEY",
3724
+ "type": "simple"
3725
+ },
3726
+ "type": "String"
3722
3727
  },
3723
3728
  {
3724
- "label": "Username",
3725
- "description": "Username for basic authentication",
3726
- "type": "String",
3729
+ "id": "inbound.auth.apiKeyLocator",
3730
+ "label": "API key locator",
3731
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3732
+ "optional": false,
3733
+ "value": "=split(request.headers.authorization, \" \")[2]",
3734
+ "constraints": {
3735
+ "notEmpty": true
3736
+ },
3737
+ "feel": "required",
3727
3738
  "group": "authorization",
3728
- "feel": "optional",
3729
3739
  "binding": {
3730
- "type": "zeebe:property",
3731
- "name": "inbound.auth.username"
3740
+ "name": "inbound.auth.apiKeyLocator",
3741
+ "type": "zeebe:property"
3732
3742
  },
3733
3743
  "condition": {
3734
- "property": "authorizationType",
3735
- "equals": "BASIC"
3744
+ "property": "inbound.auth.type",
3745
+ "equals": "APIKEY",
3746
+ "type": "simple"
3736
3747
  },
3737
- "constraints": {
3738
- "notEmpty": true
3739
- }
3748
+ "type": "String"
3740
3749
  },
3741
3750
  {
3742
- "label": "Password",
3743
- "description": "Password for basic authentication",
3744
- "type": "String",
3745
- "group": "authorization",
3751
+ "id": "inbound.auth.jwt.jwkUrl",
3752
+ "label": "JWK URL",
3753
+ "description": "Well-known URL of JWKs",
3754
+ "optional": false,
3746
3755
  "feel": "optional",
3756
+ "group": "authorization",
3747
3757
  "binding": {
3748
- "type": "zeebe:property",
3749
- "name": "inbound.auth.password"
3758
+ "name": "inbound.auth.jwt.jwkUrl",
3759
+ "type": "zeebe:property"
3750
3760
  },
3751
3761
  "condition": {
3752
- "property": "authorizationType",
3753
- "equals": "BASIC"
3762
+ "property": "inbound.auth.type",
3763
+ "equals": "JWT",
3764
+ "type": "simple"
3754
3765
  },
3755
- "constraints": {
3756
- "notEmpty": true
3757
- }
3766
+ "type": "String"
3758
3767
  },
3759
3768
  {
3760
- "label": "API Key",
3761
- "description": "Expected API key",
3762
- "type": "String",
3769
+ "id": "inbound.auth.jwt.permissionsExpression",
3770
+ "label": "JWT role property expression",
3771
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
3772
+ "optional": false,
3773
+ "feel": "required",
3763
3774
  "group": "authorization",
3764
- "feel": "optional",
3765
3775
  "binding": {
3766
- "type": "zeebe:property",
3767
- "name": "inbound.auth.apiKey"
3776
+ "name": "inbound.auth.jwt.permissionsExpression",
3777
+ "type": "zeebe:property"
3768
3778
  },
3769
3779
  "condition": {
3770
- "property": "authorizationType",
3771
- "equals": "APIKEY"
3780
+ "property": "inbound.auth.type",
3781
+ "equals": "JWT",
3782
+ "type": "simple"
3772
3783
  },
3773
- "constraints": {
3774
- "notEmpty": true
3775
- }
3784
+ "type": "String"
3776
3785
  },
3777
3786
  {
3778
- "label": "API Key locator",
3779
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
3780
- "type": "String",
3781
- "group": "authorization",
3787
+ "id": "inbound.auth.jwt.requiredPermissions",
3788
+ "label": "Required roles",
3789
+ "description": "List of roles to test JWT roles against",
3790
+ "optional": false,
3782
3791
  "feel": "required",
3792
+ "group": "authorization",
3783
3793
  "binding": {
3784
- "type": "zeebe:property",
3785
- "name": "inbound.auth.apiKeyLocator"
3794
+ "name": "inbound.auth.jwt.requiredPermissions",
3795
+ "type": "zeebe:property"
3786
3796
  },
3787
3797
  "condition": {
3788
- "property": "authorizationType",
3789
- "equals": "APIKEY"
3798
+ "property": "inbound.auth.type",
3799
+ "equals": "JWT",
3800
+ "type": "simple"
3790
3801
  },
3791
- "constraints": {
3792
- "notEmpty": true
3802
+ "type": "String"
3803
+ },
3804
+ {
3805
+ "id": "inbound.responseExpression",
3806
+ "label": "Response expression",
3807
+ "description": "Expression used to generate the HTTP response",
3808
+ "optional": true,
3809
+ "feel": "required",
3810
+ "group": "webhookResponse",
3811
+ "binding": {
3812
+ "name": "inbound.responseExpression",
3813
+ "type": "zeebe:property"
3793
3814
  },
3794
- "value": "=split(request.headers.authorization, \" \")[2]"
3815
+ "type": "Text"
3795
3816
  },
3796
3817
  {
3797
- "label": "Condition",
3798
- "type": "String",
3818
+ "id": "inbound.verificationExpression",
3819
+ "label": "One time verification response expression",
3820
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
3821
+ "optional": true,
3822
+ "feel": "required",
3823
+ "group": "webhookResponse",
3824
+ "binding": {
3825
+ "name": "inbound.verificationExpression",
3826
+ "type": "zeebe:property"
3827
+ },
3828
+ "type": "Text"
3829
+ },
3830
+ {
3831
+ "id": "activationCondition",
3832
+ "label": "Activation condition",
3833
+ "description": "Condition under which the Connector triggers. Leave empty to catch all events",
3834
+ "optional": true,
3835
+ "feel": "required",
3836
+ "group": "activation",
3837
+ "binding": {
3838
+ "name": "activationCondition",
3839
+ "type": "zeebe:property"
3840
+ },
3841
+ "type": "String"
3842
+ },
3843
+ {
3844
+ "id": "consumeUnmatchedEvents",
3845
+ "label": "Consume unmatched events",
3846
+ "value": true,
3799
3847
  "group": "activation",
3800
- "feel": "required",
3801
- "optional": true,
3802
3848
  "binding": {
3803
- "type": "zeebe:property",
3804
- "name": "activationCondition"
3849
+ "name": "consumeUnmatchedEvents",
3850
+ "type": "zeebe:property"
3805
3851
  },
3806
- "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
3852
+ "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
3853
+ "type": "Boolean"
3807
3854
  },
3808
3855
  {
3856
+ "id": "resultVariable",
3809
3857
  "label": "Result variable",
3810
- "type": "String",
3811
- "group": "variable-mapping",
3812
- "optional": true,
3858
+ "description": "Name of variable to store the response in",
3859
+ "group": "output",
3813
3860
  "binding": {
3814
- "type": "zeebe:property",
3815
- "name": "resultVariable"
3861
+ "name": "resultVariable",
3862
+ "type": "zeebe:property"
3816
3863
  },
3817
- "description": "Name of variable to store the result of the connector in"
3864
+ "type": "String"
3818
3865
  },
3819
3866
  {
3867
+ "id": "resultExpression",
3820
3868
  "label": "Result expression",
3821
- "type": "String",
3822
- "group": "variable-mapping",
3869
+ "description": "Expression to map the response into process variables",
3823
3870
  "feel": "required",
3824
- "optional": true,
3871
+ "group": "output",
3825
3872
  "binding": {
3826
- "type": "zeebe:property",
3827
- "name": "resultExpression"
3873
+ "name": "resultExpression",
3874
+ "type": "zeebe:property"
3828
3875
  },
3829
- "description": "Expression to map the inbound payload to process variables"
3876
+ "type": "Text"
3830
3877
  }
3831
3878
  ],
3832
3879
  "icon": {
3833
- "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
3880
+ "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
3834
3881
  },
3835
3882
  "engines": {
3836
- "camunda": "^8.2"
3883
+ "camunda": "^8.6"
3837
3884
  }
3838
3885
  },
3839
3886
  {
3840
3887
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
3841
3888
  "name": "Webhook Start Event Connector",
3842
3889
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
3890
+ "version": 8,
3843
3891
  "description": "Configure webhook to receive callbacks",
3844
- "documentationRef": "https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/",
3845
- "version": 11,
3892
+ "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
3846
3893
  "category": {
3847
3894
  "id": "connectors",
3848
3895
  "name": "Connectors"
@@ -3864,39 +3911,42 @@
3864
3911
  "id": "authorization",
3865
3912
  "label": "Authorization"
3866
3913
  },
3867
- {
3868
- "id": "webhookResponse",
3869
- "label": "Webhook response"
3870
- },
3871
3914
  {
3872
3915
  "id": "activation",
3873
3916
  "label": "Activation"
3874
3917
  },
3875
3918
  {
3876
- "id": "output",
3877
- "label": "Output mapping"
3919
+ "id": "variable-mapping",
3920
+ "label": "Variable mapping"
3921
+ },
3922
+ {
3923
+ "id": "webhookResponse",
3924
+ "label": "Webhook response"
3878
3925
  }
3879
3926
  ],
3880
3927
  "properties": [
3881
3928
  {
3929
+ "type": "Hidden",
3882
3930
  "value": "io.camunda:webhook:1",
3883
3931
  "binding": {
3884
- "name": "inbound.type",
3885
- "type": "zeebe:property"
3886
- },
3887
- "type": "Hidden"
3932
+ "type": "zeebe:property",
3933
+ "name": "inbound.type"
3934
+ }
3888
3935
  },
3889
3936
  {
3890
- "id": "inbound.method",
3937
+ "type": "Hidden",
3938
+ "value": "ConfigurableInboundWebhook",
3939
+ "binding": {
3940
+ "type": "zeebe:property",
3941
+ "name": "inbound.subtype"
3942
+ }
3943
+ },
3944
+ {
3945
+ "id": "webhookMethod",
3891
3946
  "label": "Webhook method",
3947
+ "group": "endpoint",
3892
3948
  "description": "Select HTTP method",
3893
- "optional": false,
3894
3949
  "value": "any",
3895
- "group": "endpoint",
3896
- "binding": {
3897
- "name": "inbound.method",
3898
- "type": "zeebe:property"
3899
- },
3900
3950
  "type": "Dropdown",
3901
3951
  "choices": [
3902
3952
  {
@@ -3904,53 +3954,46 @@
3904
3954
  "value": "any"
3905
3955
  },
3906
3956
  {
3907
- "name": "GET",
3957
+ "name": "Get",
3908
3958
  "value": "get"
3909
3959
  },
3910
3960
  {
3911
- "name": "POST",
3961
+ "name": "Post",
3912
3962
  "value": "post"
3913
3963
  },
3914
3964
  {
3915
- "name": "PUT",
3965
+ "name": "Put",
3916
3966
  "value": "put"
3917
3967
  },
3918
3968
  {
3919
- "name": "DELETE",
3969
+ "name": "Delete",
3920
3970
  "value": "delete"
3921
3971
  }
3922
- ]
3972
+ ],
3973
+ "binding": {
3974
+ "type": "zeebe:property",
3975
+ "name": "inbound.method"
3976
+ }
3923
3977
  },
3924
3978
  {
3925
- "id": "inbound.context",
3926
3979
  "label": "Webhook ID",
3927
- "description": "The webhook ID is a part of the URL",
3928
- "optional": false,
3929
- "constraints": {
3930
- "notEmpty": true,
3931
- "pattern": {
3932
- "value": "^[a-zA-Z0-9]+([-_][a-zA-Z0-9]+)*$",
3933
- "message": "can only contain letters, numbers, or single underscores/hyphens and cannot begin or end with an underscore/hyphen"
3934
- }
3935
- },
3980
+ "type": "String",
3936
3981
  "group": "endpoint",
3937
3982
  "binding": {
3938
- "name": "inbound.context",
3939
- "type": "zeebe:property"
3983
+ "type": "zeebe:property",
3984
+ "name": "inbound.context"
3940
3985
  },
3941
- "type": "String"
3986
+ "description": "The webhook ID is a part of the URL",
3987
+ "constraints": {
3988
+ "notEmpty": true
3989
+ }
3942
3990
  },
3943
3991
  {
3944
- "id": "inbound.shouldValidateHmac",
3992
+ "id": "shouldValidateHmac",
3945
3993
  "label": "HMAC authentication",
3946
- "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3947
- "optional": false,
3948
- "value": "disabled",
3949
3994
  "group": "authentication",
3950
- "binding": {
3951
- "name": "inbound.shouldValidateHmac",
3952
- "type": "zeebe:property"
3953
- },
3995
+ "description": "Choose whether HMAC verification is enabled. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a> and <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#example' target='_blank'>example</a> that explains how to use HMAC-related fields",
3996
+ "value": "disabled",
3954
3997
  "type": "Dropdown",
3955
3998
  "choices": [
3956
3999
  {
@@ -3961,60 +4004,47 @@
3961
4004
  "name": "Disabled",
3962
4005
  "value": "disabled"
3963
4006
  }
3964
- ]
4007
+ ],
4008
+ "binding": {
4009
+ "type": "zeebe:property",
4010
+ "name": "inbound.shouldValidateHmac"
4011
+ }
3965
4012
  },
3966
4013
  {
3967
- "id": "inbound.hmacSecret",
3968
4014
  "label": "HMAC secret key",
3969
4015
  "description": "Shared secret key",
3970
- "optional": true,
3971
- "feel": "optional",
4016
+ "type": "String",
3972
4017
  "group": "authentication",
4018
+ "optional": true,
3973
4019
  "binding": {
3974
- "name": "inbound.hmacSecret",
3975
- "type": "zeebe:property"
4020
+ "type": "zeebe:property",
4021
+ "name": "inbound.hmacSecret"
3976
4022
  },
3977
4023
  "condition": {
3978
- "property": "inbound.shouldValidateHmac",
3979
- "equals": "enabled",
3980
- "type": "simple"
3981
- },
3982
- "type": "String"
4024
+ "property": "shouldValidateHmac",
4025
+ "equals": "enabled"
4026
+ }
3983
4027
  },
3984
4028
  {
3985
- "id": "inbound.hmacHeader",
3986
4029
  "label": "HMAC header",
3987
4030
  "description": "Name of header attribute that will contain the HMAC value",
3988
- "optional": true,
3989
- "feel": "optional",
4031
+ "type": "String",
3990
4032
  "group": "authentication",
4033
+ "optional": true,
3991
4034
  "binding": {
3992
- "name": "inbound.hmacHeader",
3993
- "type": "zeebe:property"
4035
+ "type": "zeebe:property",
4036
+ "name": "inbound.hmacHeader"
3994
4037
  },
3995
4038
  "condition": {
3996
- "property": "inbound.shouldValidateHmac",
3997
- "equals": "enabled",
3998
- "type": "simple"
3999
- },
4000
- "type": "String"
4039
+ "property": "shouldValidateHmac",
4040
+ "equals": "enabled"
4041
+ }
4001
4042
  },
4002
4043
  {
4003
- "id": "inbound.hmacAlgorithm",
4004
4044
  "label": "HMAC algorithm",
4045
+ "group": "authentication",
4005
4046
  "description": "Choose HMAC algorithm",
4006
- "optional": false,
4007
4047
  "value": "sha_256",
4008
- "group": "authentication",
4009
- "binding": {
4010
- "name": "inbound.hmacAlgorithm",
4011
- "type": "zeebe:property"
4012
- },
4013
- "condition": {
4014
- "property": "inbound.shouldValidateHmac",
4015
- "equals": "enabled",
4016
- "type": "simple"
4017
- },
4018
4048
  "type": "Dropdown",
4019
4049
  "choices": [
4020
4050
  {
@@ -4029,273 +4059,255 @@
4029
4059
  "name": "SHA-512",
4030
4060
  "value": "sha_512"
4031
4061
  }
4032
- ]
4062
+ ],
4063
+ "binding": {
4064
+ "type": "zeebe:property",
4065
+ "name": "inbound.hmacAlgorithm"
4066
+ },
4067
+ "condition": {
4068
+ "property": "shouldValidateHmac",
4069
+ "equals": "enabled"
4070
+ }
4033
4071
  },
4034
4072
  {
4035
- "id": "inbound.hmacScopes",
4036
4073
  "label": "HMAC scopes",
4037
- "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/' target='_blank'>documentation</a>",
4038
- "optional": true,
4039
- "feel": "required",
4040
4074
  "group": "authentication",
4075
+ "description": "Set HMAC scopes for calculating signature data. See <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/' target='_blank'>documentation</a>",
4076
+ "feel": "required",
4077
+ "type": "String",
4078
+ "optional": true,
4041
4079
  "binding": {
4042
- "name": "inbound.hmacScopes",
4043
- "type": "zeebe:property"
4080
+ "type": "zeebe:property",
4081
+ "name": "inbound.hmacScopes"
4044
4082
  },
4045
4083
  "condition": {
4046
- "property": "inbound.shouldValidateHmac",
4047
- "equals": "enabled",
4048
- "type": "simple"
4049
- },
4050
- "type": "String"
4084
+ "property": "shouldValidateHmac",
4085
+ "equals": "enabled"
4086
+ }
4051
4087
  },
4052
4088
  {
4053
- "id": "inbound.auth.type",
4089
+ "id": "authorizationType",
4054
4090
  "label": "Authorization type",
4055
- "description": "Choose the authorization type",
4056
- "value": "NONE",
4057
4091
  "group": "authorization",
4058
- "binding": {
4059
- "name": "inbound.auth.type",
4060
- "type": "zeebe:property"
4061
- },
4092
+ "description": "Choose the authorization type.",
4093
+ "value": "NONE",
4062
4094
  "type": "Dropdown",
4063
4095
  "choices": [
4064
4096
  {
4065
4097
  "name": "None",
4066
4098
  "value": "NONE"
4067
4099
  },
4100
+ {
4101
+ "name": "JWT",
4102
+ "value": "JWT"
4103
+ },
4068
4104
  {
4069
4105
  "name": "Basic",
4070
4106
  "value": "BASIC"
4071
4107
  },
4072
4108
  {
4073
- "name": "API key",
4109
+ "name": "API Key",
4074
4110
  "value": "APIKEY"
4075
- },
4076
- {
4077
- "name": "JWT",
4078
- "value": "JWT"
4079
4111
  }
4080
- ]
4081
- },
4082
- {
4083
- "id": "inbound.auth.username",
4084
- "label": "Username",
4085
- "description": "Username for basic authentication",
4086
- "optional": false,
4087
- "feel": "optional",
4088
- "group": "authorization",
4112
+ ],
4089
4113
  "binding": {
4090
- "name": "inbound.auth.username",
4091
- "type": "zeebe:property"
4092
- },
4093
- "condition": {
4094
- "property": "inbound.auth.type",
4095
- "equals": "BASIC",
4096
- "type": "simple"
4097
- },
4098
- "type": "String"
4114
+ "type": "zeebe:property",
4115
+ "name": "inbound.auth.type"
4116
+ }
4099
4117
  },
4100
4118
  {
4101
- "id": "inbound.auth.password",
4102
- "label": "Password",
4103
- "description": "Password for basic authentication",
4104
- "optional": false,
4105
- "feel": "optional",
4119
+ "label": "JWK url",
4120
+ "description": "Well-known url of JWKs",
4121
+ "type": "String",
4106
4122
  "group": "authorization",
4123
+ "feel": "optional",
4124
+ "optional": true,
4107
4125
  "binding": {
4108
- "name": "inbound.auth.password",
4109
- "type": "zeebe:property"
4126
+ "type": "zeebe:property",
4127
+ "name": "inbound.auth.jwt.jwkUrl"
4110
4128
  },
4111
4129
  "condition": {
4112
- "property": "inbound.auth.type",
4113
- "equals": "BASIC",
4114
- "type": "simple"
4115
- },
4116
- "type": "String"
4130
+ "property": "authorizationType",
4131
+ "equals": "JWT"
4132
+ }
4117
4133
  },
4118
4134
  {
4119
- "id": "inbound.auth.apiKey",
4120
- "label": "API key",
4121
- "description": "Expected API key",
4122
- "optional": false,
4123
- "feel": "optional",
4135
+ "label": "JWT role property expression",
4136
+ "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
4137
+ "type": "String",
4124
4138
  "group": "authorization",
4139
+ "feel": "required",
4140
+ "optional": true,
4125
4141
  "binding": {
4126
- "name": "inbound.auth.apiKey",
4127
- "type": "zeebe:property"
4142
+ "type": "zeebe:property",
4143
+ "name": "inbound.auth.jwt.permissionsExpression"
4128
4144
  },
4129
4145
  "condition": {
4130
- "property": "inbound.auth.type",
4131
- "equals": "APIKEY",
4132
- "type": "simple"
4133
- },
4134
- "type": "String"
4146
+ "property": "authorizationType",
4147
+ "equals": "JWT"
4148
+ }
4135
4149
  },
4136
4150
  {
4137
- "id": "inbound.auth.apiKeyLocator",
4138
- "label": "API key locator",
4139
- "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
4140
- "optional": false,
4141
- "value": "=split(request.headers.authorization, \" \")[2]",
4142
- "constraints": {
4143
- "notEmpty": true
4144
- },
4145
- "feel": "required",
4151
+ "label": "Required roles",
4152
+ "description": "List of roles to test JWT roles against",
4153
+ "type": "String",
4146
4154
  "group": "authorization",
4155
+ "feel": "required",
4156
+ "optional": true,
4147
4157
  "binding": {
4148
- "name": "inbound.auth.apiKeyLocator",
4149
- "type": "zeebe:property"
4158
+ "type": "zeebe:property",
4159
+ "name": "inbound.auth.jwt.requiredPermissions"
4150
4160
  },
4151
4161
  "condition": {
4152
- "property": "inbound.auth.type",
4153
- "equals": "APIKEY",
4154
- "type": "simple"
4155
- },
4156
- "type": "String"
4162
+ "property": "authorizationType",
4163
+ "equals": "JWT"
4164
+ }
4157
4165
  },
4158
4166
  {
4159
- "id": "inbound.auth.jwt.jwkUrl",
4160
- "label": "JWK URL",
4161
- "description": "Well-known URL of JWKs",
4162
- "optional": false,
4163
- "feel": "optional",
4167
+ "label": "Username",
4168
+ "description": "Username for basic authentication",
4169
+ "type": "String",
4164
4170
  "group": "authorization",
4171
+ "feel": "optional",
4165
4172
  "binding": {
4166
- "name": "inbound.auth.jwt.jwkUrl",
4167
- "type": "zeebe:property"
4173
+ "type": "zeebe:property",
4174
+ "name": "inbound.auth.username"
4168
4175
  },
4169
4176
  "condition": {
4170
- "property": "inbound.auth.type",
4171
- "equals": "JWT",
4172
- "type": "simple"
4177
+ "property": "authorizationType",
4178
+ "equals": "BASIC"
4173
4179
  },
4174
- "type": "String"
4180
+ "constraints": {
4181
+ "notEmpty": true
4182
+ }
4175
4183
  },
4176
4184
  {
4177
- "id": "inbound.auth.jwt.permissionsExpression",
4178
- "label": "JWT role property expression",
4179
- "description": "Expression to extract the roles from the JWT token. <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#how-to-extract-roles-from-jwt-data'>See documentation</a>",
4180
- "optional": false,
4181
- "feel": "required",
4185
+ "label": "Password",
4186
+ "description": "Password for basic authentication",
4187
+ "type": "String",
4182
4188
  "group": "authorization",
4189
+ "feel": "optional",
4183
4190
  "binding": {
4184
- "name": "inbound.auth.jwt.permissionsExpression",
4185
- "type": "zeebe:property"
4191
+ "type": "zeebe:property",
4192
+ "name": "inbound.auth.password"
4186
4193
  },
4187
4194
  "condition": {
4188
- "property": "inbound.auth.type",
4189
- "equals": "JWT",
4190
- "type": "simple"
4195
+ "property": "authorizationType",
4196
+ "equals": "BASIC"
4191
4197
  },
4192
- "type": "String"
4198
+ "constraints": {
4199
+ "notEmpty": true
4200
+ }
4193
4201
  },
4194
4202
  {
4195
- "id": "inbound.auth.jwt.requiredPermissions",
4196
- "label": "Required roles",
4197
- "description": "List of roles to test JWT roles against",
4198
- "optional": false,
4199
- "feel": "required",
4203
+ "label": "API Key",
4204
+ "description": "Expected API key",
4205
+ "type": "String",
4200
4206
  "group": "authorization",
4207
+ "feel": "optional",
4201
4208
  "binding": {
4202
- "name": "inbound.auth.jwt.requiredPermissions",
4203
- "type": "zeebe:property"
4209
+ "type": "zeebe:property",
4210
+ "name": "inbound.auth.apiKey"
4204
4211
  },
4205
4212
  "condition": {
4206
- "property": "inbound.auth.type",
4207
- "equals": "JWT",
4208
- "type": "simple"
4213
+ "property": "authorizationType",
4214
+ "equals": "APIKEY"
4209
4215
  },
4210
- "type": "String"
4216
+ "constraints": {
4217
+ "notEmpty": true
4218
+ }
4211
4219
  },
4212
4220
  {
4213
- "id": "inbound.responseExpression",
4214
- "label": "Response expression",
4215
- "description": "Expression used to generate the HTTP response",
4216
- "optional": true,
4221
+ "label": "API Key locator",
4222
+ "description": "A FEEL expression that extracts API key from the request. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#how-to-configure-api-key-authorization'>See documentation</a>",
4223
+ "type": "String",
4224
+ "group": "authorization",
4217
4225
  "feel": "required",
4218
- "group": "webhookResponse",
4219
4226
  "binding": {
4220
- "name": "inbound.responseExpression",
4221
- "type": "zeebe:property"
4227
+ "type": "zeebe:property",
4228
+ "name": "inbound.auth.apiKeyLocator"
4222
4229
  },
4223
- "type": "Text"
4230
+ "condition": {
4231
+ "property": "authorizationType",
4232
+ "equals": "APIKEY"
4233
+ },
4234
+ "constraints": {
4235
+ "notEmpty": true
4236
+ },
4237
+ "value": "=split(request.headers.authorization, \" \")[2]"
4224
4238
  },
4225
4239
  {
4226
- "id": "inbound.verificationExpression",
4227
- "label": "One time verification response expression",
4228
- "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
4229
- "optional": true,
4240
+ "label": "Condition",
4241
+ "type": "String",
4242
+ "group": "activation",
4230
4243
  "feel": "required",
4231
- "group": "webhookResponse",
4244
+ "optional": true,
4232
4245
  "binding": {
4233
- "name": "inbound.verificationExpression",
4234
- "type": "zeebe:property"
4246
+ "type": "zeebe:property",
4247
+ "name": "activationCondition"
4235
4248
  },
4236
- "type": "Text"
4249
+ "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
4237
4250
  },
4238
4251
  {
4239
- "id": "activationCondition",
4240
- "label": "Activation condition",
4241
- "description": "Condition under which the Connector triggers. Leave empty to catch all events",
4252
+ "label": "Result variable",
4253
+ "type": "String",
4254
+ "group": "variable-mapping",
4242
4255
  "optional": true,
4243
- "feel": "required",
4244
- "group": "activation",
4245
4256
  "binding": {
4246
- "name": "activationCondition",
4247
- "type": "zeebe:property"
4257
+ "type": "zeebe:property",
4258
+ "name": "resultVariable"
4248
4259
  },
4249
- "type": "String"
4260
+ "description": "Name of variable to store the result of the connector in"
4250
4261
  },
4251
4262
  {
4252
- "id": "consumeUnmatchedEvents",
4253
- "label": "Consume unmatched events",
4254
- "value": true,
4255
- "group": "activation",
4263
+ "label": "Result expression",
4264
+ "type": "String",
4265
+ "group": "variable-mapping",
4266
+ "feel": "required",
4267
+ "optional": true,
4256
4268
  "binding": {
4257
- "name": "consumeUnmatchedEvents",
4258
- "type": "zeebe:property"
4269
+ "type": "zeebe:property",
4270
+ "name": "resultExpression"
4259
4271
  },
4260
- "tooltip": "Unmatched events are rejected by default, allowing the upstream service to handle the error. Check this box to consume unmatched events and return a success response",
4261
- "type": "Boolean"
4272
+ "description": "Expression to map the inbound payload to process variables"
4262
4273
  },
4263
4274
  {
4264
- "id": "resultVariable",
4265
- "label": "Result variable",
4266
- "description": "Name of variable to store the response in",
4267
- "group": "output",
4275
+ "label": "One time verification response expression",
4276
+ "description": "Specify condition and response. Learn more in the <a href='https://docs.camunda.io/docs/components/connectors/protocol/http-webhook/#verification-expression' target='_blank'>documentation</a>",
4277
+ "type": "Text",
4278
+ "group": "webhookResponse",
4279
+ "feel": "required",
4280
+ "optional": true,
4268
4281
  "binding": {
4269
- "name": "resultVariable",
4270
- "type": "zeebe:property"
4271
- },
4272
- "type": "String"
4282
+ "type": "zeebe:property",
4283
+ "name": "inbound.verificationExpression"
4284
+ }
4273
4285
  },
4274
4286
  {
4275
- "id": "resultExpression",
4276
- "label": "Result expression",
4277
- "description": "Expression to map the response into process variables",
4287
+ "label": "Response body expression",
4288
+ "type": "Text",
4289
+ "group": "webhookResponse",
4278
4290
  "feel": "required",
4279
- "group": "output",
4291
+ "optional": true,
4280
4292
  "binding": {
4281
- "name": "resultExpression",
4282
- "type": "zeebe:property"
4293
+ "type": "zeebe:property",
4294
+ "name": "inbound.responseBodyExpression"
4283
4295
  },
4284
- "type": "Text"
4296
+ "description": "Specify condition and response"
4285
4297
  }
4286
4298
  ],
4287
4299
  "icon": {
4288
- "contents": "data:image/svg+xml;base64,PHN2ZyBpZD0naWNvbicgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMTgnIGhlaWdodD0nMTgnIHZpZXdCb3g9JzAgMCAzMiAzMic+CiAgPGRlZnM+CiAgICA8c3R5bGU+LmNscy0xIHsgZmlsbDogbm9uZTsgfTwvc3R5bGU+CiAgPC9kZWZzPgogIDxwYXRoCiAgICBkPSdNMjQsMjZhMywzLDAsMSwwLTIuODE2NC00SDEzdjFhNSw1LDAsMSwxLTUtNVYxNmE3LDcsMCwxLDAsNi45Mjg3LDhoNi4yNTQ5QTIuOTkxNCwyLjk5MTQsMCwwLDAsMjQsMjZaJy8+CiAgPHBhdGgKICAgIGQ9J00yNCwxNmE3LjAyNCw3LjAyNCwwLDAsMC0yLjU3LjQ4NzNsLTMuMTY1Ni01LjUzOTVhMy4wNDY5LDMuMDQ2OSwwLDEsMC0xLjczMjYuOTk4NWw0LjExODksNy4yMDg1Ljg2ODYtLjQ5NzZhNS4wMDA2LDUuMDAwNiwwLDEsMS0xLjg1MSw2Ljg0MThMMTcuOTM3LDI2LjUwMUE3LjAwMDUsNy4wMDA1LDAsMSwwLDI0LDE2WicvPgogIDxwYXRoCiAgICBkPSdNOC41MzIsMjAuMDUzN2EzLjAzLDMuMDMsMCwxLDAsMS43MzI2Ljk5ODVDMTEuNzQsMTguNDcsMTMuODYsMTQuNzYwNywxMy44OSwxNC43MDhsLjQ5NzYtLjg2ODItLjg2NzctLjQ5N2E1LDUsMCwxLDEsNi44MTItMS44NDM4bDEuNzMxNSwxLjAwMmE3LjAwMDgsNy4wMDA4LDAsMSwwLTEwLjM0NjIsMi4wMzU2Yy0uNDU3Ljc0MjctMS4xMDIxLDEuODcxNi0yLjA3MzcsMy41NzI4WicvPgogIDxyZWN0IGlkPSdfVHJhbnNwYXJlbnRfUmVjdGFuZ2xlXycgZGF0YS1uYW1lPScmbHQ7VHJhbnNwYXJlbnQgUmVjdGFuZ2xlJmd0OycgY2xhc3M9J2Nscy0xJwogICAgd2lkdGg9JzMyJyBoZWlnaHQ9JzMyJy8+Cjwvc3ZnPg=="
4300
+ "contents": "data:image/svg+xml,%3Csvg id='icon' xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 32 32'%3E%3Cdefs%3E%3Cstyle%3E .cls-1 %7B fill: none; %7D %3C/style%3E%3C/defs%3E%3Cpath d='M24,26a3,3,0,1,0-2.8164-4H13v1a5,5,0,1,1-5-5V16a7,7,0,1,0,6.9287,8h6.2549A2.9914,2.9914,0,0,0,24,26Z'/%3E%3Cpath d='M24,16a7.024,7.024,0,0,0-2.57.4873l-3.1656-5.5395a3.0469,3.0469,0,1,0-1.7326.9985l4.1189,7.2085.8686-.4976a5.0006,5.0006,0,1,1-1.851,6.8418L17.937,26.501A7.0005,7.0005,0,1,0,24,16Z'/%3E%3Cpath d='M8.532,20.0537a3.03,3.03,0,1,0,1.7326.9985C11.74,18.47,13.86,14.7607,13.89,14.708l.4976-.8682-.8677-.497a5,5,0,1,1,6.812-1.8438l1.7315,1.002a7.0008,7.0008,0,1,0-10.3462,2.0356c-.457.7427-1.1021,1.8716-2.0737,3.5728Z'/%3E%3Crect id='_Transparent_Rectangle_' data-name='&lt;Transparent Rectangle&gt;' class='cls-1' width='32' height='32'/%3E%3C/svg%3E"
4289
4301
  },
4290
4302
  "engines": {
4291
- "camunda": "^8.6"
4303
+ "camunda": "^8.4"
4292
4304
  }
4293
4305
  },
4294
4306
  {
4295
4307
  "$schema": "https://unpkg.com/@camunda/zeebe-element-templates-json-schema/resources/schema.json",
4296
4308
  "name": "Webhook Connector",
4297
4309
  "id": "io.camunda.connectors.webhook.WebhookConnector.v1",
4298
- "version": 2,
4310
+ "version": 1,
4299
4311
  "description": "Configure webhook to receive callbacks",
4300
4312
  "documentationRef": "https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/",
4301
4313
  "category": {
@@ -4345,10 +4357,10 @@
4345
4357
  "type": "zeebe:property",
4346
4358
  "name": "inbound.context"
4347
4359
  },
4348
- "description": "The webhook ID is a part of the URL",
4349
4360
  "constraints": {
4350
4361
  "notEmpty": true
4351
- }
4362
+ },
4363
+ "description": "The webhook ID is a part of the URL"
4352
4364
  },
4353
4365
  {
4354
4366
  "id": "shouldValidateHmac",
@@ -4444,27 +4456,15 @@
4444
4456
  "description": "Condition under which the connector triggers. Leave empty to catch all events. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
4445
4457
  },
4446
4458
  {
4447
- "label": "Result variable",
4448
- "type": "String",
4449
- "group": "variable-mapping",
4450
- "optional": true,
4451
- "binding": {
4452
- "type": "zeebe:property",
4453
- "name": "resultVariable"
4454
- },
4455
- "description": "Name of variable to store the result of the Connector in"
4456
- },
4457
- {
4458
- "label": "Result expression",
4459
+ "label": "Variables",
4459
4460
  "type": "String",
4460
4461
  "group": "variable-mapping",
4461
4462
  "feel": "required",
4462
- "optional": true,
4463
4463
  "binding": {
4464
4464
  "type": "zeebe:property",
4465
- "name": "resultExpression"
4465
+ "name": "inbound.variableMapping"
4466
4466
  },
4467
- "description": "Expression to map the inbound payload to process variables"
4467
+ "description": "Map variables from the webhook payload (request) to start the process with. When blank, entire payload is copied over. <a href='https://docs.camunda.io/docs/components/connectors/out-of-the-box-connectors/http-webhook/#make-your-http-webhook-connector-for-receiving-messages-executable' target='_blank'>See documentation</a>"
4468
4468
  }
4469
4469
  ],
4470
4470
  "icon": {