46 lines
1.3 KiB
Markdown
46 lines
1.3 KiB
Markdown
# Prune Roadmap
|
|
|
|
Current managed-output pruning behavior is documented in:
|
|
|
|
- `docs/config.md`
|
|
- `docs/cli.md`
|
|
- `docs/operations.md`
|
|
- `docs/troubleshooting.md`
|
|
- `docs/integrations/destination-state.md`
|
|
- `docs/internal/app.md`
|
|
- `docs/internal/publish.md`
|
|
- `docs/internal/state.md`
|
|
|
|
## Current Scope
|
|
|
|
Current scope includes:
|
|
|
|
- destination `retention.prune.enabled`;
|
|
- `retention.prune.older_than`;
|
|
- `retention.prune.keep_latest`;
|
|
- `distributor prune --dry-run`;
|
|
- `distributor prune --apply`;
|
|
- text and JSON reports;
|
|
- owner-scoped pruning for shared-root state.
|
|
|
|
Pruning uses managed output `updated_at` timestamps from destination state.
|
|
When both `keep_latest` and `older_than` are configured, the newest
|
|
`keep_latest` outputs are preserved before age-based pruning is applied to the
|
|
remaining managed outputs.
|
|
|
|
Apply mode deletes only planned managed output paths, preserves unmanaged
|
|
content, preserves `.distributor.json`, and rewrites state only for confirmed
|
|
deletions.
|
|
|
|
## Deferred Work
|
|
|
|
Deferred pruning work:
|
|
|
|
- one-off retention overrides;
|
|
- automatic post-publish pruning;
|
|
- path/date parsing retention policies;
|
|
- group-level pruning by source publication;
|
|
- removal of empty state files.
|
|
|
|
Pruning remains an operator command rather than a general storage cleanup tool.
|