63c16d6912
Phase 4 of the ClusterClient -> gRPC migration deleted the Akka transports but left the naming behind: `ClusterClientSiteAuditClient` was transport- agnostic and worked unchanged, so it survived the deletion under a name that now describes a transport the repo no longer has. Same for a scatter of doc-comments still framing gRPC as "the new transport" beside an Akka one that is gone. Renames it to `SiteCommunicationAuditClient` (and its test file) and rewrites the stale comments to describe the single transport that exists. Also tightens CLAUDE.md: drops the self-describing directory listing and the 27-component enumeration in favour of the non-obvious parts only. Behaviour-neutral: names and prose only. Recorded as the Phase 4 follow-up in docs/plans/2026-07-22-clusterclient-to-grpc-plan.md.
49 lines
2.6 KiB
C#
49 lines
2.6 KiB
C#
using ZB.MOM.WW.ScadaBridge.Communication.Grpc;
|
|
|
|
namespace ZB.MOM.WW.ScadaBridge.AuditLog.Site.Telemetry;
|
|
|
|
/// <summary>
|
|
/// Mockable abstraction over the central site-audit push surface that
|
|
/// <see cref="SiteAuditTelemetryActor"/> uses to forward <see cref="AuditEventBatch"/>
|
|
/// payloads. The production implementation is
|
|
/// <see cref="SiteCommunicationAuditClient"/> — wired in the Host for site
|
|
/// roles, it forwards batches to central via the site's
|
|
/// <c>SiteCommunicationActor</c>. Unit tests substitute via NSubstitute
|
|
/// against this interface so the actor never needs a live transport.
|
|
/// </summary>
|
|
public interface ISiteStreamAuditClient
|
|
{
|
|
/// <summary>
|
|
/// Forwards <paramref name="batch"/> to the central audit-ingest path. The
|
|
/// returned <see cref="IngestAck"/> carries the <c>accepted_event_ids</c>
|
|
/// the actor will flip to
|
|
/// <see cref="ZB.MOM.WW.ScadaBridge.Commons.Types.Enums.AuditForwardState.Forwarded"/>
|
|
/// in the site SQLite queue.
|
|
/// </summary>
|
|
/// <param name="batch">The batch of audit events to forward.</param>
|
|
/// <param name="ct">Cancellation token for the operation.</param>
|
|
/// <returns>A task that resolves to the ingest acknowledgement containing accepted event IDs.</returns>
|
|
Task<IngestAck> IngestAuditEventsAsync(AuditEventBatch batch, CancellationToken ct);
|
|
|
|
/// <summary>
|
|
/// Forwards the combined <see cref="CachedTelemetryBatch"/>
|
|
/// to the central cached-telemetry ingest path. Each packet carries both the
|
|
/// audit row and the operational <c>SiteCalls</c> upsert; central writes both
|
|
/// in a single MS SQL transaction. Returns the same <see cref="IngestAck"/>
|
|
/// shape as <see cref="IngestAuditEventsAsync"/> so the site-side forwarder
|
|
/// can flip the underlying audit rows to
|
|
/// <see cref="ZB.MOM.WW.ScadaBridge.Commons.Types.Enums.AuditForwardState.Forwarded"/>
|
|
/// once central has acknowledged them.
|
|
/// </summary>
|
|
/// <remarks>
|
|
/// The production <see cref="SiteCommunicationAuditClient"/> forwards over
|
|
/// the site's central transport; the <see cref="NoOpSiteStreamAuditClient"/>
|
|
/// DI default (used by central and test composition roots) returns an empty
|
|
/// ack so no rows are flipped.
|
|
/// </remarks>
|
|
/// <param name="batch">The batch of cached-call telemetry packets to forward.</param>
|
|
/// <param name="ct">Cancellation token for the operation.</param>
|
|
/// <returns>A task that resolves to the ingest acknowledgement containing accepted event IDs.</returns>
|
|
Task<IngestAck> IngestCachedTelemetryAsync(CachedTelemetryBatch batch, CancellationToken ct);
|
|
}
|