The tenant's R2 artifacts are deleted per surviving run BEFORE the
snapshot rows go (deleteRun needs the run list — snapshot rows are the
only enumerable record of a run's artifact keys). That is also why the
SAME store must ride purgeExpiredWorkflowRuns' artifactStore:
retention deletes rows this offboarding can then no longer see, so an
unpaired retention purge strands those runs' artifacts.
OptionaltablePrefix
tablePrefix?:string
Must match createD1Storage's tablePrefix.
tenantId
tenantId:string
Must satisfy the tenant-ID pattern ^[a-z0-9]{3,32}$; see the range note below.
The tenant's R2 artifacts are deleted per surviving run BEFORE the snapshot rows go (deleteRun needs the run list — snapshot rows are the only enumerable record of a run's artifact keys). That is also why the SAME store must ride purgeExpiredWorkflowRuns'
artifactStore: retention deletes rows this offboarding can then no longer see, so an unpaired retention purge strands those runs' artifacts.