From 6adf47695a2cc314bee6c9b0e24494daebd8511e Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Mon, 8 Jan 2024 10:58:15 +0530 Subject: [PATCH 01/17] chore: updates sendgrid image --- src/configurations/sources/singer_sendgrid/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_sendgrid/db-config.json b/src/configurations/sources/singer_sendgrid/db-config.json index 393f7f44b..9375d1501 100644 --- a/src/configurations/sources/singer_sendgrid/db-config.json +++ b/src/configurations/sources/singer_sendgrid/db-config.json @@ -4,7 +4,7 @@ "displayName": "Sendgrid", "options": { "isBeta": false, - "image": "rudderstack/source-sendgrid:v5.3.0-sendgrid-fixes" + "image": "rudderstack/source-sendgrid:v5.3.0-sendgrid-messages-fixes" }, "type": "cloudSource" } From 6bb6e29318b6c526987dd2488d28a477fab205e8 Mon Sep 17 00:00:00 2001 From: nidhilashkari17 <108564211+nidhilashkari17@users.noreply.github.com> Date: Mon, 8 Jan 2024 13:31:57 +0530 Subject: [PATCH 02/17] fix: update stripe image to fix subscription sync [ETL-239] (#1151) --- src/configurations/sources/singer_stripe/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_stripe/db-config.json b/src/configurations/sources/singer_stripe/db-config.json index 91c75e5d9..cf9cb0d13 100644 --- a/src/configurations/sources/singer_stripe/db-config.json +++ b/src/configurations/sources/singer_stripe/db-config.json @@ -3,7 +3,7 @@ "category": "singer-protocol", "displayName": "Stripe", "options": { - "image": "rudderstack/source-stripe:v6.3.4" + "image": "rudderstack/source-stripe:v8.2.3" }, "type": "cloudSource" } From fc6b0de0415409f93293f51f4cf872f5835aabbf Mon Sep 17 00:00:00 2001 From: Alexandros Milaios Date: Mon, 15 Jan 2024 11:34:00 +0200 Subject: [PATCH 03/17] chore: update wht lib projects to use ssh urls (#1152) --- .../libres360_ecommerce_features/db-config.json | 2 +- .../wht-lib-projects/libres360_shopify_features/db-config.json | 2 +- .../wht-lib-projects/libres360_stripe_features/db-config.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/configurations/wht-lib-projects/libres360_ecommerce_features/db-config.json b/src/configurations/wht-lib-projects/libres360_ecommerce_features/db-config.json index 8e06decff..eedcfebde 100644 --- a/src/configurations/wht-lib-projects/libres360_ecommerce_features/db-config.json +++ b/src/configurations/wht-lib-projects/libres360_ecommerce_features/db-config.json @@ -1,6 +1,6 @@ { "name": "ecommerce_features", - "githubRepoURL": "https://github.com/rudderlabs/profiles-ecommerce-features", + "githubRepoURL": "git@github.com:rudderlabs/profiles-ecommerce-features.git", "description": "ecommerce features", "config": { "sourcesSupported": [ diff --git a/src/configurations/wht-lib-projects/libres360_shopify_features/db-config.json b/src/configurations/wht-lib-projects/libres360_shopify_features/db-config.json index ec18c8bf3..be8210872 100644 --- a/src/configurations/wht-lib-projects/libres360_shopify_features/db-config.json +++ b/src/configurations/wht-lib-projects/libres360_shopify_features/db-config.json @@ -1,6 +1,6 @@ { "name": "shopify_features", - "githubRepoURL": "https://github.com/rudderlabs/profiles-shopify-features", + "githubRepoURL": "git@github.com:rudderlabs/profiles-shopify-features.git", "description": "shopify features", "config": { "sourcesSupported": [ diff --git a/src/configurations/wht-lib-projects/libres360_stripe_features/db-config.json b/src/configurations/wht-lib-projects/libres360_stripe_features/db-config.json index af4076c74..347c5c40b 100644 --- a/src/configurations/wht-lib-projects/libres360_stripe_features/db-config.json +++ b/src/configurations/wht-lib-projects/libres360_stripe_features/db-config.json @@ -1,6 +1,6 @@ { "name": "stripe_features", - "githubRepoURL": "https://github.com/rudderlabs/profiles-stripe-features", + "githubRepoURL": "git@github.com:rudderlabs/profiles-stripe-features.git", "description": "stripe features", "config": { "sourcesSupported": [ From 8cb090672ee6c6a65a96f4f55fd6393f064b504b Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Tue, 16 Jan 2024 16:16:36 +0530 Subject: [PATCH 04/17] chore: updates sendgrid image --- src/configurations/sources/singer_sendgrid/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_sendgrid/db-config.json b/src/configurations/sources/singer_sendgrid/db-config.json index 9375d1501..78ab88f86 100644 --- a/src/configurations/sources/singer_sendgrid/db-config.json +++ b/src/configurations/sources/singer_sendgrid/db-config.json @@ -4,7 +4,7 @@ "displayName": "Sendgrid", "options": { "isBeta": false, - "image": "rudderstack/source-sendgrid:v5.3.0-sendgrid-messages-fixes" + "image": "rudderstack/source-sendgrid:v5.3.0-sendgrid-messages-pagination-fix" }, "type": "cloudSource" } From 4d29a031bf5ae6250180c25b501d6acfb14ba1db Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 16 Jan 2024 18:27:37 +0530 Subject: [PATCH 05/17] chore(release): pull main into develop post release v1.62.1 (#1158) Co-authored-by: devops-github-rudderstack <88187154+devops-github-rudderstack@users.noreply.github.com> Co-authored-by: nidhilashkari17 <108564211+nidhilashkari17@users.noreply.github.com> Co-authored-by: a-rampalli Co-authored-by: GitHub Actions --- CHANGELOG.md | 7 +++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6451eb074..4e9a8bb47 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,13 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +### [1.62.1](https://github.com/rudderlabs/rudder-config-schema/compare/v1.62.0...v1.62.1) (2024-01-16) + + +### Bug Fixes + +* update stripe image to fix subscription sync [ETL-239] ([#1151](https://github.com/rudderlabs/rudder-config-schema/issues/1151)) ([ec443f7](https://github.com/rudderlabs/rudder-config-schema/commit/ec443f7db5f6f22a8bea2cf9a042dfeb750bcec5)) + ## [1.62.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.61.0...v1.62.0) (2024-01-08) diff --git a/package-lock.json b/package-lock.json index 5df3f2437..ec969f2d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-config-schema", - "version": "1.62.0", + "version": "1.62.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-config-schema", - "version": "1.62.0", + "version": "1.62.1", "license": "MIT", "dependencies": { "ajv": "^8.12.0", diff --git a/package.json b/package.json index f020224fb..c4ad46f25 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-config-schema", - "version": "1.62.0", + "version": "1.62.1", "description": "", "main": "src/index.ts", "private": true, From d866682438cf677731b7f5ffe7a76d03a728b899 Mon Sep 17 00:00:00 2001 From: a-rampalli <110388330+a-rampalli@users.noreply.github.com> Date: Tue, 16 Jan 2024 20:03:46 +0530 Subject: [PATCH 06/17] chore: updates hubspot image for testing (#1159) --- src/configurations/sources/singer_hubspot/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_hubspot/db-config.json b/src/configurations/sources/singer_hubspot/db-config.json index 0b1b874e7..d09214ffb 100644 --- a/src/configurations/sources/singer_hubspot/db-config.json +++ b/src/configurations/sources/singer_hubspot/db-config.json @@ -7,7 +7,7 @@ "oauthRole": "hubspot" }, "digest": "sha256:4e4d43d688a81ce3e166b5d7c20c0050101c43f8b50187e0da8d63a37e2b412b", - "image": "rudderstack/source-hubspot:v8.1.10", + "image": "rudderstack/source-hubspot:v6.2.4", "isBeta": false }, "type": "cloudSource" From 7bd2848349092f89f0f5d149cc3051c3347cbb19 Mon Sep 17 00:00:00 2001 From: Anant Jain Date: Wed, 17 Jan 2024 10:44:16 +0530 Subject: [PATCH 07/17] feat: tiktok_ads: support new event version 2.0 --- .../destinations/tiktok_ads/db-config.json | 1 + .../destinations/tiktok_ads/schema.json | 5 +++++ .../destinations/tiktok_ads/ui-config.json | 20 +++++++++++++++++++ .../validation/destinations/tiktok_ads.json | 2 ++ 4 files changed, 28 insertions(+) diff --git a/src/configurations/destinations/tiktok_ads/db-config.json b/src/configurations/destinations/tiktok_ads/db-config.json index d832d678d..7d44db27b 100644 --- a/src/configurations/destinations/tiktok_ads/db-config.json +++ b/src/configurations/destinations/tiktok_ads/db-config.json @@ -34,6 +34,7 @@ "defaultConfig": [ "sendCustomEvents", "accessToken", + "version", "pixelCode", "hashUserProperties", "eventsToStandard", diff --git a/src/configurations/destinations/tiktok_ads/schema.json b/src/configurations/destinations/tiktok_ads/schema.json index 0a6890f35..85566c0aa 100644 --- a/src/configurations/destinations/tiktok_ads/schema.json +++ b/src/configurations/destinations/tiktok_ads/schema.json @@ -8,6 +8,11 @@ "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|.*" }, + "version": { + "type": "string", + "enum": ["v1", "v2"], + "default": "v1" + }, "pixelCode": { "type": "string", "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" diff --git a/src/configurations/destinations/tiktok_ads/ui-config.json b/src/configurations/destinations/tiktok_ads/ui-config.json index b4ce27ca5..9ee826b1d 100644 --- a/src/configurations/destinations/tiktok_ads/ui-config.json +++ b/src/configurations/destinations/tiktok_ads/ui-config.json @@ -3,6 +3,26 @@ { "title": "Connection Settings", "fields": [ + { + "type": "singleSelect", + "label": "Event Version to use", + "value": "version", + "options": [ + { + "name": "Events 1.0 (Will be deprecated by H2'2024)", + "value": "v1" + }, + { + "name": "Events 2.0 (Beta)", + "value": "v2" + } + ], + "defaultOption": { + "name": "Events 1.0 (Will be deprecated by H2'2024)", + "value": "v1" + }, + "footerNote": "Please Select the Events version to use" + }, { "type": "textInput", "label": "Access Token", diff --git a/test/data/validation/destinations/tiktok_ads.json b/test/data/validation/destinations/tiktok_ads.json index e0dd0d8f0..3d6d5bc15 100644 --- a/test/data/validation/destinations/tiktok_ads.json +++ b/test/data/validation/destinations/tiktok_ads.json @@ -1,6 +1,7 @@ [ { "config": { + "version": "v2", "pixelCode": "fuwheirujkvjnkrtgkf", "hashUserProperties": true, "eventsToStandard": [ @@ -22,6 +23,7 @@ }, { "config": { + "version": "v2", "hashUserProperties": true, "eventsToStandard": [ { From 1c83f378732e9c1e2c039d18058f84dc1dcefc87 Mon Sep 17 00:00:00 2001 From: Anant Jain Date: Wed, 17 Jan 2024 20:06:42 +0530 Subject: [PATCH 08/17] chore: small fix --- src/configurations/destinations/tiktok_ads/db-config.json | 1 + 1 file changed, 1 insertion(+) diff --git a/src/configurations/destinations/tiktok_ads/db-config.json b/src/configurations/destinations/tiktok_ads/db-config.json index 7d44db27b..187e22fd8 100644 --- a/src/configurations/destinations/tiktok_ads/db-config.json +++ b/src/configurations/destinations/tiktok_ads/db-config.json @@ -6,6 +6,7 @@ "saveDestinationResponse": true, "includeKeys": [ "pixelCode", + "version", "sendCustomEvents", "hashUserProperties", "eventsToStandard", From 059c0cfaf705b330b742c55a59969cab68c88484 Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Thu, 18 Jan 2024 11:51:18 +0530 Subject: [PATCH 09/17] chore: reverts hubspot image post testing --- src/configurations/sources/singer_hubspot/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_hubspot/db-config.json b/src/configurations/sources/singer_hubspot/db-config.json index d09214ffb..0b1b874e7 100644 --- a/src/configurations/sources/singer_hubspot/db-config.json +++ b/src/configurations/sources/singer_hubspot/db-config.json @@ -7,7 +7,7 @@ "oauthRole": "hubspot" }, "digest": "sha256:4e4d43d688a81ce3e166b5d7c20c0050101c43f8b50187e0da8d63a37e2b412b", - "image": "rudderstack/source-hubspot:v6.2.4", + "image": "rudderstack/source-hubspot:v8.1.10", "isBeta": false }, "type": "cloudSource" From d338d02f220395737352faa45473fced803512a8 Mon Sep 17 00:00:00 2001 From: shrouti1507 <60211312+shrouti1507@users.noreply.github.com> Date: Thu, 18 Jan 2024 20:07:30 +0530 Subject: [PATCH 10/17] feat: onboard new destination spotify pixel (#1139) Co-authored-by: Anant Jain <62471433+anantjain45823@users.noreply.github.com> --- .../destinations/spotifyPixel/db-config.json | 41 +++ .../destinations/spotifyPixel/metadata.json | 26 ++ .../destinations/spotifyPixel/schema.json | 92 ++++++ .../destinations/spotifyPixel/ui-config.json | 264 ++++++++++++++++++ .../validation/destinations/spotifyPixel.json | 160 +++++++++++ 5 files changed, 583 insertions(+) create mode 100644 src/configurations/destinations/spotifyPixel/db-config.json create mode 100644 src/configurations/destinations/spotifyPixel/metadata.json create mode 100644 src/configurations/destinations/spotifyPixel/schema.json create mode 100644 src/configurations/destinations/spotifyPixel/ui-config.json create mode 100644 test/data/validation/destinations/spotifyPixel.json diff --git a/src/configurations/destinations/spotifyPixel/db-config.json b/src/configurations/destinations/spotifyPixel/db-config.json new file mode 100644 index 000000000..95c3a933e --- /dev/null +++ b/src/configurations/destinations/spotifyPixel/db-config.json @@ -0,0 +1,41 @@ +{ + "name": "SPOTIFYPIXEL", + "displayName": "Spotify Pixel", + "config": { + "transformAtV1": "processor", + "saveDestinationResponse": true, + "includeKeys": [ + "pixelId", + "eventsToSpotifyPixelEvents", + "blacklistedEvents", + "whitelistedEvents", + "oneTrustCookieCategories", + "eventFilteringOption", + "enableAliasCall" + ], + "excludeKeys": [], + "supportedSourceTypes": ["web"], + "supportedMessageTypes": { + "device": { + "web": ["track", "page"] + } + }, + "supportedConnectionModes": { + "web": ["device"] + }, + "destConfig": { + "defaultConfig": [ + "pixelId", + "eventsToSpotifyPixelEvents", + "blacklistedEvents", + "whitelistedEvents", + "eventFilteringOption", + "enableAliasCall", + "oneTrustCookieCategories" + ], + "web": ["useNativeSDK", "connectionMode"] + }, + "secretKeys": ["pixelId"] + } + } + \ No newline at end of file diff --git a/src/configurations/destinations/spotifyPixel/metadata.json b/src/configurations/destinations/spotifyPixel/metadata.json new file mode 100644 index 000000000..c1d78b6e5 --- /dev/null +++ b/src/configurations/destinations/spotifyPixel/metadata.json @@ -0,0 +1,26 @@ +{ + "metadata": { + "primaryCategory": "", + "secondaryCategory": [], + "docLink": "", + "logoPath": "", + "connectionMode": { + "cloud-mode": true, + "device-mode": ["web"] + }, + "supportedMethods": { + "cloud-mode": ["track", "page"], + "device-mode": { + "web": ["track", "page"] + } + }, + "releaseStatus": "beta", + "sourceCode": { + "android": { + "github": "", + "version": "v1.0.0" + } + } + } + } + \ No newline at end of file diff --git a/src/configurations/destinations/spotifyPixel/schema.json b/src/configurations/destinations/spotifyPixel/schema.json new file mode 100644 index 000000000..88588c530 --- /dev/null +++ b/src/configurations/destinations/spotifyPixel/schema.json @@ -0,0 +1,92 @@ +{ + "configSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["pixelId"], + "type": "object", + "properties": { + "pixelId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "eventsToSpotifyPixelEvents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "from": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "to": { + "type": "string", + "enum": ["lead", "product", "addtocart", "checkout", "purchase", ""] + } + } + } + }, + "enableAliasCall": { + "type": "boolean", + "default": false + }, + "eventFilteringOption": { + "type": "string", + "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], + "default": "disable" + }, + "whitelistedEvents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "eventName": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } + }, + "blacklistedEvents": { + "type": "array", + "items": { + "type": "object", + "properties": { + "eventName": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } + }, + "useNativeSDK": { + "type": "object", + "properties": { + "web": { + "type": "boolean" + } + } + }, + "oneTrustCookieCategories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "oneTrustCookieCategory": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } + }, + "connectionMode": { + "type": "object", + "properties": { + "web": { + "type": "string", + "enum": ["device"] + } + } + } + } + } + } + \ No newline at end of file diff --git a/src/configurations/destinations/spotifyPixel/ui-config.json b/src/configurations/destinations/spotifyPixel/ui-config.json new file mode 100644 index 000000000..52e0c66b8 --- /dev/null +++ b/src/configurations/destinations/spotifyPixel/ui-config.json @@ -0,0 +1,264 @@ +{ + "uiConfig": { + "baseTemplate": [ + { + "title": "Initial setup", + "note": "Review how this destination is set up", + "sections": [ + { + "groups": [ + { + "title": "Connection Settings", + "note": "Update your connection settings here", + "icon": "settings", + "fields": [ + { + "type": "textInput", + "label": "Pixel ID", + "note": "Spotify Pixel dashboard > Manage > Your Pixels", + "configKey": "pixelId", + "regex": "^(.{1,100})$", + "secret": true, + "regexErrorMessage": "Invalid Pixel ID", + "placeholder": "e.g. dzq1p89h2bnpXXXX9x65hyx2hf5q1k3v" + } + ] + } + ] + }, + { + "groups": [ + { + "title": "Connection mode", + "note": [ + "Update how you want to route events from your source to destination. ", + { + "text": "Get help deciding", + "link": "https://www.rudderstack.com/docs/destinations/rudderstack-connection-modes/" + } + ], + "icon": "sliders", + "fields": [], + "defaultConnectionModes": { + "web": "device" + } + } + ] + } + ] + }, + { + "title": "Configuration settings", + "note": "Manage the settings for your destination", + "sections": [ + { + "title": "Destination settings", + "note": "Configure advanced destination-specific settings here", + "icon": "settings", + "groups": [ + { + "title": "Spotify Pixel Alias Event Setting", + "fields": [ + { + "type": "checkbox", + "label": "Enhance attribution with externalIDs for conversion matching", + "configKey": "enableAliasCall", + "default": false + } + ] + } + ] + }, + { + "title": "Other settings", + "note": "Configure advanced RudderStack features here", + "icon": "otherSettings", + "groups": [ + { + "title": "Client-side event filtering", + "note": "Decide what events are allowed (allowlisting) and blocked (denylisting)", + "preRequisites": { + "fields": [ + { + "configKey": "connectionModes.webDevice", + "value": true + }, + { + "configKey": "connectionModes.mobileDevice", + "value": true + } + ], + "condition": "or" + }, + "fields": [ + { + "type": "singleSelect", + "label": "Choose if you want to turn on events filtering:", + "configKey": "eventFilteringOption", + "note": "You must select either allowlist or denylist to enable events filtering", + "options": [ + { + "label": "No events filtering", + "value": "disable" + }, + { + "label": "Filter via allowlist", + "value": "whitelistedEvents" + }, + { + "label": "Filter via denylist", + "value": "blacklistedEvents" + } + ], + "default": "disable" + }, + { + "type": "tagInput", + "label": "Allowlisted events", + "note": "Input separate events by pressing ‘Enter’.\nInput the events you want to allowlist.", + "configKey": "whitelistedEvents", + "tagKey": "eventName", + "placeholder": "e.g: Anonymous page visit", + "default": [ + { + "eventName": "" + } + ], + "preRequisites": { + "fields": [ + { + "configKey": "eventFilteringOption", + "value": "whitelistedEvents" + } + ] + } + }, + { + "type": "tagInput", + "label": "Denylisted events", + "note": "Input separate events by pressing ‘Enter’.\nInput the events you want to denylist. ", + "configKey": "blacklistedEvents", + "tagKey": "eventName", + "placeholder": "e.g: Anonymous page visit", + "default": [ + { + "eventName": "" + } + ], + "preRequisites": { + "fields": [ + { + "configKey": "eventFilteringOption", + "value": "blacklistedEvents" + } + ] + } + } + ] + }, + { + "title": "OneTrust cookie consent settings", + "note": [ + "Enter your OneTrust category names if you have them configured. ", + { + "text": "Learn more ", + "link": "https://www.rudderstack.com/docs/sources/event-streams/sdks/rudderstack-javascript-sdk/onetrust-consent-manager/" + }, + "about RudderStack’s OneTrust Consent Manager feature." + ], + "fields": [ + { + "type": "tagInput", + "label": "Cookie category name", + "note": "Input your OneTrust category names by pressing ‘Enter’ after each entry", + "configKey": "oneTrustCookieCategories", + "tagKey": "oneTrustCookieCategory", + "placeholder": "e.g: Credit card visit", + "default": [ + { + "oneTrustCookieCategory": "" + } + ] + } + ] + } + ] + } + ] + }, + { + "title": "Mappings", + "hideEditIcon": true, + "sections": [ + { + "groups": [ + { + "title": "Rudderstack to Spotify Pixel Event Mappings", + "fields": [ + { + "type": "redirect", + "redirectGroupKey": "spotifyPixelEventMapping", + "label": "Event and property mappings" + } + ] + } + ] + } + ] + } + ], + "redirectGroups": { + "spotifyPixelEventMapping":{ + "fields": [ + { + "type": "mapping", + "label": "Mapping to trigger the Rudderstack events with standard Spotify Pixel events", + "configKey": "eventsToSpotifyPixelEvents", + "default": [], + "columns": [ + { + "type": "textInput", + "key": "from", + "label": "Event Name", + "placeholder": "e.g: Order Completed" + }, + { + "type": "singleSelect", + "key": "to", + "label": "Spotify Pixel Standard Event", + "placeholder": "e.g: Checkout", + "options": [ + { + "name": "Lead", + "value": "lead" + }, + { + "name": "Product", + "value": "product" + }, + { + "name": "Add to Cart", + "value": "addtocart" + }, + { + "name": "Check out", + "value": "checkout" + }, + { + "name": "Purchase", + "value": "purchase" + } + ] + } + ] + } + ] + } + }, + "sdkTemplate": { + "title": "Web SDK settings", + "note": "not visible in the ui", + "fields": [] + } + } +} \ No newline at end of file diff --git a/test/data/validation/destinations/spotifyPixel.json b/test/data/validation/destinations/spotifyPixel.json new file mode 100644 index 000000000..bd932cacc --- /dev/null +++ b/test/data/validation/destinations/spotifyPixel.json @@ -0,0 +1,160 @@ +[ + { + "config": { + "pixelId": "", + "eventsToSpotifyPixelEvents": [ + { + "from": "Order Completed", + "to": "purchase" + } + ], + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "useNativeSDK": { + "web": true + }, + "connectionMode": { + "web": "device" + } + }, + "result": false, + "err": [ + "pixelId must match pattern \"(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$\"" + ] + }, + { + "config": { + "eventsToSpotifyPixelEvents": [ + { + "from": "Order Completed", + "to": "purchase" + } + ], + "enableAliasCall": false, + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "useNativeSDK": { + "web": true + }, + "connectionMode": { + "web": "device" + } + }, + "result": false, + "err": [ + " must have required property 'pixelId'" + ] + }, + { + "config": { + "pixelId": 1234, + "eventsToSpotifyPixelEvents": [ + { + "from": "Order Completed", + "to": "purchase" + } + ], + "enableAliasCall": true, + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "useNativeSDK": { + "web": true + }, + "connectionMode": { + "web": "device" + } + }, + "result": false, + "err": [ + "pixelId must be string" + ] + }, + { + "config": { + "pixelId": "qwerty1234qwerty", + "eventsToSpotifyPixelEvents": [ + { + "from": "Order Completed", + "to": "purchase" + } + ], + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "useNativeSDK": { + "web": true + }, + "connectionMode": { + "web": "device" + } + }, + "result": true + }, + { + "config": { + "pixelId": "qwerty1234qwerty", + "eventsToSpotifyPixelEvents": [ + { + "from": "Order Completed", + "to": "random" + } + ], + "eventFilteringOption": "disable", + "whitelistedEvents": [ + { + "eventName": "" + } + ], + "blacklistedEvents": [ + { + "eventName": "" + } + ], + "useNativeSDK": { + "web": true + }, + "connectionMode": { + "web": "device" + } + }, + "result": false, + "err": [ + "eventsToSpotifyPixelEvents.0.to must be equal to one of the allowed values" + ] + } +] \ No newline at end of file From 38d47b57f9da248adcb0594387f7f1eefb841d3c Mon Sep 17 00:00:00 2001 From: shrouti1507 <60211312+shrouti1507@users.noreply.github.com> Date: Fri, 19 Jan 2024 13:41:39 +0530 Subject: [PATCH 11/17] feat: adding proxy server url in amplitude device mode (#1163) --- .../destinations/am/db-config.json | 6 ++++-- .../destinations/am/schema.json | 9 ++++++++ .../destinations/am/ui-config.json | 11 +++++++++- test/data/validation/destinations/am.json | 21 +++++++++++++++++++ 4 files changed, 44 insertions(+), 3 deletions(-) diff --git a/src/configurations/destinations/am/db-config.json b/src/configurations/destinations/am/db-config.json index d0f4f9826..ca3688ab5 100644 --- a/src/configurations/destinations/am/db-config.json +++ b/src/configurations/destinations/am/db-config.json @@ -38,7 +38,8 @@ "eventUploadPeriodMillis", "trackNewCampaigns", "userProvidedScreenEventString", - "useUserDefinedScreenEventName" + "useUserDefinedScreenEventName", + "proxyServerUrl" ], "excludeKeys": [], "supportedSourceTypes": [ @@ -109,7 +110,8 @@ "attribution", "eventUploadThreshold", "eventUploadPeriodMillis", - "trackNewCampaigns" + "trackNewCampaigns", + "proxyServerUrl" ], "android": [ "eventUploadPeriodMillis", diff --git a/src/configurations/destinations/am/schema.json b/src/configurations/destinations/am/schema.json index e7d2a7107..20febe58d 100644 --- a/src/configurations/destinations/am/schema.json +++ b/src/configurations/destinations/am/schema.json @@ -13,6 +13,15 @@ "enum": ["standard", "EU"], "default": "standard" }, + "proxyServerUrl": { + "type": "object", + "properties": { + "web": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$" + } + } + }, "trackAllPages": { "type": "boolean", "default": false diff --git a/src/configurations/destinations/am/ui-config.json b/src/configurations/destinations/am/ui-config.json index a708189b1..119e1cc80 100644 --- a/src/configurations/destinations/am/ui-config.json +++ b/src/configurations/destinations/am/ui-config.json @@ -538,6 +538,15 @@ "title": "SDK settings", "note": "not visible in the ui", "fields": [ + { + "type": "textInput", + "label": "Proxy server url", + "note": "Send data to Amplitude by using a domain proxy to relay requests. Presently supported for web device mode only", + "configKey": "proxyServerUrl", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$", + "regexErrorMessage": "Invalid Proxy Server URL", + "placeholder": "e.g: https://proxyserver.url.com" + }, { "type": "checkbox", "label": "Enable location listening", @@ -616,4 +625,4 @@ ] } } -} +} \ No newline at end of file diff --git a/test/data/validation/destinations/am.json b/test/data/validation/destinations/am.json index b5fa70f7e..64ac78b08 100644 --- a/test/data/validation/destinations/am.json +++ b/test/data/validation/destinations/am.json @@ -80,6 +80,9 @@ { "config": { "apiSecret": "a41d5bc768831f083e2swcwecfgf7398", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, "groupTypeTrait": "", "groupValueTrait": "", "trackAllPages": true, @@ -184,6 +187,9 @@ { "config": { "apiKey": "12fd322b8c13214e36450b519typo402", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, "groupTypeTrait": "Modelorama_app_Stage", "groupValueTrait": "Modelorama Stage", "trackAllPages": true, @@ -233,6 +239,9 @@ { "config": { "apiKey": "1173185cre3a65172943ba1e41113dwd", + "proxyServerUrl": { + "web": "" + }, "groupTypeTrait": { "prop": "new" }, @@ -294,6 +303,9 @@ { "config": { "apiKey": "1173185cre3a65172943ba1e41113dwd", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, "groupTypeTrait": "", "groupValueTrait": "", "trackAllPages": true, @@ -352,6 +364,9 @@ { "config": { "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, "apiSecret": "a41d5bc768831f083e3dacwecfgf7398", "groupTypeTrait": "college_id", "groupValueTrait": "college_name", @@ -402,6 +417,9 @@ { "config": { "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, "apiSecret": "a41d5bc768831f083e3dacwecfgf7398", "groupTypeTrait": "college_id", "groupValueTrait": "college_name", @@ -527,6 +545,9 @@ { "config": { "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, "apiSecret": "a41d5bc768831f083e3dacwecfgf7398", "groupTypeTrait": "company_id", "groupValueTrait": "company_name", From 3d4e32fa77ebe5d37960c78d4697727b3923aa99 Mon Sep 17 00:00:00 2001 From: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:21:35 +0530 Subject: [PATCH 12/17] chore: unhide tradedesk (#1164) --- src/configurations/destinations/the_trade_desk/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/destinations/the_trade_desk/db-config.json b/src/configurations/destinations/the_trade_desk/db-config.json index c465eae8a..cd8efbb4d 100644 --- a/src/configurations/destinations/the_trade_desk/db-config.json +++ b/src/configurations/destinations/the_trade_desk/db-config.json @@ -31,6 +31,6 @@ }, "options": { "isBeta": true, - "hidden": true + "hidden": false } } From 914bde6b62067ba1097c7734fb212963f7d4aaf6 Mon Sep 17 00:00:00 2001 From: Ujjwal Abhishek <63387036+ujjwal-ab@users.noreply.github.com> Date: Mon, 22 Jan 2024 16:43:56 +0530 Subject: [PATCH 13/17] feat: onboard customerio to new UI (#1118) Co-authored-by: Anant Jain Co-authored-by: Anant Jain <62471433+anantjain45823@users.noreply.github.com> --- .../destinations/customerio/db-config.json | 2 +- .../destinations/customerio/schema.json | 10 +- .../destinations/customerio/ui-config.json | 405 +++++++++++------- .../validation/destinations/customerio.json | 18 + 4 files changed, 272 insertions(+), 163 deletions(-) diff --git a/src/configurations/destinations/customerio/db-config.json b/src/configurations/destinations/customerio/db-config.json index 3aa617ad6..310a6d308 100644 --- a/src/configurations/destinations/customerio/db-config.json +++ b/src/configurations/destinations/customerio/db-config.json @@ -53,7 +53,7 @@ "oneTrustCookieCategories", "ketchConsentPurposes" ], - "web": ["dataUseInApp", "useNativeSDK", "sendPageNameInSDK"] + "web": ["connectionMode", "dataUseInApp", "useNativeSDK", "sendPageNameInSDK"] }, "secretKeys": [] } diff --git a/src/configurations/destinations/customerio/schema.json b/src/configurations/destinations/customerio/schema.json index 3057c3bdd..8c74ee62c 100644 --- a/src/configurations/destinations/customerio/schema.json +++ b/src/configurations/destinations/customerio/schema.json @@ -1,7 +1,7 @@ { "configSchema": { "$schema": "http://json-schema.org/draft-07/schema#", - "required": ["siteID", "apiKey"], + "required": ["apiKey", "siteID", "datacenter"], "type": "object", "properties": { "siteID": { @@ -45,6 +45,12 @@ } } }, + "connectionMode": { + "type": "object", + "properties": { + "web": { "type": "string", "enum": ["cloud", "device"] } + } + }, "eventFilteringOption": { "type": "string", "enum": ["disable", "whitelistedEvents", "blacklistedEvents"], @@ -93,7 +99,7 @@ "properties": { "purpose": { "type": "string", - "pattern": "^(.{0,100})$" + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" } } } diff --git a/src/configurations/destinations/customerio/ui-config.json b/src/configurations/destinations/customerio/ui-config.json index d2685d82d..ef23b463c 100644 --- a/src/configurations/destinations/customerio/ui-config.json +++ b/src/configurations/destinations/customerio/ui-config.json @@ -1,173 +1,258 @@ { - "uiConfig": [ - { - "title": "1. Connection Settings", - "fields": [ - { - "type": "textInput", - "label": "Site ID", - "value": "siteID", - "regex": "^(.{1,100})$", - "regexErrorMessage": "Invalid Site ID", - "required": true, - "placeholder": "e.g: ABCDEFG" - }, - { - "type": "textInput", - "label": "API Key", - "value": "apiKey", - "regex": "^(.{1,100})$", - "regexErrorMessage": "Invalid API Key", - "required": true, - "placeholder": "e.g: ABCDEFG" - }, - { - "type": "textInput", - "label": "Event Sent After Setting Device Token", - "value": "deviceTokenEventName", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Event Name", - "placeholder": "e.g: device_token_registered", - "footerNote": "This event should be fired just after setting device token to enable sending device tokens to Customer.io immediately." - }, - { - "type": "singleSelect", - "label": "Data Center", - "value": "datacenter", - "mode": "single", - "options": [ - { - "name": "US", - "value": "US" - }, - { - "name": "EU", - "value": "EU" - } - ], - "defaultOption": { - "name": "US", - "value": "US" + "uiConfig": { + "baseTemplate": [ + { + "title": "Initial setup", + "note": "Review how this destination is set up", + "sections": [ + { + "groups": [ + { + "title": "Connection settings", + "note": "Update your connection settings here", + "icon": "settings", + "fields": [ + { + "type": "textInput", + "label": "API Key", + "configKey": "apiKey", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", + "regexErrorMessage": "Invalid Api Key", + "placeholder": "e.g: ABCDEFG", + "note": "Enter your Customer.io API Key" + }, + { + "type": "textInput", + "label": "Site ID", + "configKey": "siteID", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", + "regexErrorMessage": "Invalid Site ID", + "placeholder": "e.g: ABCDEFG", + "note": "Enter your Customer.io Site ID" + }, + { + "type": "singleSelect", + "label": "Data Center", + "configKey": "datacenter", + "note": "Select your Customer.io Data Center", + "options": [ + { + "label": "US", + "value": "US" + }, + { + "label": "EU", + "value": "EU" + } + ], + "default": "US" + } + ] + } + ] }, - "footerNote": "Select your Customer.io Data Center" - }, - { - "type": "checkbox", - "label": "Send Page Name in SDK mode", - "value": "sendPageNameInSDK", - "default": true, - "footerNote": "Turn it OFF if you don't want to send the page name when connected in device mode. If OFF page name will automatically be captured by Customer.io." - } - ] - }, - { - "title": "2. Native SDK", + { + "groups": [ + { + "title": "Connection mode", + "note": [ + "Update how you want to route events from your source to destination. ", + { + "text": "Get help deciding", + "link": "https://www.rudderstack.com/docs/destinations/rudderstack-connection-modes/" + } + ], + "icon": "sliders", + "fields": [] + } + ] + } + ] + }, + { + "title": "Configuration settings", + "note": "Manage the settings for your destination", + "sections": [ + { + "title": "Destination settings", + "note": "Configure advanced destination-specific settings here", + "icon": "settings", + "groups": [ + { + "title": "Destiantion Specific Setting", + "note": "Configure a few Customerio settings here", + "fields": [ + { + "type": "textInput", + "label": "Event Sent After Setting Device Token", + "configKey": "deviceTokenEventName", + "note": [ + "This event should be fired just after setting device token to enable sending device tokens to Customer.io immediately." + ], + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", + "regexErrorMessage": "Invalid Event Name", + "placeholder": "e.g: device_token_registered" + } + ] + } + ] + }, + { + "title": "Other settings", + "note": "Configure advanced RudderStack features here", + "icon": "otherSettings", + "groups": [ + { + "title": "Client-side event filtering", + "note": "Decide what events are allowed (allowlisting) and blocked (denylisting)", + "preRequisites": { + "fields": [ + { + "configKey": "connectionModes.webDevice", + "value": true + }, + { + "configKey": "connectionModes.mobileDevice", + "value": true + } + ], + "condition": "or" + }, + "fields": [ + { + "type": "singleSelect", + "label": "Choose if you want to turn on events filtering:", + "configKey": "eventFilteringOption", + "note": "You must select either allowlist or denylist to enable events filtering", + "options": [ + { + "label": "Disabled", + "value": "disable" + }, + { + "label": "Filter via allowlist", + "value": "whitelistedEvents" + }, + { + "label": "Filter via denylist", + "value": "blacklistedEvents" + } + ], + "default": "disable" + }, + { + "type": "tagInput", + "label": "Allowlisted events", + "note": "Input separate events by pressing ‘Enter’.\nInput the events you want to allowlist.", + "configKey": "whitelistedEvents", + "tagKey": "eventName", + "placeholder": "e.g: Anonymous page visit", + "default": [ + { + "eventName": "" + } + ], + "preRequisites": { + "fields": [ + { + "configKey": "eventFilteringOption", + "value": "whitelistedEvents" + } + ] + } + }, + { + "type": "tagInput", + "label": "Denylisted events", + "note": "Input separate events by pressing ‘Enter’.\nInput the events you want to denylist. ", + "configKey": "blacklistedEvents", + "tagKey": "eventName", + "placeholder": "e.g: Anonymous page visit", + "default": [ + { + "eventName": "" + } + ], + "preRequisites": { + "fields": [ + { + "configKey": "eventFilteringOption", + "value": "blacklistedEvents" + } + ] + } + } + ] + }, + { + "title": "OneTrust cookie consent settings", + "note": [ + "Enter your OneTrust category names if you have them configured. ", + { + "text": "Learn more ", + "link": "https://www.rudderstack.com/docs/sources/event-streams/sdks/rudderstack-javascript-sdk/onetrust-consent-manager/" + }, + "about RudderStack’s OneTrust Consent Manager feature." + ], + "fields": [ + { + "type": "tagInput", + "label": "Cookie category name", + "note": "Input your OneTrust category names by pressing ‘Enter’ after each entry", + "configKey": "oneTrustCookieCategories", + "tagKey": "oneTrustCookieCategory", + "placeholder": "e.g: Credit card visit", + "default": [ + { + "oneTrustCookieCategory": "" + } + ] + } + ] + }, + { + "title": "Ketch consent settings", + "note": "Enter your Ketch Consent Purposes if you have them configured.", + "fields": [ + { + "type": "tagInput", + "label": "Ketch consent purpose", + "note": "Input your Ketch consent purpose by pressing ‘Enter’ after each entry", + "configKey": "ketchConsentPurposes", + "tagKey": "purpose", + "placeholder": "e.g: Marketing", + "default": [ + { + "purpose": "" + } + ] + } + ] + } + ] + } + ] + } + ], + "sdkTemplate": { + "title": "SDK settings", + "note": "not visible in the ui", "fields": [ { "type": "checkbox", - "label": "Use device-mode to send events", - "value": "useNativeSDK", - "default": false + "label": "Send Page Name in SDK mode", + "note": "Turn it OFF if you don't want to send the page name when connected in device mode. If OFF page name will automatically be captured by Customer.io.", + "configKey": "sendPageNameInSDK", + "default": true }, { "type": "checkbox", "label": "Enable in-app message support", - "value": "dataUseInApp", - "default": false, - "footerNote": "Turn it ON if you want to send in-app messages to your website." - } - ] - }, - { - "title": "Client-side Events Filtering", - "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events", - "fields": [ - { - "type": "singleSelect", - "value": "eventFilteringOption", - "required": false, - "options": [ - { - "name": "Disable", - "value": "disable" - }, - { - "name": "Allowlist", - "value": "whitelistedEvents" - }, - { - "name": "Denylist", - "value": "blacklistedEvents" - } - ], - "defaultOption": { - "name": "Disable", - "value": "disable" - } - }, - { - "type": "dynamicCustomForm", - "value": "whitelistedEvents", - "label": "Allowlist", - "customFields": [ - { - "type": "textInput", - "value": "eventName", - "required": false, - "placeholder": "e.g: Anonymous Page Visit" - } - ] - }, - { - "type": "dynamicCustomForm", - "value": "blacklistedEvents", - "label": "Denylist", - "customFields": [ - { - "type": "textInput", - "value": "eventName", - "required": false, - "placeholder": "e.g: Credit Card Added" - } - ] - } - ] - }, - { - "title": "Consent Settings", - "fields": [ - { - "type": "dynamicCustomForm", - "value": "oneTrustCookieCategories", - "label": "OneTrust Consent Categories", - "footerNote": "The support for category names is deprecated. We recommend using the category IDs instead of the names as IDs are unique and less likely to change over time, making them a more reliable choice.", - "customFields": [ - { - "type": "textInput", - "placeholder": "C0001", - "value": "oneTrustCookieCategory", - "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", - "label": "Category ID", - "required": false - } - ] - }, - { - "type": "dynamicCustomForm", - "value": "ketchConsentPurposes", - "label": "Ketch Consent Purposes", - "customFields": [ - { - "type": "textInput", - "placeholder": "Marketing", - "value": "purpose", - "label": "Purpose ID", - "regex": "^(.{0,100})$", - "required": false - } - ] + "note": "Turn it ON if you want to send in-app messages to your website.", + "configKey": "dataUseInApp", + "default": false } ] } - ] + } } diff --git a/test/data/validation/destinations/customerio.json b/test/data/validation/destinations/customerio.json index 57c027e88..b4c248a94 100644 --- a/test/data/validation/destinations/customerio.json +++ b/test/data/validation/destinations/customerio.json @@ -5,6 +5,9 @@ "apiKey": "95bd1331112976i0ff9b", "deviceTokenEventName": "device_token_registered", "datacenter": "US", + "connectionMode": { + "web": "cloud" + }, "eventFilteringOption": "disable", "whitelistedEvents": [ { @@ -35,6 +38,9 @@ "apiKey": "95bd1331112976i0ff9b", "deviceTokenEventName": "device_token_registered", "datacenter": "US", + "connectionMode": { + "web": "cloud" + }, "eventFilteringOption": "whitelistedEvents", "whitelistedEvents": [ { @@ -67,6 +73,9 @@ "apiKey": "95bd1330072974f0ff9b", "deviceTokenEventName": "device_location_registered", "datacenter": "EU", + "connectionMode": { + "web": "cloud" + }, "whitelistedEvents": [ { "eventName": "practice" @@ -98,6 +107,9 @@ "deviceTokenEventName": "device_id_removed", "datacenter": "US", "eventFilteringOption": "disable", + "connectionMode": { + "web": "cloud" + }, "whitelistedEvents": [ { "eventName": ["e1", "v1"] @@ -133,6 +145,9 @@ "useNativeSDK": { "web": false }, + "connectionMode": { + "web": "cloud" + }, "sendPageNameInSDK": { "web": false }, @@ -157,6 +172,9 @@ "sendPageNameInSDK": { "web": false }, + "connectionMode": { + "web": "cloud" + }, "oneTrustCookieCategories": [ { "oneTrustCookieCategory": "Marketing" From 6981464f6f00d41dedeef846bffd695b13adc924 Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Mon, 22 Jan 2024 11:34:20 +0000 Subject: [PATCH 14/17] chore(release): 1.63.0 --- CHANGELOG.md | 15 +++++++++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4e9a8bb47..fdf5c890b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,21 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [1.63.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.62.1...v1.63.0) (2024-01-22) + + +### Features + +* adding proxy server url in amplitude device mode ([#1163](https://github.com/rudderlabs/rudder-config-schema/issues/1163)) ([38d47b5](https://github.com/rudderlabs/rudder-config-schema/commit/38d47b57f9da248adcb0594387f7f1eefb841d3c)) +* onboard customerio to new UI ([#1118](https://github.com/rudderlabs/rudder-config-schema/issues/1118)) ([914bde6](https://github.com/rudderlabs/rudder-config-schema/commit/914bde6b62067ba1097c7734fb212963f7d4aaf6)) +* onboard new destination spotify pixel ([#1139](https://github.com/rudderlabs/rudder-config-schema/issues/1139)) ([d338d02](https://github.com/rudderlabs/rudder-config-schema/commit/d338d02f220395737352faa45473fced803512a8)) +* tiktok_ads: support new event version 2.0 ([7bd2848](https://github.com/rudderlabs/rudder-config-schema/commit/7bd2848349092f89f0f5d149cc3051c3347cbb19)) + + +### Bug Fixes + +* update stripe image to fix subscription sync [ETL-239] ([#1151](https://github.com/rudderlabs/rudder-config-schema/issues/1151)) ([6bb6e29](https://github.com/rudderlabs/rudder-config-schema/commit/6bb6e29318b6c526987dd2488d28a477fab205e8)) + ### [1.62.1](https://github.com/rudderlabs/rudder-config-schema/compare/v1.62.0...v1.62.1) (2024-01-16) diff --git a/package-lock.json b/package-lock.json index ec969f2d5..e0de2f71f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-config-schema", - "version": "1.62.1", + "version": "1.63.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-config-schema", - "version": "1.62.1", + "version": "1.63.0", "license": "MIT", "dependencies": { "ajv": "^8.12.0", diff --git a/package.json b/package.json index c4ad46f25..ad3500bb5 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-config-schema", - "version": "1.62.1", + "version": "1.63.0", "description": "", "main": "src/index.ts", "private": true, From f91fe2a5af5c2866f3ed4e030a5e3b7d29e253ee Mon Sep 17 00:00:00 2001 From: shrouti1507 <60211312+shrouti1507@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:05:55 +0530 Subject: [PATCH 15/17] fix: regex issue of proxy url (#1167) Co-authored-by: Yashasvi Bajpai <33063622+yashasvibajpai@users.noreply.github.com> --- .../destinations/am/schema.json | 2 +- .../destinations/am/ui-config.json | 2 +- test/data/validation/destinations/am.json | 73 +++++++++++++++++-- 3 files changed, 69 insertions(+), 8 deletions(-) diff --git a/src/configurations/destinations/am/schema.json b/src/configurations/destinations/am/schema.json index 20febe58d..48782987f 100644 --- a/src/configurations/destinations/am/schema.json +++ b/src/configurations/destinations/am/schema.json @@ -18,7 +18,7 @@ "properties": { "web": { "type": "string", - "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$" + "pattern": "^(?!http:\/\/)(?:(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*)$" } } }, diff --git a/src/configurations/destinations/am/ui-config.json b/src/configurations/destinations/am/ui-config.json index 119e1cc80..12eba8b71 100644 --- a/src/configurations/destinations/am/ui-config.json +++ b/src/configurations/destinations/am/ui-config.json @@ -543,7 +543,7 @@ "label": "Proxy server url", "note": "Send data to Amplitude by using a domain proxy to relay requests. Presently supported for web device mode only", "configKey": "proxyServerUrl", - "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*$", + "regex":"^(?!http:\/\/)(?:(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*)$", "regexErrorMessage": "Invalid Proxy Server URL", "placeholder": "e.g: https://proxyserver.url.com" }, diff --git a/test/data/validation/destinations/am.json b/test/data/validation/destinations/am.json index 64ac78b08..8b0147706 100644 --- a/test/data/validation/destinations/am.json +++ b/test/data/validation/destinations/am.json @@ -81,7 +81,7 @@ "config": { "apiSecret": "a41d5bc768831f083e2swcwecfgf7398", "proxyServerUrl": { - "web": "http://abc.example.com" + "web": "https://abc.example.com" }, "groupTypeTrait": "", "groupValueTrait": "", @@ -188,7 +188,7 @@ "config": { "apiKey": "12fd322b8c13214e36450b519typo402", "proxyServerUrl": { - "web": "http://abc.example.com" + "web": "https://abc.example.com" }, "groupTypeTrait": "Modelorama_app_Stage", "groupValueTrait": "Modelorama Stage", @@ -304,7 +304,7 @@ "config": { "apiKey": "1173185cre3a65172943ba1e41113dwd", "proxyServerUrl": { - "web": "http://abc.example.com" + "web": "https://abc.example.com" }, "groupTypeTrait": "", "groupValueTrait": "", @@ -365,7 +365,7 @@ "config": { "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", "proxyServerUrl": { - "web": "http://abc.example.com" + "web": "https://abc.example.com" }, "apiSecret": "a41d5bc768831f083e3dacwecfgf7398", "groupTypeTrait": "college_id", @@ -418,7 +418,7 @@ "config": { "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", "proxyServerUrl": { - "web": "http://abc.example.com" + "web": "https://abc.example.com" }, "apiSecret": "a41d5bc768831f083e3dacwecfgf7398", "groupTypeTrait": "college_id", @@ -546,7 +546,7 @@ "config": { "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", "proxyServerUrl": { - "web": "http://abc.example.com" + "web": "https://abc.example.com" }, "apiSecret": "a41d5bc768831f083e3dacwecfgf7398", "groupTypeTrait": "company_id", @@ -625,5 +625,66 @@ }, "result": false, "err": ["oneTrustCookieCategories must be array", "attribution.web must be boolean"] + }, + { + "config": { + "apiKey": "8559811e41334c6d22b5c4b5f6s7gb70", + "apiSecret": "a41d5bc768831f083e2swcwecfgf7398", + "proxyServerUrl": { + "web": "http://abc.example.com" + }, + "groupTypeTrait": "", + "groupValueTrait": "", + "trackAllPages": true, + "trackCategorizedPages": true, + "trackNamedPages": true, + "trackProductsOnce": false, + "trackRevenuePerProduct": false, + "versionName": "1.0.1", + "residencyServer": "EU", + "connectionMode": { + "web": "device", + "android": "device", + "ios": "cloud", + "reactnative": "cloud", + "flutter": "device" + }, + "traitsToIncrement": [ + { + "traits": "profile_trait" + } + ], + "traitsToSetOnce": [ + { + "traits": "init" + }, + { + "traits": "init02" + } + ], + "useNativeSDK": { + "web": true, + "android": true, + "ios": false, + "reactnative": false, + "flutter": true + }, + "preferAnonymousIdForDeviceId": { + "web": false + }, + "trackNewCampaigns": { + "web": true + }, + "eventUploadPeriodMillis": { + "web": "30000" + }, + "eventUploadThreshold": { + "web": "30" + } + }, + "result": false, + "err": [ + "proxyServerUrl.web must match pattern \"^(?!http://)(?:(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(?!.*\\.ngrok\\.io).*)$\"" + ] } ] From d6c2ae3229830007baf556efc899510431efb6e5 Mon Sep 17 00:00:00 2001 From: Anant Jain Date: Wed, 24 Jan 2024 12:44:47 +0530 Subject: [PATCH 16/17] fix: remove extra prerequisite fields for event filtering field --- .../destinations/customerio/ui-config.json | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/src/configurations/destinations/customerio/ui-config.json b/src/configurations/destinations/customerio/ui-config.json index ef23b463c..6aab25384 100644 --- a/src/configurations/destinations/customerio/ui-config.json +++ b/src/configurations/destinations/customerio/ui-config.json @@ -108,15 +108,10 @@ "preRequisites": { "fields": [ { - "configKey": "connectionModes.webDevice", - "value": true - }, - { - "configKey": "connectionModes.mobileDevice", - "value": true + "configKey": "connectionMode.web", + "value": "device" } - ], - "condition": "or" + ] }, "fields": [ { From 3b5ab759a5518cd141a1d816ce475d241a5873c8 Mon Sep 17 00:00:00 2001 From: Anant Jain Date: Wed, 24 Jan 2024 12:53:47 +0530 Subject: [PATCH 17/17] chore: remove unused file metadata from spotify pixel --- .../destinations/spotifyPixel/metadata.json | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 src/configurations/destinations/spotifyPixel/metadata.json diff --git a/src/configurations/destinations/spotifyPixel/metadata.json b/src/configurations/destinations/spotifyPixel/metadata.json deleted file mode 100644 index c1d78b6e5..000000000 --- a/src/configurations/destinations/spotifyPixel/metadata.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "metadata": { - "primaryCategory": "", - "secondaryCategory": [], - "docLink": "", - "logoPath": "", - "connectionMode": { - "cloud-mode": true, - "device-mode": ["web"] - }, - "supportedMethods": { - "cloud-mode": ["track", "page"], - "device-mode": { - "web": ["track", "page"] - } - }, - "releaseStatus": "beta", - "sourceCode": { - "android": { - "github": "", - "version": "v1.0.0" - } - } - } - } - \ No newline at end of file