White Apps — Phase 1

SCOPE HARDENED

Scope: getData setData getRecord userId appId — all injected, no imports needed. Error handling built in.

Live PreviewLoading session…

Scope Contract

getData(table, key, scope)→ value | null
setData(table, key, value, scope)→ void (throws on fail)
getRecord(table, scope)→ object | null
userId→ UUID string
appId→ UUID string
React→ React object

app_data Upsert Test

Writes count=42 to Supabase then reads it back to confirm.

Session

userId: loading…

appId: 00000000-0000-0000-0000-000000000000

engine: react-live (Sucrase, native DOM)

scope: getData · setData · getRecord · userId · appId · React