diff --git a/CHANGELOG.md b/CHANGELOG.md index f99328b247..77aab7e5e2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## (Unreleased) **BREAKING CHANGES** +* Users with custom templates should update their `template_schema.json` to set `uiSchema.overview` widget to `textarea` to ensure a consistent UI experience as per ([#4860](https://github.com/microsoft/AzureTRE/pull/4860)). * Remove Windows 10 and dsvm image support from Guacamole. ([#4890](https://github.com/microsoft/AzureTRE/issues/4890)) ENHANCEMENTS: @@ -8,6 +9,9 @@ ENHANCEMENTS: * Pin all GitHub Actions workflow steps to full commit SHAs to prevent supply chain attacks plus update to latest releases ([#4886](https://github.com/microsoft/AzureTRE/pull/4886)) * Add Windows Server 2025 image support to Guacamole. ([#4890](https://github.com/microsoft/AzureTRE/issues/4890)) +BUG FIXES: +* Fix uiSchema.overview params overwritten by ui ([#4861](https://github.com/microsoft/AzureTRE/issues/4861)) + ## (0.28.0) (March 2, 2026) **BREAKING CHANGES** * Sonatype Nexus shared service now requires explicit EULA acceptance (`accept_nexus_eula: true`) when deploying. This ensures compliance with Sonatype Nexus Community Edition licensing. ([#4842](https://github.com/microsoft/AzureTRE/issues/4842)) diff --git a/templates/shared_services/admin-vm/porter.yaml b/templates/shared_services/admin-vm/porter.yaml index 9cbdf3eaa0..63353d5bc5 100644 --- a/templates/shared_services/admin-vm/porter.yaml +++ b/templates/shared_services/admin-vm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-shared-service-admin-vm -version: 0.5.4 +version: 0.5.5 description: "An admin vm shared service" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/shared_services/admin-vm/template_schema.json b/templates/shared_services/admin-vm/template_schema.json index e0f08f17fd..0f1448e0d3 100644 --- a/templates/shared_services/admin-vm/template_schema.json +++ b/templates/shared_services/admin-vm/template_schema.json @@ -29,5 +29,10 @@ "title": "VM SKU", "description": "The SKU of the VM that will be deployed." } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/shared_services/airlock_notifier/porter.yaml b/templates/shared_services/airlock_notifier/porter.yaml index 700821b6cd..9a60dba981 100644 --- a/templates/shared_services/airlock_notifier/porter.yaml +++ b/templates/shared_services/airlock_notifier/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-shared-service-airlock-notifier -version: 1.0.10 +version: 1.0.11 description: "A shared service notifying on Airlock Operations" registry: azuretre dockerfile: Dockerfile.tmpl diff --git a/templates/shared_services/airlock_notifier/template_schema.json b/templates/shared_services/airlock_notifier/template_schema.json index fb22366da2..4f00585f9c 100644 --- a/templates/shared_services/airlock_notifier/template_schema.json +++ b/templates/shared_services/airlock_notifier/template_schema.json @@ -93,6 +93,9 @@ ] }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "smtpPassword" : { "ui:widget": "password" }, diff --git a/templates/shared_services/certs/template_schema.json b/templates/shared_services/certs/template_schema.json index 4b3f69a5b8..d52a40f4cb 100644 --- a/templates/shared_services/certs/template_schema.json +++ b/templates/shared_services/certs/template_schema.json @@ -152,5 +152,10 @@ ] } ] + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/shared_services/cyclecloud/template_schema.json b/templates/shared_services/cyclecloud/template_schema.json index 8a5031a514..a524497381 100644 --- a/templates/shared_services/cyclecloud/template_schema.json +++ b/templates/shared_services/cyclecloud/template_schema.json @@ -28,6 +28,11 @@ "updateable": true } }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } + }, "pipeline": { "install": [ { diff --git a/templates/shared_services/databricks-auth/template_schema.json b/templates/shared_services/databricks-auth/template_schema.json index 2d87fd841d..2a37d5bf61 100644 --- a/templates/shared_services/databricks-auth/template_schema.json +++ b/templates/shared_services/databricks-auth/template_schema.json @@ -27,5 +27,10 @@ "default": "Azure Databricks Private Authentication Shared Service is a Databricks workspace that in the same region as your Azure Databricks workspaces, and its only purpose is hosting the browser authentication private endpoint connection for your Azure Databricks workspace services.", "updateable": true } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/shared_services/firewall/porter.yaml b/templates/shared_services/firewall/porter.yaml index e8399e844b..45174e8ae1 100644 --- a/templates/shared_services/firewall/porter.yaml +++ b/templates/shared_services/firewall/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-shared-service-firewall -version: 1.6.1 +version: 1.6.2 description: "An Azure TRE Firewall shared service" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/shared_services/firewall/template_schema.json b/templates/shared_services/firewall/template_schema.json index 12ea9a40e3..8546e0126b 100644 --- a/templates/shared_services/firewall/template_schema.json +++ b/templates/shared_services/firewall/template_schema.json @@ -359,5 +359,10 @@ } } } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/shared_services/gitea/template_schema.json b/templates/shared_services/gitea/template_schema.json index 463a6715f0..b5ecb9a3c9 100644 --- a/templates/shared_services/gitea/template_schema.json +++ b/templates/shared_services/gitea/template_schema.json @@ -49,6 +49,9 @@ } }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "is_exposed_externally": { "classNames": "tre-hidden" } diff --git a/templates/shared_services/sonatype-nexus-vm/porter.yaml b/templates/shared_services/sonatype-nexus-vm/porter.yaml index b4573514d6..b9e11dd85f 100644 --- a/templates/shared_services/sonatype-nexus-vm/porter.yaml +++ b/templates/shared_services/sonatype-nexus-vm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-shared-service-sonatype-nexus -version: 3.7.8 +version: 3.7.9 description: "A Sonatype Nexus shared service" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/shared_services/sonatype-nexus-vm/template_schema.json b/templates/shared_services/sonatype-nexus-vm/template_schema.json index 8f490def9c..3a1536f942 100644 --- a/templates/shared_services/sonatype-nexus-vm/template_schema.json +++ b/templates/shared_services/sonatype-nexus-vm/template_schema.json @@ -64,6 +64,9 @@ } }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "ui:order": ["accept_nexus_eula", "display_name", "description", "overview", "ssl_cert_name", "vm_size", "*"], "accept_nexus_eula": { "ui:widget": "checkbox", diff --git a/templates/workspace_services/azureml/porter.yaml b/templates/workspace_services/azureml/porter.yaml index d6d4593ad4..723713cf35 100644 --- a/templates/workspace_services/azureml/porter.yaml +++ b/templates/workspace_services/azureml/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-azureml -version: 1.1.4 +version: 1.1.5 description: "An Azure TRE service for Azure Machine Learning" registry: azuretre dockerfile: Dockerfile.tmpl diff --git a/templates/workspace_services/azureml/template_schema.json b/templates/workspace_services/azureml/template_schema.json index c09cfc592b..752efb7d5d 100644 --- a/templates/workspace_services/azureml/template_schema.json +++ b/templates/workspace_services/azureml/template_schema.json @@ -59,6 +59,9 @@ } }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "address_space": { "classNames": "tre-hidden" }, diff --git a/templates/workspace_services/azureml/user_resources/aml_compute/porter.yaml b/templates/workspace_services/azureml/user_resources/aml_compute/porter.yaml index 34d3ee7844..b3c529c996 100644 --- a/templates/workspace_services/azureml/user_resources/aml_compute/porter.yaml +++ b/templates/workspace_services/azureml/user_resources/aml_compute/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-user-resource-aml-compute-instance -version: 0.5.12 +version: 0.5.13 description: "Azure Machine Learning Compute Instance" registry: azuretre dockerfile: Dockerfile.tmpl diff --git a/templates/workspace_services/azureml/user_resources/aml_compute/template_schema.json b/templates/workspace_services/azureml/user_resources/aml_compute/template_schema.json index 044dfa5ee1..3e1c16df2a 100644 --- a/templates/workspace_services/azureml/user_resources/aml_compute/template_schema.json +++ b/templates/workspace_services/azureml/user_resources/aml_compute/template_schema.json @@ -46,5 +46,10 @@ "default": "", "minLength": 1 } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspace_services/azuresql/template_schema.json b/templates/workspace_services/azuresql/template_schema.json index 2e80406307..f9edb3c4c5 100644 --- a/templates/workspace_services/azuresql/template_schema.json +++ b/templates/workspace_services/azuresql/template_schema.json @@ -35,5 +35,10 @@ "description": "Database name", "default": "tredb" } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspace_services/databricks/porter.yaml b/templates/workspace_services/databricks/porter.yaml index abfdd18a83..4e913a4e09 100644 --- a/templates/workspace_services/databricks/porter.yaml +++ b/templates/workspace_services/databricks/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-databricks -version: 1.0.16 +version: 1.0.17 description: "An Azure TRE service for Azure Databricks." registry: azuretre dockerfile: Dockerfile.tmpl diff --git a/templates/workspace_services/databricks/template_schema.json b/templates/workspace_services/databricks/template_schema.json index 1e43ba0395..90209899c0 100644 --- a/templates/workspace_services/databricks/template_schema.json +++ b/templates/workspace_services/databricks/template_schema.json @@ -42,6 +42,9 @@ } }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "address_space": { "classNames": "tre-hidden" } diff --git a/templates/workspace_services/gitea/template_schema.json b/templates/workspace_services/gitea/template_schema.json index ef53192e76..ca6a4d5088 100644 --- a/templates/workspace_services/gitea/template_schema.json +++ b/templates/workspace_services/gitea/template_schema.json @@ -50,6 +50,9 @@ } }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "is_exposed_externally": { "classNames": "tre-hidden" } diff --git a/templates/workspace_services/guacamole/template_schema.json b/templates/workspace_services/guacamole/template_schema.json index 4bf0f7b2d1..2b621cd9e5 100644 --- a/templates/workspace_services/guacamole/template_schema.json +++ b/templates/workspace_services/guacamole/template_schema.json @@ -232,5 +232,8 @@ ] }, "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/template_schema.json index 598e60d969..c2563ac861 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-export-reviewvm/template_schema.json @@ -37,5 +37,9 @@ "updateable": false, "sensitive": true } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" } } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/template_schema.json index 3249282d97..9eaa91295d 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-import-reviewvm/template_schema.json @@ -37,5 +37,10 @@ "updateable": false, "sensitive": true } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml index 186da0d571..f95113432c 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-linuxvm -version: 1.4.3 +version: 1.4.4 description: "An Azure TRE User Resource Template for Guacamole (Linux)" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json index c2c2ffc668..0eeff5abad 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json @@ -249,6 +249,9 @@ } ], "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "admin_username": { "classNames": "tre-hidden" } diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/porter.yaml b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/porter.yaml index 6871fe4c99..951bf9b592 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/porter.yaml +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-service-guacamole-windowsvm -version: 1.4.5 +version: 1.4.6 description: "An Azure TRE User Resource Template for Guacamole (Windows 11 or Windows Server Data Science VM)" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/template_schema.json b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/template_schema.json index afe58231a9..71273819c5 100644 --- a/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/template_schema.json +++ b/templates/workspace_services/guacamole/user_resources/guacamole-azure-windowsvm/template_schema.json @@ -248,6 +248,9 @@ } ], "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "admin_username": { "classNames": "tre-hidden" } diff --git a/templates/workspace_services/health-services/porter.yaml b/templates/workspace_services/health-services/porter.yaml index d7dd92c469..c59b50f62d 100644 --- a/templates/workspace_services/health-services/porter.yaml +++ b/templates/workspace_services/health-services/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-workspace-service-health -version: 0.3.5 +version: 0.3.6 description: "An Azure Data Health Services workspace service" registry: azuretre dockerfile: Dockerfile.tmpl diff --git a/templates/workspace_services/health-services/template_schema.json b/templates/workspace_services/health-services/template_schema.json index 98e5061de0..9046d38980 100644 --- a/templates/workspace_services/health-services/template_schema.json +++ b/templates/workspace_services/health-services/template_schema.json @@ -250,5 +250,10 @@ "stepId": "main" } ] + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspace_services/mysql/template_schema.json b/templates/workspace_services/mysql/template_schema.json index fd2b690395..f0dc904868 100644 --- a/templates/workspace_services/mysql/template_schema.json +++ b/templates/workspace_services/mysql/template_schema.json @@ -35,5 +35,10 @@ "description": "Database name", "default": "tredb" } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspace_services/ohdsi/porter.yaml b/templates/workspace_services/ohdsi/porter.yaml index ca5e7ef556..7c9aa6caae 100644 --- a/templates/workspace_services/ohdsi/porter.yaml +++ b/templates/workspace_services/ohdsi/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-workspace-service-ohdsi -version: 0.3.7 +version: 0.3.8 description: "An OHDSI workspace service" registry: azuretre dockerfile: Dockerfile.tmpl diff --git a/templates/workspace_services/ohdsi/template_schema.json b/templates/workspace_services/ohdsi/template_schema.json index 1fa56948ba..9241d28857 100644 --- a/templates/workspace_services/ohdsi/template_schema.json +++ b/templates/workspace_services/ohdsi/template_schema.json @@ -142,6 +142,9 @@ } ], "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "address_space": { "classNames": "tre-hidden" } diff --git a/templates/workspace_services/openai/template_schema.json b/templates/workspace_services/openai/template_schema.json index da2cf39f92..93147978e4 100644 --- a/templates/workspace_services/openai/template_schema.json +++ b/templates/workspace_services/openai/template_schema.json @@ -52,5 +52,10 @@ "default": "gpt-35-turbo | 0301", "updateable": true } + }, + "uiSchema": { + "overview": { + "ui:widget": "textarea" + } } } diff --git a/templates/workspaces/airlock-import-review/porter.yaml b/templates/workspaces/airlock-import-review/porter.yaml index 25fd654f57..a5dbd6ed39 100644 --- a/templates/workspaces/airlock-import-review/porter.yaml +++ b/templates/workspaces/airlock-import-review/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-workspace-airlock-import-review -version: 0.14.9 +version: 0.14.10 description: "A workspace to do Airlock Data Import Reviews for Azure TRE" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/workspaces/airlock-import-review/template_schema.json b/templates/workspaces/airlock-import-review/template_schema.json index 09d7d6be87..fd8c9fbcf3 100644 --- a/templates/workspaces/airlock-import-review/template_schema.json +++ b/templates/workspaces/airlock-import-review/template_schema.json @@ -161,6 +161,9 @@ "customActions": [], "pipeline": null, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "aad_redirect_uris": { "classNames": "tre-hidden" }, diff --git a/templates/workspaces/base/porter.yaml b/templates/workspaces/base/porter.yaml index 368df54022..22cb6cdfc3 100644 --- a/templates/workspaces/base/porter.yaml +++ b/templates/workspaces/base/porter.yaml @@ -1,7 +1,7 @@ --- schemaVersion: 1.0.0 name: tre-workspace-base -version: 2.8.3 +version: 2.8.4 description: "A base Azure TRE workspace" dockerfile: Dockerfile.tmpl registry: azuretre diff --git a/templates/workspaces/base/template_schema.json b/templates/workspaces/base/template_schema.json index c69024b8e8..dfde6bd199 100644 --- a/templates/workspaces/base/template_schema.json +++ b/templates/workspaces/base/template_schema.json @@ -331,6 +331,9 @@ "customActions": [], "pipeline": null, "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "aad_redirect_uris": { "classNames": "tre-hidden" }, diff --git a/templates/workspaces/unrestricted/template_schema.json b/templates/workspaces/unrestricted/template_schema.json index cea34ab8f4..75bc5f30f9 100644 --- a/templates/workspaces/unrestricted/template_schema.json +++ b/templates/workspaces/unrestricted/template_schema.json @@ -213,6 +213,9 @@ "actions": [], "customActions": [], "uiSchema": { + "overview": { + "ui:widget": "textarea" + }, "aad_redirect_uris": { "classNames": "tre-hidden" }, diff --git a/ui/app/package-lock.json b/ui/app/package-lock.json index 045da52b2a..080a1dab15 100644 --- a/ui/app/package-lock.json +++ b/ui/app/package-lock.json @@ -1,12 +1,12 @@ { "name": "tre-ui", - "version": "0.8.25", + "version": "0.8.27", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tre-ui", - "version": "0.8.25", + "version": "0.8.27", "dependencies": { "@azure/msal-browser": "^2.35.0", "@azure/msal-react": "^1.5.12", diff --git a/ui/app/package.json b/ui/app/package.json index 8f6aa8f146..c35ded1eb3 100644 --- a/ui/app/package.json +++ b/ui/app/package.json @@ -1,6 +1,6 @@ { "name": "tre-ui", - "version": "0.8.26", + "version": "0.8.27", "private": true, "type": "module", "dependencies": { diff --git a/ui/app/src/components/shared/create-update-resource/ResourceForm.tsx b/ui/app/src/components/shared/create-update-resource/ResourceForm.tsx index 85f68337e3..ea9cb8a058 100644 --- a/ui/app/src/components/shared/create-update-resource/ResourceForm.tsx +++ b/ui/app/src/components/shared/create-update-resource/ResourceForm.tsx @@ -142,8 +142,10 @@ export const ResourceForm: React.FunctionComponent = ( }; // use the supplied uiSchema or create a blank one, and set the overview field to textarea manually. + // TODO: remove this in future when all templates have been updated to specify this in their uiSchema (since v0.28.0) const uiSchema = (template && template.uiSchema) || {}; uiSchema.overview = { + ...uiSchema.overview, "ui:widget": "textarea", };