Skip to content

Release v1.2.0 - #60

Merged
nikan-negaresh-informed merged 18 commits into
mainfrom
release/1.2.0
Mar 26, 2026
Merged

Release v1.2.0#60
nikan-negaresh-informed merged 18 commits into
mainfrom
release/1.2.0

Conversation

@KumailKamranIS

Copy link
Copy Markdown
Contributor

Sensitive Credential Checks

  • As the author of these changes, I have checked for any sensitive credentials prior to this review being requested.
  • As a reviewer of these changes, I have checked for any sensitive credentials prior to approving this merge.

Motivation and Context

Release v1.2.0

Description

  • Describe your changes in detail

How Has This Been Tested?

Screenshots (if appropriate):

Checklist:

  • It contains only changes required by issue (does not contain other PR)
  • Includes link to an issue (if apply)
  • I have added tests to cover my changes.

* feat(DPAV-2437): Add Vault-integrated PKI service for certificate management with tests

- Implements `VaultPkiService` for managing PKI operations via HashiCorp Vault.
- Adds supporting DTOs (`CreateKeyRequestDTO`, `CreateKeyResponseDTO`, `CreateCsrResponseDTO`, `IntermediateCertResponseDTO`, etc.).
- Includes a controller for exposing PKI-related endpoints.
- Adds unit and integration tests for the service and controller.
- Updates configurations for Vault integration via a dedicated mount point.
- Adds `docker-compose` setup for an isolated Vault instance.

Refs: DPAV-2437

* feat(DPAV-2437): Add Vault-integrated PKI service for certificate management with tests

- Implements `VaultPkiService` for managing PKI operations via HashiCorp Vault.
- Adds supporting DTOs (`CreateKeyRequestDTO`, `CreateKeyResponseDTO`, `CreateCsrResponseDTO`, `IntermediateCertResponseDTO`, etc.).
- Includes a controller for exposing PKI-related endpoints.
- Adds unit and integration tests for the service and controller.
- Updates configurations for Vault integration via a dedicated mount point.
- Adds `docker-compose` setup for an isolated Vault instance.

Refs: DPAV-2437

* Refactor: Standardize formatting, optimize imports, and enhance Vault PKI service functionality

- Reformatted code for consistency and removed unused imports across multiple modules.
- Enhanced `signCsr` method in `VaultPkiService` to use default role and TTL when not provided.
- Updated related tests to validate role and TTL fallback functionality.
- Applied minor cleanups in DTOs, exception handlers, and test classes for clarity.

Refs: DPAV-2437

* Refactor: Standardize formatting, optimize imports, and enhance Vault PKI service functionality

- Reformatted code for consistency and removed unused imports across multiple modules.
- Enhanced `signCsr` method in `VaultPkiService` to use default role and TTL when not provided.
- Updated related tests to validate role and TTL fallback functionality.
- Applied minor cleanups in DTOs, exception handlers, and test classes for clarity.

Refs: DPAV-2437

* Refactor: Standardize formatting, optimize imports, and enhance Vault PKI service functionality

- Reformatted code for consistency and removed unused imports across multiple modules.
- Enhanced `signCsr` method in `VaultPkiService` to use default role and TTL when not provided.
- Updated related tests to validate role and TTL fallback functionality.
- Applied minor cleanups in DTOs, exception handlers, and test classes for clarity.

Refs: DPAV-2437

* Refactor: Standardize formatting, optimize imports, and enhance Vault PKI service functionality

- Reformatted code for consistency and removed unused imports across multiple modules.
- Enhanced `signCsr` method in `VaultPkiService` to use default role and TTL when not provided.
- Updated related tests to validate role and TTL fallback functionality.
- Applied minor cleanups in DTOs, exception handlers, and test classes for clarity.

Refs: DPAV-2437

* Refactor: Standardize formatting, optimize imports, and enhance Vault PKI service functionality

