refactor(apicore-sync): API key and shop feed only, no password login

The sync now talks to ApiCore exclusively through the secured shop
interface: GET /shop-sync with an API key as bearer token. Removed:

- the email/password service-account login (and its MFA handling),
- the fallback to ApiCore's general read endpoints (/harvests,
  /products, /extractions, /bottling-batches, /apiaries).

A missing interface (404) or a rejected key (401/403) now stops the run
with a specific message instead of falling back. APICORE_SYNC_EMAIL and
APICORE_SYNC_PASSWORD are gone from .env.example, README and the k8s
secret template; the system status needs APICORE_API_KEY.

Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
Nick SzaunigandClaude Opus 5.5 committed 2026-09-28 06:05:11 +02:00
1 parent 55be1fe881
commit 3bc0693e4d
10 files changed
+248 -548

No files matched your search

+5 -12
View File
@@ -102,19 +102,12 @@ stringData:
# ist dagegen oeffentlich und steht dort.
GOOGLE_PLACES_API_KEY: ""
# Zugangsdaten des ApiCore-Sync-Kontos (Admin -> Ernten bzw. Produkte ->
# "ApiCore-Synchronisierung"). Leer = der Sync-Knopf meldet einen
# Konfigurationsfehler, statt still nichts zu tun.
#
# Empfohlen: API-Schluessel aus ApiCore (Verwaltung -> Automatisierung ->
# API-Schluessel, Berechtigung "Shop-Daten lesen"). Kein Passwort, keine
# MFA, jederzeit widerrufbar. Die Adresse APICORE_API_URL ist nicht geheim
# und steht in 01-configmap.yaml.
# API-Schluessel fuer den ApiCore-Sync (Admin-Dashboard -> "Alles
# synchronisieren"). In ApiCore unter Verwaltung -> Automatisierung ->
# API-Schluessel anlegen (Berechtigung "Shop-Daten lesen"); kein Passwort,
# jederzeit widerrufbar. Leer = der Sync-Knopf meldet einen
# Konfigurationsfehler. APICORE_API_URL steht in 01-configmap.yaml.
APICORE_API_KEY: ""
# Nur fuer aeltere ApiCore-Staende ohne API-Schluessel: eigenes,
# MFA-freies Service-Konto mit Leserechten statt eines Admin-Zugangs.
APICORE_SYNC_EMAIL: ""
APICORE_SYNC_PASSWORD: ""
# DHL-Versandmarken (Admin -> Bestellung -> "DHL-Versandmarke"), siehe
# .env.example fuer die vollstaendige Einrichtung. Leer = der Knopf meldet