fix(transport): import rejects malformed site gRPC endpoints and non-actor-safe names as blockers, not mid-apply crashes (review 2026-10-21 03/R-1, lane-F ActorNameRules follow-up)

This commit is contained in:
Joseph Doherty
2026-10-22 09:29:54 -04:00
parent 04ac4c0491
commit 39025b28fa
7 changed files with 506 additions and 13 deletions
@@ -103,8 +103,8 @@ public sealed class SiteInstanceImportTests : IDisposable
Description = "primary plant",
NodeAAddress = "akka://site@10.0.0.1:2552",
NodeBAddress = "akka://site@10.0.0.2:2552",
GrpcNodeAAddress = "10.0.0.1:8083",
GrpcNodeBAddress = "10.0.0.2:8083",
GrpcNodeAAddress = "http://10.0.0.1:8083",
GrpcNodeBAddress = "http://10.0.0.2:8083",
};
ctx.Sites.Add(site);
await ctx.SaveChangesAsync();
@@ -290,7 +290,7 @@ public sealed class SiteInstanceImportTests : IDisposable
var site = await ctx.Sites.SingleAsync(s => s.SiteIdentifier == "plant-1");
Assert.Equal("Plant 1", site.Name);
// Full config carried (D3 "carry full config").
Assert.Equal("10.0.0.1:8083", site.GrpcNodeAAddress);
Assert.Equal("http://10.0.0.1:8083", site.GrpcNodeAAddress);
Assert.Equal("akka://site@10.0.0.2:2552", site.NodeBAddress);
var conn = await ctx.DataConnections.SingleAsync(c => c.Name == "OpcUaPrimary");
@@ -1439,8 +1439,8 @@ public sealed class SiteInstanceImportTests : IDisposable
{
NodeAAddress = "akka://site@10.0.0.1:2552",
NodeBAddress = "akka://site@10.0.0.2:2552",
GrpcNodeAAddress = "10.0.0.1:8083",
GrpcNodeBAddress = "10.0.0.2:8083",
GrpcNodeAAddress = "http://10.0.0.1:8083",
GrpcNodeBAddress = "http://10.0.0.2:8083",
};
ctx.Sites.Add(site);
await ctx.SaveChangesAsync();