From 60f9dff11956d8e4a23e40bb07efc6e212fada8a Mon Sep 17 00:00:00 2001 From: Uladzislau Vishneuski Date: Wed, 8 Jan 2025 19:19:49 +0100 Subject: [PATCH 1/2] feat: add viewer url to custom app schemas --- .../com/epam/aidial/core/metaschemas/MetaSchemaHolder.java | 1 + config/src/main/resources/custom-application-schemas/schema | 5 +++++ .../aidial/core/server/ApplicationTypeSchemaApiTest.java | 1 + server/src/test/resources/aidial.config.json | 1 + 4 files changed, 8 insertions(+) diff --git a/config/src/main/java/com/epam/aidial/core/metaschemas/MetaSchemaHolder.java b/config/src/main/java/com/epam/aidial/core/metaschemas/MetaSchemaHolder.java index 7f9e8211..ab30dc74 100644 --- a/config/src/main/java/com/epam/aidial/core/metaschemas/MetaSchemaHolder.java +++ b/config/src/main/java/com/epam/aidial/core/metaschemas/MetaSchemaHolder.java @@ -25,6 +25,7 @@ public static String getCustomApplicationMetaSchema() { public static JsonMetaSchema.Builder getMetaschemaBuilder() { return JsonMetaSchema.builder(MetaSchemaHolder.CUSTOM_APPLICATION_META_SCHEMA_ID, JsonMetaSchema.getV7()) .keyword(new NonValidationKeyword("dial:applicationTypeEditorUrl")) + .keyword(new NonValidationKeyword("dial:applicationTypeViewerUrl")) .keyword(new NonValidationKeyword("dial:applicationTypeDisplayName")) .keyword(new NonValidationKeyword("dial:applicationTypeCompletionEndpoint")) .keyword(new NonValidationKeyword("dial:propertyKind")) diff --git a/config/src/main/resources/custom-application-schemas/schema b/config/src/main/resources/custom-application-schemas/schema index 5431e273..2119ad6c 100644 --- a/config/src/main/resources/custom-application-schemas/schema +++ b/config/src/main/resources/custom-application-schemas/schema @@ -18,6 +18,11 @@ "format": "uri", "description": "URL to the editor UI of the custom application of given type" }, + "dial:applicationTypeViewerUrl": { + "type": "string", + "format": "uri", + "description": "URL to the view UI of the custom application of given type" + }, "dial:applicationTypeCompletionEndpoint": { "type": "string", "format": "uri", diff --git a/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java b/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java index a3b543a9..5e9e44d1 100644 --- a/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java +++ b/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java @@ -53,6 +53,7 @@ void testApplicationTypeSchemaSchema_ok() { Assertions.assertTrue(node.isObject()); Assertions.assertTrue(node.has("$id")); Assertions.assertTrue(node.has("$schema")); + Assertions.assertTrue(node.has("dial:applicationTypeViewerUrl")); } } diff --git a/server/src/test/resources/aidial.config.json b/server/src/test/resources/aidial.config.json index 0fba1d0b..05c6ece9 100644 --- a/server/src/test/resources/aidial.config.json +++ b/server/src/test/resources/aidial.config.json @@ -173,6 +173,7 @@ "$schema": "https://dial.epam.com/application_type_schemas/schema#", "$id": "https://mydial.somewhere.com/custom_application_schemas/specific_application_type", "dial:applicationTypeEditorUrl": "https://mydial.somewhere.com/custom_application_schemas/schema", + "dial:applicationTypeViewerUrl": "https://mydial.somewhere.com/custom_application_schemas/viewer", "dial:applicationTypeDisplayName": "Specific Application Type", "dial:applicationTypeCompletionEndpoint": "http://specific_application_service/opeani/v1/completion", "properties": { From 704bc019b7edfa927594b94cd83399755525cd66 Mon Sep 17 00:00:00 2001 From: Uladzislau Vishneuski Date: Thu, 9 Jan 2025 15:10:38 +0100 Subject: [PATCH 2/2] feat: add applicationTypeViewerUrl to listing --- .../server/controller/ApplicationTypeSchemaController.java | 6 ++++++ .../aidial/core/server/ApplicationTypeSchemaApiTest.java | 1 + 2 files changed, 7 insertions(+) diff --git a/server/src/main/java/com/epam/aidial/core/server/controller/ApplicationTypeSchemaController.java b/server/src/main/java/com/epam/aidial/core/server/controller/ApplicationTypeSchemaController.java index 83bdbe36..553564dc 100644 --- a/server/src/main/java/com/epam/aidial/core/server/controller/ApplicationTypeSchemaController.java +++ b/server/src/main/java/com/epam/aidial/core/server/controller/ApplicationTypeSchemaController.java @@ -26,6 +26,7 @@ public class ApplicationTypeSchemaController { private static final String ID_FIELD = "$id"; private static final String ID_PARAM = "id"; private static final String EDITOR_URL_FIELD = "dial:applicationTypeEditorUrl"; + private static final String VIEWER_URL_FIELD = "dial:applicationTypeViewerUrl"; private static final String DISPLAY_NAME_FIELD = "dial:applicationTypeDisplayName"; private static final String COMPLETION_ENDPOINT_FIELD = "dial:applicationTypeCompletionEndpoint"; @@ -90,6 +91,11 @@ private List listSchemas() throws JsonProcessingException { filteredNode.set(ID_FIELD, schemaNode.get(ID_FIELD)); filteredNode.set(EDITOR_URL_FIELD, schemaNode.get(EDITOR_URL_FIELD)); filteredNode.set(DISPLAY_NAME_FIELD, schemaNode.get(DISPLAY_NAME_FIELD)); + + if (schemaNode.has(VIEWER_URL_FIELD)) { + filteredNode.set(VIEWER_URL_FIELD, schemaNode.get(VIEWER_URL_FIELD)); + } + filteredSchemas.add(filteredNode); } } diff --git a/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java b/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java index 5e9e44d1..09fdb45c 100644 --- a/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java +++ b/server/src/test/java/com/epam/aidial/core/server/ApplicationTypeSchemaApiTest.java @@ -25,6 +25,7 @@ void testApplicationTypeSchemaList_ok() { Assertions.assertTrue(node.has("$id")); Assertions.assertTrue(node.has("dial:applicationTypeEditorUrl")); Assertions.assertTrue(node.has("dial:applicationTypeDisplayName")); + Assertions.assertTrue(node.has("dial:applicationTypeViewerUrl")); }); }