From 40a23f1b950d5a5dc2cb7c7965f7239ec1508e02 Mon Sep 17 00:00:00 2001 From: Mohit Yadav <105265192+mohityadav766@users.noreply.github.com> Date: Tue, 29 Apr 2025 11:31:31 +0530 Subject: [PATCH] Fixes #20920 (#21009) --- .../bundles/insights/DataInsightsApp.java | 2 +- .../bundles/searchIndex/SearchIndexApp.java | 1 + .../internal/dataInsightsAppConfig.json | 6 ++-- .../json/schema/system/eventPublisherJob.json | 31 +++++++++++-------- .../src/generated/system/eventPublisherJob.ts | 8 +++-- 5 files changed, 29 insertions(+), 19 deletions(-) diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsApp.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsApp.java index 11effae38a4..6c7387b9e0c 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsApp.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/insights/DataInsightsApp.java @@ -216,7 +216,7 @@ public class DataInsightsApp extends AbstractNativeApplication { super.init(app); DataInsightsAppConfig config = JsonUtils.convertValue(app.getAppConfiguration(), DataInsightsAppConfig.class); - + JsonUtils.validateJsonSchema(config, DataInsightsAppConfig.class); // Get the configuration for the different modules costAnalysisConfig = config.getModuleConfiguration().getCostAnalysis(); dataAssetsConfig = parseDataAssetsConfig(config.getModuleConfiguration().getDataAssets()); diff --git a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/searchIndex/SearchIndexApp.java b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/searchIndex/SearchIndexApp.java index 3da591979b2..ceba6f4387f 100644 --- a/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/searchIndex/SearchIndexApp.java +++ b/openmetadata-service/src/main/java/org/openmetadata/service/apps/bundles/searchIndex/SearchIndexApp.java @@ -100,6 +100,7 @@ public class SearchIndexApp extends AbstractNativeApplication { EventPublisherJob request = JsonUtils.convertValue(app.getAppConfiguration(), EventPublisherJob.class) .withStats(new Stats()); + JsonUtils.validateJsonSchema(request, EventPublisherJob.class); if (request.getEntities().size() == 1 && request.getEntities().contains(ALL)) { SearchRepository searchRepo = Entity.getSearchRepo(); diff --git a/openmetadata-spec/src/main/resources/json/schema/entity/applications/configuration/internal/dataInsightsAppConfig.json b/openmetadata-spec/src/main/resources/json/schema/entity/applications/configuration/internal/dataInsightsAppConfig.json index cf4f499791f..1aa2174c0fd 100644 --- a/openmetadata-spec/src/main/resources/json/schema/entity/applications/configuration/internal/dataInsightsAppConfig.json +++ b/openmetadata-spec/src/main/resources/json/schema/entity/applications/configuration/internal/dataInsightsAppConfig.json @@ -56,7 +56,8 @@ "title": "Data Retention (Days)", "description": "Defines the number of days the Data Assets Insights information will be kept. After it they will be deleted.", "type": "integer", - "default": 7 + "default": 7, + "minimum": 0 }, "serviceFilter": { "type": "object", @@ -154,7 +155,8 @@ "batchSize": { "description": "Maximum number of events processed at a time (Default 100).", "type": "integer", - "default": 100 + "default": 100, + "minimum": 0 }, "recreateDataAssetsIndex": { "title": "Recreate DataInsights DataAssets Index", diff --git a/openmetadata-spec/src/main/resources/json/schema/system/eventPublisherJob.json b/openmetadata-spec/src/main/resources/json/schema/system/eventPublisherJob.json index b898fd6012f..c852ac00ec8 100644 --- a/openmetadata-spec/src/main/resources/json/schema/system/eventPublisherJob.json +++ b/openmetadata-spec/src/main/resources/json/schema/system/eventPublisherJob.json @@ -113,55 +113,64 @@ "batchSize": { "description": "Maximum number of events sent in a batch (Default 10).", "type": "integer", - "default": 100 + "default": 100, + "minimum": 1 }, "payLoadSize": { "description": "Payload size in bytes depending on config.", "type": "integer", "existingJavaType": "java.lang.Long", - "default": 104857600 + "default": 104857600, + "minimum": 1 }, "producerThreads": { "title": "Number of Producer Threads to use", "description": "Number of producer threads to use for reindexing", "type": "integer", - "default": 1 + "default": 1, + "minimum": 1 }, "consumerThreads": { "title": "Number of Consumer Threads to use", "description": "Number of consumer threads to use for reindexing", "type": "integer", - "default": 1 + "default": 1, + "minimum": 1 }, "queueSize": { "title": "Queue Size to use.", "description": "Queue Size to use internally for reindexing.", "type": "integer", - "default": 100 + "default": 100, + "minimum": 1 }, "maxConcurrentRequests": { "title": "Max Concurrent Requests", "description": "Maximum number of concurrent requests to the search index", "type": "integer", - "default": 100 + "default": 100, + "minimum": 1 }, "maxRetries": { "title": "Max Retries", "description": "Maximum number of retries for a failed request", "type": "integer", - "default": 5 + "default": 5, + "minimum": 0 }, "initialBackoff": { "title": "Initial Backoff Millis", "description": "Initial backoff time in milliseconds", "type": "integer", - "default": 1000 + "default": 1000, + "minimum": 0 }, "maxBackoff": { "title": "Max Backoff Millis", "description": "Maximum backoff time in milliseconds", "type": "integer", - "default": 10000 + "default": 10000, + "minimum": 0 }, "searchIndexMappingLanguage": { "description": "Recreate Indexes with updated Language", @@ -172,9 +181,5 @@ "type": "string" } }, - "required": [ - "timestamp", - "status" - ], "additionalProperties": false } \ No newline at end of file diff --git a/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts b/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts index bd5993a4231..4eafc865f27 100644 --- a/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts +++ b/openmetadata-ui/src/main/resources/ui/src/generated/system/eventPublisherJob.ts @@ -78,14 +78,15 @@ export interface EventPublisherJob { /** * This schema publisher run job status. */ - status: Status; - timestamp: number; + status?: Status; + timestamp?: number; } /** * Failure for the job * - * This schema defines Event Publisher Job Error Schema. + * This schema defines Event Publisher Job Error Schema. Additional properties exist for + * backward compatibility. Don't use it. */ export interface IndexingAppError { errorSource?: ErrorSource; @@ -97,6 +98,7 @@ export interface IndexingAppError { stackTrace?: string; submittedCount?: number; successCount?: number; + [property: string]: any; } export enum ErrorSource {