## October 2024

<Expandable alt_header="Coalesce 2024 announcements">

  Documentation for new features and functionality announced at Coalesce 2024:

  - Iceberg table support for [Snowflake](/reference/resource-configs/snowflake-configs#iceberg-table-format)
  - [Athena](/reference/resource-configs/athena-configs) and [Teradata](/reference/resource-configs/teradata-configs) adapter support in dbt Cloud
  - dbt Cloud now hosted on [Azure](/docs/cloud/about-cloud/access-regions-ip-addresses)
  - Get comfortable with [dbt Cloud Release Tracks](/docs/dbt-versions/cloud-release-tracks) that keep your project up-to-date, automatically — on a cadence appropriate for your team
  - Scalable [microbatch incremental models](/docs/build/incremental-microbatch)
  - Advanced CI [features](/docs/deploy/advanced-ci)
  - [Linting with CI jobs](/docs/deploy/continuous-integration#sql-linting)
  - dbt Assist is now [dbt Copilot](/docs/cloud/dbt-copilot)
  - Developer blog on [Snowflake Feature Store and dbt: A bridge between data pipelines and ML](/blog/snowflake-feature-store)
  - [Downstream exposures with Tableau](/docs/explore/view-downstream-exposures)
  - Semantic Layer integration with [Excel desktop and M365](/docs/cloud-integrations/semantic-layer/excel)
  - [Data health tiles](/docs/explore/data-tile)
  - [Semantic Layer and Cloud IDE integration](/docs/build/metricflow-commands#metricflow-commands)
  - Query history in [Explorer](/docs/explore/model-query-history#view-query-history-in-explorer)
  - Semantic Layer Metricflow improvements, including [improved granularity and custom calendar](/docs/build/metricflow-time-spine#custom-calendar) 
  - [Python SDK](/docs/dbt-cloud-apis/sl-python) is now generally available 

</Expandable>

- **Behavior change:** [Multi-factor authentication](/docs/cloud/manage-access/mfa) is now enforced on all users who log in with username and password credentials. 
- **Enhancement**: The dbt Semantic Layer JDBC now allows users to paginate `semantic_layer.metrics()` and `semantic_layer.dimensions()` for metrics and dimensions using `page_size` and `page_number` parameters. Refer to [Paginate metadata calls](/docs/dbt-cloud-apis/sl-jdbc#querying-the-api-for-metric-metadata) for more information.
- **Enhancement**: The dbt Semantic Layer JDBC now allows you to filter your metrics to include only those that contain a specific substring, using the `search` parameter. If no substring is provided, the query returns all metrics. Refer to [Fetch metrics by substring search](/docs/dbt-cloud-apis/sl-jdbc#querying-the-api-for-metric-metadata) for more information.
- **Fix**: The [<Constant name="semantic_layer" /> Excel integration](/docs/cloud-integrations/semantic-layer/excel) now correctly surfaces errors when a query fails to execute. Previously, it was not clear why a query failed to run.
- **Fix:** Previously, POST requests to the Jobs API with invalid `cron` strings would return HTTP response status code 500s but would update the underlying entity. Now, POST requests to the Jobs API with invalid `cron` strings will result in status code 400s, without the underlying entity being updated.
- **Fix:** Fixed an issue where the `Source` view page in dbt Explorer did not correctly display source freshness status if older than 30 days.
- **Fix:** The UI now indicates when the description of a model is inherited from a catalog comment.
- **Behavior change:** User API tokens have been deprecated. Update to [personal access tokens](/docs/dbt-cloud-apis/user-tokens) if you have any still in use.
- **New**: The Cloud IDE supports signed commits for <Constant name="git" />, available for Enterprise plans. You can sign your <Constant name="git" /> commits when pushing them to the repository to prevent impersonation and enhance security. Supported <Constant name="git" /> providers are GitHub and GitLab. Refer to [<Constant name="git" /> commit signing](/docs/cloud/studio-ide/git-commit-signing.md) for more information.
- **New:** With <Constant name="mesh" />, you can now enable bidirectional dependencies across your projects. Previously, dbt enforced dependencies to only go in one direction. dbt checks for cycles across projects and raises errors if any are detected. For details, refer to [Cycle detection](/docs/mesh/govern/project-dependencies#cycle-detection). There's also the [Intro to <Constant name="mesh" />](/best-practices/how-we-mesh/mesh-1-intro) guide to help you learn more best practices. 
- **New**: The [<Constant name="semantic_layer" /> Python software development kit](/docs/dbt-cloud-apis/sl-python) is now [generally available](/docs/dbt-versions/product-lifecycles). It provides users with easy access to the <Constant name="semantic_layer" /> with Python and enables developers to interact with the <Constant name="semantic_layer" /> APIs to query metrics/dimensions in downstream tools.
- **Enhancement**: You can now add a description to a singular data test. Use the [`description` property](/reference/resource-properties/description) to document [singular data tests](/docs/build/data-tests#singular-data-tests). You can also use [docs block](/docs/build/documentation#using-docs-blocks) to capture your test description. The enhancement is available now in [the **Latest** release track in dbt Cloud](/docs/dbt-versions/cloud-release-tracks), and it will be included in dbt Core v1.9.
- **New**: Introducing the [microbatch incremental model strategy](/docs/build/incremental-microbatch) (beta), available now in [dbt Cloud Latest](/docs/dbt-versions/cloud-release-tracks) and will soon be supported in dbt Core v1.9. The microbatch strategy allows for efficient, batch-based processing of large time-series datasets for improved performance and resiliency, especially when you're working with data that changes over time (like new records being added daily). To enable this feature in dbt Cloud, set the `DBT_EXPERIMENTAL_MICROBATCH` environment variable to `true` in your project.
- **New**: The dbt Semantic Layer supports custom calendar configurations in MetricFlow, available in [Preview](/docs/dbt-versions/product-lifecycles#dbt-cloud). Custom calendar configurations allow you to query data using non-standard time periods like `fiscal_year` or `retail_month`. Refer to [custom calendar](/docs/build/metricflow-time-spine#custom-calendar) to learn how to define these custom granularities in your MetricFlow timespine YAML configuration.
- **New**: In the **Latest** release track in <Constant name="dbt" />, [Snapshots](/docs/build/snapshots) have been updated to use YAML configuration files instead of SQL snapshot blocks. This new feature simplifies snapshot management and improves performance, and will soon be released in <Constant name="core" /> 1.9.
  - Who does this affect? Users of the **Latest** release track in <Constant name="dbt" /> can define snapshots using the new YAML specification. Users upgrading to **Latest** who have existing snapshot definitions can keep their existing configurations, or they can choose to migrate their snapshot definitions to YAML. 
  - Users on older versions: No action is needed; existing snapshots will continue to work as before. However, we recommend upgrading to the **Latest** release track to take advantage of the new snapshot features.
- **Behavior change:** Set [`state_modified_compare_more_unrendered_values`](/reference/global-configs/behavior-changes#source-definitions-for-state) to true to reduce false positives for `state:modified` when configs differ between `dev` and `prod` environments.
- **Behavior change:** Set the [`skip_nodes_if_on_run_start_fails`](/reference/global-configs/behavior-changes#failures-in-on-run-start-hooks) flag to `True` to skip all selected resources from running if there is a failure on an `on-run-start` hook.
- **Enhancement**: In the **Latest** release track in dbt Cloud, snapshots defined in SQL files can now use `config` defined in `schema.yml` YAML files. This update resolves the previous limitation that required snapshot properties to be defined exclusively in `dbt_project.yml` and/or a `config()` block within the SQL file. This will also be released in dbt Core 1.9.
- **New**: In the **Latest** release track in dbt Cloud, the `snapshot_meta_column_names` config allows for customizing the snapshot metadata columns. This feature allows an organization to align these automatically-generated column names with their conventions, and will be included in the upcoming dbt Core 1.9 release.
- **Enhancement**: the **Latest** release track in dbt Cloud infers a model's `primary_key` based on configured data tests and/or constraints within `manifest.json`. The inferred `primary_key` is visible in dbt Explorer and utilized by the dbt Cloud [compare changes](/docs/deploy/run-visibility#compare-tab) feature. This will also be released in dbt Core 1.9. Read about the [order dbt infers columns can be used as primary key of a model](https://github.com/dbt-labs/dbt-core/blob/7940ad5c7858ff11ef100260a372f2f06a86e71f/core/dbt/contracts/graph/nodes.py#L534-L541). 
- **New:** dbt Explorer now includes trust signal icons, which is currently available as a [Preview](/docs/dbt-versions/product-lifecycles#dbt-cloud). Trust signals offer a quick, at-a-glance view of data health when browsing your dbt models in dbt Explorer. These icons indicate whether a model is **Healthy**, **Caution**, **Degraded**, or **Unknown**. For accurate health data, ensure the resource is up-to-date and has had a recent job run. Refer to [Data health signals](/docs/explore/data-health-signals) for more information. 
- **New:** Downstream exposures are now available in Preview in <Constant name="dbt" />. Downstream exposures helps users understand how their models are used in downstream analytics tools to inform investments and reduce incidents. It imports and auto-generates exposures based on Tableau dashboards, with user-defined curation. To learn more, refer to [Downstream exposures](/docs/cloud-integrations/downstream-exposures-tableau).