feat(sites): record the artifact revision last deployed to a site
Site.ArtifactRevisionHash / ArtifactsDeployedAt (nullable, migration AddSiteArtifactRevision) so the Sites page can tell whether a site's system-wide artifacts are current. Not transported. Adds the GetDeployedRevisionHashesAsync projection for the fleet-wide staleness batch. Claude-Session: https://claude.ai/code/session_01Y5ef34iUUMjmwnMpL9xgmB
This commit is contained in:
+8
@@ -204,6 +204,14 @@ public interface IDeploymentManagerRepository
|
||||
/// <returns>The deployed config snapshot, or null if not found.</returns>
|
||||
Task<DeployedConfigSnapshot?> GetDeployedSnapshotByInstanceIdAsync(int instanceId, CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// InstanceId → RevisionHash for every <c>DeployedConfigSnapshot</c>. A projection read — never
|
||||
/// materialises <c>ConfigurationJson</c>, so it is safe to call for the whole fleet (the
|
||||
/// pending-updates aggregate does, once per cache TTL).
|
||||
/// </summary>
|
||||
/// <param name="cancellationToken">A cancellation token that can be used to cancel the operation.</param>
|
||||
/// <returns>A dictionary keyed by instance ID; instances with no snapshot are absent.</returns>
|
||||
Task<IReadOnlyDictionary<int, string>> GetDeployedRevisionHashesAsync(CancellationToken cancellationToken = default);
|
||||
/// <summary>
|
||||
/// Adds a new deployed config snapshot.
|
||||
/// </summary>
|
||||
/// <param name="snapshot">The deployed config snapshot to add.</param>
|
||||
|
||||
Reference in New Issue
Block a user