Release Notes

For Self-Hosted deployments

These are the relevant changes that are introduced in each specific CARTO Self-hosted release version.

If you're looking for the latest features and updates in the platform, please visit the What's new section, where you'll also find more details about each feature.


View this release on GitHub --> Docker compose release | Kubernetes release


  • Improvements when sharing map and workflow links to new users: We have improved the experience of new users when they open a shared map or shared workflow for the first time, with automatic access when applicable (eg: successful SSO login) and a clearer user experience in all cases.

  • Distinguishing users by authentication method: We have added a new column to the Users & Groups table (inside the Organization settings), where admins will be able to see the authentication method used by each user (SSO, Username/Password, Google Account, etc).

  • Support for configuring and executing Workflows via API call: comprehensive set of new features in CARTO Workflows designed to provide the ability to trigger the execution of your workflows by calling an API. After some time when this feature was only available on-demand, it is now enabled to all users with this CARTO Self Hosted version.

  • New Workflows components and improvements:

    • Case When component for supporting column values based on conditional expressions.

    • Edit Schema component (replacing Refactor Columns): clean schemas, rename and cast columns.

    • Added 'Append' mode to Save as Table.

    • Added 'Maximum distance' setting to K-Nearest Neighbors.

    • Added Extract from JSON for extracting values from JSON columns.

    • Added 'Mode' setting to H3 Polyfill and Quadbin Polyfill components.

  • Extended support for URL parameters in Builder maps: CARTO Builder has expanded its URL parameter capabilities to include widgets, SQL parameters, search locations, and feature selections. Now, when viewers interact with these elements, the URL updates in real time, making it easier to share customized map views. This update opens up possibilities for creating varied views from a single map, simplifying sharing, and minimizing the need for multiple map versions. It also enhances the embedding of maps into websites or apps, providing a seamless user experience without unnecessary redirections.


  • CARTO Builder now only loads essential properties from tables or SQL query sources when they're needed in the map (styling, interactions, etc.), instead of loading all columns. This will increase performance for most maps, and reduce the volume of data processed by the connection.

  • Enhanced keyboard accessibility in Builder for viewers on maps shared with organization/groups or publicly accessible.

  • Increased RAM memory limits for Maps API containers. Now each container can consume up to 6Gb instead of 4Gb.

  • All container images were migrated from Google Container Registry to Artifacts Registry.

  • Removed max-age HTTP header for statics served from workspace-www container

  • Other internal changes and refactors, mostly to improve stability for Maps API and connections.

  • Widgets filtering has been migrated to server-side for those linked to dynamic tiling sources, enhancing performance and accuracy.

Fixes from the last release:

  • Fixed a problem where idle connections to PostgreSQL were not being closed after cancelling tile requests from Maps API.

  • Fixed a problem creating connections using Workload Identity in CARTO instances running in GKE.

Known issues

  • Users that requested to join an organization won't be able to join a new organization if the previous request was rejected. This issue will be fixed in upcoming versions.


View this release on GitHub --> Docker compose release | Kubernetes release


  • Enhancements to export data from Builder maps: We've upgraded the export functionality in Builder maps, shifting the data export process to work in server-side mode for an enhanced efficiency and data integrity. This improvement ensures a more reliable data retrieval experience. Additionally, when exporting data as CSV, it now includes the geometry column in WKT (Well-Known Text) format, if applicable. This enhancement simplifies data handling and boosts compatibility with various geospatial tools, making integrations smoother.

  • ML Generate Text component in Workflows: We have added a new component to Workflows that leverages BigQuery ML Generate Text capabilities to allow embedding Generative AI functionalities into your geospatial analytical pipelines. It can be used to interpret results from an analysis, using different variables on your data to compose a prompt that will be evaluated on each row. With this new addition, Generative AI capabilities are handy and readily available from Workflows.


  • The process to enable (or disable) the CARTO Data Warehouse using an environment variable now affects all organizations in your self-hosted instance, including existing organizations. Read more about it in the Enable the CARTO Data Warehouse self-hosted guide.

Fixes from the last release:

  • Fixed an issue on Maps API that prevented it working properly on docker compose versions below 2.0


