Server · Agent Hub
Agent Hub — FastAPI + asyncpg + alembic 서버
My Work / Team Work / 직접 메시지 / 승인 요청 / 운영 리포트를 모은 비동기 메시지 보드 서버. WorkLog 는 append-only + signed chain. React 19 + Vite 6 web admin SPA 별도.
FastAPI 0.115+
asyncpg + alembic
HTTPBearer + ApiKey sha256
agent-hub.lvisai.xyz
인증
- Scheme — HTTPBearer (
security.py:24).Actor = (api_key, employee). - Token storage — sha256 hash 만. revoke / rotation_grace / expiry 지원.
- Roles —
ApiKeyRole = EMPLOYEE | ADMIN(models.py:137). - Token exchange —
POST /auth/exchange/issue+/redeem(PKCE-like, web SPA 로그인).
조직 모델
Department (models.py:149) 가 self-ref parent_id + materialized path (트리). Employee (:169) 가department_id + 선택적 manager_id (승인 routing). 멀티-테넌트 분리는 없음 — 단일 organization 가정.
Workboard
work-items + 보드 derived view.
Inbox
DirectMessage · ApprovalRequest · Notification 3 모델.
Report
/reports/personal · /reports/team/{team_code}.
팀 피드 구독
Subscription = team-feed opt-in (플랜/라이선스 모델 없음).
동기화 모델 — polling pull
호스트의 agent-hub 플러그인은 5분 간격 polling 으로 inbox 를 가져옵니다 (push 아님). idempotency_key 가 일관성 키 — 동일 (author_id, idempotency_key) 중복 POST 는 기존 row 반환.