letzter feinschliff für show-case
This commit is contained in:
1 parent
6eec88d8f5
commit
ea0dda9cab
14 files changed
+13
-18
No files matched your search
@@ -2,16 +2,11 @@ FROM python:3.11-slim
|
|||||||
|
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
RUN addgroup --system app && adduser --system --group app
|
|
||||||
|
|
||||||
COPY requirements.txt .
|
COPY requirements.txt .
|
||||||
RUN pip install --no-cache-dir -r requirements.txt
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
RUN chown -R app:app /app
|
|
||||||
USER app
|
|
||||||
|
|
||||||
EXPOSE 8000
|
EXPOSE 8000
|
||||||
|
|
||||||
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "2", "wsgi:app"]
|
CMD ["gunicorn", "--bind", "0.0.0.0:8000", "--workers", "2", "wsgi:app"]
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/<dateiname>.html
|
Datei: templates/<dateiname>.html
|
||||||
Autor: <Vorname Nachname> <email@beispiel.de>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: YYYY-MM-DD
|
Datum: YYYY-MM-DD
|
||||||
Zweck: <Kurze Beschreibung, welche Seite/Komponente dieses Template rendert.>
|
Zweck: <Kurze Beschreibung, welche Seite/Komponente dieses Template rendert.>
|
||||||
<Erwartete Jinja2-Variablen: z. B. {{ user }}, {{ projects }}, ...>
|
<Erwartete Jinja2-Variablen: z. B. {{ user }}, {{ projects }}, ...>
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
<Optionale Beschreibung: Was leistet dieses Modul? Welche Klassen oder
|
<Optionale Beschreibung: Was leistet dieses Modul? Welche Klassen oder
|
||||||
Funktionen exportiert es? Welche externen Abhängigkeiten hat es?>
|
Funktionen exportiert es? Welche externen Abhängigkeiten hat es?>
|
||||||
|
|
||||||
:author: <Vorname Nachname> <email@beispiel.de>
|
:author: Björn Runden <br@runden.de>
|
||||||
:date: YYYY-MM-DD
|
:date: YYYY-MM-DD
|
||||||
:version: 1.0
|
:version: 1.0
|
||||||
"""
|
"""
|
||||||
+1
-1
@@ -4,7 +4,7 @@ Application Factory der OIDC Flask Showcase App.
|
|||||||
Initialisiert Flask, SQLAlchemy und Authlib. Registriert alle Blueprints
|
Initialisiert Flask, SQLAlchemy und Authlib. Registriert alle Blueprints
|
||||||
und stellt den CLI-Befehl ``flask seed-db`` bereit.
|
und stellt den CLI-Befehl ``flask seed-db`` bereit.
|
||||||
|
|
||||||
:author: <Vorname Nachname>
|
:author: Björn Runden <br@runden.de>
|
||||||
:date: 2026-06-17
|
:date: 2026-06-17
|
||||||
:version: 0.1
|
:version: 0.1
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ Liest alle Einstellungen aus Umgebungsvariablen (.env) nach dem 12-Factor-App-Pr
|
|||||||
ZITADEL_SERVER_METADATA_URL ist der von Authlib erwartete Config-Key für die
|
ZITADEL_SERVER_METADATA_URL ist der von Authlib erwartete Config-Key für die
|
||||||
OIDC Discovery URL.
|
OIDC Discovery URL.
|
||||||
|
|
||||||
:author: <Vorname Nachname>
|
:author: Björn Runden <br@runden.de>
|
||||||
:date: 2026-06-17
|
:date: 2026-06-17
|
||||||
:version: 0.1
|
:version: 0.1
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
-1
@@ -1,7 +1,7 @@
|
|||||||
"""
|
"""
|
||||||
Datenbankinitialisierung mit Flask-SQLAlchemy.
|
Datenbankinitialisierung mit Flask-SQLAlchemy.
|
||||||
|
|
||||||
:author: <Vorname Nachname>
|
:author: Björn Runden <br@runden.de>
|
||||||
:date: 2026-06-17
|
:date: 2026-06-17
|
||||||
:version: 0.1
|
:version: 0.1
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ SQLAlchemy-Datenmodelle für lokale RBAC- und Projektzuweisung.
|
|||||||
Alle Nutzeridentitäten stammen aus Zitadel (``zitadel_user_id`` = OIDC ``sub``-Claim).
|
Alle Nutzeridentitäten stammen aus Zitadel (``zitadel_user_id`` = OIDC ``sub``-Claim).
|
||||||
Die lokalen Tabellen regeln nur die Autorisierung – nie die Authentifizierung.
|
Die lokalen Tabellen regeln nur die Autorisierung – nie die Authentifizierung.
|
||||||
|
|
||||||
:author: <Vorname Nachname>
|
:author: Björn Runden <br@runden.de>
|
||||||
:date: 2026-06-17
|
:date: 2026-06-17
|
||||||
:version: 0.1
|
:version: 0.1
|
||||||
"""
|
"""
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ Flask-Routen und Routing-Guards der OIDC-Showcase-App.
|
|||||||
Alle geschützten Routen prüfen (1) den Zitadel-Claim aus der Session und
|
Alle geschützten Routen prüfen (1) den Zitadel-Claim aus der Session und
|
||||||
(2) die lokale DB-Zuordnung. Jede Verletzung leitet auf /error um.
|
(2) die lokale DB-Zuordnung. Jede Verletzung leitet auf /error um.
|
||||||
|
|
||||||
:author: <Vorname Nachname>
|
:author: Björn Runden <br@runden.de>
|
||||||
:date: 2026-06-17
|
:date: 2026-06-17
|
||||||
:version: 0.1
|
:version: 0.1
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/admin.html
|
Datei: templates/admin.html
|
||||||
Autor: <Vorname Nachname>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: 2026-06-17
|
Datum: 2026-06-17
|
||||||
Zweck: Admin-Ansicht mit Übersicht aller Clients, Projekte und Nutzer.
|
Zweck: Admin-Ansicht mit Übersicht aller Clients, Projekte und Nutzer.
|
||||||
Variablen: user, clients (list), projects (list), users (list)
|
Variablen: user, clients (list), projects (list), users (list)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/base.html
|
Datei: templates/base.html
|
||||||
Autor: <Vorname Nachname>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: 2026-06-17
|
Datum: 2026-06-17
|
||||||
Zweck: Basis-Layout für alle Seiten. Erwartet: session.user (optional).
|
Zweck: Basis-Layout für alle Seiten. Erwartet: session.user (optional).
|
||||||
#}
|
#}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/index.html
|
Datei: templates/index.html
|
||||||
Autor: <Vorname Nachname>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: 2026-06-17
|
Datum: 2026-06-17
|
||||||
Zweck: Dashboard mit Test-Matrix. Zeigt Kacheln je nach Rolle des eingeloggten Nutzers.
|
Zweck: Dashboard mit Test-Matrix. Zeigt Kacheln je nach Rolle des eingeloggten Nutzers.
|
||||||
Variablen: user (dict), projects (list[Project]), forbidden_project (Project|None)
|
Variablen: user (dict), projects (list[Project]), forbidden_project (Project|None)
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/login_error.html
|
Datei: templates/login_error.html
|
||||||
Autor: <Vorname Nachname>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: 2026-06-17
|
Datum: 2026-06-17
|
||||||
Zweck: Fehlerseite bei verweigertem Zugriff. Keine Variablen erwartet.
|
Zweck: Fehlerseite bei verweigertem Zugriff. Keine Variablen erwartet.
|
||||||
#}
|
#}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/mitarbeiter.html
|
Datei: templates/mitarbeiter.html
|
||||||
Autor: <Vorname Nachname>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: 2026-06-17
|
Datum: 2026-06-17
|
||||||
Zweck: Projektübersicht für Mitarbeiter (nur zugewiesene Projekte).
|
Zweck: Projektübersicht für Mitarbeiter (nur zugewiesene Projekte).
|
||||||
Variablen: user, projects (list[Project])
|
Variablen: user, projects (list[Project])
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{#
|
{#
|
||||||
Datei: templates/projekt.html
|
Datei: templates/projekt.html
|
||||||
Autor: <Vorname Nachname>
|
Autor: Björn Runden <br@runden.de>
|
||||||
Datum: 2026-06-17
|
Datum: 2026-06-17
|
||||||
Zweck: Projekt-Cockpit mit Notizen-Log. Zugriff nur für zugewiesene Nutzer.
|
Zweck: Projekt-Cockpit mit Notizen-Log. Zugriff nur für zugewiesene Nutzer.
|
||||||
Variablen: user, project (Project), notes (list[Note])
|
Variablen: user, project (Project), notes (list[Note])
|
||||||
|
|||||||
Reference in new issue
Block a user