Huishoudings
’n Huishouding is die eenheid van data-isolasie in House. Elke produk se data behoort aan ’n huishouding, en die platform waarborg dat jy altyd net jou eie huishouding se rye sien.
Hoe isolasie afgedwing word
Section titled “Hoe isolasie afgedwing word”Isolasie word in die databasis self afgedwing, nie net in toepassingskode nie. Die gedeelde Postgres-groepering gebruik ryvlaksekuriteit (RLS) op elke huurdertabel:
- Dienste koppel as rolle wat nie RLS kan omseil nie. Versoeke dra die huishouding wat opgelos is,
gestel as ’n databasis-sessieveranderlike (
app.household_id), en elke beleid filter daarop. - Tabelle faal geslote: sonder ’n gestelde huishouding gee ’n navraag nul rye terug — nooit alles nie.
Dit beteken ’n fout in ’n produk se navraag kan nie ’n ander huishouding se data lek nie; die databasis weier om dit terug te gee.
Lid-private oppervlakke
Section titled “Lid-private oppervlakke”Binne ’n huishouding kan daar meer as een lid wees. Sommige oppervlakke is lid-privaat — dinge
wat net jy behoort te sien, selfs binne jou eie huishouding. Hulle dra ’n tweede sleutel
(app.principal_id) sodat die databasis per lid sigbaarheid bo-op per-huishouding-isolasie afdwing.
Watter tabelle lid-privaat is, word per produk verklaar en bewys deur ’n outomatiese toets wat bevestig dat twee lede van dieselfde huishouding nie mekaar se private rye kan sien nie.
Rugsteune
Section titled “Rugsteune”Rugsteune word deur ’n toegewyde, vanlyn databasisrol geneem — nooit deur ’n rol wat lewendige verkeer bedien nie.
Meer as een persoon in een huishouding
Section titled “Meer as een persoon in een huishouding”Ondersteuning vir meer as een persoon in ’n enkele huishouding verskil tans van produk tot produk. Sien elke produk se bladsy vir sy huidige status: