-
v0.5.2 Stable
released this
2026-04-22 20:28:09 +02:00 | 12 commits to main since this releaseRelease v0.5.2
Downloads
-
v0.3.2
StableDatabase Portability Tests / Integration (mysql) (push) Has been skippedDatabase Portability Tests / Integration (postgres) (push) Has been skippedDatabase Portability Tests / Integration (sqlite) (push) Has been skippedDatabase Portability Tests / Verify no MySQL-specific SQL (push) Successful in 5sDatabase Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 43sreleased this
2026-04-22 10:16:05 +02:00 | 13 commits to main since this releaseRelease v0.3.2
Downloads
-
v0.3.1 Stable
released this
2026-04-22 09:50:32 +02:00 | 17 commits to main since this releaseRelease v0.3.1
Downloads
-
v0.3.0 Stable
released this
2026-04-22 08:54:29 +02:00 | 19 commits to main since this releaseRelease v0.3.0
Downloads
-
v0.2.11 — Allergien per Klick in der Mitgliederliste
StableDatabase Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 35sDatabase Portability Tests / Integration (mysql) (push) Has been skippedDatabase Portability Tests / Integration (postgres) (push) Has been skippedDatabase Portability Tests / Integration (sqlite) (push) Has been skippedDatabase Portability Tests / Verify no MySQL-specific SQL (push) Successful in 4sreleased this
2026-04-17 21:58:15 +02:00 | 20 commits to main since this releaseNeu (#198)
„Allergien anzeigen"-Toggle in der Mitgliederliste. Klick → Bestätigung → Server entschlüsselt alle
allergien_encrypted-Einträge und fügt eine Spalte „Allergien" in die Liste ein. Erneuter Klick blendet die Spalte aus und verwirft die entschlüsselten Daten.Sicherheit
- Nur Admin (per
AuthorizationMiddlewareerzwungen) - Audit-Log: Zugriff wird protokolliert mit User + Anzahl entschlüsselter Einträge — niemals der Wert
Cache-Control: no-storeauf Response- Lebensdauer der Klartext-Daten: nur in lokalen Component-Refs; beim Ausblenden und
onBeforeUnmountwird jedes Map-Feld mitnullüberschrieben und die Ref verworfen - Keine localStorage-Persistenz: die Spalte wird nicht in
useColumnVisibilityregistriert, Einstellung überlebt kein Reload
Tests
- 3 neue
MemberService-Tests (Happy Path, Audit ohne Wert, fehlenderEncryptionService) - 1125/1125 Unit-Tests grün
Downloads
- Nur Admin (per
-
released this
2026-04-17 21:37:53 +02:00 | 22 commits to main since this releaseNeu: Manuelles Update (#197)
Auf der Backup-Seite gibt es einen neuen Bereich „Manuelles Update", in dem ein Admin die Release-Dateien (
.tar.gz+.tar.gz.sig) direkt hochladen kann. Nützlich, wenn der Server die Gitea-Instanz nicht erreichen kann (Mobilfunk-Hotspot, Captive Portal, abgeschottete Installation).Sicherheit
Gleiche Garantien wie das automatische Update:
- Ed25519-Signatur wird vor der Extraktion gegen den eingebetteten öffentlichen Schlüssel geprüft (
sodium_crypto_sign_verify_detached) - Nur wer den passenden privaten Release-Schlüssel besitzt, kann eine gültige Signatur erzeugen → keine zusätzliche Angriffsfläche
- Admin-only (AuthorizationMiddleware), CSRF aktiv
- Upload-Limit: 25 MiB Archiv / 1 KiB Signatur, gzip-Magic-Prüfung, exakte Signaturlänge
- Temp-Dateien mit
chmod 0600, Cleanup imfinally
Beide Pfade (Fetch + Upload) laufen durch dieselbe kritische Sektion
applyVerifiedUpdate().Tests
- 1122/1122 Unit-Tests grün (bestehende
SelfUpdateSignatureTestdeckt die gemeinsame Verifikationslogik ab)
Downloads
- Ed25519-Signatur wird vor der Extraktion gegen den eingebetteten öffentlichen Schlüssel geprüft (
-
v0.2.9 — Fehler-Diagnose + Sub-Entity-Speicherung
StableDatabase Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 37sDatabase Portability Tests / Integration (mysql) (push) Has been skippedDatabase Portability Tests / Integration (postgres) (push) Has been skippedDatabase Portability Tests / Integration (sqlite) (push) Has been skippedDatabase Portability Tests / Verify no MySQL-specific SQL (push) Successful in 4sreleased this
2026-04-17 21:31:07 +02:00 | 23 commits to main since this releaseBugfixes (#196)
Drei Fehler, die bisher echte Probleme als leere/generische Zustände maskiert haben.
1. Update-Check zeigt echte Fehlermeldung
Der Backend-Fehler wurde bereits zurückgegeben, aber nur als generisches „Pruefung fehlgeschlagen"-Badge gerendert. Jetzt:
- Klassifiziert Backend den Fehler: DNS / Timeout / TLS / Netzwerk / HTTP / Parse
- UI zeigt die Meldung + aufklappbare technische Details mit Ziel-URL und Roh-Ausnahme
- Hilft u. a. beim Debugging über Hotspot (Captive Portal, IPv6-only-APN, Carrier-DNS)
2. Mitglieder-Suche unterscheidet Fehler von leerem Ergebnis
Die globale Suchleiste hat jeden Fehler als „Keine Ergebnisse" angezeigt:
- Eigene Fehleranzeige mit Status/Meldung und „Erneut versuchen"-Button
- Spezielle Hinweise bei HTTP 401/403 (Sitzung abgelaufen), 429 (Brute-Force-Schutz)
- Race-Guard gegen veraltete Antworten
3. Adressen/Telefone/E-Mails werden beim Mitglied-Speichern tatsächlich gespeichert
Bisher wurden beim Bearbeiten eines bestehenden Mitglieds alle Sub-Entitäten verworfen. Jetzt:
- Backend
MemberService::update()synct Adressen/Telefone/E-Mails (update vorhandener, insert neuer, delete fehlender) - Fehlende Keys im Payload lassen den DB-Zustand unberührt (rückwärtskompatibel)
- Frontend
MemberDetail.vuesendet Sub-Entitäten mit
Tests
- 4 neue MemberService-Tests (sync add/update/delete/noop) grün
- Unit-Suite: 1122/1122 ✓
Update
Self-Update-Feature verwendbar — gibt jetzt bei Fehlern auch aussagekräftige Diagnose aus.
Downloads
-
v0.2.8 — Abfrage-Builder: NOT, Klammern, vollständige Feldabdeckung
StableDatabase Portability Tests / Integration (mysql) (push) Has been skippedDatabase Portability Tests / Integration (postgres) (push) Has been skippedDatabase Portability Tests / Integration (sqlite) (push) Has been skippedDatabase Portability Tests / Verify no MySQL-specific SQL (push) Successful in 3sDatabase Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 36sreleased this
2026-04-17 20:17:08 +02:00 | 24 commits to main since this releaseAbfrage-Builder erweitert (#194, #195)
NOT-Operator
- Per-Bedingung
¬-Toggle und pro-Gruppe „NICHT"-Umschalter - AST-Unterstützung für
not: trueauf Blatt- und Gruppenebene - Verschachtelte Negation (
NOT (A AND NOT B)) funktioniert korrekt - Rückwärtskompatibel — bestehende gespeicherte Abfragen laufen unverändert
Explizite Klammerung
- Sichtbare
()-Klammern um verschachtelte Gruppen - „Klammer auflösen"-Button hebt Kinder in die Eltern-Gruppe, wenn die Logik kompatibel ist
- Harte Verschachtelungstiefe-Grenze entfernt (Backend-Grenze 10 bleibt)
Vollständige Feldliste
Neue Mitglieds-Felder: Notizen, Zusätzliche Notizen, Einwilligungsdatum, Juleica-Nummer, Juleica-Ablaufdatum
Verschlüsseltes Feld: Allergien — volle Operatoren, serverseitige Entschlüsselung in PHP für Inhaltsoperatoren; reiner SQL-Test für
ist leer/ist nicht leer. Audit-Log protokolliert Feld + Operator + Benutzer, niemals den Wert.Verknüpfte Entitäten (via EXISTS-Subqueries): Telefon, E-Mail, Familienname, Beitrag bezahlt/offen in Jahr, Beitragsbetrag, Lagerteilnahme, Lagername, Verletzung vermerkt
Tests
- Unit: 1118/1118 (25 neu) ✓
- Integration + DatabasePortability: 13/13 ✓
Update
Das Self-Update-Feature aus v0.2.5 kann genutzt werden, um diese Version zu installieren.
Downloads
- Per-Bedingung
-
v0.2.7 Stable
released this
2026-04-12 18:11:49 +02:00 | 25 commits to main since this releaseRelease v0.2.7
Downloads
-
v0.2.6 Stable
released this
2026-04-12 16:20:40 +02:00 | 26 commits to main since this releaseRelease v0.2.6
Downloads