Skip to main content

v2.2.0

Release Changelog

v2.2.0

Release Availability Date

3-Sep-2026

  • CLI/SDK: 1.7.0.5
  • Remote Executor: v2.2.0-cloud, v2.1.5-cloud, v2.1.4-cloud, v2.1.3-cloud, v2.1.2-cloud, v2.1.1-cloud, v2.1.0-cloud, v2.0.4-cloud, v2.0.3-cloud, v2.0.2-cloud, v2.0.1-cloud
  • On-Prem Versions:
    • Helm: 2.0.30
    • API Gateway: v0.7.3

Release Highlights

DataHub Cloud v2.2.0 is packed with exciting updates, including:

  • Agents (Private Beta) — Build purpose-built AI assistants for every data persona, publish them to Ask DataHub chat in one click, and schedule tasks that automatically enrich documentation, tags, and ownership, so your catalog stays current without the manual upkeep. Learn more here.
  • Agentic Ingestion Configuration — Root-causes failed runs by reading the connector's actual code. Grounds every answer in the exact configuration schema for your connector. Finds your ingestion source's recent runs automatically. Routes connector questions to the right specialist automatically. Version-aware diagnosis — knows the exact CLI version a run used.
  • One-Click Slack App Install — App Config & Refresh Tokens are no longer required to install the DataHub Slack App. Simply click 'Connect to Slack' on the Integrations > Slack page to install. Existing installations using App Config, Refresh, and Bot tokens will continue to be supported.
  • Data Discovery & Ontology — DataHub supports more complex querying of its metadata graph, with new relationship traversal and SPARQL query endpoints. New MCP tools let agents walk the metadata graph without hard-coding relationship types. And the new Ontology Explorer supports viewing how your glossary terms relate to each other. The basic APIs and explorer will be available in 2.2.1, while the SPARQL engine and custom relationships are in private beta; talk to your DataHub representative to enable them.

Notable Breaking Changes

Full technical remediation lives in Updating DataHub. Source-specific breaking changes appear inline under Metadata Ingestion.

  • MCP server: ?token= query parameter removed to encourage best practices. Send the access token in Authorization: Bearer <token> only. Clients that cannot set headers can use mcp-remote with --header "Authorization: Bearer <token>". See MCP → Connecting & Authenticating.
  • getSecretValues now requires system authentication. Human users and PATs with MANAGE_SECRETS can no longer decrypt secrets via GraphQL; migrate executor, actions, and integrations-service callers to system credentials.
  • Never-expiring access tokens disabled by default. Set ACCESS_TOKEN_ALLOW_NO_EXPIRY=true to restore. Existing tokens are unaffected.
  • Great Expectations SQL profiler removed. Remove profiling.method and the profiling-ge extra from recipes; SQLAlchemy is now the only SQL profiler.
  • semanticModelInfo.datasets deprecated. After upgrade, this field no longer writes graph or search edges, and GraphQL SemanticModelInfo.datasets returns empty. Metric-to-dataset lineage is missing until you re-ingest. Action: Re-ingest Semantic Models so metricUpstreams is populated. If you use Snowflake Semantic Views, run datahub migrate snowflake-semantic-views first. Customers who do not use Semantic Models can ignore this.
  • Lineage scroll API contract changed. POST /openapi/v3/lineage/scroll now takes a single urns list and direction of UPSTREAM / DOWNSTREAM.
  • Subscriptions inherit notification defaults. Omitting notificationSettings uses the actor's current defaults at delivery time; send sinkTypes: [] explicitly for no-sink subscriptions.
  • APAC Bedrock cross-region prefix. Sonnet 4.5+ models require the au or jp prefix, not legacy apac, for APAC deployments.
  • Observe: Anomaly detection assertions require 14 days of history before alerting; existing predictions are preserved during temporary retraining-data shortages. This gives the assertion more time to detect daily and weekly patterns and avoid noisy false alarms.
  • OpenAPI v2 entity APIs deprecated. Plan migration to /openapi/v3/entity and /openapi/v3/relationship.
  • You can no longer, through the UI, create legacy propagation automations (Tag Propagation, Glossary Term Propagation, and Column Documentation Propagation). These are replaced by the new Lineage Propagation automation. You can still run and edit pre-existing automations via the UI, and create legacy ones via API.

User Experience

This release includes significant improvements to the user interface and user experience.

Data Product Marketplace & Hierarchical Data Products

DataHub v2.2.0 introduces a dedicated Data Products experience for managing Data Products and first-class support for parent–child taxonomies. Together, these changes make it easier to model and discover data products.

