Slaan oor na inhoud

Hoe House gebou is

Hierdie bladsy is vir lesers wat wil weet hoe House onder die oppervlak werk. Jy het dit nie nodig om House te gebruik nie. Die taakgidse begin by Aan die gang kom.

House is ’n orkestreerder. Dit monteer die produkte Vonkara, Heldaro en Kragara onder een dop, gerugsteun deur een gedeelde Postgres-databasis (’n skema per produk) en een poort. Elke produk loop ook op sy eie buite House. Binne House loop dit in huis-modus: dieselfde produk, gekoppel aan jou House-rekening, jou huishouding en die poort.

’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 verskeie lede wees. Sommige oppervlakke is lid-privaat, byvoorbeeld dinge wat net jy behoort te sien, selfs binne jou eie huishouding. Hulle dra ’n tweede sleutel (app.principal_id) sodat die databasis sigbaarheid per lid afdwing bo-op isolasie per huishouding.

Watter tabelle lid-privaat is, word per produk verklaar. ’n Outomatiese toets bewys dat twee lede van dieselfde huishouding nie mekaar se private rye kan sien nie.

Rugsteune word deur ’n toegewyde, vanlyn databasisrol geneem. ’n Rol wat lewendige verkeer bedien, neem hulle nooit.

’n Suite is ’n kommersiële groepering van produkoppervlak. ’n Suite is ’n vorm × vertikaal:

Suite Vorm Planleer Aantekeninge
vonkara persoonlik Gratis, Starter, Pro Vonkara se suite per kamer. Sy Premium-sport is in Augustus 2026 afgeskaf
heldaro persoonlik Gratis, Starter, Pro, Premium Heldaro se suite per kamer. Premium is nog nie oop nie
kragara persoonlik Gratis, Starter, Pro, Premium Kragara se suite per kamer. Premium is nog nie oop nie

Gratis is die afwesigheid van ’n betaalde intekening vir daardie kamer.

Regte word as waardelose sleutels gestoor:

  • Vermoësleutels - cap:<produk>:<funksie>, byvoorbeeld cap:vonkara:pack-flow, cap:kragara:pack-adaptive of cap:ai:use (die sleutel wat KI-toegang beheer). Hulle beantwoord “mag ek?”.
  • Vlaksleutels - tier:<suite>:<ordinaal>, byvoorbeeld tier:vonkara:2 (Pro). Hulle dra die faktureringsordinaal vir ’n suite.

’n Pak is ’n bundel van ’n kamer se funksies, benoem deur ’n cap:<produk>:pack-*-sleutel. ’n Produk se huis-modus-oplosser verander ’n paksleutel in die interne funksievlae wat dit ontsluit. Gratis-kernfunksies is dié wat geen pak opeis nie.

Regte word ten tyde van die versoek uit die databasis opgelos, nooit uit ’n tokenbewering vertrou nie:

  1. Die poort stroop elke inkomende identiteitskopstuk af en roep dan die identiteitsdiens se /_verify aan.
  2. /_verify gaan die lewendige huishouding weer na en munt die identiteits- en omvangkopstukke (X-House-Scopes, X-House-Suites, X-House-Principal en ander) uit die huidige databasistoestand.
  3. Die poort stuur daardie kopstukke na die produk aan.

As die oplossing misluk, faal die versoek geslote (401). ’n Afgradering of kansellasie stroop die gekoopte toekennings. ’n Grasie-houding behou hulle vir ’n bepaalde venster. Dít is waarom die herroeping van toegang onmiddellik in werking tree: geen langlewende reg is in ’n token gebak nie.

’n Produk lees nooit jou regte uit ’n token nie. Dit lees die poort-ingespuite kopstukke. Hulle kan vertrou word omdat die poort die enigste ding is wat hulle mag stel, en dit stroop enige af wat van buite aankom.

Produkte roep nooit direk ’n wolk-KI-verskaffer aan nie. Alle KI-oproepe gaan deur een House-keelpunt. Dit hou die verskaffer se sleutel, dwing ’n datagrens af, meet gebruik per persoon en vereis die cap:ai:use-vermoë. Dieselfde pad dryf Vra die dokumentasie.

Die dop besit ’n enkele roeteerder op die boonste vlak. Produkte monteer deur ’n omskrewe naat in plaas daarvan om hul eie roeteerder te nes, wat navigasie oor elke gemonteerde produk heen samehangend hou.

Die dop is een enkele bundel wat elke produk se voorkantbron insluit, saamgestel ten tyde van die bou. Die geboude bates word in die poortbeeld gebak en as statiese lêers bedien: een vasgepende bou wat oor omgewings heen bevorder word. Die dokumentasiewerf word op dieselfde manier gebak, onder /docs.

Die API-verwysing lys die identiteits- en faktureringseindpunte. Vir hulp om House te gebruik, lees Hulp kry.