package watchdog import ( "log/slog" "orbits-server/internal/server/bootstrap" "orbits-server/internal/server/database" "orbits-server/internal/server/service" "os" "time" "gorm.io/gorm" ) func revokeExpired(db *gorm.DB) { now := time.Now() if err := db.Model(&database.AccessKey{}). Where("expires_at < ? AND revoked = ?", now, false). Update("revoked", true).Error; err != nil { slog.Error("failed to revoke expired keys", "error", err) } } func applyFS(env bootstrap.Environment, db *gorm.DB, fsOrphans []string) { fileService := service.NewFileService(db, env) for _, fp := range fsOrphans { switch env.WatchdogSyncMode { case "sync": fileService.SyncFile(fp) case "strict": if err := os.Remove(fp); err != nil { slog.Error("failed to remove file", "error", err) continue } case "dry": slog.Debug("dry mode", "file", fp) } } } func applyDB(db *gorm.DB, dbOrphans []database.File) { for _, f := range dbOrphans { err := database.DeleteFileByID(db, f.ID) if err != nil { slog.Error("failed to apply database measures", "error", err) } } }