Select spec version:

Destination Type Changes by Release

What changed in Rudder CLI destination types in each release, including breaking changes and what to do about them.
Available Plans
  • free
  • growth
  • enterprise

The destination type pages document the latest Rudder CLI release. This page lists what changed in each release, so you can see what differs on the release you run, and what to change when you upgrade.

Each change is one of the following:

Change
Description
BreakingA spec that worked on the previous release fails validation or behaves differently, without any edits. Each comes with what to do.
ChangedExisting behavior changed without breaking a working spec — for example, a key became secret.
AddedNew keys, source types, or connection modes.

A destination type’s history starts at the release in its Available since column — see Supported destination types. Changes made before that release aren’t listed.

v0.29.0

New destination types: Adjust, Adobe Analytics, Amazon Kinesis, Apache Kafka, Confluent Cloud, Firebase, Google Analytics, Google Cloud Pub/Sub, Google Sheets, Google Tag Manager, Intercom, LinkedIn Insight Tag, Marketo, Qualtrics, Redis, Salesforce, Sentry, Slack, Snowflake Streaming, Statsig, VWO, Zendesk.

DestinationChange
ActiveCampaign, Amplitude, Attentive Tag, BigQuery, BigQuery Stream, Braze, Customer.io, Facebook Conversions, Facebook Pixel, Google Analytics 4, Google Cloud Storage, Google Ads, HubSpot, HTTP Webhook, Iterable, Mixpanel, PostgreSQL, PostHog, Amazon Redshift, Amazon S3, S3 Data Lake, Snowflake, TikTok Ads, WebhookBreaking: A null config value, written as key: null, key: ~, or key: with no value, fails validate with '<key>' must not be null; set a value or remove the key. Earlier releases accepted it: a top-level null planned an update on every apply, and a null inside a list item failed at the API.
What to do: Remove the key to leave it unset, or give it a value.
Amplitude, BigQuery, Braze, Customer.io, Facebook Conversions, Facebook Pixel, Google Analytics 4, HubSpot, HTTP Webhook, Iterable, Mixpanel, PostgreSQL, PostHog, Amazon Redshift, S3 Data Lake, Snowflake, TikTok Ads, WebhookBreaking: An empty string, "", on a key that takes one of a fixed set of values fails validate with '<key>' must be one of [...], unless "" is one of the key’s values. Earlier releases accepted it, and the API rejected it at apply.
What to do: Remove the key to leave it unset, or set one of the listed values.
ActiveCampaign, Amplitude, Attentive Tag, BigQuery, BigQuery Stream, Braze, Customer.io, Facebook Conversions, Facebook Pixel, Google Analytics 4, Google Cloud Storage, Google Ads, HubSpot, HTTP Webhook, Iterable, Mixpanel, PostgreSQL, PostHog, Amazon Redshift, Amazon S3, S3 Data Lake, Snowflake, TikTok Ads, WebhookChanged: validate warns when a secret key holds anything but one {{ .VAR }} reference with no default, and when one variable fills two secret keys. It also masks secret values in the lines it prints.
ActiveCampaign, Amplitude, Attentive Tag, BigQuery, BigQuery Stream, Braze, Customer.io, Facebook Conversions, Facebook Pixel, Google Analytics 4, Google Cloud Storage, Google Ads, HubSpot, HTTP Webhook, Iterable, Mixpanel, PostgreSQL, PostHog, Amazon Redshift, Amazon S3, S3 Data Lake, Snowflake, TikTok Ads, WebhookChanged: rudder-cli import writes each secret reference single-quoted, as '{{ .VAR }}', so a value containing double quotes, like a JSON key file, substitutes as a string. A single quote in a value that fills such a reference is written as ''.
What to do: In a spec imported by an earlier release, quote each reference to a JSON value by hand: '{{ .VAR }}'.
PostgreSQL, SnowflakeChanged: A multi-line value, like a PEM key, keeps its line breaks when it fills a quoted {{ .VAR }} reference, in either quote style. Earlier releases folded the line breaks into spaces, so the destination stored a broken key unless the value was written with \n in a double-quoted reference. That form still works.
ActiveCampaign, Amplitude, Attentive Tag, BigQuery, BigQuery Stream, Braze, Customer.io, Facebook Conversions, Facebook Pixel, Google Analytics 4, Google Cloud Storage, Google Ads, HubSpot, HTTP Webhook, Iterable, Mixpanel, PostgreSQL, PostHog, Amazon Redshift, Amazon S3, S3 Data Lake, Snowflake, TikTok Ads, WebhookChanged: validate reports a value of the wrong type once per key, such as 'email' must be a string, instead of one raw decoding error.

v0.28.0

DestinationChange
Customer.ioChanged: api_key and site_id are required only where a connection needs them. With web as the only source type in device mode, api_key is optional, and so is site_id when sdk_version.web is v2.
Customer.ioAdded: sdk_version, write_key, and anonymous_in_app, for the v2 web client in device mode. A spec without sdk_version runs the v1 client, so add these keys to a spec imported by an earlier release if the destination uses v2.
ActiveCampaign, Amplitude, Attentive Tag, Braze, BigQuery Stream, Customer.io, Facebook Conversions, Facebook Pixel, Google Analytics 4, Google Cloud Storage, HubSpot, Iterable, Mixpanel, PostHog, Amazon S3, TikTok Ads, WebhookAdded: warehouse source type, for destinations connected to a Reverse ETL source. Set connection_mode.warehouse: cloud for such a destination, or apply removes the entry.

v0.27.0

New destination types: Amazon Redshift, Customer.io, Mixpanel, Snowflake.

No changes to destination types released earlier.

v0.26.0

New destination types: Amplitude, Braze, Facebook Conversions, Facebook Pixel, Google Ads, Google Analytics 4, Google Cloud Storage, HubSpot, Iterable, PostgreSQL, PostHog, S3 Data Lake, TikTok Ads, Webhook.

DestinationChange
ActiveCampaignBreaking: use_native_sdk is removed. A spec that still sets it fails validation with unknown config field "use_native_sdk".
What to do: Remove use_native_sdk. connection_mode.web decides whether RudderStack loads ActiveCampaign’s native SDK.
ActiveCampaignChanged: actid is a secret key. Write it as a {{ .VAR }} reference.
HTTP WebhookChanged: username, api_key_name, and every headers entry’s from value are secret keys. Write them as {{ .VAR }} references.
HTTP WebhookAdded: warehouse source type, for destinations connected to a Reverse ETL source. Set connection_mode.warehouse: cloud for such a destination, or apply removes the entry.

v0.25.0

The first release with destination support. Every type below is part of its initial release:

New destination types: ActiveCampaign, Amazon S3, Attentive Tag, BigQuery, BigQuery Stream, HTTP Webhook.

No changes to destination types released earlier.

See more

Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.