M3 Bundle F (Task F1) wires the cached-call audit pipeline through the composition roots: - Central: register SiteCallAuditActor as a cluster singleton + proxy (mirrors AuditLogIngestActor and NotificationOutboxActor). Program.cs calls .AddSiteCallAudit() on the central role. - Site: register ICachedCallTelemetryForwarder + CachedCallLifecycleBridge in AddAuditLog (lazy factory — Central nodes degrade to audit-only emission because IOperationTrackingStore is site-only). - Site: bind CachedCallLifecycleBridge to ICachedCallLifecycleObserver so StoreAndForwardService picks it up via DI. - Site: introduce IStoreAndForwardSiteContext + Host adapter to surface the site id to StoreAndForwardService without creating a StoreAndForward -> HealthMonitoring project-reference cycle. - ScriptExecutionActor resolves ICachedCallTelemetryForwarder per script scope and threads it into ScriptRuntimeContext. CachedCallTelemetryForwarder's IOperationTrackingStore dependency is now nullable so Central DI validation succeeds with the lazy registration; the forwarder's tracking-half emission is a no-op when the store is absent. Tests: - AkkaHostedServiceAuditWiringTests: Central host builds with AddSiteCallAudit and resolves ICachedCallTelemetryForwarder; Site resolves the forwarder + bridge + observer + IStoreAndForwardSiteContext. - Full solution: 194 Host tests green, 241 SiteRuntime tests green, every other suite unchanged.
54 lines
3.2 KiB
XML
54 lines
3.2 KiB
XML
<Project Sdk="Microsoft.NET.Sdk.Web">
|
|
|
|
<PropertyGroup>
|
|
<TargetFramework>net10.0</TargetFramework>
|
|
<ImplicitUsings>enable</ImplicitUsings>
|
|
<Nullable>enable</Nullable>
|
|
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<PackageReference Include="Akka.Cluster.Hosting" />
|
|
<PackageReference Include="Akka.Cluster.Tools" />
|
|
<PackageReference Include="Akka.Hosting" />
|
|
<PackageReference Include="Akka.Remote.Hosting" />
|
|
<PackageReference Include="AspNetCore.HealthChecks.UI.Client" />
|
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Design">
|
|
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
|
|
<PrivateAssets>all</PrivateAssets>
|
|
</PackageReference>
|
|
<PackageReference Include="Grpc.AspNetCore" />
|
|
<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" />
|
|
<PackageReference Include="Serilog.AspNetCore" />
|
|
<PackageReference Include="Serilog.Sinks.Console" />
|
|
<PackageReference Include="Serilog.Sinks.File" />
|
|
<!-- Transitive override: Akka.Hosting 1.5.62 pins OpenTelemetry.Api 1.9.0 which is flagged
|
|
(GHSA-g94r-2vxg-569j, GHSA-8785-wc3w-h8q6). Bumping directly clears both advisories. -->
|
|
<PackageReference Include="OpenTelemetry.Api" />
|
|
</ItemGroup>
|
|
|
|
<ItemGroup>
|
|
<ProjectReference Include="../ScadaLink.Commons/ScadaLink.Commons.csproj" />
|
|
<ProjectReference Include="../ScadaLink.TemplateEngine/ScadaLink.TemplateEngine.csproj" />
|
|
<ProjectReference Include="../ScadaLink.DeploymentManager/ScadaLink.DeploymentManager.csproj" />
|
|
<ProjectReference Include="../ScadaLink.SiteRuntime/ScadaLink.SiteRuntime.csproj" />
|
|
<ProjectReference Include="../ScadaLink.DataConnectionLayer/ScadaLink.DataConnectionLayer.csproj" />
|
|
<ProjectReference Include="../ScadaLink.Communication/ScadaLink.Communication.csproj" />
|
|
<ProjectReference Include="../ScadaLink.StoreAndForward/ScadaLink.StoreAndForward.csproj" />
|
|
<ProjectReference Include="../ScadaLink.ExternalSystemGateway/ScadaLink.ExternalSystemGateway.csproj" />
|
|
<ProjectReference Include="../ScadaLink.NotificationService/ScadaLink.NotificationService.csproj" />
|
|
<ProjectReference Include="../ScadaLink.NotificationOutbox/ScadaLink.NotificationOutbox.csproj" />
|
|
<ProjectReference Include="../ScadaLink.AuditLog/ScadaLink.AuditLog.csproj" />
|
|
<ProjectReference Include="../ScadaLink.SiteCallAudit/ScadaLink.SiteCallAudit.csproj" />
|
|
<ProjectReference Include="../ScadaLink.CentralUI/ScadaLink.CentralUI.csproj" />
|
|
<ProjectReference Include="../ScadaLink.Security/ScadaLink.Security.csproj" />
|
|
<ProjectReference Include="../ScadaLink.HealthMonitoring/ScadaLink.HealthMonitoring.csproj" />
|
|
<ProjectReference Include="../ScadaLink.SiteEventLogging/ScadaLink.SiteEventLogging.csproj" />
|
|
<ProjectReference Include="../ScadaLink.ClusterInfrastructure/ScadaLink.ClusterInfrastructure.csproj" />
|
|
<ProjectReference Include="../ScadaLink.InboundAPI/ScadaLink.InboundAPI.csproj" />
|
|
<ProjectReference Include="../ScadaLink.ConfigurationDatabase/ScadaLink.ConfigurationDatabase.csproj" />
|
|
<ProjectReference Include="../ScadaLink.ManagementService/ScadaLink.ManagementService.csproj" />
|
|
</ItemGroup>
|
|
|
|
</Project>
|