npp-backend
npp-backend — центральный сервис платформы на NestJS + GraphQL.
Ответственность
- хранение пользователей, сессий, источников, source runs, закупок и отчётов;
- аутентификация и авторизация;
- реализация GraphQL-контракта;
- ingest нормализованных данных от
processing-worker.
Минимальные env-переменные
DATABASE_URLREDIS_URLRABBITMQ_URLJWT_ACCESS_SECRETINGEST_API_TOKEN
Готовый пример окружения удобнее брать из infra/.env.example.
Локальный запуск
bash
cd ../infra
cp .env.example .env
docker compose --env-file .env -f docker-compose.yml -f docker-compose.apps.yml up -d postgres redis rabbitmq minio minio-init
cd ../npp-backend
npm install
npm run db:setup
npm run start:devОсновные endpoints
- health:
http://localhost:3000/api/health - ready:
http://localhost:3000/api/health/ready - GraphQL:
http://localhost:3000/graphql
Auth flow
loginвыдаётaccessTokenиrefreshToken.refreshSessionперевыпускает пару токенов и ревокает старую refresh-сессию.logoutзавершает текущую server-side сессию.- access token валидируется не только криптографически, но и через связанную
UserSession.
Ingest от воркера
processing-worker вызывает mutation ingestNormalizedItem.
- JWT для ingest не нужен;
- обязательная авторизация идёт через заголовок
x-ingest-token; - значение заголовка должно совпадать с
INGEST_API_TOKEN.
Качество
bash
npm run check
npm run test
npm run build