127.10K

uveos_topic_slides

1.

БЕЗОПАСНОСТЬ И ДОСТУП
Авторизация
Каждый запрос к API проходит проверку — без токена и без роли доступа нет.
JWT · bcrypt
1
2
3
Вход в систему
Access + Refresh
Проверка на каждом запросе
Логин по номеру телефона, пароль
сверяется через bcrypt-хеш.
Неактивных пользователей отклоняем
сразу.
Access-токен живёт 15 минут, refresh —
7 дней. Короткий срок жизни снижает
риск при утечке токена.
GraphQL-контекст декодирует токен из
заголовка и передаёт пользователя во
все резолверы через requireAuth.
server/src: services/auth.service.ts · shared/utils/jwt.util.ts · graphql/context.ts · shared/utils/require-auth.util.ts

2.

НАБЛЮДАЕМОСТЬ СИСТЕМЫ
Логирование
Каждое важное действие фиксируется — но без утечки чувствительных данных.
Pino · Rotation
1
2
3
Структурные логи
Редактирование данных
Ежедневная ротация
Pino пишет JSON-логи с уровнями
info/warn/error, помечая каждую
запись сервисом и окружением.
Пароли, токены, номера телефонов,
IMEI и ICCID автоматически
маскируются перед записью в лог.
Файлы логов создаются по дням и
хранятся не дольше 7 суток — старые
версии удаляются автоматически.
server/src: shared/utils/logger.ts (pino + rotating-file-stream) · логи подключены во всех сервисах

3.

ДОКУМЕНТООБОРОТ
Генерация PDF-акта
Акт приёма-сдачи формируется автоматически — с подписью клиента и печатью.
Puppeteer · PDF
1
2
3
Данные заказа → HTML
Две подписи на выбор
HTML → PDF
Handlebars подставляет данные заказа
(VIN, марка, IMEI, ICCID, клиент) в
HTML-шаблон акта.
Подпись рисуется на canvas
(signature_pad) или загружается PNGфайлом — обе идут в base64.
Puppeteer рендерит HTML в headless
Chromium и возвращает готовый PDFбуфер в формате A4.
server/src: services/pdf.services.ts · templates/utils/pdf-renderer.ts (puppeteer) · client: DrawSignatureModal.tsx, UploadSignatureModal.tsx,
useGenerateActPdf.tsx
English     Русский Правила