Skip to content
Merged

v8.2.0 #6709

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
a5cdd80
Move archive and merge activity to the child record tab
murugapl Apr 17, 2026
d3b182c
Add sidekiq job for Careplus reports
jf-x-dev Apr 21, 2026
9035a26
Fix MMR dose sequence validation error message
jhenderson Apr 8, 2026
465091e
Record "sent_at" even if sending fails
jf-x-dev Apr 21, 2026
2b75eed
Validate new `Patient` foreign key relationships
alistair-white-horne-tng Apr 20, 2026
c33f401
Remove unnecessary includes in `PatientStatusUpdater`
thomasleese Apr 15, 2026
aa4ba2d
Add Ordnance Survey API keys and secrets
thomasleese Apr 20, 2026
cb4f517
Add `OrdnancySurvey::PlacesAPI`
thomasleese Apr 22, 2026
e26cca2
Install Yarn using Mise
thomasleese Apr 16, 2026
e67724a
Install Uv using Mise
thomasleese Apr 21, 2026
aa8a8bf
Assign `local_authority_mhclg_code` when importing patients
thomasleese Apr 22, 2026
387405c
Add a migration to fix patients in incorrect state
thomasleese Apr 22, 2026
5180786
Move task to backfill LAs in to data migration
thomasleese Apr 22, 2026
272cd96
Update instructions on installing dependencies
thomasleese Apr 16, 2026
15c557d
Remove PostgreSQL and Redis from `.tool-versions`
thomasleese Apr 16, 2026
4d21f4a
Don't set DATABASE_HOST by default
thomasleese Apr 21, 2026
c1ef255
Switch to PostGIS ActiveRecord adapter
thomasleese Apr 16, 2026
7d3bb61
Run PostGIS in test workflow
thomasleese Apr 16, 2026
b4eef4b
Enable PostGIS
thomasleese Apr 16, 2026
5f7e0f3
Add position column to locations
thomasleese Apr 16, 2026
931dc51
Change wording of consent confirmation, triage needed email
samcoy3 Apr 22, 2026
6284f58
Make notify_log_entries.purpose not null
benilovj Apr 17, 2026
273adf8
Validate purpose is present on NotifyLogEntry
benilovj Apr 18, 2026
fc8bf72
Declare purpose in every Notify template's frontmatter
benilovj Apr 18, 2026
2b4a78e
Expose purpose on NotifyTemplate and validate on scan
benilovj Apr 18, 2026
3560a35
Inline purpose_for_template_name into backfill migration
benilovj Apr 18, 2026
26113c0
Source notify log entry purpose from the template, not a dispatcher
benilovj Apr 18, 2026
b976804
Merge pull request #6605 from NHSDigital/refactor-programme-status-in…
thomasleese Apr 23, 2026
7a5cc69
Merge pull request #6673 from NHSDigital/fix-local-authority-code-not…
thomasleese Apr 23, 2026
70e6b43
Merge pull request #6643 from NHSDigital/ordnance-survey-api-keys
thomasleese Apr 23, 2026
a2157f3
Merge pull request #6636 from NHSDigital/ordnance-survey-api
thomasleese Apr 23, 2026
7e913de
Merge pull request #6612 from NHSDigital/enable-postgis
thomasleese Apr 23, 2026
a13edc5
Merge pull request #6616 from NHSDigital/add-lat-lng-to-locations
thomasleese Apr 23, 2026
a02150c
Merge pull request #6626 from NHSDigital/create-patient-activity-log
murugapl Apr 23, 2026
acaf477
Merge pull request #6634 from NHSDigital/MAV-6739-notify-purpose-from…
benilovj Apr 23, 2026
15f9449
Use `postgis` schema in database URL
thomasleese Apr 23, 2026
b498c73
Merge pull request #6678 from NHSDigital/postgis-schema
thomasleese Apr 23, 2026
d3c8b81
Change wording of consent confirmation, triage needed email
samcoy3 Apr 23, 2026
b40c712
Merge pull request #6560 from NHSDigital/fix-mmr-upload-dose-sequence
jhenderson Apr 23, 2026
4918e6d
Specify yarn 1.22.22 in .tool-versions
chrisroos Apr 23, 2026
870b2f9
Merge pull request #6682 from NHSDigital/use-yarn-1-in-tool-versions
misaka Apr 23, 2026
e288e18
Bump sidekiq from 8.1.2 to 8.1.3
dependabot[bot] Apr 23, 2026
8e48533
Bump faker from 3.7.1 to 3.8.0
dependabot[bot] Apr 23, 2026
e6641e5
Bump aws-sdk-rds from 1.310.0 to 1.311.0
dependabot[bot] Apr 23, 2026
f535d05
Bump aws-sdk-cloudwatch from 1.133.0 to 1.134.0
dependabot[bot] Apr 23, 2026
3dcb7d5
Merge pull request #6683 from NHSDigital/dependabot/bundler/next/side…
thomasleese Apr 24, 2026
3521897
Merge pull request #6684 from NHSDigital/dependabot/bundler/next/fake…
thomasleese Apr 24, 2026
c14889a
Merge pull request #6686 from NHSDigital/dependabot/bundler/next/aws-…
thomasleese Apr 24, 2026
3868799
Merge pull request #6687 from NHSDigital/dependabot/bundler/next/aws-…
thomasleese Apr 24, 2026
1138b51
Bump rubocop-govuk from 5.2.0 to 5.2.1
dependabot[bot] Apr 23, 2026
ed5431f
Merge pull request #6685 from NHSDigital/dependabot/bundler/next/rubo…
thomasleese Apr 24, 2026
ec002c0
Merge pull request #6640 from NHSDigital/alistair/patient-cascade-on-…
thomasleese Apr 24, 2026
4aceedb
Merge pull request #6602 from NHSDigital/add-sidekiq-job-for-careplus…
thomasleese Apr 24, 2026
08f09e4
Add `SECURITY.md`
thomasleese Apr 24, 2026
8ce5dd5
Merge pull request #6688 from NHSDigital/security-md
thomasleese Apr 24, 2026
dd7edc9
Use job names as schedule names
thomasleese Apr 24, 2026
f2616a2
Merge pull request #6690 from NHSDigital/name-sidekiq-schedules
thomasleese Apr 24, 2026
7e5d11d
Add consent refusal reason and route breakdowns
mikejamesthompson Apr 24, 2026
979d55a
Bump propshaft from 1.3.1 to 1.3.2
dependabot[bot] Apr 24, 2026
dd2f253
Merge pull request #6693 from NHSDigital/consent-breakdown-v2
mikejamesthompson Apr 25, 2026
8fe844c
Bump erb from 6.0.3 to 6.0.4 in the bundler group across 1 directory
dependabot[bot] Apr 24, 2026
04abbc7
Merge pull request #6696 from NHSDigital/dependabot/bundler/next/prop…
thomasleese Apr 26, 2026
edc4163
Merge pull request #6694 from NHSDigital/dependabot/bundler/bundler-d…
thomasleese Apr 26, 2026
55bb078
Add testing API endpoint to enqueue vaccinations search in NHS
benilovj Apr 26, 2026
c2729c1
Merge pull request #6697 from NHSDigital/add-testing-api-for-imms-sea…
benilovj Apr 27, 2026
3b92317
Ensure more descriptive error appears when setting URI for mock carep…
jf-x-dev Apr 27, 2026
78b5add
Merge pull request #6700 from NHSDigital/ensure-nicer-error-for-missi…
jf-x-dev Apr 27, 2026
d8e8888
Include withdrawn consents in consent reporting breakdowns
mikejamesthompson Apr 27, 2026
0ca7f2a
Merge pull request #6706 from NHSDigital/mike/fix-withdrawn-consent-r…
mikejamesthompson Apr 27, 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
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
name: Create Dockerized Database
run-name: Creating dockerized image from ${{ github.ref_name }}
name: Build and push database image
run-name: Build and push database image for ${{ github.ref_name }}

on:
workflow_dispatch:
push:
branches:
- next
branches: [next]
workflow_call:
inputs:
github_ref:
Expand All @@ -17,8 +16,8 @@ permissions:
contents: read

jobs:
setup-development-database:
name: Setup Development Database
build-and-push-database-image:
name: Build and push database image
runs-on: ubuntu-latest
env:
RAILS_ENV: development
Expand All @@ -32,34 +31,36 @@ jobs:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
ref: ${{ inputs.github_ref || github.ref_name == 'next' && 'next' || github.ref_name }}
repository: nhsuk/manage-vaccinations-in-schools
repository: nhsdigital/manage-vaccinations-in-schools
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
with:
node-version-file: .tool-versions
cache: yarn
- name: Build custom postgres image
run: |
echo -e "FROM postgres:16.11\n\nENV PGDATA=\"/var/lib/postgresql/mydata\"" > db.Dockerfile
docker build -t custom-postgres:latest -f db.Dockerfile .
- name: Start db container
- name: Create Dockerfile
run: >-
echo -e \
"FROM postgis/postgis:17-master\nENV PGDATA=\"/var/lib/postgresql/mydata\"" \
> database.Dockerfile
- name: Build image
run: docker build -t database:latest -f database.Dockerfile .
- name: Start container
run: |
docker run -d \
--name database \
-e "POSTGRES_HOST_AUTH_METHOD=trust" \
-p 5432:5432 \
custom-postgres:latest
- name: Wait for db to be ready
database:latest
- name: Wait for database to be ready
run: |
docker exec database bash -c '
until pg_isready -U postgres; do
echo "Waiting for postgres..."
sleep 2
done
'
done'
- uses: ruby/setup-ruby@60ecfba8750476ff216b59eee3b88218bb5111cc # v1.303.0
with:
bundler-cache: true
- name: Populate database for testing
- name: Set up database for testing
run: |
bin/rails db:setup
bin/rails feature_flags:enable_for_development
Expand All @@ -73,17 +74,17 @@ jobs:
id: login-ecr
uses: aws-actions/amazon-ecr-login@376925c9d111252e87ae59691e5a442dd100ef6a # v2.1.3
# yamllint disable rule:line-length
- name: get github ref short
id: github-ref
- name: Get image tag
id: get-image-tag
run: |
git_ref=$(git rev-parse ${{ inputs.github_ref || github.ref_name == 'next' && 'origin/next' || github.ref_name }})
echo "ref=$git_ref" >> "$GITHUB_OUTPUT"
- name: Commit postgres container with database
echo "value=$git_ref" >> "$GITHUB_OUTPUT"
- name: Commit image
run: >-
docker commit database "${{ steps.login-ecr.outputs.registry
}}/mavis/development/postgres_db:${{ steps.github-ref.outputs.ref }}"
}}/mavis/development/postgres_db:${{ steps.get-image-tag.outputs.value }}"
- name: Push image
run: >-
docker push "${{ steps.login-ecr.outputs.registry }}/mavis/development/postgres_db:${{
steps.github-ref.outputs.ref }}"
steps.get-image-tag.outputs.value }}"
# yamllint enable rule:line-length
4 changes: 2 additions & 2 deletions .github/workflows/end-to-end-tests-aws.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: AWS deployment E2E tests
name: AWS

on:
workflow_call:
Expand Down Expand Up @@ -122,7 +122,7 @@ jobs:
permissions:
id-token: write
contents: read
uses: ./.github/workflows/create_dockerized_db.yml
uses: ./.github/workflows/build-and-push-database-image.yml
with:
github_ref: ${{ needs.check-database-image-presence.outputs.db_git_ref_sha }}
launch-dockerized-devimage:
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/end-to-end-tests-local.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
name: Local E2E tests
name: Local

on: [workflow_call]

jobs:
end-to-end-tests:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17.2
postgresql:
image: postgis/postgis:17-master
env:
POSTGRES_PASSWORD: postgres
options: >-
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/end-to-end-tests-on-pull-request.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: E2E tests on PR
name: End-to-end tests

on: [pull_request]

Expand All @@ -11,7 +11,7 @@ permissions: {}
jobs:
aws-e2e-flow:
if: github.event.pull_request.head.repo.full_name == github.repository
name: AWS deployment E2E tests
name: AWS
permissions:
id-token: write
contents: write
Expand All @@ -22,7 +22,7 @@ jobs:

local-e2e-flow:
if: github.event.pull_request.head.repo.full_name != github.repository
name: Local E2E tests
name: Local
uses: ./.github/workflows/end-to-end-tests-local.yml

