Skip to content

Fixes 35671: Add native ontologies and governed releases - #35672

Draft
harshach wants to merge 4 commits into
mainfrom
agent/can-you-do-a-deep-analysis-o
Draft

harshach wants to merge 4 commits into
mainfrom
agent/can-you-do-a-deep-analysis-o

Conversation

@harshach

@harshach harshach commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator

Describe your changes:

Fixes #35671

Add native ontology entities and governed publication to Ontology Studio. Organizations can author concepts, properties and axioms independently of business glossaries, capture an immutable release, review it through the existing approval workflow, and activate or roll back its published model. Glossary terms and their configurable relations remain supported.

The branch commits add native storage and releases (180a9b0c55d), integrate Studio and memory review (492e227c169), fix search-test cleanup/count reconciliation (e21b9f98f74), and restore native navigation with batched release permissions (4fe9e07cc3a). The rebase preserves main's lifecycle/change-request handling and assigned-reviewer approval permissions.

Draft: rebased onto main at 2d95c1a1b9a. The full affected Java matrix completed, and the original MySQL failures passed focused reruns; exact results and remaining skips are below. Browser E2E, the final UI recording, changed-class coverage, and the documented feature-review gaps remain outstanding.

The native Studio fixes: native concepts populate the tree again; scope changes clear unrelated draft links and stop glossary edit leases; native deep links remain usable; ordinary workflow quick actions retain their existing behavior; missing labels reuse existing translations. Release reads bulk-load current owners/reviewers and still authorize every member. Capture omits derived hierarchy fields. The new PostgreSQL regression observes the same SQL read counts for 4 and 40 concepts.

Still open from review 4: D1 (glossary axiom authoring and deletion of experimental axiom/change-set history) and D2 (a product producer for native memory drafts and drafts surviving unrelated edits) are pending scope decisions. The current native memory path supports API-created draft review/apply only. Remaining review triage includes memory conflicts/derivation/pagination, archived handling, query-model materialization, shared workflow/task-storage/RDF rebuild coverage, and Playwright fixture cleanup/assertions. This checkpoint does not close the review.

Type of change:

  • New feature

High-level design:

  • Standard entity repositories and JSON/SQL persistence store ontologies, concepts, properties and ontology-owned axioms. Named subclass axioms are the single source for derived hierarchy fields; writes enforce references, revisions and cycle checks under a per-ontology lock.
  • Capture seals canonical release members in SQL. The whole release is the approval unit, using existing workflow tasks and durable decision recovery. Activation uses an expected revision and records an event; rollback activates an older approved release.
  • SQL remains authoritative. The RDF outbox replaces one graph per ontology with its active release, including delete/restore and rebuild behavior. Structural and supported OWL 2 DL validation gate capture; logical consistency remains NOT_RUN pending Jena CHECK.
  • Native Model, Releases and active-release Query surfaces sit alongside main's glossary Studio. Glossary axiom authoring/history is the open D1 exception to preserving all Studio functionality. API-created native memory proposals use the existing change-set review panel and apply atomically through OntologyWorkingState; applying a memory does not publish it.
  • Native storage avoids coupling formal definitions to GlossaryTerm. Per-definition approvals were excluded because publication approves the complete release. Metadata labels, native imports and adapters for native library installation, AI generation, visual query generation and data exploration remain follow-ups.

All DDL is in the unreleased native 2.1.0 migration for MySQL and PostgreSQL. Existing glossaries are not converted. Development databases containing earlier unreleased ontology layouts require the documented reset; the current migration explicitly clears glossary-owned experimental axioms and legacy axiom change sets, including applied history. Review 4 D1 asks whether this reset remains the intended behavior; it is unchanged by the follow-up fix.

Design: organizational ontology plan, Studio and memory ADR, and completion plan.

Tests:

Use cases covered

  • Native CRUD, permissions, stable IRIs, subclass cycles and concurrent working revisions.
  • Frozen capture and baseline comparison; independent whole-release review, stale decisions, cancellation and recovery.
  • Activation/rollback, draft isolation, archive/restore and active graph reconstruction against real Fuseki.
  • Native memory application, authorization, stale proposals and atomic rollback.
  • Existing glossary/metric/task behavior and shared repository/migration regressions.
  • Orphaned search-fixture cleanup and database/search reconciliation with soft-deleted users.

Unit tests

  • Full Java service suite plus selected MCP tests: 13,830 tests, zero failures/errors, one skip.
  • Final upstream security/user checks: 167 tests passed in SecurityUtilTest and UserUtilTest.
  • Jest: 89 suites / 778 tests passed, including native Studio, glossary graph, task/lifecycle panels, reviewer permissions and review readiness. The latest-main CSV export change passed another 60 tests in src/utils/CSV/CSVUtilsClassBase.test.tsx.
  • Python: 68 passed across ingestion/tests/unit/models/test_ontology_iris.py, ingestion/tests/unit/topology/database/test_oracle.py, and ingestion/tests/unit/utils/test_stored_procedures.py. The initial collection error was a missing local Oracle dependency; installing the repository's existing oracledb>=3.4.2,<4 requirement resolved it.
  • Both UI modules built successfully; the application build was repeated successfully after the final main replay. Java Spotless, changed-file ESLint (zero errors, 47 warnings), Prettier, license checks, i18n and model generation passed.
  • Final app typecheck: 553 diagnostics versus 564 on clean main. Playwright typecheck: 115 on each. No added or increased file/error-code groups. Token audit: 86 errors, matching the baseline. These checks remain red.
  • Changed-class coverage has not been measured; the 90% target remains unverified.
Jest suites in the 778-test run (paths relative to the UI root)
src/components/ActivityFeed/TaskFeedCard/TaskFeedCardFromTask.component.test.tsx
src/components/Entity/Task/LifecycleApprovalCard/LifecycleApprovalCard.test.tsx
src/components/Entity/Task/TaskTab/TaskTab.utils.test.ts
src/components/Entity/Task/TaskTab/TaskTabNew.component.test.tsx
src/components/OntologyExplorer/ExportGraphPanel.test.tsx
src/components/OntologyExplorer/FilterToolbar.test.tsx
src/components/OntologyExplorer/GraphSettingsPanel.test.tsx
src/components/OntologyExplorer/OntologyAiAssistant.test.tsx
src/components/OntologyExplorer/OntologyAiAssistant.utils.test.ts
src/components/OntologyExplorer/OntologyAiDomainPanel.test.tsx
src/components/OntologyExplorer/OntologyAiMappingPanel.test.tsx
src/components/OntologyExplorer/OntologyAiQueryPanel.test.tsx
src/components/OntologyExplorer/OntologyAiRelationshipPanel.test.tsx
src/components/OntologyExplorer/OntologyAuthoringInspector.test.tsx
src/components/OntologyExplorer/OntologyAxiomPanel.test.tsx
src/components/OntologyExplorer/OntologyBulkAuthoring.test.tsx
src/components/OntologyExplorer/OntologyBulkAuthoring.utils.test.ts
src/components/OntologyExplorer/OntologyBulkJobsPanel.test.tsx
src/components/OntologyExplorer/OntologyBulkOperationFields.test.tsx
src/components/OntologyExplorer/OntologyBulkResultPanel.test.tsx
src/components/OntologyExplorer/OntologyConceptAttributes.component.test.tsx
src/components/OntologyExplorer/OntologyConceptDataAssets.test.tsx
src/components/OntologyExplorer/OntologyConceptDraftInspector.test.tsx
src/components/OntologyExplorer/OntologyConceptRealization.component.test.tsx
src/components/OntologyExplorer/OntologyDataAssetPicker.test.tsx
src/components/OntologyExplorer/OntologyDeleteImpactPanel.test.tsx
src/components/OntologyExplorer/OntologyExplorer.test.tsx
src/components/OntologyExplorer/OntologyExpressionEditor.test.tsx
src/components/OntologyExplorer/OntologyHealthPanel.test.tsx
src/components/OntologyExplorer/OntologyImportExportMenu.test.tsx
src/components/OntologyExplorer/OntologyImportExportModal.test.tsx
src/components/OntologyExplorer/OntologyInferenceExplanationPanel.test.tsx
src/components/OntologyExplorer/OntologyIriPreviewPanel.test.tsx
src/components/OntologyExplorer/OntologyLibrary.test.tsx
src/components/OntologyExplorer/OntologyLibrary.utils.test.ts
src/components/OntologyExplorer/OntologyMemoryReviewPanel.test.tsx
src/components/OntologyExplorer/OntologyModelingWorkbench.test.tsx
src/components/OntologyExplorer/OntologyModelingWorkbench.utils.test.ts
src/components/OntologyExplorer/OntologyNodeRelationsContent.test.tsx
src/components/OntologyExplorer/OntologyPatternPanel.test.tsx
src/components/OntologyExplorer/OntologyQueryResultGraph.utils.test.ts
src/components/OntologyExplorer/OntologyRelationDetailsPanel.test.tsx
src/components/OntologyExplorer/OntologyStructurePanel.test.tsx
src/components/OntologyExplorer/OntologyStudio.utils.test.ts
src/components/OntologyExplorer/OntologyStudioQueryConsole.test.tsx
src/components/OntologyExplorer/OntologySubsetPanel.test.tsx
src/components/OntologyExplorer/OntologyTermEditor.test.tsx
src/components/OntologyExplorer/OntologyTermSelection.test.tsx
src/components/OntologyExplorer/OntologyTreeView.test.tsx
src/components/OntologyExplorer/OntologyVisualQueryBuilder.component.test.tsx
src/components/OntologyExplorer/OntologyVisualQueryBuilder.test.ts
src/components/OntologyExplorer/PortOverlay.component.test.tsx
src/components/OntologyExplorer/RelationshipTypePicker.component.test.tsx
src/components/OntologyExplorer/hooks/useGraphData.test.ts
src/components/OntologyExplorer/hooks/useOntologyAiCapability.test.ts
src/components/OntologyExplorer/hooks/useOntologyBulkJobs.test.ts
src/components/OntologyExplorer/hooks/useOntologyEditLease.test.ts
src/components/OntologyExplorer/hooks/useOntologyExplorer.test.ts
src/components/OntologyExplorer/hooks/useOntologyGraph.test.ts
src/components/OntologyExplorer/hooks/useOntologyGraphDerived.test.ts
src/components/OntologyExplorer/hooks/useOntologyGraphEdit.test.ts
src/components/OntologyExplorer/hooks/useOntologyTermDetails.test.ts
src/components/OntologyExplorer/utils/cardinalityLabelUtils.test.ts
src/components/OntologyExplorer/utils/dataGraphLayout.test.ts
src/components/OntologyExplorer/utils/graphBuilders.test.ts
src/components/OntologyExplorer/utils/graphConfig.test.ts
src/components/OntologyExplorer/utils/graphSearchHighlight.test.ts
src/components/OntologyExplorer/utils/graphStyles.test.ts
src/components/OntologyExplorer/utils/hierarchyGraphBuilder.test.ts
src/components/OntologyExplorer/utils/layoutCalculations.test.ts
src/components/OntologyExplorer/utils/ontologyExportMerge.test.ts
src/components/OntologyExplorer/utils/relationshipTypeUtils.test.ts
src/components/OntologyExplorer/utils/studioEditPortStyles.test.ts
src/components/OntologyExplorer/utils/studioGraphLayout.test.ts
src/components/OntologyExplorer/utils/textMeasure.test.ts
src/components/discovery/personal-space/InboxPage/components/TaskDetailPanel.test.tsx
src/components/discovery/personal-space/InboxPage/taskResolve.utils.test.ts
src/components/governance/ontology/OntologyAuthoringWorkspace/OntologyAuthoringWorkspace.test.tsx
src/components/governance/ontology/OntologyAxiomEditor/OntologyAxiomEditor.test.tsx
src/components/governance/ontology/OntologyConceptEditor/OntologyConceptEditor.test.tsx
src/components/governance/ontology/OntologyCreateForm/OntologyCreateForm.test.tsx
src/components/governance/ontology/OntologyPropertyEditor/OntologyPropertyEditor.test.tsx
src/components/governance/ontology/OntologyReleasePanel/OntologyReleasePanel.test.tsx
src/components/governance/ontology/OntologyReviewPanel/OntologyReviewPanel.test.tsx
src/pages/OntologyExplorerPage/OntologyExplorerPage.integration.test.tsx
src/pages/OntologyExplorerPage/OntologyExplorerPage.test.tsx
src/rest/ontologyAPI.test.ts
src/utils/TaskNavigationUtils.knowledgePage.test.ts
src/utils/governance/ontology/OntologyGraph.utils.test.ts
Earlier unit-test evidence, before the rebase
  • Java: the initial full service run reported 13,296 tests with 17 failures and one skip. The 16 ontology failures passed focused fixes/reruns (64 targeted tests); the remaining ODCSConverterTest.testFromODCS_WithTeam failure was reproduced on main. The full run was not repeated. All 19 restore unit tests also passed.
  • Jest: the broad run passed 539/540 tests across 81 suites. After fixing the remaining axiom-editor case and task-panel test setup, the five affected suites passed 161/161: OntologyAxiomEditor, OntologyReviewPanel, OntologyMemoryReviewPanel, TaskDetailPanel and TaskTabNew.component.
  • Python: ingestion/tests/unit/models/test_ontology_iris.py passed all 21 cases.
  • Review 4 Jest: 92/92 passed across seven suites: OntologyExplorerPage, OntologyMemoryReviewPanel, OntologyGraph.utils, graphBuilders, OntologyStudio.utils, useOntologyGraph, and TaskFeedCardFromTask.component. The native tree and draft-scope regressions were reproduced against their previous implementations before the fixes.
  • Review 4 first targeted service run: 28 passed in OntologyReleaseComparisonTest (6), OntologyReleaseReaderTest (2), OntologyReleaseComparisonStorageTest (2), OntologyReleaseActivationTest (4), and OntologyReleaseCaptureTest (14), including both database dialects. The existing reviewer-inheritance lookup was subsequently retained; the final backend is covered by the PostgreSQL API results below.
  • Coverage on the final changed classes has not been measured; the 90% target is unverified.
  • Java formatting, UI lint/format/license checks and i18n checks passed. The full UI type check remains red: 554 diagnostics versus 565 on the clean main baseline with the same dependencies, with no new file/error-code pairs observed.

