feat: add db cleanup routine back

This commit is contained in:
Stavros
2026-06-01 11:47:17 +03:00
parent faa3156672
commit 83ed9ece57
+25 -58
View File
@@ -301,7 +301,7 @@ func NewOIDCService(
} }
// Start cleanup routine // Start cleanup routine
// dg.Go(service.cleanupRoutine, ding.RingMinor) dg.Go(service.cleanupRoutine, ding.RingMinor)
// Create caches // Create caches
codeCash := NewCacheStore[AuthorizeCodeEntry](256) codeCash := NewCacheStore[AuthorizeCodeEntry](256)
@@ -747,68 +747,35 @@ func (service *OIDCService) DeleteOldSession(ctx context.Context, sub string) er
return nil return nil
} }
// // Cleanup routine - Resource heavy due to the linked tables func (service *OIDCService) cleanupRoutine(ctx context.Context) {
// func (service *OIDCService) cleanupRoutine(ctx context.Context) { service.log.App.Debug().Msg("Starting OIDC cleanup routine")
// service.log.App.Debug().Msg("Starting OIDC cleanup routine") ticker := time.NewTicker(30 * time.Minute)
// ticker := time.NewTicker(time.Duration(30) * time.Minute) defer ticker.Stop()
// defer ticker.Stop()
// for { for {
// select { select {
// case <-ticker.C: case <-ticker.C:
// service.log.App.Debug().Msg("Performing OIDC cleanup routine") service.log.App.Debug().Msg("Performing OIDC cleanup routine")
// currentTime := time.Now().Unix() currentTime := time.Now().Unix()
// // For the OIDC tokens, if they are expired we delete the userinfo and codes // Limitation of sqlc, meaning we need to specify a timestamp for both token and refresh token expiry
// expiredTokens, err := service.queries.DeleteExpiredOidcTokens(ctx, repository.DeleteExpiredOidcTokensParams{ err := service.queries.DeleteExpiredOIDCSessions(ctx, repository.DeleteExpiredOIDCSessionsParams{
// TokenExpiresAt: currentTime, TokenExpiresAt: currentTime,
// RefreshTokenExpiresAt: currentTime, RefreshTokenExpiresAt: currentTime,
// }) })
// if err != nil { if err != nil {
// service.log.App.Warn().Err(err).Msg("Failed to delete expired tokens") service.log.App.Warn().Err(err).Msg("Failed to delete expired OIDC sessions")
// } }
// for _, expiredToken := range expiredTokens { service.log.App.Debug().Msg("Finished OIDC cleanup routine")
// err := service.DeleteOldSession(ctx, expiredToken.Sub) case <-ctx.Done():
// if err != nil { service.log.App.Debug().Msg("Stopping OIDC cleanup routine")
// service.log.App.Warn().Err(err).Msg("Failed to delete session for expired token") return
// } }
// } }
}
// // For expired codes, we need to get the sub, check if tokens are expired and if they are remove everything
// expiredCodes, err := service.queries.DeleteExpiredOidcCodes(ctx, currentTime)
// if err != nil {
// service.log.App.Warn().Err(err).Msg("Failed to delete expired codes")
// }
// for _, expiredCode := range expiredCodes {
// token, err := service.queries.GetOidcTokenBySub(ctx, expiredCode.Sub)
// if err != nil {
// if !errors.Is(err, repository.ErrNotFound) {
// service.log.App.Warn().Err(err).Msg("Failed to get token by sub for expired code")
// }
// continue
// }
// if token.TokenExpiresAt < currentTime && token.RefreshTokenExpiresAt < currentTime {
// err := service.DeleteOldSession(ctx, expiredCode.Sub)
// if err != nil {
// service.log.App.Warn().Err(err).Msg("Failed to delete session for expired code")
// }
// }
// }
// service.log.App.Debug().Msg("Finished OIDC cleanup routine")
// case <-ctx.Done():
// service.log.App.Debug().Msg("Stopping OIDC cleanup routine")
// return
// }
// }
// }
func (service *OIDCService) GetJWK() ([]byte, error) { func (service *OIDCService) GetJWK() ([]byte, error) {
hasher := sha256.New() hasher := sha256.New()