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 /healthz pro 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_UID a HOST_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, defaultne http://reply-pilot-be:5000
  • footer standardne odkazuje na produkcni docs web pres DOCUMENTATION_URL, defaultne https://reply-pilot-docs.mathbox.90.cz
  • fulltext vola pres SEARCH_API_BASE_URL, defaultne http://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_PORT
  • BACKEND_API_BASE_URL
  • BACKEND_TIMEOUT_SECONDS
  • SEARCH_API_BASE_URL
  • SEARCH_TIMEOUT_SECONDS
  • DOCUMENTATION_URL
  • APP_DATA_DIR
  • HOST_HTTP_PORT
  • APP_TIMEZONE
  • FLASK_SECRET_KEY
  • REPLY_PILOT_DB_URL
  • EMAILS_DATA_FILE
  • LOG_FILE
  • LOG_LEVEL
  • MAX_EMAILS
  • HOST_UID
  • HOST_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_URL prazdne -> app bezi jako puvodni all-in-one lokalni rezim
  • BACKEND_API_BASE_URL nastavene -> app vola backend a sama nepracuje primo s Gmail/OpenAI

Endpointy

  • / dashboard
  • /search fulltext 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
  • /tasks prehled JIRA tasku
  • /tasks/<task_id> detail tasku s navazanymi emailovymi vlakny
  • /ai-prompty CRUD sprava predpripravenych promptu
  • /api/emails JSON vystup pro dalsi integrace
  • /healthz health endpoint
  • /drafts placeholder POST endpoint pro dalsi navazujici logiku