Zum Inhalt

Membertool

Was es tut

Das Membertool ist eine Eigenentwicklung des Vereins und verbindet die Mitgliederverwaltung in Webling mit dem zentralen Login in Authentik. Es lädt neue Mitglieder ein, hält ihre Daten in Authentik aktuell und deaktiviert die Konten ausgetretener Mitglieder. Für Mitglieder ist es unter dem Namen „Portal“ die Startseite nach dem Login: Dort sehen sie ihre Apps und können einen Teil ihrer Mitgliederdaten selbst ändern.

Wo es liegt

Adresse https://portal.garage-lab.de
Host werner
Stack-Datei syslet/werner/stack-membertool.cue
Begleitmaterial apps/membertool/

Verwaltet über

Repo. Wann das Membertool welche Aufgaben ausführt, welche Felder in Webling es liest und schreibt und wie es sich bei Webling und Authentik anmeldet, steht in der Stack-Datei. Die Mitgliederdaten selbst pflegt der Vorstand in Webling.

Aufbau

  • membertool-server ist die App: Weboberfläche des Portals und die regelmäßigen Aufgaben in einem. Das Image (localhost/membertool) wird nicht aus einer Registry geladen, sondern liegt nur auf werner.
  • membertool-postgres ist die Datenbank, unter anderem für die Aufgaben, die noch auszuführen sind.
  • membertool-postgres-exporter liefert Messwerte der Datenbank für das Monitoring.

Das Membertool spricht mit drei Diensten außerhalb des Hosts:

flowchart LR
    webling["Webling<br>Mitgliederverwaltung"]
    tool["Membertool"]
    authentik["Authentik"]
    mailjet["Mailjet"]
    neu(["Mitglied"])

    webling <-->|"Daten lesen,<br>SSO-Status schreiben"| tool
    tool -->|"Einladungen,<br>Konten ändern"| authentik
    tool --> mailjet -->|Willkommen, Einladung,<br>Erinnerungen| neu

Die Aufgaben im Einzelnen:

  • Willkommen: neue Datensätze in Webling bekommen eine Willkommens-E-Mail.
  • Einladung: ist die Mitgliedschaft bestätigt, legt das Membertool am Eintrittsdatum eine Einladung in Authentik an und verschickt sie; bleibt sie liegen, folgen Erinnerungen.
  • Abgleich: Name und Daten aus Webling landen als Attribute im Konto in Authentik.
  • Austritt: am Austrittsdatum wird das Konto in Authentik deaktiviert.

Den ganzen Ablauf zeigt das Diagramm in Authentik. Welche Rechte das Membertool in Authentik hat, legt die Rolle in apps/authentik/blueprints/garagelab/membertool-mgmt-role.yaml fest.

Login / SSO

Angemeldet wird über Authentik per OIDC (application_membertool.tf). Neue Mitglieder kommen automatisch in die Gruppe „Membertool Access“. Wer in der App-Gruppe „Membertool Admin“ ist, bekommt im Portal Admin-Rechte. Zusätzlich bekommt das Membertool beim Login die Webling-IDs der Person aus Authentik, damit es den passenden Datensatz in Webling findet.

Backup

Gesichert wird ein Dump der Datenbank (siehe Backup). Die Mitgliederdaten selbst liegen in Webling und nicht im Membertool.

Updates

Die Version steht in image: membertool: tag: oben in der Stack-Datei. Weil das Image nur auf werner liegt, muss eine neue Version erst gebaut und auf den Host gebracht werden, bevor man den Tag ändert (siehe Image-Version anheben).

Besonderheiten / bekannte Probleme

  • Die Texte der Mails, die das Membertool verschickt (Willkommen, Einladung, Erinnerungen, je als HTML und Text), liegen in der Datenbank des Membertools und werden dort gepflegt. In apps/membertool/ liegt eine Kopie; trotz der Endungen .txt und .html sind es Vorlagen mit Platzhaltern wie {{.FirstName}}, die das Membertool beim Versand füllt. Sie werden nicht aus diesem Repo ausgerollt; eine Änderung muss man von Hand in die Datenbank übernehmen.
  • Das Membertool schreibt nach Webling zurück, wann jemand eingeladen und wann das Konto gelöscht wurde (Felder „SSO Eingeladen“ und „SSO Gelöscht“).

Weiterlesen