|
@@ -0,0 +1,84 @@
|
|
|
|
|
+# EKSRelay — TODO / known follow-ups
|
|
|
|
|
+
|
|
|
|
|
+## 1. Produkcyjna skrzynka e-mail w Chatwoot: uniknąć importu całej historii
|
|
|
|
|
+
|
|
|
|
|
+**Status:** do rozpoznania przed podpięciem `info@easyklima.com` jako produkcyjnej skrzynki w Chatwoot.
|
|
|
|
|
+
|
|
|
|
|
+### Problem
|
|
|
|
|
+
|
|
|
|
|
+Jeśli do Chatwoot zostanie podpięta obecna produkcyjna skrzynka z dużą historią maili, Chatwoot może zacząć pobierać i tworzyć konwersacje dla tysięcy starych wiadomości. To grozi:
|
|
|
|
|
+
|
|
|
|
|
+- zaśmieceniem Chatwoot historycznymi konwersacjami,
|
|
|
|
|
+- uruchomieniem webhooków/bota dla starych maili,
|
|
|
|
|
+- kosztami Flowise/OpenAI,
|
|
|
|
|
+- błędnym odpowiadaniem na dawne wiadomości,
|
|
|
|
|
+- trudnym do odwrócenia bałaganem operacyjnym.
|
|
|
|
|
+
|
|
|
|
|
+### Cel
|
|
|
|
|
+
|
|
|
|
|
+Do Chatwoot mają trafić tylko wiadomości przychodzące **od momentu wdrożenia / cutover**, a nie cała historia skrzynki.
|
|
|
|
|
+
|
|
|
|
|
+### Hipotezy i opcje do sprawdzenia
|
|
|
|
|
+
|
|
|
|
|
+1. **Nowa pusta skrzynka produkcyjna + forwarding od daty wdrożenia**
|
|
|
|
|
+ - Utworzyć nowy mailbox/alias docelowy dla Chatwoot.
|
|
|
|
|
+ - Od momentu cutover przekierować nowe wiadomości z `info@easyklima.com` do tej skrzynki.
|
|
|
|
|
+ - Najbezpieczniejsza opcja, bo Chatwoot widzi pustą historię.
|
|
|
|
|
+
|
|
|
|
|
+2. **Reguła po stronie Amazon WorkMail / mail gateway**
|
|
|
|
|
+ - Sprawdzić, czy da się ustawić regułę forwardowania/kopii tylko dla nowych maili.
|
|
|
|
|
+ - Nie importować istniejących wiadomości przez IMAP.
|
|
|
|
|
+
|
|
|
|
|
+3. **IMAP folder cutover**
|
|
|
|
|
+ - Stworzyć nowy pusty folder, np. `Chatwoot-Inbox`.
|
|
|
|
|
+ - Od momentu wdrożenia reguła przenosi/kopiuje nowe maile do tego folderu.
|
|
|
|
|
+ - Chatwoot podpina się tylko do tego folderu, jeśli jego integracja IMAP pozwala wskazać folder.
|
|
|
|
|
+
|
|
|
|
|
+4. **Archiwizacja/przeniesienie historii przed podpięciem**
|
|
|
|
|
+ - Przenieść stare wiadomości poza folder `Inbox` przed uruchomieniem synchronizacji Chatwoot.
|
|
|
|
|
+ - Ryzykowne operacyjnie, wymaga backupu i ostrożności.
|
|
|
|
|
+
|
|
|
|
|
+5. **Sprawdzenie mechanizmu Chatwoot IMAP**
|
|
|
|
|
+ - Ustalić, czy Chatwoot ma ustawienie typu `since`, UID start, import only new, albo ograniczenie zakresu synchronizacji.
|
|
|
|
|
+ - Jeśli nie ma — nie polegać na samym Chatwoot jako zabezpieczeniu.
|
|
|
|
|
+
|
|
|
|
|
+### Wymagana decyzja przed produkcją
|
|
|
|
|
+
|
|
|
|
|
+Nie podpinać produkcyjnego `info@easyklima.com` bez wcześniejszego testu na kopii/nowej skrzynce i jednoznacznego potwierdzenia, że stare wiadomości nie zostaną zaimportowane.
|
|
|
|
|
+
|
|
|
|
|
+### Minimalny plan bezpiecznego cutover
|
|
|
|
|
+
|
|
|
|
|
+1. Zrobić backup/eksport listy obecnych folderów i liczników wiadomości na skrzynce.
|
|
|
|
|
+2. Przetestować zachowanie Chatwoot na testowej skrzynce z kontrolowaną historią.
|
|
|
|
|
+3. Wybrać jeden wariant: preferowany **nowy pusty mailbox/alias + forwarding od cutover**.
|
|
|
|
|
+4. Na czas pierwszego testu produkcyjnego ustawić w EKSRelay dodatkowy bezpiecznik:
|
|
|
|
|
+ - `WORKER_ENABLED=false` albo
|
|
|
|
|
+ - tymczasowo ograniczyć przetwarzanie tylko do testowego inbox/conversation,
|
|
|
|
|
+ żeby ewentualny import historii nie odpalił masowo Flowise.
|
|
|
|
|
+5. Po potwierdzeniu, że Chatwoot widzi tylko nowe wiadomości, włączyć worker i wykonać smoke test.
|
|
|
|
|
+
|
|
|
|
|
+## 2. WordPress Store API auth
|
|
|
|
|
+
|
|
|
|
|
+Stary plugin `wp-plugins/eksrelay_api.php` nadal ma otwarte `permission_callback => __return_true`.
|
|
|
|
|
+
|
|
|
|
|
+EKSRelay potrafi już wysyłać `Authorization: Bearer <WP_STORE_API_SECRET>`, ale WordPress musi zacząć ten sekret wymuszać po stronie endpointów.
|
|
|
|
|
+
|
|
|
|
|
+## 3. Rotacja sekretów po wdrożeniu
|
|
|
|
|
+
|
|
|
|
|
+Po sesji wdrożeniowej zrotować:
|
|
|
|
|
+
|
|
|
|
|
+- token Cloudflare użyty do konfiguracji DNS/WAF,
|
|
|
|
|
+- `relay_shared_secret` w Flowise i EKSRelay,
|
|
|
|
|
+- ewentualnie odpowiadający sekret w fallbackowym PHP relayu, jeśli ma zostać aktywny jako rollback.
|
|
|
|
|
+
|
|
|
|
|
+## 4. Podgląd bramki / operacje
|
|
|
|
|
+
|
|
|
|
|
+Aktualnie dostępne:
|
|
|
|
|
+
|
|
|
|
|
+- `/admin/events` — audyt decyzji bramki,
|
|
|
|
|
+- `/admin/jobs` — kolejka i dead jobs,
|
|
|
|
|
+- `/admin/messages` — przetworzone wiadomości/idempotencja,
|
|
|
|
|
+- `npm run events` — CLI podglądu audytu,
|
|
|
|
|
+- Prisma Studio — tylko przez SSH tunnel, nie przez publiczny Traefik.
|
|
|
|
|
+
|
|
|
|
|
+Do rozważenia później: mały read-only panel operacyjny nad `/admin/*`, bez pełnego dostępu zapisu do bazy jak Prisma Studio.
|