View this release on GitHub --> Docker compose release | Kubernetes release


  • Measure point-to-point distances in Builder: The distance measure tool that will allow users to measure distances between two points on their maps. This new functionality is ideal for a diverse range of use cases, from planning tasks to gaining a deeper understanding of spatial relationships between various map elements.

  • OAuth connections in Snowflake: Administrators can now configure an integration that allows all users in the organization to create Snowflake connections via OAuth. The integration can be set up to use Snowflake OAuth (using Snowflake credentials) or External OAuth (using credentials from a third-party such as Azure Active Directory or Okta)

  • Improved results panel in Workflows: New, sleeker design for the results panel in Workflows; it includes some new features, focused on usability and better data exploration.

  • Export Workflows result to a bucket: New component that allows exporting the result from any node in a workflow to a storage bucket.


  • The CARTO Data Warehouse is now optional and disabled by default for new organizations, reducing the network requirements for Self-Hosted instances running behind a VPC or proxy. When this CARTO-managed data warehouse is disabled, onboarding materials and UI-based Data Observatory features won’t be available. The CARTO Data Warehouse can be enabled at any time by changing an environment variable/customization in your deployment.

  • Placeholders ($a, $b, $c, $output) in "Custom SQL" and "Call Procedure" components in Workflows need to be quoted manually. Link to documentation.

  • "Import from URL" component in Workflows has been deprecated in favor of a new type of imported data source. Link to documentation.

  • Added new options to "Join" components in Workflows.

  • "Create Tileset" component now accepts a destination table name.

  • "Order by" component now supports date/timestamp columns.

Fixes from the last release:

  • Fixed several broken documentation links in Workflows components.


View this release on GitHub --> Docker compose release | Kubernetes release


  • Pie widget in Builder: Users can now benefit from a new type of widget in Builder, the Pie Widget. This widget can be used to quickly and easily analyze data proportions and category weights, empowering users to make more informed decisions by providing a clearer view of their data.

  • Multiple series and custom temporal aggregation on Time Series widget: We have upgraded our Time Series Widget in Builder to boost your temporal data analysis experience. These enhancements bring a new level of customization to your data exploration, offering:

    • Enhanced temporal precision: You can now extract insights using custom time intervals and enjoy greater granularity, resulting in more accurate analyses.

    • Analysis of multiple time series: You can now analyze multiple time series simultaneously within the widget, enabling seamless concurrent analysis over time.

  • Execute a Workflow via API: A workflow can be executed via an API call, which allows merging workflows with bigger processes, running analytics pipelines from external applications, and further integrations that enable a wide range of use cases. This includes support for parameters in API executions.

  • Export / Import Workflow as SQL file: The export functionality allows downloading a .sql file with the stored procedure code that is executed by a workflow. These files also contain all the metadata that is required to restore a workflow by importing it to a CARTO account.

  • New components in Workflows for Data Enrichment, Statistics, and Retail analytics: We have released a new set of components in Workflows for Data Enrichment:

    • Enrich Points, Enrich Polygons, Enrich H3 Grid, and Enrich Quadbin Grid. Each of them allows for enriching different types of geospatial data, and all of them allow using both a Data Observatory subscription or a custom table as a source for the enrichment data.

    • We have also released new components for advanced Statistics and for Retail Analytics, initially supported in Google BigQuery: Getis Ord, Getis Ord Spacetime, Moran's I, Local Moran's I, Geographically Weighted Regression, and Commercial Hotspots.

    These additions to Workflows will make it a lot easier to leverage data enrichment and advanced statistical capabilities in CARTO, integrating these complex processes as just another step in a workflow.

  • Configurable Analytics Toolbox location per connection: With this new advanced setting in the connection's form, users can specify the location of the Analytics Toolbox location that will be observed in SQL queries generated by UIs in the CARTO. In Self Hosted installations, the default value can be set using an environment variable.


  • Null values are omitted on Spatial Indexes sources both when rendering and on Widget calculations.

  • Snowflake connections can be bypassed correctly when using an HTTPs proxy.

  • Fixed bug that caused autosaving in Workflows to be very slow.

  • Fixed bug with GeoJSON and JSON inputs in Workflows components.

  • Fixed bug with 'Stop' button in Workflows not being responsive.

Known issues:

  • Inconsistent behavior while working with Create Isolines workflows component and their temporal tables in Redshift.


