From 6f116e841bb5f727a005f5620038e00cf4f59774 Mon Sep 17 00:00:00 2001 From: chrisbloe Date: Tue, 10 Feb 2026 10:59:53 +0000 Subject: [PATCH 1/4] [PRM-659] GitHub Org migration changes (nhsconnect -> NHSDigital) --- .github/CODEOWNERS | 1 + .github/workflows/base-java-service-jobs.yml | 2 +- .github/workflows/base-node-service-jobs.yml | 2 +- .../workflows/base-python-service-jobs.yml | 2 +- .github/workflows/service-ci.yml | 4 +- CONTRIBUTING.md | 27 +++++++++++ services/ehr-out-service/package.json | 4 -- .../ehr-out-service/sonar-project.properties | 4 +- services/ehr-transfer-service/build.gradle | 4 +- services/gp2gp-messenger/README.md | 45 ++++++++++--------- services/gp2gp-messenger/package.json | 4 -- .../gp2gp-messenger/sonar-project.properties | 4 +- .../sonar-project copy.properties | 4 +- .../mesh-forwarder/sonar-project.properties | 4 +- services/nems-event-processor/build.gradle | 4 +- services/re-registration-service/build.gradle | 4 +- services/suspension-service/build.gradle | 4 +- sonar-project.properties | 4 +- 18 files changed, 74 insertions(+), 53 deletions(-) create mode 100644 .github/CODEOWNERS create mode 100644 CONTRIBUTING.md diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 00000000..114991db --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @NHSDigital/patient-record-management \ No newline at end of file diff --git a/.github/workflows/base-java-service-jobs.yml b/.github/workflows/base-java-service-jobs.yml index 1b86dccf..0b8e9513 100644 --- a/.github/workflows/base-java-service-jobs.yml +++ b/.github/workflows/base-java-service-jobs.yml @@ -137,7 +137,7 @@ jobs: deploy_infra: name: Deploy Infrastructure needs: [build_and_publish] - uses: nhsconnect/orphaned-record-continuity-infrastructure/.github/workflows/deploy-stack.yml@v3 + uses: NHSDigital/orphaned-record-continuity-infrastructure/.github/workflows/deploy-stack.yml@v3 with: stack: ${{ inputs.service }} diff --git a/.github/workflows/base-node-service-jobs.yml b/.github/workflows/base-node-service-jobs.yml index 225006cb..22e830e5 100644 --- a/.github/workflows/base-node-service-jobs.yml +++ b/.github/workflows/base-node-service-jobs.yml @@ -169,7 +169,7 @@ jobs: deploy_infra: name: Deploy Infrastructure needs: [build_and_publish] - uses: nhsconnect/orphaned-record-continuity-infrastructure/.github/workflows/deploy-stack.yml@v3 + uses: NHSDigital/orphaned-record-continuity-infrastructure/.github/workflows/deploy-stack.yml@v3 with: stack: ${{ inputs.service }} environment: ${{ inputs.environment }} diff --git a/.github/workflows/base-python-service-jobs.yml b/.github/workflows/base-python-service-jobs.yml index 997813d7..d58220bb 100644 --- a/.github/workflows/base-python-service-jobs.yml +++ b/.github/workflows/base-python-service-jobs.yml @@ -120,7 +120,7 @@ jobs: if: ${{ inputs.deploy_infra && inputs.is_deployment }} name: Deploy Infrastructure needs: [build-and-publish-service] - uses: nhsconnect/orphaned-record-continuity-infrastructure/.github/workflows/deploy-stack.yml@v3 + uses: NHSDigital/orphaned-record-continuity-infrastructure/.github/workflows/deploy-stack.yml@v3 with: stack: ${{ inputs.service }} environment: ${{ inputs.environment }} diff --git a/.github/workflows/service-ci.yml b/.github/workflows/service-ci.yml index e5fba3d1..dc6f23d4 100644 --- a/.github/workflows/service-ci.yml +++ b/.github/workflows/service-ci.yml @@ -47,8 +47,8 @@ jobs: - name: Get Changes id: get_changes run: | - git fetch origin ${{ github.event.pull_request.base.ref }} - changed=$(git diff --name-only origin/${{ github.event.pull_request.base.ref }}...HEAD | tr '\n' ' ') + git fetch origin main + changed=$(git diff --name-only origin/main... | tr '\n' ' ') echo "changed=$changed" >> $GITHUB_OUTPUT ehr-repo: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..48ca2e2f --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,27 @@ +# Welcome to the Orphaned Record Continuity contributors guide + +Thank you for your interest in improving the codebase. + +In this guide you will get an overview of the contribution workflow from creating a PR, reviewing, and merging the PR. + +The codebase covers: + +- The [Orphaned Record Continuity service](https://digital.nhs.uk/services/orphaned-record-continuity). + +To raise an issue, please contact one of the [CODEOWNERS](.github/CODEOWNERS) directly, or raise a PR. + +If you're new to GitHub and/or Markdown, GitHub's own [contributor's guide](https://github.com/github/docs/blob/main/.github/CONTRIBUTING.md) provides good signposting on these topics. + +## Pull requests and merging + +You can't push to the main branch. Therefore, for all changes you will need to create a new branch, and then a pull request to merge said branch into `main`. The [CODEOWNERS](.github/CODEOWNERS) will be nominated as reviewers of your PR by default, but feel free to add other people as well if you think they will have valuable input. + +## Contributing guidelines and etiquette + +- Preview your Markdown code to make sure the format is not broken. +- Check grammar, spelling and punctuation - no-one wants to look pedantic by requesting changes due to typos or inconsistent grammar/syntax, but it's only fair to keep this tidy. +- The codebase is open to the world. This has a few implications: + - Nothing in it should be confidential, private to NHSE or include any personal data. + - All links should be public. + - Consider comments and README.md text: comments in open source repos such as this are not official communications and don't go through the normal approval process for public communication. They can however still be interpreted as official communication, even if not intended as such. +- Use [inclusive language](https://github.com/NHSDigital/software-engineering-quality-framework/blob/main/inclusive-language.md): avoid terms which cause hurt and offence, including if they have historically been considered industry-standard terms. diff --git a/services/ehr-out-service/package.json b/services/ehr-out-service/package.json index 30e111a9..1f246ed9 100644 --- a/services/ehr-out-service/package.json +++ b/services/ehr-out-service/package.json @@ -70,10 +70,6 @@ "superagent": "8.0.8", "semver": ">=7.5.2" }, - "repository": { - "type": "git", - "url": "git+https://github.com/nhsconnect/prm-repo-ehr-out-service.git" - }, "jest": { "resetModules": true, "clearMocks": true, diff --git a/services/ehr-out-service/sonar-project.properties b/services/ehr-out-service/sonar-project.properties index 83b62196..6f59916a 100644 --- a/services/ehr-out-service/sonar-project.properties +++ b/services/ehr-out-service/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=prm-orphaned-record-continuity_prm-repo-ehr-out-service -sonar.organization=prm-orphaned-record-continuity +sonar.projectKey=NHSDigital_orphaned-record-continuity +sonar.organization=nhsdigital # This is the name and version displayed in the SonarCloud UI. sonar.projectName=prm-repo-ehr-out-service diff --git a/services/ehr-transfer-service/build.gradle b/services/ehr-transfer-service/build.gradle index ca00bbca..db4e8af3 100644 --- a/services/ehr-transfer-service/build.gradle +++ b/services/ehr-transfer-service/build.gradle @@ -169,8 +169,8 @@ spotbugsIntegration { sonar { properties { - property 'sonar.projectKey', 'prm-orphaned-record-continuity_prm-repo-ehr-transfer-service' - property 'sonar.organization', 'prm-orphaned-record-continuity' + property 'sonar.projectKey', 'NHSDigital_orphaned-record-continuity' + property 'sonar.organization', 'nhsdigital' property 'sonar.host.url', 'https://sonarcloud.io' } } diff --git a/services/gp2gp-messenger/README.md b/services/gp2gp-messenger/README.md index 80a7e7ed..f0b0de3d 100644 --- a/services/gp2gp-messenger/README.md +++ b/services/gp2gp-messenger/README.md @@ -3,7 +3,7 @@ This is an implementation of a component to handle the sending of the GP2GP message set used to transfer a patient's Electronic Health Record between GP Practices. It uses the GP2GP message format to transfer orphaned and stranded records out of a secure NHS repository. -This component will communicate with the Message Handler Service (MHS) [GitHub nhsconnect/integration-adaptors](https://github.com/nhsconnect/integration-adaptors) and other components being developed by the Orphaned and Stranded Record programme. +This component will communicate with the Message Handler Service (MHS) using the [NIA MHS Adaptor](https://github.com/NHSDigital/integration-adaptor-mhs) and other components being developed by the Orphaned Record Continuity programme. The initial version will send health records that are encoded in the HL7 format. A subsequent enhancement will be access to the components of the Health Record so that other services can use this component to send and receive Health Records with the need to implement the encoding and fragmentation strategies of the [GP2GP v2.2a](https://data.developer.nhs.uk/dms/mim/6.3.01/Domains/GP2GP/Document%20files/GP2GP%20IM.htm) message specification. @@ -11,7 +11,7 @@ The initial version will send health records that are encoded in the HL7 format. - [Node](https://nodejs.org/en/download/package-manager/#nvm) - version 14.x - [Docker](https://docs.docker.com/install/) - + ### AWS helpers This repository imports shared AWS helpers from [prm-deductions-support-infra](https://github.com/nhsconnect/prm-deductions-support-infra/). @@ -20,22 +20,26 @@ They can be found `utils` directory after running any task from `tasks` file. ## Set up If you would like to run the app locally, you need to: + 1. Run `npm install` to install all node dependencies as per `package.json`. -2. Set up the env variables and/or copy them into your IDE configurations (`Run -> Edit Configurations ->Environment Variables` in IntelliJ): -``` -export E2E_TEST_AUTHORIZATION_KEYS_FOR_GP2GP_MESSENGER=auth-key-2 -export REPOSITORY_URI=$IMAGE_REPO_NAME -export NHS_SERVICE=gp2gp-messenger -export SERVICE_URL=http://${NHS_SERVICE}:3000 -export NHS_ENVIRONMENT=local -export GP2GP_MESSENGER_REPOSITORY_ASID=deduction-asid -export GP2GP_MESSENGER_REPOSITORY_ODS_CODE=deduction-ods -``` -- Locally, the variables `GP2GP_MESSENGER_REPOSITORY_ASID`, `GP2GP_MESSENGER_REPOSITORY_ODS_CODE` can be set - to any value + +1. Set up the env variables and/or copy them into your IDE configurations (`Run -> Edit Configurations ->Environment Variables` in IntelliJ): + + ```bash + export E2E_TEST_AUTHORIZATION_KEYS_FOR_GP2GP_MESSENGER=auth-key-2 + export REPOSITORY_URI=$IMAGE_REPO_NAME + export NHS_SERVICE=gp2gp-messenger + export SERVICE_URL=http://${NHS_SERVICE}:3000 + export NHS_ENVIRONMENT=local + export GP2GP_MESSENGER_REPOSITORY_ASID=deduction-asid + export GP2GP_MESSENGER_REPOSITORY_ODS_CODE=deduction-ods + ``` + + > Locally, the variables `GP2GP_MESSENGER_REPOSITORY_ASID`, `GP2GP_MESSENGER_REPOSITORY_ODS_CODE` can be set + to any value -3. The app will use a fake MHS when `NHS_ENVIRONMENT` is set to `local` or `dev`. - +1. The app will use a fake MHS when `NHS_ENVIRONMENT` is set to `local` or `dev`. + ## Running the tests Run the unit tests by running `./tasks test_unit` @@ -46,14 +50,12 @@ Run the integration tests with: You can also run them with `npm run test:integration` but that will require some additional manual set-up - Run the coverage tests (unit test and integration test) By running `./tasks test_coverage` or run `npm run test:coverage` on your machine - ## Start the app locally 1. Run a development server with `npm run start:local` @@ -65,7 +67,7 @@ The swagger documentation for the app can be found at `http://localhost:3000/swa ### Example request -``` +```bash curl -X POST "http://localhost:3000/ehr-request" -H "accept: application/json" -H "Authorization: auth-key-1" -H "Content-Type: application/json" -d "{ \"nhsNumber\": \"some-nhs-number\", \"odsCode\": \"some-ods-code\"}" ``` @@ -75,8 +77,7 @@ Compile the code with `npm run build`, and then start the server with `npm start ## Config -Ensure you have VPN connection set up to both `dev` and `test` environments: -[CLICK HERE](https://gpitbjss.atlassian.net/wiki/spaces/TW/pages/1832779966/VPN+for+Deductions+Services) +Ensure you have VPN connection set up to both `dev` and `test` environments ([see this Confluence page](https://gpitbjss.atlassian.net/wiki/spaces/TW/pages/1832779966/VPN+for+Deductions+Services)). ## Access to AWS from CLI @@ -89,4 +90,4 @@ As a note, this set-up is based on the README of assume-role [tool](https://gith ## Assume role with elevated permissions -In order to get sufficient access to work with terraform or AWS CLI, please export secrets from the AWS Access Portal for the environment you are using \ No newline at end of file +In order to get sufficient access to work with terraform or AWS CLI, please export secrets from the AWS Access Portal for the environment you are using diff --git a/services/gp2gp-messenger/package.json b/services/gp2gp-messenger/package.json index 719c36b2..5b9fcecc 100644 --- a/services/gp2gp-messenger/package.json +++ b/services/gp2gp-messenger/package.json @@ -22,10 +22,6 @@ "start:local": "babel-node -r dotenv/config src/server.js", "start:nodemon": "nodemon --exec babel-node -r dotenv/config src/server.js" }, - "repository": { - "type": "git", - "url": "git+https://github.com/nhsconnect/prm-deductions-gp2gp-messenger.git" - }, "dependencies": { "@aws-sdk/client-sqs": "^3.470.0", "@babel/runtime": "^7.17.8", diff --git a/services/gp2gp-messenger/sonar-project.properties b/services/gp2gp-messenger/sonar-project.properties index 3296812c..ea20f19b 100644 --- a/services/gp2gp-messenger/sonar-project.properties +++ b/services/gp2gp-messenger/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=prm-orphaned-record-continuity_prm-repo-gp2gp-messenger -sonar.organization=prm-orphaned-record-continuity +sonar.projectKey=NHSDigital_orphaned-record-continuity +sonar.organization=nhsdigital # This is the name and version displayed in the SonarCloud UI. sonar.projectName="GP2GP Messenger" diff --git a/services/mesh-forwarder/sonar-project copy.properties b/services/mesh-forwarder/sonar-project copy.properties index 4283a611..11b804a8 100644 --- a/services/mesh-forwarder/sonar-project copy.properties +++ b/services/mesh-forwarder/sonar-project copy.properties @@ -1,5 +1,5 @@ -sonar.projectKey=prm-orphaned-record-continuity_prm-mesh-aws-forwarder -sonar.organization=prm-orphaned-record-continuity +sonar.projectKey=NHSDigital_orphaned-record-continuity +sonar.organization=nhsdigital # This is the name and version displayed in the SonarCloud UI. #sonar.projectName=prm-mesh-aws-forwarder diff --git a/services/mesh-forwarder/sonar-project.properties b/services/mesh-forwarder/sonar-project.properties index dcd9f666..41201bc7 100644 --- a/services/mesh-forwarder/sonar-project.properties +++ b/services/mesh-forwarder/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=prm-orphaned-record-continuity_prm-deductions-mesh-forwarder -sonar.organization=prm-orphaned-record-continuity +sonar.projectKey=NHSDigital_orphaned-record-continuity +sonar.organization=nhsdigital # This is the name and version displayed in the SonarCloud UI. #sonar.projectName=prm-deductions-mesh-forwarder diff --git a/services/nems-event-processor/build.gradle b/services/nems-event-processor/build.gradle index f99fccf8..fe4715ed 100644 --- a/services/nems-event-processor/build.gradle +++ b/services/nems-event-processor/build.gradle @@ -9,8 +9,8 @@ plugins { sonar { properties { - property "sonar.projectKey", "prm-orphaned-record-continuity_prm-repo-nems-event-processor" - property "sonar.organization", "prm-orphaned-record-continuity" + property "sonar.projectKey", "NHSDigital_orphaned-record-continuity" + property "sonar.organization", "nhsdigital" property "sonar.host.url", "https://sonarcloud.io" } } diff --git a/services/re-registration-service/build.gradle b/services/re-registration-service/build.gradle index 64f6e264..5ea12bcf 100644 --- a/services/re-registration-service/build.gradle +++ b/services/re-registration-service/build.gradle @@ -168,8 +168,8 @@ spotbugsIntegration { sonar { properties { - property "sonar.projectKey", "prm-orphaned-record-continuity_prm-repo-re-registration-service" - property "sonar.organization", "prm-orphaned-record-continuity" + property "sonar.projectKey", "NHSDigital_orphaned-record-continuity" + property "sonar.organization", "nhsdigital" property "sonar.host.url", "https://sonarcloud.io" } } diff --git a/services/suspension-service/build.gradle b/services/suspension-service/build.gradle index 81844644..d903ae04 100644 --- a/services/suspension-service/build.gradle +++ b/services/suspension-service/build.gradle @@ -167,8 +167,8 @@ spotbugsIntegration { sonar { properties { - property "sonar.projectKey", "prm-orphaned-record-continuity_prm-repo-suspension-service" - property 'sonar.organization', 'prm-orphaned-record-continuity' + property "sonar.projectKey", "NHSDigital_orphaned-record-continuity" + property 'sonar.organization', 'nhsdigital' property 'sonar.host.url', 'https://sonarcloud.io' } } diff --git a/sonar-project.properties b/sonar-project.properties index b6be7570..5cfd6b62 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,5 +1,5 @@ -sonar.projectKey=prm-orphaned-record-continuity_prm-repo-ehr-repository -sonar.organization=prm-orphaned-record-continuity +sonar.projectKey=NHSDigital_orphaned-record-continuity +sonar.organization=nhsdigital # This is the name and version displayed in the SonarCloud UI. sonar.projectName=prm-repo-ehr-repository From 5fb47367546b6f7eee506fda32be8c4fcace65ab Mon Sep 17 00:00:00 2001 From: chrisbloe Date: Tue, 10 Feb 2026 13:16:55 +0000 Subject: [PATCH 2/4] Upping action versions --- .github/workflows/automated-sbom-repo-scan.yml | 4 ++-- .github/workflows/base-java-service-jobs.yml | 10 +++++----- .github/workflows/base-node-service-jobs.yml | 8 ++++---- .github/workflows/base-python-service-jobs.yml | 10 +++++----- .github/workflows/build.yml | 6 +++--- .github/workflows/e2e.yml | 4 ++-- .github/workflows/service-ci.yml | 2 +- 7 files changed, 22 insertions(+), 22 deletions(-) diff --git a/.github/workflows/automated-sbom-repo-scan.yml b/.github/workflows/automated-sbom-repo-scan.yml index f220c00e..58f9c8a8 100644 --- a/.github/workflows/automated-sbom-repo-scan.yml +++ b/.github/workflows/automated-sbom-repo-scan.yml @@ -15,7 +15,7 @@ jobs: name: SBOM Repo Scan runs-on: ubuntu-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis @@ -35,7 +35,7 @@ jobs: output-format: sarif - name: Upload Anchore scan SARIF report - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 if: always() with: sarif_file: ${{ steps.sbom-scan.outputs.sarif }} diff --git a/.github/workflows/base-java-service-jobs.yml b/.github/workflows/base-java-service-jobs.yml index 0b8e9513..d19e6570 100644 --- a/.github/workflows/base-java-service-jobs.yml +++ b/.github/workflows/base-java-service-jobs.yml @@ -44,10 +44,10 @@ jobs: working-directory: "./services/${{ inputs.service }}" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up JDK ${{ inputs.java_version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: "${{ inputs.java_version }}" @@ -73,17 +73,17 @@ jobs: working-directory: "./services/${{ inputs.service }}" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up JDK ${{ inputs.java_version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v5 with: distribution: "temurin" java-version: "${{ inputs.java_version }}" cache: gradle - name: Configure AWS Credentials (Read/Write) - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: role-to-assume: ${{ secrets.IAM_ROLE }} aws-region: ${{ vars.AWS_REGION }} diff --git a/.github/workflows/base-node-service-jobs.yml b/.github/workflows/base-node-service-jobs.yml index 22e830e5..3cc51264 100644 --- a/.github/workflows/base-node-service-jobs.yml +++ b/.github/workflows/base-node-service-jobs.yml @@ -44,7 +44,7 @@ jobs: id: extract_branch - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up Node uses: actions/setup-node@v4 @@ -56,7 +56,7 @@ jobs: run: npm install - name: Start LocalStack - uses: LocalStack/setup-localstack@v0.2.4 + uses: LocalStack/setup-localstack@v0.2.5 with: install-awslocal: "true" @@ -106,7 +106,7 @@ jobs: working-directory: "./services/${{ inputs.service }}" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up Node uses: actions/setup-node@v4 @@ -115,7 +115,7 @@ jobs: - name: Install dependencies run: npm install - name: Configure AWS Credentials (Read/Write) - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: role-to-assume: ${{ secrets.IAM_ROLE }} aws-region: ${{ vars.AWS_REGION }} diff --git a/.github/workflows/base-python-service-jobs.yml b/.github/workflows/base-python-service-jobs.yml index d58220bb..5423787e 100644 --- a/.github/workflows/base-python-service-jobs.yml +++ b/.github/workflows/base-python-service-jobs.yml @@ -36,10 +36,10 @@ jobs: working-directory: "./services/${{ inputs.service }}" steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 - name: Set up Python - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.9 - name: Run Unit tests @@ -54,16 +54,16 @@ jobs: run: working-directory: ./services/${{ inputs.service }} steps: - - uses: actions/checkout@v4 + - uses: actions/checkout@v6 - name: Set up Python 3.9 - uses: actions/setup-python@v5 + uses: actions/setup-python@v6 with: python-version: 3.9 - name: Configure AWS credentials id: auth - uses: aws-actions/configure-aws-credentials@v4 + uses: aws-actions/configure-aws-credentials@v6 with: mask-aws-account-id: true role-to-assume: ${{ secrets.IAM_ROLE }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 40461ece..6178864d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,12 +10,12 @@ jobs: name: SonarCloud runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v6 with: fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis - name: Use Node.js 22.x - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 22.x @@ -25,7 +25,7 @@ jobs: ./tasks test_coverage-github-action - name: SonarCloud Scan - uses: SonarSource/sonarqube-scan-action@v4 + uses: SonarSource/sonarqube-scan-action@v7 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index be95c020..1034f43b 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -18,12 +18,12 @@ jobs: steps: - name: Checkout End to End - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: repository: "nhsconnect/prm-repo-e2e-tests" - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: "adopt" java-version: "21" diff --git a/.github/workflows/service-ci.yml b/.github/workflows/service-ci.yml index dc6f23d4..52d7a313 100644 --- a/.github/workflows/service-ci.yml +++ b/.github/workflows/service-ci.yml @@ -40,7 +40,7 @@ jobs: changed: ${{ steps.get_changes.outputs.changed }} steps: - name: Checkout - uses: actions/checkout@v5 + uses: actions/checkout@v6 with: fetch-depth: 0 From 5a27d4d98ade6818aa9eabf2eefd6a756e9e91fa Mon Sep 17 00:00:00 2001 From: Kris Bloe <2674722+chrisbloe@users.noreply.github.com> Date: Tue, 10 Feb 2026 14:18:40 +0000 Subject: [PATCH 3/4] Remove reference to the `test` env Co-authored-by: AndyFlintAnswerDigital <116072207+AndyFlintAnswerDigital@users.noreply.github.com> --- services/gp2gp-messenger/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/gp2gp-messenger/README.md b/services/gp2gp-messenger/README.md index f0b0de3d..1505eb0c 100644 --- a/services/gp2gp-messenger/README.md +++ b/services/gp2gp-messenger/README.md @@ -77,7 +77,7 @@ Compile the code with `npm run build`, and then start the server with `npm start ## Config -Ensure you have VPN connection set up to both `dev` and `test` environments ([see this Confluence page](https://gpitbjss.atlassian.net/wiki/spaces/TW/pages/1832779966/VPN+for+Deductions+Services)). +Ensure you have a VPN connection set up to the `dev` environment ([see this Confluence page](https://gpitbjss.atlassian.net/wiki/spaces/TW/pages/1832779966/VPN+for+Deductions+Services)). ## Access to AWS from CLI From 3dd6fa98b550a8aac9507c69411f3063bfe028aa Mon Sep 17 00:00:00 2001 From: chrisbloe Date: Mon, 16 Feb 2026 10:03:38 +0000 Subject: [PATCH 4/4] Deleting copied files --- services/mesh-forwarder/README copy.md | 83 ------------------- .../sonar-project copy.properties | 13 --- 2 files changed, 96 deletions(-) delete mode 100644 services/mesh-forwarder/README copy.md delete mode 100644 services/mesh-forwarder/sonar-project copy.properties diff --git a/services/mesh-forwarder/README copy.md b/services/mesh-forwarder/README copy.md deleted file mode 100644 index b160de48..00000000 --- a/services/mesh-forwarder/README copy.md +++ /dev/null @@ -1,83 +0,0 @@ -# prm-mesh-aws-forwarder - -Generic AWS MESH forwarder, capable of reading messages from a MESH inbox and writing them to AWS S3 or SNS. - -## Developing - -### Prerequistes -In order to get started with development, you will need Python - version 3.9 or higher. - -To run the tests in the same container image used in the CI pipeline, you will need: -- [Docker](https://www.docker.com/get-started) - version 3.1.0 or higher -- Python 3.9. Use [pyenv](https://github.com/pyenv/pyenv) to easily switch Python versions. -- [Pipenv](https://pypi.org/project/pipenv/). Install by running `python -m pip install pipenv` - -#### Installing the correct versions of pip and python locally - -Ensure you are not within a virtual environment (run `deactivate` if you are in one) - -1. Run `pyenv install 3.9.4` -2. Follow step 3 from [here](https://github.com/pyenv/pyenv#basic-github-checkout ) -3. Run `pyenv global 3.9.4` -4. For the following steps open another terminal. -5. Run `python -m pip install pipenv` to install pipenv using the updated python environment. -6. Run `python -m pip install -U "pip>=21.1` - - `pyenv global` should output the specific python version specified rather than `system`. - - Both `python --version` and `pip --version` should point to the versions you have specified. - - `ls -l $(which pipenv)` should output `.../.pyenv/shims/pipenv` rather than `...Cellar...` (which is a brew install). - -#### Python virtual environment - -From the base directory of the project, create a python3 virtual environment by running `./tasks devenv`, then to activate it run `pipenv shell` - -To deactivate the virtual environment run `deactivate`. - -To remove the virtual environment and clear the cache, run `pipenv --rm && pipenv --clear`. - -Run the following commands in the virtual environment: - -### Scripts - -### Running tests, linting, and type checking - -`./tasks validate`. This should be done before commiting. - - -### Troubleshooting - -#### Checking dependencies fails locally due to pip - -If running `./tasks check-deps` fails due to an outdated version of pip, then the local python environment containing pipenv may need to be updated (using pyenv instead of brew - to better control the pip version). -Ensure you have pyenv installed (use `brew install pyenv`). -Perform the following steps: - -1. Run `brew uninstall pipenv` -2. Run the steps listed under [Installing correct version of pip and python](#installing-correct-version-of-pip-and-python) -3. Now running `./tasks check-deps` should pass. - -#### Python virtual environments - -If you see the below notice when trying to activate the python virtual environment, run `deactivate` before trying again. - -## Running - -Install with `python setup.py install`. - -The AWS MESH forwarder can then be started with `python -m awsmesh.entrypoint`. - -Running the forwarder requires the following environment variables to be set: - -| Environment variable | Description | -| ------------------------------- | ------------------------------------------------------------------------------------------------------- | -| MESH_URL | URL of MESH endpoint to connect to | -| MESH_MAILBOX_SSM_PARAM_NAME | Name of AWS SSM parameter store entry containing the name of the MESH inbox to consume messages from | -| MESH_PASSWORD_SSM_PARAM_NAME | Name of AWS SSM parameter store entry containing the password of the MESH inbox to consume message from | -| MESH_SHARED_KEY_SSM_PARAM_NAME | Name of AWS SSM parameter store entry containing the MESH shared key | -| MESH_CLIENT_CERT_SSM_PARAM_NAME | Name of AWS SSM parameter store entry containing the client certificate | -| MESH_CLIENT_KEY_SSM_PARAM_NAME | Name of AWS SSM parameter store entry containing the client certificate key | -| MESH_CA_CERT_SSM_PARAM_NAME | Name of AWS SSM parameter store entry containing the certificate authority chain | -| MESSAGE_DESTINATION | Service messages are published to (s3 or sns) | -| S3_BUCKET_NAME | S3 bucket to publish messages to (defined if MESSAGE_DESTINATION="s3") | -| SNS_TOPIC_ARN | SNS topic to publish messages to (defined if MESSAGE_DESTINATION="sns") | -| POLL_FREQUENCY | Duration in seconds between each poll of the mesh mailbox | -| FORWARDER_HOME | Directory used to store certificates extracted from parameter store | diff --git a/services/mesh-forwarder/sonar-project copy.properties b/services/mesh-forwarder/sonar-project copy.properties deleted file mode 100644 index 11b804a8..00000000 --- a/services/mesh-forwarder/sonar-project copy.properties +++ /dev/null @@ -1,13 +0,0 @@ -sonar.projectKey=NHSDigital_orphaned-record-continuity -sonar.organization=nhsdigital - -# This is the name and version displayed in the SonarCloud UI. -#sonar.projectName=prm-mesh-aws-forwarder -#sonar.projectVersion=1.0 - - -# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. -#sonar.sources=. - -# Encoding of the source code. Default is default system encoding -#sonar.sourceEncoding=UTF-8 \ No newline at end of file