diff --git a/connector-superoffice/README.md b/connector-superoffice/README.md index ae744d22..24d583c4 100644 --- a/connector-superoffice/README.md +++ b/connector-superoffice/README.md @@ -212,6 +212,21 @@ Nach erfolgreicher Zertifizierung durch SuperOffice wurde der Connector auf die **Wichtig:** SuperOffice nutzt Load-Balancing. Die Subdomain (`online3`) kann sich theoretisch ändern. Die Anwendung prüft dies dynamisch, aber die Basis-Konfiguration sollte den aktuellen Tenant-Status widerspiegeln. +### 12. Lessons Learned: Production Migration (Feb 26, 2026) + +Der Wechsel von der Staging-Umgebung (`sod`) zur Produktion (`onlineX`) brachte spezifische technische Hürden mit sich: + +1. **Globaler Token-Endpunkt:** + * **Problem:** Mandantenspezifische Subdomains (wie `online3.superoffice.com`) akzeptieren oft keine OAuth-Anfragen oder liefern leere Antworten. + * **Lösung:** Für den Token-Refresh muss zwingend der globale Endpunkt **`https://online.superoffice.com/login/common/oauth/tokens`** verwendet werden, unabhängig davon, auf welchem Cluster der Mandant liegt. + +2. **DNS-Präfixe (app- vs. direkt):** + * **Problem:** In der Staging-Umgebung lautet der API-Host meist `app-sod.superoffice.com`. In der Produktion wird das `app-` Präfix oft nicht verwendet oder führt zu Zertifikatsfehlern. + * **Lösung:** Der `SuperOfficeClient` wurde so flexibilisiert, dass er in der Produktion direkt auf `{env}.superoffice.com` zugreift. + +3. **Refresh Token Lebenszyklus:** + * Ein Refresh Token ist an die **Client ID** gebunden. Beim Wechsel der App-Umgebung (Staging -> Produktion) muss zwingend ein neuer Refresh Token über den Auth-Flow generiert werden. + ## Appendix: The "First Sentence" Prompt This is the core logic used to generate the company-specific opener.