Secret-Inventar (Stand 2026-05-17)

Spalten:

  • Name — Identifier wie er im Quell-System heißt
  • Quelle — wo das Secret aktuell liegt
  • Zweck — wofür
  • Konsumenten — was zieht den Secret
  • Soll-Tier — was Best Practice wäre (0 = Workload-Identity, 1 = AWS SM, 1.5 = AWS SM + 1P-Pointer, 2 = 1P only)
  • Action — was zu tun ist

AWS Secrets Manager — av-production / eu-central-1

NameZweckKonsumentenSoll-TierAction
cloudflare/api-tokenCF API Token (Account:Tunnel:Edit + Zone:DNS:Edit für agenticventures.de)Alle Tunnel-Setup-Skripte, lokal + CDK1.51P-Pointer fehlt — anlegen
mcp-vf-hosted/cloudflared-tokenCF Tunnel Connector Token mcp-vf-hostedFargate-Sidecar1✓ stays
mcp-vf-hosted/upstream-tokensVF Papierkram + TicketPAY + M365 Tokens (JSON)Fargate-Container mcp-vf-hosted1✓ stays — Source of Truth, lokale Duplikate konsolidieren
mcp-whatsapp-hosted/cloudflared-tokenCF Tunnel Token mcp-whatsappFargate-Sidecar1✓ stays
mcp-whatsapp-hosted/whatsapp-configMeta WhatsApp API: PHONE_NUMBER_ID, BUSINESS_ACCOUNT_ID, ACCESS_TOKEN, WEBHOOK_VERIFY_TOKENFargate-Container1✓ stays
mcp-calcom-hosted/calcom-configCal.com API v2 Key + phone-derived-email domainFargate-Container1✓ stays
mcp-calcom-hosted/cloudflared-tokenCF Tunnel Token mcp-calcomFargate-Sidecar1✓ stays
open-webui-vf/webui-secret-keyWEBUI_SECRET_KEY für Session/JWTFargate Open-WebUI1✓ stays
open-webui-vf/cloudflared-tokenCF Tunnel Token Open-WebUI VFFargate-Sidecar1✓ stays
open-webui-vf/mongo-credentialsMongo root creds für Open-WebUI VFFargate-Container1✓ stays
open-webui-vf/db-credentialsRDS Postgres creds (CDK-generated)Fargate-Container1✓ stays — auto-rotated by CDK
open-webui-vf/litellm-master-keyShared key zw. Open-WebUI und LiteLLM-Sidecarbeide Container1✓ stays
open-webui-vf/groq-api-keyGroq API Key für LiteLLMLiteLLM-Container1✓ stays
open-webui-vf/tavily-api-keyTavily Web-Search Key für Open-WebUIOpen-WebUI-Container1✓ stays
presenton-vf/configPresenton Auth + LiteLLM Key (Pexels Key pending)Fargate-Container1✓ stays — Pexels-Key noch ergänzen
presenton-vf/cloudflared-tokenCF Tunnel Token PresentonFargate-Sidecar1✓ stays
inference-service-prod/api-keyBearer-API-Key Icking-Inference (JSON: api_key_v1, api_key_v2)a-icking Clients1.51P-Pointer für Recovery anlegen
inference-service-prod/cloudflared-tunnel-tokenCF Tunnel Token IckingFargate-Sidecar1✓ stays
inference-service-prod/db-passwordRDS Master-Password IckingFargate-Container1✓ stays — auto-rotate via Lambda erwägen
stirling-pdf-vf/cloudflared-tokenCF Tunnel Token Stirling (legacy)unused — neuer Stack cert-basiert1Cleanup: prüfen ob unused → löschen
agent-platform/telegram-bot-tokenTelegram BotFather Token für Marvin-PushesLambda agents-platform1✓ stays
agent-platform/gmail-oauth-refreshOAuth Refresh Tokens (hello@ + privat@)Lambda agents-platform1✓ stays — kritisches Recovery-Asset, 1P-Pointer anlegen
agent-platform/github-patFine-Grained PAT mit repo-Scope für Vault-Stub-CommitsLambda agents-platform1.5✓ stays — ROT: dieser Token vs. der in claude.json sind möglicherweise dupliziert! Bei Rotation einen Single-Use entscheiden
receptionist-brain/cf-access-mcpCF Access Service Token für receptionist-brain LambdaLambda1✓ stays — Rotation due 2027-05-15 vermerkt im Description
tmp/owui-admin-keyunklar, keine DescriptionunklarCleanup: prüfen + ggf. löschen

