diff --git a/CHANGELOG.md b/CHANGELOG.md index ba3809549..fd4d74605 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,44 @@ 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.75.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.74.0...v1.75.0) (2024-05-27) + + +### Features +* onboard klaviyo bulk upload destination ([#1432](https://github.com/rudderlabs/rudder-config-schema/issues/1432)) ([d24bec3](https://github.com/rudderlabs/rudder-config-schema/commit/d24bec329776ca0e068f6a419a7d1db470421304)) +* added GCM support for Appcues destination ([#1376](https://github.com/rudderlabs/rudder-config-schema/issues/1376)) ([e017424](https://github.com/rudderlabs/rudder-config-schema/commit/e0174248d959977d477e408a953c996542efa7f4)) +* added GCM support for BigQuery Stream destination ([#1397](https://github.com/rudderlabs/rudder-config-schema/issues/1397)) ([37586af](https://github.com/rudderlabs/rudder-config-schema/commit/37586af077087f415e90d367e7b443a294c2dcdd)) +* added GCM support for BingAds destination ([#1393](https://github.com/rudderlabs/rudder-config-schema/issues/1393)) ([bf5f781](https://github.com/rudderlabs/rudder-config-schema/commit/bf5f781eb34195d47c41c703da0b371ac10fe173)) +* added GCM support for Deltalake destination ([#1400](https://github.com/rudderlabs/rudder-config-schema/issues/1400)) ([31006de](https://github.com/rudderlabs/rudder-config-schema/commit/31006dee2c87843311f79eb77727b7db471bcb97)) +* added GCM support for Freshsales destination ([#1392](https://github.com/rudderlabs/rudder-config-schema/issues/1392)) ([8d8e8fb](https://github.com/rudderlabs/rudder-config-schema/commit/8d8e8fb204bcf65110a65afe86f0af416ae7248f)) +* added GCM support for Google Ads destination ([#1395](https://github.com/rudderlabs/rudder-config-schema/issues/1395)) ([d1f5def](https://github.com/rudderlabs/rudder-config-schema/commit/d1f5def035dab25e01e4c0921d6808d1029e1822)) +* added GCM support for Heap.io destination ([#1383](https://github.com/rudderlabs/rudder-config-schema/issues/1383)) ([48f7d15](https://github.com/rudderlabs/rudder-config-schema/commit/48f7d154032276d2b125d9e8cfcf66e840e929da)) +* added GCM support for Impact destination ([#1391](https://github.com/rudderlabs/rudder-config-schema/issues/1391)) ([1bf0346](https://github.com/rudderlabs/rudder-config-schema/commit/1bf0346e6459b3fc94ebadf0118a2fd9b7770e76)) +* added GCM support for Matomo destination ([#1384](https://github.com/rudderlabs/rudder-config-schema/issues/1384)) ([03f02b8](https://github.com/rudderlabs/rudder-config-schema/commit/03f02b8fa4bab06947aa5ebda48d5c68be5fe63a)) +* added GCM support for Quora Pixel destination ([#1399](https://github.com/rudderlabs/rudder-config-schema/issues/1399)) ([60f86d9](https://github.com/rudderlabs/rudder-config-schema/commit/60f86d98065403ba508d3bfd54bed5554bf0ba66)) +* added GCM support for Reddit Pixel destination ([#1398](https://github.com/rudderlabs/rudder-config-schema/issues/1398)) ([a02d3c5](https://github.com/rudderlabs/rudder-config-schema/commit/a02d3c5415d4efadd20b9d84cb2e7510c4c08077)) +* added GCM support for Variance destination ([#1396](https://github.com/rudderlabs/rudder-config-schema/issues/1396)) ([adaabcc](https://github.com/rudderlabs/rudder-config-schema/commit/adaabcc73f90b56c00c0c63df49b2c6fdef16aeb)) +* added GCM support for Vero ([#1385](https://github.com/rudderlabs/rudder-config-schema/issues/1385)) ([ac823a6](https://github.com/rudderlabs/rudder-config-schema/commit/ac823a6c2ef798504477866e3f6bab6cbe0c3eea)) +* added GCM support for Webhook destination ([#1394](https://github.com/rudderlabs/rudder-config-schema/issues/1394)) ([497fffc](https://github.com/rudderlabs/rudder-config-schema/commit/497fffcfa42ef0d036b6b4f455e5347f42bc8950)) +* adding app secret for facebook custom audience ([#1387](https://github.com/rudderlabs/rudder-config-schema/issues/1387)) ([56af844](https://github.com/rudderlabs/rudder-config-schema/commit/56af8449928bd4c0ad8c4ec24900730d595cae0b)) +* deprecate mixpanel apiSecret ([#1372](https://github.com/rudderlabs/rudder-config-schema/issues/1372)) ([1b95cc8](https://github.com/rudderlabs/rudder-config-schema/commit/1b95cc8d648b3a417b906b9fd3bd0f52d560b12a)) +* google ads toggle for enhanced conversion fields ([#1373](https://github.com/rudderlabs/rudder-config-schema/issues/1373)) ([be642d5](https://github.com/rudderlabs/rudder-config-schema/commit/be642d5f4a0bdd6c12627d083787fe55e4fa8118)) +* onboard adjust source ([#1388](https://github.com/rudderlabs/rudder-config-schema/issues/1388)) ([3baf6c2](https://github.com/rudderlabs/rudder-config-schema/commit/3baf6c26ce0afec099791f3a20c27ae992a84786)) +* onboard bingads enhanced conversions in device mode ([#1374](https://github.com/rudderlabs/rudder-config-schema/issues/1374)) ([33bb222](https://github.com/rudderlabs/rudder-config-schema/commit/33bb2220a62214ccfdad38339e6794166359c66a)) +* onboard koddi destination ([66af4d4](https://github.com/rudderlabs/rudder-config-schema/commit/66af4d42857a5c545cf2838afa8c9f5b6acc2d3b)) +* onboard new destination bing_ads_offline_conversions ([#1318](https://github.com/rudderlabs/rudder-config-schema/issues/1318)) ([08ef94e](https://github.com/rudderlabs/rudder-config-schema/commit/08ef94e431cb8da0ff26b0c4c76af749264dc170)) +* onboard slack source ([#1338](https://github.com/rudderlabs/rudder-config-schema/issues/1338)) ([63f23cb](https://github.com/rudderlabs/rudder-config-schema/commit/63f23cb1ba13235f15af12f67cfef026e6e5c59a)) +* update ui callout and regex for sftp ([#1401](https://github.com/rudderlabs/rudder-config-schema/issues/1401)) ([f09411a](https://github.com/rudderlabs/rudder-config-schema/commit/f09411a366da4b2c66a6fadd7eb175932807d47c)) + + +### Bug Fixes + +* emarsys UI title edit ([#1379](https://github.com/rudderlabs/rudder-config-schema/issues/1379)) ([d682083](https://github.com/rudderlabs/rudder-config-schema/commit/d6820835c62427ae469bce1716664b400b4196d4)) +* fixed schema validation issue ([c7fdb1c](https://github.com/rudderlabs/rudder-config-schema/commit/c7fdb1c1272e0ec3552c2d88186b6f5b2b5c0963)) +* formatting error ([c8d27b1](https://github.com/rudderlabs/rudder-config-schema/commit/c8d27b1d5100764fa11343ecd963ec129a7f7d09)) +* resolving comments ([3f4a061](https://github.com/rudderlabs/rudder-config-schema/commit/3f4a061430246efab433640b9f8d9448bc90c528)) +* update reddit_pixel with new event name and add test cases ([#1386](https://github.com/rudderlabs/rudder-config-schema/issues/1386)) ([e995a60](https://github.com/rudderlabs/rudder-config-schema/commit/e995a602f7ae1f36e43e1322ef5b312707f6eabe)) + ## [1.74.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.73.0...v1.74.0) (2024-05-13) diff --git a/package-lock.json b/package-lock.json index 61a089cd4..8bda6a43c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-config-schema", - "version": "1.74.0", + "version": "1.75.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-config-schema", - "version": "1.74.0", + "version": "1.75.0", "license": "MIT", "dependencies": { "ajv": "^8.12.0", diff --git a/package.json b/package.json index eefc559b0..0d3510022 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-config-schema", - "version": "1.74.0", + "version": "1.75.0", "description": "", "main": "src/index.ts", "private": true, diff --git a/src/configurations/destinations/bingads_offline_conversions/db-config.json b/src/configurations/destinations/bingads_offline_conversions/db-config.json index a56db09ff..3f8a8af38 100644 --- a/src/configurations/destinations/bingads_offline_conversions/db-config.json +++ b/src/configurations/destinations/bingads_offline_conversions/db-config.json @@ -5,21 +5,25 @@ "transformAtV1": "none", "supportsVisualMapper": true, "saveDestinationResponse": true, + "auth": { "type": "OAuth" }, "includeKeys": ["oneTrustCookieCategories"], "excludeKeys": [], - "supportedSourceTypes": ["warehouse", "shopify"], + "supportedSourceTypes": ["warehouse"], "supportedMessageTypes": { "cloud": ["record"] }, "syncBehaviours": ["mirror"], "disableJsonMapper": true, "supportedConnectionModes": { - "shopify": ["cloud"], "warehouse": ["cloud"] }, "destConfig": { - "defaultConfig": ["customerAccountId", "customerId", "oneTrustCookieCategories"], + "defaultConfig": [ + "rudderAccountId", + "customerAccountId", + "customerId", + "oneTrustCookieCategories" + ], "cloud": ["connectionMode"], - "warehouse": ["connectionMode"], - "shopify": ["connectionMode"] + "warehouse": ["connectionMode"] } }, "options": { "isBeta": true } diff --git a/src/configurations/destinations/klaviyo_bulk_upload/db-config.json b/src/configurations/destinations/klaviyo_bulk_upload/db-config.json new file mode 100644 index 000000000..0c6f2dfff --- /dev/null +++ b/src/configurations/destinations/klaviyo_bulk_upload/db-config.json @@ -0,0 +1,29 @@ +{ + "name": "KLAVIYO_BULK_UPLOAD", + "displayName": "Klaviyo Bulk Upload", + "config": { + "cdkV2Enabled": true, + "supportsVisualMapper": true, + "transformAtV1": "router", + "disableJsonMapper": true, + "syncBehaviours": ["upsert"], + "saveDestinationResponse": true, + "includeKeys": ["privateApiKey", "listId", "oneTrustCookieCategories"], + "excludeKeys": [], + "supportedSourceTypes": ["warehouse"], + "supportedConnectionModes": { + "cloud": ["cloud"], + "warehouse": ["cloud"] + }, + "supportedMessageTypes": { + "cloud": ["identify"] + }, + "destConfig": { + "defaultConfig": ["privateApiKey", "listId", "oneTrustCookieCategories"] + }, + "secretKeys": ["privateApiKey"] + }, + "options": { + "isBeta": true + } +} diff --git a/src/configurations/destinations/klaviyo_bulk_upload/schema.json b/src/configurations/destinations/klaviyo_bulk_upload/schema.json new file mode 100644 index 000000000..a0eda35b9 --- /dev/null +++ b/src/configurations/destinations/klaviyo_bulk_upload/schema.json @@ -0,0 +1,29 @@ +{ + "configSchema": { + "$schema": "http://json-schema.org/draft-07/schema#", + "required": ["privateApiKey"], + "type": "object", + "properties": { + "privateApiKey": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$" + }, + "listId": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + }, + "oneTrustCookieCategories": { + "type": "array", + "items": { + "type": "object", + "properties": { + "oneTrustCookieCategory": { + "type": "string", + "pattern": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$" + } + } + } + } + } + } +} diff --git a/src/configurations/destinations/klaviyo_bulk_upload/ui-config.json b/src/configurations/destinations/klaviyo_bulk_upload/ui-config.json new file mode 100644 index 000000000..434398126 --- /dev/null +++ b/src/configurations/destinations/klaviyo_bulk_upload/ui-config.json @@ -0,0 +1,117 @@ +{ + "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": "Private API Key", + "note": "Your Private API Key", + "configKey": "privateApiKey", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{1,100})$", + "regexErrorMessage": "Invalid Private API Key", + "placeholder": "e.g: QuIUHRj7XXX2L7eZDZiPQU", + "secret": true + } + ] + } + ] + }, + { + "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 destination-specific settings here", + "icon": "settings", + "groups": [ + { + "title": "List and subscription settings", + "note": "Update your list settings here", + "icon": "settings", + "fields": [ + { + "type": "textInput", + "label": "List Id", + "note": "The default list that you'd like to subscribe and add users to when you call", + "configKey": "listId", + "regex": "(^\\{\\{.*\\|\\|(.*)\\}\\}$)|(^env[.].+)|^(.{0,100})$", + "regexErrorMessage": "Invalid List Id", + "placeholder": "e.g: c59X3838", + "secret": false + } + ] + } + ] + }, + { + "title": "Other settings", + "note": "Configure advanced RudderStack features here", + "icon": "otherSettings", + "groups": [ + { + "title": "OneTrust consent settings", + "note": [ + "Enter your OneTrust consent category IDs if you have them configured. 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.", + { + "text": "Learn more ", + "link": "https://www.rudderstack.com/docs/sources/event-streams/sdks/consent-manager/onetrust/" + }, + "about RudderStack's OneTrust Consent Management feature." + ], + "fields": [ + { + "type": "tagInput", + "label": "Consent categories", + "note": "Input your OneTrust category IDs by pressing 'Enter' after each entry.", + "configKey": "oneTrustCookieCategories", + "tagKey": "oneTrustCookieCategory", + "placeholder": "e.g: C0001", + "default": [ + { + "oneTrustCookieCategory": "" + } + ] + } + ] + } + ] + } + ] + } + ], + "sdkTemplate": { + "title": "SDK settings", + "note": "not visible in the ui", + "fields": [] + } + } +} diff --git a/src/configurations/destinations/koddi/db-config.json b/src/configurations/destinations/koddi/db-config.json index aa06d0845..e31b453c9 100644 --- a/src/configurations/destinations/koddi/db-config.json +++ b/src/configurations/destinations/koddi/db-config.json @@ -1,6 +1,6 @@ { "name": "KODDI", - "displayName": "koddi", + "displayName": "Koddi", "config": { "cdkV2Enabled": true, "transformAtV1": "router", diff --git a/src/configurations/destinations/reddit_pixel/schema.json b/src/configurations/destinations/reddit_pixel/schema.json index cdaf4ffd2..f7a7d249d 100644 --- a/src/configurations/destinations/reddit_pixel/schema.json +++ b/src/configurations/destinations/reddit_pixel/schema.json @@ -56,7 +56,7 @@ "connectionMode": { "type": "object", "properties": { - "web": { "type": "string", "enum": ["web"] } + "web": { "type": "string", "enum": ["device"] } } }, "eventFilteringOption": { diff --git a/test/data/validation/destinations/klaviyo_bulk_upload.json b/test/data/validation/destinations/klaviyo_bulk_upload.json new file mode 100644 index 000000000..c9af94cf2 --- /dev/null +++ b/test/data/validation/destinations/klaviyo_bulk_upload.json @@ -0,0 +1,25 @@ +[ + { + "config": { + "oneTrustCookieCategories": [ + { + "oneTrustCookieCategory": "Cookie1" + } + ] + }, + "result": false, + "err": [" must have required property 'privateApiKey'"] + }, + { + "config": { + "privateApiKey": "WfO9dsffsf1", + "listId": "123456", + "oneTrustCookieCategories": [ + { + "oneTrustCookieCategory": "" + } + ] + }, + "result": true + } +] diff --git a/test/data/validation/destinations/reddit_pixel.json b/test/data/validation/destinations/reddit_pixel.json index e7061a5de..bce5b8b82 100644 --- a/test/data/validation/destinations/reddit_pixel.json +++ b/test/data/validation/destinations/reddit_pixel.json @@ -86,6 +86,9 @@ { "to": "Search", "from": "Search" }, { "to": "SignUp", "from": "SignUp" } ], + "connectionMode": { + "web": "device" + }, "whitelistedEvents": [], "blacklistedEvents": [], "oneTrustCookieCategories": [] @@ -104,6 +107,9 @@ "resolutionStrategy": "nor" } ] + }, + "connectionMode": { + "web": "device" } }, "result": false, @@ -158,5 +164,79 @@ }, "result": false, "err": ["consentManagement.web.0.provider must be equal to one of the allowed values"] + }, + { + "testTitle": "With invalid connectionMode", + "config": { + "eventFilteringOption": "disable", + "advertiserId": "01234567890123456789012345678901234567890123456789", + "whitelistedEvents": [], + "blacklistedEvents": [], + "oneTrustCookieCategories": [], + "connectionMode": { + "web": "cloud" + } + }, + "result": false, + "err": ["connectionMode.web must be equal to one of the allowed values"] + }, + { + "testTitle": "check with all possible event names", + "config": { + "advertiserId": "12345", + "eventFilteringOption": "disable", + "eventMappingFromConfig": [ + { + "from": "123123", + "to": "AddToCart" + }, + { + "to": "AddToWishlist", + "from": "1" + }, + { + "to": "Purchase", + "from": "2" + }, + { + "to": "Lead", + "from": "3" + }, + { + "to": "ViewContent", + "from": "4" + }, + { + "to": "Search", + "from": "5" + }, + { + "to": "SignUp", + "from": "6" + }, + { + "to": "AddToWishlist", + "from": "6" + } + ], + "whitelistedEvents": [], + "blacklistedEvents": [], + "useNativeSDK": { + "web": true + }, + "connectionMode": { + "web": "device" + }, + "consentManagement": { + "web": [ + { + "provider": "oneTrust", + "resolutionStrategy": "", + "consents": [] + } + ] + } + }, + "result": true } ]