ISSUE #3058 - Bulk Endpoint For Bundle TestSuite Selection#26490
ISSUE #3058 - Bulk Endpoint For Bundle TestSuite Selection#26490TeddyCr wants to merge 10 commits intoopen-metadata:mainfrom
Conversation
|
openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java
Show resolved
Hide resolved
...adata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java
Outdated
Show resolved
Hide resolved
openmetadata-spec/src/main/resources/json/schema/api/tests/bundleSuiteBulkAddRequest.json
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
This PR adds a new bulk endpoint PUT /v1/dataQuality/testCases/logicalTestCases/bulk for adding test cases to a logical test suite, supporting two modes: explicit IDs (ids) and select-all with optional exclusions (all). It also deprecates the existing single endpoint, replaces N+1 update patterns with batch processing, and extends the lifecycle event system with onEntitiesUpdated.
Changes:
- New JSON schemas and bulk endpoint for adding test cases to logical test suites by IDs or select-all with exclusions
- Batch processing via
postUpdateMany(),onEntitiesUpdated()lifecycle events, and bulk search index updates with per-entity fallback - Deprecation headers on the existing
/logicalTestCasesendpoint and comprehensive integration tests
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| bundleSuiteBulkAddRequest.json | Root schema for bulk add request with mode and selection |
| bundleSuiteBulkAddRequestBulkByIds.json | Schema for ID-based selection |
| bundleSuiteBulkAddRequestBulkAll.json | Schema for select-all with exclusion filter |
| TestCaseResource.java | New bulk endpoint, deprecation headers on old endpoint, extracted validation helper |
| TestCaseRepository.java | Batch relationship insert, diff-based update logic, addAllTestCasesToLogicalTestSuite |
| EntityRepository.java | New postUpdateMany() for batch cache + lifecycle + RDF updates |
| CollectionDAO.java | New SQL methods for bulk-inserting all/filtered relationships |
| EntityLifecycleEventHandler.java | Default onEntitiesUpdated with per-entity fallback |
| EntityLifecycleEventDispatcher.java | Dispatch bulk updated events to handlers |
| SearchIndexHandler.java | Bulk search index update with individual fallback |
| SearchRepository.java | Renamed updateEntitiesBulk → updateEntitiesIndex, kept old as delegate |
| EntityLifecycleEventDispatcherTest.java | Tests for bulk dispatch with per-entity change descriptions |
| SearchIndexHandlerTest.java | Tests for bulk and fallback search index updates |
| TestCaseResourceIT.java | Integration tests for both modes, edge cases, idempotency, deprecated endpoint |
You can also share your feedback on Copilot code review. Take the survey.
...metadata-spec/src/main/resources/json/schema/api/tests/bundleSuiteBulkAddRequestBulkAll.json
Show resolved
Hide resolved
openmetadata-spec/src/main/resources/json/schema/api/tests/bundleSuiteBulkAddRequest.json
Outdated
Show resolved
Hide resolved
...adata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java
Show resolved
Hide resolved
...adata-service/src/main/java/org/openmetadata/service/resources/dqtests/TestCaseResource.java
Show resolved
Hide resolved
openmetadata-service/src/main/java/org/openmetadata/service/jdbi3/TestCaseRepository.java
Show resolved
Hide resolved
...tadata-spec/src/main/resources/json/schema/api/tests/bundleSuiteBulkAddRequestBulkByIds.json
Show resolved
Hide resolved
Code Review
|
| Auto-apply | Compact |
|
|
Was this helpful? React with 👍 / 👎 | Gitar
|
|
🟡 Playwright Results — all passed (15 flaky)✅ 3329 passed · ❌ 0 failed · 🟡 15 flaky · ⏭️ 183 skipped
🟡 15 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |



Describe your changes:
Fixes #3058
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>Improvement