Releases: alan-turing-institute/data-safe-haven
Release list
Release 5.7.1 (2026-02-13)
Release Highlights
- It is now possible to upgrade from v5.6.0. See notes below.
- Using the config file, you can now specify the size of the OS disk of the TRE's workspaces.
- We now support the
--run-programoption during the deployment of TREs.
Upgrading from 5.6.0
For updating a TRE deployed with data-safe-heaven==5.6.0, please do the following:
- After installing
data-safe-haven==5.7.1, re-deploy your TRE usingdsh sre deploy your-v560-tre --run-program. - The previous command might fail. In any case, redeploy but with the
run-programoption disabled, by runningdsh sre deploy your-v560-tre. - During this process, you will hit a
SubnetInUsein use error. In that case, go to the Azure Portal and delete the container groupshm-<YOUR-SHM>-sre-<YOUR-V560-TRE>-container-group-dns. After that, launch the deployment again.
IMPORTANT: As part of this update, the OS disk of every workspace will be replaced. Every modification done outside dsh (for example, installing packages using dshadmin) will be lost.
What's Changed
- Use correct subscription with allowlists by @llewelld in #2534
- Updating version to v5.7.0 by @cptanalatriste in #2539
- Ensure resource names adhere to Azure rules by @cptanalatriste in #2540
- Explicitely define dependencies for the DNS Sidecar Component by @cptanalatriste in #2541
- Container groups depend on Log Analytics workspace by @cptanalatriste in #2542
- Bump the production-dependencies group with 11 updates by @dependabot[bot] in #2548
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2550
- Bump peter-evans/create-pull-request from 8.0.0 to 8.1.0 by @dependabot[bot] in #2547
- Adding support for OS disk size specification on TRE config file. by @cptanalatriste in #2546
- Bump the development-dependencies group with 9 updates by @dependabot[bot] in #2549
- Bump cryptography from 46.0.4 to 46.0.5 by @dependabot[bot] in #2556
- Bump lycheeverse/lychee-action from 2.4.1 to 2.7.0 by @dependabot[bot] in #2493
- Enabling updating TREs from v5.6.0 to v5.7.x by @cptanalatriste in #2552
Full Changelog: v5.7.0...v5.7.1
Release 5.7.0 (2026-01-21)
Release Highlights
- The TRE's DNS Server is now a virtual machine instead of a container instance. With this change, we won't experience issues due to the container changing its IP.
- The Nexus Repository database is now in PostgreSQL instead of H2, which is less prone to the data corruption issues reported before.
- The TRE's now support adding data disks to the workspaces' VMs. Data disks offer better read/write performance than NFS file shares, specially in programming tasks.
Upgrading from 5.6.0
Please do not attempt to update a v5.6.0 SRE to v5.7.0! Our experience is that you will be forced to manually delete multiple SRE resources, and even after that the SRE might end up in an inconsistent state. Our recommendation is to create a new v5.7.0 SRE from scratch, and transfer all the necessary elements from the legacy v5.6.0 (data ingressed, users registered, user files from home, gitea repositories, etc).
What's Changed
- ⬆️ Bump the production-dependencies group across 1 directory with 30 updates by @dependabot[bot] in #2484
- Merge v5.6.0 into Develop by @cptanalatriste in #2492
- Bump peter-evans/create-pull-request from 7.0.8 to 7.0.9 by @dependabot[bot] in #2503
- Bump actions/checkout from 5 to 6 by @dependabot[bot] in #2504
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2498
- Bump the production-dependencies group across 1 directory with 19 updates by @dependabot[bot] in #2506
- Bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #2495
- Bump stefanzweifel/git-auto-commit-action from 6.0.1 to 7.0.0 by @dependabot[bot] in #2494
- Bump the development-dependencies group across 1 directory with 10 updates by @dependabot[bot] in #2505
- Replacing the DNS Container Instance with a Virtual Machine by @cptanalatriste in #2500
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2517
- Bump stefanzweifel/git-auto-commit-action from 7.0.0 to 7.1.0 by @dependabot[bot] in #2512
- Bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #2513
- Bump peter-evans/create-pull-request from 7.0.9 to 8.0.0 by @dependabot[bot] in #2514
- Bump filelock from 3.20.0 to 3.20.1 in /.hatch by @dependabot[bot] in #2510
- Bump the development-dependencies group with 10 updates by @dependabot[bot] in #2516
- Bump the production-dependencies group with 7 updates by @dependabot[bot] in #2515
- Use PostgreSQL with Nexus instead of In-Memory H2 by @cptanalatriste in #2509
- Increasing the memory available to the DNS Server VM by @cptanalatriste in #2526
- Bump azure-core from 1.37.0 to 1.38.0 by @dependabot[bot] in #2531
- Add data disk support to workspaces by @cptanalatriste in #2532
Full Changelog: v5.6.0...v5.7.0
Release 5.6.0 (2025-10-30)
Release Highlights
- SREs with Tier 0/1 won't be deploying a Nexus proxy, and can download packages directly from the internet.
- SREs now support mirroring external GitHub repositories into the internal Gitea repository accessible from workspaces.
Upgrading from 5.5.1
As part of the current release, we're offering users more control over the DNS sidecar deployment by exposing two new parameters in the SRE configuration: workload_minimum_count and workload_maximum_count. Before updating your SRE, make sure your YAML config file contains valid values for these parameters. For example:
user_services:
dns_sidecar:
cron_expression: "*/30 * * * *"
replica_timeout: 600
retry_limit: 0
workload_minimum_count: 1
workload_maximum_count: 2Upload your new configuration file using dsh config upload, and then run the following command to upgrade an existing SRE:
dsh deploy sre YOURSRENAME
What's Changed
- Merge latest (v5.5.0) into develop by @cptanalatriste in #2461
- Bump stefanzweifel/git-auto-commit-action from 5.2.0 to 6.0.1 by @dependabot[bot] in #2454
- Update pulumi-azure-native by @jemrobinson in #2452
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2453
- Update Azure SDK packages by @jemrobinson in #2463
- ⬆️ Bump the production-dependencies group across 1 directory with 26 updates by @dependabot[bot] in #2464
- Using the correct socket on the unit file for clamav-clamonacc by @cptanalatriste in #2460
- Remove unused functions by @jemrobinson in #2465
- Fix library update by @cptanalatriste in #2466
- Disabling Guacamole Login by @cptanalatriste in #2468
- Stop unneeded deployment of Nexus repositories for Tier0/1 SREs by @craddm in #2389
- Merge v5.5.1 into develop by @cptanalatriste in #2478
- ⬆️ Bump actions/setup-python from 5 to 6 by @dependabot[bot] in #2483
- ⬆️ Bump actions/checkout from 4 to 5 by @dependabot[bot] in #2473
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2470
- Automatically ingressing code from pre-approved GitHub repositories by @cptanalatriste in #2482
- Making DSN sidecar components configurable by @cptanalatriste in #2485
- The Gitea mirror should take a new ip range for easy TRE update by @cptanalatriste in #2486
- Release v5.6.0 by @cptanalatriste in #2491
Full Changelog: v5.5.1...v5.6.0
Release 5.5.1 (2025-09-04)
Release Highlights
- Fixes the
clamav-clamonaccunit file configuration, so it doesn't interrupt Ansible from configuring SRE workspaces properly.
What's Changed
- Hotfix: Using the correct socket on the unit file for clamav-clamonacc by @cptanalatriste in #2476
Upgrading from 5.5.0
Run the following command to upgrade an existing SRE:
dsh deploy sre YOURSRENAME
You might need to re-run cloud-init manually in your workspaces for the new configuration to take place.
Full Changelog: v5.5.0...v5.5.1
Release 5.5.0 (2025-07-18)
Release Highlights
- SRE users have now write privileges on
/mnt/scratch, when using SRDs that support temporary storage. - It is now possible to set up the size of Nexus persistent directory in the configuration file. And the default value has been increased from 2Gb to 10Gb.
- User services, like Gitea and HedgeDoc, sometimes change their IP address on restart, which makes them unavailable due to DNS issues. We have now a Container App Job that monitors this problem and fix it when happens.
- Documentation updates on clipboard control limitations and data egress instructions.
Upgrading from 5.4.1
Run the following command to upgrade an existing SRE:
dsh deploy sre YOURSRENAME
Changing the size of Nexus' persistent directory and running a Job for fixing container DNS will likely have an impact on the cost of running an SRE. Please use the configuration file to ensure your costs are within your budget.
What's Changed
- Merge latest (v5.4.1) into develop by @cptanalatriste in #2430
- Documentation: Deploying SREs requires Owner role by @cptanalatriste in #2433
- Enabling SRE users to write into /mnt/scratch by @cptanalatriste in #2432
- Enabling configuring the size of Nexus' persistent directory by @cptanalatriste in #2435
- ⬆️ Bump stefanzweifel/git-auto-commit-action from 5.1.0 to 5.2.0 by @dependabot[bot] in #2436
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2437
- ⬆️ Update Pulumi Docker images by @github-actions[bot] in #2443
- Bump lycheeverse/lychee-action from 2.4.0 to 2.4.1 by @dependabot[bot] in #2444
- Pin Click to version 8.1.8 by @llewelld in #2440
- Adding a sidecar to ACI instances to fix broken DNS entries by @cptanalatriste in #2442
- Update Azure menu location to reflect changes to the egress process by @llewelld in #2455
- Update egress instructions related to IP addresses by @llewelld in #2456
- Informing DSH users about the limitations of clipboard control by @cptanalatriste in #2459
New Contributors
Full Changelog: v5.4.1...v5.5.0
Release 5.4.1 (2025-04-01)
Release Highlights
- Fixed a
josepyrelated issue preventing DSH installation. - Fixed missing persistent storage for Gitea to prevent failure after container restart.
Upgrading from 5.4.1
Please back up your Gitea codebase before updating the SRE. Our testing shows that repositories created before this update won't be repaired, so you will need to re-create them once the update is completed.
Once the backup is finished, run the following command to upgrade an existing SRE.
dsh deploy sre YOURSRENAME
What's Changed
- Reduce update workflow frequency by @JimMadge in #2421
- Mounting a volume to fix Gitea after container restart. by @cptanalatriste in #2423
Full Changelog: v5.4.0...v5.4.1
Release v5.4.0 (2025-03-03)
Release Highlights
- Adds the
dsh allowlistfamily of commands to allow easy manipulation of the package allowlists that limit access to packages on SREs where only pre-approved packages can be downloaded from CRAN/PyPi. - Updates
nexus-allowlistto handle changes to the Nexus Sonatype Repository initialization process
Upgrading from 5.3.1
Run the following command to upgrade an existing SRE
dsh deploy sre YOURSRENAMENote that due to changes in the way the package allowlists are managed, new SREs will have no allowlist, and upgrading may remove existing allowlists. Administrators will need to manually update the allowlist as required.
What's Changed
- Bump the production-dependencies group with 5 updates by @dependabot in #2366
- Fix docker image CI script by @jemrobinson in #2367
- ⬆️ Update Pulumi Docker images by @github-actions in #2369
- Latest by @craddm in #2371
- Create GitHub Action to upload to PyPI on release by @jemrobinson in #2374
- Bump actions/setup-python from 4 to 5 by @dependabot in #2377
- ⬆️ Update Pulumi Docker images by @github-actions in #2376
- Bump the production-dependencies group with 11 updates by @dependabot in #2378
- Correct file parents by @JimMadge in #2381
- Adding commands to manipulate allowlists by @craddm in #2346
- Merge v5.3.1 into develop by @jemrobinson in #2390
- Exclude non-package files from hatch build by @jemrobinson in #2388
- ⬆️ Update Pulumi Docker images by @github-actions in #2391
- Don't upload *.pyc files to desired state by @JimMadge in #2385
- ⬆️ Bump the production-dependencies group with 6 updates by @dependabot in #2392
- Better teardown logging by @jemrobinson in #2394
- Ensure only files ending with pyc are excluded from desired state uploads by @craddm in #2396
- ⬆️ Bump lycheeverse/lychee-action from 2.2.0 to 2.3.0 by @dependabot in #2399
- ⬆️ Update Pulumi Docker images by @github-actions in #2397
- ⬆️ Bump the production-dependencies group with 7 updates by @dependabot in #2398
- ⬆️ Bump cryptography from 44.0.0 to 44.0.1 by @dependabot in #2402
- Revert "⬆️ Bump cryptography from 44.0.0 to 44.0.1" by @craddm in #2403
Full Changelog: v5.3.1...v5.4.0
Release 5.3.1 (2025-01-28)
Release Highlights
- Fixes issue with expiring SSL certificate
- Updates Nexus image to fix an initialisation problem
Upgrading from 5.3.0
Run the following command to upgrade an existing SRE
dsh deploy sre YOURSRENAMEWhat's Changed
- Hotfix: Renew SSL certificate in Pulumi #2380
- Hotfix: update Nexus image by @jemrobinson in #2387
Full Changelog: v5.3.0...v5.3.1
Release 5.3.0 (2025-01-20)
Release Highlights
- Adds/fixes support for Tier 0 and Tier 1 SREs
- Adds a reference section for the command line interface to the documentation
Upgrading from 5.2.1
Run the following command to upgrade an existing SRE
dsh deploy sre YOURSRENAMEWhat's Changed
- Bump ansible-core from 2.18.0 to 2.18.1 in /.hatch by @dependabot in #2329
- Add command reference to documentation by @craddm in #2238
- Bump the production-dependencies group with 6 updates by @dependabot in #2332
- Remove support for
InternetService Tag for Data Provider IP addresses by @craddm in #2331 - Bump peter-evans/create-pull-request from 7.0.5 to 7.0.6 by @dependabot in #2342
- Bump the production-dependencies group across 1 directory with 14 updates by @dependabot in #2344
- Bump lycheeverse/lychee-action from 2.1.0 to 2.2.0 by @dependabot in #2339
- Retrieve SRE sub name and use that when connecting to guac database by @craddm in #2351
- Merge latest (v5.2.0) into develop by @jemrobinson in #2353
- Bump stefanzweifel/git-auto-commit-action from 5.0.1 to 5.1.0 by @dependabot in #2358
- Bump the production-dependencies group with 4 updates by @dependabot in #2357
- Merge 5.2.1 changes into develop by @JimMadge in #2359
- Bump supported version to latest release by @jemrobinson in #2360
- Modifying Firewall rules to provide Internet Access to T0/T1 by @cptanalatriste in #2327
- Release v5.3.0 by @JimMadge in #2364
Full Changelog: v5.2.1...v5.3.0
Release 5.2.1 (2025-01-13)
Release Highlights
- Fixes
guacamole-user-synccrash which was limiting SREs to a maximum of 10 users - Fixes problem with listing users when SRE and SHM are deployed to different subscriptions
Upgrading from 5.2.0
Run the following command to upgrade an existing SRE
dsh deploy sre YOURSRENAMEWhat's Changed
- Guacamole user synchronisation problems by @jemrobinson in #2352
- Retrieve SRE sub name and use that when connecting to guac database by @craddm in #2354
Full Changelog: v5.2.0...v5.2.1