Autorisierung gehört in die Datenbank.
Das ist die Wette, auf der das ganze Produkt steht, und der Grund, warum es diese Firma gibt. Zugriffsregeln im Anwendungscode schützen die Tür, nicht den Raum — ein vergessener Endpoint, ein Hintergrund-Job, ein Migrationsskript oder eine psql-Sitzung laufen daran vorbei. Also haben wir sie dorthin gelegt, wo die Daten sind.
Warum wir es bauen
Jedes Backend, das wir vor diesem ausgeliefert haben, ist irgendwann undicht geworden. Nicht durch einen spektakulären Einbruch, sondern auf dem gewöhnlichen Weg: ein neuer Endpoint ohne Permission-Check, ein Admin-Skript gegen Produktion, ein internes Tool, das den Service-Key nahm, weil es schneller ging. Die Regeln waren richtig und umgehbar, was dasselbe ist wie keine Regeln.
Postgres hatte die Antwort schon. Row-Level Security wird von der Datenbank bei jedem Statement und jedem Aufrufer durchgesetzt, und es ist ihr egal, welcher Dienst zu fragen vergessen hat. Rebase kompiliert deine Collection-Definition also in echte Policies und weigert sich, eine Tabelle ohne Policy auszuliefern. Aus dieser Entscheidung folgt alles andere auf dieser Website: die API, das typisierte SDK, das Panel — alle sind Clients unter denselben Regeln, und keiner ist eine Hintertür.
Rebase ist das zweite Mal, dass wir das bauen. Das erste Mal war FireCMS — ein Open-Source-CMS für Firebase, eingesetzt in über 10.000 Projekten, von Teams bei Unternehmen wie Microsoft und IKEA. Rebase überträgt das Gelernte auf eine Datenbank, die dir allein gehört: normales Postgres, betrieben dort, wo du es hinstellst.
Woran wir festhalten
Fail closed, auch wenn es unbequem ist
Eine Tabelle ohne Policy wird abgelehnt, nicht ausgeliefert. Deine erste Query kann leer zurückkommen, bis du eine Regel schreibst. Lieber kosten wir dich fünf Minuten, als dir den anderen Fehlerfall auszuliefern.
Nichts wird zurückgehalten
MIT, durchgehend — der Schema-Editor, die generierten APIs, das typisierte SDK, das Panel. Keine Funktion steckt hinter einer Bezahlstufe, denn ein Sicherheitsmodell, das du nicht lesen kannst, ist keines, dem du trauen kannst.
Die Datenbank bleibt deine
Rebase läuft vor einem Postgres, das dir gehört. Es zieht nie eine zweite Kopie ein, und Aufhören heißt: die Daten liegen schon dort, wo du sie gelassen hast. Weggehen ist ein Redeploy, keine Migration.
Was das ergibt
Was als Nächstes kommt
Das Changelog ist der Nachweis. Das wird als Nächstes gebaut.
Jetzt
VerfügbarDemnächst
In ArbeitSpäter
In PlanungWo das Projekt lebt
Der Code, die Issues und die Diskussionen sind alle offen. Komm und widersprich uns.
Bau etwas darauf.
Rebase ist MIT-lizenziert und self-hosted. Richte es auf ein Postgres, das du schon betreibst.