Changed-file ESLint, Prettier, Java Spotless and commit hooks pass. The full design-token audit remains red with 75 errors and 47 warnings in unchanged CSS/LESS files; this follow-up did not modify those styles or audit inputs.

Backend integration tests

The full affected matrix ran on the first rebase at 8e5b5fe16b6. Four additional main commits landed during validation; the final replay onto 2d95c1a1b9a changed exactly their 43 paths, with no overlap with the ontology branch. Models were regenerated, and focused upstream and MySQL checks ran on that final base. The full matrix is preserved verbatim below, including its original failures; passing retries do not turn that run into a pass.

Final focused check Result
MySQL/Elasticsearch, 15 classes 773 tests, zero failures/errors, 70 skips. XML verification confirms all 26 originally failing cases executed and passed. The three previously all-skipped suites also executed all six cases successfully.
User email-domain API regression 1 passed, zero skips: UserResourceIT#test_updateUserEmailToAnotherDomainIsIgnored. The accompanying SecurityUtilTest and UserUtilTest run passed all 167 unit cases.
Corrected approval fixture and system configuration 68 passed, zero skips: ChangeRequestImportAndBulkIT (9) and SystemResourceIT (59). The originally failing removal/lineage/output-port approval case executed and passed.

The 15-class MySQL rerun covered TaskChangeEventIT, BulkChangeEventIT, EntityDeleteTaskCleanupIT, GlossaryTermInheritedReviewerApprovalIT, MetricResourceIT, PolicyRevocationConcurrencyIT, SearchIndexFieldLimitIT, DashboardResourceIT, WorksheetResourceIT, LineageBidirectionalIT, AutoCloseIncidentIT, GlossaryTermMoveApprovalIT, DataRetentionAppIT, SearchIndexPromotionIT, and SearchIndexingFieldsParityIT.

The initial MySQL parallel phase used dynamic host concurrency and started K3s on demand. Later phases and reruns used CI's limits: -DintegrationTests.parallelStrategy=fixed -DintegrationTests.parallelism=4 -DintegrationTests.maxPoolSize=16. All Java commands used the command-only -Djunit.version=5.11.4 compatibility override. No POM or CI workflow was changed.

The global-state fixture failed because it attempted approval as an owner whom the workflow did not assign. It now uses the existing explicit-assignee helper; production authorization is unchanged. The planner's missing McpServiceResourceIT report refers to an upstream TODO-only file with no test class. Optional scale, external embedding and nightly-only exclusions remain recorded in the report. The three initially skipped application suites skip after another test starts K3s; their focused rerun exercised them without K3s.

Local Java test run: FAILED

  • Commit: e387e5027b90 (base origin/main) — uncommitted changes were present
  • Finished: 2026-10-17 07:56 UTC · 182.3 min
Step Scope Classes Tests Failed Skipped Min Result
unit openmetadata-service (full suite), openmetadata-mcp (25 classes) 1229 13830 0 1 22.1 passed
integration mysql-elasticsearch · parallel 379 17895 26 1666 53.7 FAILED
integration mysql-elasticsearch · isolated 21 674 1 7 26.8 FAILED
integration mysql-elasticsearch · rdf 29 282 0 1 11.8 passed
integration cache-tests · parallel 8 40 0 1 6.0 passed
integration cache-tests · isolated 2 11 0 0 6.0 passed
integration postgres-opensearch · parallel 99 2372 0 181 11.3 passed
integration postgres-opensearch · isolated 5 335 0 1 9.0 passed
integration postgres-opensearch · rdf 29 282 0 1 11.6 passed
integration postgres-opensearch · search-it 28 73 0 0 24.0 passed

Failed: GlossaryTermInheritedReviewerApprovalIT#test_directReviewerOnTerm_createsOpenApprovalTask(TestNamespace), DashboardResourceIT#testBulkFluentAPI(TestNamespace), BulkChangeEventIT#test_bulkNoOpUpdate_emitsNoChangeEvent(boolean, TestNamespace)[1], TaskChangeEventIT#bulkOperationsRecordOneEventPerTask(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_reviewerAddedToGlossaryAfterFirstTerm_stillGatesLaterTerms(TestNamespace), PolicyRevocationConcurrencyIT#readersStartedAfterTheUpdateNeverSeeTheRemovedRuleForATeamInheritedRole(TestNamespace), GlossaryTermMoveApprovalIT#test_approveApprovalTaskAfterMovingParentTerm_drivesMovedTermToApproved(TestNamespace), EntityDeleteTaskCleanupIT#softDelete_keepsTasksAboutTheEntity(TestNamespace), TaskChangeEventIT#resolvingAWorkflowTaskRecordsItsStatusAndResolution(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_inheritedReviewerFromGrandparentGlossary_createsOpenApprovalTask(TestNamespace) and 17 more in the details

Selected but produced no report: McpServiceResourceIT (mysql-elasticsearch · parallel)

Every test skipped, so these exercised nothing (check their assumptions — usually the engine): DataRetentionAppIT (mysql-elasticsearch · parallel), SearchIndexPromotionIT (mysql-elasticsearch · parallel), SearchIndexingFieldsParityIT (mysql-elasticsearch · parallel), RdfIndexAppScaleIT (mysql-elasticsearch · rdf), BaseEntityIT$ListEntityHistoryByTimestampPaginationTest (postgres-opensearch · parallel), PatchTableEmbeddingIT (postgres-opensearch · isolated), RdfIndexAppScaleIT (postgres-opensearch · rdf)

  • Impacted, not run locally: 16 classes (listed in the details)
Earlier API and database evidence, before the rebase

Added/updated IndependentOntology*IT, NativeOntologyMemoryIT, ontology resource tests, RdfOntologyActivationIT and shared workflow/repository regressions. Runs used Java 21 and the CLI-only -Djunit.version=5.11.4 compatibility override.

Local run Result
MySQL/Elasticsearch expanded API run 1,327 total; four failures and 131 skips. All four failing cases passed a focused rerun after fixes, alongside 19 restore unit tests.
PostgreSQL 15/OpenSearch 3.4 API and migrations 2,200 passed, 181 skipped; all 98 selected classes reported. Includes all 12 corrected Fuseki authorization cases.
PostgreSQL isolated lane 334 passed, one embedding test skipped for missing Bedrock configuration.
Real Fuseki, 29 affected classes 279 passed, two upload-fixture failures, one optional scale skip. Isolating the replacement graph fixed the two failures; all 12 authorization cases passed the API rerun.
Shared SPARQL All 22 cases passed alone and in the RDF lane after readiness errors in the initial mixed run. The mixed-run trigger is not fully reproduced.
PostgreSQL/OpenSearch indexing Initial run: 68 passed, five errors. After fixture cleanup and count-scope fixes, all seven tests in the three affected classes passed together, including all five prior errors. The full 28-class selection was not repeated.

Review 4 on the final backend: 30 PostgreSQL API tests passed together (IndependentOntologyReleaseIT: 12, IndependentOntologyReleaseDiffIT: 5, IndependentOntologyReleaseExportIT: 9, IndependentOntologyActivationIT: 4). The new IndependentOntologyAuthorizationIT passed its subsequent focused run: capture 25 reads, structure 23 reads, unchanged from 4 to 40 concepts. The combined focused result is 31 passed, zero skips; no full-suite pass is claimed. Earlier versions of the SQL probe failed by counting conditional member inserts and then by missing decorated SQL; the corrected probe excludes those inserts and asserts a positive read count.

Final query-budget command (the existing 30 cases used the same PostgreSQL profile):

mvn -B verify -pl :openmetadata-integration-tests -am \
  -Djunit.version=5.11.4 -Dspring-boot.repackage.skip=true \
  -Ppostgres-opensearch -DintegrationTests.skipParallel=true \
  -Dit.test=IndependentOntologyAuthorizationIT \
  -Dfailsafe.failIfNoSpecifiedTests=false \
  -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false

These are historical results from before the rebase; the current full-matrix report follows below.

Ingestion integration tests

Not applicable to connector integration: this PR adds ontology schemas/model coverage and does not change an ingestion connector. The 68 model, Oracle and stored-procedure unit tests above passed; connector integration suites were not run for this change.

Playwright (UI) tests

OntologyReview.spec.ts covers native authoring, capture/review/activation/rollback/export, and review failure handling. Existing glossary Studio specs were retained when merging main.

Post-rebase Playwright validation: NOT RUN. Earlier pre-merge native/glossary browser checks are historical evidence only. Run the affected restored Studio and native specs against the final build before requesting review.

Manual testing performed

No manual browser walkthrough of the final merged build is claimed. Automated checks above exercised the real database, application APIs and Fuseki. The remaining manual flow is: create/edit a native ontology; apply a memory proposal; capture and review its release; activate and query it; edit the draft and verify the active query remains unchanged; roll back; check that the glossary Studio and Relations Graph still work.

UI screen recording:

Earlier recording attempt for commit 5ad5edcfb003f5a448db261c32e164f804197bfe was blocked; it was not retried during this rebase. Model generation and the production distribution build passed with mvn -B package -pl openmetadata-dist -am -DskipTests -Djunit.version=5.11.4 -Dspring-boot.repackage.skip=true, including both UI modules.

Prepared an isolated Compose stack with separate loopback ports, network and volumes because the default runner would stop another local MySQL stack. Building its images failed before startup:

docker compose -f /tmp/ontology-pr-compose.json build mysql execute-migrate-all openmetadata-server fuseki
failed to solve: Internal: write /var/lib/docker/buildkit/containerdmeta.db: input/output error

That image-build failure has not been rechecked; a final build walkthrough and recording remain outstanding. Existing containers were left running; no stack reset or volume deletion was attempted. No successful Docker health/sample-data check or video is claimed. Keep this PR draft until the isolated stack, sample-data walkthrough and verified GitHub-hosted recording are complete.

Checklist:

  • I have read the CONTRIBUTING document.
  • My PR title is Fixes <issue-number>: <short explanation>.
  • My PR is linked to a GitHub issue via Fixes #<issue-number> above.
  • I have commented on hard-to-understand code.
  • JSON Schema changes include migration scripts and regenerated models.
  • The PR build runs in Docker with sample data and a verified GitHub-hosted UI recording is embedded above.
  • Tests are added and their actual results and gaps are listed above.
  • Durable storage, release, approval and Studio/memory decisions are recorded under docs/decisions/.
  • The linked issue describes the need, goal, approach and boundaries.
  • Documentation is updated.
  • Tests cover the new logic; complete browser validation and changed-class coverage remain outstanding.

@github-actions github-actions Bot added backend safe to test Add this label to run secure Github workflows on PRs labels Oct 17, 2026
@harshach

harshach commented Oct 17, 2026 •

Copy link
Copy Markdown
Collaborator Author

Local Java test run: FAILED — details

  • Commit: e387e5027b90 (base origin/main) — uncommitted changes were present
  • The summary is in the PR description.

Failed: GlossaryTermInheritedReviewerApprovalIT#test_directReviewerOnTerm_createsOpenApprovalTask(TestNamespace), DashboardResourceIT#testBulkFluentAPI(TestNamespace), BulkChangeEventIT#test_bulkNoOpUpdate_emitsNoChangeEvent(boolean, TestNamespace)[1], TaskChangeEventIT#bulkOperationsRecordOneEventPerTask(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_reviewerAddedToGlossaryAfterFirstTerm_stillGatesLaterTerms(TestNamespace), PolicyRevocationConcurrencyIT#readersStartedAfterTheUpdateNeverSeeTheRemovedRuleForATeamInheritedRole(TestNamespace), GlossaryTermMoveApprovalIT#test_approveApprovalTaskAfterMovingParentTerm_drivesMovedTermToApproved(TestNamespace), EntityDeleteTaskCleanupIT#softDelete_keepsTasksAboutTheEntity(TestNamespace), TaskChangeEventIT#resolvingAWorkflowTaskRecordsItsStatusAndResolution(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_inheritedReviewerFromGrandparentGlossary_createsOpenApprovalTask(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_removeDirectReviewer_fallsBackToGlossaryInheritedReviewer(TestNamespace), GlossaryTermMoveApprovalIT#test_approveApprovalTaskAfterMovingAncestorToGlossaryRoot_drivesMovedTermToApproved(TestNamespace), GlossaryTermMoveApprovalIT#test_approveApprovalTaskAfterRenamingParentTerm_drivesRenamedTermToApproved(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_inheritedReviewerFromGlossary_createsOpenApprovalTask(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_inheritedReviewerWithOwnerSet_createsOpenApprovalTask(TestNamespace), AutoCloseIncidentIT#autoCloseDisabled_testPasses_incidentStaysOpen(TestNamespace), SearchIndexFieldLimitIT#testFieldCountStaysBoundedWithMultipleTables(TestNamespace), WorksheetResourceIT#test_bulkUpdate_bot_neverDeletesUserCuratedMetadata(TestNamespace), LineageBidirectionalIT#, MetricResourceIT#rejectMetricUpdateRollsBackPreviousApprovedVersion(TestNamespace), PolicyRevocationConcurrencyIT#readersStartedAfterTheUpdateNeverSeeTheRemovedRuleForADirectRole(TestNamespace), MetricResourceIT#rejectNewMetricWithoutCommentSetsRejected(TestNamespace), EntityDeleteTaskCleanupIT#hardDelete_removesOpenTasksAboutTheEntity(TestNamespace), SearchIndexFieldLimitIT#testComplexCustomPropertyTypesDoNotExplodeFieldCount(TestNamespace), MetricResourceIT#post_metricWithReviewersCreatesApprovalTaskAndReviewerCanApprove(TestNamespace), GlossaryTermInheritedReviewerApprovalIT#test_inheritedReviewerFromParentTerm_createsOpenApprovalTask(TestNamespace), ChangeRequestImportAndBulkIT#heldDataProductRemovalKeepsLineageAndOutputPortUntilApproved(TestNamespace)

Selected but produced no report: McpServiceResourceIT (mysql-elasticsearch · parallel)

Every test skipped, so these exercised nothing (check their assumptions — usually the engine): DataRetentionAppIT (mysql-elasticsearch · parallel), SearchIndexPromotionIT (mysql-elasticsearch · parallel), SearchIndexingFieldsParityIT (mysql-elasticsearch · parallel), RdfIndexAppScaleIT (mysql-elasticsearch · rdf), BaseEntityIT$ListEntityHistoryByTimestampPaginationTest (postgres-opensearch · parallel), PatchTableEmbeddingIT (postgres-opensearch · isolated), RdfIndexAppScaleIT (postgres-opensearch · rdf)

Tests run locally

  • unit · openmetadata-service (full suite), openmetadata-mcp (25 classes): full openmetadata-service suite, 1204 classes, 13449 tests executed; AgentSparqlToolErrorsTest (8 passed), BasicAuthLoginServletTest (5 passed), CommonUtilsAuthorizeOverwriteTest (4 passed), CompanyContextToolTest (17 passed), CreateEntityToolTest (24 passed), CreateTestCaseToolTest (4 passed), DefaultToolContextTest (39 passed), EntityNeighborhoodToolTest (15 passed), FindByTagToolTest (15 passed), GetConceptContextToolTest (3 passed), GetEntityToolTest (32 passed), McpChangeEventUtilTest (7 passed), McpServerRequestContextTest (10 passed), McpUsageRecorderTest (6 passed), OntologyDescribeToolTest (12 passed), PatchEntityToolTest (31 passed), PersonaSearchScopeTest (6 passed), RdfToolDescriptionVocabularyTest (7 passed), RdfToolGatingTest (3 passed), SearchMetadataToolTest (47 passed), SemanticSearchToolTest (36 passed), ShaclValidateToolTest (9 passed), SparqlQueryToolAgentProfileTest (14 passed), SparqlQueryToolTest (14 passed), UserSSOOAuthProviderTest (12 passed)
  • integration · mysql-elasticsearch · parallel: 379 classes, 16229 tests executed (too many to list)
  • integration · mysql-elasticsearch · isolated: AppsResourceIT (30 passed, 6 skipped), ChangeRequestAdmissionIT (23 passed), ChangeRequestApplyIT (11 passed), ChangeRequestDecisionIT (6 passed), ChangeRequestImportAndBulkIT (8 passed, 1 failed), ChangeRequestLifecycleIT (4 passed), ChangeRequestResourceIT (9 passed), ConversationSchemaMigrationIT (2 passed), CsvExportMultiNodeIT (2 passed), DataContractValidationAppIT (3 passed), EntityShapeIT (312 passed), GlossaryOntologyExportIT (16 passed), MetricMigrationIT (4 passed), SearchIndexRetryQueueIT (36 passed), SessionMultiNodeIT (11 passed), SystemResourceIT (54 passed), TagRecognizerFeedbackIT (7 passed), TestSuiteReindexIT (1 passed), UserMetricsResourceIT (7 passed), VectorEmbeddingIntegrationIT (0 passed), WorkflowDefinitionResourceIT (120 passed, 1 skipped)
  • integration · mysql-elasticsearch · rdf: AgentSparqlResourceIT (22 passed), LodResourceIT (9 passed), RdfBatchFieldsIT (5 passed), RdfBlueGreenRebuildIT (34 passed), RdfConceptRealizationIT (5 passed), RdfFusekiAuthorizationIT (23 passed), RdfGlossaryGraphIT (11 passed), RdfGovernanceRulesIT (2 passed), RdfGraphExploreIT (8 passed), RdfIndexAppScaleIT (0 passed, 1 skipped), RdfIndexRunRecoveryIT (4 passed), RdfInferenceMaterializationIT (16 passed), RdfInferenceMultiServerIT (4 passed), RdfLiveProjectionIT (3 passed), RdfLiveWriteRecoveryIT (34 passed), RdfMcpKnowledgeGraphIT (21 passed), RdfOntologyActivationIT (2 passed), RdfPolicyRevocationIT (5 passed), RdfReindexFailuresIT (13 passed), RdfReindexInsertOnlyIT (1 passed), RdfReindexRunLockIT (5 passed), RdfRelationExclusionsIT (6 passed), RdfResourceIT (15 passed), RdfRoundTripFidelityIT (8 passed), RdfSemanticSearchIT (10 passed), RdfSourceRevisionIT (3 passed), RdfSqlResourceIT (2 passed), RdfStorageReadinessIT (0 passed), RdfTagsTierCertificationIT (10 passed)
  • integration · cache-tests · parallel: AlertStateIT (21 passed), BundleWarmupCertificationIT (2 passed), ContainerCacheCorrectnessIT (1 passed), EntityCacheWriteOrderIT (1 passed), OneTransactionFlushAtomicityIT (8 passed, 1 skipped), RelationshipCacheInvalidationIT (1 passed), TagRenameCacheIT (4 passed), UncachedReadIT (1 passed)
  • integration · cache-tests · isolated: SessionRedisMultiNodeIT (8 passed), TokenRevocationRedisMultiNodeIT (3 passed)
  • integration · postgres-opensearch · parallel: 99 classes, 2191 tests executed (listed below)
  • integration · postgres-opensearch · isolated: ConversationSchemaMigrationIT (2 passed), EntityShapeIT (312 passed), GlossaryOntologyExportIT (16 passed), MetricMigrationIT (4 passed), PatchTableEmbeddingIT (0 passed, 1 skipped)
  • integration · postgres-opensearch · rdf: AgentSparqlResourceIT (22 passed), LodResourceIT (9 passed), RdfBatchFieldsIT (5 passed), RdfBlueGreenRebuildIT (34 passed), RdfConceptRealizationIT (2 passed), RdfFusekiAuthorizationIT (11 passed), RdfGlossaryGraphIT (11 passed), RdfGovernanceRulesIT (3 passed), RdfGraphExploreIT (8 passed), RdfIndexAppScaleIT (0 passed, 1 skipped), RdfIndexRunRecoveryIT (4 passed), RdfInferenceMaterializationIT (16 passed), RdfInferenceMultiServerIT (4 passed), RdfLiveProjectionIT (3 passed), RdfLiveWriteRecoveryIT (34 passed), RdfMcpKnowledgeGraphIT (21 passed), RdfOntologyActivationIT (2 passed), RdfPolicyRevocationIT (5 passed), RdfReindexFailuresIT (13 passed), RdfReindexInsertOnlyIT (1 passed), RdfReindexRunLockIT (7 passed), RdfRelationExclusionsIT (6 passed), RdfResourceIT (15 passed), RdfRoundTripFidelityIT (12 passed), RdfSemanticSearchIT (10 passed), RdfSourceRevisionIT (3 passed), RdfSqlResourceIT (1 passed), RdfStorageReadinessIT (9 passed), RdfTagsTierCertificationIT (10 passed)
  • integration · postgres-opensearch · search-it: ColumnIndexingToggleIT (1 passed), CustomPropertyAggregationIT (2 passed), DbToEsCountReconciliationIT (1 passed), ExtensionHighlightSearchIT (1 passed), FieldNamesAggregationIT (5 passed), HighlightFieldSaveValidationIT (4 passed), IndexFieldExplosionIT (2 passed), IndexMappingTemplatesIT (1 passed), LiveIndexRetryIT (1 passed), LiveSearchSettingsChangeIT (1 passed), NestedHierarchyIndexIT (1 passed), NoDuplicatesDuringReindexIT (1 passed), OwnersNestedMappingIT (1 passed), PerEntitySearchDefaultsIT (1 passed), ReindexAliasSwapIT (1 passed), ReindexDocSurvivalIT (4 passed), ReindexOutageRecoveryIT (1 passed), ReindexStatsIT (2 passed), ReindexStopUnderLoadIT (1 passed), SearchAggregateRbacIT (4 passed), SearchClusterFitnessReindexE2EIT (2 passed), SearchCountConsistencyIT (6 passed), SearchEntityRankingIT (14 passed), SearchRelevancyPreviewIT (8 passed), SearchScoringIT (4 passed), StagedIndexUnrefreshedCountIT (1 passed), TestCaseStaleDefinitionReindexIT (1 passed), UnsafeReindexConfigIT (1 passed)

Per-class counts come from the test reports, which can credit a test to the wrong class when classes run concurrently, and keep only the last run of a nested class that several test classes inherit. The summary's step totals are Maven's own counts.

integration · postgres-opensearch · parallel: 100 classes

AlertBacklogMigrationIT (2 passed), BaseEntityIT$ListEntityHistoryByTimestampPaginationTest (0 passed, 5 skipped), ChildFieldEdgeMatrixIT (7 passed), ChildFieldPaginationIT (19 passed, 2 skipped), ColumnCustomPropertiesIT (13 passed), ConfigResourceIT (13 passed), ConsumerIdMigrationIT (2 passed), ContextMemoryStatusMigrationIT (1 passed), ContinuousMigrationIT (16 passed), CreationAuditMigrationIT (80 passed, 10 skipped), DataProductDomainMigrationIT (0 passed), DataQualityDimensionMigrationIT (2 passed), DatabaseSmokeIT (2 passed), DbTuneIT (13 passed), DeepCopyBenchmarkIT (1 passed), EntityCacheInvalidationIT (16 passed, 2 skipped), EntityCacheMemoryIT (2 passed), EntityCursorOffsetIT (2 passed), EntityDeleteTaskCleanupIT (152 passed, 25 skipped), EntityHardDeletionAtomicityIT (10 passed), EntityHistoryPaginationIT (39 passed), EntityLifecycleStagesIT (4 passed), EntityNameIndexIT (2 passed), EntityProfileResourceIT (1 passed), EntityRelationshipCleanupIT (26 passed, 2 skipped), EntityShapeBaselineIT (1 passed), EntityStatusWorkflowOwnershipIT (3 passed), EntitySubtreeAtomicityIT (2 passed), EntityTransactionBoundaryIT (4 passed), EntityUpdateLockOrderIT (12 passed), EntityUtilValidateEntityReferenceIT (9 passed), FlattenedChildrenHighlightSearchIT (1 passed), GlossaryRdfImportIT (24 passed, 1 skipped), GlossaryTermRelationAdvancedIT (6 passed, 1 skipped), GlossaryTermRelationEdgeCasesIT (28 passed, 4 skipped), GlossaryTermRelationEdgeIT (2 passed), GlossaryTermRelationFixesIT (2 passed), GlossaryTermRelationIT (0 passed), GlossaryTermRelationSettingsIT (39 passed, 2 skipped), GlossaryTermRelationSettingsPermissionsIT (15 passed), GlossaryTermRelationUsageIT (1 passed), GlossaryTermRelationsIT (88 passed, 6 skipped), GlossaryTermResourceIT (41 passed, 5 skipped), IncidentPaginationIT (49 passed, 3 skipped), IndependentOntologyActivationIT (49 passed, 6 skipped), IndependentOntologyApprovalIT (2 passed), IndependentOntologyAuthorizationIT (1 passed), IndependentOntologyAxiomIT (80 passed, 5 skipped), IndependentOntologyHierarchyIT (7 passed), IndependentOntologyReferenceIT (35 passed, 3 skipped), IndependentOntologyReleaseDiffIT (2 passed), IndependentOntologyReleaseExportIT (5 passed), IndependentOntologyReleaseIT (8 passed), IndependentOntologyResourceIT (3 passed), IndependentOntologyRetentionIT (6 passed), IndependentOntologyReviewRecoveryIT (3 passed), LifeCycleCreatedSentinelMigrationIT (1 passed), McpRdfNotEnabledIT (6 passed), NativeOntologyMemoryIT (64 passed, 7 skipped), OntologyAiResourceIT (6 passed, 1 skipped), OntologyAxiomResourceIT (20 passed, 2 skipped), OntologyBulkIT (4 passed), OntologyChangeSetIT (47 passed, 1 skipped), OntologyConceptResourceIT (5 passed), OntologyEditLockResourceIT (10 passed), OntologyEffectiveAttributesIT (10 passed, 3 skipped), OntologyGovernanceIT (19 passed), OntologyImpactIT (16 passed), OntologyModelingIT (4 passed), OntologyPackResourceIT (9 passed), OntologyPatternIT (12 passed), OntologyPropertyResourceIT (171 passed, 26 skipped), OntologyResourceIT (40 passed, 5 skipped), OntologyStructureIT (4 passed), OntologySubsetIT (12 passed, 2 skipped), OpenMetadataOperationsIT (10 passed), OptimisticLockingColumnPatchIT (100 passed, 9 skipped), OrphanIngestionPipelineCleanupIT (1 passed), OrphanedEntityReferenceIT (19 passed), OrphanedIndexCleanerScopedCleanupIT (4 passed), OrphanedTimeSeriesCleanupIT (51 passed, 5 skipped), OverrideMetadataRestoreMigrationIT (23 passed), PaginationIT (26 passed, 2 skipped), RdfScaleResourcesTest (2 passed), RecognizerFeedbackRepositoryTest (23 passed), RelationshipTypeContradictionIT (3 passed), RelationshipTypeResourceIT (56 passed, 6 skipped), RestoreHierarchyIT (50 passed, 5 skipped), SampleDataStorageMigrationIT (3 passed), SavedSparqlQueryResourceIT (8 passed), SeedDataPresenceIT (1 passed), ServiceLineagePipelineRoutingMigrationIT (8 passed), SettingsCacheTransactionIT (2 passed), SoftDeleteRetentionIT (7 passed), TableResourceIT (135 passed, 6 skipped), TestCaseSoftDeleteSearchIT (1 passed), ThresholdParameterMigrationIT (1 passed), TypeResourceIT (69 passed, 2 skipped), UserResourceIT (159 passed, 21 skipped), WritePathBenchmarkIT (3 passed, 1 skipped)

Why these tests
  • full suite ← area core: openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplication.java, openmetadata-service/src/main/java/org/openmetadata/service/exception/CatalogGenericExceptionMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/exception/OntologyValidationException.java, openmetadata-service/src/main/java/org/openmetadata/service/exception/TaskStateConflictException.java (+17 more)
  • area ai-mcp-context ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java
  • area apps-jobs ← openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/rdf/RdfIndexApp.java
  • area core ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/OpenMetadataApplication.java, openmetadata-service/src/main/java/org/openmetadata/service/exception/CatalogGenericExceptionMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/exception/OntologyValidationException.java, openmetadata-service/src/main/java/org/openmetadata/service/exception/TaskStateConflictException.java (+17 more)
  • area feeds-tasks-activity ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TaskRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/tasks/TaskResource.java, openmetadata-service/src/main/java/org/openmetadata/service/tasks/TaskWorkflowHandler.java, openmetadata-spec/src/main/resources/json/schema/entity/tasks/task.json
  • area governance ← openmetadata-service/src/main/java/org/openmetadata/service/governance/approval/ApprovalGate.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/OntologyApprovalWorkflow.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/OntologyReviewReconciler.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/OntologyWorkflowDecision.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java (+1 more)
  • area migrations-seed-data ← bootstrap/sql/migrations/native/2.1.0/mysql/schemaChanges.sql, bootstrap/sql/migrations/native/2.1.0/postgres/schemaChanges.sql
  • area ontology ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyAxiomRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyConceptRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyEntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyPropertyRepository.java (+62 more)
  • area rdf ← openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/rdf/RdfIndexApp.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/RdfInfraDAOs.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/AssertedGraphTrackingRdfStorage.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/GlossaryOntologyExporter.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/GlossaryOntologyModelBuilder.java (+22 more)
  • area sdk ← openmetadata-sdk/src/main/java/org/openmetadata/sdk/client/OpenMetadataClient.java, openmetadata-sdk/src/main/java/org/openmetadata/sdk/services/ontology/OntologyConceptService.java, openmetadata-sdk/src/main/java/org/openmetadata/sdk/services/ontology/OntologyPropertyService.java, openmetadata-sdk/src/main/java/org/openmetadata/sdk/services/ontology/OntologyReleaseService.java, openmetadata-sdk/src/main/java/org/openmetadata/sdk/services/ontology/OntologyService.java
  • called from entity AIApplication ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity AIContext ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity AIFrameworkControl ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity AIGovernancePolicy ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity APICollection ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity APIEndpoint ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity APIService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Activity ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity AgentExecution ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity AiApplication ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity AiFrameworkControl ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity AiGovernancePolicy ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Announcement ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity App ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity AppMarketPlace ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity AuditLog ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Bot ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity ChangeEvent ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity ChangeRequest ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity ChangeSummary ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Chart ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Classification ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Column ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity ColumnSearch ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Container ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity ContextFile ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java
  • called from entity ContextMemory ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Conversation ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Dashboard ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DashboardDataModel ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DashboardService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity DataContract ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DataInsightChart ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DataInsightSystemChart ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DataProduct ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DataQualityDimension ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Database ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DatabaseSchema ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DatabaseService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Directory ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DocStore ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Domain ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/approval/ApprovalGate.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity DriveService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Entity ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/approval/ApprovalGate.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java (+2 more)
  • called from entity EntityProfile ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity EntityRelationship ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Event ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity EventSubscription ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity File ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Folder ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Glossary ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/OntologyLayerValidator.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/GlossaryOntologyExporter.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/OntologySparqlQueryService.java
  • called from entity GlossaryTerm ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfUpdater.java
  • called from entity IngestionPipeline ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java
  • called from entity IntakeForm ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity KnowledgePage ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Kpi ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity LLMModel ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity LLMService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity LearningResource ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java
  • called from entity Lineage ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfUpdater.java
  • called from entity LineageScene ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity LlmModel ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity LlmService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity McpExecution ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity McpServer ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity McpService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity MessagingService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity MetadataService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Metric ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity MetricGroup ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfUpdater.java
  • called from entity MlModel ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity MlModelService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity NotificationTemplate ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Ontology ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyAxiomRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyConceptRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyEntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyPropertyRepository.java (+11 more)
  • called from entity OntologyAi ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/NativeOntologyChanges.java
  • called from entity OntologyAxiom ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyAxiomRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyEntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyWorkingModel.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/OwlProfileGuard.java (+2 more)
  • called from entity OntologyBulk ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity OntologyChangeSet ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/NativeOntologyChanges.java (+4 more)
  • called from entity OntologyConcept ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyConceptRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyEntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/OntologyClassHierarchy.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/OntologyReleaseManifest.java (+1 more)
  • called from entity OntologyEditLock ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity OntologyImpact ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity OntologyModeling ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/ontology/OntologyIriMinter.java
  • called from entity OntologyPack ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity OntologyPattern ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java
  • called from entity OntologyProperty ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyEntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyPropertyRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyPropertyMapper.java
  • called from entity OntologyStructure ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java
  • called from entity OntologySubset ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java
  • called from entity OpenLineage ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Permissions ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Persona ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Pipeline ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfUpdater.java
  • called from entity PipelineService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Policy ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity PromptTemplate ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Query ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity QueryCost ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity QueryCostRecord ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Rdf ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/AssertedGraphTrackingRdfStorage.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/GlossaryOntologyExporter.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfProjectionLoaders.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/storage/InferenceInvalidatingRdfStorage.java (+2 more)
  • called from entity RdfReindex ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/RdfInfraDAOs.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfExcludedEntities.java
  • called from entity RecognizerFeedback ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity RelationshipType ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Report ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity ReportData ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Role ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Search ← openmetadata-sdk/src/main/java/org/openmetadata/sdk/client/OpenMetadataClient.java, openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity SearchEntity ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity SearchIndex ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity SearchService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity SecurityService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity ServicesOverview ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Session ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Spreadsheet ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity StorageService ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity StoredProcedure ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity System ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java
  • called from entity Table ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfUpdater.java
  • called from entity Tag ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Task ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/OntologyApprovalWorkflow.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java (+2 more)
  • called from entity TaskFormSchema ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Team ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity TestCase ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ListFilter.java, openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfUpdater.java
  • called from entity TestCaseResolutionStatus ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TaskRepository.java
  • called from entity TestCaseResult ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TaskRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/tasks/TaskWorkflowHandler.java
  • called from entity TestConnectionDefinition ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity TestDefinition ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity TestSuite ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Token ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity Topic ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Type ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Usage ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity User ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity UserPreferences ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java
  • called from entity WebAnalyticEvent ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Workflow ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity WorkflowDefinition ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/governance/workflows/WorkflowHandler.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • called from entity Worksheet ← openmetadata-service/src/main/java/org/openmetadata/service/Entity.java, openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • changed test ← openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/BaseOntologyApprovalIT.java, openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/BaseOntologyIT.java, openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IndependentOntologyActivationIT.java, openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IndependentOntologyApprovalIT.java, openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/IndependentOntologyAuthorizationIT.java (+49 more)
  • entity ContextMemory ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/ContextMemoryRepository.java
  • entity Entity ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/EntityRepository.java
  • entity Ontology ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyResource.java, openmetadata-spec/src/main/resources/json/schema/api/data/createOntology.json, openmetadata-spec/src/main/resources/json/schema/entity/data/ontology.json
  • entity OntologyAi ← openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyAiResource.java
  • entity OntologyAxiom ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyAxiomRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyAxiomMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyAxiomResource.java, openmetadata-spec/src/main/resources/json/schema/api/data/createOntologyAxiom.json, openmetadata-spec/src/main/resources/json/schema/entity/data/ontologyAxiom.json
  • entity OntologyChangeSet ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyChangeSetRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyChangeSetMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyChangeSetResource.java, openmetadata-spec/src/main/resources/json/schema/api/data/createOntologyChangeSet.json, openmetadata-spec/src/main/resources/json/schema/entity/data/ontologyChangeSet.json
  • entity OntologyConcept ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyConceptRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyConceptMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyConceptResource.java, openmetadata-spec/src/main/resources/json/schema/api/data/createOntologyConcept.json, openmetadata-spec/src/main/resources/json/schema/entity/data/ontologyConcept.json
  • entity OntologyProperty ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/OntologyPropertyRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyPropertyMapper.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/ontology/OntologyPropertyResource.java, openmetadata-spec/src/main/resources/json/schema/api/data/createOntologyProperty.json, openmetadata-spec/src/main/resources/json/schema/entity/data/ontologyProperty.json
  • entity Rdf ← openmetadata-service/src/main/java/org/openmetadata/service/rdf/RdfRepository.java
  • entity Task ← openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TaskRepository.java, openmetadata-service/src/main/java/org/openmetadata/service/resources/tasks/TaskResource.java, openmetadata-spec/src/main/resources/json/schema/entity/tasks/task.json
  • smoke ← code other than a test class changed
Impacted, not run locally (16)
  • RdfCatalogScaleIT → only with -DrdfCatalogScale=true, which no CI lane sets
  • LineagePayloadScaleIT → nightly: openmetadata-nightly k8s-java-it (scale-it)
  • LineageScenePerformanceScaleIT → nightly: openmetadata-nightly k8s-java-it (scale-it)
  • OntologyScaleIT → nightly: openmetadata-nightly k8s-java-it (scale-it)
  • ReindexBenchmarkIT → nightly: openmetadata-nightly k8s-java-it (scale-it)
  • GoogleSsoSignInUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • EntityLoaderSmokeUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • LongCompoundNameSearchUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • PipelineOwnerIndexUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • DistributedAutoTuneReindexUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • SearchAvailableAllKindsDuringReindexUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • SearchAvailableDuringReindexUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • SelectiveFieldReindexUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • SimpleReindexTriggerUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • GoogleSsoBootstrapUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
  • MockIdpSmokeUIIT → nightly: openmetadata-nightly k8s-java-it (ui-it + embedded JavaUIIT)
Commands
mvn -B package -pl openmetadata-mcp,openmetadata-service -am -Dspring-boot.repackage.skip=true '-Dtest=org/openmetadata/DefaultOperationalConfigProviderTest.java,org/openmetadata/csv/**/*Test.java,org/openmetadata/csv/**/Test*.java,org/openmetadata/csv/**/*Tests.java,org/openmetadata/csv/**/*TestCase.java,org/openmetadata/schema/**/*Test.java,org/openmetadata/schema/**/Test*.java,org/openmetadata/schema/**/*Tests.java,org/openmetadata/schema/**/*TestCase.java,org/openmetadata/sdk/**/*Test.java,org/openmetadata/sdk/**/Test*.java,org/openmetadata/sdk/**/*Tests.java,org/openmetadata/sdk/**/*TestCase.java,org/openmetadata/service/**/*Test.java,org/openmetadata/service/**/Test*.java,org/openmetadata/service/**/*Tests.java,org/openmetadata/service/**/*TestCase.java,AgentSparqlToolErrorsTest,BasicAuthLoginServletTest,CommonUtilsAuthorizeOverwriteTest,CompanyContextToolTest,CreateEntityToolTest,CreateTestCaseToolTest,DefaultToolContextTest,EntityNeighborhoodToolTest,FindByTagToolTest,GetConceptContextToolTest,GetEntityToolTest,McpChangeEventUtilTest,McpServerRequestContextTest,McpUsageRecorderTest,OntologyDescribeToolTest,PatchEntityToolTest,PersonaSearchScopeTest,RdfToolDescriptionVocabularyTest,RdfToolGatingTest,SearchMetadataToolTest,SemanticSearchToolTest,ShaclValidateToolTest,SparqlQueryToolAgentProfileTest,SparqlQueryToolTest,UserSSOOAuthProviderTest' -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Pmysql-elasticsearch -DintegrationTests.lane=parallel '-Dit.test=<380 classes>' -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Pmysql-elasticsearch -DintegrationTests.lane=global-state -Dit.test=AppsResourceIT,ChangeRequestAdmissionIT,ChangeRequestApplyIT,ChangeRequestDecisionIT,ChangeRequestImportAndBulkIT,ChangeRequestLifecycleIT,ChangeRequestResourceIT,ConversationSchemaMigrationIT,CsvExportMultiNodeIT,DataContractValidationAppIT,EntityShapeIT,GlossaryOntologyExportIT,MetricMigrationIT,SearchIndexRetryQueueIT,SessionMultiNodeIT,SystemResourceIT,TagRecognizerFeedbackIT,TestSuiteReindexIT,UserMetricsResourceIT,VectorEmbeddingIntegrationIT,WorkflowDefinitionResourceIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Pmysql-elasticsearch -DintegrationTests.lane=rdf -Dit.test=AgentSparqlResourceIT,LodResourceIT,RdfBatchFieldsIT,RdfBlueGreenRebuildIT,RdfConceptRealizationIT,RdfFusekiAuthorizationIT,RdfGlossaryGraphIT,RdfGovernanceRulesIT,RdfGraphExploreIT,RdfIndexAppScaleIT,RdfIndexRunRecoveryIT,RdfInferenceMaterializationIT,RdfInferenceMultiServerIT,RdfLiveProjectionIT,RdfLiveWriteRecoveryIT,RdfMcpKnowledgeGraphIT,RdfOntologyActivationIT,RdfPolicyRevocationIT,RdfReindexFailuresIT,RdfReindexInsertOnlyIT,RdfReindexRunLockIT,RdfRelationExclusionsIT,RdfResourceIT,RdfRoundTripFidelityIT,RdfSemanticSearchIT,RdfSourceRevisionIT,RdfSqlResourceIT,RdfStorageReadinessIT,RdfTagsTierCertificationIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Pcache-tests -DintegrationTests.lane=parallel -Dit.test=AlertStateIT,BundleWarmupCertificationIT,ContainerCacheCorrectnessIT,EntityCacheWriteOrderIT,OneTransactionFlushAtomicityIT,RelationshipCacheInvalidationIT,TagRenameCacheIT,UncachedReadIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Pcache-tests -DintegrationTests.lane=global-state -Dit.test=SessionRedisMultiNodeIT,TokenRevocationRedisMultiNodeIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Ppostgres-opensearch -DintegrationTests.lane=parallel '-Dit.test=<99 classes>' -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Ppostgres-opensearch -DintegrationTests.lane=global-state -Dit.test=ConversationSchemaMigrationIT,EntityShapeIT,GlossaryOntologyExportIT,MetricMigrationIT,PatchTableEmbeddingIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Ppostgres-opensearch -DintegrationTests.lane=rdf -Dit.test=AgentSparqlResourceIT,LodResourceIT,RdfBatchFieldsIT,RdfBlueGreenRebuildIT,RdfConceptRealizationIT,RdfFusekiAuthorizationIT,RdfGlossaryGraphIT,RdfGovernanceRulesIT,RdfGraphExploreIT,RdfIndexAppScaleIT,RdfIndexRunRecoveryIT,RdfInferenceMaterializationIT,RdfInferenceMultiServerIT,RdfLiveProjectionIT,RdfLiveWriteRecoveryIT,RdfMcpKnowledgeGraphIT,RdfOntologyActivationIT,RdfPolicyRevocationIT,RdfReindexFailuresIT,RdfReindexInsertOnlyIT,RdfReindexRunLockIT,RdfRelationExclusionsIT,RdfResourceIT,RdfRoundTripFidelityIT,RdfSemanticSearchIT,RdfSourceRevisionIT,RdfSqlResourceIT,RdfStorageReadinessIT,RdfTagsTierCertificationIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false
mvn -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Psearch-it -DdatabaseType=postgres -DsearchType=opensearch -Djpw.data.mode=ingest -Dit.test=ColumnIndexingToggleIT,CustomPropertyAggregationIT,DbToEsCountReconciliationIT,ExtensionHighlightSearchIT,FieldNamesAggregationIT,HighlightFieldSaveValidationIT,IndexFieldExplosionIT,IndexMappingTemplatesIT,LiveIndexRetryIT,LiveSearchSettingsChangeIT,NestedHierarchyIndexIT,NoDuplicatesDuringReindexIT,OwnersNestedMappingIT,PerEntitySearchDefaultsIT,ReindexAliasSwapIT,ReindexDocSurvivalIT,ReindexOutageRecoveryIT,ReindexStatsIT,ReindexStopUnderLoadIT,SearchAggregateRbacIT,SearchClusterFitnessReindexE2EIT,SearchCountConsistencyIT,SearchEntityRankingIT,SearchRelevancyPreviewIT,SearchScoringIT,StagedIndexUnrefreshedCountIT,TestCaseStaleDefinitionReindexIT,UnsafeReindexConfigIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false

Follow-up verification on the final rebased content

Final branch commit: 4fe9e07cc3a807aa3494ee8602a0bbd0e238aa31, rebased onto main 2d95c1a1b9a594415b1a3eb102c0626d03c901e2. The full matrix above ran on the first rebase at 8e5b5fe16b6. The final main replay changed exactly 43 upstream paths, none overlapping the ontology branch. Models were regenerated; the local validation/fixture changes survived the replay unchanged.

  • MySQL/Elasticsearch targeted retry: 773 tests, zero failures/errors, 70 skips. XML checks confirm all 26 originally failing cases actually executed and passed, with no skipped/flaky result substituted. The original Lineage class setup failure was verified by successful execution of its test methods. The three originally all-skipped application suites also exercised all six cases successfully.
  • The 15 classes were TaskChangeEventIT, BulkChangeEventIT, EntityDeleteTaskCleanupIT, GlossaryTermInheritedReviewerApprovalIT, MetricResourceIT, PolicyRevocationConcurrencyIT, SearchIndexFieldLimitIT, DashboardResourceIT, WorksheetResourceIT, LineageBidirectionalIT, AutoCloseIncidentIT, GlossaryTermMoveApprovalIT, DataRetentionAppIT, SearchIndexPromotionIT, and SearchIndexingFieldsParityIT.
  • SecurityUtilTest + UserUtilTest: 167 unit tests passed, zero skips. UserResourceIT#test_updateUserEmailToAnotherDomainIsIgnored: one API test passed, zero skips. These cover the final upstream email-domain change.
  • Global-state follow-up: 68 tests passed, zero skips: ChangeRequestImportAndBulkIT (9) and SystemResourceIT (59). The originally failing heldDataProductRemovalKeepsLineageAndOutputPortUntilApproved case executed and passed after its reviewer was explicitly assigned using the existing fixture helper. Production authorization is unchanged.

All Java runs use the command-only -Djunit.version=5.11.4 override. The initial MySQL parallel phase used dynamic host concurrency; later phases and retries use CI's fixed limits: -DintegrationTests.parallelStrategy=fixed -DintegrationTests.parallelism=4 -DintegrationTests.maxPoolSize=16. The initial full run also starts K3s on demand, which causes the three application suites' explicit guards to skip them; the retry exercised those suites without K3s. No POM or workflow was changed.

The missing McpServiceResourceIT report is an upstream TODO-only file with no test class. Optional scale, external embedding and nightly exclusions remain as recorded above. This generated FAILED matrix report is preserved verbatim; the targeted follow-up does not turn the original full run into a pass. Browser E2E, recording and changed-class coverage remain outstanding, so the PR stays draft.

@harshach

Copy link
Copy Markdown
Collaborator Author

Focused validation following the initial runner failure

These runs exercised the working changes now committed in 2fcf3721db2 and 5ad5edcfb00. They supplement, rather than replace, the incomplete generated runner report. No single all-green full-matrix run is claimed.

PostgreSQL API/migrations — runner: 2,200 passed, 181 skipped

Per-case XML tallies below. In the parallel run, inherited nested tests duplicate some skipped placeholders; the runner aggregate above is authoritative for skips. Per-class console summaries also misattribute concurrent cases, so passing counts below use testcase class names.