View this release on GitHub --> Docker Compose release | Kubernetes release


  • Data Observatory subscriptions as data sources in Workflows: We have just made Data Observatory subscriptions available in the Data Sources panel in Workflows.This will make premium and public dataset a lot easier to work with: just drag and drop your available samples or subscriptions to the canvas and start building your workflow.With this new addition to Workflows, the largest catalog of curated geospatial datasets is readily available to be integrated with your cloud native analytical pipelines with just a few clicks.

  • Richer Map Descriptions in Builder: This upgrade takes our existing Map Description feature to a whole new level. With Richer Map Descriptions, users will be able to not just add text; but craft a more engaging user experience. The support for Markdown syntax allows you to include various text formats, headers, links, images, and even bullet-point lists, elevating the user's understanding and interaction with your map.

  • Support for Numeric Type of SQL Parameter: Leveraging the Numeric SQL parameter, users can now seamlessly retrieve single or pair numeric values from a Control UI to update the underlying data sources. It's an excellent option for those requiring to filter data by specific numeric ranges or adjusting analytical outputs based on numerical inputs.

  • Leveraging SSO in applications built with CARTO: With this release, developers building applications with CARTO can now provide a seamless experience in their applications to their Single Sign-On (SSO) users, even if it’s the very first time they access CARTO. You’ll find the necessary changes to be made in the apps in our documentation.

  • Sharing controls for Applications; Developers can now control the visibility of the Applications created using CARTO, including the options to make an application visible only for specific groups inside the organization.

  • Mapping groups to user roles; Administrators have an easier and more scalable way to manage the roles of CARTO users, with a fully automated system that assigns each user a role depending on the groups they belong to. Admins can map groups to roles under Settings > Users and Groups. This feature requires SSO and Groups enabled.


  • Fixed a problem to avoid full scans on Redshift tilesets.

  • Fixed some import issues with large files by increasing the memory requirements of the import-worker container from 4GB to 8GB and from 1000Mi CPUs to 2000Mi CPUs.

  • When previewing a table on Data Explorer and Workflows you can now preview up to 200 columns, instead of 20.

  • Limit when adding values from sources on SQL Parameter Text type on Builder has been increased from 20 to 1000 values.

  • We added a hidden organization setting to completely disable the “Export data from viewport” feature for all users. Please contact us if you’re interested in disabling exports.

Known issues:

  • Creating a BigQuery Oauth connection results in a callback loop when using certain browser versions. The issue doesn’t appear with the following version: Firefox >= 114.0.2, Chrome < 114.0.5735.33.


View this release on GitHub --> Docker Compose release | Kubernetes release


  • Imports with custom schema: Users can now define a custom schema when importing files from their computers or from a URL. CARTO will generate a preview with the columns to be set up. This functionality is available also through new endpoints and parameters in the Imports API.

  • Draw geometries component in Workflows: While working with Workflows, in some occasions a component needs to be defined as a custom geography (point, line or polygon). This is currently the case with "Table from GeoJSON" but this tool will also be used in other components that might need a custom geospatial input.We have developed a new tool, accessible through the "Draw features" button to define custom geographies as inputs for components.

  • Custom Aggregation operations for Formula Widget: This new feature provides advanced capabilities for users to tailor calculations and derive precise insights from their data using SQL Expressions. With custom aggregation operations, users have the flexibility to define calculations that align precisely with their unique analytical requirements. They can incorporate business-specific formulas and apply complex mathematical operations to single or multiple columns from their data source.

  • Improved explainability in Workflows: We have just added a couple of new features in Workflows that are going to improve a lot the explainability of your multi-step analytical pipelines.

    • Rich notes supporting Markdown syntax.

    • Update nodes with more relevant and descriptive names.

  • Search location by latitude and longitude coordinates: This feature now includes the ability to search for locations using coordinates. Simply input latitude and longitude values, and instantly visualize the corresponding location on the map. Whether you're exploring remote areas, analyzing specific points of interest, or seeking valuable insights, our coordinate search feature empowers you to navigate with precision and seamlessly uncover new possibilities.

  • Remove CARTO footer from public and embedded maps: Organizations with access to the Appearance customizations (also called “custom branding”) will now be able to also remove the CARTO-branded footer from their public and embedded maps. This is an organization wide setting that the admin can enable or disable. Additionally, the admin can select if they want new users to receive the generic CARTO onboarding, for further experience customization.

  • Viewer credentials for BigQuery OAuth connections: “Viewer credentials” is a new mode of sharing connections that require all users to provide credentials before using that connection, whether it is to build maps or just to view them (as well as previewing data or opening workflows). By leveraging viewer credentials, you can leverage row-level security and other policies coming from BigQuery, as well as collaborating on Builder maps.

  • Dynamic Tiling V2 now available: A collection of changes to the queries that Maps API runs on different data warehouses in order to produce faster and more visually complete vector tiles. For those using CARTO for React, note that this functionality has been incorporated from versions CARTO for React v2.1 or 1.6 onwards. If you are using an older version, an upgrade is necessary. For more info visit our migration guide.


  • If an internal (hidden) organization setting that disables sharing maps in public is enabled, it will now remove the public sharing option, instead of removing the entire sharing functionality.

  • Additional custom markers.

  • Router nginx component could be customized with new parameters related to buffers and max payload requests size.

  • Improved Maps API stability in high-concurrency environments.

