v2.2.0
Release Changelog
v2.2.0
Release Availability Date
3-Sep-2026
Recommended Versions
- 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 inAuthorization: Bearer <token>only. Clients that cannot set headers can usemcp-remotewith--header "Authorization: Bearer <token>". See MCP → Connecting & Authenticating. getSecretValuesnow requires system authentication. Human users and PATs withMANAGE_SECRETScan 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=trueto restore. Existing tokens are unaffected. - Great Expectations SQL profiler removed. Remove
profiling.methodand theprofiling-geextra from recipes; SQLAlchemy is now the only SQL profiler. semanticModelInfo.datasetsdeprecated. After upgrade, this field no longer writes graph or search edges, and GraphQLSemanticModelInfo.datasetsreturns empty. Metric-to-dataset lineage is missing until you re-ingest. Action: Re-ingest Semantic Models sometricUpstreamsis populated. If you use Snowflake Semantic Views, rundatahub migrate snowflake-semantic-viewsfirst. Customers who do not use Semantic Models can ignore this.- Lineage scroll API contract changed.
POST /openapi/v3/lineage/scrollnow takes a singleurnslist anddirectionofUPSTREAM/DOWNSTREAM. - Subscriptions inherit notification defaults. Omitting
notificationSettingsuses the actor's current defaults at delivery time; sendsinkTypes: []explicitly for no-sink subscriptions. - APAC Bedrock cross-region prefix. Sonnet 4.5+ models require the
auorjpprefix, not legacyapac, 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/entityand/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
/dataProductswith 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_idto a corp user so automated@DataHubmentions 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, andDataset 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
- S3 and GCS CLI version matrix sources — ingestion sources backed by object-store version matrices for CLI release tracking (datahub-project/datahub#18202).
- Alias Aspect creation on GMS side for new ingestion and backfill for older entries (needed as a prerequisite for the URN Casing feature) (datahub-project/datahub#18679, datahub-project/datahub#19138, datahub-project/datahub#18639).
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 emitschema.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
elasticsearchplatform (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_casefor 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-pyand supports both Elasticsearch and OpenSearch clusters. - Document sources:
min_text_lengthnow defaults to0fordatahub_documents, Notion, and Confluence so short documents embed by default (datahub-project/datahub#19103). - Ingestion log GC (opt-in) —
DATAHUB_EXECUTOR_LOG_GC_ENABLEDdeletes 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.namewhen warnings appear. - Semantic-anchor
output_dirremoved — remove from recipes and rely on the executor-providedINGESTION_ARTIFACT_DIR. - Snowflake:
- New opt-in
preserve_column_casefor quoted mixed-case columns.
- New opt-in
- 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_graphandget_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
Skillsearch 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
initializePOSTs failing the handshake with HTTP 400.
GraphQL & OpenAPI
- Relationship schema export —
GET /openapi/v3/relationship/schemareturns the relationship graph as RDF (Turtle default, JSON-LD, N-Triples, RDF/XML). - Structured-property search ranking (opt-in) — properties marked
useAsRankFeaturedrive recall and ranking. Requires mapping rollout andRestoreIndicesbackfill for existing assets. Enable withSEARCH_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_STATUSprivilege — 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 byGRAFANA_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. UsesemanticModelProperties.semanticModelandmetricUpstreamsinstead.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
canViewFormsauthorization on Forms analytics.
Known Issues
- Policy name search after upgrade — existing policies are invisible to name search until a scoped
RestoreIndicesbackfill fordataHubPolicyInfocompletes. - 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
textfields wherekeywordwas expected require a one-time reindex withELASTICSEARCH_INDEX_BUILDER_MAPPINGS_REINDEX=trueon 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.