fix(deployment): purge SystemArtifactDeploymentRecords in the terminal-record retention sweep (review 2026-10-21 08/G2)

This commit is contained in:
Joseph Doherty
2026-10-22 06:20:44 -04:00
parent da5a049077
commit d6a9a79c27
7 changed files with 138 additions and 4 deletions
@@ -194,6 +194,17 @@ public interface IDeploymentManagerRepository
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
/// <returns>A task representing the asynchronous operation.</returns>
Task DeleteSystemArtifactDeploymentAsync(int id, CancellationToken cancellationToken = default);
/// <summary>
/// Deletes system artifact deployment records deployed before <paramref name="cutoffUtc"/>,
/// in one bounded batch. One row is written per <i>Deploy Artifacts</i> run and nothing
/// reads them back, so they share the terminal deployment-record retention window
/// instead of growing without bound.
/// </summary>
/// <param name="cutoffUtc">Records deployed before this instant are eligible.</param>
/// <param name="batchSize">Maximum rows deleted in this call.</param>
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
/// <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);
// DeployedConfigSnapshot
/// <summary>