Reply Pilot Web App
Tato stranka popisuje modul reply-pilot-app/, ktery po rozdeleni architektury
funguje primarne jako frontend/BFF vrstva nad reply-pilot-be.
Co je soucasti
- Flask aplikace v balicku
reply_pilot_app/ - HTTP klient pro
reply-pilot-be - HTTP klient pro
reply-pilot-search - dashboard s kalendarem, filtry a draft formularem
- search stranka nad party/activity fulltextem
- signpost prehledy pro firmy, osoby, emaily a tasky
- sprava predpripravenych AI promptu pro reply workflow
GET /healthzpro monitoring- Docker image a Compose runtime s non-root uzivatelem
Runtime
- aplikace bezi v kontejneru jako non-root uzivatel
- runtime UID:GID se do Compose predava pres
HOST_UIDaHOST_GID - lokalni mounty jsou
data -> /app/data,logs -> /app/logs,reply-pilot-app/conf -> /app/conf - aplikace se na backend napojuje pres sdilenou Docker sit
reply-pilot-internal - hlavni runtime zavislost je
BACKEND_API_BASE_URL, defaultnehttp://reply-pilot-be:5000 - footer standardne odkazuje na produkcni docs web pres
DOCUMENTATION_URL, defaultnehttps://reply-pilot-docs.mathbox.90.cz - fulltext vola pres
SEARCH_API_BASE_URL, defaultnehttp://reply-pilot-search:5000 - mount
conf/zustava read-only - aktivni log se lokalne zapisuje do
reply-pilot-app/logs/reply-pilot-app.log - image modulu se jmenuje
reply-pilot-app:latest - operacni skripty jsou
reply-pilot-app-start.sh,reply-pilot-app-stop.sh,reply-pilot-app-deploy.sh
Konfigurace
Hlavni konfigurace je pres promenne prostredi:
APP_PORTBACKEND_API_BASE_URLBACKEND_TIMEOUT_SECONDSSEARCH_API_BASE_URLSEARCH_TIMEOUT_SECONDSDOCUMENTATION_URLAPP_DATA_DIRHOST_HTTP_PORTAPP_TIMEZONEFLASK_SECRET_KEYREPLY_PILOT_DB_URLEMAILS_DATA_FILELOG_FILELOG_LEVELMAX_EMAILSHOST_UIDHOST_GID
Zdroj dat
Ve standardnim runtime si appka taha inbox, detail threadu, sync i draft akce z
reply-pilot-be.
Fulltext si appka taha z reply-pilot-search, ktery vraci vysledky s linkem na
detail firmy, osoby, emailu nebo obecne aktivity.
Pokud je zapnute SIMPLE_AUTH_ENABLED, app navic zapisuje pouzite rp_nonce
do reply-pilot-db, aby replay protection nebyla lokalni ani file-based.
Ve stejne DB si app uklada i predpripravene AI prompty do tabulky
public.email_replay_ai_prompt.
Legacy fallback lokalniho rezimu je zachovany kvuli testum a postupne migraci:
BACKEND_API_BASE_URLprazdne -> app bezi jako puvodni all-in-one lokalni rezimBACKEND_API_BASE_URLnastavene -> app vola backend a sama nepracuje primo s Gmail/OpenAI
Endpointy
/dashboard/searchfulltext nad emaily, party a activity modely/companies/<party_id>detail firmy z party modelu/people/<party_id>detail osoby z party modelu/emails/<activity_id>detail emailu z activity modelu/activities/<activity_id>detail ne-emailove aktivity/tasksprehled JIRA tasku/tasks/<task_id>detail tasku s navazanymi emailovymi vlakny/ai-promptyCRUD sprava predpripravenych promptu/api/emailsJSON vystup pro dalsi integrace/healthzhealth endpoint/draftsplaceholder POST endpoint pro dalsi navazujici logiku