-- SPDX-FileCopyrightText: 2026 Alexandra de Wit -- -- SPDX-License-Identifier: MIT {- | Advisory artifact sync and the write side of "Ecluse.Core.Cve.Slot". Each mount retries at boot, then polls for new artifacts. An empty slot denies by default. -} module Ecluse.Runtime.Cve.Sync ( -- * The injected transport DbEtag (..), S3CveSource, newS3CveSource, s3CveFetchFor, -- * One sync cycle SyncEnv (..), -- * The scheduled task SyncSchedule (..), SyncHooks (..), runCveSync, bootBackoffDelays, absentReportInterval, ) where import Ecluse.Runtime.Cve.Sync.Internal ( DbEtag (..), S3CveSource, SyncEnv (..), SyncHooks (..), SyncSchedule (..), absentReportInterval, bootBackoffDelays, newS3CveSource, runCveSync, s3CveFetchFor, )