Zum Inhalt

Flow ändern

Flows nur über die Blueprint-Datei ändern

Ändere einen Flow nie nur in der Web-Oberfläche von Authentik. Für Blueprints gibt es kein plan: Weichen Repo und Authentik voneinander ab, fällt das niemandem auf, und der nächste Upload aus dem Repo macht die Änderung in der Web-Oberfläche stillschweigend rückgängig.

Ziel

Ein geänderter Flow, etwa für die Registrierung neuer Mitglieder, ist in Authentik angewendet, getestet und steht als Blueprint im Repo.

Voraussetzungen

Schritte

1. Neuesten Stand holen

Im Repo-Ordner:

Bash
git pull --rebase
git status

Erwartet: nothing to commit, working tree clean.

2. Blueprint-Datei finden und ändern

Die Blueprints liegen in apps/authentik/blueprints/; welche Datei welchen Flow enthält, steht in Authentik. Eingabefelder und Regeln, die beide Registrierungs-Flows nutzen, stehen in garagelab/prompts.yaml, nicht in den Flow-Dateien.

Ändere die Datei in deinem Editor. Die erste Zeile verweist auf das Schema von Authentik; ein Editor mit YAML-Unterstützung prüft die Datei dann schon beim Schreiben.

Erwartet: git diff zeigt nur deine Änderung.

3. Blueprint in Authentik aktualisieren

Öffne in der Admin-Oberfläche von Authentik Customization → Blueprints. Jeder Blueprint steht dort unter dem Namen aus metadata: name: in seiner Datei, etwa „GarageLab prompts“ für garagelab/prompts.yaml.

  1. Beim Blueprint auf Bearbeiten klicken.
  2. Den Inhalt im Feld für den Blueprint vollständig durch den Inhalt deiner Datei ersetzen.
  3. Speichern.
  4. In der Liste beim Blueprint auf Apply klicken.

Erwartet: In der Spalte Status steht successful.

Hast du mehrere Dateien geändert, aktualisiere zuerst garagelab/prompts.yaml und danach die Flows, weil die Flows die Eingabefelder und Regeln daraus verwenden.

Ist der Blueprint neu, legst du ihn mit Create an, als Quelle den Inhalt der Datei und als Namen den aus metadata: name:.

4. Ergebnis ansehen

Öffne den geänderten Flow unter Flows and Stages → Flows, etwa webling-invitation-flow, und sieh dir im Reiter Stage Bindings an, ob die Stages in der richtigen Reihenfolge stehen.

Erwartet: Der Flow sieht aus wie in deiner Datei.

5. Flow mit einer Einladung testen

Für die beiden Registrierungs-Flows:

  1. Unter Directory → Invitations eine Einladung anlegen, mit dem geänderten Flow, Single use angehakt und einem Ablaufdatum in wenigen Stunden.
  2. Den Link der Einladung in einem privaten Browserfenster öffnen und die Registrierung mit deiner Test-Adresse vollständig durchlaufen.
  3. Prüfen, dass das Testkonto unter Directory → Users angelegt ist, die erwarteten Angaben hat und in den Gruppen mit is_default_member_group steckt.
  4. Das Testkonto löschen.

Für den Flow „Passwort vergessen“ nimmst du ein Testkonto, das du wie oben über eine Einladung angelegt hast, klickst auf der Login-Seite auf „Passwort vergessen“ und löschst das Konto danach.

Erwartet: Die Registrierung bzw. das Zurücksetzen läuft ohne Fehlermeldung durch, und unter Events → Logs stehen keine Fehler zu deinem Testkonto.

6. Committen und pushen

Auch wenn das Hochladen von Hand passiert, steht in Authentik danach dasselbe wie im Repo; committe deshalb sofort:

Bash
1
2
3
git add apps/authentik/blueprints/<datei>.yaml
git commit
git push

Erwartet: am Ende main -> main. Die Commit-Message sagt, was sich am Flow geändert hat und warum.

Prüfen

  • In Customization → Blueprints steht bei jedem geänderten Blueprint successful.
  • Der Inhalt des Blueprints in Authentik ist derselbe wie in der Datei im Repo.
  • Die Einladung aus Schritt 5 ist verbraucht, und das Testkonto ist gelöscht.

Wenn etwas schiefgeht

  • Status error nach dem Apply: Unter Events → Logs steht die Meldung zum Blueprint, meist ein Feld, das es nicht gibt, oder ein Verweis (!Find, !KeyOf) auf etwas, das noch nicht angelegt ist; im zweiten Fall die Reihenfolge aus Schritt 3 prüfen.
  • Die Registrierung bricht ab: In Events → Logs steht, an welcher Stage und mit welcher Meldung; die Regeln in prompts.yaml geben ihre Fehlermeldungen auch direkt im Browser aus.
  • Zurück zum alten Stand: git restore apps/authentik/blueprints/<datei>.yaml und Schritt 3 mit der alten Datei wiederholen.
  • Allgemeines: Blueprints in der Authentik-Doku, vor allem Working with blueprints