From 533c28c9fb63aa79089679099d04209579834a0b Mon Sep 17 00:00:00 2001 From: CDR-AmirM <88067035+CDR-AmirM@users.noreply.github.com> Date: Tue, 20 Jun 2023 15:27:22 +1000 Subject: [PATCH] v1.3.2 release --- .azuredevops/pipelines/build-v2.yml | 271 ++++++++++++++++-- CHANGELOG.md | 5 + CertificateManagement/mtls/server.cmd | 10 +- CertificateManagement/mtls/server.cnf | 6 +- CertificateManagement/mtls/server.csr | 34 +-- CertificateManagement/mtls/server.ext | 2 +- CertificateManagement/mtls/server.key | 52 ++-- CertificateManagement/mtls/server.pem | 49 ++-- CertificateManagement/mtls/server.pfx | Bin 2837 -> 2853 bytes .../tls/mock-data-holder.cmd | 10 +- .../tls/mock-data-holder.cnf | 14 +- .../tls/mock-data-holder.csr | 34 +-- .../tls/mock-data-holder.ext | 5 +- .../tls/mock-data-holder.key | 52 ++-- .../tls/mock-data-holder.pem | 49 ++-- .../tls/mock-data-holder.pfx | Bin 2837 -> 2853 bytes .../CDR.DataHolder.API.Gateway.mTLS.csproj | 6 +- .../Certificates/server.pfx | Bin 2837 -> 2853 bytes ...Holder.API.Infrastructure.UnitTests.csproj | 6 +- .../CDR.DataHolder.API.Infrastructure.csproj | 10 +- .../HealthChecks/ApplicationHealthCheck.cs | 32 +++ .../DatabaseMigrationHealthCheck.cs | 45 +++ .../DatabaseSeedingHealthCheck.cs | 37 +++ .../HealthChecks/SqlServerHealthCheck.cs | 34 +++ .../CDR.DataHolder.API.Logger.csproj | 6 +- .../CDR.DataHolder.Admin.API.csproj | 6 +- .../tls-mock-data-holder-energy.pfx | Bin 2853 -> 2853 bytes .../CDR.DataHolder.Domain.csproj | 6 +- .../CDR.DataHolder.IntegrationTests.csproj | 6 +- .../Certificates/MDR/jwks.pfx | Bin 2709 -> 2709 bytes .../Certificates/client-additional.pfx | Bin 2995 -> 2813 bytes .../Certificates/client.pfx | Bin 2979 -> 2805 bytes .../Certificates/mock-data-holder.pfx | Bin 2837 -> 2853 bytes .../CDR.DataHolder.Manage.API.csproj | 6 +- .../tls-mock-data-holder-energy.pfx | Bin 2853 -> 2853 bytes .../Controllers/ManageController.cs | 6 +- Source/CDR.DataHolder.Manage.API/Startup.cs | 133 ++------- .../CDR.DataHolder.Public.API.csproj | 6 +- .../tls-mock-data-holder-energy.pfx | Bin 2853 -> 2853 bytes .../CDR.DataHolder.Repository.csproj | 6 +- .../Infrastructure/Extensions.cs | 10 +- .../Infrastructure/HealthCheckStatuses.cs | 26 ++ ...R.DataHolder.Resource.API.UnitTests.csproj | 6 +- .../Fixtures/SeedDataFixture.cs | 5 +- .../CDR.DataHolder.Resource.API.csproj | 6 +- .../tls-mock-data-holder-energy.pfx | Bin 2853 -> 2853 bytes 46 files changed, 661 insertions(+), 336 deletions(-) create mode 100644 Source/CDR.DataHolder.API.Infrastructure/HealthChecks/ApplicationHealthCheck.cs create mode 100644 Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseMigrationHealthCheck.cs create mode 100644 Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseSeedingHealthCheck.cs create mode 100644 Source/CDR.DataHolder.API.Infrastructure/HealthChecks/SqlServerHealthCheck.cs create mode 100644 Source/CDR.DataHolder.Repository/Infrastructure/HealthCheckStatuses.cs diff --git a/.azuredevops/pipelines/build-v2.yml b/.azuredevops/pipelines/build-v2.yml index 0917633..7530c2a 100644 --- a/.azuredevops/pipelines/build-v2.yml +++ b/.azuredevops/pipelines/build-v2.yml @@ -18,26 +18,90 @@ resources: branches: include: - develop - - main - - releases/* + - main trigger: - develop - - main - - releases/* + - main pool: vmImage: ubuntu-latest steps: +################################################################################################### + # Set obligation date container tags +################################################################################################### +- task: PowerShell@2 + displayName: Update Obligation date + inputs: + targetType: 'inline' + script: | + $DataHolderEnergyObligationDate = "$(ObligationDate)" + if (-not [string]::IsNullOrWhiteSpace( $DataHolderEnergyObligationDate )) { + Write-Host "##vso[task.setvariable variable=ObligationDateTag]$DataHolderEnergyObligationDate" + } + else { + Write-Host "##vso[task.setvariable variable=ObligationDateTag]22-4" + } +# Set release version variables for release tags +- task: PowerShell@2 + name: 'splitBranchName' + displayName: 'Split Branch Name' + inputs: + targetType: 'inline' + script: | + $branchParts = "$(Build.SourceBranchName)" -split '\.' + # Write-Host "Branch Name: $branchParts" + $majorVersion = $branchParts[0] + $minorVersion = $branchParts[1] + # Write-Host "Major Name: $majorVersion" + Write-Host "##vso[task.setvariable variable=majorVersion]$majorVersion" + Write-Host "##vso[task.setvariable variable=minorVersion]$minorVersion" + Write-Host "##vso[task.setvariable variable=majorMinorVersion]$majorVersion.$minorVersion" + ################################################################################################### # Checkout repositories ################################################################################################### - checkout: MockRegister - checkout: self -- checkout: CDRAuthServer +- checkout: git://cdr-auth-server@refs/heads/develop + persistCredentials: true + + ### Swith AuthServer to required branch. +- powershell: | + cd cdr-auth-server + + $branchRef = "" + $authServerBranch = "" + $SourcebranchName = "$(Build.SourceBranch)" -replace 'refs/heads/', '' + + if ($branchName -match "releases/") { + $authServerBranch = "$(AuthServerReleaseBranchName)" + $branchRef = "refs/heads/$(authServerBranch)" + } + elseif ($branchName -eq "main" -or $branchName -eq "develop") { + $authServerBranch = $branchName + $branchRef = "$(Build.SourceBranch)" + } + else { + $authServerBranch = "develop" + $branchRef = "refs/heads/develop" + } + + echo "authServerBranch - $authServerBranch and branchRef - $branchRef" + + if ( git ls-remote origin $branchRef) + { + echo "Remote branch of $branchRef exists for cdr_auth_server" + git switch $authServerBranch + git status + } + + cd .. + + displayName: 'Switch cdr-auth-server code to required branch' ################################################################################################### # Build images @@ -265,14 +329,21 @@ steps: condition: always() inputs: command: login - containerRegistry: <> + containerRegistry: $(AcrBaseUrl) + +# Login to Shared ACR +- task: Docker@2 + displayName: Login to Shared ACR + inputs: + command: login + containerRegistry: $(SpSharedAcr) # Run trx formatter to output .MD and .CSV - script: | docker run \ -v=$(Build.SourcesDirectory)/sb-mock-data-holder-energy/Source/_temp/mock-data-holder-energy-integration-tests/testresults/results.trx:/app/results.trx:ro \ -v=$(Build.SourcesDirectory)/sb-mock-data-holder-energy/Source/_temp/mock-data-holder-energy-integration-tests/testresults/formatted/:/app/out/:rw \ - <>.io/trx-formatter -i results.trx -t "MDHE" --outputprefix "MDHE" -o out/ + $(AcrBaseUrl).azurecr.io/trx-formatter -i results.trx -t "MDHE" --outputprefix "MDHE" -o out/ displayName: 'Run trx-formatter' condition: always() @@ -290,7 +361,7 @@ steps: docker run \ -v=$(Build.SourcesDirectory)/sb-mock-data-holder-energy/Source/_temp/mock-data-holder-energy-cdr-auth-server-integration-tests/testresults/results.trx:/app/results.trx:ro \ -v=$(Build.SourcesDirectory)/sb-mock-data-holder-energy/Source/_temp/mock-data-holder-energy-cdr-auth-server-integration-tests/testresults/formatted/:/app/out/:rw \ - <>.io/trx-formatter -i results.trx -t "MDHE-CAS" --outputprefix "MDHE-CAS" -o out/ + $(AcrBaseUrl).azurecr.io/trx-formatter -i results.trx -t "MDHE-CAS" --outputprefix "MDHE-CAS" -o out/ displayName: 'Run trx-formatter (CAS)' condition: always() @@ -314,7 +385,7 @@ steps: # docker run \ # -v=$(Build.SourcesDirectory)/sb-mock-data-holder-energy/Source/_temp/mock-data-holder-energy-cdr-auth-server-e2e-tests/testresults/results.trx:/app/results.trx:ro \ # -v=$(Build.SourcesDirectory)/sb-mock-data-holder-energy/Source/_temp/mock-data-holder-energy-cdr-auth-server-e2e-tests/testresults/formatted/:/app/out/:rw \ -# <>.io/trx-formatter -i results.trx -t "MDH-CAS-E2E" --outputprefix "MDH-CAS-E2E" -o out/ +# $(AcrBaseUrl).azurecr.io/trx-formatter -i results.trx -t "MDH-CAS-E2E" --outputprefix "MDH-CAS-E2E" -o out/ # displayName: "Run trx-formatter (CAS)" # condition: always() @@ -394,57 +465,215 @@ steps: - task: Docker@2 displayName: 'Re-Tag Mock Data Holder Energy image with :branch-name' inputs: - containerRegistry: <> + containerRegistry: $(AcrBaseUrl) repository: 'mock-data-holder-energy' command: tag - arguments: 'mock-data-holder-energy <>.io/mock-data-holder-energy:$(Build.SourceBranchName)' + arguments: 'mock-data-holder-energy $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)' - task: Docker@2 displayName: 'Re-Tag Mock Data Holder Energy image with :latest (for develop branch only)' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) inputs: - containerRegistry: <> + containerRegistry: $(AcrBaseUrl) repository: 'mock-data-holder-energy' command: tag - arguments: 'mock-data-holder-energy <>.io/mock-data-holder-energy:latest' + arguments: 'mock-data-holder-energy $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:latest' - task: CmdLine@2 displayName: 'Push Mock Data Holder Energy image with :branch-name tag to ACR' inputs: - script: 'docker push <>.io/mock-data-holder-energy:$(Build.SourceBranchName)' + script: 'docker push $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)' - task: CmdLine@2 displayName: 'Push Mock Data Holder Energy image with :latest tag to ACR (develop branch only)' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) inputs: - script: 'docker push <>.io/mock-data-holder-energy:latest' + script: 'docker push $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:latest' # mock-data-holder-energy - task: Docker@2 displayName: 'Re-Tag Mock Data Holder Energy image with :branch-name' inputs: - containerRegistry: <> + containerRegistry: $(AcrBaseUrl) repository: 'mock-data-holder-energy' command: tag - arguments: 'mock-data-holder-energy <>.io/mock-data-holder-energy:$(Build.SourceBranchName)' + arguments: 'mock-data-holder-energy $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)' - task: Docker@2 displayName: 'Re-Tag Mock Data Holder Energy image with :latest (for develop branch only)' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) inputs: - containerRegistry: <> + containerRegistry: $(AcrBaseUrl) repository: 'mock-data-holder-energy' command: tag - arguments: 'mock-data-holder-energy <>.io/mock-data-holder-energy:latest' + arguments: 'mock-data-holder-energy $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:latest' - task: CmdLine@2 displayName: 'Push Mock Data Holder Energy image with :branch-name tag to ACR' inputs: - script: 'docker push <>.io/mock-data-holder-energy:$(Build.SourceBranchName)' + script: 'docker push $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)' - task: CmdLine@2 displayName: 'Push Mock Data Holder Energy image with :latest tag to ACR (develop branch only)' condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) inputs: - script: 'docker push <>.io/mock-data-holder-energy:latest' + script: 'docker push $(AcrBaseUrl).azurecr.io/mock-data-holder-energy:latest' + +################################################################################################### +# Tag images and push to Shared ACR +################################################################################################### +# Pipeline variables are required : SharedAcrBaseUrl and SpSharedAcr +# develop branch tags +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with develop-latest (for develop branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:develop-latest' +# develop-latest-obligation-date tag +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with develop-latest-{obligation-date} (for develop branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:develop-latest-$(ObligationDateTag)' + +# develop branch> build number tag only +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with build number (for develop branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.BuildId)' +# main branch tags +# Pipeline variables are required : SharedAcrBaseUrl +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with main-latest (for main branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:main-latest' +# main-latest-obligation-date tag +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with main-latest-{obligation-date} (for main branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:main-latest-$(ObligationDateTag)' +# Build number tag +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with build number (for main branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.BuildId)' +# Re tag for full version for releases branch +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with full version for releases branch' + # Cannot use releases/* wildcard + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)' +# Re tag release full version and obligation date +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with releases-{obligation-date} for releases branch' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)-$(ObligationDateTag)' +# Re tag Major and Mnior Tags using above variables +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with major and minor tags for releases branch' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:"$(majorMinorVersion)"' +# Re tag Major release Tag using above variables +- task: Docker@2 + displayName: 'Re-Tag Mock Data Holder Energy image with major tag for releases branch' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + containerRegistry: $(SpSharedAcr) + repository: 'mock-data-holder-energy' + command: tag + arguments: 'mock-data-holder-energy $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:"$(majorVersion)"' +# Pushing develop branch tags changes to the ACR +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with :develop-latest tag to ACR (develop branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:develop-latest' +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with :develop-latest-obligation-date tag to ACR (develop branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:develop-latest-$(ObligationDateTag)' + +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with :build id tag to ACR (develop branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/develop')) + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.BuildId)' +# Pushing main branch tags changes to the ACR +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with :main-latest tag to ACR (main branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:main-latest' +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with :main-latest-obligation-date tag to ACR (main branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:main-latest-$(ObligationDateTag)' + +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with :build id tag to ACR (main branch only)' + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main')) + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.BuildId)' + +# Push release full version Tag +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with releases tags to ACR (releases branch only)' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)' +# Push release full version Tag and obligation date +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with releases tags to ACR (releases branch only)' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:$(Build.SourceBranchName)-$(ObligationDateTag)' +# Push Major and Minor release Tags using above variables +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with releases tags to ACR (releases branch only)' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:"$(majorMinorVersion)"' + +# Push Major release Tag using above variables +- task: CmdLine@2 + displayName: 'Push Mock Data Holder Energy image with releases tags to ACR (releases branch only)' + condition: eq(startsWith(variables['Build.SourceBranch'], 'refs/heads/releases/'), 'True') + inputs: + script: 'docker push $(SharedAcrBaseUrl).azurecr.io/mock-data-holder-energy:"$(majorVersion)"' \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 186806f..7b5c71a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] + +## [1.3.2] - 2023-06-20 +### Changed +- Regenerated all mTLS, SSA and TLS certificates to allow for another five years before they expire. + ### Fixed - Links in help file diff --git a/CertificateManagement/mtls/server.cmd b/CertificateManagement/mtls/server.cmd index b3eff54..692a70f 100644 --- a/CertificateManagement/mtls/server.cmd +++ b/CertificateManagement/mtls/server.cmd @@ -1,5 +1,5 @@ -openssl req -new -newkey rsa:2048 -keyout server.key -sha256 -nodes -out server.csr -config server.cnf -openssl req -in server.csr -noout -text -openssl x509 -req -days 400 -in server.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server.pem -extfile server.ext -openssl pkcs12 -inkey server.key -in server.pem -export -out server.pfx -openssl pkcs12 -in server.pfx -noout -info +openssl req -new -newkey rsa:2048 -keyout server-energy.key -sha256 -nodes -out server-energy.csr -config server-energy.cnf +openssl req -in server-energy.csr -noout -text +openssl x509 -req -days 1826 -in server-energy.csr -CA ca.pem -CAkey ca.key -CAcreateserial -out server-energy.pem -extfile server-energy.ext +openssl pkcs12 -inkey server-energy.key -in server-energy.pem -export -out server-energy.pfx +openssl pkcs12 -in server-energy.pfx -noout -info diff --git a/CertificateManagement/mtls/server.cnf b/CertificateManagement/mtls/server.cnf index a449727..a10f5d2 100644 --- a/CertificateManagement/mtls/server.cnf +++ b/CertificateManagement/mtls/server.cnf @@ -4,7 +4,7 @@ distinguished_name = req_distinguished_name prompt = no req_extensions = req_ext [ req_distinguished_name ] -commonName = register.mock +commonName = mock-data-holder-energy countryName = AU stateOrProvinceName = ACT localityName = Canberra @@ -16,5 +16,5 @@ keyUsage = critical, nonRepudiation, digitalSignature, keyEnciphermen extendedKeyUsage = critical, serverAuth subjectAltName = @alt_names [alt_names] -DNS.1 = localhost -DNS.2 = register.mock +DNS.1 = mock-data-holder-energy +DNS.2 = localhost diff --git a/CertificateManagement/mtls/server.csr b/CertificateManagement/mtls/server.csr index 5d468d8..2c0bfd3 100644 --- a/CertificateManagement/mtls/server.csr +++ b/CertificateManagement/mtls/server.csr @@ -1,19 +1,19 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIDETCCAfkCAQAwYzEWMBQGA1UEAwwNcmVnaXN0ZXIubW9jazELMAkGA1UEBhMC -QVUxDDAKBgNVBAgMA0FDVDERMA8GA1UEBwwIQ2FuYmVycmExDTALBgNVBAoMBEFD -Q0MxDDAKBgNVBAsMA0NEUjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB -AMCYK/r1gCqFEcA8sKJmPDpAPYikr1rNrDtkRiNLoEGZjQBx6wL5yl1//OdT8OY+ -ulCzivu2lDSpPcN6gYVyLjyshfDQ4e8wjyvuewoEa9yonbRPQJcMGajl3b+WP8H2 -zoMXdCqbhXw+7s9SVWivhANLYQ+gjUu5d+XeHiajc3pv1A7Ta+vEfSczCEF/uySg -XRIPPxz9CslHq8OnuxK8JRMtyhp7gEK52GOid6Dw39AZTzeYpXmm8Hi1Kp1ttmhi -yOSwG3+/Y0Ls7QTNNhWDTRwWOwbsXY2236oXHvcsYC60fxs7s/cxfYF4V7T0gC5j -xZ5GNwEE8CgIS68MniWYk2cCAwEAAaBpMGcGCSqGSIb3DQEJDjFaMFgwCQYDVR0T -BAIwADAOBgNVHQ8BAf8EBAMCBeAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEwIwYD -VR0RBBwwGoIJbG9jYWxob3N0gg1yZWdpc3Rlci5tb2NrMA0GCSqGSIb3DQEBCwUA -A4IBAQBsQbxxSmJsvNQkysrAQKIqvsLEWYzqkMwZUcamPVbJe4Bc3MLsJa8wcWh1 -W8n61uBEpxpbSNb04ZYttU2kbFo0yMT1LNkI6ous8nXY8nSFPq4z1QS9/th2GqUO -8sZppRyofSWBioYd0PG3ciolvIZoxez392AYBg5a1kJlsrT3m7hL9FhCW6iI/9WY -6+gg0pCTGmRYlZno8hpKOWj0V2RBCTJsatjC6TXrWnMGUQQxDowMrQWqXqJeJXj0 -U7Pty6ovGq75L8R8zXl8DCKwRhP2btBVpa9B/AX1LXylMntLsdscQJISnX+hskH2 -U7RhRwjoewYcboi+J/GS6JLHBXNJ +MIIDJTCCAg0CAQAwbTEgMB4GA1UEAwwXbW9jay1kYXRhLWhvbGRlci1lbmVyZ3kx +CzAJBgNVBAYTAkFVMQwwCgYDVQQIDANBQ1QxETAPBgNVBAcMCENhbmJlcnJhMQ0w +CwYDVQQKDARBQ0NDMQwwCgYDVQQLDANDRFIwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQCyDecqnpVolmCG402dwf7WJGF0L+NySrI6CFYbSuyP+TJJ/fqd +8yXMoMXHpSLtgKTaUAKZhdQ1AMDiVowkFiGoSZRTDQMyrhfn9xtlATRfhwT+G+Ht +RNbUZZpRH3Ky4q7HCW0Pos87Mcxem7VaNb3mi2VpevSEXYEPzv8ZwdZT4kHx/cM+ +RclAHbNT3BmzhUVPDqLeq3Mg98f+eYmmdzEGHXjr3JholuqXw7EVjWHOL4K3h7fC +PrHU58x78pr84TENR28c8wYk57qr6J4/4r35goj2oj2r1XnPh5ajzam/+ar/BlpO +JNrtfOzYweWtzDrU7A6xMYlHD81svNhqCnDnAgMBAAGgczBxBgkqhkiG9w0BCQ4x +ZDBiMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgXgMBYGA1UdJQEB/wQMMAoGCCsG +AQUFBwMBMC0GA1UdEQQmMCSCF21vY2stZGF0YS1ob2xkZXItZW5lcmd5gglsb2Nh +bGhvc3QwDQYJKoZIhvcNAQELBQADggEBAK94YAkQ75NTqbxWsAAGeBvKur59lB7d +3o4BMhN1D4pUjQnJIijPv5ECynlU+f9T3hnvWD/Y4eJvw5qUhoKC3uLBnmi81meI +Wtj3PZE6DEkcJfiLxpDdnnOkmFRMB/RcplPFES6W3AT69wvhB5qauyUlE9T55GtS +aalzxustFg5daxsZKxzTsiUI+sUyPI0TaDECAX34nuDaXxrh79ktkVk+oT8M+yiO +BvVTkUvfbXeGRM0pXzR+J9armjjRWmb357IhIgjWcpJlHR2TXsgc0ish8j00M9W5 +hrEnTg5JcTOCbp0qLMFjVMgSyPSMRQkUPbk+bfT+VKALtYnW4rpzOjI= -----END CERTIFICATE REQUEST----- diff --git a/CertificateManagement/mtls/server.ext b/CertificateManagement/mtls/server.ext index b7a0210..65d8bcc 100644 --- a/CertificateManagement/mtls/server.ext +++ b/CertificateManagement/mtls/server.ext @@ -5,5 +5,5 @@ extendedKeyUsage = critical, serverAuth subjectAltName = @alt_names [alt_names] DNS.1 = localhost -DNS.2 = register.mock +DNS.2 = mock-data-holder-energy diff --git a/CertificateManagement/mtls/server.key b/CertificateManagement/mtls/server.key index cfae6ff..62b4c62 100644 --- a/CertificateManagement/mtls/server.key +++ b/CertificateManagement/mtls/server.key @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDAmCv69YAqhRHA -PLCiZjw6QD2IpK9azaw7ZEYjS6BBmY0AcesC+cpdf/znU/DmPrpQs4r7tpQ0qT3D -eoGFci48rIXw0OHvMI8r7nsKBGvcqJ20T0CXDBmo5d2/lj/B9s6DF3Qqm4V8Pu7P -UlVor4QDS2EPoI1LuXfl3h4mo3N6b9QO02vrxH0nMwhBf7skoF0SDz8c/QrJR6vD -p7sSvCUTLcoae4BCudhjoneg8N/QGU83mKV5pvB4tSqdbbZoYsjksBt/v2NC7O0E -zTYVg00cFjsG7F2Ntt+qFx73LGAutH8bO7P3MX2BeFe09IAuY8WeRjcBBPAoCEuv -DJ4lmJNnAgMBAAECggEAak1TsSACTvXF13JoGCsPwSMmE566fwcYsmtlXyPl329u -aTl3etv+u17ia5hkVeF3mwWOh+K9qNdlFNkwVkSwiqK7BzF0Ez6dN6VY2i2Yj2Gu -MhCwWO6/1v6RR6cZp+ifEbJHVyEiK3LdAyexpqeB2QOpHiQC+TH0oLbZs3/yRDgw -50IuRXS5hRYT5aPEoTNUEo+jpuBt+a5PmB3LXq/gRboNS/SAJqmd64Cumt/bsA7Y -Uk9OZA+3PyQW3wcRQ2LVQ7cRfo/oO+r00FVhuVAufKxfw3rsuHhSrZ+5IBy4rYe3 -jQFQYeSOwlySSEtAUIgbc2aZoRh7cSqyYvi+4MAtSQKBgQD1DGhAF4KXxWV1Pw40 -D901TrLZOVQbppv/XpPg5MMQQGiWhqMwIPM0GzO12zTfruG7zp1AkOJd7jGixMg9 -qljYG0kEolQRy7UWOpMF75fAYBLSyir3WTdvADUlZj963liaMR9+yHSN4esZUmSz -QuQWi9R3+amrx26j1wHrkpDDxQKBgQDJM6OoKYeI7ZmQk7euWidSm9K9Yw3iCPF8 -sTBkCcH45I9Sxfk4hYWyuCli69Afsbh9V7PN6Nvuh76ISMMjBXIz8c2y4Aq+25Hw -g162bJQdEqxkIGZUZXMnN8L4y76HL8mPdeB3mYZcIUP9usRWKR25BqOsyT9Ai0Yv -M/GwKiPxOwKBgFhPSlqenl+XscKZIMM+XFfTrrx93oPAfUOAkAZiKrH2pDpq9vBn -T34dt3r4LovV+F+4TA9yp0F2j8i65fbjJvVqj9vtrCJlqTMDlOx0tdmMRfxVAzr0 -mfeUuZJq0MG003Vt8o28K9Td793GRagcmRpO9hjujmjrjEHbQEPnI+iJAoGBAJkB -Sh1hp447kaJekzplmK27jeEz6KTRxELcxD3vJbFOrqd1ofaXo3qrjd2KEnVnwzKe -dT/LKyUT2ZLuMmb5h0V1RsYWllVZyHusi2QS4ffR8YMbGHZpx841G3H0DunjL1aH -f7Gz8HczXO8hDpmvHslMAUAusok04KSYzdz3zultAoGANicZdE85LLQPU85ssCTx -Q/QrQJt2MEll+B4rnjXnZinFKBSin3RveIM7Yp3xyowi6R7iSD1/fZZEuzWC0CBP -eKvK+XcFs1u1bnfrOAdKPObAIujYcbVhB0G6R/VZmEAOyOSLp6GYqkt0OapDk+74 -pL5vSqfF/AGCalkn245fmHw= +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCyDecqnpVolmCG +402dwf7WJGF0L+NySrI6CFYbSuyP+TJJ/fqd8yXMoMXHpSLtgKTaUAKZhdQ1AMDi +VowkFiGoSZRTDQMyrhfn9xtlATRfhwT+G+HtRNbUZZpRH3Ky4q7HCW0Pos87Mcxe +m7VaNb3mi2VpevSEXYEPzv8ZwdZT4kHx/cM+RclAHbNT3BmzhUVPDqLeq3Mg98f+ +eYmmdzEGHXjr3JholuqXw7EVjWHOL4K3h7fCPrHU58x78pr84TENR28c8wYk57qr +6J4/4r35goj2oj2r1XnPh5ajzam/+ar/BlpOJNrtfOzYweWtzDrU7A6xMYlHD81s +vNhqCnDnAgMBAAECggEAQ1IkZCXfodKxnm6U6x/tRXQt8KsmmRELAAwk2l7iwLDc +xcMkndHQKeVjwk96vEfWjMCRqxBBouStCSbmB8LiaOmhDiGuYtwWJ9tzXSYucivv +xFAwhPBxNY9Q4Hk+ecphgNnchXvuVJhIiEDhOcF2EpQD/PTDPMTJxntiUo/KhJ42 +Ph7dqLWytXRI3YJ6xH/mFRE4ir6tWcgEkGT48Ws4XzOZAhiH9kKUSPHs7bOgNPZH +rZ1e/REuXxd2oWqxwkzHge76RkOESUV4iMWQUDAZbiaa7f6ehmeft8zLDi8hoAu5 +qpEuZFdQd6QV4+fS9rsNPumzRBGIAnqLcUf07I1cYQKBgQDsX7Vy4nvf+W8dGgZl +qgtmrB0zuNS8iRiqPvN/m9CfIIPk5F9K0XIf0vJrasOAUL5JdWB6giXxhW3wYI6Y +ddBdXeBQW/kY0O5c6YHBGUt7R1CBQME2AaZYp/B1CIkZXr+coZkPcmpte1UC2dtY +re1rOhSx/X7/Wt/DW5xZSBTgFwKBgQDA1pJJ2qymCcoIqw1gPWT5RWEj+jez6aaJ +zJubiJ5uVQNmXjHaUMrHp1cLIjkuYUjNB0uRfM1EGBTFRqeoWHH5cFXatY1O4O1K +eoaXKzxWpK6C77VIHydj3BLJ15SHyumj2I6pvGAszaJVtdHZIBVRvRcVeuskr5Fp +tLA7+UgnsQKBgDGh0xbBaaNY27TvnwI/108Cusr+d2TzIIO23iggTojrKeao8T1j +hyQZhh959nz990azZ8OxikgRbUk47RgkPNEuAgi9lytXy4Uk3sLuDcRf8A6Dy04M +wKIC+WGJnkf+dhtsbxgoPSKp7+q+Velj8+M8+dV51e3GZg++L7Erin6XAoGACq/Z +i55C0zDXsYNJSnwcjHP73jKPw7i/MgPU29nGbfboKVQvDxpLIqVzfXp4EMnzbulo +lreD6LIs9IHl6L5+EoTXPTeyjRyKCgagTuBmh6a4xSjjswuG81HO+MCpypzENgBa +Z6245sK+rGFXL+FHTTBdhyM4xN+1/1W0Lp6yEQECgYEArpypGcQX8BTHgAp+10Wh +skzxCyDCeB1dcyZu8dA6joMgQofwAQmvOhA9E40ozy2N+oWe2TGxdvi+GCBonZyR +udhcIkpqIZ50R5gKYJTtiOpEYL5ZgAROaW9FkorcPqYy1tYzJn0vmWFiwGCS/IVq +jmPdvTySaaMtfWukUUckfVw= -----END PRIVATE KEY----- diff --git a/CertificateManagement/mtls/server.pem b/CertificateManagement/mtls/server.pem index 5cc58b2..abafc0e 100644 --- a/CertificateManagement/mtls/server.pem +++ b/CertificateManagement/mtls/server.pem @@ -1,28 +1,29 @@ -----BEGIN CERTIFICATE----- -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 +wkiVMGumAw== -----END CERTIFICATE----- diff --git a/CertificateManagement/mtls/server.pfx b/CertificateManagement/mtls/server.pfx index 6b1eae94de3739c2494ea6ae9c16b4ddd9e8566c..4ce1b6042c177a0636acca3c253b8d7b973d4c4a 100644 GIT binary patch delta 2788 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�Nx-6lZ!q6RsEY~KPTF}3tl@>CMR_K} zP(Zo^pwSqw>T8NSS~TP{NpeRXXOO6yxVnrR_va!}vZ_zh0dpFQI+uTx2HgPF%nq0% z>x){W+nHV&cgrAkTfnK-*|W^Tc-+)|)nm8Taag0T+2#iNyRXr0*L~Kc%P6F?ZSF|* zH0Au+NlHM=W60oxsa^I~9|3fG+a&LNQUE!6xFflM8FbM_)D-Ht!8U+9Z6ns5xFYLxN?wkqB am}uP%;AhgFlLQE`F0kq%XPsOE0tf&qEI|?g diff --git a/CertificateManagement/tls/mock-data-holder.cmd b/CertificateManagement/tls/mock-data-holder.cmd index cdab3f3..8d68e9c 100644 --- a/CertificateManagement/tls/mock-data-holder.cmd +++ b/CertificateManagement/tls/mock-data-holder.cmd @@ -1,5 +1,5 @@ -openssl req -new -newkey rsa:2048 -keyout mock-data-holder.key -sha256 -nodes -out mock-data-holder.csr -config mock-data-holder.cnf -openssl req -in mock-data-holder.csr -noout -text -openssl x509 -req -days 400 -in mock-data-holder.csr -out mock-data-holder.pem -extfile mock-data-holder.ext -signkey mock-data-holder.key -openssl pkcs12 -inkey mock-data-holder.key -in mock-data-holder.pem -export -out mock-data-holder.pfx -openssl pkcs12 -in mock-data-holder.pfx -noout -info \ No newline at end of file +openssl req -new -newkey rsa:2048 -keyout mock-data-holder-energy.key -sha256 -nodes -out mock-data-holder-energy.csr -config mock-data-holder-energy.cnf +openssl req -in mock-data-holder-energy.csr -noout -text +openssl x509 -req -days 1826 -in mock-data-holder-energy.csr -CA ..\mtls\ca.pem -CAkey ..\mtls\ca.key -CAcreateserial -out mock-data-holder-energy.pem -extfile mock-data-holder-energy.ext +openssl pkcs12 -inkey mock-data-holder-energy.key -in mock-data-holder-energy.pem -export -out mock-data-holder-energy.pfx +openssl pkcs12 -in mock-data-holder-energy.pfx -noout -info diff --git a/CertificateManagement/tls/mock-data-holder.cnf b/CertificateManagement/tls/mock-data-holder.cnf index df46c8a..a10f5d2 100644 --- a/CertificateManagement/tls/mock-data-holder.cnf +++ b/CertificateManagement/tls/mock-data-holder.cnf @@ -1,10 +1,10 @@ [ req ] -default_bits = 2048 -distinguished_name = req_distinguished_name -prompt = no -req_extensions = req_ext +default_bits = 2048 +distinguished_name = req_distinguished_name +prompt = no +req_extensions = req_ext [ req_distinguished_name ] -commonName = localhost +commonName = mock-data-holder-energy countryName = AU stateOrProvinceName = ACT localityName = Canberra @@ -16,5 +16,5 @@ keyUsage = critical, nonRepudiation, digitalSignature, keyEnciphermen extendedKeyUsage = critical, serverAuth subjectAltName = @alt_names [alt_names] -DNS.1 = localhost -DNS.2 = dataholder.mock +DNS.1 = mock-data-holder-energy +DNS.2 = localhost diff --git a/CertificateManagement/tls/mock-data-holder.csr b/CertificateManagement/tls/mock-data-holder.csr index 5a8e48b..5530e32 100644 --- a/CertificateManagement/tls/mock-data-holder.csr +++ b/CertificateManagement/tls/mock-data-holder.csr @@ -1,19 +1,19 @@ -----BEGIN CERTIFICATE REQUEST----- -MIIDFzCCAf8CAQAwZjEZMBcGA1UEAwwQbW9jay1kYXRhLWhvbGRlcjELMAkGA1UE -BhMCQVUxDDAKBgNVBAgMA0FDVDERMA8GA1UEBwwIQ2FuYmVycmExDTALBgNVBAoM -BEFDQ0MxDDAKBgNVBAsMA0NEUjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC -ggEBALDRyYftnSLsDjxNcFlOgOFtA40Zs6oemnkGfa7uHOgGYEEZSdaGfzUkuNHw -qQkByT6XsNzsFf65OKrxF/GKLl0Bgjukiik/2/+GAC1yeo2clvTTuHyhEaHdb6y0 -gNl3q2InFkI5gTrplEs9JvavQHj/a6x6ExkeSCcQJdhEauumxZI1lDRXozsxag2w -WMRikPTEW/UnECMKCsAVg2qMRY6Aer01mMjf1ntxWipB1P0Lkms2l858iuCDgBGK -9DocoZxsKEqte668k0AUl+lTKCnt9J4iuDz+J7su3nkkdeW/cpssHOowsFIameG6 -obOyt2IlMssZBW5UWA2SXnTjcJ0CAwEAAaBsMGoGCSqGSIb3DQEJDjFdMFswCQYD -VR0TBAIwADAOBgNVHQ8BAf8EBAMCBeAwFgYDVR0lAQH/BAwwCgYIKwYBBQUHAwEw -JgYDVR0RBB8wHYIQbW9jay1kYXRhLWhvbGRlcoIJbG9jYWxob3N0MA0GCSqGSIb3 -DQEBCwUAA4IBAQB29rTPiI1kQoyamdBQOgnSoP7vvvdKGbchFMGA/+L06RzIKokg -TDYKD05TBVUz8jwlh4heEX+LjAnvycwon9ffH0lREkH/vqfdi49MjwJTAEPAYOjI -clKHh/M2PpdUDtRAeLD6CHUQtkhN/VIi+Xdc3keNEQbZwM8KiVJ3wDTrYy1GQwUS -BJqXD7WcMd91u+cI2ob27S1H+Ng0ARXth9oyeyXPHgsQ6tQNIUc8gubw8bxPPiJ6 -4+mvb+Yw+tiiwIWBQ9xBUL/DdIQ2s2M17f3bKyD1H+2ufopoaRKZ0BoquxMy0GIm -ijC4d45vEu0BPndwhZCQGd82wp+LAiy+he1s +MIIDJTCCAg0CAQAwbTEgMB4GA1UEAwwXbW9jay1kYXRhLWhvbGRlci1lbmVyZ3kx +CzAJBgNVBAYTAkFVMQwwCgYDVQQIDANBQ1QxETAPBgNVBAcMCENhbmJlcnJhMQ0w +CwYDVQQKDARBQ0NDMQwwCgYDVQQLDANDRFIwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQCjMvLBU8fnp4w0BAg/weO1EmN+jZXXm1FZo2ZMVvPczefY6SQN +2ZhRAUascHgrruUd5UwzbmQsO9dDqacU9KNzuOGIerqAgd6qiqWE8IiCuLgyieKv +zMOMOuexiscm2SdcqOau0czawNh0X0hMXDJ4dhZQYa1z+BchgRpBFPiRux0jLLJG +ebDqrTZe19SrF0oB2z/1xYqK1Qzk+6e8Gh38CGYxkYUN02gXa5Vgrcbh8goFgPQr +w9iyE5yki6apu5dH0766mUQi6Q4oHqaSRkgoUOYp4cT/n+vTDaS+pl4Lo7/S2ezb +Eq3Poe/cG0I15JQqBhZ/2fv0FhToaDDmtVjTAgMBAAGgczBxBgkqhkiG9w0BCQ4x +ZDBiMAkGA1UdEwQCMAAwDgYDVR0PAQH/BAQDAgXgMBYGA1UdJQEB/wQMMAoGCCsG +AQUFBwMBMC0GA1UdEQQmMCSCF21vY2stZGF0YS1ob2xkZXItZW5lcmd5gglsb2Nh +bGhvc3QwDQYJKoZIhvcNAQELBQADggEBAFD7JnGe5jEnSvj5dM4na1uUkqGUontX +sYbMdd7EtN13yqtS2OYK04Lc1zPwcVmsCr+M19sh+3NSaynL5Tn5NVCjCsp8g7rS ++KzL/Mr+e09WJam9gqJbR/Add5vOEtEGgMjtzNZyRX5OOe2C+fxY3OEu4dSxaFHg +j/sl+4POLeIHnw7/Cn1J6VnE/W8TIkqwAKIvr5FEghny+aegbY8N5Zpv/ZeRc9nS +kCy00/lFlnq1ZFYLzwnL98onFtWoOyIXaaUBe0YkwKkR0F0nd31FbYS8Dz55TpEi +P7zqgyce+uxtg7LwZz8wj+pYwsQI+1h+owEb/qq59/Y8C+e6DbHhVSI= -----END CERTIFICATE REQUEST----- diff --git a/CertificateManagement/tls/mock-data-holder.ext b/CertificateManagement/tls/mock-data-holder.ext index d76044f..552191c 100644 --- a/CertificateManagement/tls/mock-data-holder.ext +++ b/CertificateManagement/tls/mock-data-holder.ext @@ -4,5 +4,6 @@ keyUsage = critical, nonRepudiation, digitalSignature, keyEnciphermen extendedKeyUsage = critical, serverAuth subjectAltName = @alt_names [alt_names] -DNS.1 = localhost -DNS.2 = dataholder.mock +DNS.1 = mock-data-holder-energy +DNS.2 = localhost + diff --git a/CertificateManagement/tls/mock-data-holder.key b/CertificateManagement/tls/mock-data-holder.key index e7a7f57..455c9be 100644 --- a/CertificateManagement/tls/mock-data-holder.key +++ b/CertificateManagement/tls/mock-data-holder.key @@ -1,28 +1,28 @@ -----BEGIN PRIVATE KEY----- -MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCw0cmH7Z0i7A48 -TXBZToDhbQONGbOqHpp5Bn2u7hzoBmBBGUnWhn81JLjR8KkJAck+l7Dc7BX+uTiq -8Rfxii5dAYI7pIopP9v/hgAtcnqNnJb007h8oRGh3W+stIDZd6tiJxZCOYE66ZRL -PSb2r0B4/2usehMZHkgnECXYRGrrpsWSNZQ0V6M7MWoNsFjEYpD0xFv1JxAjCgrA -FYNqjEWOgHq9NZjI39Z7cVoqQdT9C5JrNpfOfIrgg4ARivQ6HKGcbChKrXuuvJNA -FJfpUygp7fSeIrg8/ie7Lt55JHXlv3KbLBzqMLBSGpnhuqGzsrdiJTLLGQVuVFgN -kl5043CdAgMBAAECggEALLQNSJFZbe/SNYq6gcmoKdX+1NiPpM3x7fEnK2fF5R9f -jHXRRixg0tXC6Ej4428RKwL80w3ZDbpUSluD2yw9RoRQIbYavA0KGNMPDm5n74+M -Vr+EX/X02EB8sGQ+QzzPFpSdOwcA1h0hwdfnFuz91tl0pnmChJI0WbPqbX/2rDbk -5LjsvXOvSruk9RRcvk7ppRf/aOer9BesAhbOkwUykt90G//8WaiftOnEhIoYnhOl -TV5K+oMkiByeh2+OiarJrV5V5BSm+TQBYb8cs/3GPwR1CJ1pujE5/AxgKr/hktEk -ELLkBOjLy2AchZ4R/m0DKv4N/yY1iT0uw7DTu5l+3QKBgQDi7JQtIWsy6AG77tu2 -fNDYPAibLx0c9ed52Ide7UrCepMek28dRCUXc5q3szYy1nYg1+oWBnwCC9KpLYhJ -M66CbFmmsvnV3Pto5M29U6bbbadruKNwh/jKpxgjKyo8FX9UiO6q1iuSUTqJF+IG -ATLwhQx/8QefkrK6d1aQfyjggwKBgQDHebUYTR6ElvAXLESDlZ1+3+vnkkc+kCnP -j2W2s04wD522du8Qzp1GwVx15qKdGIEW5Vzo+nolH+LfslXqfhL5SQJfMXj7L5IQ -K/WngOpkTP1oFBLbvq2h99rnYg/5puy3nwapkG47V2JghHbL/Oyd35CsGMdNTNOJ -RXbpaK1gXwKBgA7OSMy5BXmI0bQlXYiGlEnHgPg/FrMxCC1XB14WNW6C+N5h2Doc -nB7vmASsWLjwbTyvWcKeIbEwfEo1glLkYFp6H09VFh/yDyVE6HeV4aknemj43xEU -jhMK2/RPeK366Rfm50uWNbmSOzN+r2yc32n6BFrEqy6qL6ci6i77XPtpAoGAL83x -IoPI3om1vDf1q3s9pVxQksyxmkK+YmnBPIm4ITh82W+jV2nMs1o/qFm/etqWhUAu -hf8RKrh7jJSWln3kWi2vDdUzYy9BV/LRCnWQtrzktf6pjlQiFIDryyvrHC9u54qK -9DQS1tHYV70nIzfYFPWxHC1MBjB1OZ6WItXdRw0CgYAd8C6Cq4IfCNJZS/KDyuuP -Tlygk9txwJVFctvC8pY1qwoKKv8+L1RMlYQvi4ov9C6JsO9Ib6fW/IhgXSXrtAwf -hpf4O4p8i+fJ/e7SleZQpuDJCT0Rq22LLh0VMjEa8SdSt1fptG0C2+gyWUZL7gXJ -1F3UerOK937BwyNOxwB25w== +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCjMvLBU8fnp4w0 +BAg/weO1EmN+jZXXm1FZo2ZMVvPczefY6SQN2ZhRAUascHgrruUd5UwzbmQsO9dD +qacU9KNzuOGIerqAgd6qiqWE8IiCuLgyieKvzMOMOuexiscm2SdcqOau0czawNh0 +X0hMXDJ4dhZQYa1z+BchgRpBFPiRux0jLLJGebDqrTZe19SrF0oB2z/1xYqK1Qzk ++6e8Gh38CGYxkYUN02gXa5Vgrcbh8goFgPQrw9iyE5yki6apu5dH0766mUQi6Q4o +HqaSRkgoUOYp4cT/n+vTDaS+pl4Lo7/S2ezbEq3Poe/cG0I15JQqBhZ/2fv0FhTo +aDDmtVjTAgMBAAECggEAX3iXoNdlU7SlhWxycvH3Rt9aCxfC992pynmXh8M6aAqg +vjktWVjZDVJkyM4Gzu9Co6mXWWMUAPiE5tVhpBW1ZSZb8d5yKmlPHI99YvbftTFg +uFgHn/Z20xtGnYtlE+nnaAJ66PxdDf/Q4Ms43Ur2T5gtV5q8wOH6jiQbesVM4NsZ +Tqyi8uwc8H6rC4WUDFIa6IKO8KaIcX+q00uGgGjCH1QVpC/xBThOPEfFn3DiWj7I +Rg4dHx+jAeQXPUQmdpHzMKf+oV3tLbVlSawz0Ls+8FQKIs2QqYeTZ+cZnZGlDypp +0OQqvT/DZclB64ajtmahWo50V4bqzN+JW/v+hYD48QKBgQDUWg6BswdhINWIMuxS +3DI00pq5H9+E83iCUwJOEk9TgYroRXwpRfkIWH5/tSN6F7iW+VH11vmKZpWIHG2x +5oFlvtIS3gfwUCpDV4/01+vV1rhfD5tFU4XAa/W42qCPBIAINkNxxjnEqxbfXRfS +QExZahsikSyPEOaw8sAQgI2qSQKBgQDEvnmH24ix36BbBKj7+DZ6KS+cM5Bs3Jxa +lLWY6SvNLqREWwkqGBCfsmLaNSD17lxlEQPsg8DNnswp0rns+Ns+iCMiy3al6M2b +8JQNhw0oyOYYM2rVVZptUwE8O9+0OEthX2W7g6xgKwyXl5oimJ/qqvqokp9w4cEB +xE16rCZKOwKBgCIuQMmFvLlYpKZgtAN+aCJyh+8mfz8SRaKMpAFXFye04VwT2zF1 +julV/T6nNIexi8fZZ+Tvbolli8o18T5CgS+UcJIS5So8bSEb1hMuMkrgXhsHExIs +qInZltrjbha3PbiUq3SD2MacV3kqrevs55045BdDUO3SZZ+z41CEsMjpAoGANrDk +Q7npM9kAUIzpFLIZIrhUPc2vtjNVW3C/UnRu8qimjUHpOERcSqhiBlqCgRrzoDys +pJCzhfVAt9eWS6OZ/rYFXmTE5LXkghbMcT47kDzYiZ2xcwBK310VmNLkCssjWTwV +oZymzEzrQTCpbjiTK76/0yB/Jff7mSwihZlZQ4UCgYAarfkgEoApC1NI178pNJeb ++SZBEPl+CbNJNHHwBtLqPDJnT97rVOQAx6LnnwI91g8r68/03AFI7EcVm7pQOErl +oqj+lnjlSBVvB/9SA9kAXBqhGCk1UfQRP7dUVqIunzMiaMOTDYBQ/GykOdiYUNX1 +CrfownCToH6bIkeazKr6VQ== -----END PRIVATE KEY----- diff --git a/CertificateManagement/tls/mock-data-holder.pem b/CertificateManagement/tls/mock-data-holder.pem index 87292d4..3d358d8 100644 --- a/CertificateManagement/tls/mock-data-holder.pem +++ b/CertificateManagement/tls/mock-data-holder.pem @@ -1,28 +1,29 @@ -----BEGIN CERTIFICATE----- -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 +IHT7erH41g== -----END CERTIFICATE----- diff --git a/CertificateManagement/tls/mock-data-holder.pfx b/CertificateManagement/tls/mock-data-holder.pfx index b83645049c267414247ac024aabecdf4ef71ccc8..62ecde9b5cc348732753479d6fa29e54df7ebb24 100644 GIT binary patch delta 2788 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 aGh)m|;UG?Pp#%sq7y2sAWX5&^0tf(D0x$gl diff --git a/Source/CDR.DataHolder.API.Gateway.mTLS/CDR.DataHolder.API.Gateway.mTLS.csproj b/Source/CDR.DataHolder.API.Gateway.mTLS/CDR.DataHolder.API.Gateway.mTLS.csproj index 84db56b..15de07a 100644 --- a/Source/CDR.DataHolder.API.Gateway.mTLS/CDR.DataHolder.API.Gateway.mTLS.csproj +++ b/Source/CDR.DataHolder.API.Gateway.mTLS/CDR.DataHolder.API.Gateway.mTLS.csproj @@ -3,9 +3,9 @@ net6.0 win-x64;linux-x64 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.API.Gateway.mTLS/Certificates/server.pfx b/Source/CDR.DataHolder.API.Gateway.mTLS/Certificates/server.pfx index 6b1eae94de3739c2494ea6ae9c16b4ddd9e8566c..4ce1b6042c177a0636acca3c253b8d7b973d4c4a 100644 GIT binary patch delta 2788 zcmV+xY3} zx^IuL-#10^%uKa}n6D^Tg1`L`5Ckcr=fI+Yum#c1Lg;j{JP0aI*2uZLaMZ~v#Aa=@ADibpq4?#8=i zM_%LY5$3m&be?Yg_Tqy1q70lvAsn55w0=YM&L>-}VmUqLe<6dK^BdYh4a#;id6zCf zR;?|@8UWwHt3nHj4OcK8M+Ot8sM6vZ^jNKKq8~xDr!RmXMw{)LEutN@e9+3xrN=gR zv}Sz#U4(dj^FBiJR1L8VOmI-vu!QFXH7rQ>U8rd|jesbx!>mh^8LO5HM~91l8qQZ6!!yS@78^;Pn3sG#YMgCl8~1PC@*mDwuXt!=BIxxkeABL|y!QaFOvT`p!&fT< zOR@V74ri4Dx)3Sm6WxL-4Ln=1bhGPj?S&?1ct*P~U4kVQI)fx6OI|O3tQ3Y4^p}b} zh=#7H+IAB-dQ*w@Q?f2QGF3RVw@~7M)VLf&|LCKss**)5h6~^J+?g9H2Wwg~%x1=^ z^DLNI%Rjzxddqv_`&0>8my8^qWpBiMG-_yczN(|hJFXp0isy?BA^lZCplo54r8NWZ zmy7BRspss67SE}io**B8sk;}6`gRgjY4e~`L|{r&_yg`UGbFVZQ2yU_p3Kj#_I z_;I)uNuRB;@{s27F1a~nKFvWCbu|)xo(QOrc#5bp1t@ZvY4GO801P2S-dWr{4ln^; zWQb+Pxmf_*el#+FdEvV`Ew~O&+!oA#r1^0NiBEITt?kELI)-N&LIKzx=__9WVw6Cjg9vCKX80mbvtb z?Ys6Mf;`(B#*Splxg&mEH7qIp@gEm2Ok3rZ?~&y*tP0nPNiQ^jkMi&S>Zlah{a)gr zP1vE!FhRLm>)90&0|nKGzKM+m>gzIj>7Rpa)NFMuu6pNRUe1I0RqB5s z+;-@9r~H7MzNEf1xA0i zGBGD53%XeX0tf&Ef&|Fdj0dfOmwcueWmv{nUn(rf$X@8ePoS+uuyuS@=L!M)AA%hme3(+4!5I zdhDlD0oAlZRgLn9e{p~yRWP6fFNJ?JGB{|N=I0cZfUHzjclppyB#-!-5#Xd)Dyh{6>xv;Bed$O zawlTBGb9KtMp#PZ?24ALIc(BmBE}k-`9;s^j$QWr^Bp4?5$#^+QenM-{|BMiHL-CD zw?O}uZI&drx%8=W8y0Jg!enU%2~=KSjwjoL-w^eW^_OTl-ddRSklZL85{lE(lsXXTy^yE);D9Xo%X=SVH|%tk;7k44!>WV z$_VK8k@sEN&OW;hlt`F9h|Ghj1xY0K-KFgg>ya$!RIHJmPYDO?Fd{?**WG@hmnZ49 zpL%|#^xf%hU}9g#e`9cS3P(k3kFrOK-c zG~7I~!0aVh=`F~lV1-~8<+?|htaY+N8-Vd28%iW^gEXDW_#go(O7>-2>Ie5abiqla)1H1x*;sG5^V z18+F?bw?*n3pIZVh*7r$G+Xz3c6=2<>!3Y4+XW2{NwRmQ%)=97c)U;al_eM*3Gkbo zn*H~0A{+A^b{kn7VcrmQ4kd=R#jR?7FDqj9Jax0u1=PmJc@r%f#23u9EvHJqb-(N`*-*eu&hyP|99;<15_=OZ`z^(f^&1qA zsBr<&<|cBS-w(egT{ku*OA3tn!OU(ngs*X&)jAI9P&YpN8dRv}yr=fyCESO58-^0S zF(oh~1_>&LNQU&HJCi31*mkS)L}1!FflM8FbM_)D-Ht! q8U+9Z6c|s@YqgZp;ekf3x*TpQZk?)6-~MkV^|kF?gHM^S>zFR7mm-$l(4mH37j(BTHz&Pg26)I`!;Ay{k5^+_90Jg+&^F zbUE??j~1h9OqXsL9(#{fdoV9wbu}B_VP8w4_Yr4Kp&vQkGkS2xs=lezqoL4I8Eb#0 zTlvD)s=9{D7Q4N9hR9fucR7YnxzL5T{-}&Qyv4CMYECSl*mCFO-JW;q`7ZdyN`Q5T zgw?SlF}10(_Ov+YW!*8N^Avu$qvSq+4~i_sfV_p;OcEleFa1FHTA1-BO)f(j$YQ`H zON?YU;D8@#=_TBQ`bWF{5B0%LAbA+?4!Xf#A4=%JL3w18MxY?RsDi)=9h$tC zJI{^5!dVSfNcw8T>u5gtDUu`=WUczN;m<`L-Q<-CRBvjO>Qzz(_UwG68p|^nxsOVq z(Hr`V7dw5?Qi{1u8w{yeX2F1ehpD6`p*Q!JANI8r8ziu(r?WtU`0)vd*cn&tV12u< zgf7g}BPG3Lwi6X{q}+5Jcn-N)#UJt=U1y$JaFdPfd5 zfhHn>{)7mBT(t@PJgJ$=lM~}{z<4Y4rJ!x1r;qoF>Hqw}HCuD3tjhkpN>SVI&IEvI z(ZP!NiRwqJay5s&no^DdM86s%AalO2xU%>TK${Oul?`aTKm@=Uq0*ur*jY!)6~We$ z+u02F1Hp3xfPMhX$2;NECFXN`zI z#Tv$tXj+4vR8R{95d>%?E$1wK_t&D)S zGgJ#NZ3b*8xrx%F8RbN#+&aH+18DS>kk*_Eg=zw~+z8k)URMi$;QQlsYt~r&LA0Iz z)zpV}(@;7I+unz7MW}3@lL-*1PIzDg*nqH#{qs=;X&6noIAVg~{V5y5oO8K^L7d{s z#A@OxW)++S5dEuXLH$)nw6l{zcNs96$D?xi15A^532yIh)WQ%N_8Wfzo7Rmw2a^#p z$d?)}c(aak&CUdW_0Gyfk(S4cGb(AoZgLS)2O`Mf-0LI+EKU62Kpumyc;h#)UBx+%>> z4}@Gg?%v#n>Q0_L-UX1St=xqPCQYv`f^7hH<{U-Comx=Dj0RnG2MBD|si47TF-Wa= zQ=9t-(+Y4j1N1%Wb7ZW2Z`_i7B#tW@6-Y!!SRe)AN^3Nqw%Q(7e}ZN|A)2Hp z7t2!B@{|+Hryy*&#aSIZus>KAG1tJ26^p>P&8X{U+AAGEn#~3L#I+ zc?0h!`uo(LL(XF6k%N<*rKW*p0Rq{Q_KlOHLjBsGoh)w5=!sP4+_&xZ>>}6L5362; zU(GaEA+(w0IwIJ@2t`FXl5NU^O2&NZ+fdO=YqS!okucW#A9AkGenyA2`@9jDsdldz zrbd5|C3uajWXc9~>j`gxn~(XBS3HO^_OiF=7kea3OYWu9)1u*6CESgBRd6j?a}oL{t6XY5ygM}(L?^BZA>@CBEQ$?nE0}h(#la}sU`?12Klxtw6io%AJp|J@c^^5T_LUU6&;oJ@;oeNv4$TK= zds|B0+B|od|v@~C$;{gIv)&ml||7`qyLQ z#H)?qE$fP>K;Hg{U{P^bdAmE>L7MNfcp~)$F|;1*@X4q?{u@36hRU@Y8&EjD3U-?g zND3tf1A_ZR*E>L)r#HAtIe>q>I38zebNEJ zWw2p4_=5{e@8NPe09*m^rZ#)Dv&hZDp%�Nx-6lZ!q6RsEY~KPTF}3tl@>CMR_K} zP(Zo^pwSqw>T8NSS~TP{NpeRXXOO6yxVnrR_va!}vZ_zh0dpFQI+uTx2HgPF%nq0% z>x){W+nHV&cgrAkTfnK-*|W^Tc-+)|)nm8Taag0T+2#iNyRXr0*L~Kc%P6F?ZSF|* zH0Au+NlHM=W60oxsa^I~9|3fG+a&LNQUE!6xFflM8FbM_)D-Ht!8U+9Z6ns5xFYLxN?wkqB am}uP%;AhgFlLQE`F0kq%XPsOE0tf&qEI|?g diff --git a/Source/CDR.DataHolder.API.Infrastructure.UnitTests/CDR.DataHolder.API.Infrastructure.UnitTests.csproj b/Source/CDR.DataHolder.API.Infrastructure.UnitTests/CDR.DataHolder.API.Infrastructure.UnitTests.csproj index 969e616..b56f07a 100644 --- a/Source/CDR.DataHolder.API.Infrastructure.UnitTests/CDR.DataHolder.API.Infrastructure.UnitTests.csproj +++ b/Source/CDR.DataHolder.API.Infrastructure.UnitTests/CDR.DataHolder.API.Infrastructure.UnitTests.csproj @@ -3,9 +3,9 @@ net6.0 false - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.API.Infrastructure/CDR.DataHolder.API.Infrastructure.csproj b/Source/CDR.DataHolder.API.Infrastructure/CDR.DataHolder.API.Infrastructure.csproj index 0024d19..57a8340 100644 --- a/Source/CDR.DataHolder.API.Infrastructure/CDR.DataHolder.API.Infrastructure.csproj +++ b/Source/CDR.DataHolder.API.Infrastructure/CDR.DataHolder.API.Infrastructure.csproj @@ -2,9 +2,9 @@ net6.0 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 @@ -17,5 +17,9 @@ + + + + diff --git a/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/ApplicationHealthCheck.cs b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/ApplicationHealthCheck.cs new file mode 100644 index 0000000..9e97dc7 --- /dev/null +++ b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/ApplicationHealthCheck.cs @@ -0,0 +1,32 @@ +using CDR.DataHolder.Repository.Infrastructure; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using System.Threading; +using System.Threading.Tasks; + +namespace CDR.DataHolder.API.Infrastructure.HealthChecks +{ + public class ApplicationHealthCheck : IHealthCheck + { + private readonly HealthCheckStatuses _healthCheckStatuses; + + public ApplicationHealthCheck(HealthCheckStatuses healthCheckStatuses) + { + _healthCheckStatuses = healthCheckStatuses; + } + + public Task CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) + { + if (_healthCheckStatuses.AppStatus == AppStatus.NotStarted) + { + return Task.FromResult(HealthCheckResult.Unhealthy("Application not started")); + } + + if (_healthCheckStatuses.AppStatus == AppStatus.Shutdown) + { + return Task.FromResult(HealthCheckResult.Unhealthy("Application is shutdown")); + } + + return Task.FromResult(HealthCheckResult.Healthy("Application started successfully")); + } + } +} diff --git a/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseMigrationHealthCheck.cs b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseMigrationHealthCheck.cs new file mode 100644 index 0000000..ab78bda --- /dev/null +++ b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseMigrationHealthCheck.cs @@ -0,0 +1,45 @@ +using CDR.DataHolder.Repository.Infrastructure; +using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using System; +using System.Linq; +using System.Threading; +using System.Threading.Tasks; + +namespace CDR.DataHolder.API.Infrastructure.HealthChecks +{ + public class DatabaseMigrationHealthCheck : IHealthCheck + { + private readonly DataHolderDatabaseContext _dbContext; + private readonly HealthCheckStatuses _healthCheckStatuses; + + public DatabaseMigrationHealthCheck(DataHolderDatabaseContext dbContext, HealthCheckStatuses healthCheckStatuses) + { + _dbContext = dbContext; + _healthCheckStatuses=healthCheckStatuses; + } + + public async Task CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) + { + try + { + var migrationPending = await _dbContext.Database.GetPendingMigrationsAsync(cancellationToken); + + if (migrationPending.Count() == 0) + { + _healthCheckStatuses.IsMigrationDone = true; + return HealthCheckResult.Healthy("Database migration completed."); + } + + _healthCheckStatuses.IsMigrationDone = false; + return HealthCheckResult.Unhealthy($"Database migration pending. {migrationPending.Count()} pending migrations."); + } + catch (Exception e) + { + _healthCheckStatuses.IsMigrationDone = false; + return HealthCheckResult.Unhealthy($"Error. {e.Message}"); + } + + } + } +} diff --git a/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseSeedingHealthCheck.cs b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseSeedingHealthCheck.cs new file mode 100644 index 0000000..9fb7d4a --- /dev/null +++ b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/DatabaseSeedingHealthCheck.cs @@ -0,0 +1,37 @@ +using CDR.DataHolder.Repository.Infrastructure; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using System.Threading; +using System.Threading.Tasks; + +namespace CDR.DataHolder.API.Infrastructure.HealthChecks +{ + public class DatabaseSeedingHealthCheck : IHealthCheck + { + private readonly HealthCheckStatuses _healthCheckStatuses; + + public DatabaseSeedingHealthCheck(HealthCheckStatuses healthCheckStatuses) + { + _healthCheckStatuses=healthCheckStatuses; + } + + public Task CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) + { + if (_healthCheckStatuses.SeedingStatus == SeedingStatus.NotStarted) + { + return Task.FromResult(HealthCheckResult.Unhealthy("Database seeding not started")); + } + + if (_healthCheckStatuses.SeedingStatus == SeedingStatus.NotConfigured) + { + return Task.FromResult(HealthCheckResult.Healthy("Database seeding not configured")); + } + + if (_healthCheckStatuses.SeedingStatus == SeedingStatus.Failed) + { + return Task.FromResult(HealthCheckResult.Unhealthy("Database seeding failed")); + } + + return Task.FromResult(HealthCheckResult.Healthy($"Database seeding successful")); + } + } +} diff --git a/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/SqlServerHealthCheck.cs b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/SqlServerHealthCheck.cs new file mode 100644 index 0000000..4026358 --- /dev/null +++ b/Source/CDR.DataHolder.API.Infrastructure/HealthChecks/SqlServerHealthCheck.cs @@ -0,0 +1,34 @@ +using CDR.DataHolder.Repository; +using Microsoft.Data.SqlClient; +using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.Diagnostics.HealthChecks; +using System; +using System.Threading; +using System.Threading.Tasks; + +namespace CDR.DataHolder.API.Infrastructure.HealthChecks +{ + public class SqlServerHealthCheck : IHealthCheck + { + private readonly string _connectionString; + + public SqlServerHealthCheck(IConfiguration configuration) + { + _connectionString =configuration.GetConnectionString(DbConstants.ConnectionStringNames.Resource.Logging); + } + + public async Task CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) + { + using var connection = new SqlConnection(_connectionString); + try + { + await connection.OpenAsync(cancellationToken); + return HealthCheckResult.Healthy("SQL Server connection successful"); + } + catch (Exception ex) + { + return HealthCheckResult.Unhealthy(ex.Message); + } + } + } +} diff --git a/Source/CDR.DataHolder.API.Logger/CDR.DataHolder.API.Logger.csproj b/Source/CDR.DataHolder.API.Logger/CDR.DataHolder.API.Logger.csproj index 2f6b012..ad167e6 100644 --- a/Source/CDR.DataHolder.API.Logger/CDR.DataHolder.API.Logger.csproj +++ b/Source/CDR.DataHolder.API.Logger/CDR.DataHolder.API.Logger.csproj @@ -4,9 +4,9 @@ net6.0 enable enable - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Admin.API/CDR.DataHolder.Admin.API.csproj b/Source/CDR.DataHolder.Admin.API/CDR.DataHolder.Admin.API.csproj index 29498c4..8f3062e 100644 --- a/Source/CDR.DataHolder.Admin.API/CDR.DataHolder.Admin.API.csproj +++ b/Source/CDR.DataHolder.Admin.API/CDR.DataHolder.Admin.API.csproj @@ -3,9 +3,9 @@ net6.0 win-x64;linux-x64 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Admin.API/Certificates/tls-mock-data-holder-energy.pfx b/Source/CDR.DataHolder.Admin.API/Certificates/tls-mock-data-holder-energy.pfx index 11d458795409447a15cf3b5c3e9a60dc80cb16a5..62ecde9b5cc348732753479d6fa29e54df7ebb24 100644 GIT binary patch delta 2722 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�&Sl_Vbw}3NtZL6c$k_^U-J}W!H z@iyv*O<;?9+yYyIgQptXG;eYr%D;03IWB$D{HBx2VCoWMI$%yHy9X@+QPoG6TJd4o3PUL?~Q=$-yB@&R`!R^7`hRGK3TlnV>OX|yoMN0U-&M8vK1oON3B&ex!snh z-jvno^i>HZuPC2VuT9+_(KEh>r~vNKe!&5@strisldT0tf5ncT3SzM^Z~_7d00e>r z$Z@5#ax6ym70iH0i{O!-xG zyAr%}w5tFGf9o}ac|wG*z-*D`2HYbW2^$o=w7txxb=`_3qrhGywRuHs|M0~pgVM?Z zH*+2`2f%H{rJt*;scW^Ky!xM|k|3+6!nX4e@Yj2`?`m7`WU;_r!rp7!inD8{hJY*j z?no<#_8`KPcGott6_X)x&UZd8VKDkzpH}y5-A}k7f9j`dr-efZY%UwZ&zQvH$EbNn z;K;oco!6XY;h013+bP-S2a+X}u<6!kX!B;WZp2&5@PKgi6X={82=jcdn-VsiOyW*C zNFelPGBYFtLr;^ncbnu6-ye1K_sqTU+i0#2gu{Gw#lsD}hO2!yks*dfAl9;!c6M}? zJgDE}e|hD=5r0~><1&kT^jOZA)4fg+&Tm3K#zs?Kr>Y6g@M$IIkSK@-0^+{f-YuE&EXeelqO`wJ z9ZF|TuQQC~sFR1H$xdjDeGmSc8QN_vskMX(e?CZH)k0QTRR^FhGw~1!AXdy~#z%EI z@`RiZO`G5W-WfLM)h$%Iddbc;ab(IKV6JFlj&cSmZs3NqtUPRO=FbU?F1PxLM ziXE_1%*p5Dd8|+E(X~#Ne0f@^dS8AY=ppk}7&RN*g=7tinyc@LzH0JiX~^Z4e2jM+?|aR0Qx54O-4l9Ef5`m;9|}X(&Pkx_Yn|@UeR@%%SIkS<^4f%P z(3&F55va@g@FAK_Gsd16%)04Kvq!w^f@$Uf1ZAd#)ZI{BF+$XIDebixyt+Xv%{b@^ z{MLOdX0_mW_i;L#-*SQ=B7Z$9+_qp6G-sy|K@;E4K4}U$u#+7eX>pv9!X+Fpe|F}u zGQSH1|B*$;jfEzbJjWSrrCxYVI7l!tFd;Ar1_dh)0|FWa00b2OL4#xgh}<47 c5hD*Kzufy)5%uH*2pHtrBh?K^Edl}v03XUl%K!iX diff --git a/Source/CDR.DataHolder.Domain/CDR.DataHolder.Domain.csproj b/Source/CDR.DataHolder.Domain/CDR.DataHolder.Domain.csproj index ff88080..b2d2b63 100644 --- a/Source/CDR.DataHolder.Domain/CDR.DataHolder.Domain.csproj +++ b/Source/CDR.DataHolder.Domain/CDR.DataHolder.Domain.csproj @@ -2,9 +2,9 @@ net6.0 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.IntegrationTests/CDR.DataHolder.IntegrationTests.csproj b/Source/CDR.DataHolder.IntegrationTests/CDR.DataHolder.IntegrationTests.csproj index f13528d..9eed084 100644 --- a/Source/CDR.DataHolder.IntegrationTests/CDR.DataHolder.IntegrationTests.csproj +++ b/Source/CDR.DataHolder.IntegrationTests/CDR.DataHolder.IntegrationTests.csproj @@ -2,9 +2,9 @@ net6.0 false - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.IntegrationTests/Certificates/MDR/jwks.pfx b/Source/CDR.DataHolder.IntegrationTests/Certificates/MDR/jwks.pfx index d5fb751adbb551ef4301a682e22da5243daf7e6d..828e8a9199f7fedae4dc31f9c8754bd1f56074dd 100644 GIT binary patch delta 2577 zcmV+s3hwol6_pi`U4P22OJGkJ!_)!-2mpYB1h5aCk`|oVI&!98fE56esyv~Fi zi_`bKoub_!hq|tn-2*o4l3<*{S>uMbMOj-ez#}qBRK_Xo-hVuZPtlwP4IO1N#L>U* zXyr9wro;Ppd9OC7xf1F5Alw=T1rHaKRQF!c=#XLz3`(ODb!h)RnqK;&W+}Nl;KEZd zkQr>iNrAfxwRI8+qSy0mYhK6emiHZB|Bxl1{OQMx_=-$moF9v!_k6vIa^C9OP<^6 zecHy|XeDOYTmQk_XK{dlZ{J@1q7t5skrCxzu_jic#kaMH!XC)u!iW+y3S;F;>WvKa zxFNz1AeH5gWW%L0q3-OCsFP5cMb;R~j}f*h=w>1@0WXI)xno9|{i-i!H%|0XsA!ft zl50ipseixcZb|WNigoKI+;Uu01AS$R1Z8I~I#ecN^pnXGBqH(_oLUboRE3|)NxW+C z^YU-9#SiXeabYMOxh#F)%<2MI&We{j4FUpl0leI%LR4yflYI|V+>9j?6dcaW6VqLO z$`9Y$n`aM&rIb*O^Sb3jQ!C0&A;A%)Ww*D4Zh!Nf(ipsAO(WR3mMWqi&=Zr;WU-PM zAb)4x_Ivn(`vM*-2bZ!cX@8EeK}k~#?9sZ-A^c2Hu1&54kg?dop2{;fK8CvHr54zQ z+whN56?2j}8yY{&1Ela3T^#|-$UOMg*vN0oWQEUsdn1Zs;)IDCQ-z+wmmrxg{{y$b zaevysw`yxi`so50&)N3uC-P;4%%p_$sH8 z(}ww#6RDZL#xvfw;w}1{8wLVJ+e~9>Z-45KVu6N9Gx*?Xiy~2vD0_}C-Zn}K-|6a? zqG(;S*=IS>3<2fh)4W#87K|%1f|8r1>(wZC($}y-UjXOPQRzLrbINnJ$k0PY9jiv< zZi*2*fiPDLoEyGx9unS|Yw!}wBERf-ViBSarc&9gSa*cfEr0r# zjWlMFJb=&Y#5*9{CsbS&!pL+Z03t+g3~A#+$aPg2WGCh-XzdNN`Ln|Z^f2Xwu8t6|hLBdGuVJV5q4ottgw6K!G;Cv8M$5eWvo9wMl#0x`^GOG9f!Iqx0hR@%NX`rAC>As#o&Z1bn)a9R)^zMB^L6rII| zA2oV?66`)OPCmJX*kjU{?2WH9O^Hk#`LLnuBq8ryEa|71?d>W_r1T73;9Sui7Yzf$u~o6ut%Zqw`Tn$X(S%R zoo@JG*#eG(^UuF8;^c>E{9TMT-Kd48YCDA{Zvs&hs>cLta%FSlfE&5QAB+{K^epgr z;_m!H{4&v`5jIzU)#CqhM)`UW1}^IAt@(cLQ@-*ZB%<0&=_kUOKBqi6fLqBOuf-L} z4L_J75MMDX(xS+qu5veifUei3O~{=269syZGg0y3FTeUD%;($qR;IO zOh%R}f^eizqw}g`mC0AO!r?7*^cqW($f!ps8O}6Vh)K+b-Fw3Gy|vRWFfo+(_G}0Mete+NLdJbxnUgr}c!FYlA;` z;=PX@8pJELlYw-O%Z?tn%N8OqpxifN{+|n=G!}D5SMk7`&1Pbjz(I;6^3s#4Oq5}hQc zzs^E`caSip7^66dPG6r5m4@nzv`HkOy0`}=7DR2De0Q6lR36e?X%?g{;+@@;z(p0X zeBK!rJ4jEY(8AfOy=USz;yE6?ZH6uYkFf*y8J}MfRe!sMN2EK)hngpH0u$)|#4#l> zBL)d7hDe6@4FL%iF%|?A&GI@H16Z0-@E)f;DY1auoEe?v;xI8VAutIB1uG5%0vZJX n1QdkXRo)!8R)6^?CZ5e7ThiE?%OL~^sKPaadeN%i0s;sC8i@P8 delta 2577 zcmV+s3hwol6_pi`U4QmPa-YF8itGXc2mpYB1hC=W%N2|6OW-Yl$PP{wV?rV)W3p{a zbe6OXh@5bmTg!fzxm3q^PiqF+Lqy(rlf5h04z;$t2x36@|8F2a3qMVfW{q;N0v}j* z^wlI`Kpccqs8#DnQ~Nf!{1DZX{ZFiq(}3|UOeCc94Vx~a-hT?EQF4HLFQH-23JkpX zmk%zT)^|rF!7`ea_gi`r!SxFN;+mBNIXN);_8g{Z59ls-PpBX zsf837VZ+Bxn^qTzk-=}DDx6m3Wl!JKh8KoBIm{Xf)?X{JWd_c-Ja|V0SX|OcFzeZ2 znDy$c1X2{T2Y>NgRA>IIdv{_0aHtz<5cCztT@&`7VUwIXaCGx@UJ+Yf#)nQ*zx1fX z&m727u}l<)?n|q`npc%is{8e^Ive#+iPAXi=mDI(ia|G5n=S*ivKD0(7V759(g>#@ zyKP&Tr(vBY3nJD{)`KJMGmb=J64+^y&9kmy+~H-C&3|8_V`x~B_cWw_AzGhoD+*=k zWCgi*@~HzV=iLW9YoR;~X-5&(=(eNx7ClxvxBGL``c>;xY0k9_#5XJyjju@JIYke( z5jcrqm2DLqa&XqXo_FyI&7TKtC4Xcm2&CWhjW!Crh8S2Zm9smOhL?OHP{{a5cY(48 zhY%B|=Bo+TXm_?9G($ zdGU(808*SP4BG8mc#_lXy*-Q+5_{zqN3EO7w96&1IHVGt&T#%KIi-2?XO$&;^7@Mi z̲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 diff --git a/Source/CDR.DataHolder.IntegrationTests/Certificates/client-additional.pfx b/Source/CDR.DataHolder.IntegrationTests/Certificates/client-additional.pfx index 0c72559b3908243bdefbcbb3851543fcd9e92e59..4ab62b6fc438d92ef202099e06db47acdd8919fa 100644 GIT binary patch literal 2813 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 H0s;sCQu#rF literal 2979 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 aGh)m|;UG?Pp#%sq7y2sAWX5&^0tf(D0x$gl diff --git a/Source/CDR.DataHolder.Manage.API/CDR.DataHolder.Manage.API.csproj b/Source/CDR.DataHolder.Manage.API/CDR.DataHolder.Manage.API.csproj index d05245c..305b743 100644 --- a/Source/CDR.DataHolder.Manage.API/CDR.DataHolder.Manage.API.csproj +++ b/Source/CDR.DataHolder.Manage.API/CDR.DataHolder.Manage.API.csproj @@ -3,9 +3,9 @@ net6.0 win-x64;linux-x64 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Manage.API/Certificates/tls-mock-data-holder-energy.pfx b/Source/CDR.DataHolder.Manage.API/Certificates/tls-mock-data-holder-energy.pfx index 11d458795409447a15cf3b5c3e9a60dc80cb16a5..62ecde9b5cc348732753479d6fa29e54df7ebb24 100644 GIT binary patch delta 2722 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�&Sl_Vbw}3NtZL6c$k_^U-J}W!H z@iyv*O<;?9+yYyIgQptXG;eYr%D;03IWB$D{HBx2VCoWMI$%yHy9X@+QPoG6TJd4o3PUL?~Q=$-yB@&R`!R^7`hRGK3TlnV>OX|yoMN0U-&M8vK1oON3B&ex!snh z-jvno^i>HZuPC2VuT9+_(KEh>r~vNKe!&5@strisldT0tf5ncT3SzM^Z~_7d00e>r z$Z@5#ax6ym70iH0i{O!-xG zyAr%}w5tFGf9o}ac|wG*z-*D`2HYbW2^$o=w7txxb=`_3qrhGywRuHs|M0~pgVM?Z zH*+2`2f%H{rJt*;scW^Ky!xM|k|3+6!nX4e@Yj2`?`m7`WU;_r!rp7!inD8{hJY*j z?no<#_8`KPcGott6_X)x&UZd8VKDkzpH}y5-A}k7f9j`dr-efZY%UwZ&zQvH$EbNn z;K;oco!6XY;h013+bP-S2a+X}u<6!kX!B;WZp2&5@PKgi6X={82=jcdn-VsiOyW*C zNFelPGBYFtLr;^ncbnu6-ye1K_sqTU+i0#2gu{Gw#lsD}hO2!yks*dfAl9;!c6M}? zJgDE}e|hD=5r0~><1&kT^jOZA)4fg+&Tm3K#zs?Kr>Y6g@M$IIkSK@-0^+{f-YuE&EXeelqO`wJ z9ZF|TuQQC~sFR1H$xdjDeGmSc8QN_vskMX(e?CZH)k0QTRR^FhGw~1!AXdy~#z%EI z@`RiZO`G5W-WfLM)h$%Iddbc;ab(IKV6JFlj&cSmZs3NqtUPRO=FbU?F1PxLM ziXE_1%*p5Dd8|+E(X~#Ne0f@^dS8AY=ppk}7&RN*g=7tinyc@LzH0JiX~^Z4e2jM+?|aR0Qx54O-4l9Ef5`m;9|}X(&Pkx_Yn|@UeR@%%SIkS<^4f%P z(3&F55va@g@FAK_Gsd16%)04Kvq!w^f@$Uf1ZAd#)ZI{BF+$XIDebixyt+Xv%{b@^ z{MLOdX0_mW_i;L#-*SQ=B7Z$9+_qp6G-sy|K@;E4K4}U$u#+7eX>pv9!X+Fpe|F}u zGQSH1|B*$;jfEzbJjWSrrCxYVI7l!tFd;Ar1_dh)0|FWa00b2OL4#xgh}<47 c5hD*Kzufy)5%uH*2pHtrBh?K^Edl}v03XUl%K!iX diff --git a/Source/CDR.DataHolder.Manage.API/Controllers/ManageController.cs b/Source/CDR.DataHolder.Manage.API/Controllers/ManageController.cs index 6226f2f..72e9141 100644 --- a/Source/CDR.DataHolder.Manage.API/Controllers/ManageController.cs +++ b/Source/CDR.DataHolder.Manage.API/Controllers/ManageController.cs @@ -15,12 +15,14 @@ public class ManageController : ControllerBase { private readonly ILogger _logger; private readonly DataHolderDatabaseContext _dbContext; + private readonly HealthCheckStatuses _healthCheckStatuses; public ManageController(ILogger logger, - DataHolderDatabaseContext dbContext) + DataHolderDatabaseContext dbContext, HealthCheckStatuses healthCheckStatuses) { _logger = logger; _dbContext = dbContext; + _healthCheckStatuses=healthCheckStatuses; } [HttpPost] @@ -33,7 +35,7 @@ public async Task LoadData() try { - await _dbContext.SeedDatabaseFromJson(json, _logger, true); + await _dbContext.SeedDatabaseFromJson(json, _logger, _healthCheckStatuses, true); } catch { diff --git a/Source/CDR.DataHolder.Manage.API/Startup.cs b/Source/CDR.DataHolder.Manage.API/Startup.cs index 6fcedf5..c7738ef 100644 --- a/Source/CDR.DataHolder.Manage.API/Startup.cs +++ b/Source/CDR.DataHolder.Manage.API/Startup.cs @@ -1,4 +1,5 @@ using CDR.DataHolder.API.Infrastructure.Filters; +using CDR.DataHolder.API.Infrastructure.HealthChecks; using CDR.DataHolder.API.Infrastructure.Middleware; using CDR.DataHolder.Domain.Repositories; using CDR.DataHolder.Repository; @@ -7,7 +8,6 @@ using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Http; -using Microsoft.Data.SqlClient; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; @@ -25,11 +25,6 @@ namespace CDR.DataHolder.Manage.API { public class Startup { - static private bool healthCheckMigration = false; - static private string healthCheckMigrationMessage = null; - static private bool healthCheckSeedData = false; - static private string healthCheckSeedDataMessage = null; - public Startup(IConfiguration configuration) { Configuration = configuration; @@ -56,113 +51,26 @@ public void ConfigureServices(IServiceCollection services) services.AddScoped(); - string connStr = Configuration.GetConnectionString(DbConstants.ConnectionStringNames.Resource.Logging); - int seedDataTimeSpan = Configuration.GetValue("SeedData:TimeSpan"); - services.AddHealthChecks() - - .AddCheck("migration", () => healthCheckMigration ? HealthCheckResult.Healthy(healthCheckMigrationMessage) : HealthCheckResult.Unhealthy(healthCheckMigrationMessage)) - - // implemented "seed-data2" here just in case - .AddCheck("seed-data2", () => healthCheckSeedData ? HealthCheckResult.Healthy(healthCheckSeedDataMessage) : HealthCheckResult.Unhealthy(healthCheckSeedDataMessage)) - - .AddCheck("sql-connection", () => { - using (var db = new SqlConnection(connStr)) - { - try - { - db.Open(); - } - catch (SqlException) - { - return HealthCheckResult.Unhealthy(); - } - } - return HealthCheckResult.Healthy(); - }) - - .AddCheck("seed-data", () => { - if (!SeedData()) - { - return HealthCheckResult.Healthy("Seed data not configured"); - } - - using (var db = new SqlConnection(connStr)) - { - try - { - db.Open(); - using var selectCommand = new SqlCommand($"SELECT [TimeStamp] FROM [LogEventsManageAPI] WHERE [Message] = @msg ORDER BY [TimeStamp] DESC", db); - selectCommand.Parameters.AddWithValue("@msg", "Hosting started"); - var hostStarted = selectCommand.ExecuteScalar(); - if (hostStarted != null) - { - // Return the TimeStamp for when the Host is Started (all startup processing has completed) - // use this as the reference to test if the below operations are within the appsetting - SeedData:TimeSpan value - var hostStartedTimeStamp = Convert.ToDateTime(hostStarted); + services.AddSingleton(); - // IF the Seed Data was to be Imported or to be Updated - // if the log record message "Seed-Data:imported" exists and the process was completed within the SeedData:TimeSpan - // then it is considered to be Healthy - using var selectCommand1 = new SqlCommand($"SELECT TOP 1 [Id], [TimeStamp] FROM [LogEventsManageAPI] WHERE [Message] = @msg AND [SourceContext] = @srcContext ORDER BY [TimeStamp] DESC", db); - selectCommand1.Parameters.AddWithValue("@msg", "Seed-Data:imported"); - selectCommand1.Parameters.AddWithValue("@srcContext", "CDR.DataHolder.Manage.API.Startup"); - var dbReader1 = selectCommand1.ExecuteReader(); - if (dbReader1.HasRows) - { - using (dbReader1) - { - while (dbReader1.Read()) - { - TimeSpan timespan = (hostStartedTimeStamp - Convert.ToDateTime(dbReader1.GetDateTime(1))); - if (timespan.Minutes < seedDataTimeSpan) - { - return HealthCheckResult.Healthy(); - } - } - } - } - - dbReader1.Close(); - - // IF the Seed Data was flagged as to NOT be Imported - // if the log record message "Seed-Data:not-imported" exists and the process was completed within the SeedData:TimeSpan - // then it is considered to be Healthy - using var selectCommand2 = new SqlCommand($"SELECT TOP 1 [Id], [TimeStamp] FROM [LogEventsManageAPI] WHERE [Message] = @msg AND [SourceContext] = @srcContext ORDER BY [TimeStamp] DESC", db); - selectCommand2.Parameters.AddWithValue("@msg", "Seed-Data:not-imported"); - selectCommand2.Parameters.AddWithValue("@srcContext", "CDR.DataHolder.Manage.API.Startup"); - var dbReader2 = selectCommand2.ExecuteReader(); - if (dbReader2.HasRows) - { - using (dbReader2) - { - while (dbReader2.Read()) - { - TimeSpan timespan = (hostStartedTimeStamp - Convert.ToDateTime(dbReader2.GetDateTime(1))); - if (timespan.Minutes < seedDataTimeSpan) - return HealthCheckResult.Healthy(); - } - } - } - } - } - catch (SqlException) - { - return HealthCheckResult.Unhealthy(); - } - - return HealthCheckResult.Unhealthy(); - } - }); + services.AddHealthChecks() + .AddCheck("Application Check", HealthStatus.Unhealthy, new[] { "AppStatus" }, TimeSpan.FromSeconds(3)) + .AddCheck("SQL Server Check", HealthStatus.Unhealthy, new[] { "DatabaseStatus" }, TimeSpan.FromSeconds(10)) + .AddCheck("Migrations Check", HealthStatus.Unhealthy, new[] { "Migrations" }, TimeSpan.FromSeconds(10)) + .AddCheck("Seeding Check", HealthStatus.Unhealthy, new[] { "Seeding" }, TimeSpan.FromSeconds(3)); } // This method gets called by the runtime. Use this method to configure the HTTP request pipeline. - public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger logger) + public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger logger, IHostApplicationLifetime applicationLifetime, HealthCheckStatuses healthStatuses) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } + applicationLifetime.ApplicationStarted.Register(() => { healthStatuses.AppStatus = AppStatus.Started; }); + applicationLifetime.ApplicationStopping.Register(() => { healthStatuses.AppStatus = AppStatus.Shutdown; }); + app.UseSerilogRequestLogging(); app.UseHttpsRedirection(); @@ -180,17 +88,15 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILogger< }); // Ensure the database exists and is up to the latest version. - EnsureDatabase(app, logger); + EnsureDatabase(app, logger, healthStatuses); } - private void EnsureDatabase(IApplicationBuilder app, ILogger logger) + private void EnsureDatabase(IApplicationBuilder app, ILogger logger, HealthCheckStatuses healthCheckStatuses) { using (var serviceScope = app.ApplicationServices.GetService().CreateScope()) { if (RunMigrations()) { - healthCheckMigrationMessage = "Migration in progress"; - // Use DBO connection string since it has DBO rights needed to update db schema var optionsBuilder = new DbContextOptionsBuilder(); optionsBuilder.UseSqlServer(Configuration.GetConnectionString(DbConstants.ConnectionStringNames.Resource.Migrations) @@ -200,9 +106,7 @@ private void EnsureDatabase(IApplicationBuilder app, ILogger logger) using var dbMigrationsContext = new DataHolderDatabaseContext(optionsBuilder.Options); dbMigrationsContext.Database.Migrate(); - healthCheckMigrationMessage = "Migration completed"; } - healthCheckMigration = true; // Seed the database using the sample data JSON. var seedDataFilePath = Configuration.GetValue("SeedData:FilePath"); @@ -211,19 +115,15 @@ private void EnsureDatabase(IApplicationBuilder app, ILogger logger) if (!string.IsNullOrEmpty(seedDataFilePath)) { - healthCheckSeedDataMessage = "Seeding of data in progress"; - var context = serviceScope.ServiceProvider.GetRequiredService(); logger.LogInformation("Seed data file found within configuration. Attempting to seed the repository from the seed data..."); - Task.Run(() => context.SeedDatabaseFromJsonFile(seedDataFilePath, logger, seedDataOverwrite, offsetDates)).Wait(); + Task.Run(() => context.SeedDatabaseFromJsonFile(seedDataFilePath, logger, healthCheckStatuses, seedDataOverwrite, offsetDates)).Wait(); - healthCheckSeedDataMessage = "Seeding of data completed"; } else { - healthCheckSeedDataMessage = "Data is not seeded based on configuration"; + healthCheckStatuses.SeedingStatus = SeedingStatus.NotConfigured; } - healthCheckSeedData = true; } } @@ -250,7 +150,8 @@ private static Task CustomResponseWriter(HttpContext context, HealthReport healt { status = healthReport.Entries.Select(e => new { key = e.Key, - value = e.Value.Status.ToString() + value = e.Value.Status.ToString(), + description = e.Value.Description }) }); return context.Response.WriteAsync(result); diff --git a/Source/CDR.DataHolder.Public.API/CDR.DataHolder.Public.API.csproj b/Source/CDR.DataHolder.Public.API/CDR.DataHolder.Public.API.csproj index aa2f9d0..519638a 100644 --- a/Source/CDR.DataHolder.Public.API/CDR.DataHolder.Public.API.csproj +++ b/Source/CDR.DataHolder.Public.API/CDR.DataHolder.Public.API.csproj @@ -3,9 +3,9 @@ net6.0 win-x64;linux-x64 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Public.API/Certificates/tls-mock-data-holder-energy.pfx b/Source/CDR.DataHolder.Public.API/Certificates/tls-mock-data-holder-energy.pfx index 11d458795409447a15cf3b5c3e9a60dc80cb16a5..62ecde9b5cc348732753479d6fa29e54df7ebb24 100644 GIT binary patch delta 2722 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�&Sl_Vbw}3NtZL6c$k_^U-J}W!H z@iyv*O<;?9+yYyIgQptXG;eYr%D;03IWB$D{HBx2VCoWMI$%yHy9X@+QPoG6TJd4o3PUL?~Q=$-yB@&R`!R^7`hRGK3TlnV>OX|yoMN0U-&M8vK1oON3B&ex!snh z-jvno^i>HZuPC2VuT9+_(KEh>r~vNKe!&5@strisldT0tf5ncT3SzM^Z~_7d00e>r z$Z@5#ax6ym70iH0i{O!-xG zyAr%}w5tFGf9o}ac|wG*z-*D`2HYbW2^$o=w7txxb=`_3qrhGywRuHs|M0~pgVM?Z zH*+2`2f%H{rJt*;scW^Ky!xM|k|3+6!nX4e@Yj2`?`m7`WU;_r!rp7!inD8{hJY*j z?no<#_8`KPcGott6_X)x&UZd8VKDkzpH}y5-A}k7f9j`dr-efZY%UwZ&zQvH$EbNn z;K;oco!6XY;h013+bP-S2a+X}u<6!kX!B;WZp2&5@PKgi6X={82=jcdn-VsiOyW*C zNFelPGBYFtLr;^ncbnu6-ye1K_sqTU+i0#2gu{Gw#lsD}hO2!yks*dfAl9;!c6M}? zJgDE}e|hD=5r0~><1&kT^jOZA)4fg+&Tm3K#zs?Kr>Y6g@M$IIkSK@-0^+{f-YuE&EXeelqO`wJ z9ZF|TuQQC~sFR1H$xdjDeGmSc8QN_vskMX(e?CZH)k0QTRR^FhGw~1!AXdy~#z%EI z@`RiZO`G5W-WfLM)h$%Iddbc;ab(IKV6JFlj&cSmZs3NqtUPRO=FbU?F1PxLM ziXE_1%*p5Dd8|+E(X~#Ne0f@^dS8AY=ppk}7&RN*g=7tinyc@LzH0JiX~^Z4e2jM+?|aR0Qx54O-4l9Ef5`m;9|}X(&Pkx_Yn|@UeR@%%SIkS<^4f%P z(3&F55va@g@FAK_Gsd16%)04Kvq!w^f@$Uf1ZAd#)ZI{BF+$XIDebixyt+Xv%{b@^ z{MLOdX0_mW_i;L#-*SQ=B7Z$9+_qp6G-sy|K@;E4K4}U$u#+7eX>pv9!X+Fpe|F}u zGQSH1|B*$;jfEzbJjWSrrCxYVI7l!tFd;Ar1_dh)0|FWa00b2OL4#xgh}<47 c5hD*Kzufy)5%uH*2pHtrBh?K^Edl}v03XUl%K!iX diff --git a/Source/CDR.DataHolder.Repository/CDR.DataHolder.Repository.csproj b/Source/CDR.DataHolder.Repository/CDR.DataHolder.Repository.csproj index c9c2c49..dd61050 100644 --- a/Source/CDR.DataHolder.Repository/CDR.DataHolder.Repository.csproj +++ b/Source/CDR.DataHolder.Repository/CDR.DataHolder.Repository.csproj @@ -2,9 +2,9 @@ net6.0 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Repository/Infrastructure/Extensions.cs b/Source/CDR.DataHolder.Repository/Infrastructure/Extensions.cs index 896ae92..06df0d6 100644 --- a/Source/CDR.DataHolder.Repository/Infrastructure/Extensions.cs +++ b/Source/CDR.DataHolder.Repository/Infrastructure/Extensions.cs @@ -22,6 +22,7 @@ public async static Task SeedDatabaseFromJsonFile( this DataHolderDatabaseContext dataHolderDatabaseContext, string jsonFileFullPath, ILogger logger, + HealthCheckStatuses healthStatuses, bool overwriteExistingData = false, bool offsetDates = true) { @@ -32,7 +33,7 @@ public async static Task SeedDatabaseFromJsonFile( } var json = await File.ReadAllTextAsync(jsonFileFullPath); - await dataHolderDatabaseContext.SeedDatabaseFromJson(json, logger, overwriteExistingData, offsetDates); + await dataHolderDatabaseContext.SeedDatabaseFromJson(json, logger, healthStatuses, overwriteExistingData, offsetDates); } /// @@ -42,6 +43,7 @@ public async static Task SeedDatabaseFromJson( this DataHolderDatabaseContext dataHolderDatabaseContext, string json, ILogger logger, + HealthCheckStatuses healthStatuses, bool overwriteExistingData = false, bool offsetDates = true) { @@ -57,13 +59,13 @@ public async static Task SeedDatabaseFromJson( "Existing data found, but set to overwrite. Seeding data..." : "No existing data found. Seeding data..."); - await dataHolderDatabaseContext.ReSeedDatabaseFromJson(json, logger, offsetDates); + await dataHolderDatabaseContext.ReSeedDatabaseFromJson(json, logger, healthStatuses, offsetDates); } /// /// Re-Seed the database from the input JSON data. All existing data in the database will be removed prior to creating the new data set. /// - public async static Task ReSeedDatabaseFromJson(this DataHolderDatabaseContext dataHolderDatabaseContext, string json, ILogger logger, bool offsetDates = true) + public async static Task ReSeedDatabaseFromJson(this DataHolderDatabaseContext dataHolderDatabaseContext, string json, ILogger logger, HealthCheckStatuses healthStatuses, bool offsetDates = true) { using (var transaction = dataHolderDatabaseContext.Database.BeginTransaction()) { @@ -126,9 +128,11 @@ public async static Task ReSeedDatabaseFromJson(this DataHolderDatabaseContext d // DO NOT REMOVE or ALTER this is referenced in the health check logger.LogInformation("Seed-Data:imported"); + healthStatuses.SeedingStatus = SeedingStatus.Succeeded; } catch (Exception ex) { + healthStatuses.SeedingStatus = SeedingStatus.Failed; // Log any errors. logger.LogError(ex, "Error while seeding the database."); throw; diff --git a/Source/CDR.DataHolder.Repository/Infrastructure/HealthCheckStatuses.cs b/Source/CDR.DataHolder.Repository/Infrastructure/HealthCheckStatuses.cs new file mode 100644 index 0000000..71ea230 --- /dev/null +++ b/Source/CDR.DataHolder.Repository/Infrastructure/HealthCheckStatuses.cs @@ -0,0 +1,26 @@ +namespace CDR.DataHolder.Repository.Infrastructure +{ + public enum SeedingStatus + { + NotStarted, + Succeeded, + Failed, + NotConfigured + } + + public enum AppStatus + { + Started, + Shutdown, + NotStarted + } + public class HealthCheckStatuses + { + public bool IsMigrationDone { get; set; } = false; + + public SeedingStatus SeedingStatus { get; set; } = SeedingStatus.NotStarted; + + public AppStatus AppStatus { get; set; } = AppStatus.NotStarted; + + } +} diff --git a/Source/CDR.DataHolder.Resource.API.UnitTests/CDR.DataHolder.Resource.API.UnitTests.csproj b/Source/CDR.DataHolder.Resource.API.UnitTests/CDR.DataHolder.Resource.API.UnitTests.csproj index 8956117..c50d641 100644 --- a/Source/CDR.DataHolder.Resource.API.UnitTests/CDR.DataHolder.Resource.API.UnitTests.csproj +++ b/Source/CDR.DataHolder.Resource.API.UnitTests/CDR.DataHolder.Resource.API.UnitTests.csproj @@ -3,9 +3,9 @@ net6.0 false - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Resource.API.UnitTests/Fixtures/SeedDataFixture.cs b/Source/CDR.DataHolder.Resource.API.UnitTests/Fixtures/SeedDataFixture.cs index 6e79cef..01248f8 100644 --- a/Source/CDR.DataHolder.Resource.API.UnitTests/Fixtures/SeedDataFixture.cs +++ b/Source/CDR.DataHolder.Resource.API.UnitTests/Fixtures/SeedDataFixture.cs @@ -44,12 +44,15 @@ public SeedDataFixture() services.AddScoped(); services.AddSingleton(x => new IdPermanenceManager(configuration)); + services.AddSingleton(); + this.ServiceProvider = services.BuildServiceProvider(); // Migrate the database to the latest version during application startup. var context = this.ServiceProvider.GetRequiredService(); var loggerFactory = this.ServiceProvider.GetRequiredService(); var logger = loggerFactory.CreateLogger("UnitTests"); + var healthCheckStatuses = this.ServiceProvider.GetRequiredService(); loggerFactory.AddSerilog(); @@ -64,7 +67,7 @@ public SeedDataFixture() if (!string.IsNullOrEmpty(seedDataFilePath)) { logger.LogInformation("Seed data file found within configuration. Attempting to seed the repository from the seed data..."); - Task.Run(() => context.SeedDatabaseFromJsonFile(seedDataFilePath, logger, seedDataOverwrite, offsetDates)).Wait(); + Task.Run(() => context.SeedDatabaseFromJsonFile(seedDataFilePath, logger, healthCheckStatuses, seedDataOverwrite, offsetDates)).Wait(); } } } diff --git a/Source/CDR.DataHolder.Resource.API/CDR.DataHolder.Resource.API.csproj b/Source/CDR.DataHolder.Resource.API/CDR.DataHolder.Resource.API.csproj index 4a94d34..e37524d 100644 --- a/Source/CDR.DataHolder.Resource.API/CDR.DataHolder.Resource.API.csproj +++ b/Source/CDR.DataHolder.Resource.API/CDR.DataHolder.Resource.API.csproj @@ -3,9 +3,9 @@ net6.0 win-x64;linux-x64 - 1.3.1 - 1.3.1 - 1.3.1 + 1.3.2 + 1.3.2 + 1.3.2 diff --git a/Source/CDR.DataHolder.Resource.API/Certificates/tls-mock-data-holder-energy.pfx b/Source/CDR.DataHolder.Resource.API/Certificates/tls-mock-data-holder-energy.pfx index 11d458795409447a15cf3b5c3e9a60dc80cb16a5..62ecde9b5cc348732753479d6fa29e54df7ebb24 100644 GIT binary patch delta 2722 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�&Sl_Vbw}3NtZL6c$k_^U-J}W!H z@iyv*O<;?9+yYyIgQptXG;eYr%D;03IWB$D{HBx2VCoWMI$%yHy9X@+QPoG6TJd4o3PUL?~Q=$-yB@&R`!R^7`hRGK3TlnV>OX|yoMN0U-&M8vK1oON3B&ex!snh z-jvno^i>HZuPC2VuT9+_(KEh>r~vNKe!&5@strisldT0tf5ncT3SzM^Z~_7d00e>r z$Z@5#ax6ym70iH0i{O!-xG zyAr%}w5tFGf9o}ac|wG*z-*D`2HYbW2^$o=w7txxb=`_3qrhGywRuHs|M0~pgVM?Z zH*+2`2f%H{rJt*;scW^Ky!xM|k|3+6!nX4e@Yj2`?`m7`WU;_r!rp7!inD8{hJY*j z?no<#_8`KPcGott6_X)x&UZd8VKDkzpH}y5-A}k7f9j`dr-efZY%UwZ&zQvH$EbNn z;K;oco!6XY;h013+bP-S2a+X}u<6!kX!B;WZp2&5@PKgi6X={82=jcdn-VsiOyW*C zNFelPGBYFtLr;^ncbnu6-ye1K_sqTU+i0#2gu{Gw#lsD}hO2!yks*dfAl9;!c6M}? zJgDE}e|hD=5r0~><1&kT^jOZA)4fg+&Tm3K#zs?Kr>Y6g@M$IIkSK@-0^+{f-YuE&EXeelqO`wJ z9ZF|TuQQC~sFR1H$xdjDeGmSc8QN_vskMX(e?CZH)k0QTRR^FhGw~1!AXdy~#z%EI z@`RiZO`G5W-WfLM)h$%Iddbc;ab(IKV6JFlj&cSmZs3NqtUPRO=FbU?F1PxLM ziXE_1%*p5Dd8|+E(X~#Ne0f@^dS8AY=ppk}7&RN*g=7tinyc@LzH0JiX~^Z4e2jM+?|aR0Qx54O-4l9Ef5`m;9|}X(&Pkx_Yn|@UeR@%%SIkS<^4f%P z(3&F55va@g@FAK_Gsd16%)04Kvq!w^f@$Uf1ZAd#)ZI{BF+$XIDebixyt+Xv%{b@^ z{MLOdX0_mW_i;L#-*SQ=B7Z$9+_qp6G-sy|K@;E4K4}U$u#+7eX>pv9!X+Fpe|F}u zGQSH1|B*$;jfEzbJjWSrrCxYVI7l!tFd;Ar1_dh)0|FWa00b2OL4#xgh}<47 c5hD*Kzufy)5%uH*2pHtrBh?K^Edl}v03XUl%K!iX