Skip to content

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.

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.

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 word deur ’n toegewyde, vanlyn databasisrol geneem — nooit deur ’n rol wat lewendige verkeer bedien nie.

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: