fix(deployment): read every external system's methods in one query for the artifact snapshot (review 2026-10-21 04/P7)

This commit is contained in:
Joseph Doherty
2026-10-22 06:31:30 -04:00
parent 58b1e021b2
commit 669822772e
5 changed files with 102 additions and 5 deletions
@@ -1,4 +1,5 @@
using ZB.MOM.WW.ScadaBridge.Commons.Entities.Deployment;
using ZB.MOM.WW.ScadaBridge.Commons.Entities.ExternalSystems;
using ZB.MOM.WW.ScadaBridge.Commons.Entities.Instances;
using ZB.MOM.WW.ScadaBridge.Commons.Types.Deployment;
using ZB.MOM.WW.ScadaBridge.Commons.Types.Enums;
@@ -206,6 +207,16 @@ public interface IDeploymentManagerRepository
/// <returns>The number of rows deleted; fewer than <paramref name="batchSize"/> means the sweep is complete.</returns>
Task<int> PurgeSystemArtifactDeploymentRecordsAsync(DateTimeOffset cutoffUtc, int batchSize, CancellationToken cancellationToken = default);
/// <summary>
/// Reads every external-system method in ONE untracked query, for the artifact-deploy
/// global snapshot (which serializes each system's methods into its artifact). Replaces a
/// per-system method query that ran on every artifact deploy and every pending-updates
/// evaluation.
/// </summary>
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
/// <returns>All external-system methods; group by <c>ExternalSystemDefinitionId</c>.</returns>
Task<IReadOnlyList<ExternalSystemMethod>> GetAllExternalSystemMethodsAsync(CancellationToken cancellationToken = default);
// DeployedConfigSnapshot
/// <summary>
/// Gets the deployed config snapshot for an instance.