Both capabilities are enabled by default after upgrade.

  • Dedicated browse experience at /dataProducts with a left-nav Data Products entry (Govern section).
  • Hierarchical sidebar to expand/collapse root and child Data Products, with infinite scroll, Domain filter, and in-sidebar autocomplete search.
Domain and Data Product proposals

Stewards can now propose creating Domains and Data Products through the existing accept/reject workflow, with a new Propose Create Domain platform privilege and steward inbox rendering. This matches the glossary-term propose flow that shipped earlier and gives governance leads an audit trail for structural additions to the catalog.

Ontology Explorer

Explore your business glossary's relationships with the new Ontology Explorer. Similar to the lineage graph, the explorer lets you visualize how your glossary terms relate to one another, via built-in and custom relationships. Supports search, filtering by relationship type, and expanding to see further related glossary terms. Available globally in 2.2.1, via the navigation sidebar and on the new Relationships tab of the glossary term entity page.

Semantic Model container lineage

Semantic Models now render as grouping containers in the lineage explorer rather than as intermediate hops on the lineage path. Datasets and metrics belonging to a model appear inside a bounding box (similar to Data Products), while metric lineage flows directly through the logical datasets a metric reads from: Metric → Semantic Model Dataset → Physical Dataset.

Note: Existing semantic-model metadata may need a re-ingest or migration run so metric lineage is populated in the new shape. See Notable Breaking Changes above.

Volume assertion accuracy

Greatly improved anomaly detection reliability. Predictions align better with sub-daily seasonality, remain more stable over time, and use practical sensitivity bounds to avoid false positives.

Other Improvements
  • Slack bot service-account mappings — map a Slack bot_id to a corp user so automated @DataHub mentions from approved bots are answered instead of refused.
  • Support OAuth login — support staff can authenticate via the support OIDC provider with ticket-bound one-hour tokens (no refresh tokens).
  • Japanese i18n locale (Beta) — Japanese translations can be enabled when internationalization is turned on for the instance (I18N_ENABLED=true).
  • Parent Data Products — nested data-product taxonomies via dataProductProperties.parentDataProduct.
  • Glossary Term AI throttling — opt-in caps on concurrent term-classification pipelines and per-run / per-minute batch sizes prevent integrations-service overload when many automations run together.
  • AI agent ownership — AI agent entities can be assigned as owners on assets in the UI and GraphQL APIs.
  • Fixed lineage graphs for view-restricted users rendering Restricted nodes instead of failing when neighbors are unviewable.
  • Fixed container filter expansion on equality conditions breaking search filters.
  • Fixed Custom SQL Assertion UI now correctly displays floats in condition inputs.
  • Fixed Ask DataHub send button hidden on smaller screens.
  • Observe
    • Skip freshness assertion queries until due — Freshness Anomaly detection was polling warehouses for updates too frequently (minimum once per hour). Queries are now delayed until the next predicted update, with more frequent polling after staleness is detected.
    • Assertion notification emails have a refreshed layout. Footer labels renamed to Alert ID, Assertion URN, and Dataset URN. If you match on the old footer for deduplication in your email integrations (e.g. PagerDuty), update your regexes.
    • Fixed issue where assertion backfill jobs would get stuck forever.
    • Assertions created by Monitoring Rules no longer error at midnight.
    • The UI for Custom SQL Assertions now correctly display floats for conditions.

Metadata Ingestion

We're continuously improving our integrations to add new capabilities and squash bugs.

