Skip to content

Commit 80ef27f

Browse files
committed
fix(dbpurge): use dbauthz.AsSystemRestricted
Fixes: #7016
1 parent 00d468b commit 80ef27f

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

coderd/database/dbpurge/dbpurge.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,11 @@ import (
1010

1111
"cdr.dev/slog"
1212
"github.com/coder/coder/coderd/database"
13+
"github.com/coder/coder/coderd/database/dbauthz"
14+
)
15+
16+
const (
17+
delay = 24 * time.Hour
1318
)
1419

1520
// New creates a new periodically purging database instance.
@@ -19,15 +24,18 @@ import (
1924
func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
2025
closed := make(chan struct{})
2126
ctx, cancelFunc := context.WithCancel(ctx)
27+
//nolint:gocritic // The system purges old db records without user input.
28+
ctx = dbauthz.AsSystemRestricted(ctx)
2229
go func() {
2330
defer close(closed)
24-
ticker := time.NewTicker(24 * time.Hour)
25-
defer ticker.Stop()
31+
32+
timer := time.NewTimer(delay)
33+
defer timer.Stop()
2634
for {
2735
select {
2836
case <-ctx.Done():
2937
return
30-
case <-ticker.C:
38+
case <-timer.C:
3139
}
3240

3341
var eg errgroup.Group
@@ -44,6 +52,8 @@ func New(ctx context.Context, logger slog.Logger, db database.Store) io.Closer {
4452
}
4553
logger.Error(ctx, "failed to purge old database entries", slog.Error(err))
4654
}
55+
56+
timer.Reset(delay)
4757
}
4858
}()
4959
return &instance{

0 commit comments

Comments
 (0)