• v0.5.2 96172a880e

    v0.5.2 Stable

    shahondin1624 released this 2026-04-22 20:28:09 +02:00 | 12 commits to main since this release

    Release v0.5.2

    Downloads
  • v0.3.2 53b3fd945a

    v0.3.2
    Database Portability Tests / Integration (mysql) (push) Has been skipped
    Database Portability Tests / Integration (postgres) (push) Has been skipped
    Database Portability Tests / Integration (sqlite) (push) Has been skipped
    Database Portability Tests / Verify no MySQL-specific SQL (push) Successful in 5s
    Database Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 43s
    Stable

    shahondin1624 released this 2026-04-22 10:16:05 +02:00 | 13 commits to main since this release

    Release v0.3.2

    Downloads
  • v0.3.1 38858c8002

    v0.3.1 Stable

    shahondin1624 released this 2026-04-22 09:50:32 +02:00 | 17 commits to main since this release

    Release v0.3.1

    Downloads
  • v0.3.0 05c62d1a21

    v0.3.0 Stable

    shahondin1624 released this 2026-04-22 08:54:29 +02:00 | 19 commits to main since this release

    Release v0.3.0

    Downloads
  • v0.2.11 — Allergien per Klick in der Mitgliederliste
    Database Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 35s
    Database Portability Tests / Integration (mysql) (push) Has been skipped
    Database Portability Tests / Integration (postgres) (push) Has been skipped
    Database Portability Tests / Integration (sqlite) (push) Has been skipped
    Database Portability Tests / Verify no MySQL-specific SQL (push) Successful in 4s
    Stable

    shahondin1624 released this 2026-04-17 21:58:15 +02:00 | 20 commits to main since this release

    Neu (#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 AuthorizationMiddleware erzwungen)
    • Audit-Log: Zugriff wird protokolliert mit User + Anzahl entschlüsselter Einträge — niemals der Wert
    • Cache-Control: no-store auf Response
    • Lebensdauer der Klartext-Daten: nur in lokalen Component-Refs; beim Ausblenden und onBeforeUnmount wird jedes Map-Feld mit null überschrieben und die Ref verworfen
    • Keine localStorage-Persistenz: die Spalte wird nicht in useColumnVisibility registriert, Einstellung überlebt kein Reload

    Tests

    • 3 neue MemberService-Tests (Happy Path, Audit ohne Wert, fehlender EncryptionService)
    • 1125/1125 Unit-Tests grün
    Downloads
  • shahondin1624 released this 2026-04-17 21:37:53 +02:00 | 22 commits to main since this release

    Neu: 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 im finally

    Beide Pfade (Fetch + Upload) laufen durch dieselbe kritische Sektion applyVerifiedUpdate().

    Tests

    • 1122/1122 Unit-Tests grün (bestehende SelfUpdateSignatureTest deckt die gemeinsame Verifikationslogik ab)
    Downloads
  • v0.2.9 d960361ba0

    v0.2.9 — Fehler-Diagnose + Sub-Entity-Speicherung
    Database Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 37s
    Database Portability Tests / Integration (mysql) (push) Has been skipped
    Database Portability Tests / Integration (postgres) (push) Has been skipped
    Database Portability Tests / Integration (sqlite) (push) Has been skipped
    Database Portability Tests / Verify no MySQL-specific SQL (push) Successful in 4s
    Stable

    shahondin1624 released this 2026-04-17 21:31:07 +02:00 | 23 commits to main since this release

    Bugfixes (#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.vue sendet 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 fa702e30f3

    v0.2.8 — Abfrage-Builder: NOT, Klammern, vollständige Feldabdeckung
    Database Portability Tests / Integration (mysql) (push) Has been skipped
    Database Portability Tests / Integration (postgres) (push) Has been skipped
    Database Portability Tests / Integration (sqlite) (push) Has been skipped
    Database Portability Tests / Verify no MySQL-specific SQL (push) Successful in 3s
    Database Portability Tests / Unit Tests (PlatformHelper) (push) Failing after 36s
    Stable

    shahondin1624 released this 2026-04-17 20:17:08 +02:00 | 24 commits to main since this release

    Abfrage-Builder erweitert (#194, #195)

    NOT-Operator

    • Per-Bedingung ¬-Toggle und pro-Gruppe „NICHT"-Umschalter
    • AST-Unterstützung für not: true auf 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
  • v0.2.7 eb555a2fbd

    v0.2.7 Stable

    shahondin1624 released this 2026-04-12 18:11:49 +02:00 | 25 commits to main since this release

    Release v0.2.7

    Downloads
  • v0.2.6 53f42dca5f

    v0.2.6 Stable

    shahondin1624 released this 2026-04-12 16:20:40 +02:00 | 26 commits to main since this release

    Release v0.2.6

    Downloads