ensure-run-success:
Expand Down
19 changes: 11 additions & 8 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ jobs:
name: RSpec
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17.2
postgresql:
image: postgis/postgis:17-master
env:
POSTGRES_PASSWORD: postgres
options: >-
Expand Down Expand Up @@ -50,8 +50,8 @@ jobs:
name: Seeds
runs-on: ubuntu-latest
services:
postgres:
image: postgres:17.2
postgresql:
image: postgis/postgis:17-master
env:
POSTGRES_PASSWORD: postgres
options: >-
Expand All @@ -60,7 +60,8 @@ jobs:
- 5432:5432
env:
RAILS_ENV: development
DATABASE_URL: postgres://postgres:postgres@localhost:5432/manage_vaccinations_development
DATABASE_URL: >-
postgis://postgres:postgres@localhost:5432/manage_vaccinations_development
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
Expand All @@ -70,7 +71,7 @@ jobs:
- uses: ruby/setup-ruby@60ecfba8750476ff216b59eee3b88218bb5111cc # v1.303.0
with:
bundler-cache: true
- name: Check seeds run
- name: Run seeds
run: bin/rails db:prepare

jest:
Expand All @@ -82,5 +83,7 @@ jobs:
with:
node-version-file: .tool-versions
cache: yarn
- run: yarn install --immutable --immutable-cache --check-cache
- run: yarn test
- name: Install dependencies
run: yarn install --immutable --immutable-cache --check-cache
- name: Run tests
run: yarn test
4 changes: 2 additions & 2 deletions .tool-versions
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ awscli 2.27.46
hk 1.37.0
nodejs 22.15.0
pkl 0.31.0
postgres 17.2
python 3.14.4
redis 8.2.1
ruby 4.0.3
shellcheck 0.11.0
yamllint 1.38.0
yarn 1.22.22
uv 0.11.7
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ gem "stackprof"

