- Simplify TerminusDB schema to single Cocoa class with 10 properties - Add terminus_schema_id field to Odoo Product model - Update FastAPI and GraphQL to expose terminus_schema_id - Add FormKit for dynamic form generation - Create useTerminus composable for schema loading and conversion - Add /dashboard/add-product page with dynamic form rendering 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Prefect Stack
Полный стек Prefect для event-driven архитектуры:
- Prefect Server - UI и API для управления flows
- Prefect Worker - выполняет flows (из папки
/prefect) - PostgreSQL - база данных для Prefect Server
Архитектура
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Prefect Server │◄─────│ Prefect Worker │ │ PostgreSQL │
│ (UI + API) │ │ (execute flows)│ │ (metadata) │
│ Port: 4200 │ │ │ │ │
└─────────────────┘ └─────────────────┘ └─────────────────┘
▲ │
│ │
│ ▼
┌─────────────────┐ ┌─────────────────┐
│ Teams Backend │ │ Logto + Odoo │
│ (triggers) │ │ (integrations) │
└─────────────────┘ └─────────────────┘
Установка на Dokploy
Вариант 1: Docker Compose (рекомендуется)
- Создать новый проект типа "Docker Compose" на Dokploy
- Название:
prefect-stack - Compose file path:
prefect/docker-compose.yml - Port:
4200(для Prefect UI) - GitHub webhook: включить автоматический деплой
Вариант 2: Отдельные проекты
Если Dokploy не поддерживает docker-compose с build, создать два проекта:
- prefect-server-db - только postgres
- prefect-server - Prefect Server с UI
- prefect-worker (уже существует) - Worker для flows
Переменные окружения (Infisical)
Создать новую секцию [prefect-stack] в Infisical:
# Prefect Worker - для подключения к Logto и Teams Backend
LOGTO_MANAGEMENT_API_ENDPOINT=https://auth.optovia.ru/api
LOGTO_M2M_APP_ID=<machine-to-machine app ID>
LOGTO_M2M_APP_SECRET=<machine-to-machine app secret>
LOGTO_M2M_RESOURCE=https://default.logto.app/api
TEAMS_BACKEND_URL=http://teams-backend:8000
# PostgreSQL (уже в docker-compose.yml, но можно вынести)
POSTGRES_USER=prefect
POSTGRES_PASSWORD=prefect
POSTGRES_DB=prefect
URL после деплоя
- Prefect UI: будет доступен по URL, который выдаст Dokploy (например,
https://prefect-stack-xxxxx.dokploy.app) - Prefect API:
https://prefect-stack-xxxxx.dokploy.app/api
Использование
После деплоя:
- Открыть Prefect UI по URL
- Проверить, что deployment
team-created/team-created-deploymentвиден - Teams Backend должен использовать
PREFECT_API_URL=http://prefect-server:4200/apiдля запуска flows
Тестирование
Запустить flow вручную из Prefect UI:
prefect deployment run team-created/team-created-deployment \
--param team_id="test-123" \
--param team_name="Test Team" \
--param owner_id="user-456"