feat: add cleanup command to remove expired db entries #2035
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR adds a new
cleanup
command to the backend, enabling automated database cleanup for expired entities.Implementation
cleanup
command:cobra
CLI framework.--run
).--tables
flag).audit_logs
: Uses a retention period from the configuration.flows
andwebauthn_session_data
: Deletes expired entries based on timestamps.audit_log.retention
inconfig.yaml
(default: 720 hours).config_audit_log.go
.FlowPersister
fromflowdb.go
and moved it toflow_persister.go
.AuditLogPersister
to support batch deletion of expired logs.Additionally when creating a new audit log entry, the
created_at
andupdated_at
timestamps are now in UTC.Tests
hanko cleanup --tables=audit_logs --run
to perform a real cleanup.hanko cleanup
without--run
to simulate cleanup.config.yaml
to test different retention settings.