Skip to content

Commit a06996b

Browse files
Dannypsmergify[bot]tnotheis
authored
Backbone-specific addresses (#570)
* feat: add 100 char-long identityAddresses * chore: add missing config * chore: fix erroneous migrations * feat: add 100 char-long identityAddresses on SqlServer * chore: fix erroneous migrations' name * chore: fix erroneous migrations' name * chore: attempt to remove identity assertions from transport tests * chore: fix sed * chore: fix erroneous migrations' name * chore: use backbone-specific-addresses branch of transport tests * chore: branch → ref * chore: fix branch name * chore: backbone sln merge * chore: remove realm, change url to prod.enmeshed.eu where applicable * chore: fix unit tests after removing realm from identity * chore: remove AddressPrefix from config files * chore: remove AddressPrefix from config files * chore: fix formatting * chore: remove second needless migration * fix: remove old configuration and update messages to use InstanceUrl, from configuration * chore: move migration order hopefully this fixes the pipeline for now. However, this must be fixed later * feat: implement new IdentityAddress generation algorithm * chore: reformat * chore: simplify isValid * feat: change address length to 80 * chore: fix migration name * chore: fix migration name * chore: fix old 100 to 80 chars * chore: trigger pipeline * fix: pipeline test file * fix: missing defaultschema for migrations * fix: missing defaultschema for migrations * fix: max length set to 100 * chore: add InstanceUrl to test appsettings * chore: transport tests should still use the backbone-specific-addresses branch * chore: add InstanceUrl to test appsettings for event handler * fix: bad feature/backbone-specific-addresses branch name * fix: 100 → 80 chars * chore: remove out-of-date migrations * feat: Identity80 migrations for relationships module * chore: more restrictive regex. usage of return value instead of relying on exceptions * chore: fix migration file names * fix: exception thrown when address does not match the regex * chore: identitySpecificPart must be a hex representation of bytes * refactor: turn regex into a compiled one * chorte: remove unused pattern * chore: use named regex groups * chore: extract CHECKSUM_LENGTH, create addressWithoutChecksumregex group * chore: optimize regex * refactor: rename variable --------- Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Timo Notheisen <[email protected]> Co-authored-by: Timo Notheisen <[email protected]>
1 parent c68f03d commit a06996b

File tree

79 files changed

+6954
-236
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+6954
-236
lines changed

.github/workflows/test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ jobs:
115115
with:
116116
repository: nmshd/runtime
117117
path: runtime
118-
ref: release/v5
118+
ref: feature/backbone-specific-addresses
119119
- name: Run Consumer API
120120
run: docker compose -f ./backbone/.ci/docker-compose.test.yml -f ./backbone/.ci/docker-compose.test.sqlserver.yml up -d
121121
- name: Install runtime dependencies
@@ -153,7 +153,7 @@ jobs:
153153
with:
154154
repository: nmshd/runtime
155155
path: runtime
156-
ref: release/v5
156+
ref: feature/backbone-specific-addresses
157157
- name: Run Consumer API
158158
run: docker compose -f ./backbone/.ci/docker-compose.test.yml -f ./backbone/.ci/docker-compose.test.postgres.yml up -d
159159
- name: Install runtime dependencies

AdminApi/src/AdminApi/appsettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
},
2323
"Devices": {
2424
"Application": {
25-
"AddressPrefix": "id1",
25+
"InstanceUrl": "prod.enmeshed.eu",
2626
"Pagination": {
2727
"DefaultPageSize": 50,
2828
"MaxPageSize": 200

AdminApi/src/AdminApi/appsettings.override.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
"Modules": {
3333
"Devices": {
3434
"Application": {
35-
"AddressPrefix": "id1",
3635
"Pagination": {
3736
"DefaultPageSize": 50,
3837
"MaxPageSize": 200

Backbone.sln.DotSettings

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
1+
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
22
<s:Boolean x:Key="/Default/CodeEditing/Intellisense/CodeCompletion/IntelliSenseCompletingCharacters/CSharpCompletingCharacters/UpgradedFromVSSettings/@EntryValue">True</s:Boolean>
33
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToConstant_002ELocal/@EntryIndexedValue">SUGGESTION</s:String>
44
<s:String x:Key="/Default/CodeInspection/Highlighting/InspectionSeverities/=ConvertToPrimaryConstructor/@EntryIndexedValue">DO_NOT_SHOW</s:String>
@@ -32,6 +32,7 @@
3232
<s:Boolean x:Key="/Default/UserDictionary/Words/=appsettings/@EntryIndexedValue">True</s:Boolean>
3333
<s:Boolean x:Key="/Default/UserDictionary/Words/=Datawallet/@EntryIndexedValue">True</s:Boolean>
3434
<s:Boolean x:Key="/Default/UserDictionary/Words/=Datawallets/@EntryIndexedValue">True</s:Boolean>
35+
<s:Boolean x:Key="/Default/UserDictionary/Words/=dids/@EntryIndexedValue">True</s:Boolean>
3536
<s:Boolean x:Key="/Default/UserDictionary/Words/=Deleters/@EntryIndexedValue">True</s:Boolean>
3637
<s:Boolean x:Key="/Default/UserDictionary/Words/=Dtos/@EntryIndexedValue">True</s:Boolean>
3738
<s:Boolean x:Key="/Default/UserDictionary/Words/=ecdsa/@EntryIndexedValue">True</s:Boolean>

BuildingBlocks/src/DevelopmentKit.Identity/ValueObjects/IdentityAddress.cs

Lines changed: 35 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,19 @@
22
using System.Globalization;
33
using System.Security.Cryptography;
44
using System.Text;
5+
using System.Text.RegularExpressions;
56
using Backbone.BuildingBlocks.Domain;
67
using Backbone.BuildingBlocks.Domain.StronglyTypedIds.Records;
7-
using SimpleBase;
88

99
namespace Backbone.DevelopmentKit.Identity.ValueObjects;
1010

1111
[Serializable]
1212
[TypeConverter(typeof(IdentityAddressTypeConverter))]
13-
public record IdentityAddress : StronglyTypedId
13+
public partial record IdentityAddress : StronglyTypedId
1414
{
15-
public const int MAX_LENGTH = 36;
15+
public const int MAX_LENGTH = 80;
16+
private const int CHECKSUM_LENGTH = 2;
17+
private const string CHECKSUM_LENGTH_S = "2";
1618

1719
private IdentityAddress(string stringValue) : base(stringValue)
1820
{
@@ -43,39 +45,45 @@ public static bool IsValid(string? stringValue)
4345
{
4446
if (stringValue == null) return false;
4547

46-
var lengthIsValid = stringValue.Length <= MAX_LENGTH;
48+
if (stringValue.Length > MAX_LENGTH)
49+
return false;
4750

48-
var realm = stringValue[..3];
51+
var matches = IdentityAddressValidatorRegex().Matches(stringValue);
4952

50-
var concatenation = Base58.Bitcoin.Decode(stringValue.AsSpan(3)).ToArray();
51-
var hashedPublicKey = concatenation[..20];
52-
var givenChecksum = concatenation[20..];
53+
if (matches.Count == 0) return false;
5354

54-
var realmBytes = Encoding.UTF8.GetBytes(realm);
55-
var correctChecksum = CalculateChecksum(realmBytes, hashedPublicKey);
55+
var matchGroups = matches.First().Groups;
5656

57-
var checksumIsValid = givenChecksum.SequenceEqual(correctChecksum);
57+
if (!matchGroups.TryGetValue("checksum", out var givenChecksum))
58+
return false;
5859

59-
return lengthIsValid && checksumIsValid;
60+
if (!matchGroups.TryGetValue("addressWithoutChecksum", out var addressWithoutChecksum))
61+
return false;
62+
63+
var expectedChecksum = CalculateChecksum(addressWithoutChecksum.Value);
64+
65+
var checksumIsValid = givenChecksum.Value == expectedChecksum;
66+
67+
return checksumIsValid;
6068
}
6169

62-
public static IdentityAddress Create(byte[] publicKey, string realm)
70+
public static IdentityAddress Create(byte[] publicKey, string instanceUrl)
6371
{
64-
var hashedPublicKey = SHA256.Create().ComputeHash(SHA512.Create().ComputeHash(publicKey))[..20];
65-
var realmBytes = Encoding.UTF8.GetBytes(realm);
66-
var checksum = CalculateChecksum(realmBytes, hashedPublicKey);
67-
var concatenation = hashedPublicKey.Concat(checksum).ToArray();
68-
var address = realm + Base58.Bitcoin.Encode(concatenation);
72+
var hashedPublicKey = SHA256.HashData(SHA512.HashData(publicKey))[..10];
73+
74+
var identitySpecificPart = Hex(hashedPublicKey);
6975

70-
return new IdentityAddress(address);
76+
var mainPhrase = $"did:e:{instanceUrl}:dids:{identitySpecificPart}";
77+
var checksum = CalculateChecksum(mainPhrase);
78+
79+
return new IdentityAddress((mainPhrase + checksum).ToLower());
7180
}
7281

73-
private static byte[] CalculateChecksum(byte[] realmBytes, byte[] hashedPublicKey)
82+
private static string CalculateChecksum(string phrase) => Hex(SHA256.HashData(Encoding.ASCII.GetBytes(phrase)))[..CHECKSUM_LENGTH];
83+
84+
private static string Hex(byte[] bytes)
7485
{
75-
var checksumSource = realmBytes.Concat(hashedPublicKey).ToArray();
76-
var checksumHash = SHA256.Create().ComputeHash(SHA512.Create().ComputeHash(checksumSource));
77-
var checksum = checksumHash[..4];
78-
return checksum;
86+
return Convert.ToHexString(bytes).ToLower();
7987
}
8088

8189
public override string ToString()
@@ -116,5 +124,8 @@ public static implicit operator IdentityAddress(string stringValue)
116124
return ParseUnsafe(stringValue);
117125
}
118126

127+
[GeneratedRegex($@"^(?<addressWithoutChecksum>did:e:(?<instanceUrl>(?:[a-z0-9]+\.)+[a-z]{{2,}}):dids:(?<identitySpecificPart>[0-9abcdef]{{20}}))(?<checksum>[0-9abcdef]{{{CHECKSUM_LENGTH_S}}})$")]
128+
private static partial Regex IdentityAddressValidatorRegex();
129+
119130
#endregion
120131
}

BuildingBlocks/src/UnitTestTools/Data/TestDataGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public static string GenerateString(int resultLength, char[]? chars = null)
1414

1515
public static IdentityAddress CreateRandomIdentityAddress()
1616
{
17-
return IdentityAddress.Create(CreateRandomBytes(), "id1");
17+
return IdentityAddress.Create(CreateRandomBytes(), "prod.enmeshed.eu");
1818
}
1919

2020
public static DeviceId CreateRandomDeviceId()

BuildingBlocks/test/DevelopmentKit.Identity.Tests/IdentityAddressTests.cs

Lines changed: 41 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -7,29 +7,46 @@ namespace Backbone.DevelopmentKit.Identity.Tests;
77
public class IdentityAddressTests
88
{
99
[Theory]
10-
[InlineData("fj0o9eOiPRswTZL6j9lE9TRvpDDnPRMF0gJeahz/W2c=", "id1QF24Gk2DfqCywRS7NpeH5iu7D4xvu6qv1")]
11-
[InlineData("jRxGfZtQ8a90TmKCGk+dhuX1CBjgoXuldhNPwrjpWsw=", "id1HwY1TuyVBp3CmY3h18yTt1CKyu5qwB9wj")]
12-
[InlineData("PEODpwvi7KxIVa4qeUXia9apMFvPMktdDHiDitlfbjE=", "id1LMp4k1XwxZ3WFXdAn9y12tv1ofe5so4kM")]
13-
[InlineData("mJGmNbxiVZAPToRuk9O3NvdfsWl6V+7wzIc+/57bU08=", "id1McegXycvRoiJppS2LG25phn3jNveckFUL")]
14-
[InlineData("l68K/zdNp1VLoswcHAqN6QUFwCMU6Yvzf7XiW2m1hRY=", "id193k6K5cJr94WJEWYb6Kei8zp5CGPyrQLS")]
15-
[InlineData("Gl8XTo8qFuUM+ksXixwp4g/jf3H/hU1F8ETuYaHCM5I=", "id1BLrHAgDpimtLcGJGssMSm7bJHsvVe7CN")]
16-
[InlineData("rIS4kAzHXT7GgCA6Qm1ANlwM3x12QMSkeprHb6tjPyc=", "id1NjGvLfWPrQ34PXWRBNiTfXv9DFiDQHExx")]
17-
[InlineData("hg/cbeBvfNrMiJ0dW1AtWC4IQwG4gkuhzG2+z6bAoRU=", "id1Gda4aTXiBX9Pyc8UnmLaG44cX46umjnea")]
18-
[InlineData("kId+qWen/lKeTdyxcIQhkzvvvTU8wIJECfWUWbmRQRY=", "id17RDEphijMPFGLbhqLWWgJfatBANMruC8f")]
19-
[InlineData("NcqlzTEpSlKX9gmNBv41EjPRHpaNYwt0bxqh1bgyJzA=", "id19meHs4Di7JYNXoRPx9bFD6FUcpHFo3mBi")]
20-
[InlineData("49fWA+kzWNdCFdo92imTiQ4vUUJsPPLNlcB9udC4ooE=", "id1c711BBi4yqV9wrLBVKxRSNFayfAm3Eib")]
10+
// ReSharper disable StringLiteralTypo
11+
[InlineData("49fWA+kzWNdCFdo92imTiQ4vUUJsPPLNlcB9udC4ooE=", "did:e:prod.enmeshed.eu:dids:06a391378e5df5c1399f77")]
12+
[InlineData("fj0o9eOiPRswTZL6j9lE9TRvpDDnPRMF0gJeahz/W2c=", "did:e:prod.enmeshed.eu:dids:fef1992c5e529adc413288")]
13+
[InlineData("Gl8XTo8qFuUM+ksXixwp4g/jf3H/hU1F8ETuYaHCM5I=", "did:e:prod.enmeshed.eu:dids:01f4bab09d757578bb4994")]
14+
[InlineData("hg/cbeBvfNrMiJ0dW1AtWC4IQwG4gkuhzG2+z6bAoRU=", "did:e:prod.enmeshed.eu:dids:ab7475ba4070f29ce286fd")]
15+
[InlineData("jRxGfZtQ8a90TmKCGk+dhuX1CBjgoXuldhNPwrjpWsw=", "did:e:prod.enmeshed.eu:dids:b9d25bd0a2bbd3aa48437c")]
16+
[InlineData("kId+qWen/lKeTdyxcIQhkzvvvTU8wIJECfWUWbmRQRY=", "did:e:prod.enmeshed.eu:dids:4664f42d7ca6480db07fdb")]
17+
[InlineData("l68K/zdNp1VLoswcHAqN6QUFwCMU6Yvzf7XiW2m1hRY=", "did:e:prod.enmeshed.eu:dids:5845cf29fbda2897892a9a")]
18+
[InlineData("mJGmNbxiVZAPToRuk9O3NvdfsWl6V+7wzIc+/57bU08=", "did:e:prod.enmeshed.eu:dids:e2208784ee2769c5d9684d")]
19+
[InlineData("NcqlzTEpSlKX9gmNBv41EjPRHpaNYwt0bxqh1bgyJzA=", "did:e:prod.enmeshed.eu:dids:60326ff5075e0d7378990c")]
20+
[InlineData("PEODpwvi7KxIVa4qeUXia9apMFvPMktdDHiDitlfbjE=", "did:e:prod.enmeshed.eu:dids:d459ff2144f0eac7aff554")]
21+
[InlineData("rIS4kAzHXT7GgCA6Qm1ANlwM3x12QMSkeprHb6tjPyc=", "did:e:prod.enmeshed.eu:dids:ee5966a158f1dc4de5bd5c")]
22+
// ReSharper enable StringLiteralTypo
2123
public void AddressIsCreatedCorrectly2(string publicKey, string expectedAddress)
2224
{
23-
var address = IdentityAddress.Create(Convert.FromBase64String(publicKey), "id1");
25+
var address = IdentityAddress.Create(Convert.FromBase64String(publicKey), "prod.enmeshed.eu");
2426

2527
address.Value.Should().Be(expectedAddress);
2628
}
2729

30+
[Theory]
31+
// ReSharper disable StringLiteralTypo
32+
[InlineData("did:e:enmeshedeu:dids:06a391378e5df5c1399f77")]
33+
[InlineData("did:e:prod.ENMESHED.eu:dids:fef1992c5e529adc413288")]
34+
[InlineData("ID154565465468435134684648ffef1992ca5e529adc413288")]
35+
[InlineData("dod:e:prod.enmeshed.eu:dids:ee5966a158f1dc4de5bd5c")]
36+
[InlineData("did:e:prod.enmeshed.eu:dids:nonhexchars11")]
37+
[InlineData("did:e:prod.enmeshed.eu:dids:eCa432178Ca417a1311")] // capital letters
38+
[InlineData("did:e:prod.enmeshed.eu:dids:ee5966a158f1dc4de5bd5cee5966a158f1dc4de5bd5c")]
39+
// ReSharper enable StringLiteralTypo
40+
public void IsValidReturnsFalseForInvalidAddress(string identityAddress)
41+
{
42+
IdentityAddress.IsValid(identityAddress).Should().BeFalse();
43+
}
44+
2845
[Fact]
2946
public void AddressIsCreatedCorrectly()
3047
{
3148
var testData = TestData.Valid();
32-
var address = IdentityAddress.Create(testData.PublicKey, testData.Realm);
49+
var address = IdentityAddress.Create(testData.PublicKey, testData.InstanceUrl);
3350

3451
address.Value.Should().Be(testData.Address);
3552
}
@@ -38,7 +55,7 @@ public void AddressIsCreatedCorrectly()
3855
public void EfConverterWorksCorrectly()
3956
{
4057
var testData = TestData.Valid();
41-
var address = IdentityAddress.Create(testData.PublicKey, testData.Realm);
58+
var address = IdentityAddress.Create(testData.PublicKey, testData.InstanceUrl);
4259

4360
address.Value.Should().Be(testData.Address);
4461
}
@@ -52,15 +69,6 @@ public void ValidAddressesAreAccepted()
5269
isValid.Should().BeTrue();
5370
}
5471

55-
[Fact]
56-
public void AddressesWithInvalidRealmAreDeclined()
57-
{
58-
var testData = TestData.WithInvalidRealm();
59-
var isValid = IdentityAddress.IsValid(testData.Address);
60-
61-
isValid.Should().BeFalse();
62-
}
63-
6472
[Fact]
6573
public void AddressesWithInvalidChecksumAreDeclined()
6674
{
@@ -82,59 +90,43 @@ public void AddressesWithInvalidMainPartAreDeclined()
8290

8391
internal class TestData
8492
{
85-
public required string Realm { get; set; }
93+
public required string InstanceUrl { get; set; }
8694
public required byte[] PublicKey { get; set; }
8795

8896
public required string Address { get; set; }
8997

9098
public required string Checksum { get; set; }
91-
public required string MainPart { get; set; }
9299

93100
public static TestData Valid()
94101
{
95102
return new TestData
96103
{
97-
Address = "id18uSgVGTSNqECvt1DJM3bZg6U8p6RSjott",
98-
PublicKey = Convert.FromBase64String("tB9KFp/YqHrom3m5qUuZsd6l30DkaNjN14SxRw7YZuI="),
99-
Realm = "id1",
100-
Checksum = "jott",
101-
MainPart = "8uSgVGTSNqECvt1DJM3bZg6U8p6RS"
102-
};
103-
}
104-
105-
public static TestData WithInvalidRealm()
106-
{
107-
return new TestData
108-
{
109-
Address = "id08uSgVGTSNqECvt1DJM3bZg6U8p6RSjott",
104+
Address = "did:e:prod.enmeshed.eu:dids:56b3f2a0c202e27229aa87",
110105
PublicKey = Convert.FromBase64String("tB9KFp/YqHrom3m5qUuZsd6l30DkaNjN14SxRw7YZuI="),
111-
Realm = "id0",
112-
Checksum = "jott",
113-
MainPart = "8uSgVGTSNqECvt1DJM3bZg6U8p6RS"
106+
Checksum = "87",
107+
InstanceUrl = "prod.enmeshed.eu"
114108
};
115109
}
116110

117111
public static TestData WithInvalidMainPart()
118112
{
119113
return new TestData
120114
{
121-
Address = "id07uSgVGTSNqECvt1DJM3bZg6U8p6RSjott",
115+
Address = "did:e:prod.enmeshed.eu:dids:56b3f2a0c202e27d39aa87",
122116
PublicKey = Convert.FromBase64String("tB9KFp/YqHrom3m5qUuZsd6l30DkaNjN14SxRw7YZuI="),
123-
Realm = "id0",
124-
Checksum = "jott",
125-
MainPart = "7uSgVGTSNqECvt1DJM3bZg6U8p6RS"
117+
Checksum = "87",
118+
InstanceUrl = "prod.enmeshed.eu"
126119
};
127120
}
128121

129122
public static TestData WithInvalidChecksum()
130123
{
131124
return new TestData
132125
{
133-
Address = "id08uSgVGTSNqECvt1DJM3bZg6U8p6RSiott",
126+
Address = "did:e:prod.enmeshed.eu:dids:56b3f2a0c202e27229aa55",
134127
PublicKey = Convert.FromBase64String("tB9KFp/YqHrom3m5qUuZsd6l30DkaNjN14SxRw7YZuI="),
135-
Realm = "id0",
136-
Checksum = "iott",
137-
MainPart = "8uSgVGTSNqECvt1DJM3bZg6U8p6RS"
128+
Checksum = "55",
129+
InstanceUrl = "prod.enmeshed.eu"
138130
};
139131
}
140132
}

ConsumerApi.Tests.Integration/appsettings.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,17 @@
55
"ClientId": "test",
66
"ClientSecret": "test"
77
}
8+
},
9+
"Modules": {
10+
"Devices": {
11+
"Application": {
12+
"InstanceUrl": "pipeline.test.enmeshed.eu"
13+
}
14+
},
15+
"Messages": {
16+
"Application": {
17+
"InstanceUrl": "pipeline.test.enmeshed.eu"
18+
}
19+
}
820
}
921
}

ConsumerApi/appsettings.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
},
2929
"Devices": {
3030
"Application": {
31-
"AddressPrefix": "id1",
31+
"InstanceUrl": "prod.enmeshed.eu",
3232
"Pagination": {
3333
"DefaultPageSize": 50,
3434
"MaxPageSize": 200
@@ -45,7 +45,7 @@
4545
},
4646
"Messages": {
4747
"Application": {
48-
"AddressPrefix": "id1",
48+
"InstanceUrl": "prod.enmeshed.eu",
4949
"MaxNumberOfUnreceivedMessagesFromOneSender": 20,
5050
"Pagination": {
5151
"DefaultPageSize": 50,

EventHandlerService/src/EventHandlerService/appsettings.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"Devices": {
2323
"Application": {
2424
"AddressPrefix": "id1",
25+
"InstanceUrl": "pipeline.test.enmeshed.eu",
2526
"Pagination": {
2627
"DefaultPageSize": 50,
2728
"MaxPageSize": 200
@@ -39,6 +40,7 @@
3940
"Messages": {
4041
"Application": {
4142
"AddressPrefix": "id1",
43+
"InstanceUrl": "pipeline.test.enmeshed.eu",
4244
"MaxNumberOfUnreceivedMessagesFromOneSender": 20,
4345
"Pagination": {
4446
"DefaultPageSize": 50,

Jobs/src/Job.IdentityDeletion/appsettings.json

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
},
2222
"Devices": {
2323
"Application": {
24-
"AddressPrefix": "id1",
2524
"Pagination": {
2625
"DefaultPageSize": 50,
2726
"MaxPageSize": 200
@@ -38,12 +37,12 @@
3837
},
3938
"Messages": {
4039
"Application": {
41-
"AddressPrefix": "id1",
42-
"MaxNumberOfUnreceivedMessagesFromOneSender": 20,
43-
"Pagination": {
44-
"DefaultPageSize": 50,
45-
"MaxPageSize": 200
46-
}
40+
"InstanceUrl": "prod.enmeshed.eu",
41+
"MaxNumberOfUnreceivedMessagesFromOneSender": 20,
42+
"Pagination": {
43+
"DefaultPageSize": 50,
44+
"MaxPageSize": 200
45+
}
4746
}
4847
},
4948
"Relationships": {

0 commit comments

Comments
 (0)