wiki/d-guides/google-registration-checklist.md
2026-06-02 09:42:12 +02:00

5.2 KiB

Checkliste: Google Cloud — PORTA (OAuth + Speech)

Operative Liste: was im Google Cloud Projekt (z. B. Organisation poweron-center-ai-org, Projekt PowerOn Porta) eingerichtet werden muss und welche Gateway-Variablen/Code-Stellen dazu passen.

Detaillierte OAuth-Schritte und Troubleshooting: google-oauth-setup.md.


1) Google Cloud Console — APIs aktivieren

Projekt auswählen → APIs & ServicesLibrary.

API Wofür im Gateway
Gmail API Mail-Connector (readonly-Scope)
Google Drive API Drive-Connector (readonly)
Google Calendar API Kalender-Connector (readonly)
People API Kontakte (readonly)
Cloud Speech-to-Text API STT (/voice-google/stt/*)
Cloud Text-to-Speech API TTS über ConnectorGoogleSpeech

2) OAuth-Zustimmungsbildschirm

APIs & ServicesOAuth consent screen.

  • App-Name, Support-Mail, Developer Contact wie von Google gefordert.
  • Scopes müssen zur Code-Basis passen (Single Source of Truth):

platform-core/modules/auth/oauthProviderConfig.pygoogleAuthScopes, googleDataScopes

Kurzreferenz:

Zweck Scopes
Nur Login (Auth-App) openid, userinfo.email, userinfo.profile
Datenverbindung (Data-App) wie Auth plus gmail.readonly, drive.readonly, calendar.readonly, contacts.readonly

Hinweis: Nach Scope-Erweiterung müssen Nutzer Google-Verbindungen in der UI Reconnect auslösen (siehe google-oauth-setup.md).


3) OAuth 2.0 Client(s) — „Web application“

APIs & ServicesCredentialsCreate credentialsOAuth client ID.

Das Gateway unterstützt getrennte Auth- und Data-Clients (unterschiedliche Client-IDs) oder einen gemeinsamen Client (in den Envs sind ID/Secret für Auth und Data oft identisch).

Authorized redirect URIs — pro öffentlich erreichbare Gateway-Basis-URL zwei Einträge (Pfad exakt, inkl. http/https):

Pfad Verwendung
{origin}/api/google/auth/login/callback Login-Flow (Service_GOOGLE_AUTH_REDIRECT_URI)
{origin}/api/google/auth/connect/callback Connect/Reconnect (Service_GOOGLE_DATA_REDIRECT_URI)

In diesem Repo typische Origins (jeweils beide Callbacks eintragen):

  • Lokal: http://localhost:8000
  • INT: https://gateway-int.poweron.swiss
  • PROD: https://gateway-prod.poweron.swiss
  • Forgejo/ALT-Prod (falls genutzt): https://api.poweron.swiss — in env-gateway-prod-forgejo.env Google *_REDIRECT_URI ggf. noch setzen.

Backend-Routing: platform-core/modules/routes/routeSecurityGoogle.py.


4) Speech / Voice (ohne User-OAuth)

CredentialsAPI key (empfohlen:auf Speech + TTS beschränken) oder Service-Account nach Vorgabe des Connector (siehe platform-core/modules/connectors/connectorVoiceGoogle.py: Connector_GoogleSpeech_API_KEY_SECRET kann API-Key oder SA-JSON sein).

Doku STT/TTS: b-reference/platform-core/voice-google.md.


5) Gateway — Env-Dateien anpassen

Alle Werte ohne echte Secrets im Wiki; in den Deploy-Envs mit eurem Verschlüsselungsworkflow pflegen (encrypt-env-secrets.md).

Variable Bedeutung
Service_GOOGLE_AUTH_CLIENT_ID OAuth Client (Login)
Service_GOOGLE_AUTH_CLIENT_SECRET Geheimnis (verschlüsselt)
Service_GOOGLE_AUTH_REDIRECT_URI Muss 1:1 mit Google Console Login-Callback übereinstimmen
Service_GOOGLE_DATA_CLIENT_ID OAuth Client (Connector); darf = Auth sein
Service_GOOGLE_DATA_CLIENT_SECRET Geheimnis (verschlüsselt)
Service_GOOGLE_DATA_REDIRECT_URI Muss 1:1 mit Google Console Connect-Callback übereinstimmen
Connector_GoogleSpeech_API_KEY_SECRET Speech/TTS API-Key oder SA-JSON (verschlüsselt)

Dateien (Stand Repo): platform-core/env-gateway-dev.env, env-gateway-int.env, env-gateway-prod.env, env-gateway-prod-forgejo.env, ggf. platform-core/.env.

Zusätzlich — wenn neues Frontend oder neuer API-Host:

  • APP_API_URL muss die Basis sein, unter der /api/google/... erreichbar ist (Cookie/SameSite-Kontext).
  • APP_ALLOWED_ORIGINS — CORS für das UI, falls neue Origins dazukommen.

6) Gateway — Python (nur bei Scope-/API-Änderungen)

Datei Wann anfassen
platform-core/modules/auth/oauthProviderConfig.py Neue/entfernte Google-Scopes für Login oder Datenverbindung
platform-core/modules/routes/routeSecurityGoogle.py Nur bei Flow-/Route-Änderungen (unüblich)
platform-core/modules/auth/tokenManager.py Nutzt Service_GOOGLE_DATA_* für Refresh — keine manuelle Anpassung bei reiner Registrierung

Token-Refresh und Microsoft/Google Data: platform-core/modules/auth/tokenManager.py.


7) Smoke-Tests

  • Login mit Google: redirected zu Google, Rückkehr ohne redirect_uri_mismatch
  • Verbindungen → Google connect/reconnect
  • Drive/Mail/Kalender/Kontakte je nach Feature smoke-testen
  • STT/TTS: kurzer Aufruf über Voice-Route (siehe voice-google.md)