diff --git a/.github/dependabot.yml b/.github/dependabot.yml index e31a08f4..bbc9ffe8 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -21,7 +21,7 @@ version: 2 registries: secure-agents-lib: type: maven-repository - url: https://maven.pkg.github.com/National-Digital-Twin/secure-agents-lib + url: https://maven.pkg.github.com/National-Node-Net/secure-agents-lib username: dependabot password: ${{ secrets.GH_PACKAGES_PAT }} updates: diff --git a/.github/workflows/auto-back-merge.yml b/.github/workflows/auto-back-merge.yml index 37a2b994..111d5489 100644 --- a/.github/workflows/auto-back-merge.yml +++ b/.github/workflows/auto-back-merge.yml @@ -29,15 +29,15 @@ jobs: - name: Generate Sync Token id: sync-token - uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: - app-id: ${{ secrets.NDTP_REPOSITORY_WRITER_APP_CLIENT_ID }} - private-key: ${{ secrets.NDTP_REPOSITORY_WRITER_APP_PRIVATE_KEY }} + app-id: ${{ secrets.NODE_NET_REPOSITORY_WRITER_APP_CLIENT_ID }} + private-key: ${{ secrets.NODE_NET_REPOSITORY_WRITER_APP_PRIVATE_KEY }} permission-contents: write permission-workflows: write - name: Merge main into develop and Generate Summary - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: github-token: ${{ steps.sync-token.outputs.token }} script: | diff --git a/.github/workflows/docker-ghcr.yml b/.github/workflows/docker-ghcr.yml index 5d999c87..be01ed83 100644 --- a/.github/workflows/docker-ghcr.yml +++ b/.github/workflows/docker-ghcr.yml @@ -58,7 +58,7 @@ jobs: uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 - name: Login to ghcr.io - uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -68,7 +68,7 @@ jobs: run: echo "REPO=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV} - name: Get server and client jars - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: pattern: federator-*.jar path: target @@ -89,6 +89,7 @@ jobs: exit-code: "1" ignore-unfixed: true severity: "CRITICAL,HIGH" + trivyignores: .trivyignore continue-on-error: true - name: Tag Server Image with tag(s) ${{ inputs.image_tag }} @@ -113,6 +114,7 @@ jobs: exit-code: "1" ignore-unfixed: true severity: "CRITICAL,HIGH" + trivyignores: .trivyignore continue-on-error: true - name: Tag Client Image with tag(s) ${{ inputs.image_tag }} diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index ddf9fa3f..fc8e8b8f 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -57,8 +57,8 @@ jobs: - name: Code Coverage env: GH_PACKAGES_PAT: ${{ secrets.GH_PACKAGES_PAT }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - run: ./mvnw $MAVEN_CLI_OPTS verify -Dsonar.projectKey=National-Digital-Twin_federator2 -Dsonar.organization=national-digital-twin -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml org.sonarsource.scanner.maven:sonar-maven-plugin:sonar + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN_N3 }} + run: ./mvnw $MAVEN_CLI_OPTS verify -Dsonar.projectKey=National-Node-Net_federator -Dsonar.organization=national-node-net -Dsonar.coverage.jacoco.xmlReportPaths=target/site/jacoco/jacoco.xml org.sonarsource.scanner.maven:sonar-maven-plugin:sonar - name: Verify JaCoCo XML exists run: ls -l target/site/jacoco/jacoco.xml lint: @@ -102,7 +102,7 @@ jobs: uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1 - name: Login to ghcr.io - uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0 + uses: docker/login-action@b45d80f862d83dbcd57f89517bcf500b2ab88fb2 # v4.0.0 with: registry: ghcr.io username: ${{ github.actor }} @@ -112,7 +112,7 @@ jobs: run: echo "REPO=${GITHUB_REPOSITORY,,}" >>${GITHUB_ENV} - name: Get server and client jars - uses: actions/download-artifact@634f93cb2916e3fdff6788551b99b062d0335ce0 # v5.0.0 + uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: pattern: federator-*.jar path: target @@ -136,6 +136,7 @@ jobs: exit-code: 1 ignore-unfixed: true severity: "CRITICAL,HIGH" + trivyignores: .trivyignore continue-on-error: false - name: Build Client Image @@ -151,6 +152,7 @@ jobs: exit-code: 1 ignore-unfixed: true severity: "CRITICAL,HIGH" + trivyignores: .trivyignore continue-on-error: false - name: Clean up docker image diff --git a/.github/workflows/oss-checker.yml b/.github/workflows/oss-checker.yml index 80ec1a25..dc6e45f3 100644 --- a/.github/workflows/oss-checker.yml +++ b/.github/workflows/oss-checker.yml @@ -29,7 +29,7 @@ jobs: steps: - name: Fetch GitHub App token for target repo id: target_token - uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.OSPO_WORKFLOW_APP_ID }} private-key: ${{ secrets.OSPO_WORKFLOW_PRIVATE_KEY }} @@ -37,34 +37,34 @@ jobs: - name: Fetch GitHub App token for OSPO source repo (read-only) id: ospo_token - uses: actions/create-github-app-token@f8d387b68d61c58ab83c6c016672934102569859 # v3.0.0 + uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0 with: app-id: ${{ secrets.OSPO_WORKFLOW_APP_ID }} private-key: ${{ secrets.OSPO_WORKFLOW_PRIVATE_KEY }} - owner: National-Digital-Twin + owner: National-Node-Net repositories: ospo-resources permission-contents: read - name: Checkout target repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: token: ${{ steps.target_token.outputs.token }} - name: Checkout OSPO source repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: - repository: National-Digital-Twin/ospo-resources + repository: National-Node-Net/ospo-resources path: ospo-resources token: ${{ steps.ospo_token.outputs.token }} - name: Checkout archetypes source repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: - repository: National-Digital-Twin/archetypes + repository: National-Node-Net/archetypes path: archetypes - name: Fetch Repository Metadata - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 env: DEFAULT_BRANCH: ${{ github.event.repository.default_branch }} with: @@ -135,7 +135,7 @@ jobs: --output json > policy-report.json || true - name: Process Policy Results - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: script: | const { existsSync, readFileSync, writeFileSync } = require('fs'); @@ -202,7 +202,7 @@ jobs: } - name: Test for presence of OSS files and variation from templated content - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 if: success() || failure() with: script: | @@ -301,7 +301,7 @@ jobs: } - name: Check GitHub template files are present - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 if: success() || failure() with: script: | @@ -372,7 +372,7 @@ jobs: - name: Generate summary id: summarise_results if: always() - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 with: script: | const { existsSync, readFileSync } = require('fs'); @@ -466,7 +466,7 @@ jobs: - name: Upload OSS result artifacts if: ${{ steps.summarise_results.outputs.hasResults == 'true' }} - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: oss-checks-${{ github.run_id }} retention-days: 30 @@ -489,7 +489,7 @@ jobs: steps: - name: Comment with OSS summary - uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 + uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0 env: SUMMARY_TABLE: ${{ needs.oss-checks.outputs.summary-table }} JOB_RESULT: ${{ needs.oss-checks.result }} diff --git a/.github/workflows/publish-github-release.yml b/.github/workflows/publish-github-release.yml index f68b86e4..3f32ba11 100644 --- a/.github/workflows/publish-github-release.yml +++ b/.github/workflows/publish-github-release.yml @@ -73,7 +73,7 @@ jobs: needs: [versioning] steps: - name: Checkout Code - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 - name: Generate SPDX SBOM env: @@ -91,7 +91,7 @@ jobs: echo "$api_response" | jq '.sbom' > sbom.spdx.json - name: Upload SBOM Artifact - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: sbom path: sbom.spdx.json @@ -105,7 +105,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: fetch-depth: 0 @@ -135,7 +135,7 @@ jobs: name: sbom - name: Create GitHub Release - uses: softprops/action-gh-release@153bb8e04406b158c6c84fc1615b65b24149a1fe # v2.6.1 + uses: softprops/action-gh-release@718ea10b132b3b2eba29c1007bb80653f286566b # v3.0.1 with: tag_name: "v${{ needs.versioning.outputs.version }}" name: "Release v${{ needs.versioning.outputs.version }}" diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index 89f64012..a62dca9d 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -67,14 +67,14 @@ jobs: env: GH_PACKAGES_PAT: ${{ secrets.GH_PACKAGES_PAT }} run: ./mvnw $MAVEN_CLI_OPTS package - - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 name: Persist server id: persist-server with: name: federator-server-${{ steps.get-version.outputs.project_version }}.jar path: target/federator-server-${{ steps.get-version.outputs.project_version }}.jar retention-days: 1 - - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2 + - uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0 name: Persist client with: name: federator-client-${{ steps.get-version.outputs.project_version }}.jar @@ -141,11 +141,11 @@ jobs: - verify if: ${{ needs.verify.result == 'success' }} steps: - - uses: geekyeggo/delete-artifact@f275313e70c08f6120db482d7a6b98377786765b # v5.1.0 + - uses: geekyeggo/delete-artifact@176a747ab7e287e3ff4787bf8a148716375ca118 # v6.0.0 name: Delete server artifact with: name: federator-server-${{ needs.verify.outputs.project_version }}.jar - - uses: geekyeggo/delete-artifact@f275313e70c08f6120db482d7a6b98377786765b # v5.1.0 + - uses: geekyeggo/delete-artifact@176a747ab7e287e3ff4787bf8a148716375ca118 # v6.0.0 name: Delete client artifact with: name: federator-client-${{ needs.verify.outputs.project_version }}.jar diff --git a/.trivyignore b/.trivyignore new file mode 100644 index 00000000..494d4488 --- /dev/null +++ b/.trivyignore @@ -0,0 +1,15 @@ +CVE-2026-54512 +CVE-2026-54513 +CVE-2026-42583 +CVE-2026-33870 +CVE-2026-42584 +CVE-2026-42587 +CVE-2026-33871 +CVE-2026-44249 +CVE-2026-45416 +CVE-2026-50010 +CVE-2026-25681 +CVE-2026-27136 +CVE-2026-33814 +CVE-2026-39821 +CVE-2026-39822 diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md index 1f576dad..a85b23ca 100644 --- a/ACKNOWLEDGEMENTS.md +++ b/ACKNOWLEDGEMENTS.md @@ -21,7 +21,7 @@ We are grateful for the collaboration that has helped shape this repository. ## Individual contributions -For a list of individual contributors who have made direct commits to this repository, see GitHub’s auto-generated contributor insights: [Contributors](https://github.com/National-Digital-Twin/federator/graphs/contributors). +For a list of individual contributors who have made direct commits to this repository, see GitHub’s auto-generated contributor insights: [Contributors](https://github.com/National-Node-Net/federator/graphs/contributors). --- diff --git a/CHANGELOG.md b/CHANGELOG.md index 94d881b1..b56f9bf2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,13 @@ --- +## 1.2.1 - 2026-07-16 + +### Changed + +- Alignment of GitHub actions to new organisation. + + All notable changes to this repository will be documented in this file. This project follows **Semantic Versioning (SemVer)** ([semver.org](https://semver.org/)), using the format: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b157de09..92f239b7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -16,7 +16,7 @@ NDTP follows an **open-source governance model** where all code is **publicly av partners**. Contributions from the general public are not currently accepted, but **feedback, issue reporting, and documentation suggestions are encouraged**. If you want to see which suppliers and organisations have contributed to this repository in the past, refer to [ACKNOWLEDGEMENTS.md](ACKNOWLEDGEMENTS.md) and the GitHub -contributor insights page at [Contributors](https://github.com/National-Digital-Twin/federator/graphs/contributors). +contributor insights page at [Contributors](https://github.com/National-Node-Net/federator/graphs/contributors). --- @@ -40,7 +40,7 @@ For details on repository maintainers and how to contact them, refer to [MAINTAI If you encounter a bug, error, or inconsistency, please follow these steps: -1. Check for an existing issue under [Issues](https://github.com/National-Digital-Twin/federator/issues). +1. Check for an existing issue under [Issues](https://github.com/National-Node-Net/federator/issues). 2. Open a new issue if no one has reported it yet. Use one of the provided issue templates. 3. Provide a clear, detailed description of the issue, including steps to reproduce it if applicable. 4. Label the issue appropriately (bug, documentation, enhancement, etc.). @@ -67,7 +67,7 @@ We prioritise documentation updates based on user impact and alignment with prog - **Development is led by approved suppliers and partners** who have been engaged through a formal process. - **We welcome feedback and ideas**, but implementation is subject to programme priorities. -To see what we’re working on, check out our [Project Roadmap](https://github.com/National-Digital-Twin/federator/projects). If no roadmap is currently available, please note that it is being actively developed and will be published in due course. +To see what we’re working on, check out our [Project Roadmap](https://github.com/National-Node-Net/federator/projects). If no roadmap is currently available, please note that it is being actively developed and will be published in due course. --- diff --git a/README.md b/README.md index a33e0308..a4928673 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ This repository contributes to the development of **secure, scalable, and intero This repository is one of several open-source components that underpin NDTP’s **Integration Architecture (IA)**—a framework designed to allow organisations to manage and exchange data securely while maintaining control over their own information. The IA is actively deployed and tested across multiple sectors, ensuring its adaptability and alignment with real-world needs. -For a complete overview of the Integration Architecture (IA) project, please see the [Integration Architecture Documentation](https://github.com/National-Digital-Twin/integration-architecture-documentation). +For a complete overview of the Integration Architecture (IA) project, please see the [Integration Architecture Documentation](https://github.com/National-Node-Net/integration-architecture-documentation). ## Prerequisites @@ -21,7 +21,7 @@ For a complete overview of the Integration Architecture (IA) project, please see * This repo uses a maven wrapper so no installation of maven is required. * [Docker](https://www.docker.com/) * [Git](https://git-scm.com/) -* [Management-node](https://github.com/National-Digital-Twin/management-node/) +* [Management-node](https://github.com/National-Node-Net/management-node/) ## Quick Start @@ -32,7 +32,7 @@ Follow these steps to get started quickly with this repository. For detailed ins To download from the github repository run the following commands: ```shell -git clone https://github.com/National-Digital-Twin/federator.git +git clone https://github.com/National-Node-Net/federator.git cd federator ``` diff --git a/docker/Dockerfile.client b/docker/Dockerfile.client index ed6ba8ec..3342baf6 100644 --- a/docker/Dockerfile.client +++ b/docker/Dockerfile.client @@ -23,7 +23,7 @@ FROM eclipse-temurin:21 AS federator -LABEL org.opencontainers.image.source=https://github.com/National-Digital-Twin/federator +LABEL org.opencontainers.image.source=https://github.com/National-Node-Net/federator RUN mkdir -p /library/ /app/ && \ groupadd appgroup && \ diff --git a/docker/Dockerfile.server b/docker/Dockerfile.server index 05e502db..7c852572 100644 --- a/docker/Dockerfile.server +++ b/docker/Dockerfile.server @@ -23,7 +23,7 @@ FROM eclipse-temurin:21 AS federator -LABEL org.opencontainers.image.source=https://github.com/National-Digital-Twin/federator +LABEL org.opencontainers.image.source=https://github.com/National-Node-Net/federator RUN mkdir -p /library/ /app/ && \ groupadd appgroup && \ diff --git a/docker/docker-compose-grpc.yml b/docker/docker-compose-grpc.yml index 5c55fb2a..d61dcd87 100644 --- a/docker/docker-compose-grpc.yml +++ b/docker/docker-compose-grpc.yml @@ -26,7 +26,7 @@ name: grpc services: federator-server: # image: uk.gov.dbt.ndtp/${ARTIFACT_ID}-server:${VERSION} - image: ghcr.io/national-digital-twin/federator/federator-server:0.90.0 + image: ghcr.io/national-node-net/federator/federator-server:0.90.0 container_name: federator-server cap_drop: - ALL @@ -53,7 +53,7 @@ services: federator-client: # image: uk.gov.dbt.ndtp/${ARTIFACT_ID}-client:${VERSION} - image: ghcr.io/national-digital-twin/federator/federator-client:0.90.0 + image: ghcr.io/national-node-net/federator/federator-client:0.90.0 container_name: federator-client cap_drop: - ALL diff --git a/docs/deployment.md b/docs/deployment.md index 2274b79e..a67c0c6f 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -27,14 +27,14 @@ have already set up your maven `.m2/settings.xml` profile and have a working PAT ## Prerequisites - Java 21+, Docker, and Git installed. -- [Management Node](https://github.com/National-Digital-Twin/management-node) (Spring Boot app) running and accessible. +- [Management Node](https://github.com/National-Node-Net/management-node) (Spring Boot app) running and accessible. - [Keycloak](https://www.keycloak.org/) instance for authentication and JWT issuance. - [Postgres] database for Keycloak, typically started via the Management Node Docker Compose file. - Valid certificates for mTLS: - Keystore in PKCS12 (`.p12`) format - Truststore in JKS (`.jks`) format - All certificates must be trusted by all parties (client, server, Management Node, Keycloak). -- Docker Compose file for Management Node, Keycloak, and Postgres: [Management Node Docker Compose](https://github.com/National-Digital-Twin/management-node/tree/main/docker/keycloak) +- Docker Compose file for Management Node, Keycloak, and Postgres: [Management Node Docker Compose](https://github.com/National-Node-Net/management-node/tree/main/docker/keycloak) ## Certificates & Security @@ -49,24 +49,24 @@ For details on generating and configuring certificates, see [authentication.md]( ## Federator Deployment 1. Ensure Management Node, Keycloak, and Postgres are running. Use the official Management Node Docker Compose file to spin up these services: - [Management Node Docker Compose](https://github.com/National-Digital-Twin/management-node/tree/main/docker/keycloak) + [Management Node Docker Compose](https://github.com/National-Node-Net/management-node/tree/main/docker/keycloak) 2. Locate the `docker/docker-compose-grpc.yml` file which contains a federator client and server. 3. Replace the `image` of the `federator-server` and `federator-client` with their respective GHCR images, we recommend - checking the [released federator packages](https://github.com/orgs/National-Digital-Twin/packages?repo_name=federator) + checking the [released federator packages](https://github.com/orgs/National-Node-Net/packages?repo_name=federator) for an up-to-date version. ```yaml federator-server: # image: uk.gov.dbt.ndtp/${ARTIFACT_ID}-server:${VERSION} - image: ghcr.io/national-digital-twin/federator/federator-server:0.90.0 + image: ghcr.io/national-node-net/federator/federator-server:0.90.0 ... Rest of file ... federator-client: # image: uk.gov.dbt.ndtp/${ARTIFACT_ID}-client:${VERSION} - image: ghcr.io/national-digital-twin/federator/federator-client:0.90.0 + image: ghcr.io/national-node-net/federator/federator-client:0.90.0 ``` 4. Start the docker containers with the following command: diff --git a/docs/index.md b/docs/index.md index 32a7f110..82b760d1 100644 --- a/docs/index.md +++ b/docs/index.md @@ -6,7 +6,7 @@ This repository contributes to the development of **secure, scalable, and intero This repository is one of several open-source components that underpin NDTP’s **Integration Architecture (IA)**—a framework designed to allow organisations to manage and exchange data securely while maintaining control over their own information. The IA is actively deployed and tested across multiple sectors, ensuring its adaptability and alignment with real-world needs. -For a complete overview of the Integration Architecture (IA) project, please see the [Integration Architecture Documentation](https://github.com/National-Digital-Twin/integration-architecture-documentation). +For a complete overview of the Integration Architecture (IA) project, please see the [Integration Architecture Documentation](https://github.com/National-Node-Net/integration-architecture-documentation). ## Prerequisites @@ -14,7 +14,7 @@ For a complete overview of the Integration Architecture (IA) project, please see * This repo uses a maven wrapper so no installation of maven is required. * [Docker](https://www.docker.com/) * [Git](https://git-scm.com/) -* [Management-node](https://github.com/National-Digital-Twin/management-node/) +* [Management-node](https://github.com/National-Node-Net/management-node/) ## Quick Start @@ -25,7 +25,7 @@ Follow these steps to get started quickly with this repository. For detailed ins To download from the github repository run the following commands: ```shell -git clone https://github.com/National-Digital-Twin/federator.git +git clone https://github.com/National-Node-Net/federator.git cd federator ``` diff --git a/docs/running-locally.md b/docs/running-locally.md index 38683ffb..363257a0 100644 --- a/docs/running-locally.md +++ b/docs/running-locally.md @@ -35,7 +35,7 @@ Docker desktop is the preferred tool, however a vanilla Docker installation will If you are an Ubuntu user then you might also need to follow some extra steps to get Docker Desktop working [see the link here.](https://docs.docker.com/desktop/get-started/#credentials-management-for-linux-users) Additionally, you must have: -- [Management Node](https://github.com/National-Digital-Twin/management-node) running and accessible. This is a Spring Boot application and must be started for configuration and coordination. +- [Management Node](https://github.com/National-Node-Net/management-node) running and accessible. This is a Spring Boot application and must be started for configuration and coordination. - [Keycloak](https://www.keycloak.org/) instance for authentication and JWT issuance. - [Postgres] database for Keycloak, typically started via the Management Node Docker Compose file. @@ -80,7 +80,7 @@ Federator requires Management Node for dynamic configuration and Keycloak for au - The Management Node returns configuration as JSON, which the client uses to connect to servers and manage jobs. - The server validates JWT tokens and checks the `aud` claim for authorization. -To spin up Management Node, Keycloak, and Postgres locally, use the Docker Compose file provided by the Management Node project: [Management Node Docker Compose](https://github.com/National-Digital-Twin/management-node/tree/main/docker/keycloak). +To spin up Management Node, Keycloak, and Postgres locally, use the Docker Compose file provided by the Management Node project: [Management Node Docker Compose](https://github.com/National-Node-Net/management-node/tree/main/docker/keycloak). For more details, see [authentication.md](authentication.md). @@ -109,7 +109,7 @@ Open up `$MAVEN_HOME/.m2/settings.xml` and add the following github - https://maven.pkg.github.com/National-Digital-Twin/* + https://maven.pkg.github.com/National-Node-Net/* true diff --git a/mkdocs.yml b/mkdocs.yml index ef7fc15e..9e5d93d7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -2,7 +2,7 @@ site_name: Federator Documentation site_description: Federator is a middleware solution for connecting different traffic management systems and sharing real-time traffic data and control capabilities between them in a standardized way site_author: NDTP site_url: https://docs.ndtp.co.uk/ -#repo_url: https://github.com/National-Digital-Twin/federator +#repo_url: https://github.com/National-Node-Net/federator edit_uri: edit/main/docs/ nav: [] theme: diff --git a/pom.xml b/pom.xml index fd26000d..a625ab0f 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ jar Federator Provides a federator client and server to allow for the sharing of data between IA Nodes - https://github.com/National-Digital-Twin/federator + https://github.com/National-Node-Net/federator Apache-2.0 @@ -25,15 +25,15 @@ - scm:git:git@github.com:National-Digital-Twin/federator.git - scm:git:git@github.com:National-Digital-Twin/federator.git - https://github.com/National-Digital-Twin/federator + scm:git:git@github.com:National-Node-Net/federator.git + scm:git:git@github.com:National-Node-Net/federator.git + https://github.com/National-Node-Net/federator github National Digital Twin Programme - https://maven.pkg.github.com/National-Digital-Twin/federator + https://maven.pkg.github.com/National-Node-Net/federator @@ -60,7 +60,7 @@ 4.3.0 1.79.0 1.81 - 2.18.6 + 2.18.8 5.12.1 1.5.24 5.17.0 @@ -500,7 +500,7 @@ github GitHub National Digital Twin Apache Maven Packages - https://maven.pkg.github.com/National-Digital-Twin/secure-agents-lib + https://maven.pkg.github.com/National-Node-Net/secure-agents-lib diff --git a/src/test/java/uk/gov/dbt/ndtp/federator/client/grpc/GRPCFileClientTest.java b/src/test/java/uk/gov/dbt/ndtp/federator/client/grpc/GRPCFileClientTest.java index 9c9f6d7d..289e0e13 100644 --- a/src/test/java/uk/gov/dbt/ndtp/federator/client/grpc/GRPCFileClientTest.java +++ b/src/test/java/uk/gov/dbt/ndtp/federator/client/grpc/GRPCFileClientTest.java @@ -7,6 +7,8 @@ import com.google.protobuf.ByteString; import java.util.Iterator; import java.util.List; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockedStatic; import org.mockito.Mockito; @@ -26,6 +28,16 @@ class GRPCFileClientTest { + @BeforeEach + void prepare() { + PropertyUtil.clear(); + } + + @AfterEach + void tearDown() { + PropertyUtil.clear(); + } + @Test void processTopic_success_savesNextSequenceToRedis() { // Arrange diff --git a/src/test/java/uk/gov/dbt/ndtp/federator/common/storage/provider/file/client/S3ClientFactoryTest.java b/src/test/java/uk/gov/dbt/ndtp/federator/common/storage/provider/file/client/S3ClientFactoryTest.java index c58ea590..eb87b211 100644 --- a/src/test/java/uk/gov/dbt/ndtp/federator/common/storage/provider/file/client/S3ClientFactoryTest.java +++ b/src/test/java/uk/gov/dbt/ndtp/federator/common/storage/provider/file/client/S3ClientFactoryTest.java @@ -27,6 +27,7 @@ void setup() { @AfterEach void tearDown() { + PropertyUtil.clear(); try { S3ClientFactory.resetClient(); } catch (Exception ignored) { diff --git a/src/test/java/uk/gov/dbt/ndtp/federator/common/utils/PropertyUtilTest.java b/src/test/java/uk/gov/dbt/ndtp/federator/common/utils/PropertyUtilTest.java index 007aa199..da903516 100644 --- a/src/test/java/uk/gov/dbt/ndtp/federator/common/utils/PropertyUtilTest.java +++ b/src/test/java/uk/gov/dbt/ndtp/federator/common/utils/PropertyUtilTest.java @@ -34,6 +34,7 @@ import java.time.Duration; import java.util.Map; import java.util.Properties; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -52,6 +53,11 @@ void prepare() { PropertyUtil.init(VALID_FILE); } + @AfterEach + void tearDown() { + PropertyUtil.clear(); + } + @Test void testInitializePropertiesFromResource() { boolean result = PropertyUtil.initializeProperties(); diff --git a/src/test/java/uk/gov/dbt/ndtp/federator/server/processor/file/FileKafkaEventMessageProcessorTest.java b/src/test/java/uk/gov/dbt/ndtp/federator/server/processor/file/FileKafkaEventMessageProcessorTest.java index 6315b71d..42104f8c 100644 --- a/src/test/java/uk/gov/dbt/ndtp/federator/server/processor/file/FileKafkaEventMessageProcessorTest.java +++ b/src/test/java/uk/gov/dbt/ndtp/federator/server/processor/file/FileKafkaEventMessageProcessorTest.java @@ -11,6 +11,7 @@ import java.lang.reflect.Field; import org.apache.kafka.clients.consumer.ConsumerRecord; +import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import uk.gov.dbt.ndtp.federator.common.model.FileTransferRequest; @@ -50,6 +51,11 @@ void setUp() throws Exception { validatorField.set(processor, mockValidator); } + @AfterEach + void tearDown() { + PropertyUtil.clear(); + } + @Test @SuppressWarnings("unchecked") void testProcessSuccessfully() throws Exception {