fix(dbpurge): use dbauthz.AsSystemRestricted (#7017)

This commit is contained in:
Colin Adler
2023-04-05 12:48:39 -05:00
committed by GitHub
parent a361673ad8
commit 407f80a1ef

View File

@ -10,6 +10,11 @@ import (
"cdr.dev/slog" "cdr.dev/slog"
"github.com/coder/coder/coderd/database" "github.com/coder/coder/coderd/database"
"github.com/coder/coder/coderd/database/dbauthz"
)
const (
delay = 24 * time.Hour
) )
// New creates a new periodically purging database instance. // New creates a new periodically purging database instance.
@ -19,9 +24,12 @@ import (
func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer { func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
closed := make(chan struct{}) closed := make(chan struct{})
ctx, cancelFunc := context.WithCancel(ctx) ctx, cancelFunc := context.WithCancel(ctx)
//nolint:gocritic // The system purges old db records without user input.
ctx = dbauthz.AsSystemRestricted(ctx)
go func() { go func() {
defer close(closed) defer close(closed)
ticker := time.NewTicker(24 * time.Hour)
ticker := time.NewTicker(delay)
defer ticker.Stop() defer ticker.Stop()
for { for {
select { select {
@ -44,6 +52,8 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
} }
logger.Error(ctx, "failed to purge old database entries", slog.Error(err)) logger.Error(ctx, "failed to purge old database entries", slog.Error(err))
} }
ticker.Reset(delay)
} }
}() }()
return &instance{ return &instance{