From bd8315a0aa90d508fdc19cff0686b46a7b074222 Mon Sep 17 00:00:00 2001 From: Desu Sai Venkat Date: Wed, 21 Feb 2024 14:07:32 +0530 Subject: [PATCH 1/7] feat: added device mode support for flutter source for kochava destination --- src/configurations/destinations/kochava/db-config.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/configurations/destinations/kochava/db-config.json b/src/configurations/destinations/kochava/db-config.json index b3dfe303d..2e7603ff5 100644 --- a/src/configurations/destinations/kochava/db-config.json +++ b/src/configurations/destinations/kochava/db-config.json @@ -37,7 +37,8 @@ }, "supportedConnectionModes": { "android": ["cloud", "device"], - "ios": ["cloud", "device"] + "ios": ["cloud", "device"], + "flutter": ["cloud", "device"] }, "destConfig": { "defaultConfig": [ @@ -48,6 +49,7 @@ "oneTrustCookieCategories" ], "android": ["useNativeSDK"], + "flutter": ["useNativeSDK", "appTrackingTransparency", "skAdNetwork"], "ios": ["useNativeSDK", "appTrackingTransparency", "skAdNetwork"] }, "secretKeys": [] From 1cfb21975b4cd4c292665529131eb6323ab7abee Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Mon, 26 Feb 2024 18:42:07 +0530 Subject: [PATCH 2/7] chore: updates bing ads to 8.2.11 --- src/configurations/sources/singer_bing_ads/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_bing_ads/db-config.json b/src/configurations/sources/singer_bing_ads/db-config.json index 12e59b28d..4ca65f0a8 100644 --- a/src/configurations/sources/singer_bing_ads/db-config.json +++ b/src/configurations/sources/singer_bing_ads/db-config.json @@ -3,7 +3,7 @@ "category": "singer-protocol", "displayName": "Bing Ads", "options": { - "image": "rudderstack/source-bing-ads:v5.3.0" + "image": "rudderstack/source-bing-ads:v8.2.11" }, "type": "cloudSource" } From 0717f8fe9b79d29dfc27d4cc926358030aecfebf Mon Sep 17 00:00:00 2001 From: a-rampalli Date: Mon, 26 Feb 2024 18:42:22 +0530 Subject: [PATCH 3/7] chore: updates fb ads to 8.2.11 --- .../sources/singer_facebook_marketing/db-config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/configurations/sources/singer_facebook_marketing/db-config.json b/src/configurations/sources/singer_facebook_marketing/db-config.json index 42f57300f..2341090e6 100644 --- a/src/configurations/sources/singer_facebook_marketing/db-config.json +++ b/src/configurations/sources/singer_facebook_marketing/db-config.json @@ -3,7 +3,7 @@ "category": "singer-protocol", "displayName": "Facebook Ads", "options": { - "image": "rudderstack/source-facebook-marketing:v8.2.8" + "image": "rudderstack/source-facebook-marketing:v8.2.11" }, "type": "cloudSource" } From 61e24c78ff36b678f5fb1610e776885aebb39dbb Mon Sep 17 00:00:00 2001 From: Gauravudia <60897972+Gauravudia@users.noreply.github.com> Date: Tue, 27 Feb 2024 12:09:37 +0530 Subject: [PATCH 4/7] feat: add event mapping support for branch destination (#1238) --- .../destinations/branch/db-config.json | 1 + .../destinations/branch/ui-config.json | 125 +++++++++++++++++- 2 files changed, 123 insertions(+), 3 deletions(-) diff --git a/src/configurations/destinations/branch/db-config.json b/src/configurations/destinations/branch/db-config.json index b5c71f200..05f8caaef 100644 --- a/src/configurations/destinations/branch/db-config.json +++ b/src/configurations/destinations/branch/db-config.json @@ -46,6 +46,7 @@ "destConfig": { "defaultConfig": [ "branchKey", + "eventsMapping", "blacklistedEvents", "whitelistedEvents", "eventFilteringOption", diff --git a/src/configurations/destinations/branch/ui-config.json b/src/configurations/destinations/branch/ui-config.json index 53f068da0..adc0b7838 100644 --- a/src/configurations/destinations/branch/ui-config.json +++ b/src/configurations/destinations/branch/ui-config.json @@ -1,7 +1,7 @@ { "uiConfig": [ { - "title": "1. Connection Settings", + "title": "Connection Settings", "fields": [ { "type": "textInput", @@ -15,7 +15,126 @@ ] }, { - "title": "2. Native SDK", + "title": "Other Settings", + "fields": [ + { + "type": "dynamicSelectForm", + "label": "Map Your Events To Branch Events", + "labelLeft": "Event Name", + "labelRight": "Branch Event Name", + "value": "eventsMapping", + "keyLeft": "from", + "keyRight": "to", + "required": false, + "placeholderLeft": "e.g: Order Completed", + "placeholderRight": "e.g: PURCHASE", + "options": [ + { + "name": "ACHIEVE_LEVEL", + "value": "ACHIEVE_LEVEL" + }, + { + "name": "ADD_PAYMENT_INFO", + "value": "ADD_PAYMENT_INFO" + }, + { + "name": "ADD_TO_CART", + "value": "ADD_TO_CART" + }, + { + "name": "ADD_TO_WISHLIST", + "value": "ADD_TO_WISHLIST" + }, + { + "name": "CLICK_AD", + "value": "CLICK_AD" + }, + { + "name": "COMPLETE_REGISTRATION", + "value": "COMPLETE_REGISTRATION" + }, + { + "name": "COMPLETE_STREAM", + "value": "COMPLETE_STREAM" + }, + { + "name": "COMPLETE_TUTORIAL", + "value": "COMPLETE_TUTORIAL" + }, + { + "name": "INVITE", + "value": "INVITE" + }, + { + "name": "INITIATE_PURCHASE", + "value": "INITIATE_PURCHASE" + }, + { + "name": "INITIATE_STREAM", + "value": "INITIATE_STREAM" + }, + { + "name": "LOGIN", + "value": "LOGIN" + }, + { + "name": "PURCHASE", + "value": "PURCHASE" + }, + { + "name": "RATE", + "value": "RATE" + }, + { + "name": "RESERVE", + "value": "RESERVE" + }, + { + "name": "SEARCH", + "value": "SEARCH" + }, + { + "name": "SHARE", + "value": "SHARE" + }, + { + "name": "SPEND_CREDITS", + "value": "SPEND_CREDITS" + }, + { + "name": "START_TRIAL", + "value": "START_TRIAL" + }, + { + "name": "SUBSCRIBE", + "value": "SUBSCRIBE" + }, + { + "name": "UNLOCK_ACHIEVEMENT", + "value": "UNLOCK_ACHIEVEMENT" + }, + { + "name": "VIEW_AD", + "value": "VIEW_AD" + }, + { + "name": "VIEW_CART", + "value": "VIEW_CART" + }, + { + "name": "VIEW_ITEM", + "value": "VIEW_ITEM" + }, + { + "name": "VIEW_ITEMS", + "value": "VIEW_ITEMS" + } + ] + } + ] + }, + { + "title": "Native SDK", "fields": [ { "type": "checkbox", @@ -26,7 +145,7 @@ ] }, { - "title": "3. Client-side Events Filtering", + "title": "Client-side Events Filtering", "sectionNote": "Applicable only for device-mode integrations. If enabled, it works only with either allowlisted or denylisted events", "fields": [ { From b3bd950201278e468353bef71d52f77ef429d092 Mon Sep 17 00:00:00 2001 From: Rohith BCS Date: Tue, 27 Feb 2024 12:11:15 +0530 Subject: [PATCH 5/7] chore: move WH Postgres to New Form Builder (#1236) --- .../destinations/postgres/db-config.json | 7 +- .../destinations/postgres/ui-config.json | 1402 ++++++++++------- .../destinations/db-config-schema.json | 10 + 3 files changed, 810 insertions(+), 609 deletions(-) diff --git a/src/configurations/destinations/postgres/db-config.json b/src/configurations/destinations/postgres/db-config.json index 4c1bfb407..9bd4e9f09 100644 --- a/src/configurations/destinations/postgres/db-config.json +++ b/src/configurations/destinations/postgres/db-config.json @@ -29,7 +29,9 @@ "reactnative": ["cloud"], "flutter": ["cloud"], "cordova": ["cloud"], - "shopify": ["cloud"] + "shopify": ["cloud"], + "cloud": ["cloud"], + "cloudSource": ["cloud"] }, "destConfig": { "defaultConfig": [ @@ -79,6 +81,7 @@ "sasToken", "secretAccessKey", "credentials" - ] + ], + "immutableKeys": ["namespace"] } } diff --git a/src/configurations/destinations/postgres/ui-config.json b/src/configurations/destinations/postgres/ui-config.json index caa79e024..3441b31da 100644 --- a/src/configurations/destinations/postgres/ui-config.json +++ b/src/configurations/destinations/postgres/ui-config.json @@ -1,614 +1,802 @@ { - "uiConfig": [ - { - "title": "Connection Credentials", - "fields": [ - { - "type": "textInput", - "label": "Host", - "value": "host", - "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$", - "regexErrorMessage": "Invalid Host", - "placeholder": "e.g: psql.mydomain.com", - "required": true - }, - { - "type": "textInput", - "label": "Database", - "value": "database", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Database", - "placeholder": "e.g: rudderdb", - "required": true - }, - { - "type": "textInput", - "label": "User", - "value": "user", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid User", - "placeholder": "e.g: rudder", - "required": true - }, - { - "type": "textInput", - "label": "Password", - "value": "password", - "placeholder": "e.g: rudder-password", - "regex": ".*", - "required": true - }, - { - "type": "textInput", - "label": "Port", - "value": "port", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Port", - "placeholder": "5432", - "required": true - }, - { - "type": "textInput", - "label": "Namespace", - "labelNote": "Schema name for the warehouse where the tables are created", - "value": "namespace", - "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$", - "regexErrorMessage": "Invalid Namespace", - "required": false, - "placeholder": "e.g: rudder-schema", - "footerNote": "Default will be the source name" - }, - { - "type": "singleSelect", - "label": "SSL Mode", - "value": "sslMode", - "options": [ - { - "name": "disable", - "value": "disable" - }, - { - "name": "require", - "value": "require" - }, - { - "name": "verify ca", - "value": "verify-ca" - } - ], - "defaultOption": { - "name": "disable", - "value": "disable" + "uiConfig": { + "baseTemplate": [ + { + "title": "Initial Setup", + "note": "Review how this destination is set up", + "sections": [ + { + "title": "Connection settings", + "note": "Configure connection settings here", + "icon": "otherSettings", + "groups": [ + { + "title": "Connection Credentials", + "note": "Update your connection credentials here", + "fields": [ + { + "type": "textInput", + "label": "Host", + "configKey": "host", + "regex": "(?!.*.ngrok.io)^(.{0,100})$", + "regexErrorMessage": "Invalid Host", + "placeholder": "e.g: psql.mydomain.com", + "secret": false + }, + { + "type": "textInput", + "label": "Database", + "configKey": "database", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid Database", + "placeholder": "e.g: rudderdb", + "secret": false + }, + { + "type": "textInput", + "label": "User", + "configKey": "user", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid User", + "placeholder": "e.g: rudder", + "secret": false + }, + { + "type": "textInput", + "label": "Password", + "configKey": "password", + "regex": ".*", + "placeholder": "e.g: rudder-password", + "secret": true + }, + { + "type": "textInput", + "label": "Port", + "configKey": "port", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid Port", + "placeholder": "5432", + "secret": false + } + ] + }, + { + "title": "Security Settings", + "note": "Security requirements for your warehouse", + "fields": [ + { + "type": "singleSelect", + "label": "SSL Mode", + "configKey": "sslMode", + "note": "Select the SSL Mode required", + "options": [ + { + "label": "disable", + "value": "disable" + }, + { + "label": "require", + "value": "require" + }, + { + "label": "verify ca", + "value": "verify-ca" + } + ], + "default": "disable" + }, + { + "type": "textInput", + "label": "Client Key Pem File", + "configKey": "clientKey", + "regex": "-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----", + "regexErrorMessage": "Invalid Client Key Pem File", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "sslMode", + "value": "verify-ca" + } + ] + } + }, + { + "type": "textInput", + "label": "Client Cert Pem File", + "configKey": "clientCert", + "regex": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----", + "regexErrorMessage": "Invalid Client Cert Pem File", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "sslMode", + "value": "verify-ca" + } + ] + } + }, + { + "type": "textInput", + "label": "Server CA Pem File", + "configKey": "serverCA", + "regex": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----", + "regexErrorMessage": "Invalid Server CA Pem File", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "sslMode", + "value": "verify-ca" + } + ] + } + }, + { + "type": "checkbox", + "label": "SSH Connection", + "configKey": "useSSH", + "note": "Activate to initiate SSH tunnel connection", + "default": false, + "preRequisites": { + "featureFlags": [ + { + "configKey": "WAREHOUSE_SSH_TUNNELLING", + "value": true + } + ] + } + }, + { + "type": "textInput", + "label": "SSH Host", + "configKey": "sshHost", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid SSH Host", + "placeholder": "e.g: www.abc.com", + "preRequisites": { + "featureFlags": [ + { + "configKey": "WAREHOUSE_SSH_TUNNELLING", + "value": true + } + ], + "fields": [ + { + "configKey": "useSSH", + "value": true + } + ] + } + }, + { + "type": "textInput", + "label": "SSH Port", + "configKey": "sshPort", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid SSH Port", + "placeholder": "e.g: 22", + "preRequisites": { + "featureFlags": [ + { + "configKey": "WAREHOUSE_SSH_TUNNELLING", + "value": true + } + ], + "fields": [ + { + "configKey": "useSSH", + "value": true + } + ] + } + }, + { + "type": "textInput", + "label": "SSH User", + "configKey": "sshUser", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid SSH User", + "placeholder": "e.g: user1", + "preRequisites": { + "featureFlags": [ + { + "configKey": "WAREHOUSE_SSH_TUNNELLING", + "value": true + } + ], + "fields": [ + { + "configKey": "useSSH", + "value": true + } + ] + } + } + ] + }, + { + "title": "Object Storage Configuration", + "note": "Update where do you want the data staged to be stored", + "fields": [ + { + "type": "checkbox", + "label": "Toggle on to use RudderStack manage storage object for staging data", + "configKey": "useRudderStorage", + "note": "All the Data is Staged in Rudderstack Managed Object Storage", + "default": false + }, + { + "type": "singleSelect", + "label": "Choose your Storage Provider", + "configKey": "bucketProvider", + "options": [ + { + "label": "S3", + "value": "S3" + }, + { + "label": "GCS", + "value": "GCS" + }, + { + "label": "AZURE_BLOB", + "value": "AZURE_BLOB" + }, + { + "label": "MINIO", + "value": "MINIO" + } + ], + "default": "MINIO", + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + } + ] + } + }, + { + "type": "textInput", + "label": "Staging GCS Object Storage Bucket Name", + "note": "GCS Bucket to store data before loading into Postgres", + "configKey": "bucketName", + "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$", + "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name", + "placeholder": "e.g: gcs-event-logs", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "GCS" + } + ] + } + }, + { + "type": "textInput", + "label": "S3 Bucket to store data before loading into Postgres", + "note": "Please make sure the bucket exists in your S3", + "configKey": "bucketName", + "regex": "^((?!^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", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "S3" + } + ] + } + }, + { + "type": "textInput", + "label": "Staging Azure Blob Storage Container Name", + "note": "Container to store data before loading into Postgres", + "configKey": "containerName", + "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$", + "regexErrorMessage": "Invalid Staging Azure Blob Object Storage Bucket Name", + "placeholder": "e.g: azure-blob-event-logs", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "AZURE_BLOB" + } + ] + } + }, + { + "type": "textInput", + "label": "Staging MINIO Storage Bucket Name", + "note": "MINIO Bucket to store data before loading into Postgres", + "configKey": "bucketName", + "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$", + "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name", + "placeholder": "e.g: minio-event-logs", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "MINIO" + } + ] + } + }, + { + "type": "checkbox", + "label": "Role Based Authentication", + "configKey": "roleBasedAuth", + "default": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "S3" + } + ] + } + }, + { + "type": "textInput", + "label": "IAM Role ARN", + "configKey": "iamRoleARN", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid Role ARN", + "placeholder": "e.g: arn:aws:iam::123456789012:role/S3Access", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "S3" + }, + { + "configKey": "roleBasedAuth", + "value": true + } + ] + } + }, + { + "type": "textInput", + "label": "AWS Access Key ID", + "configKey": "accessKeyID", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid AWS Access Key ID", + "placeholder": "e.g: access-key-id", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "S3" + }, + { + "configKey": "roleBasedAuth", + "value": false + } + ] + } + }, + { + "type": "textInput", + "label": "AWS Secret Access Key", + "configKey": "accessKey", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid AWS Secret Access Key", + "placeholder": "e.g: access-secret-key-id", + "secret": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "S3" + }, + { + "configKey": "roleBasedAuth", + "value": false + } + ] + } + }, + { + "type": "checkbox", + "label": "Use shared access signature (SAS) Tokens", + "note": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)", + "configKey": "useSASTokens", + "default": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "AZURE_BLOB" + } + ] + } + }, + { + "type": "textInput", + "label": "Azure Blob Storage Account Name", + "configKey": "accountName", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid Azure Blob Storage Account Name", + "placeholder": "e.g: account-name", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "AZURE_BLOB" + } + ] + } + }, + { + "type": "textInput", + "label": "Azure Blob Storage Account Key", + "configKey": "accountKey", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid Azure Blob Storage Account Key", + "placeholder": "e.g: account-key", + "secret": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "AZURE_BLOB" + }, + { + "configKey": "useSASTokens", + "value": false + } + ] + } + }, + { + "type": "textInput", + "label": "Azure Blob Storage SAS Token", + "configKey": "sasToken", + "regex": "^(.+)$", + "regexErrorMessage": "Invalid Azure Blob Storage SAS Token", + "placeholder": "e.g: sas-token", + "secret": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "AZURE_BLOB" + }, + { + "configKey": "useSASTokens", + "value": true + } + ] + } + }, + { + "type": "textInput", + "label": "Credentials", + "note": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage", + "configKey": "credentials", + "regex": ".*", + "regexErrorMessage": "Invalid Credentials", + "placeholder": "", + "secret": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "GCS" + } + ] + } + }, + { + "type": "textInput", + "label": "MinIO Endpoint", + "configKey": "endPoint", + "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$", + "regexErrorMessage": "Invalid MinIO Endpoint", + "placeholder": "e.g: play.min.io:9000", + "secret": false, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "MINIO" + } + ] + } + }, + { + "type": "textInput", + "label": "MINIO Access Key ID", + "configKey": "accessKeyID", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid MinIO Access Key ID", + "placeholder": "e.g: access-key-id", + "secret": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "MINIO" + } + ] + } + }, + { + "type": "textInput", + "label": "MINIO Secret Access Key", + "configKey": "secretAccessKey", + "regex": "^(.{0,100})$", + "regexErrorMessage": "Invalid MinIO Secret Access Key", + "placeholder": "e.g: secret-access-key", + "secret": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "MINIO" + } + ] + } + }, + { + "type": "checkbox", + "label": "Use SSL for connection", + "configKey": "useSSL", + "default": true, + "preRequisites": { + "fields": [ + { + "configKey": "useRudderStorage", + "value": false + }, + { + "configKey": "bucketProvider", + "value": "MINIO" + } + ] + } + } + ] + } + ] }, - "required": true - }, - { - "type": "textInput", - "required": true, - "regex": "-----BEGIN RSA PRIVATE KEY-----.*-----END RSA PRIVATE KEY-----", - "preRequisiteField": { - "name": "sslMode", - "selectedValue": "verify-ca" + { + "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": [] + } + ] }, - "label": "Client Key Pem File", - "value": "clientKey" - }, - { - "type": "textInput", - "required": true, - "regex": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----", - "preRequisiteField": { - "name": "sslMode", - "selectedValue": "verify-ca" - }, - "label": "Client Cert Pem File", - "value": "clientCert" - }, - { - "type": "textInput", - "required": true, - "regex": "-----BEGIN CERTIFICATE-----.*-----END CERTIFICATE-----", - "preRequisiteField": { - "name": "sslMode", - "selectedValue": "verify-ca" - }, - "label": "Server CA Pem File", - "value": "serverCA" - }, - { - "type": "singleSelect", - "label": "Sync Frequency", - "value": "syncFrequency", - "options": [ - { - "name": "Every 30 minutes", - "value": "30" - }, - { - "name": "Every 1 hour", - "value": "60" - }, - { - "name": "Every 3 hours", - "value": "180" - }, - { - "name": "Every 6 hours", - "value": "360" - }, - { - "name": "Every 12 hours", - "value": "720" - }, - { - "name": "Every 24 hours", - "value": "1440" - } - ], - "defaultOption": { - "name": "Every 30 minutes", - "value": "30" - }, - "required": false - }, - { - "type": "timePicker", - "label": "Sync Starting At (Optional)", - "value": "syncStartAt", - "options": { - "omitSeconds": true, - "minuteStep": 15 - }, - "required": false, - "footerNote": "Note: Please specify time in UTC" - }, - { - "type": "timeRangePicker", - "label": "Exclude window (Optional)", - "value": "excludeWindow", - "startTime": { - "label": "start time", - "value": "excludeWindowStartTime" - }, - "endTime": { - "label": "end time", - "value": "excludeWindowEndTime" - }, - "options": { - "omitSeconds": true, - "minuteStep": 1 - }, - "required": false, - "footerNote": "Note: Please specify time in UTC" - }, - { - "type": "textInput", - "label": "JSON columns (Optional)", - "labelNote": "Specify required JSON properties in dot notation separated by commas", - "value": "jsonPaths", - "regex": "^(.*)$", - "placeholder": "e.g: testMap.nestedMap, testArray", - "required": false, - "footerURL": { - "link": "https://www.rudderstack.com/docs/destinations/warehouse-destinations/postgresql/#configuring-postgresql-destination-in-rudderstack", - "text": "Instructions for setting up the JSON columns" - } - } - ] - }, - { - "title": "Object Storage Configuration", - "fields": [ - { - "type": "checkbox", - "label": "Use RudderStack managed object storage", - "value": "useRudderStorage", - "default": false, - "footerNote": "Note: Only available for RudderStack managed data planes" - }, - { - "type": "singleSelect", - "label": "Choose your Storage Provider", - "value": "bucketProvider", - "options": [ - { - "name": "S3", - "value": "S3" - }, - { - "name": "GCS", - "value": "GCS" - }, - { - "name": "AZURE_BLOB", - "value": "AZURE_BLOB" - }, - { - "name": "MINIO", - "value": "MINIO" - } - ], - "defaultOption": { - "name": "MINIO", - "value": "MINIO" - }, - "required": true, - "preRequisiteField": { - "name": "useRudderStorage", - "selectedValue": false + { + "groups": [ + { + "icon": "settings", + "note": "", + "title": "Namespace settings", + "callout": { + "message": "Schema name for the warehouse where the tables are created", + "type": "info" + }, + "fields": [ + { + "type": "textInput", + "label": "Namespace", + "note": "Schema name for the warehouse where the tables are created,Default will be the source name", + "configKey": "namespace", + "regex": "^((?!pg_|PG_|pG_|Pg_).{0,64})$", + "regexErrorMessage": "Invalid Namespace", + "placeholder": "e.g: rudder-schema", + "secret": false + } + ] + } + ] } - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "S3" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Staging S3 Storage Bucket Name", - "labelNote": "S3 Bucket to store data before loading into Postgres", - "value": "bucketName", - "regex": "^((?!^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, - "footerNote": "Please make sure the bucket exists in your S3" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "GCS" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Staging GCS Object Storage Bucket Name", - "labelNote": "GCS Bucket to store data before loading into Postgres", - "value": "bucketName", - "regex": "^((?!goog)(?!.*google.*)(?!^(\\d+(\\.|$)){4}$)(?!.*\\.\\..*)[a-z0-9][a-z0-9-._]{1,61}[a-z0-9])$", - "regexErrorMessage": "Invalid Staging GCS Object Storage Bucket Name", - "placeholder": "e.g: gcs-event-logs", - "required": true, - "footerNote": "Please make sure the bucket exists in your GCS" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "AZURE_BLOB" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Staging Azure Blob Storage Container Name", - "labelNote": "Container to store data before loading into Postgres", - "value": "containerName", - "regex": "^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$", - "regexErrorMessage": "Invalid Staging Azure Blob Storage Container Name", - "required": true, - "placeholder": "e.g: azure-event-logs", - "footerNote": "Please make sure the container exists in your Azure Blob Storage" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "MINIO" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Staging MINIO Storage Bucket Name", - "labelNote": "MINIO Bucket to store data before loading into Postgres", - "value": "bucketName", - "regex": "^((?!^(\\d+(\\.|$)){4}$)[a-z0-9][a-z0-9-.]{1,61}[a-z0-9])$", - "regexErrorMessage": "Invalid Staging MINIO Storage Bucket Name", - "required": true, - "placeholder": "e.g: minio-event-logs", - "footerNote": "Please make sure the bucket exists in your MINIO" - }, - { - "type": "checkbox", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "S3" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Role Based Authentication", - "value": "roleBasedAuth", - "default": true - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "S3" - }, - { - "name": "useRudderStorage", - "selectedValue": false - }, - { - "name": "roleBasedAuth", - "selectedValue": true - } - ], - "label": "IAM Role ARN", - "value": "iamRoleARN", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Role ARN", - "required": true, - "placeholder": "e.g: arn:aws:iam::12345X789012:role/S3Access", - "footerURL": { - "link": "https://www.rudderstack.com/docs/destinations/aws-iam-role-for-rudderstack/", - "text": "Instructions for creating IAM Role" + ] + }, + { + "title": "Configuration settings", + "note": "Manage the settings for your destination", + "sections": [ + { + "title": "Other settings", + "note": "Configure advanced RudderStack features here", + "icon": "otherSettings", + "groups": [ + { + "title": "Advanced Settings", + "fields": [ + { + "type": "singleSelect", + "label": "Sync Frequency", + "configKey": "syncFrequency", + "placeholder": "e.g: Credit card visit", + "options": [ + { + "label": "Every 30 minutes", + "value": "30" + }, + { + "label": "Every 1 hour", + "value": "60" + }, + { + "label": "Every 3 hours", + "value": "180" + }, + { + "label": "Every 6 hours", + "value": "360" + }, + { + "label": "Every 12 hours", + "value": "720" + }, + { + "label": "Every 24 hours", + "value": "1440" + } + ], + "default": "180" + }, + { + "type": "textInput", + "label": "JSON columns (Optional)", + "note": "Specify required JSON properties in dot notation separated by commas", + "configKey": "jsonPaths", + "regex": "^(.*)$", + "regexErrorMessage": "Invalid Columns", + "placeholder": "e.g: testMap.nestedMap, testArray", + "secret": false + }, + { + "type": "timePicker", + "label": "Sync Starting At (Optional)", + "note": "Please specify time in UTC", + "configKey": "syncStartAt", + "options": { + "omitSeconds": true, + "minuteStep": 15 + } + }, + { + "type": "timeRangePicker", + "label": "Exclude window (Optional)", + "note": "Please specify time in UTC", + "configKey": "excludeWindow", + "startTimeLabel": "Start time", + "startTimeKey": "excludeWindowStartTime", + "endTimeLabel": "End time", + "endTimeKey": "excludeWindowEndTime", + "default": { "excludeWindowStartTime": "", "excludeWindowEndTime": "" }, + "options": { + "omitSeconds": true, + "minuteStep": 1 + } + } + ] + }, + { + "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": "" + } + ] + } + ] + } + ] } - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "S3" - }, - { - "name": "useRudderStorage", - "selectedValue": false - }, - { - "name": "roleBasedAuth", - "selectedValue": false - } - ], - "label": "AWS Access Key ID", - "value": "accessKeyID", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid AWS Access Key ID", - "required": true, - "placeholder": "e.g: access-key-id" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "S3" - }, - { - "name": "useRudderStorage", - "selectedValue": false - }, - { - "name": "roleBasedAuth", - "selectedValue": false - } - ], - "label": "AWS Secret Access Key", - "value": "accessKey", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid AWS Secret Access Key", - "required": true, - "placeholder": "e.g: secret-access-key" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "AZURE_BLOB" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Azure Blob Storage Account Name", - "value": "accountName", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Azure Blob Storage Account Name", - "required": true, - "placeholder": "e.g: account-name" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "AZURE_BLOB" - }, - { - "name": "useRudderStorage", - "selectedValue": false - }, - { - "name": "useSASTokens", - "selectedValue": false - } - ], - "label": "Azure Blob Storage Account Key", - "value": "accountKey", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Azure Blob Storage Account Key", - "required": true, - "secret": true, - "placeholder": "e.g: account-key" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "AZURE_BLOB" - }, - { - "name": "useRudderStorage", - "selectedValue": false - }, - { - "name": "useSASTokens", - "selectedValue": true - } - ], - "label": "Azure Blob Storage SAS Token", - "value": "sasToken", - "regex": "^(.+)$", - "regexErrorMessage": "Invalid Azure Blob Storage SAS Token", - "required": true, - "placeholder": "e.g: sas-token", - "secret": true - }, - { - "type": "checkbox", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "AZURE_BLOB" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Use shared access signature (SAS) Tokens", - "value": "useSASTokens", - "default": false, - "footerNote": "Use this to Grant limited access to Azure Storage resources using shared access signatures (SAS)" - }, - { - "type": "textareaInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "GCS" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Credentials", - "labelNote": "GCP Service Account credentials JSON for RudderStack to use in loading data into your Google Cloud Storage", - "value": "credentials", - "regex": ".*", - "required": true, - "footerNote": "Create a service account in your GCP Project for RudderStack with roles of 'storage.objectCreator'" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "MINIO" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "MinIO Endpoint", - "value": "endPoint", - "regex": "(?!.*\\.ngrok\\.io)^(.{0,100})$", - "regexErrorMessage": "Invalid MinIO Endpoint", - "required": true, - "placeholder": "e.g: play.min.io:9000" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "MINIO" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "MINIO Access Key ID", - "value": "accessKeyID", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid MinIO Access Key ID", - "required": true, - "placeholder": "e.g: access-key-id" - }, - { - "type": "textInput", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "MINIO" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "MINIO Secret Access Key", - "value": "secretAccessKey", - "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid MinIO Secret Access Key", - "required": true, - "placeholder": "e.g: secret-access-key" - }, - { - "type": "checkbox", - "preRequisiteField": [ - { - "name": "bucketProvider", - "selectedValue": "MINIO" - }, - { - "name": "useRudderStorage", - "selectedValue": false - } - ], - "label": "Use SSL for connection", - "value": "useSSL", - "default": true - } - ] - }, - { - "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 - } - ] - } - ] + ] + } + ], + "sdkTemplate": { + "title": "SDK settings", + "note": "not visible in the ui", + "fields": [] } - ] + } } diff --git a/src/schemas/destinations/db-config-schema.json b/src/schemas/destinations/db-config-schema.json index c852504b2..1161f56d9 100644 --- a/src/schemas/destinations/db-config-schema.json +++ b/src/schemas/destinations/db-config-schema.json @@ -286,6 +286,16 @@ }, "uniqueItems": true }, + "immutableKeys": { + "type": "array", + "title": "Immutable Keys", + "description": "The keys that are to be treated as Immutable in the destination configuration.", + "$comment": "In the UI, these fields can only be set in the creation flow and cannot be edited again.", + "items": { + "type": "string" + }, + "uniqueItems": true + }, "auth": { "type": "object", "title": "Authentication", From 8c8dd78b8172a67a72c4d9dd17762e1f6c7aa73e Mon Sep 17 00:00:00 2001 From: Gauravudia <60897972+Gauravudia@users.noreply.github.com> Date: Tue, 27 Feb 2024 12:13:11 +0530 Subject: [PATCH 6/7] chore: rename advertiserId to pixelId for reddit pixel (#1239) --- src/configurations/destinations/reddit_pixel/ui-config.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/configurations/destinations/reddit_pixel/ui-config.json b/src/configurations/destinations/reddit_pixel/ui-config.json index 48dd47325..b04018901 100644 --- a/src/configurations/destinations/reddit_pixel/ui-config.json +++ b/src/configurations/destinations/reddit_pixel/ui-config.json @@ -5,14 +5,14 @@ "fields": [ { "type": "textInput", - "label": "Advertiser ID", + "label": "Pixel ID", "value": "advertiserId", "regex": "^(.{0,100})$", - "regexErrorMessage": "Invalid Advertiser ID", + "regexErrorMessage": "Invalid Pixel ID", "required": true, "placeholder": "e.g: t1_d2XXc27c", "secret": true, - "footerNote": "Your Advertiser ID" + "footerNote": "Your Pixel ID" }, { "type": "dynamicSelectForm", From e3ee3c65d287edb16513ea4c644266a835abd14d Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Tue, 27 Feb 2024 07:01:31 +0000 Subject: [PATCH 7/7] chore(release): 1.66.0 --- CHANGELOG.md | 8 ++++++++ package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 49c44291f..b8f02f820 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,14 @@ 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.66.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.65.0...v1.66.0) (2024-02-27) + + +### Features + +* add event mapping support for branch destination ([#1238](https://github.com/rudderlabs/rudder-config-schema/issues/1238)) ([61e24c7](https://github.com/rudderlabs/rudder-config-schema/commit/61e24c78ff36b678f5fb1610e776885aebb39dbb)) +* added device mode support for flutter source for kochava destination ([bd8315a](https://github.com/rudderlabs/rudder-config-schema/commit/bd8315a0aa90d508fdc19cff0686b46a7b074222)) + ## [1.65.0](https://github.com/rudderlabs/rudder-config-schema/compare/v1.64.2...v1.65.0) (2024-02-20) diff --git a/package-lock.json b/package-lock.json index 7eb48b94d..5e72fa902 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "rudder-config-schema", - "version": "1.65.0", + "version": "1.66.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "rudder-config-schema", - "version": "1.65.0", + "version": "1.66.0", "license": "MIT", "dependencies": { "ajv": "^8.12.0", diff --git a/package.json b/package.json index a5d73ac97..7fc6c8376 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rudder-config-schema", - "version": "1.65.0", + "version": "1.66.0", "description": "", "main": "src/index.ts", "private": true,