Reply Pilot Gmail
Tato stranka popisuje modul reply-pilot-gmail/.
Role modulu
- vlastni Google OAuth a Gmail API integraci
- vystavuje interni HTTP API pro
reply-pilot-be - vytvari mailbox snapshot payloady pro backend cache
- umi inkrementalni sync pres Gmail
historyIdpro vychozi inbox dotaz - umi udrzovat Gmail
watchstav a prijmout Pub/Sub notifikaci o zmene mailboxu - vytvari Gmail reply drafty
Runtime
- bezi jako samostatny Flask/Gunicorn kontejner
- zapisuje do
reply-pilot-gmail/dataareply-pilot-gmail/logs conf/zustava read-only mount- na interni siti se hlasi jako
reply-pilot-gmail reply-pilot-beho vola preshttp://reply-pilot-gmail:5000- Gmail token se drzi v
data/gmail_token.json, aby refresh flow mohl zapisovat - watch stav se drzi v
data/gmail-watch.json, aby se dal bezpecne obnovovat mezi restarty
Endpointy
GET /healthz- kontroluje jen lokalni runtime modulu a pritomnost/citelnost Gmail token souboru
- neprovadi zadny primy call do Gmail API; dostupnost Gmailu se projevi az pri syncu nebo tvorbe draftu
GET /api/metaGET /api/watchPOST /api/watch/ensurePOST /api/watch/stopPOST /api/watch/notifyPOST /api/watch/pullPOST /api/watch/ackPOST /api/mailbox/snapshotPOST /api/mailbox/historyPOST /api/emails/<email_id>/drafts/replyPOST /api/emails/<email_id>/send/reply
Reply draft/send endpointy podporuji JSON bez priloh a multipart/form-data s textovymi poli recipient, subject, body_text, reply_to_message_id a opakovanym file polem attachments. Limit je 10 souboru, 10 MB na soubor a 20 MB celkem.
Watch workflow
POST /api/watch/ensurevola Gmailusers.watchjen kdyz existujici watch nema dostatecnou rezervu do expirace- worker muze watch pravidelne obnovovat pres
WORKER_GMAIL_WATCH_*promenne bez dalsiho full scanu mailboxu POST /api/watch/pullcte Gmail Pub/Sub Pull subscription a vraci dekodovane notifikace vcetneack_idPOST /api/watch/notifyulozi metadata prijate Pub/Sub notifikace a vraci, zda je potreba spustit navazujici import workflowPOST /api/watch/ackpotvrdi Pub/Sub zpravy az po uspesnem backend zpracovani; pri import/sync chybach se ack neposila, aby doslo k redelivery- doporuceny provoz je zapnout watch renewal a workerovy
gmail_synchronizer, ktery spojuje watch pull i mailbox import do jedne pipeline
Pub/Sub Runtime Config
GMAIL_WATCH_TOPIC_NAMEje plne jmeno Gmail watch topicu, naprikladprojects/<project-id>/topics/gmail-watchGMAIL_WATCH_SUBSCRIPTION_NAMEje plne jmeno environment-specific Pull subscription, naprikladprojects/<project-id>/subscriptions/reply-pilot-dev-subGMAIL_PUBSUB_CREDENTIALS_FILEmuze ukazovat na service account JSON pod/app/conf/...; kdyz chybi, modul zkusi Application Default Credentials- doporuceny sifrovany source of truth pro Pub/Sub service account JSON je
secrets/<environment>/reply-pilot-gmail-pubsub.json; start/deploy workflow ho materializuje doreply-pilot-gmail/conf/reply-pilot-pubsub.json - lokalni a produkcni instance maji mit vlastni subscription; obe ale mohou cilit na stejny topic
- lokalni a produkcni instance nemaji sdilet stejnou Pull subscription, pokud maji bezet soucasne