Skip to content

Conversation

@xe-nvdk
Copy link
Member

@xe-nvdk xe-nvdk commented Feb 9, 2026

Summary

  • Add optional database query parameter to POST /api/v1/compaction/trigger to compact a single database instead of all databases
  • Refactor RunCompactionCycleForTiers into shared runCycleInternal method to avoid code duplication
  • Validate database name using existing allowlist regex (isValidDatabaseName) for consistent security

Test plan

  • go build ./cmd/... ./internal/... passes
  • go test ./internal/compaction/... -v — all tests pass (3 new tests for per-database compaction)
  • Manual: POST /api/v1/compaction/trigger?database=mydb&tier=hourly compacts only mydb
  • Manual: invalid database names (e.g., ../etc) return 400

Closes #184

Add optional `database` query parameter to POST /api/v1/compaction/trigger
so admins can compact a single database instead of all databases. Useful for
prioritizing high-traffic databases or triggering compaction after bulk imports.

Refactors RunCompactionCycleForTiers into a shared runCycleInternal method
that accepts an optional database filter, avoiding code duplication.
@xe-nvdk xe-nvdk merged commit 166fccf into main Feb 9, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(compaction): add per-database compaction support

1 participant