Files
clientsflow/backend/README.md
2026-03-08 19:15:30 +07:00

1.7 KiB
Raw Blame History

backend

Core CRM/omni-домен с единственной Prisma-базой.

Назначение

  • принимает входящие telegram-события через GraphQL mutation ingestTelegramInbound;
  • создает исходящую задачу через GraphQL mutation requestTelegramOutboundtelegram_backend, далее в Hatchet);
  • принимает отчет о доставке через GraphQL mutation reportTelegramOutbound.
  • выполняет sync календарных предзаписей через GraphQL mutation syncCalendarPredueTimeline.

API

  • GET /health
  • POST /graphql

GraphQL auth

Если задан BACKEND_GRAPHQL_SHARED_SECRET, запросы на /graphql должны содержать заголовок:

  • x-graphql-secret: <BACKEND_GRAPHQL_SHARED_SECRET>

Переменные окружения

  • PORT (default: 8090)
  • MAX_BODY_SIZE_BYTES (default: 2097152)
  • BACKEND_GRAPHQL_SHARED_SECRET (optional)
  • TELEGRAM_BACKEND_GRAPHQL_URL (required для requestTelegramOutbound)
  • TELEGRAM_BACKEND_GRAPHQL_SHARED_SECRET (optional)
  • DEFAULT_TEAM_ID (optional fallback для inbound маршрутизации)
  • TIMELINE_EVENT_PREDUE_MINUTES (default: 30)
  • TIMELINE_EVENT_LOOKBACK_MINUTES (default: 180)
  • TIMELINE_EVENT_LOOKAHEAD_MINUTES (default: 1440)
  • TIMELINE_SCHEDULER_LOCK_KEY (default: 603001)

Prisma policy

  • Источник схемы: frontend/prisma/schema.prisma.
  • Локальная копия в backend/prisma/schema.prisma обновляется только через scripts/prisma-sync.sh.
  • Миграции/db push выполняются только в frontend.