DataHub Releases
Summary
| Version | Release Date | Links |
|---|---|---|
| v1.7.0.1 | 2026-09-03 | Release Notes, View on GitHub |
| v1.6.0.2 | 2026-09-01 | Release Notes, View on GitHub |
| v1.6.0.1 | 2026-08-13 | Release Notes, View on GitHub |
| v1.7.0 | 2026-08-04 | Release Notes, View on GitHub |
| v1.6.0 | 2026-05-21 | View on GitHub |
| v1.5.0.7 | 2026-05-19 | View on GitHub |
| v1.5.0.6 | 2026-05-11 | View on GitHub |
| v1.5.0.5 | 2026-05-07 | View on GitHub |
| v1.5.0.4 | 2026-05-06 | View on GitHub |
| v1.5.0.3 | 2026-04-25 | View on GitHub |
v1.7.0.1
Released on 2026-09-03 by @david-leifker.
DataHub v1.7.0.1
Patch release for the v1.7.0 line: authorization tightening, CVE dependency bumps, entity-graph-cache and lineage correctness fixes, optional optimistic locking for aspect writes, and the remainder of the custom-assertion stack.
Requirements
- CLI / Python SDK: 1.7.0.9
- Helm Chart: 1.1.0
Full upgrade guidance, including every breaking change and migration step: Updating DataHub — v1.7.0.1.
Upgrade path
- From v1.7.0: drop-in image bump. No ZDU or Helm chart change is required. System-update runs a resumable backfill that copies embedded assertion notes to the new
assertionNoteaspect (tunable withSYSTEM_UPDATE_ASSERTION_NOTE_MIGRATION_ENABLED,_BATCH_SIZE,_DELAY_MS,_LIMIT). - From pre-1.7.0: the v1.7.0 path still applies — you must upgrade to v1.6.0 first (Helm chart 1.0.3, let system-update complete), then upgrade to v1.7.0.1 with Helm chart 1.1.0. Do not skip 1.6.0.
Model changes: additive only. The assertionNote aspect is now registered on the assertion entity so ingestion can fully upsert assertionInfo without clobbering user-authored notes. Assertion URNs and run history are unchanged.
Action required before upgrading
| Area | What changed | Who is affected |
|---|---|---|
| System client secret | The hardcoded systemClientSecret default (JohnSnowKnowsNothing) is removed from the server configs (#18886) | Set DATAHUB_SYSTEM_CLIENT_SECRET on GMS, MAE/MCE/PE consumers, the frontend, and Actions before upgrading if you still rely on the built-in default |
| Timeseries reads | Dataset profile / usage / operations timeseries (and dashboard usage stats) now require the matching View Dataset Profile / Usage / Operations privileges on Rest.li and OpenAPI as well as GraphQL (#19508) | API clients that previously read these aspects with only entity GET — grant the privileges or rely on the default view-dataset-sensitive policy |
| Role & group membership writes | roleMembership requires Manage Policies; groupMembership / nativeGroupMembership requires Edit Group Members; corpGroup ownership requires Edit Owners — checked at the aspect layer across GraphQL, OpenAPI, and Rest.li (#19360) | Automation writing membership outside the UI. Only additions are checked; removals, unchanged re-ingestion, and system writes pass. Toggle with metadataChangeProposal.validation.aspectAuthorization.privilegeGrant.enabled (default true) |
| View authorization (VBAC) | container and schemaField are view-restricted by default; schema-field View Entity Page inherits from the parent dataset (#19212) | Deployments with VIEW_AUTHORIZATION_ENABLED=true — ensure View Entity Page policies cover containers and parent datasets |
Security and authorization
- Default self policy (#19297) — limited to
VIEW_ENTITY_PAGEandGET_ENTITYon the actor's own entity. - GMS
/authhelpers (#19316) —signUp,resetNativeUserCredentials,verifyNativeUserCredentials, andgetSsoSettingsnow require system client credentials, matchinggenerateSessionTokenForUser. Frontend login, signup, password reset, and SSO are unchanged. - System-write identification (#19384) — aspect authorization no longer treats client-supplied
appSourceas proof of a system write. - Schema-field incidents (#19405) — authorized against the parent entity.
- Lineage scroll (#19463) — unauthorized OpenAPI lineage scroll endpoints are redacted as restricted.
- UI sanitization (#19298, #19299, #19300) — query and incident descriptions, documentation PDF preview iframe
src, and embedrenderUrlschemes. - Ingestion secret masking (#19515, #19526, #19561, #19332) — masking is unified, idempotent, and fail-closed (mask before truncation; install once per process). Recorded HTTP cassettes are scrubbed.
- AWS credentials (#19483) — OpenSearch IAM signing, Bedrock embeddings, STS, and object storage share a process-wide credential provider and client lifecycle.
Reliability and performance
- Entity-graph cache (#19498, #19288, #19301, #19412) — relationships are no longer silently dropped; indexed search fields are fetched for the cache; null relationship endpoints are skipped; hierarchy graph fallback batches frontier scrolls.
- Container contents (#19489) —
Container.relationships(types: [IsPartOf], direction: INCOMING)again returns all contained entities from the live graph. - Lineage traversal (#19413) —
scrollAcrossLineageis bounded to prevent GMS OOM on wide graphs. - Case-insensitive
relatedEntityTypes(#19268). - Hot-path caching and batching (#19404, #19476, #18266) — corpGroup
roleMembershipcached viaSystemEntityClient, per-request CorpUserFlags served from a cached aspect, and DashboardusageStatsbuckets and metrics batch-loaded across a page. - Optional optimistic locking for aspect writes (#19249) —
OPTIMISTIC_LOCKING_ENABLEDreplacesSELECT FOR UPDATEwith compare-and-set onSystemMetadata.versionfor Ebean storage.SCOPED_RETRY_ENABLEDretries only the conflicted URN's branch, andENTITY_WRITE_LOCK_BACKEND=hazelcastserializes same-(urn, aspect)writers off the DB connection pool. PostgreSQL aspect writes also take row locks in consistent primary-key order. All of these default off.
Assertions
- Custom-assertion stack completed on the 1.7 line (#18882) — API/SDK, UI, the
assertionNoteaspect, and the dbt / Great Expectations / YAML data-contract writers. Those writers emitAssertionType.CUSTOMinstead of the deprecatedDATASETshape on the next run; assertion URNs are unchanged and run history is preserved. Assertions that are never re-ingested keep their storedDATASETaspects and continue to render. See Custom Assertions.
Ingestion
- nltk 3.10.1 excluded (#18889) — that version silently breaks document chunking.
- GitPython floor raised to 3.1.58 (#19506).
- Bundled default CLI / Python SDK is 1.7.0.9 (#19605).
Dependency CVE bumps
- Java: httpclient5 5.6.3 (CVE-2026-64607), Spring Boot / Spring Kafka 4.0.7 (CVE-2026-41001), OpenTelemetry Java agent 2.28.0 (CVE-2026-54704), mariadb-java-client 2.7.14 (CVE-2026-55856 / 55857 / 55858), Logback 1.5.38 (CVE-2026-9828, CVE-2026-10532), Log4j 2.25.5 (CVE-2026-49844), Netty 4.2.17.Final (CVE-2026-59902), libthrift 0.23.0 (CVE-2026-43869), Jetty 12.1.10 (CVE-2026-10050), httpcore5 5.4.3 (CVE-2026-54399), micrometer-core 1.16.6 (CVE-2026-40983, CVE-2026-40984), wire-runtime 6.3.0 (CVE-2026-45799), reactor-netty-core 1.3.6, netty-reactive-streams 3.0.9.
- Apache Parquet 1.18.0, which refreshes its shaded Jackson to jackson-databind 2.22.1 (CVE-2026-54512, CVE-2026-54513).
- Python / images: nltk 3.10.3 (CVE-2026-12075); the
datahub-actionsimage python layer is cache-busted so a stale cached layer stops shipping setuptools 70.3.0 (CVE-2025-47273).
Quickstart
datahub docker quickstart (and --version v1.7.0) resolves to the v1.7.0.1 images once the version mapping update lands.
What's Changed
- fix(ingest): exclude nltk 3.10.1, which silently breaks document chunking by @nwadams in https://github.com/datahub-project/datahub/pull/18889
- chore(release): backport custom assertion stack to v1.7.0 by @AdrianMachado in https://github.com/datahub-project/datahub/pull/18882
- feat(optimistic-locking): optimistic locking, aspect advisory locks, and Hazelcast write gate to v1.7.0 by @Dutt23 in https://github.com/datahub-project/datahub/pull/19249
- fix(sec): bump wire-runtime 5.2.0 → 6.3.0 for CVE-2026-45799 by @max-datahub in https://github.com/datahub-project/datahub/pull/19317
- fix(sec): backport security fixes and CVE dependency bumps to v1.7.0 by @supersingh05 in https://github.com/datahub-project/datahub/pull/19415
- fix(auth): backport graph-cache, timeseries auth, and related GMS fixes to v1.7.0 by @david-leifker in https://github.com/datahub-project/datahub/pull/19548
- fix(deps): bump mariadb-java-client to 2.7.14 for CVE-2026-55856/557/558 by @david-leifker in https://github.com/datahub-project/datahub/pull/19557
- fix(deps): bump httpclient5, Spring Boot, and OTel agent for v1.7.0.1rc1 CVEs by @david-leifker in https://github.com/datahub-project/datahub/pull/19565
- fix(gms): backport IRSA credential leak fix to v1.7.0 by @david-leifker in https://github.com/datahub-project/datahub/pull/19581
- fix(sec): backport ingestion secret-masking, GitPython, and image cache-bust fixes to v1.7.0 by @supersingh05 in https://github.com/datahub-project/datahub/pull/19591
- chore(cli): bump default cli by @david-leifker in https://github.com/datahub-project/datahub/pull/19605
Full Changelog: https://github.com/datahub-project/datahub/compare/v1.7.0...v1.7.0.1
v1.6.0.2
Released on 2026-09-01 by @david-leifker.
What's Changed
- fix(sec): backport security fixes and CVE dependency bumps to v1.6.0 by @supersingh05 in https://github.com/datahub-project/datahub/pull/19414
- fix(policies): apply validator level aspect edit controls for user and group aspects (#19360) by @RyanHolstien in https://github.com/datahub-project/datahub/pull/19438
- fix(sec): backport GMS /auth helper gate and timeseries view privileges to v1.6.0 by @david-leifker in https://github.com/datahub-project/datahub/pull/19529
Full Changelog: https://github.com/datahub-project/datahub/compare/v1.6.0.1...v1.6.0.2
v1.6.0.1
Released on 2026-08-13 by @david-leifker.
What's Changed
- fix(security): backport security fixes to v1.6.0 by @supersingh05 in https://github.com/datahub-project/datahub/pull/18613
- fix(release): backport v1.6.0 platform bugfixes from master by @david-leifker in https://github.com/datahub-project/datahub/pull/18683
- fix(deps): bump lz4-java to 1.11.1 and jackson to 2.21.5 (security, v1.6.0) by @supersingh05 in https://github.com/datahub-project/datahub/pull/18741
- fix(backport): v1.6.0 — transaction retry backoff/conflict API, PostgreSQL lock ordering, Spring 7.0.8 by @supersingh05 in https://github.com/datahub-project/datahub/pull/18798
- fix(sec): bump wire-runtime 5.2.0 → 6.3.0 for CVE-2026-45799 by @supersingh05 in https://github.com/datahub-project/datahub/pull/19100
- fix(sec): backport security dependency bumps to v1.6.0 by @supersingh05 in https://github.com/datahub-project/datahub/pull/19179
- fix(deps): bump Apache Parquet stack to 1.18.0 for shaded Jackson CVEs by @david-leifker in https://github.com/datahub-project/datahub/pull/19191
- fix(deps): bump Log4j to 2.25.5 for CVE-2026-49844 by @david-leifker in https://github.com/datahub-project/datahub/pull/19194
Full Changelog: https://github.com/datahub-project/datahub/compare/v1.6.0...v1.6.0.1
v1.7.0
Released on 2026-08-04 by @david-leifker.
DataHub v1.7.0
Requirements
- CLI / Python SDK: 1.7.0
- Helm Chart: 1.1.0
Full upgrade guidance, including every breaking change and migration step: Updating DataHub — v1.7.0.
Upgrade path / ZDU: You must upgrade to v1.6.0 before upgrading to v1.7.0 — do not skip 1.6.0. Deploy v1.6.0 with Helm chart 1.0.3, let system-update complete, then upgrade to v1.7.0 with Helm chart 1.1.0. Enable Elasticsearch/OpenSearch ZDU (global.datahub.systemUpdate.zdu) with the 1.1.0 chart on a subsequent OpenSearch/Elasticsearch version bump — not during the v1.6.0 install.
Feature highlights
UI and experience
- Metrics and Semantic Models — first-class
metricandsemanticModelentities with dedicated pages, a metrics home/sidebar experience, autocomplete, modular summary tabs, and lineage wiring (#18134, #18350–#18407, #18442–#18459, #18462, #18482, #18701, and related). - Logical Models UI — create, link, edit, and delete logical models from the UI, in addition to API/SDK paths (#18498).
- Data Product lineage — data products participate directly in the lineage graph (#18463).
- Multi-language (i18n) default on —
I18N_ENABLEDdefaults to on in OSS; UI follows the browser locale. New Beta locales include French, Italian, Norwegian Bokmål, Swedish, Hungarian, and Finnish (#18285, #18282, #18221, #18222, #18263, #18265, #18339, #18520). - Lineage graph — always the latest lineage experience;
LINEAGE_GRAPH_V2/LINEAGE_GRAPH_V3flags removed.
Ingestion — new sources
- Cube — semantic-layer connector (#17964)
- AWS Kinesis — Kinesis Data Streams and Amazon Data Firehose (#17592)
- MicroStrategy — BI connector (#18158)
- Open Data Contract Standard (ODCS) — contracts from S3, GCS, HTTP, and Git (#17331, #18474, #18477)
- ThoughtSpot (#17400)
- SAP Datasphere (#17802)
- DocumentDB platform — opt-in
platform: documentdbon the MongoDB source for AWS DocumentDB (#17443)
Ingestion — major connector improvements
- Hex — major in-place upgrade: table- and column-level lineage from Hex APIs, Project → Component links, run history, optional AI context documents; Components ingested as Chart entities (see breaking changes) (#17376).
- Snowflake — Semantic Views can emit first-class
semanticModel/metric/ logical-dataset entities (semantic_views.emit_semantic_model_entities; OSS default off / auto-resolve) (#18395, #18509). - Databricks Unity Catalog — Lakehouse Federation (foreign catalogs); usage/ops/queries from
system.query.historyvia the shared SQL parsing aggregator; ML model ingestion controls fixed (#18213, #17971, #18220, and related). - Matillion — foldered container hierarchy, environment-scoped lineage, run history at pipeline and component levels, corrected console links (#17927).
- Glue — Lake Formation resource-link schema resolution (default on), column-level LF tags, cross-account platform instances (#17963, #17812).
- Redshift — multi-line SQL no longer dropped from lineage/usage; per-query popularity stats;
table_patternapplied to SQL-parsing path (#18542, #18001, #18065). - BigQuery — table stats from
INFORMATION_SCHEMA.PARTITIONS(see breaking changes); usage window fields consolidated to top-level (#18367, #18133). - Power BI / Mode — column-level lineage preserves original upstream column casing (#18181).
- Spark — Apache Spark 4.x support (Scala 2.13 agent); OpenLineage 1.50 with full shading for EMR/DataZone coexistence (#14911).
- S3 / ABS — profile data-lake files without PySpark; optional
emit_folders_onlyfor object-store folder cataloging (#18347, #18599, #18437). - Airbyte — Public API stream namespace recovery (#18727).
- Kafka — profiling support (#14367).
- Great Expectations — GX Core 1.x action path (#18706).
Search, auth, and metadata
- View authorization overhaul — entity types restricted by default when VBAC is on;
VIEW_UNRESTRICTED_*overlays; documents view-restricted by default; schemaField can inherit VIEW from parent dataset (#18612, #18664, and related). - Structured properties — ES field-name collision rejection; keyword max-length validation; type-mismatch reindex detection.
- Configurable search entity-type defaults —
SEARCH_*_ENTITY_TYPESenv overlays for GraphQL search/autocomplete/browse defaults. - File upload / object storage — config path moved to
datahub.objectStorage(see breaking changes); documentation file attach/download guide.
Operations and platform
- Secrets caller guard —
SECRET_SERVICE_CALLER_GUARD_MODEdefaults to ENFORCE; human PATs can no longer decrypt UI secrets via GraphQL. - Primary storage read pool — optional Ebean/Cassandra read pool for entity-aspect reads (
EBEAN_READ_POOL_*/CASSANDRA_READ_POOL_*). - Ebean transaction conflicts — stable retryable 503 /
DATABASE_TRANSACTION_CONFLICTinstead of opaque 500s on deadlock exhaustion. - Docker tags — floating
:headremoved; coordinated:quickstartand immutable:sha-*tags. - Optional Loki log shipping —
LOG_AGGREGATOR_ENDPOINTfor core services and the frontend. - jose4j shipped for Kafka SASL/OAUTHBEARER JWT validation.
- Airflow plugin — Airflow 2.x dropped; Airflow 3.0+ required. Prefect plugin requires Prefect 3.x.
- Orchestration plugins — Airflow / Dagster / Prefect / GX default emit mode is ASYNC.
- Built-in column classifier removed —
DataHubClassifier/acryl-datahub-classifyno longer shipped.
Breaking changes
Review the full Breaking Changes section in Updating DataHub before upgrading. Summary of items that may require action:
| Area | What changed | Who is affected |
|---|---|---|
| Must install v1.6.0 first | Do not skip 1.6.0; ZDU enablement uses Helm 1.1.0 after 1.6.0 + system-update | All upgraders from pre-1.6.0 |
| Secrets ENFORCE | Human PATs/browser can no longer decrypt UI secrets; use datahub-actions / system client or AUDIT temporarily | Anyone using user PATs for getSecretValues |
| Airflow 2 dropped | Plugin requires Airflow 3.0+ | Airflow 2.x deployments — pin plugin <= 1.6.0 or upgrade Airflow |
| Prefect 3 required | datahub-prefect requires Prefect 3.x | Prefect 2.x users |
| Classifier removed | Built-in DataHubClassifier gone; recipes with classification.enabled: true fail fast | Classification-enabled recipes |
| Plugin emit ASYNC | Airflow/Dagster/Prefect/GX default emit is async | Operators needing sync/raise-on-reject — set SYNC_PRIMARY |
| Hex Components → Chart | Component entity type/URNs change; tags/policies may need reapply | Hex workspaces with Components |
| Spark OL 1.50 trimmers | Partition dirs stripped from FS/object-store dataset names by default | Spark lineage without path_spec_list / file_partition_regexp |
| Power BI / Mode CLL casing | Upstream column paths keep source casing | Re-ingest; remove lowercase workarounds on SQL sources |
| BigQuery table stats | Stats from PARTITIONS; empty/external/views/snapshots lose some timestamps | Set use_legacy_table_stats: true to restore |
| Object storage YAML | datahub.s3 → datahub.objectStorage | Custom YAML overrides (env vars largely unchanged) |
| View authorization | Restricted-by-default + VIEW_UNRESTRICTED_*; documents restricted | Deployments with VIEW_AUTHORIZATION_ENABLED=true |
| Lineage graph flags | LINEAGE_GRAPH_V2 / V3 removed | Anyone still setting those env vars |
Docker :head | Use quickstart / immutable sha-* / release tags | Compose and production pin practices |
| Workunit processors | Helper functions → processor classes; several renames | Custom ingestion code calling old helpers |
| Relationship edge uniqueness | One aspect per (source, dest, relationship) signature (#18845) | Custom / plugin entity registries |
| Logical parent auth | Edit Entity required on child and parent when linking | Logical-model operators |
Potential downtime: Structured-property Elasticsearch type-mismatch reindex when both system-update flags are on — see Updating DataHub — v1.7.0.
Deprecations: Hex lineage time/page-size recipe fields; BigQuery usage.* window / formatting fields migrated to top-level — see the v1.7.0 Deprecations section in Updating DataHub.
Contributors
Thank you to everyone who contributed to v1.7.0. For the complete changelog, compare v1.6.0...v1.7.0.
v1.6.0
Released on 2026-05-21 by @david-leifker.
View the release notes for v1.6.0 on GitHub.
v1.5.0.7
Released on 2026-05-19 by @david-leifker.
View the release notes for v1.5.0.7 on GitHub.
v1.5.0.6
Released on 2026-05-11 by @david-leifker.
View the release notes for v1.5.0.6 on GitHub.
v1.5.0.5
Released on 2026-05-07 by @david-leifker.
View the release notes for v1.5.0.5 on GitHub.
v1.5.0.4
Released on 2026-05-06 by @david-leifker.
View the release notes for v1.5.0.4 on GitHub.
v1.5.0.3
Released on 2026-04-25 by @david-leifker.
View the release notes for v1.5.0.3 on GitHub.