Files
optovia/prefect
Ruslan Bakiev eacd3b9a96 feat: add TerminusDB schema integration and dynamic forms
- 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>
2025-12-08 15:48:12 +07:00
..

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 (рекомендуется)

  1. Создать новый проект типа "Docker Compose" на Dokploy
  2. Название: prefect-stack
  3. Compose file path: prefect/docker-compose.yml
  4. Port: 4200 (для Prefect UI)
  5. GitHub webhook: включить автоматический деплой

Вариант 2: Отдельные проекты

Если Dokploy не поддерживает docker-compose с build, создать два проекта:

  1. prefect-server-db - только postgres
  2. prefect-server - Prefect Server с UI
  3. 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

Использование

После деплоя:

  1. Открыть Prefect UI по URL
  2. Проверить, что deployment team-created/team-created-deployment виден
  3. 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"