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 fa0d6abc9..72c8d2d5a 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" @@ -213,10 +213,16 @@ "title": "Consent Settings", "fields": [ { - "type": "dynamicCustomForm", - "value": "oneTrustCookieCategories", + "type": "mappingRows", "label": "OneTrust Cookie Categories", - "customFields": [ + "columns": [ + { + "type": "textInput", + "placeholder": "Marketing", + "value": "oneTrustCookieCategory", + "label": "Category Name/ID", + "required": false + }, { "type": "textInput", "placeholder": "Marketing", 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/stormly/db-config.json b/src/configurations/destinations/stormly/db-config.json new file mode 100644 index 000000000..f9e3f26c6 --- /dev/null +++ b/src/configurations/destinations/stormly/db-config.json @@ -0,0 +1,26 @@ +{ + "name": "STORMLY", + "displayName": "Stormly", + "config": { + "transformAt": "processor", + "transformAtV1": "processor", + "saveDestinationResponse": true, + "includeKeys": ["oneTrustCookieCategories", "apiKey"], + "excludeKeys": [], + "supportedSourceTypes": [ + "android", + "ios", + "web", + "unity", + "amp", + "cloud", + "reactnative", + "flutter", + "cordova", + "warehouse" + ], + "supportedMessageTypes": ["group", "identify", "track"], + "destConfig": { "defaultConfig": ["apiKey", "oneTrustCookieCategories"] }, + "secretKeys": ["apiKey"] + } +} diff --git a/src/configurations/destinations/stormly/metadata.json b/src/configurations/destinations/stormly/metadata.json new file mode 100644 index 000000000..a512ba668 --- /dev/null +++ b/src/configurations/destinations/stormly/metadata.json @@ -0,0 +1,21 @@ +{ + "metadata": { + "primaryCategory": "", + "secondaryCategory": [], + "docLink": "", + "logoPath": "", + "connectionMode": { + "cloud-mode": true + }, + "supportedMethods": { + "cloud-mode": ["track", "identify", "group"] + }, + "releaseStatus": "beta", + "sourceCode": { + "android": { + "github": "", + "version": "v1.0.0" + } + } + } +} diff --git a/src/configurations/destinations/stormly/schema.json b/src/configurations/destinations/stormly/schema.json new file mode 100644 index 000000000..013f7d0d4 --- /dev/null +++ b/src/configurations/destinations/stormly/schema.json @@ -0,0 +1,25 @@ +{ + "configSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "type": "object", + "required": ["apiKey"], + "properties": { + "apiKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "oneTrustCookieCategories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "oneTrustCookieCategory": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } + } + } + } +} diff --git a/src/configurations/destinations/stormly/ui-config.json b/src/configurations/destinations/stormly/ui-config.json new file mode 100644 index 000000000..256890783 --- /dev/null +++ b/src/configurations/destinations/stormly/ui-config.json @@ -0,0 +1,39 @@ +{ + "uiConfig": [ + { + "title": "Audience Settings", + "fields": [ + { + "type": "textInput", + "label": "API Key", + "value": "apiKey", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", + "regexErrorMessage": "Invalid API Key", + "required": true, + "placeholder": "e.g. df789e1bdcaec4d9b3asw2be14527c5a", + "secret": true, + "footerNote": "Your API Key" + } + ] + }, + { + "title": "Consent Settings", + "fields": [ + { + "type": "dynamicCustomForm", + "value": "oneTrustCookieCategories", + "label": "OneTrust Cookie Categories", + "customFields": [ + { + "type": "textInput", + "placeholder": "Marketing", + "value": "oneTrustCookieCategory", + "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 538ed2c10..f677b0b10 100644 --- a/src/configurations/destinations/tiktok_ads/schema.json +++ b/src/configurations/destinations/tiktok_ads/schema.json @@ -1,34 +1,52 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "type": "object", "required": ["pixelCode"], + "type": "object", "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": { @@ -53,14 +71,7 @@ } } }, - "useNativeSDK": { - "type": "object", - "properties": { - "web": { - "type": "boolean" - } - } - }, + "useNativeSDK": { "type": "object", "properties": { "web": { "type": "boolean" } } }, "oneTrustCookieCategories": { "type": "array", "items": { @@ -77,12 +88,7 @@ "type": "array", "items": { "type": "object", - "properties": { - "purpose": { - "type": "string", - "pattern": "^(.{0,100})$" - } - } + "properties": { "purpose": { "type": "string", "pattern": "^(.{0,100})$" } } } } } diff --git a/src/configurations/destinations/tiktok_ads/ui-config.json b/src/configurations/destinations/tiktok_ads/ui-config.json index 5c50fb87f..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 } 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": {