Структура проекта
AgentBI следует тому же стилю документации, что и AegisAI: визуальные диаграммы структуры плюс справочные таблицы путей. На этой странице описана структура репозитория — API-маршруты, сервисы, страницы frontend и ops-скрипты.
Структура репозитория
flowchart TB
ROOT[agentbi/]
ROOT --> APP[app/]
ROOT --> FE[frontend/]
ROOT --> DOCS[docs/]
ROOT --> SCRIPTS[scripts/]
ROOT --> SDK[sdk/]
ROOT --> OPS[ops configs]
APP --> MODELS[models/]
APP --> API[api/v1/]
APP --> SVCS[services/]
APP --> CORE[core/]
APP --> SCH[schemas/]
APP --> PR[prompts/]
FE --> PUB[public/]
FE --> SRC[src/]
SRC --> PAGES[pages/]
SRC --> JS[js/]
SRC --> CSS[css/]
DOCS --> ASSETS[assets/brand/]
OPS --> DC[docker-compose.yml]
OPS --> DEP[deploy.sh]
OPS --> ENV[.env.example]
OPS --> MK[mkdocs.yml]
Backend (app/)
flowchart LR
subgraph Entrypoint
MAIN[main.py]
CFG[config.py]
DB[database.py]
ST[startup.py]
end
subgraph API["api/v1"]
AUTH[auth / sso / api-keys]
TEN[tenants / tenant_domain]
BILL[billing]
ING[ingest]
MET[metrics]
DASH[dashboard]
ROI[roi]
CMP[compare]
REP[reports]
AGT[agents]
HL[health / version]
end
subgraph Domain
M[models/]
S[services/]
C[core/]
SC[schemas/]
end
MAIN --> API
API --> S
S --> M
API --> C
API --> SC
ST --> DB
MAIN --> CFG
| Путь |
Назначение |
app/main.py |
FastAPI-приложение, CORS, lifespan, Sentry, обработчики исключений |
app/config.py |
Настройки из окружения |
app/database.py |
Async SQLAlchemy engine, инициализация таблиц, хуки Timescale |
app/startup.py |
Bootstrap администратора, опциональный demo seed |
app/models/ |
ORM: agents, events, metrics, reports, users, tenants, dashboards |
app/api/v1/ |
REST под /api/v1 (auth, billing, tenant domain, analytics) |
app/services/ |
Агрегация, ROI, SSO, tenants, ingest, export |
app/core/ |
Security, RBAC, entitlements, Redis, domain validation, version |
app/schemas/ |
Pydantic-модели запросов/ответов |
app/prompts/ |
Детерминированный текст executive summary |
Frontend (frontend/)
flowchart LR
INDEX[index.html<br/>landing] --> LOGIN[login.html]
INDEX --> REGISTER[register.html]
REGISTER --> LOGIN
LOGIN --> LAYOUT[layout.js]
LAYOUT --> DASH[dashboard.js]
LAYOUT --> AGENTS[agents.js]
LAYOUT --> ROI[roi.js]
LAYOUT --> CMP[compare.js]
LAYOUT --> REP[reports.js]
DASH --> CHARTS[charts.js]
AGENTS --> APIJS[api.js]
ROI --> APIJS
PUB[public/<br/>logo + favicon] --> INDEX
| Путь |
Назначение |
frontend/index.html |
Публичный demo landing |
frontend/login.html |
Страница входа (пароль, demo-кнопка, Google SSO) |
frontend/register.html |
Публичная регистрация (tenant Free + admin организации) |
frontend/demo/login.html |
Prefill demo sign-in |
frontend/src/pages/ |
Dashboard, agents, ROI, compare, reports, users, pricing, settings |
frontend/src/js/ |
Логика страниц, Chart.js helpers, auth session, billing/domain UI, demo mode |
frontend/src/css/style.css |
Стили Executive UI |
frontend/src/css/landing.css |
Публичный demo landing |
frontend/public/ |
Logo и favicon |
frontend/nginx.conf / Dockerfile.prod |
Landing + login + demo + SPA + reverse proxy /api |
Docs, SDK и scripts
| Путь |
Назначение |
docs/en/ · docs/ru/ |
Контент MkDocs Material (EN/RU через mkdocs-static-i18n) |
docs/assets/brand/ |
Logo / icon для docs |
mkdocs.yml |
Навигация, тема, языки i18n, Mermaid fences |
sdk/agentbi.py |
Минимальный Python-клиент для event ingest |
scripts/backup_postgres.sh |
Дамп БД перед migrate / cron |
scripts/restore_postgres.sh |
Восстановление из дампа |
scripts/rollback.sh |
Откат к образам предыдущего SHA |
scripts/check_lockfile.sh |
Проверка requirements vs lockfile |
scripts/vps/ |
Swapfile на хосте + безопасный Docker prune |
scripts/seed_demo_data.py |
Demo agents + events |
alembic/versions/ |
Миграции схемы (004_tenant_custom_domain, …) |
requirements-lock.txt |
Зафиксированные транзитивные зависимости для Docker/CI |
docker-compose.yml / .prod.yml |
Local / Traefik production stacks |
deploy.sh |
Безопасный deploy: backup → SHA build → migrate → health |
VERSION |
Git SHA деплоя (записывается deploy) |
.env.example |
Шаблон окружения |
Топология runtime
flowchart TB
subgraph Docker Compose
PG[(postgres:15)]
RD[(redis:7)]
API[api<br/>FastAPI + Uvicorn]
WEB[frontend<br/>nginx]
TR[traefik]
end
TR --> WEB
TR --> API
WEB -->|/api| API
API --> PG & RD
В production frontend — статические nginx-assets за общим Traefik edge (agentops-edge); API обращается к PostgreSQL и Redis во внутренней Docker-сети (опубликованных host-портов нет). См. Deploy и Architecture.
Связанная документация