Skip to main content

v0.3.17


Release Availability Date

24-Mar-2026

Recommended Versions

  • CLI/SDK: 1.4.0.9
  • Remote Executor: v0.3.17-acryl

Known Issues

  • Async APIs - DataHub's asynchronous APIs perform only basic schema validation when receiving MCP requests, similar to direct production to MCP Kafka topics. While requests must conform to the MCP schema to be accepted, actual processing happens later in the pipeline. Any processing failures that occur after the initial acceptance are captured in the Failed MCP topic, but these failures are not immediately surfaced to the API caller since they happen asynchronously.

Release Changelog


v0.3.17

Breaking Changes:

  • Deprecation We're sunsetting 'Bulk Create' on the data health dashboard, in favor of the new 'Monitoring rules' automation. This can be toggled on via observability.assertion_monitoring_rules helm flag. This requires online_smart_assertions to be enabled, and the user to have the MANAGE_TESTS privilege.

  • Hardcoded token signing keys have been removed for improved security. Deployments must now configure explicit signing key secrets.

  • Python 3.9 support has been dropped; Python 3.10+ is now required.

  • Security Fix The default signing key and salt values present in application.yaml used in Metadata Service Authentication have been removed. The application now requires these values to be provided via env variables DATAHUB_TOKEN_SERVICE_SIGNING_KEY and DATAHUB_TOKEN_SERVICE_SALT to the GMS deployment, consumers and other related services and jobs. IMPACT:

    • Existing browser sessions from before the upgrade, maybe invalidated and a relogin is needed.
    • PAT (Personal Access Token) Changes:
      • If you’re using default token signing key and salt (not overridden): Existing PATs will stop working after upgrade due to updated signing keys. You’ll need to regenerate them. See backward compatibility notes for details.
      • No impact if: You’ve already overridden the default token signing key and salt with custom values or using DataHub Cloud

    ACTION:

    • Please update your DataHub helm charts to the recommended version or above before deploying the new release.

    • If you are not using the DataHub helm charts to deploy, then ensure that the above variables are set in your GMS deployment and related jobs.

      If the values are not set correctly you may see an error like below in your service logs.

      authentication.tokenService.signingKey must be set and not be empty

      or

      authentication.tokenService.salt must be set and not be empty

      :::note For backward compatibility you can set the value of these variables to the previous default values defined here. This is not recommended though, and it is advised to regenerate new tokens with updated keys as soon as possible. :::

Deprecations & Sunsets

