admin concepts

This commit is contained in:
Julian Krauser 2025-02-06 13:53:49 +01:00
parent c952ee65b2
commit c0c68c565d
4 changed files with 65 additions and 17 deletions

View file

@ -20,7 +20,7 @@ Die Docker-Images sind versioniert. Der `<tag>` des Images kann entweder `latest
#code_file( #code_file(
path: "../admin/code/app-compose.yml", path: "../admin/code/app-compose.yml",
) <app-compose> ) <app-compose>
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. 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", path: "../admin/code/server-compose.yml",
) <server-compose> ) <server-compose>
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. Environment Werte können optional sein oder haben Standard-Werte.
@ -85,13 +85,15 @@ Konfiguration von Postgres:
) <postgres-compose> ) <postgres-compose>
`POSTGRES_DB` erstellt direkt eine Datenbank, die durch einen angelegten `POSTGRES_USER` verfügbar ist. `POSTGRES_DB` erstellt direkt eine Datenbank, die durch einen angelegten `POSTGRES_USER` verfügbar ist.
\
\
*Hinweis* *Hinweis*
Wenn eine Docker-Compose Datei verwendet wird, kann zusätzliche ein Netzwerk angelegt werden. 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. 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: Ergänzt muss hierfür das `network` und die Teilhabe des Backend-Containers am Netzwerk:
\
\
1. Ergänzung zu Server und Datenbank: 1. Ergänzung zu Server und Datenbank:
``` ```
networks: networks:
@ -112,14 +114,14 @@ depends_on:
Hierdurch kann der Server nicht starten, wenn die verwendete Datenbank nicht läuft. 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. // 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. // 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 == 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 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. 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* *App*
```sh ```sh
git clone https://forgejo.jk-effects.cloud/Ehrenamt/ff-admin.git git clone https://forgejo.jk-effects.cloud/Ehrenamt/ff-admin.git
@ -165,7 +168,7 @@ npm run build
npm run start npm run start
``` ```
== Konfiguration == Konfiguration <config>
Folgende Werte können zu einem Container konfiguriert werden: Folgende Werte können zu einem Container konfiguriert werden:

View file

@ -1,15 +1,58 @@
= Konzepte = 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
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 == 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 == 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 === 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 === Query-Engine
=== Scheduling-Engine (bald) 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)

View file

@ -1,5 +1,7 @@
= Module = Module
FF Admin nutzt verschiedenste Module, um Daten zu organisieren, die Verwaltung zu vereinfachen und Berechtigungen sinnvoll setzen zu können.
== Mitgliederverwaltung & Stammdaten == Mitgliederverwaltung & Stammdaten
== Kalender == Kalender
@ -10,9 +12,9 @@
== Backups == Backups
== Query Builder & Query Store == Query Builder & Query Store <query>
== Templates & Template Builder == Templates & Template Builder <template>
== Benutzer & Rollenverwaltung == Benutzer & Rollenverwaltung

Binary file not shown.