New Sources
Existing Sources
  • Kafka / Kafka Connect:
    • Confluent Cloud Stream Catalog metadata support (datahub-project/datahub#18764).
    • Kafka Connect: SQL Server treated as three-level (database.schema.table); Oracle JDBC sink URNs emit schema.table. See source-specific breaking changes below.
  • Glue: Cross-account platform instances and Lake Formation resource-link lineage (datahub-project/datahub#17963).
  • Power BI: Elasticsearch ODBC sources resolve to the elasticsearch platform (datahub-project/datahub#18716).
  • ODCS: Import contracts from S3, GCS, HTTP, and Git, plus a UI form for the source (datahub-project/datahub#18477, datahub-project/datahub#18474).
  • Snowflake:
    • Semantic views preserve logical-table casing.
    • New opt-in preserve_column_case for quoted mixed-case columns.
    • Profile field paths align with schema paths.
  • Snowflake / Oracle SQL profiling: Case-colliding quoted columns no longer silently dropped during reflection; warnings surface when statistics cannot attach to distinct fields.
  • Elasticsearch source: Uses opensearch-py and supports both Elasticsearch and OpenSearch clusters.
  • Document sources: min_text_length now defaults to 0 for datahub_documents, Notion, and Confluence so short documents embed by default (datahub-project/datahub#19103).
  • Ingestion log GC (opt-in)DATAHUB_EXECUTOR_LOG_GC_ENABLED deletes aged per-execution log directories with retention and size-cap tunables (default off). See Remote Executor best practices.
  • Executor:
    • Stop per-run uv cache duplication of acryl-datahub.
    • Fix cancelled zombie processes bug.
Source-specific breaking changes
  • Kafka Connect — SQL Server / Oracle URN shape changes. Set schema.name when warnings appear.
  • Semantic-anchor output_dir removed — remove from recipes and rely on the executor-provided INGESTION_ARTIFACT_DIR.
  • Snowflake:
    • New opt-in preserve_column_case for quoted mixed-case columns.
  • Remote executor defaults to use hardlinking for uv cache. For read-only filesystems, see best practices.

API, SDK, and MCP

MCP Tools and Skills
  • New tools: get_metadata_graph and get_relationships — expose the relationship vocabulary and let agents walk the metadata graph without hard-coding type names. Disabled by default in Private Beta.
  • Ask DataHub Skill loader — on-demand skill loading via a Skill search tool replaces the planner LLM. Currently only supports built-in skills, but will evolve to support user-customizable skills in future versions.
  • External MCP plugin validation — connecting an AI plugin verifies it exposes tools; zero-tool servers fail connect with actionable guidance; chat disables empty plugins without dropping previously stored credentials.
  • Bug Fix: Fixed MCP clients sending chunked initialize POSTs failing the handshake with HTTP 400.
GraphQL & OpenAPI
  • Relationship schema exportGET /openapi/v3/relationship/schema returns the relationship graph as RDF (Turtle default, JSON-LD, N-Triples, RDF/XML).
  • Structured-property search ranking (opt-in) — properties marked useAsRankFeature drive recall and ranking. Requires mapping rollout and RestoreIndices backfill for existing assets. Enable with SEARCH_STRUCTURED_PROPERTY_RANK_FEATURES_ENABLED=true.
  • Domain-scoped entity create for writers — domain-separated writers can create entities with proposed domains in-batch without a separate unscoped create policy (datahub-project/datahub#18944).
  • VIEW_SYSTEM_STATUS privilege — read messaging consumer lag, transport, and registered consumers without full system-operations access.
Deprecations
  • Grafana operational dashboard (/admin/dashboard) — tombstoned in 2.2, disabled in 2.3, removed in 2.4. Operational signals move to public APIs and Observe. Controlled by GRAFANA_DASHBOARD_MODE.
  • OpenAPI v2 entity and relationship APIs — deprecated in favor of v3. Timeseries, platform ingest, and timeline v2 endpoints are unaffected.
  • semanticModelInfo.datasets — stop populating. Use semanticModelProperties.semanticModel and metricUpstreams instead.
  • ENABLE_BEDROCK_OPTIMIZED_LATENCY — removed. Was a no-op for current model families while inflating cost estimates.
  • hideChatBetaLabel — removed. Ask DataHub is GA; remove the env var if set.

Security Notes

  • Bumped Logback to 1.5.38 (CVE-2026-9828, CVE-2026-10532), Log4j to 2.25.5 (CVE-2026-49844), Parquet to 1.18.0 (CVE-2026-54512, CVE-2026-54513), and libthrift to 0.23.0 (CVE-2026-43869). No client action required beyond a standard upgrade.
  • Stored XSS fixes in GraphQL / UI paths (datahub-project/datahub#19298, datahub-project/datahub#19299, datahub-project/datahub#19300).
  • DuckDB analytics SQL injection hardened — read-only sandbox, sqlglot allowlist parser, and canViewForms authorization on Forms analytics.

Known Issues

  • Policy name search after upgrade — existing policies are invisible to name search until a scoped RestoreIndices backfill for dataHubPolicyInfo completes.
  • OpenSearch 2.x bridge semantic search — do not enable semantic search on OpenSearch 2.x builds containing the pre-fix bridge kNN filter regression; hold until a build containing the fix ships, or run Elasticsearch 8.
  • Elasticsearch mapping repair — indices with dynamically inferred text fields where keyword was expected require a one-time reindex with ELASTICSEARCH_INDEX_BUILDER_MAPPINGS_REINDEX=true on system-update. See Updating DataHub.
  • Tableau + Snowflake preserve_column_case — Tableau column-level lineage may not match until Tableau resolves ingested Snowflake casing. Ingest Snowflake before Tableau when enabling the option.