Class Passed Failures/errors Skipped XML entries
BaseEntityIT$ListEntityHistoryByTimestampPaginationTest 15 0 20
ChildFieldEdgeMatrixIT 14 0 0
ChildFieldPaginationIT 18 0 0
ColumnCustomPropertiesIT 53 0 0
ConfigResourceIT 12 0 0
ContextMemoryStatusMigrationIT 1 0 0
ContinuousMigrationIT 3 0 0
CreationAuditMigrationIT 5 0 0
DataProductDomainMigrationIT 10 0 0
DataQualityDimensionMigrationIT 2 0 0
DatabaseSmokeIT 1 0 0
DbTuneIT 5 0 0
DeepCopyBenchmarkIT 1 0 0
EntityCacheInvalidationIT 4 0 0
EntityCacheMemoryIT 2 0 0
EntityDeleteTaskCleanupIT 2 0 0
EntityHardDeletionAtomicityIT 10 0 0
EntityHistoryPaginationIT 7 0 0
EntityLifecycleStagesIT 3 0 0
EntityProfileResourceIT 14 0 0
EntityRelationshipCleanupIT 4 0 0
EntityShapeBaselineIT 1 0 0
EntityStatusWorkflowOwnershipIT 3 0 0
EntitySubtreeAtomicityIT 2 0 0
EntityTransactionBoundaryIT 4 0 0
EntityUpdateLockOrderIT 1 0 0
EntityUtilValidateEntityReferenceIT 9 0 0
FlattenedChildrenHighlightSearchIT 1 0 0
GlossaryRdfImportIT 20 0 0
GlossaryTermRelationAdvancedIT 7 0 0
GlossaryTermRelationEdgeCasesIT 29 0 0
GlossaryTermRelationEdgeIT 15 0 0
GlossaryTermRelationFixesIT 14 0 0
GlossaryTermRelationSettingsIT 15 0 0
GlossaryTermRelationSettingsPermissionsIT 10 0 0
GlossaryTermRelationUsageIT 1 0 0
GlossaryTermRelationsIT 8 0 0
GlossaryTermResourceIT 286 0 23
IncidentPaginationIT 8 0 0
IndependentOntologyActivationIT 4 0 0
IndependentOntologyApprovalIT 12 0 0
IndependentOntologyAxiomIT 9 0 0
IndependentOntologyHierarchyIT 1 0 0
IndependentOntologyReferenceIT 4 0 0
IndependentOntologyReleaseDiffIT 5 0 0
IndependentOntologyReleaseExportIT 9 0 0
IndependentOntologyReleaseIT 12 0 0
IndependentOntologyResourceIT 170 0 31
IndependentOntologyRetentionIT 4 0 0
IndependentOntologyReviewRecoveryIT 11 0 0
LifeCycleCreatedSentinelMigrationIT 3 0 0
NativeOntologyMemoryIT 4 0 0
OntologyAiResourceIT 3 0 0
OntologyAxiomResourceIT 3 0 0
OntologyBulkIT 4 0 0
OntologyChangeSetIT 12 0 0
OntologyConceptResourceIT 170 0 30
OntologyEditLockResourceIT 7 0 0
OntologyEffectiveAttributesIT 4 0 0
OntologyGovernanceIT 4 0 0
OntologyImpactIT 16 0 0
OntologyModelingIT 1 0 0
OntologyPackResourceIT 2 0 0
OntologyPatternIT 1 0 0
OntologyPropertyResourceIT 176 0 30
OntologyResourceIT 2 0 0
OntologyStructureIT 1 0 0
OntologySubsetIT 1 0 0
OpenMetadataOperationsIT 3 0 0
OptimisticLockingColumnPatchIT 5 0 0
OrphanIngestionPipelineCleanupIT 1 0 0
OrphanedEntityReferenceIT 3 0 0
OrphanedIndexCleanerScopedCleanupIT 3 0 0
OrphanedTimeSeriesCleanupIT 6 0 0
OverrideMetadataRestoreMigrationIT 4 0 0
PaginationIT 1 0 0
RdfFusekiAuthorizationIT 12 0 0
RdfScaleResourcesTest 1 0 0
RelationshipTypeContradictionIT 9 0 0
RelationshipTypeResourceIT 169 0 27
RestoreHierarchyIT 5 0 0
SampleDataStorageMigrationIT 3 0 0
SavedSparqlQueryResourceIT 1 0 0
SeedDataPresenceIT 1 0 0
ServiceLineagePipelineRoutingMigrationIT 8 0 0
SoftDeleteRetentionIT 8 0 0
TableResourceIT 334 0 11
TestCaseSoftDeleteSearchIT 1 0 0
ThresholdParameterMigrationIT 1 0 0
TypeResourceIT 45 0 1
UserResourceIT 271 0 27
WritePathBenchmarkIT 0 0 1
alerts.AlertBacklogMigrationIT 2 0 0
alerts.ConsumerIdMigrationIT 2 0 0
mcp.McpRdfNotEnabledIT 4 0 0
repositories.EntityCursorOffsetIT 1 0 0
repositories.EntityNameIndexIT 1 0 0
repositories.RecognizerFeedbackRepositoryTest 20 0 0

Command:

mvn -Djunit.version=5.11.4 -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Ppostgres-opensearch -DintegrationTests.lane=parallel -Dit.test=AlertBacklogMigrationIT,ChildFieldEdgeMatrixIT,ChildFieldPaginationIT,ColumnCustomPropertiesIT,ConfigResourceIT,ConsumerIdMigrationIT,ContextMemoryStatusMigrationIT,ContinuousMigrationIT,CreationAuditMigrationIT,DataProductDomainMigrationIT,DataQualityDimensionMigrationIT,DatabaseSmokeIT,DbTuneIT,DeepCopyBenchmarkIT,EntityCacheInvalidationIT,EntityCacheMemoryIT,EntityCursorOffsetIT,EntityDeleteTaskCleanupIT,EntityHardDeletionAtomicityIT,EntityHistoryPaginationIT,EntityLifecycleStagesIT,EntityNameIndexIT,EntityProfileResourceIT,EntityRelationshipCleanupIT,EntityShapeBaselineIT,EntityStatusWorkflowOwnershipIT,EntitySubtreeAtomicityIT,EntityTransactionBoundaryIT,EntityUpdateLockOrderIT,EntityUtilValidateEntityReferenceIT,FlattenedChildrenHighlightSearchIT,GlossaryRdfImportIT,GlossaryTermRelationAdvancedIT,GlossaryTermRelationEdgeCasesIT,GlossaryTermRelationEdgeIT,GlossaryTermRelationFixesIT,GlossaryTermRelationIT,GlossaryTermRelationSettingsIT,GlossaryTermRelationSettingsPermissionsIT,GlossaryTermRelationUsageIT,GlossaryTermRelationsIT,GlossaryTermResourceIT,IncidentPaginationIT,IndependentOntologyActivationIT,IndependentOntologyApprovalIT,IndependentOntologyAxiomIT,IndependentOntologyHierarchyIT,IndependentOntologyReferenceIT,IndependentOntologyReleaseDiffIT,IndependentOntologyReleaseExportIT,IndependentOntologyReleaseIT,IndependentOntologyResourceIT,IndependentOntologyRetentionIT,IndependentOntologyReviewRecoveryIT,LifeCycleCreatedSentinelMigrationIT,McpRdfNotEnabledIT,NativeOntologyMemoryIT,OntologyAiResourceIT,OntologyAxiomResourceIT,OntologyBulkIT,OntologyChangeSetIT,OntologyConceptResourceIT,OntologyEditLockResourceIT,OntologyEffectiveAttributesIT,OntologyGovernanceIT,OntologyImpactIT,OntologyModelingIT,OntologyPackResourceIT,OntologyPatternIT,OntologyPropertyResourceIT,OntologyResourceIT,OntologyStructureIT,OntologySubsetIT,OpenMetadataOperationsIT,OptimisticLockingColumnPatchIT,OrphanIngestionPipelineCleanupIT,OrphanedEntityReferenceIT,OrphanedIndexCleanerScopedCleanupIT,OrphanedTimeSeriesCleanupIT,OverrideMetadataRestoreMigrationIT,PaginationIT,RdfScaleResourcesTest,RecognizerFeedbackRepositoryTest,RelationshipTypeContradictionIT,RelationshipTypeResourceIT,RestoreHierarchyIT,SampleDataStorageMigrationIT,SavedSparqlQueryResourceIT,SeedDataPresenceIT,ServiceLineagePipelineRoutingMigrationIT,SoftDeleteRetentionIT,TableResourceIT,TestCaseSoftDeleteSearchIT,ThresholdParameterMigrationIT,TypeResourceIT,UserResourceIT,WritePathBenchmarkIT,RdfFusekiAuthorizationIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false > /tmp/ontology-postgres-parallel-full.log 2>&1
PostgreSQL isolated — 334 passed, one skipped

Per-case XML tallies below. In the parallel run, inherited nested tests duplicate some skipped placeholders; the runner aggregate above is authoritative for skips. Per-class console summaries also misattribute concurrent cases, so passing counts below use testcase class names.

Class Passed Failures/errors Skipped XML entries
ConversationSchemaMigrationIT 2 0 0
EntityShapeIT 312 0 0
GlossaryOntologyExportIT 16 0 0
MetricMigrationIT 4 0 0
PatchTableEmbeddingIT 0 0 1

Command:

mvn -Djunit.version=5.11.4 -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Ppostgres-opensearch -DintegrationTests.lane=global-state -Dit.test=ConversationSchemaMigrationIT,EntityShapeIT,GlossaryOntologyExportIT,MetricMigrationIT,PatchTableEmbeddingIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false > /tmp/ontology-postgres-isolated-full.log 2>&1
Real Fuseki — 279 passed, two fixture failures, one skipped; corrected authorization cases subsequently passed

Per-case XML tallies below. In the parallel run, inherited nested tests duplicate some skipped placeholders; the runner aggregate above is authoritative for skips. Per-class console summaries also misattribute concurrent cases, so passing counts below use testcase class names.

Class Passed Failures/errors Skipped XML entries
AgentSparqlResourceIT 22 0 0
LodResourceIT 9 0 0
RdfBatchFieldsIT 3 0 0
RdfBlueGreenRebuildIT 34 0 0
RdfConceptRealizationIT 1 0 0
RdfFusekiAuthorizationIT 10 2 0
RdfGlossaryGraphIT 11 0 0
RdfGovernanceRulesIT 3 0 0
RdfGraphExploreIT 8 0 0
RdfIndexAppScaleIT 0 0 1
RdfIndexRunRecoveryIT 4 0 0
RdfInferenceMaterializationIT 16 0 0
RdfInferenceMultiServerIT 4 0 0
RdfLiveProjectionIT 3 0 0
RdfLiveWriteRecoveryIT 34 0 0
RdfOntologyActivationIT 2 0 0
RdfPolicyRevocationIT 5 0 0
RdfReindexFailuresIT 13 0 0
RdfReindexInsertOnlyIT 1 0 0
RdfReindexRunLockIT 5 0 0
RdfRelationExclusionsIT 6 0 0
RdfResourceIT 15 0 0
RdfRoundTripFidelityIT 7 0 0
RdfSemanticSearchIT 10 0 0
RdfSourceRevisionIT 3 0 0
RdfSqlResourceIT 7 0 0
RdfStorageReadinessIT 10 0 0
RdfTagsTierCertificationIT 12 0 0
mcp.RdfMcpKnowledgeGraphIT 21 0 0

Command:

mvn -Djunit.version=5.11.4 -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Ppostgres-opensearch -DintegrationTests.lane=rdf -Dit.test=AgentSparqlResourceIT,LodResourceIT,RdfBatchFieldsIT,RdfBlueGreenRebuildIT,RdfConceptRealizationIT,RdfFusekiAuthorizationIT,RdfGlossaryGraphIT,RdfGovernanceRulesIT,RdfGraphExploreIT,RdfIndexAppScaleIT,RdfIndexRunRecoveryIT,RdfInferenceMaterializationIT,RdfInferenceMultiServerIT,RdfLiveProjectionIT,RdfLiveWriteRecoveryIT,RdfMcpKnowledgeGraphIT,RdfOntologyActivationIT,RdfPolicyRevocationIT,RdfReindexFailuresIT,RdfReindexInsertOnlyIT,RdfReindexRunLockIT,RdfRelationExclusionsIT,RdfResourceIT,RdfRoundTripFidelityIT,RdfSemanticSearchIT,RdfSourceRevisionIT,RdfSqlResourceIT,RdfStorageReadinessIT,RdfTagsTierCertificationIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false > /tmp/ontology-postgres-rdf-full.log 2>&1
Original PostgreSQL/OpenSearch indexing — 68 passed, five errors

Per-case XML tallies below. In the parallel run, inherited nested tests duplicate some skipped placeholders; the runner aggregate above is authoritative for skips. Per-class console summaries also misattribute concurrent cases, so passing counts below use testcase class names.

Class Passed Failures/errors Skipped XML entries
search.ColumnIndexingToggleIT 1 0 0
search.CustomPropertyAggregationIT 2 0 0
search.DbToEsCountReconciliationIT 0 1 0
search.ExtensionHighlightSearchIT 1 0 0
search.FieldNamesAggregationIT 5 0 0
search.HighlightFieldSaveValidationIT 4 0 0
search.IndexFieldExplosionIT 2 0 0
search.IndexMappingTemplatesIT 1 0 0
search.LiveIndexRetryIT 1 0 0
search.LiveSearchSettingsChangeIT 1 0 0
search.NestedHierarchyIndexIT 1 0 0
search.NoDuplicatesDuringReindexIT 1 0 0
search.OwnersNestedMappingIT 1 0 0
search.PerEntitySearchDefaultsIT 1 0 0
search.ReindexAliasSwapIT 1 0 0
search.ReindexDocSurvivalIT 4 0 0
search.ReindexOutageRecoveryIT 1 0 0
search.ReindexStatsIT 2 0 0
search.ReindexStopUnderLoadIT 1 0 0
search.SearchAggregateRbacIT 0 4 0
search.SearchClusterFitnessReindexE2EIT 2 0 0
search.SearchCountConsistencyIT 6 0 0
search.SearchEntityRankingIT 14 0 0
search.SearchRelevancyPreviewIT 8 0 0
search.SearchScoringIT 4 0 0
search.StagedIndexUnrefreshedCountIT 1 0 0
search.TestCaseStaleDefinitionReindexIT 1 0 0
search.UnsafeReindexConfigIT 1 0 0

Command:

mvn -Djunit.version=5.11.4 -B verify -pl :openmetadata-integration-tests -am -Dspring-boot.repackage.skip=true -Psearch-it -DdatabaseType=postgres -DsearchType=opensearch -Djpw.data.mode=ingest -Dit.test=ColumnIndexingToggleIT,CustomPropertyAggregationIT,DbToEsCountReconciliationIT,ExtensionHighlightSearchIT,FieldNamesAggregationIT,HighlightFieldSaveValidationIT,IndexFieldExplosionIT,IndexMappingTemplatesIT,LiveIndexRetryIT,LiveSearchSettingsChangeIT,NestedHierarchyIndexIT,NoDuplicatesDuringReindexIT,OwnersNestedMappingIT,PerEntitySearchDefaultsIT,ReindexAliasSwapIT,ReindexDocSurvivalIT,ReindexOutageRecoveryIT,ReindexStatsIT,ReindexStopUnderLoadIT,SearchAggregateRbacIT,SearchClusterFitnessReindexE2EIT,SearchCountConsistencyIT,SearchEntityRankingIT,SearchRelevancyPreviewIT,SearchScoringIT,StagedIndexUnrefreshedCountIT,TestCaseStaleDefinitionReindexIT,UnsafeReindexConfigIT -Dfailsafe.failIfNoSpecifiedTests=false -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false > /tmp/ontology-postgres-search-it-full.log 2>&1
PostgreSQL/OpenSearch regression rerun — all seven passed

Per-case XML tallies below. In the parallel run, inherited nested tests duplicate some skipped placeholders; the runner aggregate above is authoritative for skips. Per-class console summaries also misattribute concurrent cases, so passing counts below use testcase class names.

Class Passed Failures/errors Skipped XML entries
search.DbToEsCountReconciliationIT 1 0 0
search.ReindexStatsIT 2 0 0
search.SearchAggregateRbacIT 4 0 0

Command:

mvn -B verify -pl :openmetadata-integration-tests -am \
  -Dspring-boot.repackage.skip=true -Djunit.version=5.11.4 \
  -Psearch-it -DdatabaseType=postgres -DsearchType=opensearch -Djpw.data.mode=ingest \
  '-Djunit.jupiter.testclass.order.default=org.junit.jupiter.api.ClassOrderer$ClassName' \
  -Dit.test=DbToEsCountReconciliationIT,ReindexStatsIT,SearchAggregateRbacIT \
  -Dfailsafe.failIfNoSpecifiedTests=false \
  -Dtest=NoUnitTestsInThisRun -Dsurefire.failIfNoSpecifiedTests=false \
  > /tmp/ontology-postgres-search-fixes.log 2>&1

MySQL and unit checks

MySQL/Elasticsearch expanded API run: 1,327 total, four failures, 131 skips. The focused follow-up passed all four formerly failing cases and all 19 EntityRepositoryRestoreTest unit cases. The 64 targeted ontology unit cases also passed. Classes and counts from those sequential unit/focused console summaries:

Class Tests Failed Skipped
org.openmetadata.service.ontology.OntologyChangeOperationExecutorTest 14 0 0
org.openmetadata.service.ontology.NativeOntologyChangeSetTest 8 0 0
org.openmetadata.service.jdbi3.OntologyHierarchyStorageTest 10 0 0
org.openmetadata.service.jdbi3.OntologyActiveGraphStorageTest 2 0 0
org.openmetadata.service.jdbi3.OntologyEntityDAOTest 20 0 0
org.openmetadata.service.rdf.RdfOntologyContractTest 10 0 0
org.openmetadata.service.jdbi3.EntityRepositoryRestoreTest 19 0 0
org.openmetadata.it.tests.OntologyPropertyResourceIT 4 0 0
org.openmetadata.it.tests.OntologyConceptResourceIT 0 0 0

Expanded MySQL classes that ran (parallel console class counts are not reliable; use the aggregate above):

  • org.openmetadata.it.tests.BaseEntityIT$ListEntityHistoryByTimestampPaginationTest
  • org.openmetadata.it.tests.ContextMemoryAnchorIT
  • org.openmetadata.it.tests.ContextMemoryConflictReviewIT
  • org.openmetadata.it.tests.ContextMemoryCreateGrantIT
  • org.openmetadata.it.tests.ContextMemoryIT
  • org.openmetadata.it.tests.ContextMemoryLifecycleIT
  • org.openmetadata.it.tests.ContextMemoryQueryEvidenceIT
  • org.openmetadata.it.tests.ContextMemoryRelatedEntitiesReconcileIT
  • org.openmetadata.it.tests.ContextMemorySourceEntityTiebreakIT
  • org.openmetadata.it.tests.ContextMemoryStatusMigrationIT
  • org.openmetadata.it.tests.ContextMemoryWriteAccessIT
  • org.openmetadata.it.tests.GlossaryTermRelationsIT
  • org.openmetadata.it.tests.MetricResourceIT
  • org.openmetadata.it.tests.NativeOntologyMemoryIT
  • org.openmetadata.it.tests.OntologyChangeSetIT
  • org.openmetadata.it.tests.OntologyConceptResourceIT
  • org.openmetadata.it.tests.OntologyEditLockResourceIT
  • org.openmetadata.it.tests.OntologyPropertyResourceIT
  • org.openmetadata.it.tests.TaskResourceIT

The initial full service run is preserved in the separate generated-details comment. ODCSConverterTest.testFromODCS_WithTeam also failed on clean main. An additional main-only comparison reported AirflowRESTClientTest and one other baseline failure; none is claimed fixed here.

Frontend and generated Python models

Broad merged Jest run: 539 passed, one failed
  • src/components/OntologyExplorer/ExportGraphPanel.test.tsx
  • src/components/OntologyExplorer/FilterToolbar.test.tsx
  • src/components/OntologyExplorer/GraphSettingsPanel.test.tsx
  • src/components/OntologyExplorer/OntologyAiAssistant.test.tsx
  • src/components/OntologyExplorer/OntologyAiAssistant.utils.test.ts
  • src/components/OntologyExplorer/OntologyAiDomainPanel.test.tsx
  • src/components/OntologyExplorer/OntologyAiMappingPanel.test.tsx
  • src/components/OntologyExplorer/OntologyAiQueryPanel.test.tsx
  • src/components/OntologyExplorer/OntologyAiRelationshipPanel.test.tsx
  • src/components/OntologyExplorer/OntologyAuthoringInspector.test.tsx
  • src/components/OntologyExplorer/OntologyAxiomPanel.test.tsx
  • src/components/OntologyExplorer/OntologyBulkAuthoring.test.tsx
  • src/components/OntologyExplorer/OntologyBulkAuthoring.utils.test.ts
  • src/components/OntologyExplorer/OntologyBulkJobsPanel.test.tsx
  • src/components/OntologyExplorer/OntologyBulkOperationFields.test.tsx
  • src/components/OntologyExplorer/OntologyBulkResultPanel.test.tsx
  • src/components/OntologyExplorer/OntologyConceptAttributes.component.test.tsx
  • src/components/OntologyExplorer/OntologyConceptDataAssets.test.tsx
  • src/components/OntologyExplorer/OntologyConceptDraftInspector.test.tsx
  • src/components/OntologyExplorer/OntologyConceptRealization.component.test.tsx
  • src/components/OntologyExplorer/OntologyDeleteImpactPanel.test.tsx
  • src/components/OntologyExplorer/OntologyExplorer.test.tsx
  • src/components/OntologyExplorer/OntologyExpressionEditor.test.tsx
  • src/components/OntologyExplorer/OntologyHealthPanel.test.tsx
  • src/components/OntologyExplorer/OntologyImportExportMenu.test.tsx
  • src/components/OntologyExplorer/OntologyImportExportModal.test.tsx
  • src/components/OntologyExplorer/OntologyInferenceExplanationPanel.test.tsx
  • src/components/OntologyExplorer/OntologyIriPreviewPanel.test.tsx
  • src/components/OntologyExplorer/OntologyLibrary.test.tsx
  • src/components/OntologyExplorer/OntologyLibrary.utils.test.ts
  • src/components/OntologyExplorer/OntologyMemoryReviewPanel.test.tsx
  • src/components/OntologyExplorer/OntologyModelingWorkbench.test.tsx
  • src/components/OntologyExplorer/OntologyModelingWorkbench.utils.test.ts
  • src/components/OntologyExplorer/OntologyNodeRelationsContent.test.tsx
  • src/components/OntologyExplorer/OntologyPatternPanel.test.tsx
  • src/components/OntologyExplorer/OntologyQueryResultGraph.utils.test.ts
  • src/components/OntologyExplorer/OntologyRelationDetailsPanel.test.tsx
  • src/components/OntologyExplorer/OntologyStructurePanel.test.tsx
  • src/components/OntologyExplorer/OntologyStudio.utils.test.ts
  • src/components/OntologyExplorer/OntologyStudioQueryConsole.test.tsx
  • src/components/OntologyExplorer/OntologySubsetPanel.test.tsx
  • src/components/OntologyExplorer/OntologyTermEditor.test.tsx
  • src/components/OntologyExplorer/OntologyTermSelection.test.tsx
  • src/components/OntologyExplorer/OntologyTreeView.test.tsx
  • src/components/OntologyExplorer/OntologyVisualQueryBuilder.component.test.tsx
  • src/components/OntologyExplorer/OntologyVisualQueryBuilder.test.ts
  • src/components/OntologyExplorer/PortOverlay.component.test.tsx
  • src/components/OntologyExplorer/RelationshipTypePicker.component.test.tsx
  • src/components/OntologyExplorer/hooks/useGraphData.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyAiCapability.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyBulkJobs.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyEditLease.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyExplorer.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyGraph.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyGraphDerived.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyGraphEdit.test.ts
  • src/components/OntologyExplorer/hooks/useOntologyTermDetails.test.ts
  • src/components/OntologyExplorer/utils/cardinalityLabelUtils.test.ts
  • src/components/OntologyExplorer/utils/dataGraphLayout.test.ts
  • src/components/OntologyExplorer/utils/graphBuilders.test.ts
  • src/components/OntologyExplorer/utils/graphConfig.test.ts
  • src/components/OntologyExplorer/utils/graphSearchHighlight.test.ts
  • src/components/OntologyExplorer/utils/graphStyles.test.ts
  • src/components/OntologyExplorer/utils/hierarchyGraphBuilder.test.ts
  • src/components/OntologyExplorer/utils/layoutCalculations.test.ts
  • src/components/OntologyExplorer/utils/ontologyExportMerge.test.ts
  • src/components/OntologyExplorer/utils/relationshipTypeUtils.test.ts
  • src/components/OntologyExplorer/utils/studioEditPortStyles.test.ts
  • src/components/OntologyExplorer/utils/studioGraphLayout.test.ts
  • src/components/OntologyExplorer/utils/textMeasure.test.ts
  • src/components/governance/ontology/OntologyAuthoringWorkspace/OntologyAuthoringWorkspace.test.tsx
  • src/components/governance/ontology/OntologyAxiomEditor/OntologyAxiomEditor.test.tsx
  • src/components/governance/ontology/OntologyConceptEditor/OntologyConceptEditor.test.tsx
  • src/components/governance/ontology/OntologyCreateForm/OntologyCreateForm.test.tsx
  • src/components/governance/ontology/OntologyPropertyEditor/OntologyPropertyEditor.test.tsx
  • src/components/governance/ontology/OntologyReleasePanel/OntologyReleasePanel.test.tsx
  • src/components/governance/ontology/OntologyReviewPanel/OntologyReviewPanel.test.tsx
  • src/pages/OntologyExplorerPage/OntologyExplorerPage.integration.test.tsx (11.644 s)
  • src/pages/OntologyExplorerPage/OntologyExplorerPage.test.tsx
  • src/rest/ontologyAPI.test.ts
  • src/rest/rdfAPI.test.ts
Corrected focused Jest rerun: 161 passed
  • src/components/Entity/Task/TaskTab/TaskTabNew.component.test.tsx
  • src/components/OntologyExplorer/OntologyMemoryReviewPanel.test.tsx
  • src/components/discovery/personal-space/InboxPage/components/TaskDetailPanel.test.tsx
  • src/components/governance/ontology/OntologyAxiomEditor/OntologyAxiomEditor.test.tsx
  • src/components/governance/ontology/OntologyReviewPanel/OntologyReviewPanel.test.tsx

PYTHONPATH=ingestion/src python -m pytest ingestion/tests/unit/models/test_ontology_iris.py -q: 21 passed. No connector source changes or connector integration run.

Post-merge browser E2Es and final changed-class coverage remain pending. Full UI TypeScript check remains red: 554 diagnostics versus 565 on clean main with the same dependencies; no new file/error-code pairs observed. Java formatting, UI lint/format/license/i18n, and commit/pre-push ownership hooks passed.