# 3rd party gems
gem "activerecord-import"
gem "activerecord-postgis-adapter"
gem "activerecord-session_store"
gem "active_record_union"
gem "amazing_print"
Expand Down
40 changes: 24 additions & 16 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,9 @@ GEM
timeout (>= 0.4.0)
activerecord-import (2.2.0)
activerecord (>= 4.2)
activerecord-postgis-adapter (11.1.1)
activerecord (~> 8.1.0)
rgeo-activerecord (~> 8.1.0)
activerecord-session_store (2.2.0)
actionpack (>= 7.0)
activerecord (>= 7.0)
Expand Down Expand Up @@ -175,14 +178,14 @@ GEM
protocol-websocket (~> 0.17)
attr_required (1.0.2)
aws-eventstream (1.4.0)
aws-partitions (1.1238.0)
aws-partitions (1.1240.0)
aws-sdk-accessanalyzer (1.88.0)
aws-sdk-core (~> 3, >= 3.244.0)
aws-sigv4 (~> 1.5)
aws-sdk-cloudwatch (1.133.0)
aws-sdk-cloudwatch (1.134.0)
aws-sdk-core (~> 3, >= 3.244.0)
aws-sigv4 (~> 1.5)
aws-sdk-core (3.244.0)
aws-sdk-core (3.246.0)
aws-eventstream (~> 1, >= 1.3.0)
aws-partitions (~> 1, >= 1.992.0)
aws-sigv4 (~> 1.9)
Expand All @@ -202,7 +205,7 @@ GEM
aws-sdk-kms (1.123.0)
aws-sdk-core (~> 3, >= 3.244.0)
aws-sigv4 (~> 1.5)
aws-sdk-rds (1.310.0)
aws-sdk-rds (1.311.0)
aws-sdk-core (~> 3, >= 3.244.0)
aws-sigv4 (~> 1.5)
aws-sdk-s3 (1.219.0)
Expand Down Expand Up @@ -294,7 +297,7 @@ GEM
dry-cli (1.4.1)
email_validator (2.2.4)
activemodel
erb (6.0.3)
erb (6.0.4)
erubi (1.13.1)
et-orbi (1.4.0)
tzinfo
Expand All @@ -306,7 +309,7 @@ GEM
factory_bot_rails (6.5.1)
factory_bot (~> 6.5)
railties (>= 6.1.0)
faker (3.7.1)
faker (3.8.0)
i18n (>= 1.8.11, < 2)
falcon (0.55.3)
async
Expand Down Expand Up @@ -537,7 +540,7 @@ GEM
parallel (1.28.0)
parallel_tests (5.7.0)
parallel
parser (3.3.10.2)
parser (3.3.11.1)
ast (~> 2.4.1)
racc
pg (1.6.3-arm64-darwin)
Expand All @@ -548,7 +551,7 @@ GEM
prettier_print (1.2.1)
prettyprint (0.2.0)
prism (1.9.0)
propshaft (1.3.1)
propshaft (1.3.2)
actionpack (>= 7.0.0)
activesupport (>= 7.0.0)
rack
Expand Down Expand Up @@ -664,6 +667,10 @@ GEM
reverse_markdown (3.0.2)
nokogiri
rexml (3.4.4)
rgeo (3.1.0)
rgeo-activerecord (8.1.0)
activerecord (>= 8.1, < 8.2)
rgeo (>= 3.0)
rladr (1.2.0)
rspec (3.13.2)
rspec-core (~> 3.13.0)
Expand Down Expand Up @@ -694,26 +701,26 @@ GEM
rspec-mocks (~> 3.0)
sidekiq (>= 5, < 9)
rspec-support (3.13.7)
rubocop (1.82.1)
rubocop (1.86.0)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.48.0, < 2.0)
rubocop-ast (>= 1.49.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.49.0)
rubocop-ast (1.49.1)
parser (>= 3.3.7.2)
prism (~> 1.7)
rubocop-capybara (2.22.1)
lint_roller (~> 1.1)
rubocop (~> 1.72, >= 1.72.1)
rubocop-govuk (5.2.0)
rubocop (= 1.82.1)
rubocop-ast (= 1.49.0)
rubocop-govuk (5.2.1)
rubocop (= 1.86.0)
rubocop-ast (= 1.49.1)
rubocop-capybara (= 2.22.1)
rubocop-rails (= 2.34.3)
rubocop-rake (= 0.7.1)
Expand Down Expand Up @@ -767,13 +774,13 @@ GEM
sidekiq (>= 5.0)
shoulda-matchers (7.0.1)
activesupport (>= 7.1)
sidekiq (8.1.2)
sidekiq (8.1.3)
connection_pool (>= 3.0.0)
json (>= 2.16.0)
logger (>= 1.7.0)
rack (>= 3.2.0)
redis-client (>= 0.26.0)
sidekiq-scheduler (6.0.1)
sidekiq-scheduler (6.0.2)
rufus-scheduler (~> 3.2)
sidekiq (>= 7.3, < 9)
sidekiq-throttled (2.1.0)
Expand Down Expand Up @@ -910,6 +917,7 @@ PLATFORMS
DEPENDENCIES
active_record_union
activerecord-import
activerecord-postgis-adapter
activerecord-session_store
amazing_print
annotaterb
Expand Down
Loading
Loading