From c0c68c565db92a8e4ee4d664c2b4bdb4ad03f05c Mon Sep 17 00:00:00 2001 From: Julian Krauser Date: Thu, 6 Feb 2025 13:53:49 +0100 Subject: [PATCH] admin concepts --- admin/content/2-installation.typ | 29 ++++++++++--------- admin/content/3-concepts.typ | 47 +++++++++++++++++++++++++++++-- admin/content/4-modules.typ | 6 ++-- ff-admin.pdf | Bin 255127 -> 257623 bytes 4 files changed, 65 insertions(+), 17 deletions(-) diff --git a/admin/content/2-installation.typ b/admin/content/2-installation.typ index 3419cc2..ed5401a 100644 --- a/admin/content/2-installation.typ +++ b/admin/content/2-installation.typ @@ -20,7 +20,7 @@ Die Docker-Images sind versioniert. Der `` des Images kann entweder `latest #code_file( path: "../admin/code/app-compose.yml", ) -Die Verwendung der Werte des Typs Environment werden unter dem Punkt Konfiguration erklärt. +Die Verwendung der Werte des Typs Environment werden unter dem Punkt Konfiguration (@config) erklärt. Alle Environment Werte sind Optional und haben Standard-Werte. @@ -53,7 +53,7 @@ Die Dateien müssen exakt gleich geschrieben sein. Achten Sie deshalb auf Schrei path: "../admin/code/server-compose.yml", ) -Die Verwendung der Werte des Typs Environment werden unter dem Punkt Konfiguration erklärt. +Die Verwendung der Werte des Typs Environment werden unter dem Punkt Konfiguration (@config) erklärt. Environment Werte können optional sein oder haben Standard-Werte. @@ -85,13 +85,15 @@ Konfiguration von Postgres: ) `POSTGRES_DB` erstellt direkt eine Datenbank, die durch einen angelegten `POSTGRES_USER` verfügbar ist. - +\ +\ *Hinweis* Wenn eine Docker-Compose Datei verwendet wird, kann zusätzliche ein Netzwerk angelegt werden. Dadurch ist das Veröffentlichen der Datenbank-Port-Exposes nicht mehr notwendig. Das Entfernern der port-Exposes verhindert den direkten Zugriff auf die Ports von außerhalb. Ergänzt muss hierfür das `network` und die Teilhabe des Backend-Containers am Netzwerk: - +\ +\ 1. Ergänzung zu Server und Datenbank: ``` networks: @@ -112,14 +114,14 @@ depends_on: Hierdurch kann der Server nicht starten, wenn die verwendete Datenbank nicht läuft. -=== Docker-AIO +// === Docker-AIO -*In Arbeit* +// *In Arbeit* -Ein Docker-Image, welches alle notwendigen Komponenten beinhaltet, ist in der Erstellung. -\ -\ -Das All-In-One Image abstrahiert das Routing zu App und Server und beinhaltet direkt die Datenbank. Auch werden gleiche Konfigurations-Daten zusammengefasst und an die Container übergeben. +// Ein Docker-Image, welches alle notwendigen Komponenten beinhaltet, ist in der Erstellung. +// \ +// \ +// Das All-In-One Image abstrahiert das Routing zu App und Server und beinhaltet direkt die Datenbank. Auch werden gleiche Konfigurations-Daten zusammengefasst und an die Container übergeben. == Git @@ -144,8 +146,9 @@ Um die Konfiguration mittels ENV-Variablen an die Anwendungen weitergeben zu kö Die env-Datei im Frontend muss vor dem build-Prozess erstellt sein, da dort die Werte fest in den Code übernommen werden. Weiterhin muss die Datei im Frontend `.env.production` heißen. Die bestehende Datei kann modifiziert werden. Bei einer Änderung muss die App neu gebaut werden. Die env-Datei im Backend muss vor der Ausführung von `npm run start` angelegt sein. Bei einer Änderung der Einträge muss der Server lediglich neu gestartet werden. -\ -\ + +#pagebreak() + *App* ```sh git clone https://forgejo.jk-effects.cloud/Ehrenamt/ff-admin.git @@ -165,7 +168,7 @@ npm run build npm run start ``` -== Konfiguration +== Konfiguration Folgende Werte können zu einem Container konfiguriert werden: diff --git a/admin/content/3-concepts.typ b/admin/content/3-concepts.typ index c0c3619..6d78404 100644 --- a/admin/content/3-concepts.typ +++ b/admin/content/3-concepts.typ @@ -1,15 +1,58 @@ = Konzepte -// Engines und wie Daten selbst definiert werden können. +FF Admin basiert auf mehreren Konzepten, die das System modular und flexibel machen, so dass es an verschiedene Anwendungsfälle angepasst werden kann. == Stammdaten +Stammdaten sind grundlegende Basisdaten, die als Grundlage für weitere Einträge dienen. Dazu gehören z.B. Anrede, Mitgliedsstatus oder verschiedene Arten von Kalendereinträgen. +\ +\ +Diese Daten sind frei definierbar, so dass die Benutzer ihre eigene Namensgebung festlegen und sicherstellen können, dass alle benötigten Einträge zur Verfügung stehen. +\ +\ +Damit Einträge angelegt oder verwendet werden können, müssen *zuvor* die entsprechenden Stammdaten angelegt worden sein. + == Berechtigungen +Das Berechtigungssystem ist tief in FF Admin integriert und steuert den Zugriff von Benutzern oder API-Clients auf verschiedene Sektionen und Module. Berechtigungen bestimmen, ob jemand Daten lesen, erstellen, aktualisieren oder löschen kann. +\ +\ +Berechtigungen werden immer summiert:\ +Ein Benutzer erhält alle Berechtigungen, die ihm direkt oder indirekt über Rollen zugewiesen wurden. +\ +\ +Der Berechtigungseditor ist in Sektionen und Module unterteilt. Wenn ein Benutzer eine Berechtigung für einen Abschnitt erhält, gilt diese automatisch auch für alle untergeordneten Module. +\ +\ +*Hinweis:* Um Einträge in einem Modul, das auf Stammdaten zugreift, anlegen oder bearbeiten zu können, erhält der Benutzer automatisch Leserechte auf die Stammdaten. Dies bedeutet jedoch nicht, dass der Benutzer die Stammdaten direkt in der Anwendung sehen kann - hierfür benötigt er eine explizite Berechtigung für den entsprechenden Abschnitt oder das entsprechende Modul. + == Engines +FF Admin stellt eine Reihe von systemweiten Funktionen zur Verfügung, die vom Benutzer konfiguriert und in verschiedenen Modulen verwendet werden können. + === Template-Engine +Die Template-Engine ermöglicht es dem Benutzer, eigene Formatvorlagen zu erstellen und Standardvorlagen damit zu ersetzen. Ein Modul kann Vorlagen für Kopf- und Fußzeilen sowie für den Hauptteil eines Dokuments verwenden. + +Diese Vorlagen werden zum Drucken von PDFs oder zum Versenden von E-Mails verwendet. Sie werden mit Daten aus FF Admin gefüllt und anschließend exportiert oder versendet. +\ +\ +Eine detaillierte Anleitung zur Verwendung finden Sie unter *Module -> Templates & Template Builder* (@query). + === Query-Engine -=== Scheduling-Engine (bald) \ No newline at end of file +Die Query-Engine ermöglicht das Erstellen und Ausführen von individuellen Abfragen auf die Mitgliederdaten. Diese Abfragen können gespeichert und in anderen Modulen wieder verwendet werden. +\ +\ +Beispiele von Abfragen wären: +- Mitglieder eines bestimmten Mitgliedschaftstyps +- Mitglieder einer bestimmten Mitgliedschaftsdauer +- Mitglieder eines bestimmten Alters +- ... +\ +Eine detaillierte Anleitung zur Benutzung finden Sie unter *Module -> Query Builder & Query Store* (@template). +\ +\ +*Hinweis:* Die Query-Engine ermöglicht nur das Lesen von Mitglieder- und mitgliederbezogenen Daten. Das Schreiben oder Verändern von Daten ist nicht möglich. + +// === Scheduling-Engine (bald) diff --git a/admin/content/4-modules.typ b/admin/content/4-modules.typ index 3f56355..00b529a 100644 --- a/admin/content/4-modules.typ +++ b/admin/content/4-modules.typ @@ -1,5 +1,7 @@ = Module +FF Admin nutzt verschiedenste Module, um Daten zu organisieren, die Verwaltung zu vereinfachen und Berechtigungen sinnvoll setzen zu können. + == Mitgliederverwaltung & Stammdaten == Kalender @@ -10,9 +12,9 @@ == Backups -== Query Builder & Query Store +== Query Builder & Query Store -== Templates & Template Builder +== Templates & Template Builder