- Reformatted code for consistency and removed unused imports across multiple modules.
- Enhanced `signCsr` method in `VaultPkiService` to use default role and TTL when not provided.
- Updated related tests to validate role and TTL fallback functionality.
- Applied minor cleanups in DTOs, exception handlers, and test classes for clarity.

Refs: DPAV-2437

* Refactor: Remove `@Builder` from DTOs and standardize Lombok annotations

- Removed `@Builder` annotations from multiple DTOs for alignment with project conventions.
- Explicitly added required Lombok annotations (`@Getter`, `@Setter`, `@NoArgsConstructor`, `@AllArgsConstructor`).
- Removed unnecessary exception classes from test coverage exclusions in `pom.xml`.

* Add `@Builder` annotation to certificate DTOs for streamlined object construction
* [DPAV-2601] update versions

* feat(OSPO): synchronise OSPO workflows

* [DPAV-2601] update to version 3.5.11

---------

Co-authored-by: LukeJonesIS <182091054+LukeJonesIS@users.noreply.github.com>
* feat(DPAV-2627): Add persistence for new certificate schema

* feat(DPAV-2627): Add org cert validation and config filtering

Adds a HandlerInterceptor that validates organisation certificates
on all /api/** requests. Using an interceptor rather than a filter
so it caninspect controller annotations allowing for the
@AllowBootstrapCertificates annotation used for certificate endpoints.

Updates producer and consumer config responses to exclude organisations
without active certificates.

* feat(DPAV-2627): Record certificate details and audit events on CSR signing

Adds CertificateSigningProvider to orchestrate the /csr/sign endpoint,
updating the org certificate record and creating audit events on
renewal. Rejects requests for manual or non-renewable certs with 403.

Fixes serial number format mismatch between Vault (colon-separated)
and Java X509 (plain hex) in the validation interceptor.

* feat(DPAV-2627): Resolve Sonar issues
* [DPAV-2566] trigger release from main and trivy check

* [DPAV-2566] comment out publish steps for testing

* feat(OSPO): synchronise OSPO workflows

* Revert "[DPAV-2566] comment out publish steps for testing"

This reverts commit 566fdf4.

* [DPAV-2566] fix trigger
#51)

* [DPAV-2612] Protect certificate endpoints with role-based access and add Keycloak TF roles

* feat(OSPO): synchronise OSPO workflows

---------

Co-authored-by: jsmith-informed <217566155+jsmith-informed@users.noreply.github.com>
* feat(DPAV-2440): Add bootstrap certificate endpoint

Adds POST /api/v1/certificate/bootstrap endpoint that generates a
short-lived certificate and returns it as a ZIP download containing
PKCS#12 keystore, truststore, and password files.

* feat(DPAV-2440): Add role-based authorization to bootstrap endpoint

* fix(DPAV-2440): Fix serial number mismatch on renewal

Vault returns serials with leading-zero hex octets (02:ca:22:2b) but
BigInteger.toString(16) strips leading zeros (2ca22b), which caused
random 403 with leading zeros. Switched to storing the result from
parsed certificate instead so we don't need to perform conversion.

* fix(DPAV-2440): Resolve Sonar issues

* fix(DPAV-2440): Refactor bootstrap endpoint to accept caller-provided CSR

- Accept CSR PEM instead of generating keypair server-side
- Return PEM files (certificate.pem, ca-chain.pem) instead of PKCS#12 keystores
- Use management-node-level role (request_bootstrap_certificate) instead of per-client hasRole
- Rename download to bootstrap_bundle.zip
- Fix GlobalExceptionHandler: resolve "No suitable resolver" error by splitting AuthorizationDeniedException into dedicated 403 handler
- Remove dead code: KeyStoreBuilder, VaultPkiService.generateKeyPair/createCsr(KeyPair)
- Add request_bootstrap_certificate role to Keycloak Terraform

* feat(DPAV-2440): Add bootstrap OID marker and exclude bootstrap from cert validation

- Add other_sans support to VaultPkiService.signCsr() to embed a configurable
  bootstrap OID (1.3.6.1.4.1.32473.1.1) in bootstrap certificates.
- Exclude the bootstrap endpoint from CertificateValidationInterceptor so admin
  clients without org cert records can call it.

* feat(OSPO): synchronise OSPO workflows

---------

Co-authored-by: jsmith-informed <217566155+jsmith-informed@users.noreply.github.com>
…#52)

* feat(DPAV-2440): Bootstrap endpoint changes and interceptor exemption

- Exclude all /api/v1/certificate/** from CertificateValidationInterceptor
  as caller may be an internal service without an organisation
- Bootstrap endpoint now takes organisationId instead of clientId so orgs
  without producers/consumers can be bootstrapped
- Create organisation_certificate record automatically if one does not
  exist
- Update migration, remove schema prefix and add missing SPDX header

* feat(DPAV-2440): Remove dead @AllowBootstrapCertificates annotation
…eline (#49)

* feat(dpav-2563): add trivy vulnerability check to management-node pipeline

* feat(OSPO): synchronise OSPO workflows

* feat(dpav-2563): use correct trivy-action commit hash

* feat(dpav-2563): build and scan management node image

* feat(dpav-2563): Build management node image correctly

* feat(dpav-2563): add scan permissions

* feat(dpav-2563): set up jdk prior to get_version step

* feat(dpav-2563): tag docker image prior to scan

* feat(dpav-2563): test use of repo environment variable

* feat(dpav-2563): remove trailing quote

* test repo variable

* test permissions

* Use env.REPO in with block

* use github event context for repository name

* test setting repository name

* feat(dpav-2563): use correct env names

* feat(dpav-2563): use correct env reference

* use env.repo outside of shell context

* Correct syntax for env reference

* [DPAV-2563] Update to more recent images to resolve vulnerabilities

* feat(OSPO): synchronise OSPO workflows

* feat(dpav-2563): change used image and rename step

* feat(dpav-2563): upgrade dev dockerfile maven image

---------

Co-authored-by: Nikan Negaresh <84400913+nikan-negaresh-informed@users.noreply.github.com>
* feat(DPAV-2601): Resolve CVE-2026-22732

Upgrade spring-security to 6.5.9
https://spring.io/security/cve-2026-22732

* feat(OSPO): synchronise OSPO workflows

---------

Co-authored-by: jsmith-informed <217566155+jsmith-informed@users.noreply.github.com>
…#55)

* feat(dpav-2563): fix to vulnerability and update to trivy scan config

* feat(OSPO): synchronise OSPO workflows

* feat(dpav-2563): update to ignore file

* feat(dpav:2563): update ignore file

* feat(dpav-2563): update trivy ignore file

* feat(dpav-2563): update spring boot starter parent version to 3.5.12

* feat(dpav-2563): reduce spring back to 3.5.11
* feat(DPAV-2608): Update documentation and development setup guide

* fix(dpav-2608): addressed review comments

---------

Co-authored-by: KumailKamranIS <kumail.kamran@informed.com>
* chore: pre release 1.2.0

* feat(OSPO): synchronise OSPO workflows
@github-actions github-actions Bot added documentation Improvements or additions to documentation actions release labels Mar 26, 2026
@github-actions

Copy link
Copy Markdown
Contributor

✅ OSS Checks Passed

All tracked OSS checks passed in this run.

📊 Total Files 🟢 Passed 🔴 Failed 🧮 Score
13 13 0 100%

Results from commit abab8c9, view the full job summary↗️ for detailed results.

@sonarqubecloud

Copy link
Copy Markdown

@nikan-negaresh-informed
nikan-negaresh-informed merged commit 1bbb2cf into main Mar 26, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

actions documentation Improvements or additions to documentation release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants