-
Rapport 0.8.2 — Auto-Recovery + robuster Updater Pre-Release
released this
2026-05-23 19:55:23 +02:00 | 8 commits to main since this releasePatch-Release: behebt drei Probleme rund um den 0.7→0.8-Update-Fehler und macht künftige Updates robuster.
Was 0.8.2 fixt
Selbstheilung für hängende 0.8.0-Installationen. Wer von 0.7 auf 0.8 geupdated hat und in den Cloud-Setup-Wizard geschoben wurde (obwohl er Lokal-Modus nutzt), kommt mit 0.8.2 automatisch zurück in seinen Lokal-Modus. Der Auto-Recovery-Code erkennt: Cloud-Modus gesetzt + lokale Daten vorhanden + keine Cloud-Anmeldung → Cloud-Konfiguration wird zurückgenommen, alle Daten bleiben erhalten.
Auto-Update auch ohne Login. Bisher prüfte Rapport erst nach dem Login auf neue Versionen — wer in einem fehlerhaften Setup-Bildschirm hing (ohne Devtools in der Production-App), kam nicht an den Bugfix. Mit 0.8.2 läuft der Update-Check auch im «Lokal oder Cloud»-Wizard, im Login-Screen und im Cloud-Setup. Künftige Bugs in Pre-Login-Flows können also via Updater selbst geheilt werden.
Tauri ohne fest eingebaute Server-IP. Die Desktop-App enthält keine vorkonfigurierte Cloud-Adresse mehr. Wer Cloud nutzen will, gibt die Server-Adresse beim Login aktiv ein — kein automatisches Vorausfüllen mit irrelevanten IPs aus dem Build.
Installation
- Bestehende 0.7/0.8-Installationen (auch hängende): DMG herunterladen, über die installierte App ziehen. Beim ersten Start läuft Auto-Recovery, die Daten bleiben unverändert.
- Neuinstallation:
RAPPORT PRE-RELEASE_0.8.2_aarch64.dmg.
Lizenz
GNU AGPL-3.0-or-later
Downloads
-
Rapport 0.8.1 — Update-Fix Pre-Release
released this
2026-05-23 19:33:43 +02:00 | 10 commits to main since this releasePatch-Release: behebt einen Fehler beim Upgrade von 0.7 auf 0.8.
Was passiert ist
Bestehende Lokal-Installationen wurden beim Update auf 0.8 in den Cloud-Modus geschoben — der Cloud-Setup-Wizard erschien, obwohl bereits lokale Daten in der App vorhanden waren. Grund: das 0.8-Production-Build hatte
VITE_SUPABASE_URLmit eingebrannt, und der Storage-Adapter setzte daraus automatisch Cloud als Default-Modus.Was 0.8.1 ändert
Der Auto-Cloud-Switch wird jetzt nur noch ausgelöst, wenn alle Bedingungen erfüllt sind:
- Production-Build mit
VITE_SUPABASE_URL(wie bisher) - Kein bereits gewählter Backend-Modus (wie bisher)
- Keine lokalen Rapport-Daten im
localStoragevorhanden (neu) - Nicht in der Tauri-Desktop-App (neu — Desktop-User wählen immer aktiv)
Damit bleibt das Verhalten für den Web-Deploy unverändert (Browser-Aufruf auf
app.rapport.kgva.chlandet automatisch im Cloud-Login), aber Tauri-Updates und Browser-User mit bestehenden Lokal-Daten werden nicht mehr ungewollt umgeschaltet.Sofort-Fix für betroffene 0.8.0-Installationen
Wer schon 0.8.0 installiert hat und in den Cloud-Setup-Wizard geschoben wurde, kann die App-Console öffnen und einmalig ausführen:
localStorage.removeItem('rapport_backend'); localStorage.removeItem('rapport_backend_chosen'); localStorage.removeItem('rapport_cloud_url'); location.reload();Mit dem Update auf 0.8.1 ist der Fall in Zukunft automatisch abgedeckt.
Lizenz
GNU AGPL-3.0-or-later
Downloads
- Production-Build mit
-
Rapport 0.8 — Cloud-Variante Pre-Release
released this
2026-05-23 19:15:47 +02:00 | 12 commits to main since this releaseMit 0.8 wird Rapport dual: lokal oder in der Cloud auf einer eigenen Supabase-Instanz. Beide Modi haben dieselben Funktionen, Cloud zusätzlich Multi-User und Live-Sync zwischen Geräten.
Cloud-Variante
- Lokal oder Cloud beim ersten Start: Frische Installationen zeigen einen Auswahl-Screen. Lokal bleibt wie bisher (Daten im Browser), Cloud verbindet sich mit einem eigenen Server (z.B. Mac Mini im Büro mit Supabase).
- Mehrseitiger Setup-Wizard für Cloud: Drei Schritte — Studio-Stammdaten, Admin-Account, optionale Buchhaltung (IBAN, MwSt-Nummer, Stundenansatz). Adressen und Bankverbindung sind optional und in den Einstellungen jederzeit nachtragbar.
- Login-Dropdown bei mehreren Studios: Auf einer Cloud-Instanz mit mehreren Firmen wählt man vor Email + Passwort das gewünschte Studio aus.
- Passwort vergessen: Direkt auf dem Login-Screen. Reset-Link kommt per Email, neues Passwort wird nach Klick gesetzt.
Multi-Studio & Personen-Sharing
- Mehrere Studios pro Account: Admins können in den Einstellungen weitere Studios anlegen — derselbe User bleibt Admin in allen, der Wechsel passiert über ein Dropdown.
- Personen-Sharing: Beim Anlegen eines weiteren Studios lässt sich auswählen, ob Personen (Kunden & Partner) aus bestehenden Studios übernommen werden. Geteilte Personen sind in allen verlinkten Studios sichtbar, Änderungen synchronisieren in beide Richtungen.
Live-Sync zwischen Browsern
- Postgres-Realtime: Änderungen in einem Browser (neue Pinnwand-Notiz, neues Projekt, neue Rechnung) erscheinen in anderen offenen Rapport-Tabs ohne Reload — typisch innerhalb einer Sekunde.
- Reload-Resume: Nach Browser-Reload bleibt man eingeloggt und sieht den letzten Stand sofort, ohne erneut anzumelden.
Team-Verwaltung
- Mitarbeiter einladen (Admin-Aktion in Einstellungen → Team): Email + Anzeigename + App-Rolle + temporäres Passwort. Eingeladene können sich sofort anmelden und ihr Passwort später ändern. Kein Self-Signup für Mitarbeiter — die Firma kontrolliert, wer Zugriff bekommt.
Web-Variante
- Wer keine Tauri-Desktop-App installieren will, kann Rapport jetzt im Browser unter der Studio-Adresse nutzen (z.B.
app.rapport.kgva.ch). Identische UI, gleiches Backend, kein Tauri nötig — ideal für Mitarbeiter mit Laptop/iPad. - Deploy-Setup:
deploy/docker-compose.yml+nginx.confim Repo. Hosting hinter Nginx Proxy Manager mit Let's-Encrypt-SSL.
Sicherheit auf DB-Ebene
- Row-Level-Security pro Studio: Jede Datentabelle hat eine Policy, die nur Studio-Mitgliedern Zugriff erlaubt. Selbst direkter SQL-Zugriff anderer Studios bleibt versperrt.
- Audit-Spalten:
created_by/updated_byauf allen Datentabellen — wer was geändert hat, ist nachvollziehbar. - Supabase Auth (bcrypt + JWT) parallel zum lokalen PBKDF2-Login. Sessions werden sicher in localStorage persistiert.
Unter der Haube
- Storage-Adapter: Beide Modi teilen sich eine Promise-API (
load / save / clear). Frontend ist backend-agnostisch — der Adapter entscheidet, ob Browser-localStorage oder Postgres dahintersteht. - 29 Tabellen, 10 Migrations: Multi-tenant von Tag 1, vollständige Mapper für alle Entities (Projekte, Rechnungen, Spesen, Mitarbeiter, Protokolle, …).
- Sub-Tables sauber: Mahnungs-Historie (
invoice_reminders), Lieferschein-Items, Project-Quote-Links — alles per Foreign-Key statt JSON-Blob.
Installation
- Bestehende 0.7-Installationen auf macOS: Update über den eingebauten Updater (klappt automatisch oder via «Einstellungen → Updates & Support → Nach Updates suchen»).
- Neuinstallation:
RAPPORT PRE-RELEASE_0.8.0_aarch64.dmgherunterladen.
Lizenz
GNU AGPL-3.0-or-later
Downloads
-
RAPPORT 0.7 Pre-Release
released this
2026-05-16 02:09:14 +02:00 | 16 commits to main since this releaseAuto-Updater & Auslieferung
- Tauri-Updater-Plugin: Rapport prüft beim Start, ob unter
git.kgva.ch/karim/RAPPORTeine neue Version verfügbar ist. Bei Treffer öffnet sich ein Modal mit Release-Notes — Update-Bundle wird heruntergeladen, per minisign verifiziert und nach Neustart installiert. Kein manuelles DMG-Download mehr nötig. - Skippable & verschiebbar: Updates lassen sich pro Version überspringen (in
localStoragegemerkt) oder einfach „Später" wegklicken — beim nächsten Start erscheint das Modal wieder. - Signaturprüfung: Jedes Update-Bundle wird vor Installation gegen den eingebauten Public Key validiert. Manipulierte Bundles werden verworfen.
System-Tray
- Tray-Icon in der macOS-Menüleiste: Linksklick holt Rapport in den Vordergrund (auch nach
unminimize), Rechtsklick öffnet ein Quick-Access-Menü mit Dashboard, Zeiterfassung, Projekte, Buchhaltung und Einstellungen. - Hide-on-Close: Der rote Schliessen-Button versteckt das Fenster nur — Rapport läuft im Hintergrund weiter und bleibt jederzeit über das Tray-Icon erreichbar.
- Cmd+Q beendet vollständig: Sowohl das Tastenkürzel als auch der „Beenden"-Menüeintrag im Tray räumen die App sauber ab.
Einstellungen: Updates & Support
- Neuer Tab „Updates & Support": Aktuelle Version, Zeitstempel der letzten Prüfung und ein „Nach Updates suchen"-Button — nützlich für Geräte, die kaum neu gestartet werden.
- Manueller Check ignoriert Skip-Flag: Im Settings-Tab erscheint auch eine zuvor übersprungene Version wieder.
- Support-Karte: Direktlink auf
rapport.kgva.chmit Hinweis auf Dokumentation, Changelog und Kontakt.
Unter der Haube
- Update-Helper zentralisiert: Auto-Check (Modal) und manueller Check (Settings) teilen sich
src/utils/updater.js. - Release-Workflow: Neues
scripts/release.shbaut, signiert und erzeugt einelatest.jsonmit Plattform-Routing — manuell hochzuladen sind nur noch das.app.tar.gz(Updater) und optional das DMG (Erstinstallation). - Capabilities erweitert:
updater:default+process:allow-restartfür die Update-/Restart-Flows.
Installation
Lade das passende Bundle für deine Plattform herunter:
- macOS:
Rapport_0.7.0_*.dmg
Bestehende 0.6-Installationen müssen einmalig manuell auf 0.7 aktualisiert werden (der Auto-Updater lebt ja erst ab dieser Version in der App). Danach laufen alle weiteren Updates automatisch.
Lizenz
GNU AGPL-3.0-or-later
Downloads
- Tauri-Updater-Plugin: Rapport prüft beim Start, ob unter
-
Rapport 0.6 — Initial Public Release Pre-Release
released this
2026-05-13 01:24:30 +02:00 | 23 commits to main since this releaseErstes öffentliches Release von Rapport
Sicherheits-Hardening
- Passwort-Hashing: PBKDF2-SHA-256 mit 100 000 Iterationen und zufälligem Salt; Verifikation in konstanter Zeit. Bestehende Klartext-Passwörter werden beim ersten erfolgreichen Login transparent migriert.
- Brute-Force-Schutz: Nach 5 Fehlversuchen wird der Login für 60 Sekunden gesperrt. Mindestpasswortlänge beim Setup auf 8 Zeichen erhöht.
- HTML-Sanitizer für Briefe: Allowlist-basierter Filter entfernt
javascript:/data:-URLs, Event-Handler und Script-Tags. Externe Links bekommen automatischrel="noopener noreferrer". - Datenexport: Legacy-Klartext-Passwörter werden beim Backup entfernt — nur die nicht umkehrbaren Hashes bleiben.
- Kryptografische IDs: Neue Datensätze nutzen
crypto.randomUUIDstattMath.random. - Tauri-CSP:
default-src 'self'mit minimaler Allowlist; Capabilities reduziert auf das Notwendigste.
GUI & Performance
- Code-Splitting: Jeder View wird per
React.lazy+Suspenseseparat geladen. Initial-Bundle nur 86 KB gzipped. - swissqrbill offline: QR-Einzahlungsscheine werden lokal generiert — kein CDN-Aufruf mehr nötig.
- Spesenbelege in der Zeiterfassung: Bilder und PDFs direkt aus der Tagesansicht hochladbar, mit automatischer Bildkomprimierung.
- Avatar-Upload schlanker: Skalierung auf 256 px + JPEG-Kompression, Typprüfung.
- UI-Feinschliff: Neues „Über Rapport"-Modal mit Lizenzinfo, einheitliche Bearbeiten-Icons, Pinnwand-Kategorien als Pills.
Bug-Fixes
- Auto-Überfällig-Prüfung läuft nur noch einmal pro Tag (verhindert Re-Render-Loop).
Installation
Lade das passende Bundle für deine Plattform herunter:
- macOS:
Rapport_0.6.0_*.dmg
Lizenz
GNU AGPL-3.0-or-later
Downloads