Historical pre-merge validation included 1,053 MySQL API passes (127 skips), 240 PostgreSQL/Fuseki API passes (36 skips), 551 ontology/service unit passes, SDK/MCP checks (15 shared SDK, 14 ontology SDK, 12 MCP), a multi-vote workflow case, 298 UI unit cases, 21 Python model cases and 66 native/glossary browser scenarios across focused runs. Those pre-merge runs do not validate the final merged UI.

@github-actions

github-actions Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

⚠️ UI Checkstyle passed — lint findings in changed files

🔍 ESLint findings in this PR's files — 0 error(s), 15 warning(s)

Errors block the build. Warnings do not yet — they are rules whose backlog is still
being worked down, listed so this PR does not add to it. See docs/ui-code-quality-gate.md.

0 error(s), 15 warning(s) across 4 changed file(s).

Count Rule
5 react-hooks/exhaustive-deps
5 openmetadata-imports/review-sequential-api-calls
4 openmetadata-imports/no-lower-layer-page-imports
1 openmetadata-ui-patterns/no-non-adaptive-palette
All findings
Location Rule Message
🟡 src/components/ActivityFeed/TaskFeedCard/TaskFeedCardFromTask.component.tsx:42:1 openmetadata-imports/no-lower-layer-page-imports Pages are route-level composition modules. Move the shared implementation/type to a lower layer instead of importing a page from here.
🟡 src/components/ActivityFeed/TaskFeedCard/TaskFeedCardFromTask.component.tsx:43:1 openmetadata-imports/no-lower-layer-page-imports Pages are route-level composition modules. Move the shared implementation/type to a lower layer instead of importing a page from here.
🟡 src/components/ActivityFeed/TaskFeedCard/TaskFeedCardFromTask.component.tsx:192:9 react-hooks/exhaustive-deps The 'handleTaskLinkClick' function makes the dependencies of useMemo Hook (at line 228) change on every render. Move it inside the useMemo callback. Alternative
🟡 src/components/Entity/Task/TaskTab/TaskTabNew.component.tsx:71:1 openmetadata-imports/no-lower-layer-page-imports Pages are route-level composition modules. Move the shared implementation/type to a lower layer instead of importing a page from here.
🟡 src/components/Entity/Task/TaskTab/TaskTabNew.component.tsx:72:1 openmetadata-imports/no-lower-layer-page-imports Pages are route-level composition modules. Move the shared implementation/type to a lower layer instead of importing a page from here.
🟡 src/components/Entity/Task/TaskTab/TaskTabNew.component.tsx:748:9 react-hooks/exhaustive-deps The 'updateTaskData' function makes the dependencies of useCallback Hook (at line 856) change on every render. To fix this, wrap the definition of 'updateTaskDa
🟡 src/components/Entity/Task/TaskTab/TaskTabNew.component.tsx:1320:6 react-hooks/exhaustive-deps React Hook useMemo has unnecessary dependencies: 'onTaskDropdownClick', 'taskHandler.approvedValue', and 'taskHandler.rejectedValue'. Either exclude them or rem
🟡 src/components/Entity/Task/TaskTab/TaskTabNew.component.tsx:1355:6 react-hooks/exhaustive-deps React Hook useMemo has unnecessary dependencies: 'isPartOfAssigneeTeam' and 'task'. Either exclude them or remove the dependency array.
🟡 src/components/Entity/Task/TaskTab/TaskTabNew.component.tsx:1418:6 react-hooks/exhaustive-deps React Hook useMemo has unnecessary dependencies: 'onTaskResolve' and 'task'. Either exclude them or remove the dependency array.
🟡 src/components/OntologyExplorer/OntologyModelingWorkbench.tsx:124:17 openmetadata-ui-patterns/no-non-adaptive-palette Raw palette class "tw:focus-visible:outline-brand-600" is static — it does not flip in dark mode. Use the theme-adapting "utility-" variant (tw:outline-utility-
🟡 src/rest/ontologyAPI.test.ts:85:12 openmetadata-imports/review-sequential-api-calls Review these sequential API requests. If they are independent, start them together with Promise.all/Promise.allSettled; keep sequencing only when data-dependent
🟡 src/rest/ontologyAPI.test.ts:93:12 openmetadata-imports/review-sequential-api-calls Review these sequential API requests. If they are independent, start them together with Promise.all/Promise.allSettled; keep sequencing only when data-dependent
🟡 src/rest/ontologyAPI.test.ts:124:12 openmetadata-imports/review-sequential-api-calls Review these sequential API requests. If they are independent, start them together with Promise.all/Promise.allSettled; keep sequencing only when data-dependent
🟡 src/rest/ontologyAPI.test.ts:146:5 openmetadata-imports/review-sequential-api-calls Review these sequential API requests. If they are independent, start them together with Promise.all/Promise.allSettled; keep sequencing only when data-dependent
🟡 src/rest/ontologyAPI.test.ts:305:24 openmetadata-imports/review-sequential-api-calls Review these sequential API requests. If they are independent, start them together with Promise.all/Promise.allSettled; keep sequencing only when data-dependent

Fix locally (fast - only checks files changed in this branch):

make ui-checkstyle-changed

Comment on lines +443 to +457
useEffect(() => {
if (!ontologyId) {
setLoadedOntology(undefined);

return;
}
const controller = new AbortController();
getOntology(ontologyId, 'owners,reviewers', controller.signal)
.then((ontology) => {
if (!controller.signal.aborted) {
setLoadedOntology(ontology);
}
})
.catch((error) => {
if (!controller.signal.aborted) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Edge Case: Failed ontology load leaves the Studio stuck on "Loading"

renderWorkspace now shows t('label.loading') whenever ontologyId is set and selectedOntology is undefined. If getOntology rejects (for example a stale or deleted ?ontology= deep link, a 404 or a 403), the catch only shows a toast and never sets any state. loadedOntology therefore never matches ontologyId, and the workspace keeps showing "Loading" until the user picks another ontology. Before this change a failed load fell back to the glossary Studio. A fix is to track the failed id in state and, on failure, either drop the ontology search param or render an error/empty state instead of the loading status.

Drop the unresolvable ontology from the URL when it fails to load, so the page falls back to the glossary Studio:

.catch((error) => {
  if (!controller.signal.aborted) {
    showErrorToast(error);
    setSearchParams((current) => {
      const next = new URLSearchParams(current);
      next.delete('ontology');
      next.delete(DRAFT_SEARCH_PARAM);

      return next;
    });
  }
});
  • Apply fix

Check the box to apply the fix or reply for a change | Was this helpful? React with 👍 / 👎

Preserve the merged glossary Studio and add native model, release and query
surfaces. Apply native memory proposals atomically through the existing change
set review workflow and per-ontology working-state lock.

Seal canonical release content independently of audit and permission fields,
bind approval to immutable content, recover transient review failures, and
compare releases with their captured baseline. Keep native working edits out
of field-level approval staging and enforce permissions on active-release
queries.

Keep unreleased ontology DDL in native/2.1.0, document the capability boundary,
and remove unrelated SDK and event changes. Validate the native APIs on MySQL
and PostgreSQL, plus active graph behavior against real Fuseki.
Remove the orphaned table from the search index as well as SQL and verify cleanup completes. Count soft-deleted entities on both sides of database/search reconciliation and include an explicit deleted-user fixture. All seven affected tests pass on PostgreSQL/OpenSearch.
Restore native graph and scope navigation, release glossary edit leases on native selection, and preserve ordinary task feed actions. Batch current ownership and reviewer loading for release reads and avoid derived hierarchy work during capture.

Add native workspace regressions and a PostgreSQL SQL-budget test. Record focused validation and the remaining review decisions in the completion plan.
@harshach
harshach force-pushed the agent/can-you-do-a-deep-analysis-o branch from 3a024dc to 4fe9e07 Compare October 17, 2026 08:30
@gitar-bot

gitar-bot Bot commented Oct 17, 2026

Copy link
Copy Markdown
Code Review 👍 Approved with suggestions 1 closed / 2 findings

🔴 High risk · The 2.1.0 migration clears glossary axioms and applied change-set history, potentially deleting stored data, while release activation can replace published ontology graphs.

Native Ontology Studio and governed release changes are approved with suggestions. One open minor finding: when an ontology deep link fails to load (for example a stale ?ontology= id or a 403/404), OntologyExplorerPage.tsx keeps showing "Loading" instead of falling back or showing an error state. Resolved this session: the axiom list no longer shows raw label.axiom / label.axiom-plural i18n keys.

💡 Edge Case: Failed ontology load leaves the Studio stuck on "Loading"

📄 openmetadata-ui/src/main/resources/ui/src/pages/OntologyExplorerPage/OntologyExplorerPage.tsx:443-457 📄 openmetadata-ui/src/main/resources/ui/src/pages/OntologyExplorerPage/OntologyExplorerPage.tsx:1046-1049

renderWorkspace now shows t('label.loading') whenever ontologyId is set and selectedOntology is undefined. If getOntology rejects (for example a stale or deleted ?ontology= deep link, a 404 or a 403), the catch only shows a toast and never sets any state. loadedOntology therefore never matches ontologyId, and the workspace keeps showing "Loading" until the user picks another ontology. Before this change a failed load fell back to the glossary Studio. A fix is to track the failed id in state and, on failure, either drop the ontology search param or render an error/empty state instead of the loading status.

Drop the unresolvable ontology from the URL when it fails to load, so the page falls back to the glossary Studio
.catch((error) => {
  if (!controller.signal.aborted) {
    showErrorToast(error);
    setSearchParams((current) => {
      const next = new URLSearchParams(current);
      next.delete('ontology');
      next.delete(DRAFT_SEARCH_PARAM);

      return next;
    });
  }
});
✅ 1 closed
✅ Bug: Axiom definition list shows raw i18n keys label.axiom / label.axiom-plural

📄 openmetadata-ui/src/main/resources/ui/src/components/governance/ontology/OntologyAuthoringWorkspace/OntologyDefinitionList.tsx:71-72 📄 openmetadata-ui/src/main/resources/ui/src/components/governance/ontology/OntologyAxiomWorkspace/OntologyAxiomWorkspace.tsx:32
OntologyDefinitionList builds its labels with t(label.${definitionType}) and t(label.${definitionType}-plural). OntologyAxiomWorkspace passes definitionType="axiom", but en-us.json (and the other locales) have no label.axiom or label.axiom-plural key. concept, concept-plural, property and property-plural all exist. So on the Constraints tab of the native Model surface, the heading shows label.axiom-plural, the add button shows "Add label.axiom" and the fetch-error alert shows the raw key too. To fix it, add axiom / axiom-plural keys to en-us.json and run yarn i18n, then translate them. Another option is to map axiom to the existing constraint/constraint-plural labels, which the Studio tab already uses.

🤖 Prompt for agents
Code Review: Native Ontology Studio and governed release changes are approved with suggestions. One open minor finding: when an ontology deep link fails to load (for example a stale `?ontology=` id or a 403/404), `OntologyExplorerPage.tsx` keeps showing "Loading" instead of falling back or showing an error state. Resolved this session: the axiom list no longer shows raw `label.axiom` / `label.axiom-plural` i18n keys.

1. 💡 Edge Case: Failed ontology load leaves the Studio stuck on "Loading"
   Files: openmetadata-ui/src/main/resources/ui/src/pages/OntologyExplorerPage/OntologyExplorerPage.tsx:443-457, openmetadata-ui/src/main/resources/ui/src/pages/OntologyExplorerPage/OntologyExplorerPage.tsx:1046-1049

   `renderWorkspace` now shows `t('label.loading')` whenever `ontologyId` is set and `selectedOntology` is undefined. If `getOntology` rejects (for example a stale or deleted `?ontology=` deep link, a 404 or a 403), the catch only shows a toast and never sets any state. `loadedOntology` therefore never matches `ontologyId`, and the workspace keeps showing "Loading" until the user picks another ontology. Before this change a failed load fell back to the glossary Studio. A fix is to track the failed id in state and, on failure, either drop the `ontology` search param or render an error/empty state instead of the loading status.

   Fix (Drop the unresolvable ontology from the URL when it fails to load, so the page falls back to the glossary Studio):
   .catch((error) => {
     if (!controller.signal.aborted) {
       showErrorToast(error);
       setSearchParams((current) => {
         const next = new URLSearchParams(current);
         next.delete('ontology');
         next.delete(DRAFT_SEARCH_PARAM);
   
         return next;
       });
     }
   });

Verification

Rules No rules evaluated

Functional validation Not enabled

Set up

Auto-approval Not enabled

Set up

For more verification details, comment gitar display:verbose.

Options

Display: compact → Showing compact verification results.

Comment with these commands to change the behavior for this request:

Compact
gitar display:verbose         

Was this helpful? React with 👍 / 👎 | Powered by Gitar — free for open source

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend safe to test Add this label to run secure Github workflows on PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Native ontology entities and governed releases in Ontology Studio

1 participant