TP30 — Credentials #20
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Steuerungs-SSoT: Index/Status hier in Gitea; Prosa/Detail im Repo unter
docs/teilprojekte.md(AbschnittTP30).Merkposten aus TP35-Abschluss (2026-09-12): authentifizierten mikromcp-Read on-network einmal verifizieren. Der Credential-Flip auf
{env:}ist angewandt und die MCP-Server laden sauber; ausständig ist nur der On-Network-Smoketest (off-site:10.40.99.1:80connect-timeout, kein Auth-Fehler). Beim nächsten Standort-Besuch:check_router_health/Read gegencrs326-core— grün = Schicht-2-Restcheck erledigt.Ergänzung: durch Secret-Leak verbrannte Keys (2026-09-14)
docs/portainer-upgrade-20260828/preupgrade-state.jsonwar ein committeter Volldump desPortainer-State inkl. aller Container-Env-Secrets. Damit sind folgende Keys in der Git-Historie
(+ Gitea-Remote, teils Sitzungstranskript) verbrannt und müssen rotiert werden:
API-Provider
ANTHROPIC_API_KEY— Stacks openclaw, oc20260307, oc-johnny2, oc-charlieOPENAI_API_KEY— dieselben StacksOPENROUTER_API_KEY— openclawGEMINI_API_KEY/GOOGLE_API_KEY— mehrere StacksLITELLM_MASTER_KEY— litellmBots / Gateway
TELEGRAM_BOT_TOKEN— mehrere StacksOPENCLAW_GATEWAY_TOKEN— openclaw, openclaw2, oc20260307Tunnel
CLOUDFLARE_TUNNEL_TOKEN— pve-cloudflared, ds923-cloudflared, ds415-cloudflared, cloudflaredSonstige
private_-Token —adguard/AdGuardHome.yaml+agh-bf1-AdGuardHome.snapshot.yamlN8N_MCP_BEARER—docs/handoff-20260828-mcp-cleanup-und-shelly-tote.mdQuelle entfernt/redaktiert in Commit
3eb03ae. Die Keys sind trotz Löschung in der Historie → Rotation nötig.Neuer Posten #9 vorgemerkt (2026-09-14):
GITEA_ACCESS_TOKENrotieren.Ins Transkript geraten am 2026-09-14 (TP25-In-situ-Session) — kein Maskierungsmuster diesmal, sondern ein Fehlerpfad: Env-Parse-Fehler schob den Token in eine URL,
urllibwarfValueError: unknown url typeund druckte ihn im Traceback. Sechster Vorfall der Leak-Familie (#1/#5/#6/#7/#8), neue Unterklasse „Fehlerausgabe statt Maskierung".Rotation: neu anlegen (Gitea → Settings → Applications),
~/.hermes/.envnachziehen, altes widerrufen. Konsumenten:bin/gitea-tp-sync.py+ Session-Ad-hoc-API-Calls. Details + Merkregel indocs/teilprojekte.md→ TP30, Tabelle Posten #9.⚠️ Bleibt beim gebündelten Termin laut Auslösekriterium — es sei denn, das harte Ausnahme-Kriterium (fremdzugängliches Gerät o.ä.) greift; das Transkript liegt lokal auf Christophs Mac.
Posten #12 ergänzt (2026-09-23, Claude-Desktop/OpenRouter-Session).
sk-or-v1-cb6…258).sedankerte auf den geratenen NamenapiKey, der echte Schlüssel heißtinferenceGatewayApiKey⇒ kein Match. Gleiche Familie wie #5/#10/#11, neue Unterklasse: JSON statt Env — das geteilte Snippet (([A-Z0-9_]*(…|KEY|…))=[^[:space:]]*) ist aufKEY=VALUE-Zeilen gebaut und kann"key": "…"nicht treffen.docs/teilprojekte.md(TP30): für JSON einen JSON-bewussten Masker benutzen; Schlüsselnamen erst auflisten, dann maskieren.~/.claude-code-router/config.sqlite→Providers[].api_key(+ CCR-Neustart) und 3P-Confige1219ea4→inferenceGatewayApiKey. 3P ist alles-oder-nichts: fehlt der Key, hat die App gar keine Modelle./api/v1/key) — verbrannt, aber Rotation bleibt gebündelt (kein Vorziehen, TP30-Regel).head -c 400aufbin/ccr-claude-code-api-key-claude-codegab den CCR-Profil-Token aus (local-only127.0.0.1, geringe Reichweite).Posten #12 — Nachtrag 2026-09-24: Konsumenten-Inventur korrigiert (live geprüft)
Die frühere Aussage „danach zwei Konsumenten:
config.sqlite+ 3P-Config (inferenceGatewayApiKey)" ist so nicht mehr richtig:8f69f2f1-…(„Claude Code Router",_meta.appliedIdseit 2026-09-24) trägt nur den CCR-Gateway-Token (len 50,x-api-key), nicht den OpenRouter-Key. Gegen CCR getestet: HTTP 200 — die App authentifiziert sich damit.~/.claude-code-router/config.sqlite(Providers[0].api_key, live von CCR benutzt) und in der nur gespeicherten, nicht angewandten Confige1219ea4-…(len 73, shaf23aaebdaa4c).Rotation also: neuen Key in
config.sqlite→Providers[0].api_keyschreiben, CCR-App neu starten (CCR liest seine Config nur beim Start —PUT /manager/configist gesperrt),e1219ea4löschen/ersetzen.8f69f2f1bleibt unangetastet.Nebenfund: CCR regeneriert die 3P-Config
8f69f2f1bei jedem App-Start (Modell-Liste, Hex-Aliase,appliedId) — Handedits dort sind flüchtig, die SSoT istconfig.sqlite.