AWS SM Cost: ~25 Secrets × 10/Monat.

1Password — Vault Personal

IDTitleTypeZweckKonsumentenSoll-Tier
fkm22mrp2ztnbctpekc3ajpg4aAPI-ZugangsdatenAPI_CREDENTIALHetzner Cloud API Token (HCLOUD_TOKEN)hetzner-MCP via op run --2 ✓ — bleibt 1P (lokal-only)
pu5tfghpcg26g6nxou6mozlnxmAPI-ZugangsdatenAPI_CREDENTIALunbekannt — Marvin prüfen welcher Tokenunbekannttbd
twsc5ddjhsei44du67cvbgl4xq1Password-Konto (Marvin)LOGINMasterMensch2 ✓
mhegtrcfr6pb7ajz4r4t6bawlqMarvin KühlmannIDENTITYpersönliche DatenMensch2 ✓
ubougcjqv5...Replicate API Token (mcp-replicate-hosted)API_CREDENTIALReplicate-Token vf-hosted fuer Fargate-Container, Spending-Cap $100/Momcp-replicate-hosted via AWS SM mcp-replicate-hosted/upstream-tokens1.5 ✓ — neu 2026-05-19, Recovery-Pointer im Notes-Feld

Scalekit-Update (2026-05-19): kein Admin-API-Key noetig — Scalekit hat einen offiziellen MCP-Server der OAuth-basiert laeuft (analog cloudflare-MCP-Pattern). Resource-Creation fuer hosted MCPs geht jetzt via Tool-Call statt Dashboard-Klick. Kein eigenes 1P-Item noetig ausser ggf. ein Pointer-Notes-Item fuer Recovery (Master-Login ist twsc5ddjhsei44du67cvbgl4xq, Scalekit-Account-Wiederherstellung ueber Email-Reset).

Auffällig: Vault enthält nur 4 Items. Erwartet wären deutlich mehr (Google-Account, AWS-Root, Domain-Registrar, Stripe, Banken). Entweder andere Vaults existieren (Family/Shared) oder es liegt vieles außerhalb 1P.

Phase 1 Action: Marvin prüft welche weiteren Vaults existieren (op vault list) und welche Items in pu5tfghpcg26g6nxou6mozlnxm sind.

.env.local und .env Files

DateiVariablenZweckKonsumentenSoll-TierAction
~/source/agentic-ventures/.env.localELEVENLABS_API_KEYElevenLabs Voice APIelevenlabs MCP (stdio)2Nach 1P verschieben + op run Wrapper bauen
~/source/mcps/mcp-vf-hosted/.envPAPIERKRAM_TOKEN, M365_CLIENT_*, TICKETPAY_API_KEY, SCALEKIT_*Lokale Sub-MCP-Configs für vf-hosted local-devmcp-vf-hosted local-dev1 → 2 hybridWerte sind dupliziert mit AWS SM mcp-vf-hosted/upstream-tokens. Lokal-Dev kann via aws secretsmanager get-secret-value lesen statt File
~/source/mcps/mcp-replicate/.env.localREPLICATE_API_TOKENReplicate APIreplicate MCP2Nach 1P + op run
~/source/mcps/mcp-runway/.env.localRUNWAYML_API_SECRETRunway APIrunway MCP2Nach 1P + op run
~/source/mcps/mcp-papierkram/.env.localPAPIERKRAM_TOKENPapierkram APIpapierkram MCP lokal1 → 2 hybridKonsolidieren mit AWS SM mcp-vf-hosted/upstream-tokens
~/source/mcps/mcp-lexware-office/.env.localLEXWARE_OFFICE_API_KEYLexware Office APIlexware MCP (configured, nicht aktiv)2Nach 1P
~/source/mcps/mcp-m365/.env.localM365_CLIENT_ID, M365_CLIENT_SECRET, M365_TENANT_IDM365 Service-Principalm365 MCP lokal1 → 2 hybridKonsolidieren mit AWS SM
~/source/mcps/mcp-sevdesk/.env.localSEVDESK_API_TOKENSevDesk (configured)sevdesk MCP2Nach 1P
~/source/mcps/mcp-ticketpay/.env.localTICKETPAY_API_KEYTicketPAY Export APIticketpay MCP lokal1 → 2 hybridKonsolidieren mit AWS SM
~/source/mcps/mcp-calcom/.env.localCALCOM_API_KEYCal.com APIcalcom MCP2Nach 1P + op run. Hosted-Variante hat AWS SM Secret
~/source/agentic-ventures/intern/projekte/telefon-assistent-aws/livekit-agent/.env.localLIVEKIT_*, TELNYX_*, OPENAI_API_KEY, CARTESIA_API_KEY, DEEPGRAM_API_KEYLiveKit + Telnyx + STT/TTS für Telefon-POCLiveKit-Agent lokal1Wenn Telefon-Stack productionized: AWS SM. Solange POC: belassen aber 1P-Pointer für Recovery

