From b7f12730a3d459ded9d9129d107604ddbcdb3c4d Mon Sep 17 00:00:00 2001 From: ujjwal-ab Date: Wed, 9 Aug 2023 16:53:55 +0530 Subject: [PATCH 01/17] Revert "Revert "fix: schema inconsistency (#761)"" This reverts commit 782e283d9c175463bfd117e557866c4e71baefed. --- scripts/schemaGenerator.py | 5 +- .../destinations/hs/schema.json | 137 ++++++++----- .../destinations/hs/ui-config.json | 12 +- .../destinations/pinterest_tag/schema.json | 113 +++++++---- .../destinations/pinterest_tag/ui-config.json | 11 +- .../destinations/pipedream/schema.json | 9 +- .../destinations/pipedream/ui-config.json | 1 + .../destinations/podsights/schema.json | 7 +- .../destinations/podsights/ui-config.json | 2 +- .../destinations/postgres/schema.json | 2 +- .../destinations/qualaroo/schema.json | 86 ++++++-- .../destinations/qualaroo/ui-config.json | 7 +- .../destinations/quora_pixel/schema.json | 19 +- .../destinations/quora_pixel/ui-config.json | 5 +- .../destinations/redis/schema.json | 45 +++-- .../destinations/redis/ui-config.json | 11 +- .../destinations/refiner/schema.json | 9 +- .../destinations/refiner/ui-config.json | 7 +- .../destinations/revenue_cat/schema.json | 5 +- .../destinations/revenue_cat/ui-config.json | 3 +- .../destinations/rockerbox/schema.json | 68 ++++--- .../destinations/rockerbox/ui-config.json | 6 +- .../destinations/rollbar/schema.json | 21 +- .../destinations/rollbar/ui-config.json | 9 +- .../destinations/rs/schema.json | 107 ++++++---- .../destinations/rs/ui-config.json | 28 +-- .../destinations/s3/schema.json | 51 ++++- .../destinations/s3/ui-config.json | 8 +- .../destinations/s3_datalake/schema.json | 60 ++++-- .../destinations/s3_datalake/ui-config.json | 12 +- .../destinations/salesforce/schema.json | 8 +- .../destinations/salesforce/ui-config.json | 1 + .../destinations/satismeter/schema.json | 88 +++++--- .../destinations/satismeter/ui-config.json | 5 +- .../destinations/sendinblue/schema.json | 41 ++-- .../destinations/sendinblue/ui-config.json | 11 +- .../destinations/sentry/schema.json | 47 ++++- .../destinations/sentry/ui-config.json | 9 +- .../destinations/serenytics/schema.json | 41 ++-- .../destinations/serenytics/ui-config.json | 13 +- .../destinations/shynet/schema.json | 9 +- .../destinations/shynet/ui-config.json | 7 +- .../destinations/signl4/schema.json | 17 +- .../destinations/signl4/ui-config.json | 19 +- .../destinations/singular/schema.json | 30 ++- .../destinations/singular/ui-config.json | 8 +- .../destinations/slack/schema.json | 20 +- .../destinations/slack/ui-config.json | 10 +- .../snapchat_conversion/schema.json | 72 ++++++- .../snapchat_conversion/ui-config.json | 10 +- .../snapchat_custom_audience/schema.json | 6 +- .../snapchat_custom_audience/ui-config.json | 3 +- .../destinations/snapengage/schema.json | 74 +++++-- .../destinations/snapengage/ui-config.json | 5 +- .../destinations/snowflake/schema.json | 190 ++++++++---------- .../destinations/snowflake/ui-config.json | 50 ++--- .../destinations/tiktok_ads/schema.json | 60 +++--- .../destinations/tiktok_ads/ui-config.json | 9 +- .../tiktok_ads_offline_events/schema.json | 6 +- .../tiktok_ads_offline_events/ui-config.json | 3 +- .../destinations/user/schema.json | 4 +- .../destinations/user/ui-config.json | 5 +- .../destinations/vero/schema.json | 14 +- .../destinations/vero/ui-config.json | 5 +- .../destinations/vitally/ui-config.json | 3 +- .../destinations/vwo/schema.json | 31 +-- .../destinations/vwo/ui-config.json | 9 +- .../destinations/webengage/schema.json | 7 +- .../destinations/webengage/ui-config.json | 6 +- .../destinations/webhook/schema.json | 9 +- .../destinations/webhook/ui-config.json | 2 + .../destinations/woopra/schema.json | 46 +++-- .../destinations/woopra/ui-config.json | 11 +- .../destinations/wootric/schema.json | 4 +- .../destinations/wootric/ui-config.json | 7 +- .../destinations/yahoo_dsp/schema.json | 31 ++- .../destinations/yahoo_dsp/ui-config.json | 9 +- .../destinations/yandex_metrica/schema.json | 26 ++- .../yandex_metrica/ui-config.json | 9 +- .../destinations/zapier/schema.json | 2 +- .../destinations/zapier/ui-config.json | 3 +- .../destinations/zendesk/schema.json | 16 +- .../destinations/zendesk/ui-config.json | 7 +- .../destinations/pinterest_tag.json | 30 ++- .../validation/destinations/quora_pixel.json | 12 +- test/data/validation/destinations/rs.json | 21 +- test/data/validation/destinations/s3.json | 6 + .../validation/destinations/s3_datalake.json | 10 +- .../validation/destinations/sendinblue.json | 14 +- test/data/validation/destinations/shynet.json | 2 +- .../validation/destinations/snowflake.json | 39 +++- .../tiktok_ads_offline_events.json | 12 +- test/data/validation/destinations/vero.json | 2 +- test/data/validation/destinations/woopra.json | 4 +- .../validation/destinations/yahoo_dsp.json | 9 +- .../destinations/yandex_metrica.json | 5 +- 96 files changed, 1401 insertions(+), 769 deletions(-) diff --git a/scripts/schemaGenerator.py b/scripts/schemaGenerator.py index 7a196bca8..280809a65 100644 --- a/scripts/schemaGenerator.py +++ b/scripts/schemaGenerator.py @@ -17,6 +17,8 @@ CONFIG_DIR = 'src/configurations' +EXCLUDED_DEST = ['postgres'] + class FieldTypeEnum(Enum): STRING = "string" OBJECT = "object" @@ -1002,7 +1004,8 @@ def get_schema_diff(name, selector): uiConfig = file_content.get("uiConfig") schema = file_content.get("configSchema") dbConfig = file_content.get("config") - validate_config_consistency(name, selector, uiConfig, dbConfig, schema) + if name not in EXCLUDED_DEST: + validate_config_consistency(name, selector, uiConfig, dbConfig, schema) if __name__ == '__main__': diff --git a/src/configurations/destinations/hs/schema.json b/src/configurations/destinations/hs/schema.json index fdb5997ad..0a6a56528 100644 --- a/src/configurations/destinations/hs/schema.json +++ b/src/configurations/destinations/hs/schema.json @@ -1,68 +1,24 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": [], "type": "object", "properties": { - "authorizationType": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApiKey|newPrivateAppApi)$" - }, "hubID": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "apiKey": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "accessToken": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "apiVersion": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApi|newApi)$" - }, - "lookupField": { + "authorizationType": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "hubspotEvents": { - "type": "array", - "items": { - "type": "object", - "properties": { - "rsEventName": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "hubspotEventName": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "eventProperties": { - "type": "array", - "items": { - "type": "object", - "properties": { - "from": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "to": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - } - } - } - } - } - } + "enum": ["legacyApiKey", "newPrivateAppApi"], + "default": "legacyApiKey" }, + "apiVersion": { "type": "string", "enum": ["legacyApi", "newApi"], "default": "legacyApi" }, "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "eventFilteringOption": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -100,6 +56,83 @@ } } } - } + }, + "allOf": [ + { + "if": { + "properties": { "authorizationType": { "const": "legacyApiKey" } }, + "required": ["authorizationType"] + }, + "then": { + "properties": { + "apiKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + } + }, + "required": ["apiKey"] + } + }, + { + "if": { + "properties": { "authorizationType": { "const": "newPrivateAppApi" } }, + "required": ["authorizationType"] + }, + "then": { + "properties": { + "accessToken": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + } + }, + "required": ["accessToken"] + } + }, + { + "if": { "properties": { "apiVersion": { "const": "newApi" } }, "required": ["apiVersion"] }, + "then": { + "properties": { + "lookupField": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "doAssociation": { "type": "boolean", "default": false }, + "hubspotEvents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "rsEventName": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "hubspotEventName": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "eventProperties": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } + } + } + } + } + }, + "required": ["lookupField"] + } + } + ] } } diff --git a/src/configurations/destinations/hs/ui-config.json b/src/configurations/destinations/hs/ui-config.json index fb1b734c1..d02ab3e55 100644 --- a/src/configurations/destinations/hs/ui-config.json +++ b/src/configurations/destinations/hs/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Hub ID", "value": "hubID", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Hub ID", "required": false, "placeholder": "e.g: 748991", @@ -39,7 +39,7 @@ }, "label": "API Key", "value": "apiKey", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid API Key", "required": true, "placeholder": "e.g: 05afa518-132c-40db-830a-de0f688902f7", @@ -53,7 +53,7 @@ }, "label": "Access Token", "value": "accessToken", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Access Token", "required": true, "placeholder": "e.g: pat-eu1-kjg875ya-9de4-98uu-8171-62875ht847r9", @@ -85,7 +85,7 @@ }, "label": "Hubspot property name to be used as lookup field", "value": "lookupField", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Property Name", "required": true, "placeholder": "e.g: lookupField", @@ -114,7 +114,7 @@ "type": "textInput", "label": "RudderStack Event Name", "value": "rsEventName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g Products Searched", "footerNote": "Enter the RudderStack event name you want to map" @@ -123,7 +123,7 @@ "type": "textInput", "label": "HubSpot Event Name", "value": "hubspotEventName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g Search", "footerNote": "Enter the corresponding Hubspot event name you want to map" diff --git a/src/configurations/destinations/pinterest_tag/schema.json b/src/configurations/destinations/pinterest_tag/schema.json index 9e278fad2..6b71c7877 100644 --- a/src/configurations/destinations/pinterest_tag/schema.json +++ b/src/configurations/destinations/pinterest_tag/schema.json @@ -1,66 +1,61 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": [], "type": "object", "properties": { "tagId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$" }, - "advertiserId": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$" - }, "appId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$" }, - "apiVersion": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(legacyApi|newApi)$" - }, - "adAccountId": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$" - }, - "conversionToken": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,101})$" - }, - "sendingUnHashedData": { "type": "boolean" }, - "enableDeduplication": { "type": "boolean" }, - "deduplicationKey": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "enhancedMatch": { "type": "boolean" }, - "sendExternalId": { "type": "boolean" }, - "sendAsCustomEvent": { "type": "boolean" }, - "eventsMapping": { + "apiVersion": { "type": "string", "enum": ["legacyApi", "newApi"], "default": "legacyApi" }, + "sendingUnHashedData": { "type": "boolean", "default": true }, + "enableDeduplication": { "type": "boolean", "default": false }, + "enhancedMatch": { "type": "boolean", "default": true }, + "sendExternalId": { "type": "boolean", "default": false }, + "sendAsCustomEvent": { "type": "boolean", "default": false }, + "customProperties": { "type": "array", "items": { "type": "object", "properties": { - "from": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "to": { + "properties": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } }, - "customProperties": { + "eventsMapping": { "type": "array", "items": { "type": "object", "properties": { - "properties": { + "from": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { + "type": "string", + "enum": [ + "Lead", + "PageVisit", + "ViewCategory", + "Signup", + "WatchVideo", + "Checkout", + "Search", + "AddToCart", + "Custom", + "" + ] } } } }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -98,6 +93,54 @@ } } } - } + }, + "allOf": [ + { + "if": { + "properties": { "apiVersion": { "const": "legacyApi" } }, + "required": ["apiVersion"] + }, + "then": { + "properties": { + "advertiserId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$" + } + }, + "required": [] + } + }, + { + "if": { "properties": { "apiVersion": { "const": "newApi" } }, "required": ["apiVersion"] }, + "then": { + "properties": { + "adAccountId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$" + }, + "conversionToken": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,101})$" + } + }, + "required": ["adAccountId", "conversionToken"] + } + }, + { + "if": { + "properties": { "enableDeduplication": { "const": true } }, + "required": ["enableDeduplication"] + }, + "then": { + "properties": { + "deduplicationKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + } + }, + "required": ["deduplicationKey"] + } + } + ] } } diff --git a/src/configurations/destinations/pinterest_tag/ui-config.json b/src/configurations/destinations/pinterest_tag/ui-config.json index 35ddf68d3..67fe4e379 100644 --- a/src/configurations/destinations/pinterest_tag/ui-config.json +++ b/src/configurations/destinations/pinterest_tag/ui-config.json @@ -7,6 +7,7 @@ "type": "textInput", "label": "TAG ID", "value": "tagId", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$", "required": false, "placeholder": "e.g: 123456789", "secret": true @@ -15,6 +16,7 @@ "type": "textInput", "label": "App Store App ID", "value": "appId", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$", "required": false, "placeholder": "e.g: 429047995", "secret": false, @@ -63,7 +65,7 @@ "value": "adAccountId", "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$", "regexErrorMessage": "Invalid Ad Account ID", - "required": false, + "required": true, "placeholder": "e.g: 549935085302", "secret": true, "footerNote": "Required field for cloud mode integration. For more information about how to get ad account id refer docs" @@ -76,9 +78,9 @@ }, "label": "Conversion Token", "value": "conversionToken", - "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,101})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,101})$", "regexErrorMessage": "Invalid Conversion Token", - "required": false, + "required": true, "placeholder": "e.g: pina_A98DB973KWL8XP1LZ94KJF0BMA5PEZ8C6490FWEI01QJMN32YU", "secret": true, "footerNote": "Required field for cloud mode integration. For more information about how to get conversion token refer docs" @@ -113,7 +115,8 @@ "label": "Deduplication Key", "value": "deduplicationKey", "placeholder": "e.g: messageId", - "required": false, + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", + "required": true, "footerNote": "Rudderstack will send this key-value from payload as an event deduplication key" }, { diff --git a/src/configurations/destinations/pipedream/schema.json b/src/configurations/destinations/pipedream/schema.json index 49f7bcf93..6e99701b6 100644 --- a/src/configurations/destinations/pipedream/schema.json +++ b/src/configurations/destinations/pipedream/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["pipedreamUrl"], + "type": "object", "properties": { "pipedreamUrl": { "type": "string", @@ -10,7 +10,8 @@ }, "pipedreamMethod": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(POST|PUT|PATCH|GET|DELETE)$)" + "enum": ["POST", "PUT", "PATCH", "GET", "DELETE"], + "default": "POST" }, "headers": { "type": "array", @@ -19,11 +20,11 @@ "properties": { "from": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$" }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100000})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$" } } } diff --git a/src/configurations/destinations/pipedream/ui-config.json b/src/configurations/destinations/pipedream/ui-config.json index 6e128845b..88bc6b569 100644 --- a/src/configurations/destinations/pipedream/ui-config.json +++ b/src/configurations/destinations/pipedream/ui-config.json @@ -32,6 +32,7 @@ "labelRight": "Value", "keyLeft": "from", "keyRight": "to", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$", "placeholderLeft": "content-type", "placeholderRight": "application/json", "value": "headers" diff --git a/src/configurations/destinations/podsights/schema.json b/src/configurations/destinations/podsights/schema.json index 509469367..8552c28a3 100644 --- a/src/configurations/destinations/podsights/schema.json +++ b/src/configurations/destinations/podsights/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["pixelId"], + "type": "object", "properties": { "pixelId": { "type": "string", @@ -19,7 +19,7 @@ }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "enum": ["lead", "product", "addtocart", "checkout", "purchase", ""] } } } @@ -27,7 +27,8 @@ "enableAliasCall": { "type": "boolean", "default": false }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", diff --git a/src/configurations/destinations/podsights/ui-config.json b/src/configurations/destinations/podsights/ui-config.json index 03b773c0f..c9894466d 100644 --- a/src/configurations/destinations/podsights/ui-config.json +++ b/src/configurations/destinations/podsights/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Pixel ID", "value": "pixelId", - "regex": "^(.{0,100})$", + "regex": "^(.{1,100})$", "regexErrorMessage": "Invalid Pixel ID", "required": true, "placeholder": "e.g. dzq1p89h2bnp1ubi9x65hyx2hf5q1k3v", diff --git a/src/configurations/destinations/postgres/schema.json b/src/configurations/destinations/postgres/schema.json index 625558306..d62cbd63b 100644 --- a/src/configurations/destinations/postgres/schema.json +++ b/src/configurations/destinations/postgres/schema.json @@ -58,7 +58,7 @@ "sshHost": { "type": "string", "pattern": "(^env[.].+)|^(.{1,255})$" }, "sshPort": { "type": "string", "pattern": "(^env[.].+)|^(.{1,255})$" }, "sshUser": { "type": "string", "pattern": "(^env[.].+)|^(.{1,255})$" }, - "sshPublicKey": { "type": "string", "pattern": "(^env[.].+)|^(.{1,10000})$" } + "sshPublicKey": { "type": "string", "pattern": "(^env[.].+)|^(.{1,1000})$" } }, "required": ["sshHost", "sshPort", "sshUser", "sshPublicKey"] } diff --git a/src/configurations/destinations/qualaroo/schema.json b/src/configurations/destinations/qualaroo/schema.json index e712ad15b..85125b149 100644 --- a/src/configurations/destinations/qualaroo/schema.json +++ b/src/configurations/destinations/qualaroo/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["customerId", "siteToken"], + "type": "object", "properties": { "customerId": { "type": "string", @@ -12,27 +12,12 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "recordQualarooEvents": { "type": "boolean" }, - "updateEventNames": { "type": "boolean" }, - "eventsToStandard": { - "type": "array", - "items": { - "type": "object", - "properties": { - "from": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "to": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - } - } - } - }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "recordQualarooEvents": { "type": "boolean", "default": false }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -58,7 +43,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -71,6 +55,64 @@ } } } - } + }, + "allOf": [ + { + "if": { + "properties": { "recordQualarooEvents": { "const": true } }, + "required": ["recordQualarooEvents"] + }, + "then": { + "properties": { + "eventsList": { + "type": "array", + "items": { "type": "string", "enum": ["show", "close", "submit", "noTargetMatch"] }, + "default": ["show"] + } + }, + "required": [] + } + }, + { + "if": { + "properties": { "recordQualarooEvents": { "const": true } }, + "required": ["recordQualarooEvents"] + }, + "then": { + "properties": { "updateEventNames": { "type": "boolean", "default": false } }, + "required": [] + } + }, + { + "if": { + "properties": { + "recordQualarooEvents": { "const": true }, + "updateEventNames": { "const": true } + }, + "required": ["recordQualarooEvents", "updateEventNames"] + }, + "then": { + "properties": { + "eventsToStandard": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { + "type": "string", + "enum": ["show", "close", "submit", "noTargetMatch", ""] + } + } + } + } + }, + "required": [] + } + } + ] } } diff --git a/src/configurations/destinations/qualaroo/ui-config.json b/src/configurations/destinations/qualaroo/ui-config.json index c0bbecab1..7b67c94a3 100644 --- a/src/configurations/destinations/qualaroo/ui-config.json +++ b/src/configurations/destinations/qualaroo/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Customer ID", "value": "customerId", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Customer ID", "required": true, "placeholder": "e.g. 92102", @@ -18,7 +18,7 @@ "type": "textInput", "label": "Site Token", "value": "siteToken", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Site Token", "required": true, "placeholder": "e.g. j8N", @@ -171,6 +171,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -184,6 +185,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -203,6 +205,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/quora_pixel/schema.json b/src/configurations/destinations/quora_pixel/schema.json index 00e925657..4f4641ec6 100644 --- a/src/configurations/destinations/quora_pixel/schema.json +++ b/src/configurations/destinations/quora_pixel/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["pixelId"], + "type": "object", "properties": { "pixelId": { "type": "string", @@ -19,14 +19,27 @@ }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "enum": [ + "Generic", + "Purchase", + "GenerateLead", + "CompleteRegistration", + "AddPaymentInfo", + "AddToCart", + "AddToWishlist", + "InitiateCheckout", + "Search", + "Custom", + "" + ] } } } }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", diff --git a/src/configurations/destinations/quora_pixel/ui-config.json b/src/configurations/destinations/quora_pixel/ui-config.json index 8a7004b31..67488df1b 100644 --- a/src/configurations/destinations/quora_pixel/ui-config.json +++ b/src/configurations/destinations/quora_pixel/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "PIXEL ID", "value": "pixelId", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid PIXEL ID", "required": true, "placeholder": "e.g. d2bnp1ubi9x6zq1p89h5hyx2hf5q1k3v", @@ -110,6 +110,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -123,6 +124,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -153,6 +155,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/redis/schema.json b/src/configurations/destinations/redis/schema.json index bf6542350..669010760 100644 --- a/src/configurations/destinations/redis/schema.json +++ b/src/configurations/destinations/redis/schema.json @@ -1,30 +1,20 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "additionalProperties": false, "required": ["address"], + "type": "object", "properties": { "address": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$" }, "password": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, - "clusterMode": { "type": "boolean" }, - "secure": { "type": "boolean" }, + "clusterMode": { "type": "boolean", "default": true }, + "secure": { "type": "boolean", "default": false }, "prefix": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "database": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "caCertificate": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" - }, - "skipVerify": { "type": "boolean" }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -37,6 +27,33 @@ } } } - } + }, + "allOf": [ + { + "if": { "properties": { "clusterMode": { "const": false } }, "required": ["clusterMode"] }, + "then": { + "properties": { + "database": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + }, + "required": [] + } + }, + { + "if": { "properties": { "secure": { "const": true } }, "required": ["secure"] }, + "then": { + "properties": { + "skipVerify": { "type": "boolean", "default": false }, + "caCertificate": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" + } + }, + "required": [] + } + } + ] } } diff --git a/src/configurations/destinations/redis/ui-config.json b/src/configurations/destinations/redis/ui-config.json index 8a4e586e4..91809575e 100644 --- a/src/configurations/destinations/redis/ui-config.json +++ b/src/configurations/destinations/redis/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Address", "value": "address", - "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$", "regexErrorMessage": "Invalid Address", "required": true, "placeholder": "e.g: localhost:6379" @@ -16,7 +16,7 @@ "type": "textInput", "label": "Password", "value": "password", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": false, "placeholder": "", "secret": true @@ -25,7 +25,7 @@ "type": "textInput", "label": "Database", "value": "database", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Database", "required": false, "placeholder": "", @@ -46,7 +46,7 @@ "preRequisiteField": { "name": "secure", "selectedValue": true }, "label": "CA certificate", "value": "caCertificate", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": false, "placeholder": "CA Certificate", "footerNote": "Can be skipped for CA's that can be verified with any client (eg. Elasticache)" @@ -55,7 +55,7 @@ "type": "textInput", "label": "Prefix", "value": "prefix", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Prefix", "required": false, "placeholder": "" @@ -74,6 +74,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/refiner/schema.json b/src/configurations/destinations/refiner/schema.json index 098ec124f..e1ccb4552 100644 --- a/src/configurations/destinations/refiner/schema.json +++ b/src/configurations/destinations/refiner/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["apiKey", "webClientApiKey"], + "type": "object", "properties": { "apiKey": { "type": "string", @@ -44,6 +44,12 @@ } } }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, "whitelistedEvents": { "type": "array", "items": { @@ -68,7 +74,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/refiner/ui-config.json b/src/configurations/destinations/refiner/ui-config.json index 058377a10..294a12907 100644 --- a/src/configurations/destinations/refiner/ui-config.json +++ b/src/configurations/destinations/refiner/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Refiner REST API Key", "value": "apiKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "required": true, "placeholder": "e.g. da70156h-05a3-4fa6-bb1g-da757fd036b4", "secret": true, @@ -17,7 +17,7 @@ "type": "textInput", "label": "Refiner Web Client API Key", "value": "webClientApiKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "required": true, "placeholder": "e.g. 0d8759e0-401c-11ed-8dbd-9757h4929b55", "secret": true, @@ -100,6 +100,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -113,6 +114,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -132,6 +134,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/revenue_cat/schema.json b/src/configurations/destinations/revenue_cat/schema.json index ef312897e..1aff6af15 100644 --- a/src/configurations/destinations/revenue_cat/schema.json +++ b/src/configurations/destinations/revenue_cat/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["apiKey"], + "type": "object", "properties": { "apiKey": { "type": "string", @@ -10,7 +10,8 @@ }, "xPlatform": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(ios|android|amazon|macos|stripe|uikitformac)$" + "enum": ["ios", "android", "amazon", "macos", "stripe", "uikitformac"], + "default": "stripe" }, "oneTrustCookieCategories": { "type": "array", diff --git a/src/configurations/destinations/revenue_cat/ui-config.json b/src/configurations/destinations/revenue_cat/ui-config.json index 241acd692..3326fea48 100644 --- a/src/configurations/destinations/revenue_cat/ui-config.json +++ b/src/configurations/destinations/revenue_cat/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Public API Key", "value": "apiKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "required": true, "placeholder": "e.g. b4a29aba5e75d99c8a18acd920ec1e2e", "secret": true, @@ -41,6 +41,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/rockerbox/schema.json b/src/configurations/destinations/rockerbox/schema.json index 2f1985574..210a1021c 100644 --- a/src/configurations/destinations/rockerbox/schema.json +++ b/src/configurations/destinations/rockerbox/schema.json @@ -1,37 +1,31 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["advertiserId"], + "type": "object", "properties": { - "advertiserId": { "type": "string" }, - "clientAuthId": { "type": "object", "properties": { "web": { "type": "string" } } }, - "customDomain": { - "type": "object", - "properties": { "web": { "type": "string", "pattern": "^(?!.*\\.ngrok\\.io).*$" } } + "advertiserId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "enableCookieSync": { "type": "object", "properties": { "web": { "type": "boolean" } } }, - "eventsMap": { + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, + "whitelistedEvents": { "type": "array", "items": { "type": "object", "properties": { - "from": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "to": { + "eventName": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } }, - "eventFilteringOption": { - "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" - }, - "whitelistedEvents": { + "blacklistedEvents": { "type": "array", "items": { "type": "object", @@ -43,31 +37,57 @@ } } }, - "blacklistedEvents": { + "oneTrustCookieCategories": { "type": "array", "items": { "type": "object", "properties": { - "eventName": { + "oneTrustCookieCategory": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, - "useNativeSDKToSend": { "type": "object", "properties": { "web": { "type": "boolean" } } }, - "oneTrustCookieCategories": { + "eventsMap": { "type": "array", "items": { "type": "object", "properties": { - "oneTrustCookieCategory": { + "from": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } + }, + "clientAuthId": { + "type": "object", + "properties": { + "web": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + }, + "customDomain": { + "type": "object", + "properties": { + "web": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$" + } + } + }, + "enableCookieSync": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "connectionMode": { + "type": "object", + "properties": { "web": { "type": "string", "enum": ["cloud", "device", "hybrid"] } } } } } diff --git a/src/configurations/destinations/rockerbox/ui-config.json b/src/configurations/destinations/rockerbox/ui-config.json index cfc95c876..a850e3a8b 100644 --- a/src/configurations/destinations/rockerbox/ui-config.json +++ b/src/configurations/destinations/rockerbox/ui-config.json @@ -17,7 +17,7 @@ "label": "Advertiser Id", "note": "Enter you Advertiser Id. If you don't have this, contact your RockerBox account manager", "configKey": "advertiserId", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Advertiser Id", "placeholder": "e.g: MOx2ZmMwLNE2A2IdNKL0N2VhN2I3ZGY1MTVmMzA1ODk0YmIkN" } @@ -202,7 +202,7 @@ "label": "Client Auth ID", "note": "Set you Client Auth ID here", "configKey": "clientAuthId", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Length of API Key must be below 50 characters.", "placeholder": "e.g: 755fc11162r14c41ar7e7df232f305984bb021a1" }, @@ -211,7 +211,7 @@ "label": "Custom Domain", "note": "Load pixel from a custom specific domain", "configKey": "customDomain", - "regex": "^(?!.*\\.ngrok\\.io).*$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$", "regexErrorMessage": "Invalid Custom Domain", "placeholder": "customdomain.com" }, diff --git a/src/configurations/destinations/rollbar/schema.json b/src/configurations/destinations/rollbar/schema.json index 94f4c0e0d..4f0b4708b 100644 --- a/src/configurations/destinations/rollbar/schema.json +++ b/src/configurations/destinations/rollbar/schema.json @@ -8,30 +8,36 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "captureUncaughtException": { "type": "boolean" }, - "captureUnhandledRejections": { "type": "boolean" }, - "guessUncaughtFrames": { "type": "boolean" }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "captureUncaughtException": { "type": "boolean", "default": true }, + "captureUnhandledRejections": { "type": "boolean", "default": false }, + "guessUncaughtFrames": { "type": "boolean", "default": false }, "codeVersion": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, "environment": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, "ignoredMessages": { "type": "array", "items": { "type": "object", "properties": { - "eventName": { + "singleIgnoredMessage": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } }, - "sourceMapEnabled": { "type": "boolean" }, + "sourceMapEnabled": { "type": "boolean", "default": false }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, "whitelistedEvents": { "type": "array", "items": { @@ -56,7 +62,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/rollbar/ui-config.json b/src/configurations/destinations/rollbar/ui-config.json index 02201c8f2..413ebe240 100644 --- a/src/configurations/destinations/rollbar/ui-config.json +++ b/src/configurations/destinations/rollbar/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Access Token", "value": "accessToken", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Access Token", "required": true, "placeholder": "e.g: 96d96af0cdb847f4b1a4e7cc13255705", @@ -55,7 +55,7 @@ "type": "textInput", "label": "Code Version", "value": "codeVersion", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid ", "required": false, "placeholder": "e.g. 1.1.1", @@ -66,7 +66,7 @@ "type": "textInput", "label": "Environment", "value": "environment", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid ", "required": false, "placeholder": "e.g. production", @@ -131,6 +131,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -144,6 +145,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -163,6 +165,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/rs/schema.json b/src/configurations/destinations/rs/schema.json index e9332052c..4e5b3ee28 100644 --- a/src/configurations/destinations/rs/schema.json +++ b/src/configurations/destinations/rs/schema.json @@ -1,7 +1,6 @@ { "configSchema": { - "$schema": "http://json-schema.org/draft-07/schema", - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "host", "port", @@ -11,35 +10,48 @@ "syncFrequency", "useRudderStorage" ], + "type": "object", "properties": { - "host": { "type": "string", "pattern": "(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,255})$" }, - "port": { "type": "string", "pattern": "(^env[.].+)|^(.{1,100})$" }, - "database": { "type": "string", "pattern": "(^env[.].+)|^(.{1,100})$" }, - "user": { "type": "string", "pattern": "(^env[.].+)|^(.{1,100})$" }, - "password": { "type": "string", "pattern": "(^env[.].+)|.+" }, - "namespace": { "type": "string", "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$" }, + "host": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,255})$" + }, + "port": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "database": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "user": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "password": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, + "namespace": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!pg_|PG_|pG_|Pg_).{0,64})$" + }, "syncFrequency": { "type": "string", - "pattern": "^(30|60|180|360|720|1440)$", + "enum": ["30", "60", "180", "360", "720", "1440"], "default": "30" }, "syncStartAt": { "type": "string" }, "excludeWindow": { "type": "object", - "required": ["excludeWindowStartTime", "excludeWindowEndTime"], "properties": { "excludeWindowStartTime": { "type": "string" }, "excludeWindowEndTime": { "type": "string" } - } + }, + "required": ["excludeWindowStartTime", "excludeWindowEndTime"] + }, + "jsonPaths": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.*)$" }, - "jsonPaths": { "type": "string", "pattern": "(^env[.].*)|.*" }, "useRudderStorage": { "type": "boolean", "default": false }, - "prefix": { "type": "string", "pattern": "(^env[.].*)|^(.{0,100})$" }, - "iamRoleARN": { "type": "string" }, - "roleBasedAuth": { "type": "boolean" }, - "accessKeyID": { "type": "string", "pattern": "(^env[.].*)|^(.{0,100})$" }, - "accessKey": { "type": "string", "pattern": "(^env[.].*)|^(.{0,100})$" }, - "enableSSE": { "type": "boolean" }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -54,18 +66,6 @@ } }, "allOf": [ - { - "if": { "properties": { "useSSH": { "const": true } }, "required": ["useSSH"] }, - "then": { - "properties": { - "sshHost": { "type": "string", "pattern": "(^env[.].+)|^(.{1,255})$" }, - "sshPort": { "type": "string", "pattern": "(^env[.].+)|^(.{1,255})$" }, - "sshUser": { "type": "string", "pattern": "(^env[.].+)|^(.{1,255})$" }, - "sshPublicKey": { "type": "string", "pattern": "(^env[.].+)|^(.{1,10000})$" } - }, - "required": ["sshHost", "sshPort", "sshUser", "sshPublicKey"] - } - }, { "if": { "properties": { "useRudderStorage": { "const": false } }, @@ -75,22 +75,53 @@ "properties": { "bucketName": { "type": "string", - "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)" - } + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)" + }, + "prefix": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([^\\s]{0,100})$" + }, + "enableSSE": { "type": "boolean", "default": false } }, - "required": ["bucketName"] + "required": ["bucketName"], + "anyOf": [ + { + "properties": { + "accessKeyID": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "accessKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "roleBasedAuth": { "const": false } + }, + "required": [] + }, + { + "properties": { + "iamRoleARN": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "roleBasedAuth": { "const": true } + }, + "required": ["iamRoleARN", "roleBasedAuth"] + } + ] } }, { "if": { - "properties": { "roleBasedAuth": { "const": true } }, - "required": ["roleBasedAuth"] + "properties": { "useRudderStorage": { "const": false } }, + "required": ["useRudderStorage"] }, "then": { - "required": ["iamRoleARN"] + "properties": { "roleBasedAuth": { "type": "boolean", "default": true } }, + "required": [] } } - ], - "additionalProperties": true + ] } } diff --git a/src/configurations/destinations/rs/ui-config.json b/src/configurations/destinations/rs/ui-config.json index d0939e37d..dbc7e0db4 100644 --- a/src/configurations/destinations/rs/ui-config.json +++ b/src/configurations/destinations/rs/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Host", "value": "host", - "regex": "(?!.*\\.ngrok\\.io)^(.{0,255})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,255})$", "regexErrorMessage": "Invalid Host", "placeholder": "redshift.mydomain.com", "required": true @@ -16,7 +16,7 @@ "type": "textInput", "label": "Port", "value": "port", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Port", "placeholder": "5439", "required": true @@ -25,7 +25,7 @@ "type": "textInput", "label": "Database", "value": "database", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Database", "placeholder": "e.g: warehouse", "required": true @@ -34,7 +34,7 @@ "type": "textInput", "label": "User", "value": "user", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid User", "placeholder": "e.g: warehouseuser", "required": true @@ -43,7 +43,7 @@ "type": "textInput", "label": "Password", "value": "password", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "placeholder": "e.g: warehousepassword", "required": true, "secret": true @@ -53,7 +53,7 @@ "label": "Namespace", "labelNote": "Schema name for the warehouse where the tables are created", "value": "namespace", - "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!pg_|PG_|pG_|Pg_).{0,64})$", "regexErrorMessage": "Invalid Namespace", "required": false, "placeholder": "e.g: iosSource", @@ -72,7 +72,7 @@ { "name": "Every 24 hours", "value": "1440" } ], "defaultOption": { "name": "Every 30 minutes", "value": "30" }, - "required": false + "required": true }, { "type": "timePicker", @@ -97,7 +97,7 @@ "label": "JSON columns (Optional)", "labelNote": "Specify required JSON properties in dot notation separated by commas", "value": "jsonPaths", - "regex": "^(.*)$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.*)$", "placeholder": "e.g: testMap.nestedMap, testArray", "required": false, "footerURL": { @@ -114,6 +114,7 @@ "type": "checkbox", "label": "Use RudderStack managed object storage", "value": "useRudderStorage", + "required": true, "default": false, "footerNote": "Note: Only available for Rudderstack managed data planes" }, @@ -122,7 +123,7 @@ "label": "Staging S3 Storage Bucket Name", "labelNote": "S3 Bucket to store data before loading into Redshift", "value": "bucketName", - "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)", "regexErrorMessage": "Invalid Bucket name", "required": true, "placeholder": "e.g: event-bucket", @@ -133,7 +134,7 @@ "type": "textInput", "label": "Prefix", "value": "prefix", - "regex": "^([^\\s]{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([^\\s]{0,100})$", "regexErrorMessage": "Invalid Prefix", "required": false, "placeholder": "e.g: rudder", @@ -154,7 +155,7 @@ ], "label": "IAM Role ARN", "value": "iamRoleARN", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Role ARN", "required": true, "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access", @@ -167,7 +168,7 @@ "type": "textInput", "label": "AWS Access Key ID", "value": "accessKeyID", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid AWS Access Key ID", "required": false, "placeholder": "e.g: access-key-id", @@ -181,7 +182,7 @@ "type": "textInput", "label": "AWS Secret Access Key", "value": "accessKey", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid AWS Secret Access Key", "required": false, "placeholder": "e.g: secret-access-key", @@ -212,6 +213,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/s3/schema.json b/src/configurations/destinations/s3/schema.json index 6e226362c..4f4be35d9 100644 --- a/src/configurations/destinations/s3/schema.json +++ b/src/configurations/destinations/s3/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["bucketName"], + "type": "object", "properties": { "bucketName": { "type": "string", @@ -12,13 +12,8 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "iamRoleARN": { "type": "string" }, - "roleBasedAuth": { "type": "boolean" }, - "accessKeyID": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "enableSSE": { "type": "boolean" }, + "roleBasedAuth": { "type": "boolean", "default": true }, + "enableSSE": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -31,6 +26,44 @@ } } } - } + }, + "allOf": [ + { + "if": { + "properties": { "roleBasedAuth": { "const": true } }, + "required": ["roleBasedAuth"] + }, + "then": { + "properties": { + "iamRoleARN": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "roleBasedAuth": { "const": true } + }, + "required": ["roleBasedAuth"] + } + }, + { + "if": { + "properties": { "roleBasedAuth": { "const": false } }, + "required": ["roleBasedAuth"] + }, + "then": { + "properties": { + "accessKeyID": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "accessKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "roleBasedAuth": { "const": false } + }, + "required": [] + } + } + ] } } diff --git a/src/configurations/destinations/s3/ui-config.json b/src/configurations/destinations/s3/ui-config.json index 920e9f0af..cb6043aa2 100644 --- a/src/configurations/destinations/s3/ui-config.json +++ b/src/configurations/destinations/s3/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "S3 Bucket Name", "value": "bucketName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid S3 Bucket Name", "required": true, "placeholder": "e.g: s3-event-logs" @@ -32,7 +32,7 @@ "preRequisiteField": { "name": "roleBasedAuth", "selectedValue": true }, "label": "IAM Role ARN", "value": "iamRoleARN", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Role ARN", "required": false, "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access", @@ -46,7 +46,7 @@ "preRequisiteField": { "name": "roleBasedAuth", "selectedValue": false }, "label": "AWS Access Key ID", "value": "accessKeyID", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid AWS Access Key ID", "required": false, "placeholder": "e.g: access-key-id", @@ -57,7 +57,7 @@ "preRequisiteField": { "name": "roleBasedAuth", "selectedValue": false }, "label": "AWS Secret Access Key", "value": "accessKey", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid AWS Secret Access Key", "required": false, "placeholder": "e.g: secret-access-key", diff --git a/src/configurations/destinations/s3_datalake/schema.json b/src/configurations/destinations/s3_datalake/schema.json index 277893a3d..11fa124a0 100644 --- a/src/configurations/destinations/s3_datalake/schema.json +++ b/src/configurations/destinations/s3_datalake/schema.json @@ -1,24 +1,24 @@ { "configSchema": { - "$schema": "http://json-schema.org/draft-07/schema", + "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["bucketName"], "type": "object", - "required": ["bucketName", "useGlue", "syncFrequency"], "properties": { "bucketName": { "type": "string", - "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$" }, - "useGlue": { "type": "boolean" }, - "prefix": { "type": "string", "pattern": "(^env[.].*)|.*" }, - "namespace": { "type": "string", "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$" }, - "iamRoleARN": { "type": "string" }, - "roleBasedAuth": { "type": "boolean" }, - "accessKeyID": { "type": "string", "pattern": "(^env[.].*)|.*" }, - "accessKey": { "type": "string", "pattern": "(^env[.].*)|.*" }, - "enableSSE": { "type": "boolean" }, + "useGlue": { "type": "boolean", "default": false }, + "prefix": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, + "namespace": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!pg_|PG_|pG_|Pg_).{0,64})$" + }, + "roleBasedAuth": { "type": "boolean", "default": true }, + "enableSSE": { "type": "boolean", "default": false }, "syncFrequency": { "type": "string", - "pattern": "^(30|60|180|360|720|1440)$", + "enum": ["30", "60", "180", "360", "720", "1440"], "default": "30" }, "syncStartAt": { "type": "string" }, @@ -39,7 +39,9 @@ { "if": { "properties": { "useGlue": { "const": true } }, "required": ["useGlue"] }, "then": { - "properties": { "region": { "type": "string", "pattern": "(^env[.].+)|.+" } }, + "properties": { + "region": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" } + }, "required": ["region"] } }, @@ -49,10 +51,36 @@ "required": ["roleBasedAuth"] }, "then": { - "required": ["iamRoleARN"] + "properties": { + "iamRoleARN": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "roleBasedAuth": { "const": true } + }, + "required": ["iamRoleARN", "roleBasedAuth"] + } + }, + { + "if": { + "properties": { "roleBasedAuth": { "const": false } }, + "required": ["roleBasedAuth"] + }, + "then": { + "properties": { + "accessKeyID": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" + }, + "accessKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" + }, + "roleBasedAuth": { "const": false } + }, + "required": [] } } - ], - "additionalProperties": true + ] } } diff --git a/src/configurations/destinations/s3_datalake/ui-config.json b/src/configurations/destinations/s3_datalake/ui-config.json index 440e82bdd..fe8ba591f 100644 --- a/src/configurations/destinations/s3_datalake/ui-config.json +++ b/src/configurations/destinations/s3_datalake/ui-config.json @@ -8,7 +8,7 @@ "label": "S3 Storage Bucket Name", "labelNote": "S3 Bucket to store your event data", "value": "bucketName", - "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$", "required": true, "footerNote": "Please make sure the bucket exists in your S3" }, @@ -24,7 +24,7 @@ "label": "AWS Glue Region", "labelNote": "Your AWS Glue region.Ex-For N.Virginia, this field's value would be 'us-east-1'", "value": "region", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": true, "preRequisiteField": { "name": "useGlue", "selectedValue": true } }, @@ -42,7 +42,7 @@ "label": "Namespace", "value": "namespace", "labelNote": "Defaults to source name.", - "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!pg_|PG_|pG_|Pg_).{0,64})$", "required": false, "footerNote": "All data for the destination would be pushed to s3:////rudder-datalake/.If glue is enabled, all table definitions are created in a database with name set to namespace." }, @@ -57,7 +57,7 @@ "preRequisiteField": [{ "name": "roleBasedAuth", "selectedValue": true }], "label": "IAM Role ARN", "value": "iamRoleARN", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Role ARN", "required": true, "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access", @@ -71,7 +71,7 @@ "preRequisiteField": [{ "name": "roleBasedAuth", "selectedValue": false }], "label": "AWS Access Key ID", "value": "accessKeyID", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": false, "placeholder": "e.g: access-key-id", "secret": true @@ -81,7 +81,7 @@ "preRequisiteField": [{ "name": "roleBasedAuth", "selectedValue": false }], "label": "AWS Secret Access Key", "value": "accessKey", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": false, "placeholder": "e.g: secret-access-key", "secret": true diff --git a/src/configurations/destinations/salesforce/schema.json b/src/configurations/destinations/salesforce/schema.json index 79ea036d1..9e0395b4a 100644 --- a/src/configurations/destinations/salesforce/schema.json +++ b/src/configurations/destinations/salesforce/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["userName", "password", "initialAccessToken"], + "type": "object", "properties": { "userName": { "type": "string", @@ -16,9 +16,9 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "mapProperties": { "type": "boolean" }, - "sandbox": { "type": "boolean" }, - "useContactId": { "type": "boolean" }, + "mapProperties": { "type": "boolean", "default": true }, + "sandbox": { "type": "boolean", "default": false }, + "useContactId": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/salesforce/ui-config.json b/src/configurations/destinations/salesforce/ui-config.json index 499f0d13c..94815d649 100644 --- a/src/configurations/destinations/salesforce/ui-config.json +++ b/src/configurations/destinations/salesforce/ui-config.json @@ -64,6 +64,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/satismeter/schema.json b/src/configurations/destinations/satismeter/schema.json index 3e4eb4bda..6b0f368d3 100644 --- a/src/configurations/destinations/satismeter/schema.json +++ b/src/configurations/destinations/satismeter/schema.json @@ -1,35 +1,20 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["writeKey"], + "type": "object", "properties": { "writeKey": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "identifyAnonymousUsers": { "type": "boolean" }, - "recordSatismeterEvents": { "type": "boolean" }, - "updateEventNames": { "type": "boolean" }, - "eventsToStandard": { - "type": "array", - "items": { - "type": "object", - "properties": { - "from": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "to": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - } - } - } - }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "identifyAnonymousUsers": { "type": "boolean", "default": false }, + "recordSatismeterEvents": { "type": "boolean", "default": false }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -55,7 +40,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -68,6 +52,64 @@ } } } - } + }, + "allOf": [ + { + "if": { + "properties": { "recordSatismeterEvents": { "const": true } }, + "required": ["recordSatismeterEvents"] + }, + "then": { + "properties": { + "eventsList": { + "type": "array", + "items": { "type": "string", "enum": ["display", "dismiss", "progress", "complete"] }, + "default": ["display"] + } + }, + "required": [] + } + }, + { + "if": { + "properties": { "recordSatismeterEvents": { "const": true } }, + "required": ["recordSatismeterEvents"] + }, + "then": { + "properties": { "updateEventNames": { "type": "boolean", "default": false } }, + "required": [] + } + }, + { + "if": { + "properties": { + "recordSatismeterEvents": { "const": true }, + "updateEventNames": { "const": true } + }, + "required": ["recordSatismeterEvents", "updateEventNames"] + }, + "then": { + "properties": { + "eventsToStandard": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { + "type": "string", + "enum": ["display", "dismiss", "progress", "complete", ""] + } + } + } + } + }, + "required": [] + } + } + ] } } diff --git a/src/configurations/destinations/satismeter/ui-config.json b/src/configurations/destinations/satismeter/ui-config.json index d025d6484..671446d01 100644 --- a/src/configurations/destinations/satismeter/ui-config.json +++ b/src/configurations/destinations/satismeter/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Write Key", "value": "writeKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Write Key.", "required": true, "placeholder": "e.g. 8ebfu2tr2833r08gfb", @@ -167,6 +167,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -180,6 +181,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -199,6 +201,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/sendinblue/schema.json b/src/configurations/destinations/sendinblue/schema.json index 2c5bf83fe..291ed7ba1 100644 --- a/src/configurations/destinations/sendinblue/schema.json +++ b/src/configurations/destinations/sendinblue/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["apiKey", "clientKey"], + "type": "object", "properties": { "apiKey": { "type": "string", @@ -12,16 +12,10 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "doi": { "type": "boolean" }, - "templateId": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*?)\\}\\}$)|(^env[.].+)|^[0-9]+$|^$" - }, - "redirectionUrl": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$|^$" - }, - "keyToContactAttributeMapping": { + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "doi": { "type": "boolean", "default": false }, + "sendTraitsInTrack": { "type": "boolean", "default": false }, + "contactAttributeMapping": { "type": "array", "items": { "type": "object", @@ -37,10 +31,10 @@ } } }, - "sendTraitsInTrack": { "type": "boolean" }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -66,7 +60,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -79,6 +72,24 @@ } } } - } + }, + "anyOf": [ + { + "if": { "properties": { "doi": { "const": true } }, "required": ["doi"] }, + "then": { + "properties": { + "templateId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$" + }, + "redirectionUrl": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$" + } + }, + "required": ["redirectionUrl"] + } + } + ] } } diff --git a/src/configurations/destinations/sendinblue/ui-config.json b/src/configurations/destinations/sendinblue/ui-config.json index 47821e997..1593c50bf 100644 --- a/src/configurations/destinations/sendinblue/ui-config.json +++ b/src/configurations/destinations/sendinblue/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "API Key", "value": "apiKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid API Key", "required": true, "placeholder": "e.g. xkeysib-cI7d098201bW5acf0453FY1b64fsej32da3f8ae01d7c8f9b78L43153d814td000020eb9-1e4M595C0", @@ -18,7 +18,7 @@ "type": "textInput", "label": "Client Key", "value": "clientKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Client Key", "required": true, "placeholder": "e.g. 1vd0i6w1al7q38ap5kucurfy", @@ -52,7 +52,7 @@ "type": "textInput", "label": "Template ID", "value": "templateId", - "regex": "^[0-9]+$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$", "regexErrorMessage": "Invalid Template ID", "placeholder": "e.g. 2", "footerNote": "Your DOI template ID from Automation tab", @@ -65,7 +65,7 @@ "type": "textInput", "label": "Redirection Url", "value": "redirectionUrl", - "regex": "(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$", "regexErrorMessage": "Invalid Redirection Url", "required": true, "placeholder": "e.g. https://my.sendinblue.com/", @@ -131,6 +131,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -144,6 +145,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -163,6 +165,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/sentry/schema.json b/src/configurations/destinations/sentry/schema.json index 8cfa744ee..be30ceecf 100644 --- a/src/configurations/destinations/sentry/schema.json +++ b/src/configurations/destinations/sentry/schema.json @@ -1,9 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", - "additionalProperties": false, "required": ["dsn"], + "type": "object", "properties": { "dsn": { "type": "string" }, "environment": { "type": "string" }, @@ -11,32 +10,60 @@ "release": { "type": "string" }, "serverName": { "type": "string" }, "logger": { "type": "string" }, - "debugMode": { "type": "boolean" }, "ignoreErrors": { "type": "array", - "items": { "type": "object", "properties": { "ignoreErrors": { "type": "string" } } } + "items": { + "type": "object", + "properties": { + "ignoreErrors": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } }, "includePaths": { "type": "array", - "items": { "type": "object", "properties": { "includePaths": { "type": "string" } } } + "items": { + "type": "object", + "properties": { + "includePaths": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } }, "allowUrls": { "type": "array", "items": { "type": "object", - "properties": { "allowUrls": { "type": "string", "pattern": "^(?!.*\\.ngrok\\.io).*$" } } + "properties": { + "allowUrls": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$" + } + } } }, "denyUrls": { "type": "array", "items": { "type": "object", - "properties": { "denyUrls": { "type": "string", "pattern": "^(?!.*\\.ngrok\\.io).*$" } } + "properties": { + "denyUrls": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$" + } + } } }, + "debugMode": { "type": "boolean", "default": false }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "eventFilteringOption": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -62,7 +89,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -75,6 +101,7 @@ } } } - } + }, + "additionalProperties": false } } diff --git a/src/configurations/destinations/sentry/ui-config.json b/src/configurations/destinations/sentry/ui-config.json index e0c2cc0c1..bcb422322 100644 --- a/src/configurations/destinations/sentry/ui-config.json +++ b/src/configurations/destinations/sentry/ui-config.json @@ -54,6 +54,7 @@ "type": "textInput", "placeholder": "e.g. TYPE_ERROR", "value": "ignoreErrors", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Ignore Errors", "required": false } @@ -67,6 +68,7 @@ "type": "textInput", "placeholder": "e.g. abc/", "value": "includePaths", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Include Paths", "required": false } @@ -79,7 +81,7 @@ { "type": "textInput", "placeholder": "e.g. https://example.com/", - "regex": "^(?!.*\\.ngrok\\.io).*$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$", "value": "allowUrls", "label": "Allow URLs", "required": false @@ -93,7 +95,7 @@ { "type": "textInput", "placeholder": "e.g. https://example.com/", - "regex": "^(?!.*\\.ngrok\\.io).*$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$", "value": "denyUrls", "label": "Deny URLs", "required": false @@ -154,6 +156,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -167,6 +170,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -186,6 +190,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/serenytics/schema.json b/src/configurations/destinations/serenytics/schema.json index ac886d20f..a55f77506 100644 --- a/src/configurations/destinations/serenytics/schema.json +++ b/src/configurations/destinations/serenytics/schema.json @@ -1,31 +1,16 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": [], "type": "object", "properties": { "storageUrlIdentify": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$" }, "storageUrlTrack": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$" - }, - "storageUrlGroup": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$" - }, - "storageUrlAlias": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$" - }, - "storageUrlPage": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$" - }, - "storageUrlScreen": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,200})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$" }, "eventToStorageUrlMap": { "type": "array", @@ -34,15 +19,31 @@ "properties": { "from": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,200})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,200})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } }, + "storageUrlGroup": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$" + }, + "storageUrlAlias": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$" + }, + "storageUrlPage": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$" + }, + "storageUrlScreen": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$" + }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/serenytics/ui-config.json b/src/configurations/destinations/serenytics/ui-config.json index 0eb753f6e..61bcc8845 100644 --- a/src/configurations/destinations/serenytics/ui-config.json +++ b/src/configurations/destinations/serenytics/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Data Source Storage Url for Identify", "value": "storageUrlIdentify", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$", "required": false, "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917" }, @@ -15,7 +15,7 @@ "type": "textInput", "label": "Data Source Storage Url for Track", "value": "storageUrlTrack", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$", "required": false, "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917" }, @@ -35,7 +35,7 @@ "type": "textInput", "label": "Data Source Storage Url for Group", "value": "storageUrlGroup", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$", "required": false, "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917" }, @@ -43,7 +43,7 @@ "type": "textInput", "label": "Data Source Storage Url for Alias", "value": "storageUrlAlias", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$", "required": false, "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917" }, @@ -51,7 +51,7 @@ "type": "textInput", "label": "Data Source Storage Url for Page", "value": "storageUrlPage", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$", "required": false, "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917" }, @@ -59,7 +59,7 @@ "type": "textInput", "label": "Data Source Storage Url for Screen", "value": "storageUrlScreen", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,200})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,200})$", "required": false, "placeholder": "e.g. https://api.serenytics.com/api/data_source/7e0670-8cd1-40da-93a3-10a5/push/f06274c43f8904735b9a06c3ae917" } @@ -77,6 +77,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/shynet/schema.json b/src/configurations/destinations/shynet/schema.json index ac74b09da..cdb150b84 100644 --- a/src/configurations/destinations/shynet/schema.json +++ b/src/configurations/destinations/shynet/schema.json @@ -10,13 +10,14 @@ }, "shynetServiceUrl": { "type": "string", - "pattern": "^(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$" }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "whitelistedEvents": { "type": "array", "items": { @@ -36,7 +37,7 @@ "properties": { "eventName": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,300})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } diff --git a/src/configurations/destinations/shynet/ui-config.json b/src/configurations/destinations/shynet/ui-config.json index 39b2fc146..ec3460172 100644 --- a/src/configurations/destinations/shynet/ui-config.json +++ b/src/configurations/destinations/shynet/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Heart Beat", "value": "heartBeatFrequencyInMs", - "regex": "^(.{0,10})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,10})$", "regexErrorMessage": "Length of Heart Beat must be below 10 characters.", "required": false, "secret": false, @@ -17,7 +17,7 @@ "type": "textInput", "label": "Shynet Script URL", "value": "shynetServiceUrl", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,300})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$", "regexErrorMessage": "Length of URL must be below 300 characters.", "required": true, "secret": false, @@ -71,6 +71,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -84,6 +85,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -103,6 +105,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/signl4/schema.json b/src/configurations/destinations/signl4/schema.json index 3fdc23200..dda4e9f9e 100644 --- a/src/configurations/destinations/signl4/schema.json +++ b/src/configurations/destinations/signl4/schema.json @@ -1,12 +1,12 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["apiKey"], + "type": "object", "properties": { "apiKey": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$" }, "s4ServiceValue": { "type": "string", @@ -26,7 +26,8 @@ }, "s4AlertingScenarioValue": { "type": "string", - "pattern": "^(single_ack|multi_ack|emergency)$" + "enum": ["single_ack", "multi_ack", "emergency"], + "default": "single_ack" }, "s4AlertingScenarioProperty": { "type": "string", @@ -40,13 +41,17 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "s4StatusValue": { "type": "string", "pattern": "^(new|acknowledged|resolved)$" }, + "s4StatusValue": { + "type": "string", + "enum": ["new", "acknowledged", "resolved"], + "default": "new" + }, "s4StatusProperty": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "s4Filter": { "type": "boolean" }, - "columnToPropertyMapping": { + "s4Filter": { "type": "boolean", "default": false }, + "eventToTitleMapping": { "type": "array", "items": { "type": "object", diff --git a/src/configurations/destinations/signl4/ui-config.json b/src/configurations/destinations/signl4/ui-config.json index fbc06c885..fcacf967d 100644 --- a/src/configurations/destinations/signl4/ui-config.json +++ b/src/configurations/destinations/signl4/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "API Key", "value": "apiKey", - "regex": "^(.{1,300})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,300})$", "regexErrorMessage": "Invalid API Key", "required": true, "placeholder": "e.g. gi11aat8xy", @@ -23,7 +23,7 @@ "type": "textInput", "label": "Default Value", "value": "s4ServiceValue", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid X-S4-Service Value", "required": false, "placeholder": "e.g. Security", @@ -33,7 +33,7 @@ "type": "textInput", "label": "RudderStack property name", "value": "s4ServiceProperty", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid property name", "required": false, "placeholder": "e.g. service", @@ -49,7 +49,7 @@ "type": "textInput", "label": "Default Value", "value": "s4LocationValue", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid X-S4-Location Value", "required": false, "placeholder": "e.g. 40.6413111,-73.7781391", @@ -59,7 +59,7 @@ "type": "textInput", "label": "RudderStack property name", "value": "s4LocationProperty", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid property name", "required": false, "placeholder": "e.g. location", @@ -86,7 +86,7 @@ "type": "textInput", "label": "RudderStack property name", "value": "s4AlertingScenarioProperty", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid property name", "required": false, "placeholder": "e.g. alertingScenario", @@ -102,7 +102,7 @@ "type": "textInput", "label": "Default Value", "value": "s4ExternalIDValue", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid X-S4-ExternalID", "required": false, "placeholder": "e.g. INC091210", @@ -112,7 +112,7 @@ "type": "textInput", "label": "RudderStack property name", "value": "s4ExternalIDProperty", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid property name", "required": false, "placeholder": "e.g. externalId", @@ -140,7 +140,7 @@ "type": "textInput", "label": "RudderStack property name", "value": "s4StatusProperty", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid property name", "required": false, "placeholder": "e.g. status", @@ -189,6 +189,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/singular/schema.json b/src/configurations/destinations/singular/schema.json index da3946213..2582c434f 100644 --- a/src/configurations/destinations/singular/schema.json +++ b/src/configurations/destinations/singular/schema.json @@ -1,26 +1,42 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["apiKey"], + "type": "object", "properties": { - "apiKey": { "type": "string" }, - "apiSecret": { "type": "string" }, + "apiKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[a-zA-Z0-9_]*$" + }, + "apiSecret": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[a-zA-Z0-9]*$" + }, "sessionEventList": { "type": "array", "items": { "type": "object", "properties": { - "eventName": { + "sessionEventName": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } }, + "useNativeSDK": { + "type": "object", + "properties": { + "android": { "type": "boolean" }, + "ios": { "type": "boolean" }, + "reactnative": { "type": "boolean" }, + "cordova": { "type": "boolean" } + } + }, "eventFilteringOption": { "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -46,10 +62,6 @@ } } }, - "useNativeSDK": { - "type": "object", - "properties": { "android": { "type": "boolean" }, "ios": { "type": "boolean" } } - }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/singular/ui-config.json b/src/configurations/destinations/singular/ui-config.json index fb55a9439..b7eed9eae 100644 --- a/src/configurations/destinations/singular/ui-config.json +++ b/src/configurations/destinations/singular/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "API Key", "value": "apiKey", - "regex": "^[a-zA-Z0-9_]*$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[a-zA-Z0-9_]*$", "regexErrorMessage": "Invalid API Key", "required": true, "placeholder": "e.g: abcd_456e5678", @@ -17,7 +17,7 @@ "type": "textInput", "label": "Secret", "value": "apiSecret", - "regex": "^[a-zA-Z0-9]*$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[a-zA-Z0-9]*$", "regexErrorMessage": "Invalid Secret Key", "required": false, "placeholder": "e.g: r344c6e48c0r87y6iio567b67ad61324", @@ -32,6 +32,7 @@ { "type": "textInput", "value": "sessionEventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Session Event Name" } @@ -85,6 +86,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -98,6 +100,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -117,6 +120,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/slack/schema.json b/src/configurations/destinations/slack/schema.json index 40063cfd6..2da9b1f05 100644 --- a/src/configurations/destinations/slack/schema.json +++ b/src/configurations/destinations/slack/schema.json @@ -1,13 +1,9 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["webhookUrl"], "type": "object", "properties": { - "webhookUrl": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})" - }, - "identifyTemplate": { "type": "string" }, "eventChannelSettings": { "type": "array", "items": { @@ -21,10 +17,14 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "eventRegex": { "type": "boolean" } + "eventRegex": { "type": "boolean", "default": false } } } }, + "identifyTemplate": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$" + }, "eventTemplateSettings": { "type": "array", "items": { @@ -38,10 +38,14 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$" }, - "eventRegex": { "type": "boolean" } + "eventRegex": { "type": "boolean", "default": false } } } }, + "webhookUrl": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{0,100})$" + }, "whitelistedTraitsSettings": { "type": "array", "items": { @@ -49,7 +53,7 @@ "properties": { "trait": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } diff --git a/src/configurations/destinations/slack/ui-config.json b/src/configurations/destinations/slack/ui-config.json index c6382bc51..6c4f8fc4c 100644 --- a/src/configurations/destinations/slack/ui-config.json +++ b/src/configurations/destinations/slack/ui-config.json @@ -11,7 +11,7 @@ "type": "textInput", "label": "Event Name", "value": "eventName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Event Name", "required": false, "placeholder": "e.g: ABCDEFG" @@ -20,7 +20,7 @@ "type": "textInput", "label": "Event Channel", "value": "eventChannel", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Event Channel", "required": false, "placeholder": "e.g: ABCDEFG" @@ -42,7 +42,7 @@ "type": "textInput", "label": "Identify Template", "value": "identifyTemplate", - "regex": "^(.{0,1000})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$", "regexErrorMessage": "Invalid Identify Template", "required": false, "placeholder": "e.g: ABCDEFG" @@ -60,7 +60,7 @@ "type": "textInput", "label": "Event Name", "value": "eventName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Event Name", "required": false, "placeholder": "e.g: ABCDEFG" @@ -69,7 +69,7 @@ "type": "textInput", "label": "Event Template", "value": "eventTemplate", - "regex": "^(.{0,1000})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$", "regexErrorMessage": "Invalid Event Template", "required": false, "placeholder": "e.g: ABCDEFG" diff --git a/src/configurations/destinations/snapchat_conversion/schema.json b/src/configurations/destinations/snapchat_conversion/schema.json index be8efcca7..e3ffe35d9 100644 --- a/src/configurations/destinations/snapchat_conversion/schema.json +++ b/src/configurations/destinations/snapchat_conversion/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["apiKey"], + "type": "object", "properties": { "apiKey": { "type": "string", @@ -12,8 +12,14 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "snapAppId": { "type": "string" }, - "appId": { "type": "string" }, + "snapAppId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "appId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, "rudderEventsToSnapEvents": { "type": "array", "items": { @@ -25,16 +31,45 @@ }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "enum": [ + "products_searched", + "product_list_viewed", + "promotion_viewed", + "promotion_clicked", + "product_viewed", + "checkout_started", + "payment_info_entered", + "order_completed", + "product_added", + "product_added_to_wishlist", + "sign_up", + "app_open", + "save", + "subscribe", + "complete_tutorial", + "invite", + "login", + "share", + "reserve", + "achievement_unlocked", + "spent_credits", + "rate", + "start_trial", + "list_view", + "page_view", + "app_install", + "custom_event_1", + "custom_event_2", + "custom_event_3", + "custom_event_4", + "custom_event_5", + "" + ] } } } }, - "enableDeduplication": { "type": "boolean" }, - "deduplicationKey": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" - }, + "enableDeduplication": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -47,6 +82,23 @@ } } } - } + }, + "anyOf": [ + { + "if": { + "properties": { "enableDeduplication": { "const": true } }, + "required": ["enableDeduplication"] + }, + "then": { + "properties": { + "deduplicationKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + } + }, + "required": ["deduplicationKey"] + } + } + ] } } diff --git a/src/configurations/destinations/snapchat_conversion/ui-config.json b/src/configurations/destinations/snapchat_conversion/ui-config.json index 676103aff..8811db5af 100644 --- a/src/configurations/destinations/snapchat_conversion/ui-config.json +++ b/src/configurations/destinations/snapchat_conversion/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "API Token", "value": "apiKey", - "regex": "^(.{1,500})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$", "required": true, "placeholder": "e.g. MTp6WHZyNbJXZVNMMm11AlJ1R1BXeVVBOkk0dFk5dkEybUVEWAw5NHk5dXBYUjBIdWp6QzZCNC1TMEFGU9QwYVdnUjg", "secret": true, @@ -17,7 +17,7 @@ "type": "textInput", "label": "Pixel ID", "value": "pixelId", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Pixel ID", "required": false, "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e", @@ -29,6 +29,7 @@ "label": "Snap App ID", "value": "snapAppId", "required": false, + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e", "secret": true, "footerNote": "Your Snap App ID" @@ -38,6 +39,7 @@ "label": "App ID", "value": "appId", "required": false, + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "placeholder": "e.g: 836d6231-aad6-4e41-9cbb-5854565cad8e", "secret": true, "footerNote": "Your App ID" @@ -107,8 +109,9 @@ "preRequisiteField": [{ "name": "enableDeduplication", "selectedValue": true }], "label": "Deduplication Key", "value": "deduplicationKey", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "placeholder": "e.g: messageId", - "required": false, + "required": true, "footerNote": "RudderStack will use this field for deduplication. If nothing is specified, messageId field will be used." } ] @@ -125,6 +128,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/snapchat_custom_audience/schema.json b/src/configurations/destinations/snapchat_custom_audience/schema.json index 75b492a28..e3f6aa58b 100644 --- a/src/configurations/destinations/snapchat_custom_audience/schema.json +++ b/src/configurations/destinations/snapchat_custom_audience/schema.json @@ -1,15 +1,15 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["segmentId", "schema"], "type": "object", - "required": ["segmentId"], "properties": { "segmentId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "schema": { "type": "string", "pattern": "^(email|phone|mobileAdId)$" }, - "disableHashing": { "type": "boolean" }, + "schema": { "type": "string", "enum": ["email", "phone", "mobileAdId"], "default": "email" }, + "disableHashing": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/snapchat_custom_audience/ui-config.json b/src/configurations/destinations/snapchat_custom_audience/ui-config.json index 64846d94c..cc9bc3de9 100644 --- a/src/configurations/destinations/snapchat_custom_audience/ui-config.json +++ b/src/configurations/destinations/snapchat_custom_audience/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Segment Id", "value": "segmentId", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Segment Id", "required": true, "placeholder": "e.g. 4996042382964722", @@ -52,6 +52,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/snapengage/schema.json b/src/configurations/destinations/snapengage/schema.json index 4715b4896..c3fdbeac3 100644 --- a/src/configurations/destinations/snapengage/schema.json +++ b/src/configurations/destinations/snapengage/schema.json @@ -8,27 +8,12 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "recordLiveChatEvents": { "type": "boolean" }, - "updateEventNames": { "type": "boolean" }, - "eventsToStandard": { - "type": "array", - "items": { - "type": "object", - "properties": { - "from": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "to": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - } - } - } - }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "recordLiveChatEvents": { "type": "boolean", "default": false }, "eventFilteringOption": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -66,6 +51,55 @@ } } } - } + }, + "allOf": [ + { + "if": { + "properties": { "recordLiveChatEvents": { "const": true } }, + "required": ["recordLiveChatEvents"] + }, + "then": { + "properties": { "updateEventNames": { "type": "boolean", "default": false } }, + "required": [] + } + }, + { + "if": { + "properties": { + "recordLiveChatEvents": { "const": true }, + "updateEventNames": { "const": true } + }, + "required": ["recordLiveChatEvents", "updateEventNames"] + }, + "then": { + "properties": { + "eventsToStandard": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { + "type": "string", + "enum": [ + "startChat", + "close", + "chatMessageSent", + "chatMessageReceived", + "inlineButtonClicked", + "" + ] + } + } + } + } + }, + "required": [] + } + } + ] } } diff --git a/src/configurations/destinations/snapengage/ui-config.json b/src/configurations/destinations/snapengage/ui-config.json index cfb45b573..1a1bed04a 100644 --- a/src/configurations/destinations/snapengage/ui-config.json +++ b/src/configurations/destinations/snapengage/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Widget ID", "value": "widgetId", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Widget ID length should be less than 100 characters", "required": true, "placeholder": "e.g: 0c739ebb-2016-44a0-b1da-a5b5eb272474", @@ -129,6 +129,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -142,6 +143,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -161,6 +163,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/snowflake/schema.json b/src/configurations/destinations/snowflake/schema.json index 597116dbd..36b185cba 100644 --- a/src/configurations/destinations/snowflake/schema.json +++ b/src/configurations/destinations/snowflake/schema.json @@ -1,7 +1,6 @@ { "configSchema": { - "$schema": "http://json-schema.org/draft-07/schema", - "type": "object", + "$schema": "http://json-schema.org/draft-07/schema#", "required": [ "account", "database", @@ -11,67 +10,52 @@ "syncFrequency", "useRudderStorage" ], + "type": "object", "properties": { "account": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "database": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "warehouse": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "user": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "role": { "type": "string", - "pattern": "(^env[.].*)|^(.{0,100})$" - }, - "password": { - "type": "string", - "pattern": "(^env[.].+)|.+" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, + "password": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, "namespace": { "type": "string", - "pattern": "(^env[.].*)|^((?!pg_|PG_|pG_|Pg_).{0,64})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!pg_|PG_|pG_|Pg_).{0,64})$" }, "syncFrequency": { "type": "string", - "pattern": "^(30|60|180|360|720|1440)$", + "enum": ["30", "60", "180", "360", "720", "1440"], "default": "30" }, - "syncStartAt": { - "type": "string" - }, + "syncStartAt": { "type": "string" }, "excludeWindow": { "type": "object", - "required": ["excludeWindowStartTime", "excludeWindowEndTime"], "properties": { - "excludeWindowStartTime": { - "type": "string" - }, - "excludeWindowEndTime": { - "type": "string" - } - } + "excludeWindowStartTime": { "type": "string" }, + "excludeWindowEndTime": { "type": "string" } + }, + "required": ["excludeWindowStartTime", "excludeWindowEndTime"] }, "jsonPaths": { "type": "string", - "pattern": "(^env[.].*)|.*" - }, - "useRudderStorage": { - "type": "boolean", - "default": false - }, - "cloudProvider": { - "type": "string", - "pattern": "^(AWS|GCP|AZURE)$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.*)$" }, + "useRudderStorage": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -83,61 +67,41 @@ } } } - } - }, - "ketchConsentPurposes": { - "type": "array", - "items": { - "type": "object", - "properties": { - "purpose": { - "type": "string", - "pattern": "^(.{0,100})$" - } + }, + "ketchConsentPurposes": { + "type": "array", + "items": { + "type": "object", + "properties": { "purpose": { "type": "string", "pattern": "^(.{0,100})$" } } } } }, "allOf": [ { "if": { - "properties": { - "useRudderStorage": { - "const": false - } - }, - "required": ["useRudderStorage"] - }, - "then": { - "required": ["cloudProvider"] - } - }, - { - "if": { - "properties": { - "useRudderStorage": { - "const": false - } - }, + "properties": { "useRudderStorage": { "const": false } }, "required": ["useRudderStorage"] }, "then": { "properties": { + "cloudProvider": { + "type": "string", + "enum": ["AWS", "GCP", "AZURE"], + "default": "AWS" + }, "prefix": { "type": "string", - "pattern": "(^env[.].*)|^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } - } + }, + "required": ["cloudProvider"] } }, { "if": { "properties": { - "cloudProvider": { - "const": "AWS" - }, - "useRudderStorage": { - "const": false - } + "cloudProvider": { "const": "AWS" }, + "useRudderStorage": { "const": false } }, "required": ["cloudProvider", "useRudderStorage"] }, @@ -145,26 +109,37 @@ "properties": { "bucketName": { "type": "string", - "pattern": "(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$" }, - "enableSSE": { - "type": "boolean" - } + "storageIntegration": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "roleBasedAuth": { "type": "boolean", "default": true }, + "enableSSE": { "type": "boolean", "default": false } }, "required": ["bucketName"], "anyOf": [ { - "type": "object", "properties": { - "accessKeyID": { "type": "string", "pattern": "(^env[.].+)|^(.{0,100})$" }, - "accessKey": { "type": "string", "pattern": "(^env[.].+)|^(.{0,100})$" } + "accessKeyID": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "accessKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "roleBasedAuth": { "const": false } }, "required": ["accessKeyID", "accessKey"] }, { - "type": "object", "properties": { - "iamRoleARN": { "type": "string" }, + "iamRoleARN": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, "roleBasedAuth": { "const": true } }, "required": ["iamRoleARN", "roleBasedAuth"] @@ -175,12 +150,8 @@ { "if": { "properties": { - "cloudProvider": { - "const": "GCP" - }, - "useRudderStorage": { - "const": false - } + "cloudProvider": { "const": "GCP" }, + "useRudderStorage": { "const": false } }, "required": ["cloudProvider", "useRudderStorage"] }, @@ -188,28 +159,25 @@ "properties": { "bucketName": { "type": "string", - "pattern": "(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$" }, - "credentials": { + "storageIntegration": { "type": "string", - "pattern": "(^env[.].+)|.+" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "storageIntegration": { + "credentials": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" } - } + }, + "required": ["bucketName", "storageIntegration", "credentials"] } }, { "if": { "properties": { - "cloudProvider": { - "const": "AZURE" - }, - "useRudderStorage": { - "const": false - } + "cloudProvider": { "const": "AZURE" }, + "useRudderStorage": { "const": false } }, "required": ["cloudProvider", "useRudderStorage"] }, @@ -217,24 +185,27 @@ "properties": { "containerName": { "type": "string", - "pattern": "(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$" }, - "accountName": { + "storageIntegration": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "storageIntegration": { + "accountName": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" - } + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "useSASTokens": { "type": "boolean", "default": false } }, + "required": ["containerName", "storageIntegration", "accountName"], "anyOf": [ { "properties": { "accountKey": { "type": "string", - "pattern": "(^env[.].+)|^(.{1,100})$" - } + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "useSASTokens": { "const": false } }, "required": ["accountKey"] }, @@ -242,18 +213,15 @@ "properties": { "sasToken": { "type": "string", - "pattern": "(^env[.].+)|^(.+)$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.+)$" }, - "useSASTokens": { - "const": true - } + "useSASTokens": { "const": true } }, "required": ["sasToken", "useSASTokens"] } ] } } - ], - "additionalProperties": true + ] } } diff --git a/src/configurations/destinations/snowflake/ui-config.json b/src/configurations/destinations/snowflake/ui-config.json index b72c15616..c55ae41fc 100644 --- a/src/configurations/destinations/snowflake/ui-config.json +++ b/src/configurations/destinations/snowflake/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Account", "value": "account", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Account", "placeholder": "e.g: qya54180.us-east-1", "required": true @@ -16,7 +16,7 @@ "type": "textInput", "label": "Database", "value": "database", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Database", "placeholder": "e.g: RUDDER_EVENTS", "required": true @@ -25,7 +25,7 @@ "type": "textInput", "label": "Warehouse", "value": "warehouse", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Database", "placeholder": "e.g: RUDDER_WAREHOUSE", "required": true @@ -34,7 +34,7 @@ "type": "textInput", "label": "User", "value": "user", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid User", "placeholder": "e.g: RUDDER_USER", "required": true @@ -43,7 +43,7 @@ "type": "textInput", "label": "Role", "value": "role", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Role", "placeholder": "e.g: RUDDER_ROLE", "required": false @@ -52,7 +52,7 @@ "type": "textInput", "label": "Password", "value": "password", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "placeholder": "e.g: RUDDER_PASSWORD", "required": true, "secret": true @@ -62,7 +62,7 @@ "label": "Namespace", "labelNote": "Schema name for the warehouse where the tables are created", "value": "namespace", - "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!pg_|PG_|pG_|Pg_).{0,64})$", "regexErrorMessage": "Invalid Namespace", "required": false, "placeholder": "e.g: RUDDER_NAMESPACE", @@ -102,7 +102,7 @@ "name": "Every 30 minutes", "value": "30" }, - "required": false + "required": true }, { "type": "timePicker", @@ -139,7 +139,7 @@ "label": "JSON columns (Optional)", "labelNote": "Specify required JSON properties in dot notation separated by commas", "value": "jsonPaths", - "regex": "^(.*)$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.*)$", "placeholder": "e.g: testMap.nestedMap, testArray", "required": false, "footerURL": { @@ -157,7 +157,8 @@ "label": "Use RudderStack managed object storage", "value": "useRudderStorage", "default": false, - "footerNote": "Note: Only available for RudderStack managed data planes" + "footerNote": "Note: Only available for RudderStack managed data planes", + "required": true }, { "type": "singleSelect", @@ -202,7 +203,7 @@ "label": "Staging S3 Storage Bucket Name", "labelNote": "S3 Bucket to store data before loading into Snowflake", "value": "bucketName", - "regex": "^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$", "regexErrorMessage": "Invalid Staging S3 Storage Bucket Name", "placeholder": "e.g: s3-event-logs", "required": true, @@ -223,7 +224,7 @@ "label": "Staging GCS Object Storage Bucket Name", "labelNote": "GCS Bucket to store data before loading into Snowflake", "value": "bucketName", - "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$", "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name", "required": true, "placeholder": "e.g: gcs-event-logs", @@ -244,7 +245,7 @@ "label": "Staging Azure Blob Storage Container Name", "labelNote": "Container to store data before loading into Snowflake", "value": "containerName", - "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$", "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name", "required": true, "placeholder": "e.g: azure-event-logs", @@ -254,7 +255,7 @@ "type": "textInput", "label": "Prefix", "value": "prefix", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Prefix", "required": false, "placeholder": "e.g: rudder", @@ -277,7 +278,7 @@ ], "label": "Storage Integration", "value": "storageIntegration", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Storage Integration", "placeholder": "e.g: aws_int", "footerURL": { @@ -299,7 +300,7 @@ ], "label": "Storage Integration", "value": "storageIntegration", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Storage Integration", "required": true, "placeholder": "e.g: gcs_int", @@ -322,7 +323,7 @@ ], "label": "Storage Integration", "value": "storageIntegration", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Storage Integration", "required": true, "placeholder": "e.g: azure_int", @@ -365,7 +366,7 @@ ], "label": "IAM Role ARN", "value": "iamRoleARN", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Role ARN", "required": true, "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access", @@ -392,7 +393,7 @@ ], "label": "AWS Access Key ID", "value": "accessKeyID", - "regex": "^(.{0,100})$", + "regex": "^(.{1,100})$", "regexErrorMessage": "Invalid AWS Access Key ID", "required": true, "placeholder": "e.g: access-key-id", @@ -416,7 +417,7 @@ ], "label": "AWS Secret Access Key", "value": "accessKey", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid AWS Secret Access Key", "required": true, "placeholder": "e.g: secret-access-key", @@ -452,7 +453,7 @@ ], "label": "Azure Blob Storage Account Name", "value": "accountName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Azure Blob Storage Account Name", "required": true, "placeholder": "e.g: account-name" @@ -475,7 +476,7 @@ ], "label": "Azure Blob Storage Account Key", "value": "accountKey", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Azure Blob Storage Account Key", "required": true, "secret": true, @@ -499,7 +500,7 @@ ], "label": "Azure Blob Storage SAS Token", "value": "sasToken", - "regex": "^(.+)$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.+)$", "regexErrorMessage": "Invalid Azure Blob Storage SAS Token", "required": true, "placeholder": "e.g: sas-token", @@ -537,7 +538,7 @@ "label": "Credentials", "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage", "value": "credentials", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": true, "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'" } @@ -555,6 +556,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/tiktok_ads/schema.json b/src/configurations/destinations/tiktok_ads/schema.json index 210a71345..f677b0b10 100644 --- a/src/configurations/destinations/tiktok_ads/schema.json +++ b/src/configurations/destinations/tiktok_ads/schema.json @@ -1,36 +1,52 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["pixelCode"], "type": "object", - "required": [ - "pixelCode" - ], "properties": { - "accessToken": { - "type": "string", - "pattern": ".*" - }, + "accessToken": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, "pixelCode": { "type": "string", - "pattern": "^(.{0,100})$" - }, - "hashUserProperties": { - "type": "boolean" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, + "hashUserProperties": { "type": "boolean", "default": true }, "eventsToStandard": { "type": "array", "items": { "type": "object", "properties": { "from": { - "type": "string" + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, "to": { - "type": "string" + "type": "string", + "enum": [ + "AddPaymentInfo", + "AddToCart", + "AddToWishlist", + "ClickButton", + "CompletePayment", + "CompleteRegistration", + "Contact", + "Download", + "InitiateCheckout", + "PlaceAnOrder", + "Search", + "SubmitForm", + "Subscribe", + "ViewContent", + "" + ] } } } }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, "whitelistedEvents": { "type": "array", "items": { @@ -55,14 +71,7 @@ } } }, - "useNativeSDK": { - "type": "object", - "properties": { - "web": { - "type": "boolean" - } - } - }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -79,14 +88,9 @@ "type": "array", "items": { "type": "object", - "properties": { - "purpose": { - "type": "string", - "pattern": "^(.{0,100})$" - } - } + "properties": { "purpose": { "type": "string", "pattern": "^(.{0,100})$" } } } } } } -} \ No newline at end of file +} diff --git a/src/configurations/destinations/tiktok_ads/ui-config.json b/src/configurations/destinations/tiktok_ads/ui-config.json index 34dd91e21..fac9a7957 100644 --- a/src/configurations/destinations/tiktok_ads/ui-config.json +++ b/src/configurations/destinations/tiktok_ads/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Access Token", "value": "accessToken", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": false, "placeholder": "e.g. 1234ac663758946dfea3520b394bbac611b371f7", "secret": true, @@ -17,7 +17,7 @@ "type": "textInput", "label": "Pixel Code", "value": "pixelCode", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Pixel Code", "required": true, "placeholder": "e.g: A1T8T4UYGVIQA8ORZMX9", @@ -142,6 +142,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -155,6 +156,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -185,6 +187,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } @@ -208,4 +211,4 @@ ] } ] -} \ No newline at end of file +} diff --git a/src/configurations/destinations/tiktok_ads_offline_events/schema.json b/src/configurations/destinations/tiktok_ads_offline_events/schema.json index ac474fc1a..9b0a46788 100644 --- a/src/configurations/destinations/tiktok_ads_offline_events/schema.json +++ b/src/configurations/destinations/tiktok_ads_offline_events/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["accessToken"], + "type": "object", "properties": { "accessToken": { "type": "string", @@ -19,12 +19,12 @@ }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "enum": ["CompletePayment", "Contact", "SubmitForm", "Subscribe", ""] } } } }, - "hashUserProperties": { "type": "boolean" }, + "hashUserProperties": { "type": "boolean", "default": true }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/tiktok_ads_offline_events/ui-config.json b/src/configurations/destinations/tiktok_ads_offline_events/ui-config.json index 97e7d167f..55528b091 100644 --- a/src/configurations/destinations/tiktok_ads_offline_events/ui-config.json +++ b/src/configurations/destinations/tiktok_ads_offline_events/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Access Token", "value": "accessToken", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": true, "placeholder": "e.g. 1234ac663758946dfea3520b394bbac611b371f7", "secret": true, @@ -61,6 +61,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/user/schema.json b/src/configurations/destinations/user/schema.json index 21e56be5b..de051e124 100644 --- a/src/configurations/destinations/user/schema.json +++ b/src/configurations/destinations/user/schema.json @@ -1,12 +1,12 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["apiKey", "appSubdomain"], "type": "object", - "required": ["apiKey"], "properties": { "apiKey": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "appSubdomain": { "type": "string", diff --git a/src/configurations/destinations/user/ui-config.json b/src/configurations/destinations/user/ui-config.json index d940af1ec..3c1031cc7 100644 --- a/src/configurations/destinations/user/ui-config.json +++ b/src/configurations/destinations/user/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Public REST API Key", "value": "apiKey", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid API Key", "required": true, "placeholder": "e.g: 1d6583b196d34de28a3g19ahadde4b0z" @@ -16,7 +16,7 @@ "type": "textInput", "label": "Your App Subdomain", "value": "appSubdomain", - "regex": "^(.{0,500})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$", "regexErrorMessage": "Invalid App Subdomain", "required": true, "placeholder": "e.g: commander" @@ -100,6 +100,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/vero/schema.json b/src/configurations/destinations/vero/schema.json index 8770afda4..7980232ec 100644 --- a/src/configurations/destinations/vero/schema.json +++ b/src/configurations/destinations/vero/schema.json @@ -1,9 +1,13 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": [], + "type": "object", "properties": { + "authToken": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,150})$" + }, "apiKey": { "type": "object", "properties": { @@ -13,7 +17,12 @@ } } }, - "authToken": { "type": "string" }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, "whitelistedEvents": { "type": "array", "items": { @@ -38,7 +47,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/vero/ui-config.json b/src/configurations/destinations/vero/ui-config.json index 01e7ab2df..e915fdebd 100644 --- a/src/configurations/destinations/vero/ui-config.json +++ b/src/configurations/destinations/vero/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Authentication Token", "value": "authToken", - "regex": "^(.{0,150})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,150})$", "regexErrorMessage": "Length of Authentication Token must be below 150 characters.", "required": false, "secret": true, @@ -17,7 +17,7 @@ "type": "textInput", "label": "API Key", "value": "apiKey", - "regex": "^(.{0,50})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Length of API Key must be below 50 characters.", "required": false, "secret": true, @@ -103,6 +103,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/vitally/ui-config.json b/src/configurations/destinations/vitally/ui-config.json index dd934784c..994f0908c 100644 --- a/src/configurations/destinations/vitally/ui-config.json +++ b/src/configurations/destinations/vitally/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "API KEY", "value": "apiKeyVitally", - "regex": "^(.{1,500})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,500})$", "regexErrorMessage": "Length of API KEY must be below 200 characters.", "required": true, "secret": true, @@ -27,6 +27,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/vwo/schema.json b/src/configurations/destinations/vwo/schema.json index 888358477..33a0819d8 100644 --- a/src/configurations/destinations/vwo/schema.json +++ b/src/configurations/destinations/vwo/schema.json @@ -1,28 +1,21 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["accountId"], + "type": "object", "properties": { "accountId": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" - }, - "isSPA": { "type": "boolean" }, - "sendExperimentTrack": { "type": "boolean" }, - "sendExperimentIdentify": { "type": "boolean" }, - "libraryTolerance": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "settingsTolerance": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - }, - "useExistingJquery": { "type": "boolean" }, + "isSPA": { "type": "boolean", "default": false }, + "sendExperimentTrack": { "type": "boolean", "default": false }, + "sendExperimentIdentify": { "type": "boolean", "default": false }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "eventFilteringOption": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(disable|whitelistedEvents|blacklistedEvents)$)" + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" }, "whitelistedEvents": { "type": "array", @@ -48,7 +41,15 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "libraryTolerance": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "settingsTolerance": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "useExistingJquery": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/vwo/ui-config.json b/src/configurations/destinations/vwo/ui-config.json index 5f2af5437..b9ee61051 100644 --- a/src/configurations/destinations/vwo/ui-config.json +++ b/src/configurations/destinations/vwo/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Account Id", "value": "accountId", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Account Id", "required": true, "placeholder": "e.g: 410057" @@ -78,6 +78,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -91,6 +92,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -105,7 +107,7 @@ "type": "textInput", "label": "Library Tolerance", "value": "libraryTolerance", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Library Tolerance", "placeholder": "e.g: 2000", "default": "2500" @@ -114,7 +116,7 @@ "type": "textInput", "label": "Setting Tolerance", "value": "settingsTolerance", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Setting Tolerance", "placeholder": "e.g: 2000", "default": "2000" @@ -139,6 +141,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/webengage/schema.json b/src/configurations/destinations/webengage/schema.json index 4fcc40fdf..d1c041860 100644 --- a/src/configurations/destinations/webengage/schema.json +++ b/src/configurations/destinations/webengage/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["licenseCode", "apiKey", "dataCenter"], + "type": "object", "properties": { "licenseCode": { "type": "string", @@ -12,10 +12,7 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "dataCenter": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(standard|ind)$" - }, + "dataCenter": { "type": "string", "enum": ["standard", "ind"], "default": "standard" }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/webengage/ui-config.json b/src/configurations/destinations/webengage/ui-config.json index d1e78326f..2bc0c8d86 100644 --- a/src/configurations/destinations/webengage/ui-config.json +++ b/src/configurations/destinations/webengage/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "License Code", "value": "licenseCode", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "required": true, "placeholder": "e.g. b4a29aba", "secret": true @@ -16,7 +16,7 @@ "type": "textInput", "label": "Api Key", "value": "apiKey", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "required": true, "placeholder": "e.g. b4a29aba17jmbad7b6c1a5asjghj", "secret": true @@ -25,6 +25,7 @@ "type": "singleSelect", "label": "Data Center", "value": "dataCenter", + "required": true, "options": [ { "name": "Standard", "value": "standard" }, { "name": "IND", "value": "ind" } @@ -45,6 +46,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/webhook/schema.json b/src/configurations/destinations/webhook/schema.json index b9bf8b7aa..6cf73802b 100644 --- a/src/configurations/destinations/webhook/schema.json +++ b/src/configurations/destinations/webhook/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["webhookUrl"], + "type": "object", "properties": { "webhookUrl": { "type": "string", @@ -10,7 +10,8 @@ }, "webhookMethod": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(^(POST|PUT|PATCH|GET|DELETE)$)" + "enum": ["POST", "PUT", "PATCH", "GET", "DELETE"], + "default": "POST" }, "headers": { "type": "array", @@ -19,11 +20,11 @@ "properties": { "from": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$" }, "to": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100000})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$" } } } diff --git a/src/configurations/destinations/webhook/ui-config.json b/src/configurations/destinations/webhook/ui-config.json index 59409991d..c24be2871 100644 --- a/src/configurations/destinations/webhook/ui-config.json +++ b/src/configurations/destinations/webhook/ui-config.json @@ -31,6 +31,7 @@ "labelLeft": "Key", "labelRight": "Value", "keyLeft": "from", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,1000})$", "keyRight": "to", "placeholderLeft": "content-type", "placeholderRight": "application/json", @@ -50,6 +51,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/woopra/schema.json b/src/configurations/destinations/woopra/schema.json index fdfb411c9..9e36b7f90 100644 --- a/src/configurations/destinations/woopra/schema.json +++ b/src/configurations/destinations/woopra/schema.json @@ -1,20 +1,41 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["projectName"], + "type": "object", "properties": { - "projectName": { "type": "string", "pattern": "^(([a-z0-9]+[.])+[a-z]{1,})$" }, - "cookieName": { "type": "string" }, - "cookieDomain": { "type": "string" }, - "clickTracking": { "type": "boolean" }, - "cookiePath": { "type": "string" }, - "downloadTracking": { "type": "boolean" }, - "hideCampaign": { "type": "boolean" }, - "idleTimeout": { "type": "string" }, - "ignoreQueryUrl": { "type": "boolean" }, - "outgoingIgnoreSubdomain": { "type": "boolean" }, - "outgoingTracking": { "type": "boolean" }, + "projectName": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(([a-z0-9]+[.])+[a-z]{1,})$" + }, + "cookieName": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "cookieDomain": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "clickTracking": { "type": "boolean", "default": false }, + "cookiePath": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "downloadTracking": { "type": "boolean", "default": true }, + "hideCampaign": { "type": "boolean", "default": false }, + "idleTimeout": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]+)$" + }, + "ignoreQueryUrl": { "type": "boolean", "default": true }, + "outgoingIgnoreSubdomain": { "type": "boolean", "default": true }, + "outgoingTracking": { "type": "boolean", "default": false }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, "whitelistedEvents": { "type": "array", "items": { @@ -39,7 +60,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/woopra/ui-config.json b/src/configurations/destinations/woopra/ui-config.json index d0ad27445..a1386e760 100644 --- a/src/configurations/destinations/woopra/ui-config.json +++ b/src/configurations/destinations/woopra/ui-config.json @@ -8,7 +8,7 @@ "label": "Project Name", "value": "projectName", "required": true, - "regex": "^(([a-z0-9]+[.])+[a-z]{1,})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(([a-z0-9]+[.])+[a-z]{1,})$", "regexErrorMessage": "Project Name should be a Domain.", "placeholder": "e.g: myproject.com", "footerNote": "Enter The name of your project in Woopra. This would be used as fallback value if not provided inside integrations object of payload." @@ -23,6 +23,7 @@ "type": "textInput", "label": "Cookie Name", "value": "cookieName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "default": "wooTracker", "required": false, "placeholder": "e.g: wpTracker", @@ -32,6 +33,7 @@ "type": "textInput", "label": "Cookie Domain", "value": "cookieDomain", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: test", "footerNote": "Domain scope of the Woopra cookie. Default: Website domain." @@ -40,6 +42,7 @@ "type": "checkbox", "label": "Click Tracking", "value": "clickTracking", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "default": false, "footerNote": "Tracks user click interactions with links and buttons. Default: False." @@ -48,6 +51,7 @@ "type": "textInput", "label": "Cookie Path", "value": "cookiePath", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: newFolder/test", "default": "/", @@ -74,7 +78,7 @@ "label": "Idle Timeout", "value": "idleTimeout", "required": false, - "regex": "^([0-9]+)$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^([0-9]+)$", "regexErrorMessage": "Idle Timeout should be a number.", "default": "300000", "placeholder": "20000000", @@ -152,6 +156,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -165,6 +170,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -184,6 +190,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/wootric/schema.json b/src/configurations/destinations/wootric/schema.json index c4c5ac68c..0647ad77d 100644 --- a/src/configurations/destinations/wootric/schema.json +++ b/src/configurations/destinations/wootric/schema.json @@ -1,14 +1,14 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["username", "password", "accountToken"], + "type": "object", "properties": { "username": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "password": { "type": "string", "pattern": "(^env[.].+)|.+" }, + "password": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, "accountToken": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" diff --git a/src/configurations/destinations/wootric/ui-config.json b/src/configurations/destinations/wootric/ui-config.json index 93bf13437..cdc8584cf 100644 --- a/src/configurations/destinations/wootric/ui-config.json +++ b/src/configurations/destinations/wootric/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Username", "value": "username", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid User", "required": true, "placeholder": "e.g. test@gmail.com", @@ -17,7 +17,7 @@ "type": "textInput", "label": "Password", "value": "password", - "regex": ".*", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*", "required": true, "placeholder": "e.g. password@123", "secret": true @@ -26,7 +26,7 @@ "type": "textInput", "label": "Account Token", "value": "accountToken", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Account Token", "required": true, "placeholder": "e.g. NPS-123456", @@ -46,6 +46,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/yahoo_dsp/schema.json b/src/configurations/destinations/yahoo_dsp/schema.json index ca1b90f7c..cb3230eab 100644 --- a/src/configurations/destinations/yahoo_dsp/schema.json +++ b/src/configurations/destinations/yahoo_dsp/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["clientId", "clientSecret", "accountId", "audienceType", "audienceId"], "type": "object", - "required": ["clientId", "clientSecret", "audienceId", "accountId"], "properties": { "clientId": { "type": "string", @@ -12,17 +12,20 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "audienceId": { + "accountId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$" }, - "accountId": { + "audienceType": { + "type": "string", + "enum": ["EMAIL", "DEVICE_ID", "IP_ADDRESS"], + "default": "EMAIL" + }, + "audienceId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$" }, - "audienceType": { "type": "string", "pattern": "^(EMAIL|DEVICE_ID|IP_ADDRESS)$" }, - "seedListType": { "type": "string", "pattern": "^(GPADVID|IDFA)$" }, - "hashRequired": { "type": "boolean" }, + "hashRequired": { "type": "boolean", "default": true }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -35,6 +38,20 @@ } } } - } + }, + "anyOf": [ + { + "if": { + "properties": { "audienceType": { "const": "DEVICE_ID" } }, + "required": ["audienceType"] + }, + "then": { + "properties": { + "seedListType": { "type": "string", "enum": ["GPADVID", "IDFA"], "default": "GPADVID" } + }, + "required": ["seedListType"] + } + } + ] } } diff --git a/src/configurations/destinations/yahoo_dsp/ui-config.json b/src/configurations/destinations/yahoo_dsp/ui-config.json index 94866cca1..3337b7eda 100644 --- a/src/configurations/destinations/yahoo_dsp/ui-config.json +++ b/src/configurations/destinations/yahoo_dsp/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Client Id", "value": "clientId", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Client Id", "required": true, "placeholder": "e.g. b05ebeb8-a223-3cd6-z4c5-9512d3d66d431", @@ -18,7 +18,7 @@ "type": "textInput", "label": "Client Secret", "value": "clientSecret", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Client Secret", "required": true, "placeholder": "e.g: XpewiPsz3yc9LrADR43f9h53jADLccXTykHCcA6eEoFR4rXQ", @@ -34,7 +34,7 @@ "type": "textInput", "label": "Account Id", "value": "accountId", - "regex": "^[0-9]+$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$", "regexErrorMessage": "Invalid Account Id", "required": true, "placeholder": "e.g. 84223", @@ -77,7 +77,7 @@ "type": "textInput", "label": "Audience Id", "value": "audienceId", - "regex": "^[0-9]+$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$", "regexErrorMessage": "Invalid Audience Id", "required": true, "placeholder": "e.g. 53213445", @@ -110,6 +110,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/yandex_metrica/schema.json b/src/configurations/destinations/yandex_metrica/schema.json index 2c77637c9..4d3723dc0 100644 --- a/src/configurations/destinations/yandex_metrica/schema.json +++ b/src/configurations/destinations/yandex_metrica/schema.json @@ -1,17 +1,17 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["tagId"], + "type": "object", "properties": { "tagId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "clickMap": { "type": "boolean" }, - "trackLinks": { "type": "boolean" }, - "trackBounce": { "type": "boolean" }, - "webvisor": { "type": "boolean" }, + "clickMap": { "type": "boolean", "default": false }, + "trackLinks": { "type": "boolean", "default": false }, + "trackBounce": { "type": "boolean", "default": false }, + "webvisor": { "type": "boolean", "default": false }, "containerName": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" @@ -25,21 +25,20 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "to": { - "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" - } + "to": { "type": "string", "enum": ["detail", "add", "remove", "purchase", ""] } } } }, - "eventFilteringOption": { - "type": "string", - "pattern": "(^env[.].+)|^(disable|whitelistedEvents|blacklistedEvents)$" - }, "goalId": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$" }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, "whitelistedEvents": { "type": "array", "items": { @@ -64,7 +63,6 @@ } } }, - "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/yandex_metrica/ui-config.json b/src/configurations/destinations/yandex_metrica/ui-config.json index c2828d2b2..831c5ec4a 100644 --- a/src/configurations/destinations/yandex_metrica/ui-config.json +++ b/src/configurations/destinations/yandex_metrica/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Tag ID", "value": "tagId", - "regex": "^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Tag ID, example value 56252632", "required": true, "placeholder": "e.g. 56252632", @@ -51,7 +51,7 @@ "type": "textInput", "label": "Container name", "value": "containerName", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid Container name", "required": false, "placeholder": "e.g. dataLayer", @@ -91,7 +91,7 @@ "type": "textInput", "label": "Goal ID", "value": "goalId", - "regex": "^[0-9]+$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$", "regexErrorMessage": "Invalid Goal ID", "required": false, "placeholder": "e.g. 263922671", @@ -146,6 +146,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Anonymous Page Visit" } @@ -159,6 +160,7 @@ { "type": "textInput", "value": "eventName", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "required": false, "placeholder": "e.g: Credit Card Added" } @@ -178,6 +180,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/zapier/schema.json b/src/configurations/destinations/zapier/schema.json index 02affeed9..bdf30bde7 100644 --- a/src/configurations/destinations/zapier/schema.json +++ b/src/configurations/destinations/zapier/schema.json @@ -1,8 +1,8 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["zapUrl"], + "type": "object", "properties": { "zapUrl": { "type": "string", diff --git a/src/configurations/destinations/zapier/ui-config.json b/src/configurations/destinations/zapier/ui-config.json index 868295f79..4532fb85c 100644 --- a/src/configurations/destinations/zapier/ui-config.json +++ b/src/configurations/destinations/zapier/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Zap URL", "value": "zapUrl", - "regex": "(?!.*\\.ngrok\\.io)^(.{1,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,100})$", "regexErrorMessage": "Invalid Zap URL", "required": true, "placeholder": "e.g. https://hooks.zapier.com/hooks/catch/123456/abcdefg/", @@ -54,6 +54,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/src/configurations/destinations/zendesk/schema.json b/src/configurations/destinations/zendesk/schema.json index 47acc678a..0857dc53c 100644 --- a/src/configurations/destinations/zendesk/schema.json +++ b/src/configurations/destinations/zendesk/schema.json @@ -1,26 +1,26 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["email", "apiToken", "domain"], "type": "object", "additionalProperties": false, - "required": ["email", "apiToken", "domain"], "properties": { "email": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "apiToken": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, "domain": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" }, - "createUsersAsVerified": { "type": "boolean" }, - "sendGroupCallsWithoutUserId": { "type": "boolean" }, - "removeUsersFromOrganization": { "type": "boolean" }, - "searchByExternalId": { "type": "boolean" }, + "createUsersAsVerified": { "type": "boolean", "default": false }, + "sendGroupCallsWithoutUserId": { "type": "boolean", "default": false }, + "removeUsersFromOrganization": { "type": "boolean", "default": false }, + "searchByExternalId": { "type": "boolean", "default": false }, "oneTrustCookieCategories": { "type": "array", "items": { diff --git a/src/configurations/destinations/zendesk/ui-config.json b/src/configurations/destinations/zendesk/ui-config.json index 4a61ed791..1c8db35bf 100644 --- a/src/configurations/destinations/zendesk/ui-config.json +++ b/src/configurations/destinations/zendesk/ui-config.json @@ -7,7 +7,7 @@ "type": "textInput", "label": "Email", "value": "email", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Email Address", "required": true, "placeholder": "e.g: abc@xyz.com" @@ -16,7 +16,7 @@ "type": "textInput", "label": "API Token", "value": "apiToken", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid API Token", "required": true, "placeholder": "API Token for Zendesk login", @@ -26,7 +26,7 @@ "type": "textInput", "label": "Zendesk Subdomain", "value": "domain", - "regex": "^(.{0,100})$", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", "regexErrorMessage": "Invalid Zendesk Subdomain", "required": true, "placeholder": "Subdomain only not including .zendesk.com" @@ -70,6 +70,7 @@ "type": "textInput", "placeholder": "Marketing", "value": "oneTrustCookieCategory", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "label": "Category Name/ID", "required": false } diff --git a/test/data/validation/destinations/pinterest_tag.json b/test/data/validation/destinations/pinterest_tag.json index b8ba4513c..5cd470bd6 100644 --- a/test/data/validation/destinations/pinterest_tag.json +++ b/test/data/validation/destinations/pinterest_tag.json @@ -21,7 +21,7 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, @@ -47,7 +47,7 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, @@ -74,12 +74,15 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, "result": false, - "err": ["advertiserId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\""] + "err": [ + "advertiserId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\"", + " must match \"then\" schema" + ] }, { "config": { @@ -100,7 +103,7 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, @@ -127,13 +130,14 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, "result": false, "err": [ - "deduplicationKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$\"" + "deduplicationKey must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\"", + " must match \"then\" schema" ] }, { @@ -159,12 +163,15 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, "result": false, - "err": ["adAccountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\""] + "err": [ + "adAccountId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]*$\"", + " must match \"then\" schema" + ] }, { "config": { @@ -189,13 +196,14 @@ "eventsMapping": [ { "from": "Track Ping", - "to": "ping" + "to": "Lead" } ] }, "result": false, "err": [ - "conversionToken must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,101})$\"" + "conversionToken must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,101})$\"", + " must match \"then\" schema" ] } ] diff --git a/test/data/validation/destinations/quora_pixel.json b/test/data/validation/destinations/quora_pixel.json index 162099b45..33e337155 100644 --- a/test/data/validation/destinations/quora_pixel.json +++ b/test/data/validation/destinations/quora_pixel.json @@ -5,7 +5,7 @@ "eventsToQPEvents": [ { "from": "Order Completed", - "to": "Initiate Checkout" + "to": "InitiateCheckout" } ], "eventFilteringOption": "disable", @@ -30,7 +30,7 @@ "eventsToQPEvents": [ { "from": "Order Completed", - "to": "Initiate Checkout" + "to": "InitiateCheckout" }, { "from": "Anonymous Page Visit", @@ -38,7 +38,7 @@ }, { "from": "Credit Card Added", - "to": "Add Payment Info" + "to": "AddPaymentInfo" } ], "eventFilteringOption": "whitelistedEvents", @@ -53,7 +53,7 @@ "eventsToQPEvents": [ { "from": "Order Completed", - "to": "Initiate Checkout" + "to": "InitiateCheckout" } ], "eventFilteringOption": "disable", @@ -69,7 +69,7 @@ "eventsToQPEvents": [ { "from": "Order Completed", - "to": "Initiate Checkout" + "to": "InitiateCheckout" } ], "eventFilteringOption": "disable", @@ -84,7 +84,7 @@ "eventsToQPEvents": [ { "from": "Order Completed", - "to": "Initiate Checkout" + "to": "InitiateCheckout" } ], "eventFilteringOption": "disable", diff --git a/test/data/validation/destinations/rs.json b/test/data/validation/destinations/rs.json index 364cc27eb..0e70b6fec 100644 --- a/test/data/validation/destinations/rs.json +++ b/test/data/validation/destinations/rs.json @@ -12,6 +12,7 @@ "useRudderStorage": false, "useSTSTokens": false, "bucketName": "test-bucket", + "roleBasedAuth": false, "accessKeyID": "", "accessKey": "" }, @@ -28,10 +29,12 @@ "syncFrequency": "30", "enableSSE": false, "useRudderStorage": false, + "roleBasedAuth": true, "useSTSTokens": false, "bucketName": "test-bucket", "accessKeyID": "test-access-key-id", - "accessKey": "test-access-key" + "accessKey": "test-access-key", + "iamRoleARN": "fdsf" }, "result": true }, @@ -69,7 +72,12 @@ "roleBasedAuth": true }, "result": false, - "err": [" must have required property 'iamRoleARN'", " must match \"then\" schema"] + "err": [ + "roleBasedAuth must be equal to constant", + " must have required property 'iamRoleARN'", + " must match a schema in anyOf", + " must match \"then\" schema" + ] }, { "config": { @@ -84,12 +92,13 @@ "useRudderStorage": false, "useSTSTokens": false, "bucketName": "{{}}", + "roleBasedAuth": false, "accessKeyID": "test-access-key-id", "accessKey": "test-access-key" }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)\"", + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)\"", " must match \"then\" schema" ] }, @@ -106,6 +115,7 @@ "useRudderStorage": false, "useSTSTokens": false, "bucketName": "{{ TEST_BUCKET }}", + "roleBasedAuth": false, "accessKeyID": "test-access-key-id", "accessKey": "test-access-key" }, @@ -124,13 +134,14 @@ "useRudderStorage": false, "useSTSTokens": false, "syncFrequency": "30", + "roleBasedAuth": false, "bucketName": "ab..ab", "accessKeyID": "test-access-key-id", "accessKey": "test-access-key" }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)\"", + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$|(^\\{\\{.+\\}\\}$)\"", " must match \"then\" schema" ] }, @@ -149,6 +160,7 @@ "useRudderStorage": false, "bucketName": "{{ TEST_BUCKET }}", "prefix": "rudder", + "roleBasedAuth": false, "accessKeyID": "test-access-key-id", "accessKey": "test-access-key", "useSTSTokens": false @@ -174,6 +186,7 @@ "useRudderStorage": false, "bucketName": "{{ TEST_BUCKET }}", "prefix": "rudder", + "roleBasedAuth": false, "accessKeyID": "test-access-key-id", "accessKey": "test-access-key", "useSTSTokens": false diff --git a/test/data/validation/destinations/s3.json b/test/data/validation/destinations/s3.json index a0778242d..b152afda2 100644 --- a/test/data/validation/destinations/s3.json +++ b/test/data/validation/destinations/s3.json @@ -5,6 +5,7 @@ "prefix": "load-GA", "accessKeyID": "test-access-key-id", "accessKey": "test-access-key", + "roleBasedAuth": false, "enableSSE": false }, "result": true @@ -16,6 +17,7 @@ "accessKey": "test-access-key", "enableSSE": true, "testConnection": false, + "roleBasedAuth": false, "testConnectionTS": 1627655059687 }, "result": false, @@ -26,6 +28,7 @@ "bucketName": "iqw.btex.deltalake.production", "accessKeyID": "test-access-key-id", "accessKey": "test-access-key", + "roleBasedAuth": false, "enableSSE": true }, "result": true @@ -34,6 +37,7 @@ "config": { "bucketName": "iqw.btex.deltalake.production", "prefix": "tashforcenonsse/app_events/", + "roleBasedAuth": false, "accessKeyID": "test-access-key-id", "accessKey": "test-access-key" }, @@ -44,6 +48,7 @@ "bucketName": "iqw.btex.deltalake.production", "prefix": ["p1", "p2"], "accessKeyID": "test-access-key-id", + "roleBasedAuth": false, "accessKey": "test-access-key", "enableSSE": false }, @@ -57,6 +62,7 @@ "p1qpqowoeujdjhfsjcbcnfhhruthgdhdhffpoahwbseytxyideodjfwoefhdwofwbqbckjqowjhdbsjhdhdbfdefbvbswdbswvdwvuqvqooiwqdwcwewef", "p2" ], + "roleBasedAuth": false, "accessKeyID": "test-access-key-id", "accessKey": "test-access-key", "enableSSE": false diff --git a/test/data/validation/destinations/s3_datalake.json b/test/data/validation/destinations/s3_datalake.json index f35dd384e..50477f6f3 100644 --- a/test/data/validation/destinations/s3_datalake.json +++ b/test/data/validation/destinations/s3_datalake.json @@ -64,7 +64,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" ] }, { @@ -93,7 +93,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" ] }, { @@ -109,7 +109,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" ] }, { @@ -125,7 +125,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" ] }, { @@ -141,7 +141,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"" ] } ] diff --git a/test/data/validation/destinations/sendinblue.json b/test/data/validation/destinations/sendinblue.json index 708b9fd2f..136d25b6a 100644 --- a/test/data/validation/destinations/sendinblue.json +++ b/test/data/validation/destinations/sendinblue.json @@ -83,7 +83,9 @@ }, "result": false, "err": [ - "templateId must match pattern \"(^\\{\\{.*\\|\\|(.*?)\\}\\}$)|(^env[.].+)|^[0-9]+$|^$\"" + "templateId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^[0-9]+$\"", + " must match \"then\" schema", + " must match a schema in anyOf" ] }, { @@ -95,7 +97,11 @@ "redirectionUrl": "https://my.sendinblue.com/" }, "result": false, - "err": ["templateId must be string"] + "err": [ + "templateId must be string", + " must match \"then\" schema", + " must match a schema in anyOf" + ] }, { "config": { @@ -107,7 +113,9 @@ }, "result": false, "err": [ - "redirectionUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$|^$\"" + "redirectionUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(?:http(s)?:\\/\\/)?[\\w.-]+(?:\\.[\\w\\.-]+)+[\\w\\-\\._~:/?#[\\]@!\\$&'\\(\\)\\*\\+,;=.]+$\"", + " must match \"then\" schema", + " must match a schema in anyOf" ] } ] diff --git a/test/data/validation/destinations/shynet.json b/test/data/validation/destinations/shynet.json index ab7eedf51..3096f67e5 100644 --- a/test/data/validation/destinations/shynet.json +++ b/test/data/validation/destinations/shynet.json @@ -29,7 +29,7 @@ "shynetServiceUrl": "" }, "err": [ - "shynetServiceUrl must match pattern \"^(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$\"" + "shynetServiceUrl must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|(?!.*\\.ngrok\\.io)^(.{1,300})$\"" ] } ] diff --git a/test/data/validation/destinations/snowflake.json b/test/data/validation/destinations/snowflake.json index 59efeb44c..be514ee0f 100644 --- a/test/data/validation/destinations/snowflake.json +++ b/test/data/validation/destinations/snowflake.json @@ -10,6 +10,7 @@ "syncFrequency": "30", "enableSSE": false, "useRudderStorage": false, + "roleBasedAuth": false, "prefix": "test-prefix", "useSTSTokens": false, "bucketName": "test-bucket", @@ -48,6 +49,7 @@ "syncFrequency": "30", "enableSSE": false, "useRudderStorage": false, + "roleBasedAuth": false, "prefix": "test-prefix", "useSTSTokens": false, "bucketName": "test-bucket" @@ -57,7 +59,7 @@ " must have required property 'accessKeyID'", " must have required property 'accessKey'", " must have required property 'iamRoleARN'", - " must have required property 'roleBasedAuth'", + "roleBasedAuth must be equal to constant", " must match a schema in anyOf", " must match \"then\" schema" ] @@ -73,6 +75,7 @@ "syncFrequency": "30", "enableSSE": false, "useRudderStorage": false, + "roleBasedAuth": false, "prefix": "test-prefix", "useSTSTokens": false, "bucketName": "test-bucket", @@ -82,7 +85,7 @@ "err": [ " must have required property 'accessKey'", " must have required property 'iamRoleARN'", - " must have required property 'roleBasedAuth'", + "roleBasedAuth must be equal to constant", " must match a schema in anyOf", " must match \"then\" schema" ] @@ -107,6 +110,7 @@ "err": [ " must have required property 'accessKeyID'", " must have required property 'accessKey'", + "roleBasedAuth must be equal to constant", " must have required property 'iamRoleARN'", " must match a schema in anyOf", " must match \"then\" schema" @@ -124,6 +128,7 @@ "syncFrequency": "30", "enableSSE": false, "useRudderStorage": false, + "roleBasedAuth": false, "prefix": "test-prefix", "useSTSTokens": false, "bucketName": "test-bucket", @@ -142,6 +147,8 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, + "storageIntegration": "gcp_int", "prefix": "", "cloudProvider": "GCP", "bucketName": "test-bucket", @@ -166,6 +173,10 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, + "sasToken": "sas-token", + "useSASTokens": false, + "storageIntegration": "gcp_int", "cloudProvider": "AZURE", "containerName": "test-container", "accountName": "test-account-name", @@ -184,7 +195,9 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, "cloudProvider": "AZURE", + "storageIntegration": "gcp_int", "containerName": "test-container", "accountName": "test-account-name", "accountKey": "test-azure-account-key", @@ -204,7 +217,9 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, "cloudProvider": "AZURE", + "storageIntegration": "gcp_int", "containerName": "test-container", "accountName": "test-account-name", "accountKey": "", @@ -224,7 +239,9 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, "cloudProvider": "AZURE", + "storageIntegration": "gcp_int", "containerName": "test-container", "accountName": "test-account-name", "accountKey": "test-azure-account-key", @@ -244,6 +261,8 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, + "storageIntegration": "gcp_int", "cloudProvider": "AZURE", "containerName": "test-container", "accountName": "test-account-name", @@ -264,6 +283,8 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, + "storageIntegration": "gcp_int", "cloudProvider": "AZURE", "containerName": "test-container", "accountName": "test-account-name", @@ -289,6 +310,8 @@ "cloudProvider": "AWS", "enableSSE": false, "useRudderStorage": false, + "roleBasedAuth": false, + "storageIntegration": "gcp_int", "prefix": "test-prefix", "useSTSTokens": false, "syncFrequency": "30", @@ -298,7 +321,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"", + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!^xn--)(?!.*\\.\\..*)(?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$\"", " must match \"then\" schema" ] }, @@ -312,9 +335,11 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, "prefix": "test-prefix", "cloudProvider": "GCP", "bucketName": "test..bucket", + "storageIntegration": "gcp_int", "endPoint": "", "useSSL": true, "credentials": "{}", @@ -326,7 +351,7 @@ }, "result": false, "err": [ - "bucketName must match pattern \"(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"", + "bucketName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$\"", " must match \"then\" schema" ] }, @@ -340,16 +365,20 @@ "sslMode": "disable", "syncFrequency": "30", "useRudderStorage": false, + "roleBasedAuth": false, "prefix": "test-prefix", "cloudProvider": "AZURE", "containerName": "test--container", "accountName": "test-account-name", + "useSASTokens": true, + "storageIntegration": "gcp_int", + "sasToken": "sas-token", "accountKey": "test-azure-account-key", "useSSL": true }, "result": false, "err": [ - "containerName must match pattern \"(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"", + "containerName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$\"", " must match \"then\" schema" ] } diff --git a/test/data/validation/destinations/tiktok_ads_offline_events.json b/test/data/validation/destinations/tiktok_ads_offline_events.json index c01687f35..0b26387f3 100644 --- a/test/data/validation/destinations/tiktok_ads_offline_events.json +++ b/test/data/validation/destinations/tiktok_ads_offline_events.json @@ -6,15 +6,15 @@ "eventsToStandard": [ { "from": "a", - "to": "a" + "to": "Subscribe" }, { "from": "b", - "to": "b" + "to": "Subscribe" }, { "from": "c", - "to": "c" + "to": "Subscribe" } ] }, @@ -26,15 +26,15 @@ "eventsToStandard": [ { "from": "a", - "to": "a" + "to": "Subscribe" }, { "from": "b", - "to": "b" + "to": "Subscribe" }, { "from": "c", - "to": "c" + "to": "Subscribe" } ] }, diff --git a/test/data/validation/destinations/vero.json b/test/data/validation/destinations/vero.json index 41147699c..75be927e5 100644 --- a/test/data/validation/destinations/vero.json +++ b/test/data/validation/destinations/vero.json @@ -8,7 +8,7 @@ "web": [{ "eventName": "Pin Generated" }, { "eventName": "Pin Expired" }] }, "whitelistedEvents": { "web": [{ "eventName": "" }] }, - "eventFilteringOption": { "web": "blacklistedEvents" }, + "eventFilteringOption": "blacklistedEvents", "oneTrustCookieCategories": [ { "oneTrustCookieCategory": "Sales" }, { "oneTrustCookieCategory": "Marketing" } diff --git a/test/data/validation/destinations/woopra.json b/test/data/validation/destinations/woopra.json index 61ea5ae7d..3deb0705e 100644 --- a/test/data/validation/destinations/woopra.json +++ b/test/data/validation/destinations/woopra.json @@ -30,6 +30,8 @@ "outgoingTracking": true }, "result": false, - "err": ["projectName must match pattern \"^(([a-z0-9]+[.])+[a-z]{1,})$\""] + "err": [ + "projectName must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(([a-z0-9]+[.])+[a-z]{1,})$\"" + ] } ] diff --git a/test/data/validation/destinations/yahoo_dsp.json b/test/data/validation/destinations/yahoo_dsp.json index 79eafedfc..75a688944 100644 --- a/test/data/validation/destinations/yahoo_dsp.json +++ b/test/data/validation/destinations/yahoo_dsp.json @@ -71,7 +71,7 @@ "hashRequired": false }, "result": false, - "err": ["audienceType must match pattern \"^(EMAIL|DEVICE_ID|IP_ADDRESS)$\""] + "err": ["audienceType must be equal to one of the allowed values"] }, { "config": { @@ -84,7 +84,11 @@ "hashRequired": false }, "result": false, - "err": ["seedListType must match pattern \"^(GPADVID|IDFA)$\""] + "err": [ + "seedListType must be equal to one of the allowed values", + " must match \"then\" schema", + " must match a schema in anyOf" + ] }, { "config": { @@ -93,6 +97,7 @@ "audienceId": "138383", "accountId": "53421", "audienceType": "DEVICE_ID", + "seedListType": "GPADVID", "hashRequired": "" }, "result": false, diff --git a/test/data/validation/destinations/yandex_metrica.json b/test/data/validation/destinations/yandex_metrica.json index ba8b7ef72..44907ed0a 100644 --- a/test/data/validation/destinations/yandex_metrica.json +++ b/test/data/validation/destinations/yandex_metrica.json @@ -158,7 +158,10 @@ "useNativeSDK": { "web": false } }, "result": false, - "err": ["eventFilteringOption must be string"] + "err": [ + "eventFilteringOption must be string", + "eventFilteringOption must be equal to one of the allowed values" + ] }, { "config": { From 85132bb3328468837c85e4225a8a290bc8ed7d6a Mon Sep 17 00:00:00 2001 From: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> Date: Thu, 17 Aug 2023 10:23:35 +0530 Subject: [PATCH 02/17] feat: add support for test events for Pinterest (#811) --- .../destinations/pinterest_tag/db-config.json | 1 + src/configurations/destinations/pinterest_tag/schema.json | 1 + .../destinations/pinterest_tag/ui-config.json | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/src/configurations/destinations/pinterest_tag/db-config.json b/src/configurations/destinations/pinterest_tag/db-config.json index 495881103..944a64ef4 100644 --- a/src/configurations/destinations/pinterest_tag/db-config.json +++ b/src/configurations/destinations/pinterest_tag/db-config.json @@ -42,6 +42,7 @@ "advertiserId", "apiVersion", "adAccountId", + "sendAsTestEvent", "conversionToken", "sendingUnHashedData", "enableDeduplication", diff --git a/src/configurations/destinations/pinterest_tag/schema.json b/src/configurations/destinations/pinterest_tag/schema.json index 6b71c7877..fdf60deed 100644 --- a/src/configurations/destinations/pinterest_tag/schema.json +++ b/src/configurations/destinations/pinterest_tag/schema.json @@ -12,6 +12,7 @@ "enhancedMatch": { "type": "boolean", "default": true }, "sendExternalId": { "type": "boolean", "default": false }, "sendAsCustomEvent": { "type": "boolean", "default": false }, + "sendAsTestEvent": { "type": "boolean", "default": false }, "customProperties": { "type": "array", "items": { diff --git a/src/configurations/destinations/pinterest_tag/ui-config.json b/src/configurations/destinations/pinterest_tag/ui-config.json index 67fe4e379..ff5d91894 100644 --- a/src/configurations/destinations/pinterest_tag/ui-config.json +++ b/src/configurations/destinations/pinterest_tag/ui-config.json @@ -90,6 +90,13 @@ { "title": "Other Settings", "fields": [ + { + "type": "checkbox", + "label": "Send as a test event", + "value": "sendAsTestEvent", + "default": false, + "footerNote": "Send the request as a test request. The events will not be recorded" + }, { "type": "checkbox", "label": "Enable hashing for user data conversions", From ea713323c6e15ca217cf8b6e7e57766da1a792b1 Mon Sep 17 00:00:00 2001 From: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> Date: Thu, 17 Aug 2023 13:30:15 +0530 Subject: [PATCH 03/17] chore: cleanup unused sdk includeKeys (#783) Co-authored-by: Ujjwal Abhishek <63387036+ujjwal-ab@users.noreply.github.com> --- src/configurations/destinations/am/db-config.json | 4 +--- src/configurations/destinations/bugsnag/db-config.json | 3 +-- src/configurations/destinations/clevertap/db-config.json | 2 -- .../destinations/facebook_pixel/db-config.json | 1 - src/configurations/destinations/lemnisk/db-config.json | 8 -------- src/configurations/destinations/lytics/db-config.json | 1 - src/configurations/destinations/mp/db-config.json | 1 - .../destinations/pinterest_tag/db-config.json | 2 -- src/configurations/destinations/sendinblue/db-config.json | 4 ---- src/configurations/destinations/tiktok_ads/db-config.json | 5 ----- src/configurations/destinations/vero/db-config.json | 1 - 11 files changed, 2 insertions(+), 30 deletions(-) diff --git a/src/configurations/destinations/am/db-config.json b/src/configurations/destinations/am/db-config.json index 6b538aee0..ed28cb890 100644 --- a/src/configurations/destinations/am/db-config.json +++ b/src/configurations/destinations/am/db-config.json @@ -41,9 +41,7 @@ "oneTrustCookieCategories", "eventFilteringOption", "mapDeviceBrand", - "residencyServer", - "userProvidedPageEventString", - "useUserDefinedPageEventName" + "residencyServer" ], "excludeKeys": [], "supportedSourceTypes": [ diff --git a/src/configurations/destinations/bugsnag/db-config.json b/src/configurations/destinations/bugsnag/db-config.json index 799687cbd..1ae295ac7 100644 --- a/src/configurations/destinations/bugsnag/db-config.json +++ b/src/configurations/destinations/bugsnag/db-config.json @@ -8,7 +8,6 @@ "includeKeys": [ "apiKey", "releaseStage", - "ssl", "blacklistedEvents", "whitelistedEvents", "oneTrustCookieCategories", @@ -26,7 +25,7 @@ ], "android": ["useNativeSDK"], "ios": ["useNativeSDK"], - "web": ["useNativeSDK", "releaseStage", "ssl"] + "web": ["useNativeSDK", "releaseStage"] }, "secretKeys": ["apiKey"] } diff --git a/src/configurations/destinations/clevertap/db-config.json b/src/configurations/destinations/clevertap/db-config.json index baf9768d4..24ad48eb1 100644 --- a/src/configurations/destinations/clevertap/db-config.json +++ b/src/configurations/destinations/clevertap/db-config.json @@ -10,8 +10,6 @@ "accountToken", "passcode", "region", - "trackAnonymous", - "enableObjectIdMapping", "blacklistedEvents", "whitelistedEvents", "oneTrustCookieCategories", diff --git a/src/configurations/destinations/facebook_pixel/db-config.json b/src/configurations/destinations/facebook_pixel/db-config.json index 459ab86e5..0f29c07a2 100644 --- a/src/configurations/destinations/facebook_pixel/db-config.json +++ b/src/configurations/destinations/facebook_pixel/db-config.json @@ -18,7 +18,6 @@ "whitelistedEvents", "oneTrustCookieCategories", "eventFilteringOption", - "removeExternalId", "useUpdatedMapping", "ketchConsentPurposes" ], diff --git a/src/configurations/destinations/lemnisk/db-config.json b/src/configurations/destinations/lemnisk/db-config.json index bd28589f8..bb556efee 100644 --- a/src/configurations/destinations/lemnisk/db-config.json +++ b/src/configurations/destinations/lemnisk/db-config.json @@ -6,14 +6,6 @@ "transformAtV1": "processor", "saveDestinationResponse": true, "includeKeys": [ - "apiKey", - "passKey", - "cloudMode", - "diapi", - "pl", - "diapiWriteKey", - "plWriteKey", - "srcId", "sdkWriteKey", "accountId", "whitelistedEvents", diff --git a/src/configurations/destinations/lytics/db-config.json b/src/configurations/destinations/lytics/db-config.json index 418b21bb4..bdbdf67db 100644 --- a/src/configurations/destinations/lytics/db-config.json +++ b/src/configurations/destinations/lytics/db-config.json @@ -8,7 +8,6 @@ "saveDestinationResponse": true, "includeKeys": [ "accountId", - "apiKey", "stream", "blockload", "loadid", diff --git a/src/configurations/destinations/mp/db-config.json b/src/configurations/destinations/mp/db-config.json index e2f4d340a..a6c06d36a 100644 --- a/src/configurations/destinations/mp/db-config.json +++ b/src/configurations/destinations/mp/db-config.json @@ -27,7 +27,6 @@ "whitelistedEvents", "oneTrustCookieCategories", "eventFilteringOption", - "useNewMapping", "identityMergeApi" ], "excludeKeys": [], diff --git a/src/configurations/destinations/pinterest_tag/db-config.json b/src/configurations/destinations/pinterest_tag/db-config.json index 944a64ef4..2facb5588 100644 --- a/src/configurations/destinations/pinterest_tag/db-config.json +++ b/src/configurations/destinations/pinterest_tag/db-config.json @@ -8,8 +8,6 @@ "saveDestinationResponse": false, "includeKeys": [ "tagId", - "advertiserId", - "appId", "customProperties", "sendAsCustomEvent", "eventsMapping", diff --git a/src/configurations/destinations/sendinblue/db-config.json b/src/configurations/destinations/sendinblue/db-config.json index 5ea56dec5..15dc610b9 100644 --- a/src/configurations/destinations/sendinblue/db-config.json +++ b/src/configurations/destinations/sendinblue/db-config.json @@ -6,11 +6,7 @@ "transformAtV1": "router", "saveDestinationResponse": true, "includeKeys": [ - "apiKey", "clientKey", - "doi", - "templateId", - "redirectionUrl", "contactAttributeMapping", "sendTraitsInTrack", "whitelistedEvents", diff --git a/src/configurations/destinations/tiktok_ads/db-config.json b/src/configurations/destinations/tiktok_ads/db-config.json index 22ace4488..233f9ad31 100644 --- a/src/configurations/destinations/tiktok_ads/db-config.json +++ b/src/configurations/destinations/tiktok_ads/db-config.json @@ -6,7 +6,6 @@ "transformAtV1": "router", "saveDestinationResponse": true, "includeKeys": [ - "accessToken", "pixelCode", "hashUserProperties", "eventsToStandard", @@ -14,10 +13,6 @@ "whitelistedEvents", "eventFilteringOption", "oneTrustCookieCategories", - "blacklistedEvents", - "whitelistedEvents", - "oneTrustCookieCategories", - "eventFilteringOption", "ketchConsentPurposes" ], "excludeKeys": [], diff --git a/src/configurations/destinations/vero/db-config.json b/src/configurations/destinations/vero/db-config.json index 7c6029a41..64d167d50 100644 --- a/src/configurations/destinations/vero/db-config.json +++ b/src/configurations/destinations/vero/db-config.json @@ -7,7 +7,6 @@ "saveDestinationResponse": true, "includeKeys": [ "apiKey", - "authToken", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption", From c8dbf4918872acf01abce141e14d107ae2f4b873 Mon Sep 17 00:00:00 2001 From: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> Date: Thu, 17 Aug 2023 13:53:44 +0530 Subject: [PATCH 04/17] feat(INT-151): moving clevertap to router (#831) Co-authored-by: shrouti1507 <60211312+shrouti1507@users.noreply.github.com> --- src/configurations/destinations/clevertap/db-config.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/configurations/destinations/clevertap/db-config.json b/src/configurations/destinations/clevertap/db-config.json index 24ad48eb1..6fcb274ab 100644 --- a/src/configurations/destinations/clevertap/db-config.json +++ b/src/configurations/destinations/clevertap/db-config.json @@ -2,8 +2,8 @@ "name": "CLEVERTAP", "displayName": "CleverTap", "config": { - "transformAt": "processor", - "transformAtV1": "processor", + "transformAt": "router", + "transformAtV1": "router", "saveDestinationResponse": true, "includeKeys": [ "accountId", From 34e07a189f7899c850d4ab14de14bb6b0bc1ac82 Mon Sep 17 00:00:00 2001 From: Sudip Paul <67197965+ItsSudip@users.noreply.github.com> Date: Fri, 18 Aug 2023 08:30:07 +0530 Subject: [PATCH 05/17] feat: enable blueshift for rETL (#842) --- src/configurations/destinations/blueshift/db-config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/configurations/destinations/blueshift/db-config.json b/src/configurations/destinations/blueshift/db-config.json index 67b193108..e3b6a2696 100644 --- a/src/configurations/destinations/blueshift/db-config.json +++ b/src/configurations/destinations/blueshift/db-config.json @@ -13,7 +13,8 @@ "web", "cloud", "mobile", - "shopify" + "shopify", + "warehouse" ], "supportedMessageTypes": [ "identify", From b2ddb5d9a7afd8ce87d8840b6f55801dfe49d49a Mon Sep 17 00:00:00 2001 From: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> Date: Fri, 18 Aug 2023 12:27:54 +0530 Subject: [PATCH 06/17] feat(INT-319): update label to support v2 api token (#829) --- src/configurations/destinations/af/ui-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/destinations/af/ui-config.json b/src/configurations/destinations/af/ui-config.json index fd8399041..977623532 100644 --- a/src/configurations/destinations/af/ui-config.json +++ b/src/configurations/destinations/af/ui-config.json @@ -135,7 +135,7 @@ "value": "apiToken", "placeholder": "c81aaf36-8323-4bb6-b5a8-asdfasdfas4f3c", "secret": true, - "footerNote": "Provide your V1.0 API Token." + "footerNote": "Provide your V2.0 API Token." } ] }, From 3a2b3e191b657b7d2bb2629c6ac882f557c054e4 Mon Sep 17 00:00:00 2001 From: ujjwal-ab Date: Fri, 18 Aug 2023 14:41:04 +0530 Subject: [PATCH 07/17] feat: add flattenproperty field --- .../destinations/klaviyo/db-config.json | 1 + src/configurations/destinations/klaviyo/schema.json | 11 +++-------- .../destinations/klaviyo/ui-config.json | 6 ++++++ test/data/validation/destinations/klaviyo.json | 4 ++++ 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/configurations/destinations/klaviyo/db-config.json b/src/configurations/destinations/klaviyo/db-config.json index 96befb673..36696165c 100644 --- a/src/configurations/destinations/klaviyo/db-config.json +++ b/src/configurations/destinations/klaviyo/db-config.json @@ -40,6 +40,7 @@ "publicApiKey", "privateApiKey", "consent", + "flattenProperties", "listId", "enforceEmailAsPrimary", "blacklistedEvents", diff --git a/src/configurations/destinations/klaviyo/schema.json b/src/configurations/destinations/klaviyo/schema.json index f5d19e2e2..058371bf6 100644 --- a/src/configurations/destinations/klaviyo/schema.json +++ b/src/configurations/destinations/klaviyo/schema.json @@ -16,14 +16,7 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, - "consent": { - "type": "array", - "items": { - "type": "string", - "enum": ["email", "sms"] - }, - "default": ["email"] - }, + "flattenProperties": { "type": "boolean", "default": false }, "enforceEmailAsPrimary": { "type": "boolean", "default": false }, "eventFilteringOption": { "type": "string", @@ -66,6 +59,8 @@ } } }, + "sendPageAsTrack": { "type": "object", "properties": { "web": { "type": "boolean" } } }, + "additionalPageInfo": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "connectionMode": { "type": "object", diff --git a/src/configurations/destinations/klaviyo/ui-config.json b/src/configurations/destinations/klaviyo/ui-config.json index 6de8ab27e..40d005f3c 100644 --- a/src/configurations/destinations/klaviyo/ui-config.json +++ b/src/configurations/destinations/klaviyo/ui-config.json @@ -94,6 +94,12 @@ } ], "default": ["email"] + }, + { + "type": "checkbox", + "label": "Enable this to flatten user/event properties", + "configKey": "flattenProperties", + "default": false } ] }, diff --git a/test/data/validation/destinations/klaviyo.json b/test/data/validation/destinations/klaviyo.json index 2b964ac20..0b04dd619 100644 --- a/test/data/validation/destinations/klaviyo.json +++ b/test/data/validation/destinations/klaviyo.json @@ -4,6 +4,7 @@ "publicApiKey": "fsdf", "listId": "ior6v5j", "enforceEmailAsPrimary": true, + "flattenProperties": true, "consent": ["email", "sms"], "sendPageAsTrack": { "web": true @@ -28,6 +29,7 @@ "publicApiKey": "fsdf", "privateApiKey": "WfO9f1", "listId": "ior6v5j", + "flattenProperties": false, "enforceEmailAsPrimary": true, "consent": ["sms"], "sendPageAsTrack": { @@ -53,6 +55,7 @@ "publicApiKey": "fsdf", "privateApiKey": "WfO9f1", "listId": 4443, + "flattenProperties": false, "enforceEmailAsPrimary": true, "consent": ["sms"], "useNativeSDK": { "web": false }, @@ -79,6 +82,7 @@ "privateApiKey": "WfO9dsffsf1", "listId": "ior6v5j", "enforceEmailAsPrimary": true, + "flattenProperties": false, "consent": ["email"], "smsConsent": false, "sendPageAsTrack": { From 421d7c94d9533b85f4884b3da182da6e3865c403 Mon Sep 17 00:00:00 2001 From: ujjwal-ab Date: Fri, 18 Aug 2023 16:39:23 +0530 Subject: [PATCH 08/17] fix: re-add removed schema for consent --- src/configurations/destinations/klaviyo/schema.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/configurations/destinations/klaviyo/schema.json b/src/configurations/destinations/klaviyo/schema.json index 058371bf6..8aecd4ad8 100644 --- a/src/configurations/destinations/klaviyo/schema.json +++ b/src/configurations/destinations/klaviyo/schema.json @@ -17,6 +17,14 @@ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, "flattenProperties": { "type": "boolean", "default": false }, + "consent": { + "type": "array", + "items": { + "type": "string", + "enum": ["email", "sms"] + }, + "default": ["email"] + }, "enforceEmailAsPrimary": { "type": "boolean", "default": false }, "eventFilteringOption": { "type": "string", From 3d7c9e7525e4c7e107aeaf9e52dbc1739d92f2a8 Mon Sep 17 00:00:00 2001 From: ujjwal-ab Date: Fri, 18 Aug 2023 18:22:57 +0530 Subject: [PATCH 09/17] fix: add flattenProperty field --- .../destinations/klaviyo/ui-config.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/configurations/destinations/klaviyo/ui-config.json b/src/configurations/destinations/klaviyo/ui-config.json index 40d005f3c..6d7411b83 100644 --- a/src/configurations/destinations/klaviyo/ui-config.json +++ b/src/configurations/destinations/klaviyo/ui-config.json @@ -94,12 +94,6 @@ } ], "default": ["email"] - }, - { - "type": "checkbox", - "label": "Enable this to flatten user/event properties", - "configKey": "flattenProperties", - "default": false } ] }, @@ -114,6 +108,12 @@ "configKey": "enforceEmailAsPrimary", "default": false, "note": ["Email is prioritized over phone by klaviyo if both are present"] + }, + { + "type": "checkbox", + "label": "Enable this to flatten user/event properties", + "configKey": "flattenProperties", + "default": false } ] } From b7df821de6014bb4697620db1c0f19524780a080 Mon Sep 17 00:00:00 2001 From: Krishna Chaitanya Date: Mon, 21 Aug 2023 11:37:47 +0530 Subject: [PATCH 10/17] fix: updated with defaults for boolean fields in zendesk schema.json Co-authored-by: Gauravudia <60897972+Gauravudia@users.noreply.github.com> --- src/configurations/destinations/zendesk/schema.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/configurations/destinations/zendesk/schema.json b/src/configurations/destinations/zendesk/schema.json index 8f7ec495f..caeaa1e82 100644 --- a/src/configurations/destinations/zendesk/schema.json +++ b/src/configurations/destinations/zendesk/schema.json @@ -22,16 +22,20 @@ "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" }, "createUsersAsVerified": { - "type": "boolean" + "type": "boolean", + "default": false }, "sendGroupCallsWithoutUserId": { - "type": "boolean" + "type": "boolean", + "default": false }, "removeUsersFromOrganization": { - "type": "boolean" + "type": "boolean", + "default": false }, "searchByExternalId": { - "type": "boolean" + "type": "boolean", + "default": false }, "oneTrustCookieCategories": { "type": "array", From d98d0c334cd49c78ed22b71eb676093e5070dc26 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 21 Aug 2023 07:09:10 +0000 Subject: [PATCH 11/17] chore(release): 1.46.0 --- CHANGELOG.md | 18 ++++++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d66da7d8..0bc83620a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,24 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.46.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.45.2...v1.46.0) (2023-08-21) + + +### Features + +* add flattenproperty field ([3a2b3e1](https://github.com/rudderlabs/rudder-config-schema/commit/3a2b3e191b657b7d2bb2629c6ac882f557c054e4)) +* add support for test events for Pinterest ([#811](https://github.com/rudderlabs/rudder-config-schema/issues/811)) ([85132bb](https://github.com/rudderlabs/rudder-config-schema/commit/85132bb3328468837c85e4225a8a290bc8ed7d6a)) +* enable blueshift for rETL ([#842](https://github.com/rudderlabs/rudder-config-schema/issues/842)) ([34e07a1](https://github.com/rudderlabs/rudder-config-schema/commit/34e07a189f7899c850d4ab14de14bb6b0bc1ac82)) +* **INT-151:** moving clevertap to router ([#831](https://github.com/rudderlabs/rudder-config-schema/issues/831)) ([c8dbf49](https://github.com/rudderlabs/rudder-config-schema/commit/c8dbf4918872acf01abce141e14d107ae2f4b873)) +* **INT-319:** update label to support v2 api token ([#829](https://github.com/rudderlabs/rudder-config-schema/issues/829)) ([b2ddb5d](https://github.com/rudderlabs/rudder-config-schema/commit/b2ddb5d9a7afd8ce87d8840b6f55801dfe49d49a)) + + +### Bug Fixes + +* add flattenProperty field ([3d7c9e7](https://github.com/rudderlabs/rudder-config-schema/commit/3d7c9e7525e4c7e107aeaf9e52dbc1739d92f2a8)) +* re-add removed schema for consent ([421d7c9](https://github.com/rudderlabs/rudder-config-schema/commit/421d7c94d9533b85f4884b3da182da6e3865c403)) +* updated with defaults for boolean fields in zendesk schema.json ([b7df821](https://github.com/rudderlabs/rudder-config-schema/commit/b7df821de6014bb4697620db1c0f19524780a080)) + ### [1.45.2](https://github.com/rudderlabs/rudder-config-schema/compare/v1.45.1...v1.45.2) (2023-08-16) diff --git a/package-lock.json b/package-lock.json index 69d25b683..7f2b3a832 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-config-schema", - "version": "1.45.2", + "version": "1.46.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-config-schema", - "version": "1.45.2", + "version": "1.46.0", "license": "MIT", "dependencies": { "ajv": "^8.12.0", diff --git a/package.json b/package.json index 3c4ad8cd3..c2d4b3024 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-config-schema", - "version": "1.45.2", + "version": "1.46.0", "description": "", "main": "src/index.ts", "private": true, From 7757a2ac60d3203c8ed066376fa3ec64434945c0 Mon Sep 17 00:00:00 2001 From: Sudip Paul <67197965+ItsSudip@users.noreply.github.com> Date: Mon, 21 Aug 2023 13:02:34 +0530 Subject: [PATCH 12/17] fix(blueshift): update supportedSourceTypes (#849) --- CHANGELOG.md | 1 + src/configurations/destinations/blueshift/db-config.json | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bc83620a..1f2a6ac98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ All notable changes to this project will be documented in this file. See [standa * add flattenProperty field ([3d7c9e7](https://github.com/rudderlabs/rudder-config-schema/commit/3d7c9e7525e4c7e107aeaf9e52dbc1739d92f2a8)) * re-add removed schema for consent ([421d7c9](https://github.com/rudderlabs/rudder-config-schema/commit/421d7c94d9533b85f4884b3da182da6e3865c403)) * updated with defaults for boolean fields in zendesk schema.json ([b7df821](https://github.com/rudderlabs/rudder-config-schema/commit/b7df821de6014bb4697620db1c0f19524780a080)) +* update supportedSourceTypes ([b00ab34](https://github.com/rudderlabs/rudder-config-schema/commit/b00ab34899bfe84a5afb71a0a1054c59dd5ddfea)) ### [1.45.2](https://github.com/rudderlabs/rudder-config-schema/compare/v1.45.1...v1.45.2) (2023-08-16) diff --git a/src/configurations/destinations/blueshift/db-config.json b/src/configurations/destinations/blueshift/db-config.json index e3b6a2696..655ef98ae 100644 --- a/src/configurations/destinations/blueshift/db-config.json +++ b/src/configurations/destinations/blueshift/db-config.json @@ -10,9 +10,15 @@ ], "excludeKeys": [], "supportedSourceTypes": [ + "android", + "ios", + "unity", + "amp", + "reactnative", + "flutter", + "cordova", "web", "cloud", - "mobile", "shopify", "warehouse" ], From 2c3971915864d807b13b350e72e3a4b8ca420e0f Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Mon, 21 Aug 2023 18:31:02 +0530 Subject: [PATCH 13/17] chore: updates salesforce to v8.1.3 --- src/configurations/sources/singer_salesforce/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_salesforce/db-config.json b/src/configurations/sources/singer_salesforce/db-config.json index 9cac50330..739eb6a57 100644 --- a/src/configurations/sources/singer_salesforce/db-config.json +++ b/src/configurations/sources/singer_salesforce/db-config.json @@ -7,7 +7,7 @@ "oauthRole": "singer-salesforce" }, "isBeta": false, - "image": "rudderstack/source-salesforce:v4.0.5" + "image": "rudderstack/source-salesforce:v8.1.3" }, "type": "cloudSource" } From acfc98be7f106436e5e69f7a9f59dbf0370dc58d Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Mon, 21 Aug 2023 18:32:02 +0530 Subject: [PATCH 14/17] chore: updates mixpanel to v8.1.2 --- src/configurations/sources/singer_mixpanel/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_mixpanel/db-config.json b/src/configurations/sources/singer_mixpanel/db-config.json index 094cd8b2d..37e03875a 100644 --- a/src/configurations/sources/singer_mixpanel/db-config.json +++ b/src/configurations/sources/singer_mixpanel/db-config.json @@ -3,7 +3,7 @@ "category": "singer-protocol", "displayName": "Mixpanel", "options": { - "image": "rudderstack/source-mixpanel:v5.2.2" + "image": "rudderstack/source-mixpanel:v8.1.2" }, "type": "cloudSource" } From 6f9f51c608be24c10fd981827964a6f983ae5e85 Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Mon, 21 Aug 2023 18:33:09 +0530 Subject: [PATCH 15/17] chore: updates shopify to v8.1.0 --- src/configurations/sources/singer_shopify/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_shopify/db-config.json b/src/configurations/sources/singer_shopify/db-config.json index 34322f146..c0655908d 100644 --- a/src/configurations/sources/singer_shopify/db-config.json +++ b/src/configurations/sources/singer_shopify/db-config.json @@ -3,7 +3,7 @@ "category": "singer-protocol", "displayName": "Shopify", "options": { - "image": "rudderstack/source-shopify:v6.2.3" + "image": "rudderstack/source-shopify:v8.1.0" }, "type": "cloudSource" } From 6b66a935fe6e9eceae22b64d7098c467be5b3885 Mon Sep 17 00:00:00 2001 From: ujjwal-ab Date: Tue, 22 Aug 2023 09:44:55 +0530 Subject: [PATCH 16/17] chore: remove listId from secret field --- src/configurations/destinations/klaviyo/ui-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/destinations/klaviyo/ui-config.json b/src/configurations/destinations/klaviyo/ui-config.json index 6d7411b83..b299363dc 100644 --- a/src/configurations/destinations/klaviyo/ui-config.json +++ b/src/configurations/destinations/klaviyo/ui-config.json @@ -76,7 +76,7 @@ "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", "regexErrorMessage": "Invalid List Id", "placeholder": "e.g: c59e3838", - "secret": true + "secret": false }, { "type": "multiSelect", From 4675bb506d785746bef2578759c3436800b36021 Mon Sep 17 00:00:00 2001 From: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> Date: Tue, 22 Aug 2023 13:27:58 +0530 Subject: [PATCH 17/17] fix: remove discontinued bugsnag config ssl from UI (#854) --- src/configurations/destinations/bugsnag/ui-config.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/configurations/destinations/bugsnag/ui-config.json b/src/configurations/destinations/bugsnag/ui-config.json index 49bced094..4f8ef7df9 100644 --- a/src/configurations/destinations/bugsnag/ui-config.json +++ b/src/configurations/destinations/bugsnag/ui-config.json @@ -87,12 +87,6 @@ "type": "checkbox", "label": "Release Stage. If turned on : Development stage else : Production", "value": "releaseStage" - }, - { - "type": "checkbox", - "label": "SSL", - "value": "ssl", - "default": true } ] },