Add entityStatus to all service entities + domains#26132
Add entityStatus to all service entities + domains#26132
Conversation
| "type": "keyword" | ||
| }, | ||
|
|
||
| "entityStatus": { |
There was a problem hiding this comment.
⚠️ Bug: entityStatus nested inside customPropertiesTyped in domain mappings
In all four locale variants of domain_index_mapping.json, the entityStatus field is incorrectly placed inside customPropertiesTyped.properties (after refFqn) rather than at the top level of mappings.properties (alongside descriptionStatus).
For all service index mappings, entityStatus is correctly placed as a sibling of descriptionStatus at the top level. And the entity schema (domain.json) defines entityStatus as a top-level property. However, the domain ES mapping has it deeply nested inside a custom properties object, which means Elasticsearch queries filtering on entityStatus for domains will need to use a different field path (customPropertiesTyped.entityStatus) than for services (entityStatus), causing inconsistent search behavior or missed results entirely.
The field should be moved from inside customPropertiesTyped.properties to be a sibling of descriptionStatus at the top-level mappings.properties in all four domain mapping files.
Was this helpful? React with 👍 / 👎
| "Version should increment when entityStatus is updated"); | ||
| } | ||
|
|
||
| } catch (Exception e) { |
There was a problem hiding this comment.
⚠️ Bug: Catch-all Exception silently swallows real test failures
The test_entityStatus method wraps the entire test body (including assertions and PATCH operations) in a try/catch(Exception e) block that logs and silently passes. This means if patchEntity throws an HTTP error, or if an assertEquals fails (which throws AssertionError — a subclass of Error, not Exception, so those would still propagate), any other runtime exceptions from the actual test logic (e.g., NullPointerException, JsonProcessingException, network errors) will be silently swallowed and the test will pass.
The intent is to skip entities that don't have getEntityStatus(), but that's already handled by the null check on line 2636. The broad catch block now masks legitimate failures for entities that do support the field.
A better approach: use Assumptions.assumeTrue(currentStatus != null) for the skip logic (already handled), and remove the catch-all. If catching a specific method-not-found error is needed (for entities where the method doesn't exist at compile time), catch only NoSuchMethodError or UnsupportedOperationException specifically.
Suggested fix:
} catch (NoSuchMethodError e) {
// If entity doesn't support entityStatus, skip this test
log.info(
"Entity "
+ entity.getClass().getSimpleName()
+ " does not support entityStatus: "
+ e.getMessage());
}
Was this helpful? React with 👍 / 👎
| "refFqn": { | ||
| "type": "keyword" | ||
| }, | ||
|
|
There was a problem hiding this comment.
💡 Quality: Extra blank lines in domain mapping JSON files
The domain_index_mapping.json files across all locales have extraneous blank lines around the entityStatus field definition (empty lines before/after "type" and "normalizer"), while all the service mapping files use the compact 4-line format consistently. This appears to be an accidental formatting inconsistency.
Suggested fix:
"entityStatus": {
"type": "keyword",
"normalizer": "lowercase_normalizer"
}
Was this helpful? React with 👍 / 👎
|
TypeScript types have been updated based on the JSON schema changes in the PR |
openmetadata-spec/src/main/resources/elasticsearch/en/domain_index_mapping.json
Outdated
Show resolved
Hide resolved
openmetadata-integration-tests/src/test/java/org/openmetadata/it/tests/BaseEntityIT.java
Outdated
Show resolved
Hide resolved
|
gitar fix all the review comments |
Co-authored-by: yan-3005 <[email protected]>
|
gitar , fix the review comments, add entity status to those services and add it to the corresponding index mappings as well |
All review comments have been fixed. I've added 1. DriveService:
2. LLMService:
3. SecurityService:
Now all 12 service types have consistent |
|
gitar bot, check the py tests unit tests and static check failures, what is the issue, fix it properly |
Co-authored-by: yan-3005 <[email protected]>
Fixed the Python static check failure. The issue was that Root cause: This PR added Fix applied: Added The static type checker should now pass on both Python 3.10 and 3.11. |
🔍 CI failure analysis for dc6f357: Playwright E2E test failed in 'Table › Set & update column-level custom property' due to timeout. Additionally, 3 flaky tests passed on retry. This commit also has Python static check fix applied and py-run-tests infrastructure failure.IssueCI job "playwright-ci-postgresql (4, 6)" failed on commit Root CausePermanent Failure: Table Column-Level Custom Property TestFailed Test: Error: The test timed out after 3 minutes while trying to set/update column-level custom properties. The browser context was closed unexpectedly, suggesting either:
Likelihood of being PR-related: Unknown/Low This PR adds Flaky Tests (Passed on Retry)
Test Summary:
Previous CI Failures Still Applicable
DetailsPattern observed across multiple CI runs:
Assessment: Code Review
|
| Auto-apply | Compact |
|
|
Was this helpful? React with 👍 / 👎 | Gitar
🛡️ TRIVY SCAN RESULT 🛡️ Target:
|
| Package | Vulnerability ID | Severity | Installed Version | Fixed Version |
|---|---|---|---|---|
libpam-modules |
CVE-2025-6020 | 🚨 HIGH | 1.5.2-6+deb12u1 | 1.5.2-6+deb12u2 |
libpam-modules-bin |
CVE-2025-6020 | 🚨 HIGH | 1.5.2-6+deb12u1 | 1.5.2-6+deb12u2 |
libpam-runtime |
CVE-2025-6020 | 🚨 HIGH | 1.5.2-6+deb12u1 | 1.5.2-6+deb12u2 |
libpam0g |
CVE-2025-6020 | 🚨 HIGH | 1.5.2-6+deb12u1 | 1.5.2-6+deb12u2 |
🛡️ TRIVY SCAN RESULT 🛡️
Target: Java
Vulnerabilities (34)
| Package | Vulnerability ID | Severity | Installed Version | Fixed Version |
|---|---|---|---|---|
com.fasterxml.jackson.core:jackson-core |
CVE-2025-52999 | 🚨 HIGH | 2.12.7 | 2.15.0 |
com.fasterxml.jackson.core:jackson-core |
CVE-2025-52999 | 🚨 HIGH | 2.13.4 | 2.15.0 |
com.fasterxml.jackson.core:jackson-databind |
CVE-2022-42003 | 🚨 HIGH | 2.12.7 | 2.12.7.1, 2.13.4.2 |
com.fasterxml.jackson.core:jackson-databind |
CVE-2022-42004 | 🚨 HIGH | 2.12.7 | 2.12.7.1, 2.13.4 |
com.google.code.gson:gson |
CVE-2022-25647 | 🚨 HIGH | 2.2.4 | 2.8.9 |
com.google.protobuf:protobuf-java |
CVE-2021-22569 | 🚨 HIGH | 3.3.0 | 3.16.1, 3.18.2, 3.19.2 |
com.google.protobuf:protobuf-java |
CVE-2022-3509 | 🚨 HIGH | 3.3.0 | 3.16.3, 3.19.6, 3.20.3, 3.21.7 |
com.google.protobuf:protobuf-java |
CVE-2022-3510 | 🚨 HIGH | 3.3.0 | 3.16.3, 3.19.6, 3.20.3, 3.21.7 |
com.google.protobuf:protobuf-java |
CVE-2024-7254 | 🚨 HIGH | 3.3.0 | 3.25.5, 4.27.5, 4.28.2 |
com.google.protobuf:protobuf-java |
CVE-2021-22569 | 🚨 HIGH | 3.7.1 | 3.16.1, 3.18.2, 3.19.2 |
com.google.protobuf:protobuf-java |
CVE-2022-3509 | 🚨 HIGH | 3.7.1 | 3.16.3, 3.19.6, 3.20.3, 3.21.7 |
com.google.protobuf:protobuf-java |
CVE-2022-3510 | 🚨 HIGH | 3.7.1 | 3.16.3, 3.19.6, 3.20.3, 3.21.7 |
com.google.protobuf:protobuf-java |
CVE-2024-7254 | 🚨 HIGH | 3.7.1 | 3.25.5, 4.27.5, 4.28.2 |
com.nimbusds:nimbus-jose-jwt |
CVE-2023-52428 | 🚨 HIGH | 9.8.1 | 9.37.2 |
com.squareup.okhttp3:okhttp |
CVE-2021-0341 | 🚨 HIGH | 3.12.12 | 4.9.2 |
commons-beanutils:commons-beanutils |
CVE-2025-48734 | 🚨 HIGH | 1.9.4 | 1.11.0 |
commons-io:commons-io |
CVE-2024-47554 | 🚨 HIGH | 2.8.0 | 2.14.0 |
dnsjava:dnsjava |
CVE-2024-25638 | 🚨 HIGH | 2.1.7 | 3.6.0 |
io.airlift:aircompressor |
CVE-2025-67721 | 🚨 HIGH | 0.27 | 2.0.3 |
io.netty:netty-codec-http2 |
CVE-2025-55163 | 🚨 HIGH | 4.1.96.Final | 4.2.4.Final, 4.1.124.Final |
io.netty:netty-codec-http2 |
GHSA-xpw8-rcwv-8f8p | 🚨 HIGH | 4.1.96.Final | 4.1.100.Final |
io.netty:netty-handler |
CVE-2025-24970 | 🚨 HIGH | 4.1.96.Final | 4.1.118.Final |
net.minidev:json-smart |
CVE-2021-31684 | 🚨 HIGH | 1.3.2 | 1.3.3, 2.4.4 |
net.minidev:json-smart |
CVE-2023-1370 | 🚨 HIGH | 1.3.2 | 2.4.9 |
org.apache.avro:avro |
CVE-2024-47561 | 🔥 CRITICAL | 1.7.7 | 1.11.4 |
org.apache.avro:avro |
CVE-2023-39410 | 🚨 HIGH | 1.7.7 | 1.11.3 |
org.apache.derby:derby |
CVE-2022-46337 | 🔥 CRITICAL | 10.14.2.0 | 10.14.3, 10.15.2.1, 10.16.1.2, 10.17.1.0 |
org.apache.ivy:ivy |
CVE-2022-46751 | 🚨 HIGH | 2.5.1 | 2.5.2 |
org.apache.mesos:mesos |
CVE-2018-1330 | 🚨 HIGH | 1.4.3 | 1.6.0 |
org.apache.thrift:libthrift |
CVE-2019-0205 | 🚨 HIGH | 0.12.0 | 0.13.0 |
org.apache.thrift:libthrift |
CVE-2020-13949 | 🚨 HIGH | 0.12.0 | 0.14.0 |
org.apache.zookeeper:zookeeper |
CVE-2023-44981 | 🔥 CRITICAL | 3.6.3 | 3.7.2, 3.8.3, 3.9.1 |
org.eclipse.jetty:jetty-server |
CVE-2024-13009 | 🚨 HIGH | 9.4.56.v20240826 | 9.4.57.v20241219 |
org.lz4:lz4-java |
CVE-2025-12183 | 🚨 HIGH | 1.8.0 | 1.8.1 |
🛡️ TRIVY SCAN RESULT 🛡️
Target: Node.js
No Vulnerabilities Found
🛡️ TRIVY SCAN RESULT 🛡️
Target: Python
Vulnerabilities (21)
| Package | Vulnerability ID | Severity | Installed Version | Fixed Version |
|---|---|---|---|---|
Werkzeug |
CVE-2024-34069 | 🚨 HIGH | 2.2.3 | 3.0.3 |
aiohttp |
CVE-2025-69223 | 🚨 HIGH | 3.12.12 | 3.13.3 |
aiohttp |
CVE-2025-69223 | 🚨 HIGH | 3.13.2 | 3.13.3 |
apache-airflow |
CVE-2025-68438 | 🚨 HIGH | 3.1.5 | 3.1.6 |
apache-airflow |
CVE-2025-68675 | 🚨 HIGH | 3.1.5 | 3.1.6, 2.11.1 |
azure-core |
CVE-2026-21226 | 🚨 HIGH | 1.37.0 | 1.38.0 |
cryptography |
CVE-2026-26007 | 🚨 HIGH | 42.0.8 | 46.0.5 |
google-cloud-aiplatform |
CVE-2026-2472 | 🚨 HIGH | 1.130.0 | 1.131.0 |
google-cloud-aiplatform |
CVE-2026-2473 | 🚨 HIGH | 1.130.0 | 1.133.0 |
jaraco.context |
CVE-2026-23949 | 🚨 HIGH | 5.3.0 | 6.1.0 |
jaraco.context |
CVE-2026-23949 | 🚨 HIGH | 6.0.1 | 6.1.0 |
protobuf |
CVE-2026-0994 | 🚨 HIGH | 4.25.8 | 6.33.5, 5.29.6 |
pyasn1 |
CVE-2026-23490 | 🚨 HIGH | 0.6.1 | 0.6.2 |
python-multipart |
CVE-2026-24486 | 🚨 HIGH | 0.0.20 | 0.0.22 |
ray |
CVE-2025-62593 | 🔥 CRITICAL | 2.47.1 | 2.52.0 |
starlette |
CVE-2025-62727 | 🚨 HIGH | 0.48.0 | 0.49.1 |
urllib3 |
CVE-2025-66418 | 🚨 HIGH | 1.26.20 | 2.6.0 |
urllib3 |
CVE-2025-66471 | 🚨 HIGH | 1.26.20 | 2.6.0 |
urllib3 |
CVE-2026-21441 | 🚨 HIGH | 1.26.20 | 2.6.3 |
wheel |
CVE-2026-24049 | 🚨 HIGH | 0.45.1 | 0.46.2 |
wheel |
CVE-2026-24049 | 🚨 HIGH | 0.45.1 | 0.46.2 |
🛡️ TRIVY SCAN RESULT 🛡️
Target: usr/bin/docker
Vulnerabilities (4)
| Package | Vulnerability ID | Severity | Installed Version | Fixed Version |
|---|---|---|---|---|
stdlib |
CVE-2025-68121 | 🔥 CRITICAL | v1.25.5 | 1.24.13, 1.25.7, 1.26.0-rc.3 |
stdlib |
CVE-2025-61726 | 🚨 HIGH | v1.25.5 | 1.24.12, 1.25.6 |
stdlib |
CVE-2025-61728 | 🚨 HIGH | v1.25.5 | 1.24.12, 1.25.6 |
stdlib |
CVE-2025-61730 | 🚨 HIGH | v1.25.5 | 1.24.12, 1.25.6 |
🛡️ TRIVY SCAN RESULT 🛡️
Target: /etc/ssl/private/ssl-cert-snakeoil.key
No Vulnerabilities Found
🛡️ TRIVY SCAN RESULT 🛡️
Target: /home/airflow/openmetadata-airflow-apis/openmetadata_managed_apis.egg-info/PKG-INFO
No Vulnerabilities Found
|
|



Describe your changes:
Fixes https://github.com/open-metadata/openmetadata-collate/issues/3049
Type of change:
Checklist:
Fixes <issue-number>: <short explanation>Summary by Gitar
entityStatusfield to all 10 service entities (API, Dashboard, Database, Messaging, Metadata, MLModel, Pipeline, Search, Storage) and domain entities for lifecycle governance and approval workflowsEntityStatusenumtest_entityStatus()inBaseEntityITcovering all status transitions, persistence, and version increments with graceful fallback for unsupported entitiesThis will update automatically on new commits.