What's Changed
- docs(bigquery): schema resolver strategy by @sgomezvillamor in #15164
- fix(bigquery): apply case normalization consistently for temp table inference by @sgomezvillamor in #15252
- fix(abs): Prevent crash when validating dict path_specs in ABS source by @sgomezvillamor in #15329
- fix(searchBarV2): fix selecting option by hovering by @v-tarasevich-blitz-brain in #15349
- feat(uploadFiles): extend asset links to support file upload by @v-tarasevich-blitz-brain in #15225
- feat(datasetModules): add basic implementation of columns module by @v-tarasevich-blitz-brain in #15293
- fix(ingestion/grafana): fix fails caused by text panels in ingestion by @acrylJonny in #15291
- fix(datahub-actions): make config in ActionConfig optional by @daha in #15393
- fix(ingest/snowflake): Add classification_lib to setup dependencies by @treff7es in #15407
- feat(openapi v3) support sorting customization on missing value handling by @zhixuanjia in #15383
- fix(ingestion/grafana): fixing uniqueness bug in grafana connector by @acrylJonny in #15397
- feat(dataset-summary): create new lineage module for dataset summary page by @purnimagarg1 in #15313
- feat(ingestion): add feature flag for ingestion onboarding by @v-tarasevich-blitz-brain in #15376
- feat(ingestion): update ownership ux by @v-tarasevich-blitz-brain in #15374
- fix(cypress): optimyze summary about section tests by @v-tarasevich-blitz-brain in #15332
- (fix/metadata-ingestion): Update classification docs to mark deprecated by @ani-malgari in #15380
- fix(readOnly): fixes read only mode for update queries by @RyanHolstien in #15398
- fix(sdk): DataJob environment defaults to PROD when using flow_urn (#15381) by @dinesh-github in #15388
- fix(docs): Adding fixes for GraphQL APIs & support hiding from global context by @jjoyce0510 in #15399
- fix(ui): fix entity type search filter by @sakethvarma397 in #15406
- fix(ui): Adding chart's last modified data on search index by @sakethvarma397 in #15088
- feat(ingestion): create ingestion source skeleton by @v-tarasevich-blitz-brain in #15390
- fix(ingest/ci): fix docker compose integration test failures by @kyungsoo-datahub in #15424
- feat(ingestion/oracle): add support for materialized view, stored procs and usage by @acrylJonny in #15118
- fix(ui): Enable stateful ingestion for sources where we support it by @treff7es in #15422
- feat(ingestion): Add OAuth callback support for Kafka producers/sinks by @max-datahub in #15420
- chore(deps): fix (ch.qos.logback : logback-classic) by @relaxedboi in #15409
- fix(log): change to warning by @anshbansal in #15440
- fix(change-events): fix NPE in EditableSchemaMetadataChangeEventGenerator by @trialiya in #13895
- fix(pit): reduce overhead of PIT creation by @RyanHolstien in #15412
- fix(graphql): listUsers resolver incorrect access check by @david-leifker in #15448
- feat(context): Various UI improvements for Context Base (Part 1/2) by @jjoyce0510 in #15413
- feat(openapi)-NPE_v3_relationships_api_fix by @aabharti-visa in #15432
- chore(deps): fix (org.bouncycastle:bcprov-jdk18on) by @relaxedboi in #15439
- fix(csv-enricher): Add HTTP status code checking for remote file fetches by @pedro93 in #15454
- fix(search): fix name conflicts in search(mlmodel) by @deepgarg760 in #15415
- feat(ingest/airflow): add teradata operator support for Airflow plugin by @btkcodedev in #15418
- fix(ui): Replacing antd Modals to component library by @sakethvarma397 in #13801
- fix(graphql): improve response messages by @anshbansal in #15455
- chore(test): Update test weights from CI runs (2025-11-30) by @github-actions[bot] in #15451
- perf(metadata-io, ebean): add deterministic ordering for SELECT ... FOR UPDATE by @raudzis in #15425
- Don't crash when filtering Add assets to domain by @benjiaming in #15462
- docs(kafka): clarify USE_CONFLUENT_SCHEMA_REGISTRY disables cleanup policy step by @mhadole-tc in #15297
- tests(smoke): add proper log format by @anshbansal in #15464
- feat(ui/ingestion): create new page for ingestion run details by @purnimagarg1 in #15443
- refactor(tests): move print to logger by @anshbansal in #15466
- fix(secrets): Remove incorrect JSON escaping in updateSecret that corrupts special characters by @acrylJonny in #15442
- docs: Update wrong helm reference slack.md by @Tim-Visser in #15433
- feat(java-sdk): Add Java SDK V2 with fluent builder API and entity support by @shirshanka in #15307
- feat(ingestion): improve create/update source handling by @v-tarasevich-blitz-brain in #15446
- feat(ui/ingestion): build new source selection screen by @purnimagarg1 in #15471
- fix(search): fix suggestion conversion for ES8 by @deepgarg760 in #15426
- feat(kafka): add lightweight Kafka connectivity validation by @max-datahub in #15472
- chore(deps): update org.ow2.asm dependency in datahub-client by @deepgarg760 in #15478
- feat(ingest): add convert to lowercase for s3 by @kevinkarchacryl in #15475
- feat(events): improve events kafka pool & client retry by @david-leifker in #15429
- ES clear: delete indices themselves, not all the docs by @jmacryl in #15449
- fix(changeEvent): fix reinstate lifecycle event condition by @RyanHolstien in #15476
- docs(release): Revise known issues in release notes for v0.3.15 by @jayacryl in #15465
- fix(ui) Limit the number of entities per page in search (#5198) by @chriscollins3456 in #14871
- feat(python): make MCE Topic in Kafka sink as optional by @Anshul759 in #14150
- feat(structured-properties): add version field to StructuredProperties by @pedro93 in #15255
- docs(mcp): mcp server setup instructions by @jamesmayfield-star in #15484
- docs: reference field-path-spec-v2 in SchemaFieldPath by @libvarun in #15477
- test: make flaky neo4j integration test less flaky by @daha in #15492
- docs: Update GraqhQL query in external OAuth authentication docs by @daha in #15493
- feat(ui/ingestion): add search by name on source selection screen by @purnimagarg1 in #15488
- docs: revert versioned docs by @yoonhyejin in #15486
- feat(context): Support Viewing and Adding Related Context to All Asset Types by @jjoyce0510 in #15453
- fix(es8): fix role creation issues by @RyanHolstien in #15485
- docs: Update announcement bar content for Dec Town Hall by @grayayer in #15501
- fix: make published GMS and frontend ports configurable with quickstart by @daha in #15494
- fix(platformsModule): do not show add sources button when an user doesn't have permissions to manage ingestions by @v-tarasevich-blitz-brain in #15507
- feat(ingestion): add the new details form (step 2) by @v-tarasevich-blitz-brain in #15474
- fix(ingest/snowflake/sqlparser): Ensure table-column lineage consistency across Snowflake source and SQL aggregator by @treff7es in #15377
- feat(ingestion): add advanced settings section by @v-tarasevich-blitz-brain in #15506
- feat(ui/ingestion): build step 3 of create/edit ingestion source by @purnimagarg1 in #15508
- fix(security): disable server version disclosure in HTTP headers by @esteban in #15500
- chore(gradle): bump multiple 3rd party dependencies versions by @esteban in #15431
- feat(assertion): enforce strict urns for assertions by @david-leifker in #15512
- feat(ui/backend): business attributes support for new ui by @kartikey-visa in #15452
- Added username to pr labeler for Patrick Druley (pdruley) by @pdruley in #15509
- feat(ingestion/grafana) add option to pass grafana user email as dashboard owner by @daha in #15489
- perf(ingestion): compile regex patterns for ingestion filtering hot path by @rob-1019 in #15463
- Datahub as a microfrontend host (react) by @philip-nikolov-jpmc in #15358
New Contributors
- @dinesh-github made their first contribution in #15388
- @max-datahub made their first contribution in #15420
- @btkcodedev made their first contribution in #15418
- @mhadole-tc made their first contribution in #15297
- @Tim-Visser made their first contribution in #15433
- @jamesmayfield-star made their first contribution in #15484
- @libvarun made their first contribution in #15477
- @pdruley made their first contribution in #15509
- @rob-1019 made their first contribution in #15463
- @philip-nikolov-jpmc made their first contribution in #15358
Full Changelog: v1.4.0-preview...v1.4.0rc1