Known issues:

  • Creating a BigQuery Oauth connection results in a callback loop when using certain browser versions. The issue doesn’t appear with the following version: Firefox >= 114.0.2, Chrome < 114.0.5735.33.


View this release on GitHub --> Docker Compose release | Kubernetes release


  • Focus on User’s Device Location: this feature allows users to automatically zoom in and center the view of the map based on their current location, providing them with a convenient and immediate view of their surroundings.

  • Routing: you can now calculate routes between sets of origins and destinations, supporting different transportation modes and other advanced parameters. This is available via new endpoints in the LDS API and, outside of your deployment, in the latest Analytics Toolbox version.

  • Exports from Data Observatory: A new action has been added to the Data Observatory subscription pages, to download the data locally as csv files.

  • New components in CARTO Workflows: We have added a new set of components. The majority of components in this new batch are oriented towards providing more flexibility when manipulating and getting your data ready for the analysis.

  • Support for HTTPS Proxy: CARTO self-hosted now supports working behind an HTTPS proxy. Limitations: the proxy certificate must be issued by a recognized Root Certificate Authority (CA) that is trusted by both the underlying Node.js and Ubuntu/Debian frameworks. Snowflake is not supported.


  • Reduce dynamic tiles timeout to 20 seconds.

  • Increase the default pool size of connections to Redshift from 5 to 20 per container.

  • Enterprise customers might receive an in-app NPS survey. All requests to a service called AskNicely are related to this integration.

  • Widgets linked to simple features are now calculated on the server side.

  • We’re introducing a new mode to share Databricks connection, called “Require viewer credentials”, where all viewers will be required to authenticate independently to use the connection. Since the Databricks connector is in beta, we’ll add more details to the release notes when we enable this mode for other providers.

  • To ensure backward compatibility with older versions of Kubernetes, we have added a new value called kubernetesPolicyVersion in the Helm chart.

Fixes from the last release:

  • Fixed an issue where Kubernetes deployments were not able to import files using a BigQuery Oauth connection.

  • Fixed an issue where using an external HTTP proxy, some services didn’t apply the NO_PROXY variable properly.

  • Fixed an issue where using an external proxy, some services had issues pulling messages from Pubsub after an outage of the proxy service.

  • Fixed a potential issue where feature flags would return the default value instead of the actual value due to missing variables.

  • Fixed an issue with PostgreSQL connection where under specific circumstances, related to the connection pool, requests would start failing.

  • Fixed access to Data Observatory data and demo data for the CARTO DW in non-US regions.

Known Issues:

  • Certain browser versions may experience a callback loop when creating a BigQuery OAuth connection. This issue is not observed in Firefox versions >= 114.0.2 or Chrome versions < 114.0.5735.33.

  • Users who have been rejected from joining an organization by an administrator are currently unable to request to join another organization.

  • An error appears after creating a new Databricks connection, although the connection was created successfully.

  • Sharing a connection or a workflow using the only with specific groups option doesn’t work.

  • Sharing a workflow directly from the canvas feature does not work as expected.

  • An error occurs while importing geopackage datasets in Snowflake.


