Blog
Feature
15. Oktober 20256 min

Favoriten, Zuweisung und Anhänge – die Details, die alles verändern

Es gibt die großen Features und es gibt die „kleinen“ Ergänzungen, die das Produkt wirklich nutzbar machen.

Favoriten

Eine Aufgabe als Favorit markieren, das ist ein Umschalter. Ein Boolescher Wert. Das sollte 30 Minuten dauern. In der Praxis: Spalte, RLS, Feed-Filter, Stern-Animation, Echtzeit-Synchronisation. Das Hüpfen des Sterns hat mich länger gekostet als die Geschäftslogik.

Aufgabenzuweisung

Das Modell ist eine Verknüpfungstabelle collaborative.task_assignments. Die wahre Herausforderung ist die FilterBar mit drei Modi (Alle / Von mir erstellt / Mir zugewiesen) kombiniert mit dem hierarchischen Gruppenfilter.

Anhänge – die architektonische Wahl

Zwei mögliche Ansätze: JSONB (einfach, schnell) oder relationale Tabellen (mehr Arbeit, skalierbarer). Ich habe mich für relationale Tabellen (privat.task_attachments, privat.memo_attachments) entschieden, wegen der Abfrageleistung, der sauberen Kaskadenlöschung und der individuellen RLS.

Die Falle der signierten URLs

Supabase Storage generiert signierte URLs, die nach einer Stunde ablaufen. Meine Lösung: ein StorageService.refreshAttachmentUrlsBatch(), der die URLs stapelweise über den storage_path neu generiert. Das ist die Art von unsichtbarem Detail – wenn es funktioniert, bemerkt es niemand. Wenn es kaputtgeht, sehen es alle.