Live geprueft: interner Wildcard ist durch TP41 sauber (Groups statt login_method). Offen ist genau ein Eintrag — login_method:github in Policy 'christoph' auf 420.teilzeitladen.xyz (oeffentlich, Projekt blaueblueten). Enthaelt konkrete IDs, die vier bekannten Gotchas (32-Hex-App-IDs, Schreib-Token, Reusable-Policy-Detach, Projektgrenze) und den Ablauf inkl. Ruecksprache-Pflicht. Co-Authored-By: Claude Code <noreply@anthropic.com>
3.3 KiB
Startauftrag — TP49: CF-Access login_method-Include entfernen
Für eine frische Session. Gitea #76, Prosa in
docs/teilprojekte.md→### TP49. Angelegt 2026-10-06 auf Christoph-Direktive („absolute prio").
Der Auftrag in einem Satz
Entferne login_method:github aus der Policy christoph der CF-Access-App
420.teilzeitladen.xyz — nach Rücksprache mit Christoph, wen der Zugang treffen soll.
Lage (live geprüft 2026-10-06, nicht geraten)
Der Ursprungsfund von 2026-07-10 war größer beschrieben als er ist. Nachprüfung:
| App | Status |
|---|---|
*.emsenhuber.net (intern: hass/grafana/portainer/pve) |
✅ sauber — TP41 hat auf Groups umgestellt (E-Mail/IP/service_token) |
420.teilzeitladen.xyz (öffentlich) |
🔴 offen — login_method:github in Policy christoph |
onetimepin ist kein Problem — das ist der E-Mail-Einmalcode an die eingetragene Adresse.
Scharf ist ausschließlich github.
Konkrete Daten
Account-ID : siehe mcp/cloudflare/.env (CF_ACCOUNT_ID)
Token : CF_API_TOKEN (aktiv, lesen+schreiben, verifiziert 2026-10-06)
App : 420.teilzeitladen.xyz → volle ID per GET .../access/apps holen
Policy : "christoph"
Entfernen : include {"login_method":{"id":"72c1291b-a38d-4bc7-af97-5dee04a4f84a"}} (type=github)
Behalten : include {"login_method":{"id":"9024c7a6-2d1f-4432-9f48-51593acd1361"}} (type=onetimepin)
🔴 Gotchas — sonst läuft die Session in bekannte Fallen
- App-IDs sind 32 Hex. Die Kurzform
16aaec78liefert12045 invalid_application_id. Volle ID zuerst perGET /accounts/{id}/access/appsholen. - Writes nur via
CF_API_TOKEN/curl. Dercloudflare-MCP (OAuth) ist read-only. Muster:cd mcp/cloudflare && set -a; . ./.env; set +a→ danncurl -H "Authorization: Bearer $CF_API_TOKEN". 🔴 Token nie ausgeben; im Output maskieren. - Reusable Policy nur per App-PUT detachbar (
policies:[{id,precedence}]), nicht via/policies-DELETE („can not delete reusable policies"). Policy-precedencemuss eindeutig sein. - Projektgrenze:
420.teilzeitladen.xyzgehört zu blaueblüten. Änderung nur nach ausdrücklicher Freigabe — nicht „mal eben" mitnehmen.
Ablauf
- Bestandsaufnahme (read-only): Policies der App lesen, Ist-Zustand protokollieren.
- Rücksprache: Wen soll der Zugang treffen? Ohne diese Antwort nicht ändern — eine Aussperrung wäre der teurere Fehler (Christoph-Entscheid 2026-07-10, „user-gated").
- Änderung:
login_method:githubaus dem Include entfernen,onetimepinbehalten. - Abnahme: Policy neu lesen und zeigen, dass nur noch
onetimepin+ die E-Mail-Includes drinstehen. Nicht dem API-successglauben — die Policy zurücklesen. Dann: kommtchristoph/geliüber die E-Mail weiterhin hinein? - Abschluss: Gitea #76
closed+status:done, Prosa-Abschnitt finalisieren.
Wenn die Änderung sich als unnötig erweist
Falls Christoph entscheidet, dass der GitHub-Login beim Terpenfinder bleiben soll (etwa weil
die App ohnehin öffentlich ist): dann ist TP49 status:dropped — mit der Begründung im Issue,
damit der Fund nicht wieder als „offen" in einer Memory auftaucht. Auch das ist ein gültiges Ende.