chore(ci+logs): eslint в CI, npm audit, logger с уровнями, retention error_logs
Шаги 1.6 и 1.7 плана production-готовности: - eslint flat-config (баг-ловушки, легаси warn), lint блокирующий в pr-check - npm audit --audit-level=high в CI (отчёт) - фикс реального бага: условный useRef в TaskTitleInline - server/utils/logger.ts (LOG_LEVEL/LOG_FORMAT) в 5 горячих местах - error_logs retention 30 дней (worker), redactSensitive в captureErrorLog - 0 errors lint, vitest 96/96
This commit is contained in:
@@ -2,6 +2,7 @@ import { withSuperAdmin } from "../db";
|
||||
import { gpsStorage } from "./storage";
|
||||
import { notifyOffline } from "./geozone.service";
|
||||
import { eventBus } from "../routes/shared";
|
||||
import { logger } from "../utils/logger";
|
||||
|
||||
/**
|
||||
* Воркер офлайн-детекта GPS-объектов.
|
||||
@@ -11,6 +12,8 @@ import { eventBus } from "../routes/shared";
|
||||
* Работает независимо от Traccar (PWA-трекинг тоже покрывается).
|
||||
*/
|
||||
|
||||
const log = logger("GPS Worker");
|
||||
|
||||
const TICK_MS = 60_000;
|
||||
const OFFLINE_THRESHOLD_MS = 15 * 60_000;
|
||||
|
||||
@@ -34,9 +37,9 @@ async function tick(): Promise<void> {
|
||||
organizationId: asset.organizationId,
|
||||
});
|
||||
|
||||
console.log(`[GPS Worker] Объект ${asset.id} ('${asset.name}', org ${asset.organizationId}) переведён в offline`);
|
||||
log.info(`Объект ${asset.id} ('${asset.name}', org ${asset.organizationId}) переведён в offline`);
|
||||
} catch (err) {
|
||||
console.error(`[GPS Worker] Ошибка обработки объекта ${asset.id}:`, err);
|
||||
log.error(`Ошибка обработки объекта ${asset.id}:`, err);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -46,8 +49,8 @@ export function startGpsWorker(): void {
|
||||
isRunning = true;
|
||||
|
||||
setInterval(() => {
|
||||
tick().catch((err) => console.error("[GPS Worker] Tick error:", err));
|
||||
tick().catch((err) => log.error("Tick error:", err));
|
||||
}, TICK_MS);
|
||||
|
||||
console.log("[GPS Worker] started");
|
||||
log.info("started");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user