backend
Core CRM/omni-домен с единственной Prisma-базой.
Назначение
- принимает входящие telegram-события через GraphQL mutation
ingestTelegramInbound; - создает исходящую задачу через GraphQL mutation
requestTelegramOutbound(вtelegram_backend, далее в Hatchet); - принимает отчет о доставке через GraphQL mutation
reportTelegramOutbound. - выполняет sync календарных предзаписей через GraphQL mutation
syncCalendarPredueTimeline.
API
GET /healthPOST /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.