diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index dc0683ed..0630c6e4 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,7 +28,7 @@ env:
}}
jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: windows-latest
env:
NEL_MESH_CLIENT_ACCEPTANCE_MESHCONFIGURATION__MAILBOXID: ${{ secrets.NEL_MESH_CLIENT_ACCEPTANCE_MESHCONFIGURATION__MAILBOXID }}
NEL_MESH_CLIENT_ACCEPTANCE_MESHCONFIGURATION__PASSWORD: ${{ secrets.NEL_MESH_CLIENT_ACCEPTANCE_MESHCONFIGURATION__PASSWORD }}
diff --git a/.gitignore b/.gitignore
index 4649a14a..1d1c0d01 100644
--- a/.gitignore
+++ b/.gitignore
@@ -374,3 +374,6 @@ local.appsettings.json
/NEL.MESH.Tests.Acceptance/local.appsettings.integration.json
/NEL.MESH.Tests.Integration/local.appsettings.integration.json
/NEL.MESH.Tests.Integration/local.appsettings.acceptance.json
+/NEL.MESH.Tests.Acceptance/appsettings.Development.json
+/NEL.MESH.Tests.Integration/appsettings.Development.json
+/NEL.MESH.Tests.Integration.Witness/appsettings.Development.json
diff --git a/NEL.MESH.Tests.Acceptance/ConfigurationTests.cs b/NEL.MESH.Tests.Acceptance/ConfigurationTests.cs
index 79e3d4de..29b3a487 100644
--- a/NEL.MESH.Tests.Acceptance/ConfigurationTests.cs
+++ b/NEL.MESH.Tests.Acceptance/ConfigurationTests.cs
@@ -14,7 +14,7 @@ public ConfigurationTests()
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("local.appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("NEL_MESH_CLIENT_ACCEPTANCE_");
this.configuration = configurationBuilder.Build();
diff --git a/NEL.MESH.Tests.Acceptance/MeshClientTests.cs b/NEL.MESH.Tests.Acceptance/MeshClientTests.cs
index c51b62bb..417660f1 100644
--- a/NEL.MESH.Tests.Acceptance/MeshClientTests.cs
+++ b/NEL.MESH.Tests.Acceptance/MeshClientTests.cs
@@ -26,7 +26,7 @@ public MeshClientTests()
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("local.appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("NEL_MESH_CLIENT_ACCEPTANCE_");
IConfiguration configuration = configurationBuilder.Build();
diff --git a/NEL.MESH.Tests.Acceptance/NEL.MESH.Tests.Acceptance.csproj b/NEL.MESH.Tests.Acceptance/NEL.MESH.Tests.Acceptance.csproj
index ec9e4f44..22644c22 100644
--- a/NEL.MESH.Tests.Acceptance/NEL.MESH.Tests.Acceptance.csproj
+++ b/NEL.MESH.Tests.Acceptance/NEL.MESH.Tests.Acceptance.csproj
@@ -35,6 +35,9 @@
+
+ Always
+
Always
diff --git a/NEL.MESH.Tests.Integration.Witness/100.MeshClientTests.cs b/NEL.MESH.Tests.Integration.Witness/100.MeshClientTests.cs
index cc8a803d..a0a190e2 100644
--- a/NEL.MESH.Tests.Integration.Witness/100.MeshClientTests.cs
+++ b/NEL.MESH.Tests.Integration.Witness/100.MeshClientTests.cs
@@ -31,7 +31,7 @@ public MeshClientTests(ITestOutputHelper output)
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("local.appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("NEL_MESH_CLIENT_INTEGRATION_");
IConfiguration configuration = configurationBuilder.Build();
diff --git a/NEL.MESH.Tests.Integration.Witness/ConfigurationTests.cs b/NEL.MESH.Tests.Integration.Witness/ConfigurationTests.cs
index 6225547d..2fbd3e35 100644
--- a/NEL.MESH.Tests.Integration.Witness/ConfigurationTests.cs
+++ b/NEL.MESH.Tests.Integration.Witness/ConfigurationTests.cs
@@ -14,7 +14,7 @@ public ConfigurationTests()
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("local.appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("NEL_MESH_CLIENT_INTEGRATION_");
this.configuration = configurationBuilder.Build();
diff --git a/NEL.MESH.Tests.Integration/ConfigurationTests.cs b/NEL.MESH.Tests.Integration/ConfigurationTests.cs
index fbc8a819..f25088ea 100644
--- a/NEL.MESH.Tests.Integration/ConfigurationTests.cs
+++ b/NEL.MESH.Tests.Integration/ConfigurationTests.cs
@@ -14,7 +14,7 @@ public ConfigurationTests()
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("local.appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("NEL_MESH_CLIENT_INTEGRATION_");
this.configuration = configurationBuilder.Build();
diff --git a/NEL.MESH.Tests.Integration/MeshClientTests.cs b/NEL.MESH.Tests.Integration/MeshClientTests.cs
index 1cf3357c..9d7a0427 100644
--- a/NEL.MESH.Tests.Integration/MeshClientTests.cs
+++ b/NEL.MESH.Tests.Integration/MeshClientTests.cs
@@ -23,7 +23,7 @@ public MeshClientTests()
{
var configurationBuilder = new ConfigurationBuilder()
.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
- .AddJsonFile("local.appsettings.json", optional: true, reloadOnChange: true)
+ .AddJsonFile("appsettings.Development.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables("NEL_MESH_CLIENT_INTEGRATION_");
IConfiguration configuration = configurationBuilder.Build();
diff --git a/NEL.MESH.Tests.Integration/NEL.MESH.Tests.Integration.csproj b/NEL.MESH.Tests.Integration/NEL.MESH.Tests.Integration.csproj
index 141b8e8b..8c3e7e8b 100644
--- a/NEL.MESH.Tests.Integration/NEL.MESH.Tests.Integration.csproj
+++ b/NEL.MESH.Tests.Integration/NEL.MESH.Tests.Integration.csproj
@@ -40,6 +40,9 @@
+
+ Always
+
Always
diff --git a/NEL.MESH.UI/appsettings.Development.json b/NEL.MESH.UI/appsettings.Development.json
new file mode 100644
index 00000000..b38b7393
--- /dev/null
+++ b/NEL.MESH.UI/appsettings.Development.json
@@ -0,0 +1,364 @@
+{
+ "MeshConfiguration": {
+ "MexClientVersion": "ApiDocs==0.0.1",
+ "MexOSName": "Windows",
+ "MexOSVersion": "#11",
+ "ChunkSize": 20
+ },
+ "MeshCertificates": [
+ {
+ "Environment": "DEV",
+ "TlsRootCertificates": [
+ "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlEZ2pDQ0FtcWdBd0lCQWdJRVhSOUxrREFOQmdrcWhraUc5dzBCQVFzRkFEQThNUXd3Q2dZRFZRUUtFd051DQphSE14Q3pBSkJnTlZCQXNUQWtOQk1SOHdIUVlEVlFRREV4Wk9TRk1nVUZSTUlGSnZiM1FnUVhWMGFHOXlhWFI1DQpNQjRYRFRFNU1EY3dOVEV5TXpjeU9Gb1hEVE01TURjd05URXpNRGN5T0Zvd1BERU1NQW9HQTFVRUNoTURibWh6DQpNUXN3Q1FZRFZRUUxFd0pEUVRFZk1CMEdBMVVFQXhNV1RraFRJRkJVVENCU2IyOTBJRUYxZEdodmNtbDBlVENDDQpBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUprVU9Fdml0dXZ3MFNTbVU0YWRYRG5QDQpTWGlhTHNRYjhDUFp3THlsU1lxdW1mSXpTanN4a2t0SnNla2VnRjZ5YnRHUk1QV1crekJYTUkxNUMzY1QrdG44DQpncENOWXluMVA4LytvTmd4dHFUTFlqeGFja2ZVNlM4QUwrNmQzOWdyRGQ2UGxJNUlMdkNaa284Mm0yM2NVeDJ5DQoyYVJucEFJQmdEazUxOHRXTFRaYk11TTE0YnphL1F2WVZlWDVEcVc5Z3N6OTQ3b3BiNkZZUmUzTWplSGlRbXhxDQpHdldmUFkveWIvY2dnbzV5OG0yZlRRYTZkZW5jSGVGd25td2JYNm53YnJGeDhVWHpmbEQwWWtlNGk1WjJOTjRDDQp4bWdBcXR4U3U1Qno5ZjdaUUxQUEJUNUZMK3B2eGtBdTRjRUhtYTRKREQzS2F5aHh6eGlnS2JRY25RcFhXRWNDDQpBd0VBQWFPQml6Q0JpREFyQmdOVkhSQUVKREFpZ0E4eU1ERTVNRGN3TlRFeU16Y3lPRnFCRHpJd016a3dOekExDQpNVE13TnpJNFdqQUxCZ05WSFE4RUJBTUNBUVl3SHdZRFZSMGpCQmd3Rm9BVXo0Z0RyS250M3RFQUNvQ0FBRUM0DQpBNGpJa0ZJd0hRWURWUjBPQkJZRUZNK0lBNnlwN2Q3UkFBcUFnQUJBdUFPSXlKQlNNQXdHQTFVZEV3UUZNQU1CDQpBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUpVMDZKT1BwQk1nai9Pd3pkMmFERElsekVqSER5QngwVU9hDQp4Y0llZUFUL0J5WWtUdVBlZXM5YjV2c1BtVXdWdU56S3NjQ2hROXR2dXVnUFBvVHU5Z1hRZkxsZEtUTGxQcU9mDQorVkNnaFFoTTRIK2k5K0p5SzdpS1lON3hkVkpMakgwQUlncE5Md05OLzJwblorNjlkT1U0RzdXMCtOWVQ0ZS93DQp3RGNKU3EwZmk4ZHdpeERUWVU4RGtGQ2ZFeWFoRXFldU5QcDlYM2RkV1pyeXEzWGpiUjNuMFlBMXNVbW51d2lUDQpydU1OWFIwbTM0cHQwbkZMUUZ6NTcrZExXaEFzQjV4UWRMUGMxQXVXd0svUjhqbkhoMytRL1JYT25YRzROTm1uDQpSS1lVRGpMcEZUbldtaVpmR3lYNmVkSXJqTjcyTTNHdXU1Y0FzMHBELzJkNlFGc3AxRGc9DQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t"
+ ],
+ "TlsIntermediateCertificates": [
+ "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlEaURDQ0FuQ2dBd0lCQWdJRVhhMkw0ekFOQmdrcWhraUc5dzBCQVFzRkFEQThNUXd3Q2dZRFZRUUtFd051DQphSE14Q3pBSkJnTlZCQXNUQWtOQk1SOHdIUVlEVlFRREV4Wk9TRk1nVUZSTUlGSnZiM1FnUVhWMGFHOXlhWFI1DQpNQjRYRFRFNU1URXhNVEV6TXpBeU1Gb1hEVEk1TVRFeE1URTBNREF5TUZvd05qRU1NQW9HQTFVRUNoTURibWh6DQpNUXN3Q1FZRFZRUUxFd0pEUVRFWk1CY0dBMVVFQXhNUVRraFRJRWxPVkNCTVpYWmxiQ0F4UXpDQ0FTSXdEUVlKDQpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKWllYMHMyUEE5eS9pWE5pamdlbUNzTjR3bmhLbkNNDQozYmlDM0E5UEtNSjY4M1F2QmRvZnJ1R0EwM212UlFzQjNxRkJjdXkyaGVSKzhzUklVWVZvb2VvVW5Ob3F3Y1FPDQo3S2FrbFhPdGRuNHEwZTgwcUtJU0trU0tDQVVnR0d4ZTQ2NmhkZ3RMY1A1L3BaS1d0UFh4NkNpMHZ3bnNPSC9rDQpNdjZCejYycHJ5bmRUYVFsN2EzMEpNbEhRa1hwenk0eW5yZWlJZ1RaMUx0VFpaNzl2YVZaMWdGWG5lcUdrSEVGDQpqQWsreG5GSW5XelUwMFZkVnQrUldUeWRMcnBobDV5OU9XNTJBZ3h1OXJmak5oU3dtQmtLWDJ6bEtMSUJELzB6DQp5OUw2TElHVFUyU3BlU1hBamx2c3AxTndNUFFJZ3FjUHlhc29ibVJNeU52ODhlNllxYUxaczRFQ0F3RUFBYU9CDQpsekNCbERBM0JnTlZIUjhFTURBdU1DeWdLcUFvaGlab2RIUndPaTh2WTNKc0xtNW9jeTUxYXk5d2RHd3ZjbTl2DQpkR05oTDJGeWJHRXhMbU55YkRBTEJnTlZIUThFQkFNQ0FRWXdId1lEVlIwakJCZ3dGb0FVejRnRHJLbnQzdEVBDQpDb0NBQUVDNEE0aklrRkl3SFFZRFZSME9CQllFRkFBR2dtMnJwaEpEN2JZTjlPWTh4Q0RCWVp1Z01Bd0dBMVVkDQpFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmJxbnlNbVZ5T21JVWlCQVc1cHJHZUl4SmVrDQoxMGhZOTJmenRuVHVyNVFkNnMxVExoKzhZTnBaMUN5dmQ1ZVVQV1lrUGNLMjhTKzBtWEdXQjNteE9HeW9yVm0vDQpWOVRlSWNjWWNrQU5TRTY0R3pacEVaREpRYTh0SEk0bXJzelphWFFuYkVwUTVYUUN6aDNkWFJ6Y1ZuZ3l4QnRHDQpvVldodUZPNU9SSDJwVGVuYzE1c3JYM1U1Q09oNGFFTWlIMTBYNVVhM004bG9BOTh5ZjlPdDhWR1hLbnpRU2JuDQowczhJRlBhWm9sdzZNRm9YUFY3cC85S29xSldXak9DREFQbG1GQlFSbko3bnlwSVQ1N2QyV2hvcW9qbFA3NzNNDQpxQnhHUG5jd0RzMlZlWkJHSklkRS9wYURCV2VUZlFGVlNDRnJpOG1zV1Vmd1c4YzFzM2xsRm9yZDVGWT0NCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
+ ],
+ "ClientSigningCertificate": "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"
+ },
+ {
+ "Environment": "INT",
+ "TlsRootCertificates": [
+ "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURnakNDQW1xZ0F3SUJBZ0lFWFI5TGtEQU5CZ2txaGtpRzl3MEJBUXNGQURBOE1Rd3dDZ1lEVlFRS0V3TnUKYUhNeEN6QUpCZ05WQkFzVEFrTkJNUjh3SFFZRFZRUURFeFpPU0ZNZ1VGUk1JRkp2YjNRZ1FYVjBhRzl5YVhSNQpNQjRYRFRFNU1EY3dOVEV5TXpjeU9Gb1hEVE01TURjd05URXpNRGN5T0Zvd1BERU1NQW9HQTFVRUNoTURibWh6Ck1Rc3dDUVlEVlFRTEV3SkRRVEVmTUIwR0ExVUVBeE1XVGtoVElGQlVUQ0JTYjI5MElFRjFkR2h2Y21sMGVUQ0MKQVNJd0RRWUpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKa1VPRXZpdHV2dzBTU21VNGFkWERuUApTWGlhTHNRYjhDUFp3THlsU1lxdW1mSXpTanN4a2t0SnNla2VnRjZ5YnRHUk1QV1crekJYTUkxNUMzY1QrdG44CmdwQ05ZeW4xUDgvK29OZ3h0cVRMWWp4YWNrZlU2UzhBTCs2ZDM5Z3JEZDZQbEk1SUx2Q1prbzgybTIzY1V4MnkKMmFSbnBBSUJnRGs1MTh0V0xUWmJNdU0xNGJ6YS9RdllWZVg1RHFXOWdzejk0N29wYjZGWVJlM01qZUhpUW14cQpHdldmUFkveWIvY2dnbzV5OG0yZlRRYTZkZW5jSGVGd25td2JYNm53YnJGeDhVWHpmbEQwWWtlNGk1WjJOTjRDCnhtZ0FxdHhTdTVCejlmN1pRTFBQQlQ1RkwrcHZ4a0F1NGNFSG1hNEpERDNLYXloeHp4aWdLYlFjblFwWFdFY0MKQXdFQUFhT0JpekNCaURBckJnTlZIUkFFSkRBaWdBOHlNREU1TURjd05URXlNemN5T0ZxQkR6SXdNemt3TnpBMQpNVE13TnpJNFdqQUxCZ05WSFE4RUJBTUNBUVl3SHdZRFZSMGpCQmd3Rm9BVXo0Z0RyS250M3RFQUNvQ0FBRUM0CkE0aklrRkl3SFFZRFZSME9CQllFRk0rSUE2eXA3ZDdSQUFxQWdBQkF1QU9JeUpCU01Bd0dBMVVkRXdRRk1BTUIKQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFKVTA2Sk9QcEJNZ2ovT3d6ZDJhRERJbHpFakhEeUJ4MFVPYQp4Y0llZUFUL0J5WWtUdVBlZXM5YjV2c1BtVXdWdU56S3NjQ2hROXR2dXVnUFBvVHU5Z1hRZkxsZEtUTGxQcU9mCitWQ2doUWhNNEgraTkrSnlLN2lLWU43eGRWSkxqSDBBSWdwTkx3Tk4vMnBuWis2OWRPVTRHN1cwK05ZVDRlL3cKd0RjSlNxMGZpOGR3aXhEVFlVOERrRkNmRXlhaEVxZXVOUHA5WDNkZFdacnlxM1hqYlIzbjBZQTFzVW1udXdpVApydU1OWFIwbTM0cHQwbkZMUUZ6NTcrZExXaEFzQjV4UWRMUGMxQXVXd0svUjhqbkhoMytRL1JYT25YRzROTm1uClJLWVVEakxwRlRuV21pWmZHeVg2ZWRJcmpONzJNM0d1dTVjQXMwcEQvMmQ2UUZzcDFEZz0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ=="
+ ],
+ "TlsIntermediateCertificates": [
+ "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSURpRENDQW5DZ0F3SUJBZ0lFWGEyTDR6QU5CZ2txaGtpRzl3MEJBUXNGQURBOE1Rd3dDZ1lEVlFRS0V3TnUKYUhNeEN6QUpCZ05WQkFzVEFrTkJNUjh3SFFZRFZRUURFeFpPU0ZNZ1VGUk1JRkp2YjNRZ1FYVjBhRzl5YVhSNQpNQjRYRFRFNU1URXhNVEV6TXpBeU1Gb1hEVEk1TVRFeE1URTBNREF5TUZvd05qRU1NQW9HQTFVRUNoTURibWh6Ck1Rc3dDUVlEVlFRTEV3SkRRVEVaTUJjR0ExVUVBeE1RVGtoVElFbE9WQ0JNWlhabGJDQXhRekNDQVNJd0RRWUoKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBSlpZWDBzMlBBOXkvaVhOaWpnZW1Dc040d25oS25DTQozYmlDM0E5UEtNSjY4M1F2QmRvZnJ1R0EwM212UlFzQjNxRkJjdXkyaGVSKzhzUklVWVZvb2VvVW5Ob3F3Y1FPCjdLYWtsWE90ZG40cTBlODBxS0lTS2tTS0NBVWdHR3hlNDY2aGRndExjUDUvcFpLV3RQWHg2Q2kwdnduc09IL2sKTXY2Qno2MnByeW5kVGFRbDdhMzBKTWxIUWtYcHp5NHlucmVpSWdUWjFMdFRaWjc5dmFWWjFnRlhuZXFHa0hFRgpqQWsreG5GSW5XelUwMFZkVnQrUldUeWRMcnBobDV5OU9XNTJBZ3h1OXJmak5oU3dtQmtLWDJ6bEtMSUJELzB6Cnk5TDZMSUdUVTJTcGVTWEFqbHZzcDFOd01QUUlncWNQeWFzb2JtUk15TnY4OGU2WXFhTFpzNEVDQXdFQUFhT0IKbHpDQmxEQTNCZ05WSFI4RU1EQXVNQ3lnS3FBb2hpWm9kSFJ3T2k4dlkzSnNMbTVvY3k1MWF5OXdkR3d2Y205dgpkR05oTDJGeWJHRXhMbU55YkRBTEJnTlZIUThFQkFNQ0FRWXdId1lEVlIwakJCZ3dGb0FVejRnRHJLbnQzdEVBCkNvQ0FBRUM0QTRqSWtGSXdIUVlEVlIwT0JCWUVGQUFHZ20ycnBoSkQ3YllOOU9ZOHhDREJZWnVnTUF3R0ExVWQKRXdRRk1BTUJBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUJicW55TW1WeU9tSVVpQkFXNXByR2VJeEplawoxMGhZOTJmenRuVHVyNVFkNnMxVExoKzhZTnBaMUN5dmQ1ZVVQV1lrUGNLMjhTKzBtWEdXQjNteE9HeW9yVm0vClY5VGVJY2NZY2tBTlNFNjRHelpwRVpESlFhOHRISTRtcnN6WmFYUW5iRXBRNVhRQ3poM2RYUnpjVm5neXhCdEcKb1ZXaHVGTzVPUkgycFRlbmMxNXNyWDNVNUNPaDRhRU1pSDEwWDVVYTNNOGxvQTk4eWY5T3Q4VkdYS256UVNibgowczhJRlBhWm9sdzZNRm9YUFY3cC85S29xSldXak9DREFQbG1GQlFSbko3bnlwSVQ1N2QyV2hvcW9qbFA3NzNNCnFCeEdQbmN3RHMyVmVaQkdKSWRFL3BhREJXZVRmUUZWU0NGcmk4bXNXVWZ3VzhjMXMzbGxGb3JkNUZZPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t"
+ ],
+ "ClientSigningCertificate": "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"
+ }
+ ],
+
+ "Mailboxes": [
+ {
+ "Application": "OPTOUT",
+ "Environment": "DEV",
+ "Name": "OPTOUT-LOCAL",
+ "Url": "https://msg.devspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT001",
+ "Password": "QTZA371CWk85",
+ "DestinationMailbox": "QMFOT001",
+ "WorkflowId": "SPINE_NTT_UPHOLDING",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "9694116538,\r\n9694116414,",
+ "DefaultMailbox": "true"
+ },
+ {
+ "Application": "OPTOUT",
+ "Environment": "DEV",
+ "Name": "OPTOUT-DEV",
+ "Url": "https://msg.devspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT001",
+ "Password": "QTZA371CWk85",
+ "DestinationMailbox": "X26OT193",
+ "WorkflowId": "SPINE_NTT_UPHOLDING",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "OPTOUT",
+ "Environment": "INT",
+ "Name": "OPTOUT-INT",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT001",
+ "Password": "0qgIcF9P3LvT",
+ "DestinationMailbox": "X26OT193",
+ "WorkflowId": "SPINE_NTT_UPHOLDING",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "OPTOUT",
+ "Environment": "INT",
+ "Name": "OPTOUT-INTINVALIDMAILBOXID",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "aninvalidid1234",
+ "Password": "0qgIcF9P3LvT",
+ "DestinationMailbox": "X26OT193",
+ "WorkflowId": "SPINE_NTT_UPHOLDING",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "OPTOUT",
+ "Environment": "INT",
+ "Name": "OPTOUT-INTDEAD",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT005",
+ "Password": "3k2JZOTyQboi",
+ "DestinationMailbox": "QMFOT005",
+ "WorkflowId": "SPINE_NTT_UPHOLDING",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "DEADLETTER",
+ "Environment": "INT",
+ "Name": "OPTOUT-INTDEAD",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT005",
+ "Password": "3k2JZOTyQboi",
+ "DestinationMailbox": "QMFOT005",
+ "WorkflowId": "SPINE_NTT_UPHOLDING",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "INT",
+ "Name": "SCC-INT",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT003",
+ "Password": "JP59Bd41EFaq",
+ "DestinationMailbox": "QMFOT003",
+ "WorkflowId": "SCCDataPush",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "INT",
+ "Name": "SCC-INT (Not Valid Sender)",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT005",
+ "Password": "3k2JZOTyQboi",
+ "DestinationMailbox": "QMFOT003",
+ "WorkflowId": "SCCDataPush",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "INT",
+ "Name": "SCC-INT (Valid Sender)",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT001",
+ "Password": "0qgIcF9P3LvT",
+ "DestinationMailbox": "QMFOT003",
+ "WorkflowId": "SCCDataPush",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "INT",
+ "Name": "SCC-INT (Valid Sender) DEAD LETTER",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT003",
+ "Password": "JP59Bd41EFaq",
+ "DestinationMailbox": "QMFOT005",
+ "WorkflowId": "SCCDataPush",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "INT",
+ "Name": "SCC-INT (Valid but Wrong WorkflowId)",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT001",
+ "Password": "0qgIcF9P3LvT",
+ "DestinationMailbox": "QMFOT003",
+ "WorkflowId": "SCCDataPushhhhh",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "PDS",
+ "Environment": "INT",
+ "Name": "PDS-LOCAL",
+ "Url": "https://msg.devspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT002",
+ "Password": "vQrokJp50yh8",
+ "DestinationMailbox": "QMFOT002",
+ "WorkflowId": "SPINE_PDS_MESH_V1",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "PDS",
+ "Environment": "DEV",
+ "Name": "PDS-DEV",
+ "Url": "https://msg.devspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT002",
+ "Password": "hEmfKNaU6Qs5",
+ "DestinationMailbox": "INTERNAL-SPINE",
+ "WorkflowId": "SPINE_PDS_MESH_V1",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "PDS",
+ "Environment": "INT",
+ "Name": "PDS-INT",
+ "Url": "https://msg.intspineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFOT002",
+ "Password": "hEmfKNaU6Qs5",
+ "DestinationMailbox": "INTERNAL-SPINE",
+ "WorkflowId": "SPINE_PDS_MESH_V1",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "PROD",
+ "Name": "SCC-PROD",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC002",
+ "Password": "f8QEj5964y3g",
+ "DestinationMailbox": "QMFHC003",
+ "WorkflowId": "SCC_DATA_PUSH",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "PROD",
+ "Name": "SCCACK-PROD",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC003",
+ "Password": "b30to8AzcT2R",
+ "DestinationMailbox": "QMFHC002",
+ "WorkflowId": "SCC_DATAPUSH",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "SCC",
+ "Environment": "PROD",
+ "Name": "SCCACK-PROD-INVALIDMAILBOXDESTINATION",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC003",
+ "Password": "b30to8AzcT2R",
+ "DestinationMailbox": "QMFINVALID",
+ "WorkflowId": "SCC_DATAPUSH",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "COVID TARGET",
+ "Environment": "PROD",
+ "Name": "Data receive COVID-19 Target Therapeutics",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC004",
+ "Password": "3n97RIeC156f",
+ "DestinationMailbox": "",
+ "WorkflowId": "",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "PDS",
+ "Environment": "PROD",
+ "Name": "PDS-PROD",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC005",
+ "Password": "W5G7e9oYXunr",
+ "DestinationMailbox": "INTERNAL-SPINE",
+ "WorkflowId": "SPINE_PDS_MESH_V1",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "OPTOUT",
+ "Environment": "PROD",
+ "Name": "OPTOUT",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC006",
+ "Password": "X7Qoj30emAdu",
+ "DestinationMailbox": "X26HC036",
+ "WorkflowId": "POS Initiator",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "North Central",
+ "Environment": "PROD",
+ "Name": "NCL",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC007",
+ "Password": "8i2eOKVq37ok",
+ "DestinationMailbox": "QMFHC002",
+ "WorkflowId": "NCL_DATEPUSH",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ },
+ {
+ "Application": "North Central",
+ "Environment": "PROD",
+ "Name": "NCLACK-PROD",
+ "Url": "https://mesh-sync.spineservices.nhs.uk/",
+ "SharedKey": "BackBone",
+ "MailboxId": "QMFHC003",
+ "Password": "b30to8AzcT2R",
+ "DestinationMailbox": "QMFHC007",
+ "WorkflowId": "NCL_DATAPUSH",
+ "LocalId": "",
+ "Subject": "",
+ "Message": "",
+ "DefaultMailbox": "false"
+ }
+ ]
+}
+
diff --git a/NEL.MESH/Services/Foundations/Mesh/MeshService.Validation.cs b/NEL.MESH/Services/Foundations/Mesh/MeshService.Validation.cs
index 8eab1b88..03a6b8ee 100644
--- a/NEL.MESH/Services/Foundations/Mesh/MeshService.Validation.cs
+++ b/NEL.MESH/Services/Foundations/Mesh/MeshService.Validation.cs
@@ -21,7 +21,20 @@ private static void ValidateResponse(HttpResponseMessage response)
if (response.IsSuccessStatusCode == false)
{
string body = response.Content.ReadAsStringAsync().Result;
- SendMessageErrorResponse error = JsonConvert.DeserializeObject(body);
+ SendMessageErrorResponse error;
+
+ try
+ {
+ error = JsonConvert.DeserializeObject(body);
+ }
+ catch (Exception exception)
+ {
+ throw new HttpRequestException(
+ message: $"Unable to deserialize response: {body}",
+ inner: exception,
+ statusCode: response.StatusCode);
+ }
+
string message = $"{(int)response.StatusCode} - {response.ReasonPhrase}";
var httpRequestException =
diff --git a/NEL.MESH/appsettings.Development.json b/NEL.MESH/appsettings.Development.json
new file mode 100644
index 00000000..ef602c82
--- /dev/null
+++ b/NEL.MESH/appsettings.Development.json
@@ -0,0 +1,26 @@
+{
+ "Logging": {
+ "LogLevel": {
+ "Default": "Information",
+ "Microsoft.AspNetCore": "Warning"
+ }
+ },
+ "MeshConfiguration": {
+ "MailboxId": "QMFOT001",
+ "Password": "QTZA371CWk85",
+ "SharedKey": "BackBone",
+ "Url": "https://msg.devspineservices.nhs.uk/",
+ "MexClientVersion": "ApiDocs==0.0.1",
+ "MexOSName": "Windows",
+ "MexOSVersion": "#11",
+ "TlsRootCertificates": [
+ "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlEZ2pDQ0FtcWdBd0lCQWdJRVhSOUxrREFOQmdrcWhraUc5dzBCQVFzRkFEQThNUXd3Q2dZRFZRUUtFd051DQphSE14Q3pBSkJnTlZCQXNUQWtOQk1SOHdIUVlEVlFRREV4Wk9TRk1nVUZSTUlGSnZiM1FnUVhWMGFHOXlhWFI1DQpNQjRYRFRFNU1EY3dOVEV5TXpjeU9Gb1hEVE01TURjd05URXpNRGN5T0Zvd1BERU1NQW9HQTFVRUNoTURibWh6DQpNUXN3Q1FZRFZRUUxFd0pEUVRFZk1CMEdBMVVFQXhNV1RraFRJRkJVVENCU2IyOTBJRUYxZEdodmNtbDBlVENDDQpBU0l3RFFZSktvWklodmNOQVFFQkJRQURnZ0VQQURDQ0FRb0NnZ0VCQUprVU9Fdml0dXZ3MFNTbVU0YWRYRG5QDQpTWGlhTHNRYjhDUFp3THlsU1lxdW1mSXpTanN4a2t0SnNla2VnRjZ5YnRHUk1QV1crekJYTUkxNUMzY1QrdG44DQpncENOWXluMVA4LytvTmd4dHFUTFlqeGFja2ZVNlM4QUwrNmQzOWdyRGQ2UGxJNUlMdkNaa284Mm0yM2NVeDJ5DQoyYVJucEFJQmdEazUxOHRXTFRaYk11TTE0YnphL1F2WVZlWDVEcVc5Z3N6OTQ3b3BiNkZZUmUzTWplSGlRbXhxDQpHdldmUFkveWIvY2dnbzV5OG0yZlRRYTZkZW5jSGVGd25td2JYNm53YnJGeDhVWHpmbEQwWWtlNGk1WjJOTjRDDQp4bWdBcXR4U3U1Qno5ZjdaUUxQUEJUNUZMK3B2eGtBdTRjRUhtYTRKREQzS2F5aHh6eGlnS2JRY25RcFhXRWNDDQpBd0VBQWFPQml6Q0JpREFyQmdOVkhSQUVKREFpZ0E4eU1ERTVNRGN3TlRFeU16Y3lPRnFCRHpJd016a3dOekExDQpNVE13TnpJNFdqQUxCZ05WSFE4RUJBTUNBUVl3SHdZRFZSMGpCQmd3Rm9BVXo0Z0RyS250M3RFQUNvQ0FBRUM0DQpBNGpJa0ZJd0hRWURWUjBPQkJZRUZNK0lBNnlwN2Q3UkFBcUFnQUJBdUFPSXlKQlNNQXdHQTFVZEV3UUZNQU1CDQpBZjh3RFFZSktvWklodmNOQVFFTEJRQURnZ0VCQUpVMDZKT1BwQk1nai9Pd3pkMmFERElsekVqSER5QngwVU9hDQp4Y0llZUFUL0J5WWtUdVBlZXM5YjV2c1BtVXdWdU56S3NjQ2hROXR2dXVnUFBvVHU5Z1hRZkxsZEtUTGxQcU9mDQorVkNnaFFoTTRIK2k5K0p5SzdpS1lON3hkVkpMakgwQUlncE5Md05OLzJwblorNjlkT1U0RzdXMCtOWVQ0ZS93DQp3RGNKU3EwZmk4ZHdpeERUWVU4RGtGQ2ZFeWFoRXFldU5QcDlYM2RkV1pyeXEzWGpiUjNuMFlBMXNVbW51d2lUDQpydU1OWFIwbTM0cHQwbkZMUUZ6NTcrZExXaEFzQjV4UWRMUGMxQXVXd0svUjhqbkhoMytRL1JYT25YRzROTm1uDQpSS1lVRGpMcEZUbldtaVpmR3lYNmVkSXJqTjcyTTNHdXU1Y0FzMHBELzJkNlFGc3AxRGc9DQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t"
+ ],
+ "TlsIntermediateCertificates": [
+ "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlEaURDQ0FuQ2dBd0lCQWdJRVhhMkw0ekFOQmdrcWhraUc5dzBCQVFzRkFEQThNUXd3Q2dZRFZRUUtFd051DQphSE14Q3pBSkJnTlZCQXNUQWtOQk1SOHdIUVlEVlFRREV4Wk9TRk1nVUZSTUlGSnZiM1FnUVhWMGFHOXlhWFI1DQpNQjRYRFRFNU1URXhNVEV6TXpBeU1Gb1hEVEk1TVRFeE1URTBNREF5TUZvd05qRU1NQW9HQTFVRUNoTURibWh6DQpNUXN3Q1FZRFZRUUxFd0pEUVRFWk1CY0dBMVVFQXhNUVRraFRJRWxPVkNCTVpYWmxiQ0F4UXpDQ0FTSXdEUVlKDQpLb1pJaHZjTkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFKWllYMHMyUEE5eS9pWE5pamdlbUNzTjR3bmhLbkNNDQozYmlDM0E5UEtNSjY4M1F2QmRvZnJ1R0EwM212UlFzQjNxRkJjdXkyaGVSKzhzUklVWVZvb2VvVW5Ob3F3Y1FPDQo3S2FrbFhPdGRuNHEwZTgwcUtJU0trU0tDQVVnR0d4ZTQ2NmhkZ3RMY1A1L3BaS1d0UFh4NkNpMHZ3bnNPSC9rDQpNdjZCejYycHJ5bmRUYVFsN2EzMEpNbEhRa1hwenk0eW5yZWlJZ1RaMUx0VFpaNzl2YVZaMWdGWG5lcUdrSEVGDQpqQWsreG5GSW5XelUwMFZkVnQrUldUeWRMcnBobDV5OU9XNTJBZ3h1OXJmak5oU3dtQmtLWDJ6bEtMSUJELzB6DQp5OUw2TElHVFUyU3BlU1hBamx2c3AxTndNUFFJZ3FjUHlhc29ibVJNeU52ODhlNllxYUxaczRFQ0F3RUFBYU9CDQpsekNCbERBM0JnTlZIUjhFTURBdU1DeWdLcUFvaGlab2RIUndPaTh2WTNKc0xtNW9jeTUxYXk5d2RHd3ZjbTl2DQpkR05oTDJGeWJHRXhMbU55YkRBTEJnTlZIUThFQkFNQ0FRWXdId1lEVlIwakJCZ3dGb0FVejRnRHJLbnQzdEVBDQpDb0NBQUVDNEE0aklrRkl3SFFZRFZSME9CQllFRkFBR2dtMnJwaEpEN2JZTjlPWTh4Q0RCWVp1Z01Bd0dBMVVkDQpFd1FGTUFNQkFmOHdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQmJxbnlNbVZ5T21JVWlCQVc1cHJHZUl4SmVrDQoxMGhZOTJmenRuVHVyNVFkNnMxVExoKzhZTnBaMUN5dmQ1ZVVQV1lrUGNLMjhTKzBtWEdXQjNteE9HeW9yVm0vDQpWOVRlSWNjWWNrQU5TRTY0R3pacEVaREpRYTh0SEk0bXJzelphWFFuYkVwUTVYUUN6aDNkWFJ6Y1ZuZ3l4QnRHDQpvVldodUZPNU9SSDJwVGVuYzE1c3JYM1U1Q09oNGFFTWlIMTBYNVVhM004bG9BOTh5ZjlPdDhWR1hLbnpRU2JuDQowczhJRlBhWm9sdzZNRm9YUFY3cC85S29xSldXak9DREFQbG1GQlFSbko3bnlwSVQ1N2QyV2hvcW9qbFA3NzNNDQpxQnhHUG5jd0RzMlZlWkJHSklkRS9wYURCV2VUZlFGVlNDRnJpOG1zV1Vmd1c4YzFzM2xsRm9yZDVGWT0NCi0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0="
+ ],
+ "ClientSigningCertificate": "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",
+ "ClientSigningCertificatePassword": "",
+ "MaxChunkSizeInMegabytes": "20"
+ }
+}