Compare commits

..
2 Commits
Author SHA1 Message Date
Nick SzaunigandClaude Opus 5.5 866d3726d1 fix(apicore-sync): explain that HTTP 403 can mean an IP allowlist block
Docker Image bauen und veroeffentlichen / build-and-push (push) Successful in 2m46s
ApiCore API keys can now be limited to source addresses; a 403 then
usually means this server's address is not on the key's allowlist.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-01 02:42:23 +02:00
Nick SzaunigandClaude Opus 5.5 5c6d99d0a3 docs(einrichtung): ApiCore sync uses an API key, not a service account
The setup guide still listed APICORE_SYNC_EMAIL/APICORE_SYNC_PASSWORD,
which the client no longer reads since 3bc0693.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
2026-10-01 01:09:53 +02:00
2 changed files with 3 additions and 3 deletions

No files matched your search

+2 -2
View File
@@ -271,7 +271,7 @@ Alle folgenden Werte dürfen leer bleiben. Die Funktion ruht dann, der Shop läu
| **Cloudflare Turnstile** (CAPTCHA) — *dringend empfohlen* | `TURNSTILE_SECRET_KEY` (Secret), `NEXT_PUBLIC_TURNSTILE_SITE_KEY` (ConfigMap) | Keine Bot-Abwehr an Formularen | dash.cloudflare.com → Turnstile → Widget für `wabenhain.com` anlegen. Beide setzen oder beide leer. |
| **Google-Rezensionen** | `GOOGLE_PLACES_API_KEY` (Secret), `GOOGLE_PLACE_ID` (ConfigMap) | Statische Beispiel-Stimmen | Google Cloud: „Places API (New)“ aktivieren, Abrechnung an, API-Schlüssel ohne Referrer-Beschränkung |
| **DHL** (Versandmarken, Packstation, Sendungsverfolgung) | `DHL_API_KEY`, `DHL_API_SECRET`, `DHL_GKP_USERNAME`, `DHL_GKP_PASSWORD`, `DHL_ACCOUNT_NUMBER`, `DHL_TRACKING_API_KEY` (Secret), `DHL_ENVIRONMENT` (ConfigMap) | Kein Etikettendruck, keine Packstation im Checkout | developer.dhl.com, Geschäftskundenvertrag — Schritt für Schritt in `.env.example` |
| **ApiCore-Synchronisierung** | `APICORE_SYNC_EMAIL`, `APICORE_SYNC_PASSWORD` (Secret), `APICORE_API_URL` (ConfigMap) | Sync-Knopf meldet Konfigurationsfehler | Eigenes, MFA-freies Service-Konto mit nur lesenden Rechten, siehe `.env.example` |
| **ApiCore-Synchronisierung** | `APICORE_API_KEY` (Secret), `APICORE_API_URL` (ConfigMap) | Sync-Knopf meldet Konfigurationsfehler | API-Schlüssel aus ApiCore → Verwaltung → Automatisierung → API-Schlüssel, nur Berechtigung `shop-sync:read`; kein Benutzerkonto, kein Passwort |
---
@@ -301,7 +301,7 @@ cp k8s/02-secret.example.yaml k8s/02-secret.yaml
| `ENTRA_REDIRECT_URI` | ja* | `https://wabenhain.com/api/auth/entra/callback` | 3.1 |
| `TURNSTILE_SECRET_KEY` | empfohlen | Turnstile-Secret | 6 |
| `GOOGLE_PLACES_API_KEY` | nein | Google-API-Schlüssel | 6 |
| `APICORE_SYNC_EMAIL`, `APICORE_SYNC_PASSWORD` | nein | Service-Konto | 6 |
| `APICORE_API_KEY` | nein | ApiCore-API-Schlüssel (`ack_…`) | 6 |
| `DHL_*` (6 Werte) | nein | DHL-Zugangsdaten | 6 |
\* Ohne die `ENTRA_*`-Werte gibt es weder „Mit Microsoft anmelden“ **noch Mailversand** — keine Bestellbestätigungen, keine Passwort-Resets. Für den Live-Betrieb daher Pflicht.
+1 -1
View File
@@ -177,7 +177,7 @@ function httpErrorMessage(status: number): string {
return "ApiCore hat den API-Schlüssel abgelehnt (HTTP 401) — widerrufen, abgelaufen oder falsch kopiert. Bitte in ApiCore einen neuen Schlüssel anlegen.";
}
if (status === 403) {
return "Dem API-Schlüssel fehlt die Berechtigung „Shop-Daten lesen“ (HTTP 403).";
return "ApiCore verweigert den Zugriff (HTTP 403): Entweder ist dieser Server nicht in den erlaubten IP-Adressen des Schlüssels eingetragen, oder dem Schlüssel fehlt die Berechtigung „Shop-Daten lesen“. In ApiCore unter API-Schlüssel → „Adressen ändern“ prüfen.";
}
if (status === 404) {
return "ApiCore bietet die Shop-Schnittstelle nicht an (HTTP 404) — bitte ApiCore aktualisieren oder APICORE_API_URL prüfen.";