Skip to content
Open
Show file tree
Hide file tree
Changes from 28 commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
8e08c77
revert deleted changelog entries
Jul 27, 2026
bf023b5
add missing issue number
Jul 27, 2026
ac42fb8
Update changelog to reflect dependency updates addressing high-severi…
Jul 27, 2026
2db7d18
Update changelog to reflect dependency updates addressing security al…
Jul 27, 2026
47b6a8b
Update changelog to reflect enhancements in UI code formatting and su…
Jul 27, 2026
033e551
changelog
Jul 27, 2026
bcdd26f
Update JSON Schema version to Draft 2020-12 across multiple templates…
Jul 27, 2026
fdcd389
Merge branch 'fix-changelog' into json-schema
Jul 27, 2026
7a1e6f3
changelog
Jul 27, 2026
6c22dc4
linting
Jul 27, 2026
e352b52
Apply suggestions from code review
JC-wk Jul 27, 2026
3e771c9
docs
Jul 27, 2026
bdbccaa
improve wording
Jul 27, 2026
44263d2
Potential fix for pull request finding
JC-wk Jul 27, 2026
aab3d68
remove $id's which are invalid and unnecessary
Jul 27, 2026
e340e9d
add docs on $id
Jul 27, 2026
d6197df
update doc fromatting
Jul 27, 2026
97f297e
lint
Jul 27, 2026
f429875
Potential fix for pull request finding
JC-wk Jul 27, 2026
e4b5e65
Merge branch 'main' into json-schema
JC-wk Jul 27, 2026
8ff0e85
Merge branch 'main' into json-schema
JC-wk Jul 30, 2026
fe0c3df
Bump version to 0.26.1
Jul 30, 2026
907e529
update docs
Jul 30, 2026
448e9aa
fix schema in docs
Jul 30, 2026
137dd58
Merge branch 'main' into json-schema
JC-wk Jul 31, 2026
9865790
copilot feedback
Jul 31, 2026
a1a267a
Merge branch 'main' into json-schema
Aug 10, 2026
acfe17e
bump versions
Aug 10, 2026
467cda6
Merge branch 'main' into json-schema
JC-wk Aug 17, 2026
064007f
Enhance CHANGELOG with JSON Schema update
JC-wk Aug 17, 2026
3b6babe
Bump Porter template versions
Aug 21, 2026
b11922e
Clarify that only a subset of JSON schema is supported not the full t…
Aug 24, 2026
640575a
fix tests
Aug 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ BUG FIXES:
* Replace deprecated yaspell with codespell and add pre-commit hook installer to devcontainer. ([#4953](https://github.com/microsoft/AzureTRE/issues/4953))
* Fix Guacamole Windows VM image selections by aligning schema enums/defaults with supported image options in Windows and review VM templates. ([#4963](https://github.com/microsoft/AzureTRE/issues/4963))
* Remove deprecated `soft_delete_enabled` setting from `azurerm_recovery_services_vault` in base workspace template. ([#4967](https://github.com/microsoft/AzureTRE/issues/4967))
* Update JSON Schema version to Draft 2020-12 ([#5005](https://github.com/microsoft/AzureTRE/pull/5005))
* Pin MKDocs to v1 to prevent incompatible upgrade. ([#5009](https://github.com/microsoft/AzureTRE/issues/5009))

## (0.28.0) (March 2, 2026)
Expand Down
2 changes: 1 addition & 1 deletion api_app/_version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = "0.26.3"
__version__ = "0.26.4"
2 changes: 1 addition & 1 deletion api_app/models/schemas/shared_service_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class SharedServiceTemplateInCreate(ResourceTemplateInCreate):
"version": "0.0.1",
"current": True,
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/shared_services/myshared_service/shared_service.json",
"type": "object",
"title": "My Shared Service Template",
Expand Down
2 changes: 1 addition & 1 deletion api_app/models/schemas/user_resource_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class UserResourceTemplateInCreate(ResourceTemplateInCreate):
"version": "0.0.1",
"current": True,
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/user_resource.json",
"type": "object",
"title": "My User Resource Template",
Expand Down
2 changes: 1 addition & 1 deletion api_app/models/schemas/workspace_service_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class WorkspaceServiceTemplateInCreate(ResourceTemplateInCreate):
"version": "0.0.1",
"current": True,
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace_service.json",
"type": "object",
"title": "My Workspace Service Template",
Expand Down
2 changes: 1 addition & 1 deletion api_app/models/schemas/workspace_template.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class WorkspaceTemplateInCreate(ResourceTemplateInCreate):
"version": "0.0.1",
"current": True,
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace.json",
"type": "object",
"title": "My Workspace Template",
Expand Down
2 changes: 1 addition & 1 deletion api_app/schemas/azuread.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/schema/azuread.json",
"type": "object",
"title": "Azure AD Authorisation Schema",
Expand Down
2 changes: 1 addition & 1 deletion api_app/schemas/shared_service.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/schema/shared_service.json",
"type": "object",
"title": "Shared Service Default Parameters",
Expand Down
2 changes: 1 addition & 1 deletion api_app/schemas/user_resource.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/schema/user_resource.json",
"type": "object",
"title": "User Resource Default Parameters",
Expand Down
2 changes: 1 addition & 1 deletion api_app/schemas/workspace.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/schema/workspace.json",
"type": "object",
"title": "Workspace Default Parameters",
Expand Down
2 changes: 1 addition & 1 deletion api_app/schemas/workspace_service.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/schema/workspace_service.json",
"type": "object",
"title": "Workspace Service Default Parameters",
Expand Down
10 changes: 5 additions & 5 deletions api_app/tests_ma/conftest.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ def input_workspace_template():
version="0.0.1",
current=True,
json_schema={
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace.json",
"type": "object",
"title": "My Workspace Template",
Expand Down Expand Up @@ -101,7 +101,7 @@ def input_workspace_service_template():
version="0.0.1",
current=True,
json_schema={
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace_service.json",
"type": "object",
"title": "My Workspace Service Template",
Expand All @@ -122,11 +122,11 @@ def input_user_resource_template():
version="0.0.1",
current=True,
json_schema={
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/user_resource.json",
"type": "object",
"title": "My User Resource Template",
"description": "These is a test user resource template schema",
"description": "This is a test user resource template schema",
"required": [],
"properties": {},
},
Expand All @@ -143,7 +143,7 @@ def input_shared_service_template():
version="0.0.1",
current=True,
json_schema={
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/shared_services/mysharedservice/shared_service.json",
"type": "object",
"title": "My Shared Service Template",
Expand Down
8 changes: 3 additions & 5 deletions api_http_requests/API Template Modifying Endpoints.http
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Content-Type: {{contentType}}
"version": "0.0.3",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace.json",
"type": "object",
"title": "My Workspace Template",
Expand All @@ -21,7 +21,6 @@ Content-Type: {{contentType}}
],
"properties": {
"vm_size": {
"$id": "#/properties/vm_size",
"type": "string",
"title": "VM size",
"description": "Size of the VMs in my workspace",
Expand All @@ -33,7 +32,6 @@ Content-Type: {{contentType}}
]
},
"no_of_vms": {
"$id": "#/properties/no_of_vms",
"type": "integer",
"title": "Number of VMs",
"description": "Number of virtual machines to be deployed in the workspace",
Expand All @@ -55,7 +53,7 @@ Content-Type: {{contentType}}
"version": "0.0.1",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace_service.json",
"type": "object",
"title": "My Workspace Service Template",
Expand All @@ -77,7 +75,7 @@ Content-Type: {{contentType}}
"version": "0.0.1",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/user_resource.json",
"type": "object",
"title": "My User Resource Template",
Expand Down
8 changes: 3 additions & 5 deletions api_http_requests/API User Journey.http
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ Content-Type: {{contentType}}
"version": "0.0.3",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace.json",
"type": "object",
"title": "My Workspace Template",
Expand All @@ -23,7 +23,6 @@ Content-Type: {{contentType}}
],
"properties": {
"vm_size": {
"$id": "#/properties/vm_size",
"type": "string",
"title": "VM size",
"description": "Size of the VMs in my workspace",
Expand All @@ -35,7 +34,6 @@ Content-Type: {{contentType}}
]
},
"no_of_vms": {
"$id": "#/properties/no_of_vms",
"type": "integer",
"title": "Number of VMs",
"description": "Number of virtual machines to be deployed in the workspace",
Expand All @@ -57,7 +55,7 @@ Content-Type: {{contentType}}
"version": "0.0.1",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace_service.json",
"type": "object",
"title": "My Workspace Service Template",
Expand All @@ -79,7 +77,7 @@ Content-Type: {{contentType}}
"version": "0.0.1",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/user_resource.json",
"type": "object",
"title": "My User Resource Template",
Expand Down
6 changes: 3 additions & 3 deletions docs/schemas/operation.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
Expand Down Expand Up @@ -32,7 +32,7 @@
"format": "uuid"
},
"resourceVersion": {
"type": "string",
"type": "integer",
"description": "Resource version."
},
"createdAt": {
Expand Down Expand Up @@ -73,7 +73,7 @@
"type": "string",
"description": "Event timestamp."
},
"description": {
"message": {
"type": "string",
"description": "Event message."
},
Expand Down
4 changes: 2 additions & 2 deletions docs/schemas/resource-assignment.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
Expand All @@ -11,7 +11,7 @@
"description": "User id.",
"format": "uuid"
},
"ResourceId": {
"resourceId": {
"type": "string",
"description": "Resource id.",
"format": "uuid"
Expand Down
6 changes: 3 additions & 3 deletions docs/schemas/resource.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "https://json-schema.org/draft/2019-09/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
Expand All @@ -16,8 +16,8 @@
"type": "string",
"description": "Resource specification version."
},
"ResourceVersion": {
"type": "string",
"resourceVersion": {
"type": "integer",
"description": "Resource version."
},
"title": {
Expand Down
2 changes: 1 addition & 1 deletion docs/tre-templates/pipeline-templates/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Consider the following `template_schema.json`:

```json
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/user_resources/guacamole-dev-vm/template_schema.json",
...
"properties": {...},
Expand Down
19 changes: 18 additions & 1 deletion docs/tre-workspace-authors/authoring-workspace-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,24 @@ Similarly to `tre_id`, `workspace_id` is used in the resource names of the works

All the values for the required parameters will be provided by the deployment runner.

Any **custom parameters** are picked up by Azure TRE API and will be queried from the user deploying the workspace bundle. Custom parameters should also be defined in the `template_schema.json` file at the root of the bundle. This file follows the [JSON schema standard](http://json-schema.org/) and can be used by a user interface to generate a UI for the user to input the parameters.
Any **custom parameters** are picked up by Azure TRE API and will be queried from the user deploying the workspace bundle. Custom parameters should also be defined in the `template_schema.json` file at the root of the bundle.
This file follows the [JSON schema standard](https://json-schema.org/) Draft 2020-12 (`https://json-schema.org/draft/2020-12/schema`) and can be used by a user interface to generate a UI for the user to input the parameters.

### JSON Schema Version Standard

Azure TRE template schemas (`template_schema.json`) use the **JSON Schema Draft 2020-12** specification:

```json
{
"$schema": "https://json-schema.org/draft/2020-12/schema"
}
```
Comment thread
JC-wk marked this conversation as resolved.

Draft 2020-12 is supported by the API schema validation engine and is the recommended JSON Schema version for Azure TRE templates.
Comment thread
JC-wk marked this conversation as resolved.
Outdated

!!! note
**`$id` is not required on individual properties or subschemas.** Properties defined under "properties" are natively addressable by standard JSON Pointer (e.g. `#/properties/property_name`).
* In JSON Schema Draft 2020-12, `$id` is used for establishing the base URI of schema resources (e.g. at the root schema level). Placing `$id` on individual properties or subschemas is generally unnecessary and can alter reference resolution context. If custom plain-name anchors are needed within a subschema, use `$anchor` instead.

### Template properties

Expand Down
2 changes: 1 addition & 1 deletion e2e_tests/test.http
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Content-type: application/json
"version": "0.0.1",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace_service.json",
"type": "object",
"title": "DONOTUSE - E2E workspace service",
Expand Down
2 changes: 1 addition & 1 deletion e2e_tests/test_workspace_service_templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ async def test_create_workspace_service_templates(verify) -> None:
"version": "0.0.1",
"current": "true",
"json_schema": {
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspaces/myworkspace/workspace_service.json",
"type": "object",
"title": "DONOTUSE",
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/admin-vm/porter.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
schemaVersion: 1.0.0
name: tre-shared-service-admin-vm
version: 0.5.5
version: 0.5.6
description: "An admin vm shared service"
dockerfile: Dockerfile.tmpl
registry: azuretre
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/admin-vm/template_schema.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/shared_services/admin-vm/template_schema.json",
"type": "object",
"title": "Admin VM Shared Service",
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/airlock_notifier/porter.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
schemaVersion: 1.0.0
name: tre-shared-service-airlock-notifier
version: 1.0.11
version: 1.0.12
description: "A shared service notifying on Airlock Operations"
registry: azuretre
dockerfile: Dockerfile.tmpl
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/shared_services/airlock_notifier/template_schema.json",
"type": "object",
"title": "Airlock Notifier Shared Service",
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/certs/porter.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
schemaVersion: 1.0.0
name: tre-shared-service-certs
version: 0.7.11
version: 0.7.12
description: "An Azure TRE shared service to generate certificates for a specified internal domain using Letsencrypt"
registry: azuretre
dockerfile: Dockerfile.tmpl
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/certs/template_schema.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/shared_services/certs/template_schema.json",
"type": "object",
"title": "Certificate Service",
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/cyclecloud/porter.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
schemaVersion: 1.0.0
name: tre-shared-service-cyclecloud
version: 0.7.5
version: 0.7.6
description: "An Azure TRE Shared Service Template for Azure Cyclecloud"
registry: azuretre
dockerfile: Dockerfile.tmpl
Expand Down
4 changes: 2 additions & 2 deletions templates/shared_services/cyclecloud/template_schema.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/workspace_services/guacamole/user_resources/guacamole-azure-linuxvm/template_schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://github.com/microsoft/AzureTRE/templates/shared_services/cyclecloud/template_schema.json",
"type": "object",
"title": "Azure CycleCloud",
"description": "Azure CycleCloud is an enterprise-friendly tool for orchestrating and managing High Performance Computing (HPC) environments on Azure.",
Expand Down
2 changes: 1 addition & 1 deletion templates/shared_services/databricks-auth/porter.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
schemaVersion: 1.0.0
name: tre-shared-service-databricks-private-auth
version: 0.1.14
version: 0.1.15
description: "An Azure TRE shared service for Azure Databricks authentication."
registry: azuretre
dockerfile: Dockerfile.tmpl
Expand Down
Loading
Loading