View this release on GitHub --> Docker Compose release | Kubernetes release


  • Workflows: Automate data preparation & analysis pipelines with our no-code workflow design tool. Exporting in Workflows is disabled by default in Self-Hosted instances.

  • SQL Parameters in Builder: SQL Parameters are placeholders that can be used on any SQL Query data source in Builder. Once defined, the actual value for the parameter can be set through a control UI, allowing easy manipulation of the data source by both Editor and Viewer users.

  • New API Access Tokens UI: developers now have an easy way to create and manage their API Access Tokens, used for authentication in CARTO for Developers.

  • Table optimizations: CARTO will now detect automatically whenever a table could perform better thanks to geospatial optimizations, that can be applied from Data Explorer.

  • Labels for tile layers: CARTO Builder now supports adding labels to point layers loaded via tiles, with a set of improved features.

  • Default role for new users: admins can now select what is the default role for every new user that signs up to their organization.

  • Just-in-time provisioning in SSO organizations: admins that have previously set up an SSO integration now have the ability to let their users skip all the onboarding steps, for a seamless signup experience.

  • Accessing the CARTO Data Warehouse SQL console: we have enabled an easy way of getting authorization (via a Google account) to the console of their CARTO Data Warehouse.

  • Beta Support in Maps API for raster sources created via Beta functions in Analytics Toolbox for BigQuery.

  • Support for external HTTP Proxy: now CARTO self-hosted supports working behind an external HTTP proxy.


  • Refresh buttons have been added in several places when listing and previewing data, to prevent cache issues.

  • We’ve added additional optional parameters in Imports API to support upcoming features.

  • We’ve made available a private Beta Version of a new feature: Basemap selector for public maps. Please contact the team if you’re interested.

  • Now you can disable TrackJS (a debugging service) for www components by customizing your environment variables.

  • Add support for PodDisruptionBudget (disabled by default). A PDB limits the number of Pods of a replicated application that are down simultaneously from voluntary disruptions

  • Disable upstream buffering in the router component for APIs that uses streaming to transfer data to the client. We disabled it for the self-hosted behavior to be aligned with the SaaS.

  • Other minor changes and improvements

Fixes from the last release:

  • Fixed potential issues where containers would not shutdown correctly after receiving SIGTERM signal by:

    • Start docker containers in Exec form. So the process will take up PID 1 inside the container and Kubernetes will be able to send signals to the pod.

    • Add terminationGracePeriodSeconds to all pods. Now, Kubernetes will wait for a specified time called the termination grace period before killing the containers when it needs to stop them, so the APIs will be able to finish their work before shutdown in a correct way.

  • Fixed an issue that would make embedded maps not work outside of the self-hosted domain. Now the router component returns the header X-Frame-Options = “ALLOW” for public map requests.

  • Fixed an issue when sending requests to SQL API larger than 1 Mb. Now you can send requests up to 10Mb of payload.

  • Fixed an issue while trying to download helm customer packages using the tool

  • Fixed a logout problem where users with SSO would be stuck in a logout-login loop under specific circumstances.

  • Fixed minor issues with GEOMETRY type handling in Redshift.

  • Fixed an issue where the COUNT operation wouldn’t be available for Quadbin layers in Builder.

  • Fixed an issue where the dynamic aggregation of points into Quadbin wouldn’t work for Snowflake and PostgreSQL connections under specific circumstances in Builder.

  • Fixed an issue where widgets would not be accurate with tileset data sources under specific circumstances.

  • Other minor fixes


View this release on Github --> Docker Compose release | Kubernetes release



  • The appearance of some screens in the login/signup contexts have changed to match our design system.

  • Import API and LDS API can now be selected and used as allowed_apis in tokens created via Tokens API.

  • Performance improvements related to the ability to cancel queries and manage timeouts for unused tiles in maps.

  • Removed support for fixed radius (meters) in Builder.

  • Several performance improvements for Snowflake connections, including better handling of a connection pool for Maps API and SQL API and faster queries for point-based data sources.

  • Database parameter is now mandatory when creating Snowflake connections.

  • Several improvements when importing files:

    • Longer timeout for importing larger files (from 10 minutes to 1 hour)

    • Better error handling, with improved error tolerance and clearer error messages.

    • The resulting tables in Snowflake after importing are now correctly optimized.

  • Other minor changes and improvements

Fixes from the last release:

  • Fixed an issue where users could attempt to delete maps owned by a different user.

  • Fixed an issue where invitations could be duplicated due to case sensitivity.

  • Fixed an issue with Builder SQL console where the spatial data type would remain cached.

  • Fixed an issue where an OAuth connection could be marked as shared under specific circumstances.

  • Fixed an issue with quantiles calculation not being consistent in static tilesets versus dynamic tiling.

  • Fixed several issues with the map/connection sharing dialog, where it would not behave correctly under some circumstances.

  • Fixed an issue where a demo dataset for retail industry use cases would appear to non-retail industry users.

  • Fixed an issue with the generation of “Intersect an Aggregate” SQL Analysis for Redshift in Builder.

  • Fixed an issue to support resolution levels lower than 4 for H3 layers and lower than 6 for Quadbin layers in Builder.

  • Other minor fixes

Previous releases

The release notes for releases prior to 2023.3.31 can be found:

Last updated