The V1 UI theme is now officially sunset. All new features and patches going forward will be on the V2 UI (THEME_V2_ENABLED=true). If you are a customer of DataHub Cloud, or started using DataHub after February 2025 (or kept your clone/fork's environment variables in-sync with upstream since then), then this is already your default experience and you do not need to change anything. To ensure you are experiencing the latest features of DataHub, please ensure the following GMS environment variables are set

THEME_V2_ENABLED=true
THEME_V2_DEFAULT=true
THEME_V2_TOGGLEABLE=false

or via helm chart in your values.yaml

datahub-gms:
theme_v2:
enabled: true
default: true

Going forward, the V1 theme and associated code will be actively removed. This will help improve UI performance and simplify the codebase for contributors.

Product

  • [NEW] Support for adding a data asset to multiple data products
  • [NEW] Monitoring Rules: Setup freshness, volume, and schema anomaly monitoring rules across datasets in a few clicks. When new datasets appear in the predicate, they will automatically be monitored too.
  • [NEW] Time-Series Bucketed Assertions: Group your data into a time series to perform data quality checks at a day or week granularity.
  • [NEW] Backfill Assertion History - Backfill historical data into your smart assertions, to generate accurate predictions faster, and understand daily, weekly, or monthly seasonality.
  • [NEW] Ask DataHub Plugins: Private beta support for external MCP plugins to enable Ask DataHub to interact with Snowflake, GitHub, Databricks, BigQuery, and more. Includes support for OAuth discovery, Dynamic Client Registration, and redesigned plugin configuration flow. Read more here.
  • [NEW] Ask DataHub Sidebar Chat History: Support for multiple simultaneous chat tabs with conversation history dropdown, favorites, entity linking, and ingestion source linking
  • [NEW] Ask DataHub Chat Modes: Support for different AI chat modes
    • Fast: Optimizes for fast responses & less thinking
    • Auto: Decides whether to do deep research or answer quickly based on the question.
    • Research: Does research and planning before answering the question.
  • [NEW] Ask DataHub View Selector: Add view selector to chat input for scoped questions and answers.
  • [NEW] Context Documents: Automatic semantic indexing of DataHub Context Documents on an hourly banner.
  • [NEW] Service Accounts: Introducing support for creating named service accounts and generating access tokens. Read more here.
  • [NEW] Maintenance Window Banner: API and UI for displaying maintenance window notifications (e.g. upgrades, etc)
  • Important: Requirement for Slack per-user OAuth binding for notifications ("Connect to Slack"). This means users will require to bind their Slack account to their DataHub account to interact with Ask DataHub, use slash commands, or resolve incidents from Slack. Learn more in the App Setup Guide.
  • We are temporarily removing support for creating new smart assertions for field metrics that are not measuring row counts. The supported metrics for smart assertions are now: null_count, unique_count, empty_count, zero_count, negative_count. Any existing smart assertions running against other metrics will remain operational. If you are currently using a percentage-based metric, we recommend switching to its count-based equivalent:
    • null_percentage → null_count
    • unique_percentage → unique_count
    • empty_percentage → empty_count
    • zero_percentage → zero_count
    • negative_percentage → negative_count
  • Assertions now better communicate errors they run into during their operations, and recommend actions you must take to repair them.
  • Redesigned Create View modal with Alchemy components
  • Support multiple tabs and maintain chat history for embedded Ask DataHub chats on asset profile pages and in ingestion UI
  • Redesigned Manage User UI
  • Redesigned ingestion page shown by default with new navigation buttons, connection details, run details, and structured reports
  • Support for keypair authentication in Snowflake ingestion form
  • Add ability to target assets for policies based on Glossary Terms and Groups
  • Include child domains in policies targeting assets underneath a domain
  • UX polishes to ingestion page including filters, sorting, run details, and caret icons
  • Add env-variable support for Slack Socket Mode to enable Slack app usage within Airgapped environments (required CS configuration)

Platform

  • MCE/MAE consumer startup speed improvements
  • Retention moved to system-update with optimized delete and query operations
  • TLS restricted to 1.2+ in frontend
  • Spring Boot 3.5.6, Spring 6.2.13, Jetty 12.0.32 upgrade
  • Java bytecode standardized to Java 17
  • Agent context kit: dataset assertions, data product entities, owners, related docs, SQL search filters, save_document tool

Ingestion

  • [NEW] Connectors for the Microsoft Fabric ecosystem, including Fabric OneLake, and Azure Data Factory.
  • [NEW] Snowplow Connector
  • [NEW] Apache Doris Connector
  • [NEW] Google Dataplex connector
  • Support for convert_urns_to_lowercase in dbt ingestion
  • Support for convert_column_urns_to_lowercase in BigQuery ingestion
  • Snowflake: metadata pattern pushdown, table type filtering for performance, semantic view ingestion (usage stats, dbt support), external DMF assertion ingestion, retry logic for stability, retention time property
  • BigQuery: sharding optimizations, pushdown allow/deny usernames for server-side filtering
  • Oracle: stored procedure lineage with improved PL/SQL parsing, XMLTYPE and geospatial column recognition
  • MSSQL: extension for query lineage parsing, auto-enable use_odbc for mssql-odbc
  • PostgreSQL: lineage support from query history
  • Hive: Kerberos QOP configuration for Thrift connections
  • ClickHouse: column-level lineage support
  • Kafka Connect: MongoDB column-level lineage
  • Sigma: workbook filtering, default_db and default_schema config, retry logic for 429/503
  • Teradata: ownership extraction from table and view creators
  • DynamoDB: AWS resource tag ingestion, configurable maxitems
  • Fivetran: configurable ingestion limits
  • Qlik Sense: enforced scoped ingestion to eliminate full environment scans
  • dbt: support for ingesting exposures, source freshness assertions, Query entities from meta.queries field
  • Airflow: multi-statement SQL parsing for lineage extraction, Airflow 3 distributed deployment support
  • PowerBI: DirectLake lineage extraction for Microsoft Fabric, Government Users support, DataPlatformInstance aspect for recursive deletion
  • Databricks: OAuth and unified auth support, separate connection per profiling thread
  • Iceberg: sizeInBytes profiler support
  • LookML: fixed project_dependencies union deserialization and config validation
  • Custom SQLAlchemy-based profiler to eventually replace Great Expectations profiler
  • SDK: Column value assertion SQL parameter support, automatic lineage parsing from view definitions
  • CLI: add --env option to ingest deploy command, extra-pip & extra-env options in config file, init command made agent-friendly for automation
  • Dataplex: streamlined ingestion, added platform logo
  • Ingestion: TransparentSecretStr for safe credential serialization, trace ID logging to REST emitter, set_attribution transformer with GenericJsonPatch support

Bug Fixes

  • Fixed JSON parse error in HoverCard causing Summary Panel crashes
  • Fixed "View is applied" indicator showing when no view is active
  • Fixed ingestion source save button not working when no fields were changed
  • Fixed column field paths normalization in column-level lineage existence check
  • Fixed aspect ratio for lineage platform icons
  • Fixed discrepancy with count in entities per platform chart
  • Fixed UI bug not showing users in queries tables
  • Fixed policy view-only modal missing glossary section
  • Fixed scrolling on create/edit policy modal
  • Fixed displaying defaults for OIDC config settings
  • Fixed schema field level lineage search on nested columns
  • Fixed asset download queries not applying filters and downloading all assets
  • Fixed ingestion source listing consolidation and inefficiencies in executor
  • Fixed document editor toolbar disappearing when clicked
  • Fixed search bar to retain query and suggestions after selecting an entity
  • Fixed Preset/Superset dashboard lineage and database alias transformation
  • Fixed PowerBI ODBC upstream lineage mapping and SQL parsing issues
  • Fixed PowerBI user profile overwrites with create_corp_user flag
  • Fixed Snowflake quoting issues in ingestion
  • Fixed Snowflake 2026_01 BCR property format change in DDL lineage
  • Fixed Looker URL generation with extra forward slash
  • Fixed Tableau custom SQL query display names to use datasource name
  • Fixed Tableau field extraction when column metadata is missing for table-level lineage
  • Fixed Oracle profiling crashes and silent table exclusions
  • Fixed Oracle database name retrieval when using service_name with ALL mode
  • Fixed Redshift boundary-aware segment stitching for query reconstruction
  • Fixed Teradata view HELP commands by setting DATABASE context
  • Fixed ClickHouse lineage to include dictGet() table references
  • Fixed ClickHouse direct SRC→TO lineage for materialized views with TO clause
  • Fixed MSSQL stored procedure lineage extraction
  • Fixed MSSQL SQL parser to split statements when previous expression ends with parentheses
  • Fixed SQL parser migration from sqlglot[rs] to sqlglot[c] with runtime patches
  • Fixed Dagster job URL derivation from location_name
  • Fixed Dagster preservation of DataJob lineage on failed/canceled runs
  • Fixed Airflow Airflow 2/3 Asset support
  • Fixed Airflow cluster environment for dataset URNs in lineage
  • Fixed Airflow DataFlow emission from task handler in Airflow 3 distributed deployments
  • Fixed Fivetran Databricks auth issue and missing databricks-sdk dependency
  • Fixed dbt handling of null error_after criteria in source freshness assertions
  • Fixed Kafka Connect to use canonical 'mssql' platform for Debezium SQL Server SchemaResolver
  • Fixed S3 connector to disable Avro schema name validation
  • Fixed Looker SDK not clearing LOOKERSDK_CLIENT_SECRET env var after init
  • Fixed Metabase compatibility with 0.57+ via legacy-mbql parameter
  • Fixed Snowplow connector missing cachetools dependency
  • Fixed ingestion preventing platform instance duplication in browse paths
  • Fixed ingestion preventing partial entity sync in DataHub source using URN pattern filtering
  • Fixed ingestion preventing changing of source type for existing ingestion sources
  • Fixed ingestion handling of oversized viewProperties
  • Fixed ingestion restoring state for query and filter after source updating
  • Fixed duplicate document creation on page refresh
  • Fixed OpenAPI scroll endpoint not mutating default search flags
  • Fixed structured properties allowing updates for properties with badge enabled
  • Fixed lineage index backfill filter efficiency
  • Fixed lineage module to show custom annotation nodes
  • Fixed lineage graph rendering issues (breaks lineage module)
  • Fixed assertions preventing deleted assertions from being executed
  • Fixed stale monitor errors being cleared
  • Fixed observe field metric evaluation zero rows handling
  • Fixed MAE interaction with ES8 data streams
  • Fixed system-update data stream API for Elasticsearch data stream creation
  • Fixed search suggestion parsers registration in ES8 XContent registry
  • Fixed search sanitizing base64 images from search index to prevent indexing failures
  • Fixed sign-up flow where user invite tokens by email were invalidated when new token created
  • Fixed tokens from being verified on /public calls
  • Fixed Ask DataHub not using default view
  • Fixed chat URN links in user messages opening to blank page
  • Fixed chat filtering empty New Chat entries from conversation list
  • Stability and error message improvements for AI docs generation
  • Various security CVE fixes across multiple dependencies (Jackson, commons-compress, lz4-java, snappy-java, Velocity, cryptography, jinja2, Spring Boot, Jetty, and more)