claude.json — ~/.claude.json

Pro MCP-Server-Eintrag in mcpServers.*.env:

MCPEnv-VarsAktuellSollAction
githubGITHUB_PERSONAL_ACCESS_TOKENPLAINTEXT (gho_…)op run -- WrapperROT — sofort rotieren + migrieren
banksapi— (kein Env in claude.json sichtbar)
gsuiteOAuth-Refresh in start.sh — prüfen ob File-basiert OK ist
aws-api, aws-docs, aws-iac, aws-pricingAWS_PROFILE, AWS_REGIONKlartext-Profile-Namen (keine Secrets)✓ ok
elevenlabsELEVENLABS_API_KEYaus .env.local (vermutlich dotenvx oder ähnlich)op run --Konsolidieren mit .env.local-Migration
hetznerHCLOUD_TOKENop://idfj3ggccgqdd27ghe2v2ibeau/fkm22mrp.../credential✓ ok — Referenz-Pattern für andere
cloudflareOAuth-Flow bei Connect✓ ok — kein Token in Config

Außerhalb dieses Inventars (noch zu prüfen)

Folgende Secret-Kategorien existieren mit hoher Wahrscheinlichkeit, sind aber nicht im Scan aufgetaucht. Phase-1-Audit klärt:

  • AWS Sub-Account Root-User-Credentials (av-production, av-shared, av-icking, av-becker, …) — vermutlich in 1P oder bei Marvin im Kopf. Sollten in 1P liegen mit MFA-Backup-Codes.
  • AWS SSO / IAM-Identity-Center Admin-Recovery-Codes — vermutlich Mailbox/1P
  • GitHub Org Owner Backup-Codes (2FA)
  • Anthropic Console API Keys (für Claude-API direkt)
  • Domain-Registrar Login (für agenticventures.de — vermutlich Cloudflare Registrar nach Migration?)
  • Stripe / Steuerberater / Banken — Geschäftskonto-Logins
  • NDA-relevante Customer-Secrets (Becker, BSS, VF-Tokens für direkten Customer-Account-Zugriff) — falls vorhanden, sehr sensibel
  • Cloudflare-Account-Master-Login (vs. API-Token)
  • Hetzner-Account-Master-Login
  • Apple-ID, iCloud, Notion, Linear, falls genutzt
  • SSH-Keys~/.ssh/* und ihre Passphrases (falls gesetzt). Hetzner-Key hetzner_av_tools, Vibe-Factory id_ed25519_vibe_factory, GitHub-Key (Default), Mac → Server-Keys

Beobachtungen

  1. Hosted-MCPs sind disziplinierter inventarisiert als lokale. Jede Fargate-Task hat ihr Secret in AWS SM mit Description. Die .env.local-Welt ist undokumentiert.
  2. Pattern „MCP-Tokens lokal + Cloud parallel” ist ein Konsolidierungs-Kandidat. Wenn Papierkram-Token rotiert, müssen 3 Stellen aktualisiert werden.
  3. Keine Rotation-Disziplin sichtbar. Außer receptionist-brain/cf-access-mcp (“Rotation due 2027-05-15”) und inference-service-prod/api-key (Two-Key-Rotation-fähig via JSON) gibt es keinen Hinweis auf nächste Rotation.
  4. 1Password wirkt unter-genutzt. 4 Items in der Personal-Vault ist auffällig wenig für jemanden mit 25+ externen API-Verbindungen.
  5. Claude Code Memory wird in Rule 18 (CLAUDE.md) vor Secret-Speicherung geschützt. Memory-Lokation ist ~/.claude/projects/.../memory/ — gehört nicht ins Inventar (transient).