[{"data":1,"prerenderedAt":1559},["ShallowReactive",2],{"navigation":3,"\u002Fservices\u002Fmanifest":927,"mdc-vinqck-key":1524,"mdc-btzgrb-key":1536,"mdc--ftuop3-key":1550},[4,40,114,446,474,498,596,903],{"title":5,"path":6,"stem":7,"children":8},"Architecture","\u002Farchitecture","architecture",[9,14,28,32,36],{"title":10,"path":6,"stem":11,"access":12,"icon":13},"Overview","architecture\u002Findex","public","i-lucide-network",{"title":10,"path":15,"stem":16,"children":17,"access":12,"icon":19},"\u002Farchitecture\u002Fkernel","architecture\u002F1.kernel\u002Findex",[18,20,24],{"title":10,"path":15,"stem":16,"access":12,"icon":19},"i-lucide-box",{"title":21,"path":22,"stem":23,"access":12},"Enclave","\u002Farchitecture\u002Fkernel\u002Fenclave","architecture\u002F1.kernel\u002Fenclave",{"title":25,"path":26,"stem":27,"access":12},"Forking the enclave","\u002Farchitecture\u002Fkernel\u002Fforking-the-enclave","architecture\u002F1.kernel\u002Fforking-the-enclave",{"title":29,"path":30,"stem":31,"access":12},"Ports","\u002Farchitecture\u002Fports","architecture\u002F2.ports",{"title":33,"path":34,"stem":35,"access":12},"Service layers","\u002Farchitecture\u002Fservice-layers","architecture\u002F3.service-layers",{"title":37,"path":38,"stem":39,"access":12},"Families","\u002Farchitecture\u002Ffamilies","architecture\u002F4.families",{"title":41,"path":42,"stem":43,"children":44},"Core","\u002Fcore","core",[45,47,50,53,56,88,97],{"title":10,"path":42,"stem":46,"access":12,"icon":19},"core\u002Findex",{"title":10,"path":48,"stem":49,"access":12},"\u002Fcore\u002F01-overview","core\u002F01-overview",{"title":10,"path":51,"stem":52,"access":12},"\u002Fcore\u002F05-stores","core\u002F05-stores",{"title":10,"path":54,"stem":55,"access":12},"\u002Fcore\u002F06-permissions-and-keyring","core\u002F06-permissions-and-keyring",{"title":10,"path":57,"stem":58,"children":59,"access":12},"\u002Fcore\u002Fnoydb","core\u002F2.noydb\u002Findex",[60,61,65,68,72,76,80,84],{"title":10,"path":57,"stem":58,"access":12},{"title":62,"path":63,"stem":64,"access":12},"Noydb","\u002Fcore\u002Fnoydb\u002Fmethods","core\u002F2.noydb\u002F1.methods",{"title":21,"path":66,"stem":67,"access":12},"\u002Fcore\u002Fnoydb\u002Fenclave","core\u002F2.noydb\u002F2.enclave",{"title":69,"path":70,"stem":71,"access":12},"Secret & keyring","\u002Fcore\u002Fnoydb\u002Fkeyring","core\u002F2.noydb\u002F3.keyring",{"title":73,"path":74,"stem":75,"access":12},"Authentication","\u002Fcore\u002Fnoydb\u002Fauthentication","core\u002F2.noydb\u002F4.authentication",{"title":77,"path":78,"stem":79,"access":12},"Auth recovery","\u002Fcore\u002Fnoydb\u002Frecovery","core\u002F2.noydb\u002F5.recovery",{"title":81,"path":82,"stem":83,"access":12},"Configuration","\u002Fcore\u002Fnoydb\u002Fconfiguration","core\u002F2.noydb\u002F6.configuration",{"title":85,"path":86,"stem":87,"access":12},"Strategies","\u002Fcore\u002Fnoydb\u002Fstrategies","core\u002F2.noydb\u002F7.strategies",{"title":10,"path":89,"stem":90,"children":91,"access":12},"\u002Fcore\u002Fvault","core\u002F3.vault\u002Findex",[92,93],{"title":10,"path":89,"stem":90,"access":12},{"title":94,"path":95,"stem":96,"access":12},"Vault","\u002Fcore\u002Fvault\u002Fmethods","core\u002F3.vault\u002F1.methods",{"title":10,"path":98,"stem":99,"children":100,"access":12},"\u002Fcore\u002Fcollection","core\u002F4.collection\u002Findex",[101,102,106,110],{"title":10,"path":98,"stem":99,"access":12},{"title":103,"path":104,"stem":105,"access":12},"Collection","\u002Fcore\u002Fcollection\u002Fmethods","core\u002F4.collection\u002F1.methods",{"title":107,"path":108,"stem":109,"access":12},"Querying","\u002Fcore\u002Fcollection\u002Fquerying","core\u002F4.collection\u002F2.querying",{"title":111,"path":112,"stem":113,"access":12},"Schema","\u002Fcore\u002Fcollection\u002Fschema","core\u002F4.collection\u002F3.schema",{"title":37,"path":115,"stem":116,"children":117},"\u002Ffamilies","families",[118,121,168,194,208,212,216,294,340],{"title":10,"path":115,"stem":119,"access":12,"icon":120},"families\u002Findex","i-lucide-plug",{"title":122,"path":123,"stem":124,"children":125,"access":12,"icon":127},"as-Exports","\u002Ffamilies\u002Fas","families\u002Fas\u002Findex",[126,128,132,136,140,144,148,152,156,160,164],{"title":122,"path":123,"stem":124,"access":12,"icon":127},"i-lucide-book-open",{"title":129,"path":130,"stem":131,"access":12},"aws-s3","\u002Ffamilies\u002Fas\u002Faws-s3","families\u002Fas\u002Faws-s3",{"title":133,"path":134,"stem":135,"access":12},"blob","\u002Ffamilies\u002Fas\u002Fblob","families\u002Fas\u002Fblob",{"title":137,"path":138,"stem":139,"access":12},"csv","\u002Ffamilies\u002Fas\u002Fcsv","families\u002Fas\u002Fcsv",{"title":141,"path":142,"stem":143,"access":12},"json","\u002Ffamilies\u002Fas\u002Fjson","families\u002Fas\u002Fjson",{"title":145,"path":146,"stem":147,"access":12},"ndjson","\u002Ffamilies\u002Fas\u002Fndjson","families\u002Fas\u002Fndjson",{"title":149,"path":150,"stem":151,"access":12},"noydb","\u002Ffamilies\u002Fas\u002Fnoydb","families\u002Fas\u002Fnoydb",{"title":153,"path":154,"stem":155,"access":12},"sql","\u002Ffamilies\u002Fas\u002Fsql","families\u002Fas\u002Fsql",{"title":157,"path":158,"stem":159,"access":12},"xlsx","\u002Ffamilies\u002Fas\u002Fxlsx","families\u002Fas\u002Fxlsx",{"title":161,"path":162,"stem":163,"access":12},"xml","\u002Ffamilies\u002Fas\u002Fxml","families\u002Fas\u002Fxml",{"title":165,"path":166,"stem":167,"access":12},"zip","\u002Ffamilies\u002Fas\u002Fzip","families\u002Fas\u002Fzip",{"title":169,"path":170,"stem":171,"children":172,"access":12,"icon":127},"at-Seals","\u002Ffamilies\u002Fat","families\u002Fat\u002Findex",[173,174,178,182,186,190],{"title":169,"path":170,"stem":171,"access":12,"icon":127},{"title":175,"path":176,"stem":177,"access":12},"aws-kms","\u002Ffamilies\u002Fat\u002Faws-kms","families\u002Fat\u002Faws-kms",{"title":179,"path":180,"stem":181,"access":12},"azure-keyvault","\u002Ffamilies\u002Fat\u002Fazure-keyvault","families\u002Fat\u002Fazure-keyvault",{"title":183,"path":184,"stem":185,"access":12},"env","\u002Ffamilies\u002Fat\u002Fenv","families\u002Fat\u002Fenv",{"title":187,"path":188,"stem":189,"access":12},"gcp-kms","\u002Ffamilies\u002Fat\u002Fgcp-kms","families\u002Fat\u002Fgcp-kms",{"title":191,"path":192,"stem":193,"access":12},"macos-keychain","\u002Ffamilies\u002Fat\u002Fmacos-keychain","families\u002Fat\u002Fmacos-keychain",{"title":195,"path":196,"stem":197,"children":198,"access":12,"icon":127},"by-Sessions","\u002Ffamilies\u002Fby","families\u002Fby\u002Findex",[199,200,204],{"title":195,"path":196,"stem":197,"access":12,"icon":127},{"title":201,"path":202,"stem":203,"access":12},"peer","\u002Ffamilies\u002Fby\u002Fpeer","families\u002Fby\u002Fpeer",{"title":205,"path":206,"stem":207,"access":12},"tabs","\u002Ffamilies\u002Fby\u002Ftabs","families\u002Fby\u002Ftabs",{"title":209,"path":210,"stem":211,"access":12},"Classifying a package","\u002Ffamilies\u002Fclassification","families\u002Fclassification",{"title":213,"path":214,"stem":215,"access":12},"Command-line tools","\u002Ffamilies\u002Fcli","families\u002Fcli",{"title":217,"path":218,"stem":219,"children":220,"access":12,"icon":127},"in-Frameworks","\u002Ffamilies\u002Fin","families\u002Fin\u002Findex",[221,222,226,230,234,238,242,246,250,254,258,262,266,270,274,278,282,286,290],{"title":217,"path":218,"stem":219,"access":12,"icon":127},{"title":223,"path":224,"stem":225,"access":12},"ai","\u002Ffamilies\u002Fin\u002Fai","families\u002Fin\u002Fai",{"title":227,"path":228,"stem":229,"access":12},"devtools","\u002Ffamilies\u002Fin\u002Fdevtools","families\u002Fin\u002Fdevtools",{"title":231,"path":232,"stem":233,"access":12},"devtools-tui","\u002Ffamilies\u002Fin\u002Fdevtools-tui","families\u002Fin\u002Fdevtools-tui",{"title":235,"path":236,"stem":237,"access":12},"liff","\u002Ffamilies\u002Fin\u002Fliff","families\u002Fin\u002Fliff",{"title":239,"path":240,"stem":241,"access":12},"nextjs","\u002Ffamilies\u002Fin\u002Fnextjs","families\u002Fin\u002Fnextjs",{"title":243,"path":244,"stem":245,"access":12},"nuxt","\u002Ffamilies\u002Fin\u002Fnuxt","families\u002Fin\u002Fnuxt",{"title":247,"path":248,"stem":249,"access":12},"pinia","\u002Ffamilies\u002Fin\u002Fpinia","families\u002Fin\u002Fpinia",{"title":251,"path":252,"stem":253,"access":12},"pwa","\u002Ffamilies\u002Fin\u002Fpwa","families\u002Fin\u002Fpwa",{"title":255,"path":256,"stem":257,"access":12},"react","\u002Ffamilies\u002Fin\u002Freact","families\u002Fin\u002Freact",{"title":259,"path":260,"stem":261,"access":12},"relay","\u002Ffamilies\u002Fin\u002Frelay","families\u002Fin\u002Frelay",{"title":263,"path":264,"stem":265,"access":12},"rest","\u002Ffamilies\u002Fin\u002Frest","families\u002Fin\u002Frest",{"title":267,"path":268,"stem":269,"access":12},"solid","\u002Ffamilies\u002Fin\u002Fsolid","families\u002Fin\u002Fsolid",{"title":271,"path":272,"stem":273,"access":12},"svelte","\u002Ffamilies\u002Fin\u002Fsvelte","families\u002Fin\u002Fsvelte",{"title":275,"path":276,"stem":277,"access":12},"tanstack-query","\u002Ffamilies\u002Fin\u002Ftanstack-query","families\u002Fin\u002Ftanstack-query",{"title":279,"path":280,"stem":281,"access":12},"tanstack-table","\u002Ffamilies\u002Fin\u002Ftanstack-table","families\u002Fin\u002Ftanstack-table",{"title":283,"path":284,"stem":285,"access":12},"vue","\u002Ffamilies\u002Fin\u002Fvue","families\u002Fin\u002Fvue",{"title":287,"path":288,"stem":289,"access":12},"yjs","\u002Ffamilies\u002Fin\u002Fyjs","families\u002Fin\u002Fyjs",{"title":291,"path":292,"stem":293,"access":12},"zustand","\u002Ffamilies\u002Fin\u002Fzustand","families\u002Fin\u002Fzustand",{"title":295,"path":296,"stem":297,"children":298,"access":12,"icon":127},"on-Auth","\u002Ffamilies\u002Fon","families\u002Fon\u002Findex",[299,300,304,308,312,316,320,324,328,332,336],{"title":295,"path":296,"stem":297,"access":12,"icon":127},{"title":301,"path":302,"stem":303,"access":12},"email-otp","\u002Ffamilies\u002Fon\u002Femail-otp","families\u002Fon\u002Femail-otp",{"title":305,"path":306,"stem":307,"access":12},"magic-link","\u002Ffamilies\u002Fon\u002Fmagic-link","families\u002Fon\u002Fmagic-link",{"title":309,"path":310,"stem":311,"access":12},"oidc","\u002Ffamilies\u002Fon\u002Foidc","families\u002Fon\u002Foidc",{"title":313,"path":314,"stem":315,"access":12},"password","\u002Ffamilies\u002Fon\u002Fpassword","families\u002Fon\u002Fpassword",{"title":317,"path":318,"stem":319,"access":12},"pin","\u002Ffamilies\u002Fon\u002Fpin","families\u002Fon\u002Fpin",{"title":321,"path":322,"stem":323,"access":12},"recovery","\u002Ffamilies\u002Fon\u002Frecovery","families\u002Fon\u002Frecovery",{"title":325,"path":326,"stem":327,"access":12},"shamir","\u002Ffamilies\u002Fon\u002Fshamir","families\u002Fon\u002Fshamir",{"title":329,"path":330,"stem":331,"access":12},"threat","\u002Ffamilies\u002Fon\u002Fthreat","families\u002Fon\u002Fthreat",{"title":333,"path":334,"stem":335,"access":12},"totp","\u002Ffamilies\u002Fon\u002Ftotp","families\u002Fon\u002Ftotp",{"title":337,"path":338,"stem":339,"access":12},"webauthn","\u002Ffamilies\u002Fon\u002Fwebauthn","families\u002Fon\u002Fwebauthn",{"title":341,"path":342,"stem":343,"children":344,"access":12,"icon":127},"to-Stores","\u002Ffamilies\u002Fto","families\u002Fto\u002Findex",[345,346,350,353,357,361,365,370,374,378,382,386,390,394,398,402,406,410,414,417,421,425,429,434,438,442],{"title":341,"path":342,"stem":343,"access":12,"icon":127},{"title":347,"path":348,"stem":349,"access":12},"aws-dynamo","\u002Ffamilies\u002Fto\u002Faws-dynamo","families\u002Fto\u002Faws-dynamo",{"title":129,"path":351,"stem":352,"access":12},"\u002Ffamilies\u002Fto\u002Faws-s3","families\u002Fto\u002Faws-s3",{"title":354,"path":355,"stem":356,"access":12},"browser-fs","\u002Ffamilies\u002Fto\u002Fbrowser-fs","families\u002Fto\u002Fbrowser-fs",{"title":358,"path":359,"stem":360,"access":12},"browser-idb","\u002Ffamilies\u002Fto\u002Fbrowser-idb","families\u002Fto\u002Fbrowser-idb",{"title":362,"path":363,"stem":364,"access":12},"browser-local","\u002Ffamilies\u002Fto\u002Fbrowser-local","families\u002Fto\u002Fbrowser-local",{"title":366,"path":367,"stem":368,"access":12,"icon":369},"Choosing a store","\u002Ffamilies\u002Fto\u002Fchoosing-a-store","families\u002Fto\u002Fchoosing-a-store","i-lucide-split",{"title":371,"path":372,"stem":373,"access":12},"cloudflare-d1","\u002Ffamilies\u002Fto\u002Fcloudflare-d1","families\u002Fto\u002Fcloudflare-d1",{"title":375,"path":376,"stem":377,"access":12},"cloudflare-r2","\u002Ffamilies\u002Fto\u002Fcloudflare-r2","families\u002Fto\u002Fcloudflare-r2",{"title":379,"path":380,"stem":381,"access":12},"drive","\u002Ffamilies\u002Fto\u002Fdrive","families\u002Fto\u002Fdrive",{"title":383,"path":384,"stem":385,"access":12},"file","\u002Ffamilies\u002Fto\u002Ffile","families\u002Fto\u002Ffile",{"title":387,"path":388,"stem":389,"access":12},"icloud","\u002Ffamilies\u002Fto\u002Ficloud","families\u002Fto\u002Ficloud",{"title":391,"path":392,"stem":393,"access":12},"memory","\u002Ffamilies\u002Fto\u002Fmemory","families\u002Fto\u002Fmemory",{"title":395,"path":396,"stem":397,"access":12},"meter","\u002Ffamilies\u002Fto\u002Fmeter","families\u002Fto\u002Fmeter",{"title":399,"path":400,"stem":401,"access":12},"mysql","\u002Ffamilies\u002Fto\u002Fmysql","families\u002Fto\u002Fmysql",{"title":403,"path":404,"stem":405,"access":12},"nfs","\u002Ffamilies\u002Fto\u002Fnfs","families\u002Fto\u002Fnfs",{"title":407,"path":408,"stem":409,"access":12},"postgres","\u002Ffamilies\u002Fto\u002Fpostgres","families\u002Fto\u002Fpostgres",{"title":411,"path":412,"stem":413,"access":12},"probe","\u002Ffamilies\u002Fto\u002Fprobe","families\u002Fto\u002Fprobe",{"title":263,"path":415,"stem":416,"access":12},"\u002Ffamilies\u002Fto\u002Frest","families\u002Fto\u002Frest",{"title":418,"path":419,"stem":420,"access":12},"smb","\u002Ffamilies\u002Fto\u002Fsmb","families\u002Fto\u002Fsmb",{"title":422,"path":423,"stem":424,"access":12},"sqlite","\u002Ffamilies\u002Fto\u002Fsqlite","families\u002Fto\u002Fsqlite",{"title":426,"path":427,"stem":428,"access":12},"ssh","\u002Ffamilies\u002Fto\u002Fssh","families\u002Fto\u002Fssh",{"title":430,"path":431,"stem":432,"access":12,"icon":433},"Store-locator descriptors","\u002Ffamilies\u002Fto\u002Fstore-locator","families\u002Fto\u002Fstore-locator","i-lucide-map-pin",{"title":435,"path":436,"stem":437,"access":12},"supabase","\u002Ffamilies\u002Fto\u002Fsupabase","families\u002Fto\u002Fsupabase",{"title":439,"path":440,"stem":441,"access":12},"turso","\u002Ffamilies\u002Fto\u002Fturso","families\u002Fto\u002Fturso",{"title":443,"path":444,"stem":445,"access":12},"webdav","\u002Ffamilies\u002Fto\u002Fwebdav","families\u002Fto\u002Fwebdav",{"title":447,"path":448,"stem":449,"children":450},"Faq","\u002Ffaq","faq",[451,454,458,462,466,470],{"title":10,"path":448,"stem":452,"access":12,"icon":453},"faq\u002Findex","i-lucide-circle-help",{"title":455,"path":456,"stem":457,"access":12},"Where can noy-db run?","\u002Ffaq\u002Fwhere-can-noy-db-run","faq\u002F1.where-can-noy-db-run",{"title":459,"path":460,"stem":461,"access":12},"Native mobile & PWA","\u002Ffaq\u002Fmobile-and-pwa","faq\u002F2.mobile-and-pwa",{"title":463,"path":464,"stem":465,"access":12},"Threat model","\u002Ffaq\u002Fthreat-model","faq\u002F3.threat-model",{"title":467,"path":468,"stem":469,"access":12},"Community & ecosystem","\u002Ffaq\u002Fcommunity-and-ecosystem","faq\u002F4.community-and-ecosystem",{"title":471,"path":472,"stem":473,"access":12},"Licensing","\u002Ffaq\u002Flicensing","faq\u002F5.licensing",{"title":475,"path":476,"stem":477,"children":478},"Glossary","\u002Fglossary","glossary",[479,482,486,490,494],{"title":10,"path":476,"stem":480,"access":12,"icon":481},"glossary\u002Findex","i-lucide-book-a",{"title":483,"path":484,"stem":485,"access":12},"Core vocabulary","\u002Fglossary\u002Fcore-vocabulary","glossary\u002Fcore-vocabulary",{"title":487,"path":488,"stem":489,"access":12},"Deletion vocabulary","\u002Fglossary\u002Fdeletion","glossary\u002Fdeletion",{"title":491,"path":492,"stem":493,"access":12},"Satellite collection vocabulary","\u002Fglossary\u002Fsatellite-collections","glossary\u002Fsatellite-collections",{"title":495,"path":496,"stem":497,"access":12},"Schema migration vocabulary","\u002Fglossary\u002Fschema-migration","glossary\u002Fschema-migration",{"title":499,"path":500,"stem":501,"children":502},"Recipes","\u002Frecipes","recipes",[503,506,510,514,518,522,526,530,534,538,542,546,550,554,558,562,567,571,575,580,584,588,592],{"title":10,"path":500,"stem":504,"access":12,"icon":505},"recipes\u002Findex","i-lucide-play",{"title":507,"path":508,"stem":509,"access":12},"Accounting app","\u002Frecipes\u002Faccounting-app","recipes\u002Faccounting-app",{"title":511,"path":512,"stem":513,"access":12},"Analytics app","\u002Frecipes\u002Fanalytics-app","recipes\u002Fanalytics-app",{"title":515,"path":516,"stem":517,"access":12},"Attestation verifier","\u002Frecipes\u002Fattestation-verifier","recipes\u002Fattestation-verifier",{"title":519,"path":520,"stem":521,"access":12},"AWS-KMS attestation","\u002Frecipes\u002Faws-kms-pdf-attestation","recipes\u002Faws-kms-pdf-attestation",{"title":523,"path":524,"stem":525,"access":12},"Browser durability","\u002Frecipes\u002Fbrowser-durability","recipes\u002Fbrowser-durability",{"title":527,"path":528,"stem":529,"access":12},"Production cloud store","\u002Frecipes\u002Fcloud-store","recipes\u002Fcloud-store",{"title":531,"path":532,"stem":533,"access":12},"Compose your own setup","\u002Frecipes\u002Fcompose-your-own","recipes\u002Fcompose-your-own",{"title":535,"path":536,"stem":537,"access":12},"Confidential HR records","\u002Frecipes\u002Fconfidential-hr","recipes\u002Fconfidential-hr",{"title":539,"path":540,"stem":541,"access":12},"Composing an echo secret","\u002Frecipes\u002Fecho-secret-enrollment","recipes\u002Fecho-secret-enrollment",{"title":543,"path":544,"stem":545,"access":12},"Email archive","\u002Frecipes\u002Femail-archive","recipes\u002Femail-archive",{"title":547,"path":548,"stem":549,"access":12},"Email archive — threads & revisions","\u002Frecipes\u002Femail-archive-threads-revisions","recipes\u002Femail-archive-threads-revisions",{"title":551,"path":552,"stem":553,"access":12},"Export & portability","\u002Frecipes\u002Fexport-portability","recipes\u002Fexport-portability",{"title":555,"path":556,"stem":557,"access":12},"Passwordless OIDC (AWS Cognito)","\u002Frecipes\u002Fpasswordless-oidc","recipes\u002Fpasswordless-oidc",{"title":559,"path":560,"stem":561,"access":12},"Personal notebook","\u002Frecipes\u002Fpersonal-notebook","recipes\u002Fpersonal-notebook",{"title":563,"path":564,"stem":565,"access":12,"icon":566},"Playgrounds","\u002Frecipes\u002Fplaygrounds","recipes\u002Fplaygrounds","i-lucide-gamepad-2",{"title":568,"path":569,"stem":570,"access":12},"React invoice app","\u002Frecipes\u002Freact-invoices","recipes\u002Freact-invoices",{"title":572,"path":573,"stem":574,"access":12},"Collaborative app","\u002Frecipes\u002Frealtime-crdt-app","recipes\u002Frealtime-crdt-app",{"title":576,"path":577,"stem":578,"access":12,"icon":579},"Run the showcases","\u002Frecipes\u002Frun-the-showcases","recipes\u002Frun-the-showcases","i-lucide-flask-conical",{"title":581,"path":582,"stem":583,"access":12},"Search & RAG","\u002Frecipes\u002Fsearch-rag","recipes\u002Fsearch-rag",{"title":585,"path":586,"stem":587,"access":12},"Team vault topology","\u002Frecipes\u002Fteam-vault-topology","recipes\u002Fteam-vault-topology",{"title":589,"path":590,"stem":591,"access":12},"Unlock ceremonies","\u002Frecipes\u002Funlock-ceremonies","recipes\u002Funlock-ceremonies",{"title":593,"path":594,"stem":595,"access":12},"User preferences","\u002Frecipes\u002Fuser-preferences","recipes\u002Fuser-preferences",{"title":597,"path":598,"stem":599,"children":600},"Services","\u002Fservices","services",[601,604,608,612,616,620,624,628,632,636,640,644,648,652,656,660,664,668,672,676,680,684,688,692,696,700,704,710,714,718,722,726,730,734,738,742,746,750,755,759,763,767,771,775,779,783,787,791,795,799,803,807,811,815,819,823,827,831,835,839,843,847,851,855,859,863,867,871,875,879,883,887,891,895,899],{"title":10,"path":598,"stem":602,"access":12,"icon":603},"services\u002Findex","i-lucide-layers",{"title":605,"path":606,"stem":607,"access":12},"archive","\u002Fservices\u002Farchive","services\u002Farchive",{"title":609,"path":610,"stem":611,"access":12},"attestation","\u002Fservices\u002Fattestation","services\u002Fattestation",{"title":613,"path":614,"stem":615,"access":12},"auth-introspection","\u002Fservices\u002Fauth-introspection","services\u002Fauth-introspection",{"title":617,"path":618,"stem":619,"access":12},"auth-landscape","\u002Fservices\u002Fauth-landscape","services\u002Fauth-landscape",{"title":621,"path":622,"stem":623,"access":12},"blobs","\u002Fservices\u002Fblobs","services\u002Fblobs",{"title":625,"path":626,"stem":627,"access":12},"broker","\u002Fservices\u002Fbroker","services\u002Fbroker",{"title":629,"path":630,"stem":631,"access":12},"bundle","\u002Fservices\u002Fbundle","services\u002Fbundle",{"title":633,"path":634,"stem":635,"access":12},"classified","\u002Fservices\u002Fclassified","services\u002Fclassified",{"title":637,"path":638,"stem":639,"access":12},"computed","\u002Fservices\u002Fcomputed","services\u002Fcomputed",{"title":641,"path":642,"stem":643,"access":12},"consent","\u002Fservices\u002Fconsent","services\u002Fconsent",{"title":645,"path":646,"stem":647,"access":12},"cover","\u002Fservices\u002Fcover","services\u002Fcover",{"title":649,"path":650,"stem":651,"access":12},"coverage","\u002Fservices\u002Fcoverage","services\u002Fcoverage",{"title":653,"path":654,"stem":655,"access":12},"crdt","\u002Fservices\u002Fcrdt","services\u002Fcrdt",{"title":657,"path":658,"stem":659,"access":12},"cross-join","\u002Fservices\u002Fcross-join","services\u002Fcross-join",{"title":661,"path":662,"stem":663,"access":12},"custody","\u002Fservices\u002Fcustody","services\u002Fcustody",{"title":665,"path":666,"stem":667,"access":12},"derivations","\u002Fservices\u002Fderivations","services\u002Fderivations",{"title":669,"path":670,"stem":671,"access":12},"directory","\u002Fservices\u002Fdirectory","services\u002Fdirectory",{"title":673,"path":674,"stem":675,"access":12},"search — AI","\u002Fservices\u002Fembeddings","services\u002Fembeddings",{"title":677,"path":678,"stem":679,"access":12},"Field metadata","\u002Fservices\u002Ffield-metadata","services\u002Ffield-metadata",{"title":681,"path":682,"stem":683,"access":12},"Foreign refs","\u002Fservices\u002Fforeign-refs","services\u002Fforeign-refs",{"title":685,"path":686,"stem":687,"access":12},"forget","\u002Fservices\u002Fforget","services\u002Fforget",{"title":689,"path":690,"stem":691,"access":12},"governance","\u002Fservices\u002Fgovernance","services\u002Fgovernance",{"title":693,"path":694,"stem":695,"access":12},"guards","\u002Fservices\u002Fguards","services\u002Fguards",{"title":697,"path":698,"stem":699,"access":12},"history","\u002Fservices\u002Fhistory","services\u002Fhistory",{"title":701,"path":702,"stem":703,"access":12},"i18n","\u002Fservices\u002Fi18n","services\u002Fi18n",{"title":705,"path":706,"stem":707,"children":708,"access":12},"indexing","\u002Fservices\u002Findexing","services\u002Findexing",[709],{"title":705,"path":706,"stem":707,"access":12},{"title":711,"path":712,"stem":713,"access":12},"introspection","\u002Fservices\u002Fintrospection","services\u002Fintrospection",{"title":715,"path":716,"stem":717,"access":12},"joins","\u002Fservices\u002Fjoins","services\u002Fjoins",{"title":719,"path":720,"stem":721,"access":12},"lazy","\u002Fservices\u002Flazy","services\u002Flazy",{"title":723,"path":724,"stem":725,"access":12},"links","\u002Fservices\u002Flinks","services\u002Flinks",{"title":727,"path":728,"stem":729,"access":12},"live","\u002Fservices\u002Flive","services\u002Flive",{"title":731,"path":732,"stem":733,"access":12},"lookup","\u002Fservices\u002Flookup","services\u002Flookup",{"title":735,"path":736,"stem":737,"access":12},"manifest","\u002Fservices\u002Fmanifest","services\u002Fmanifest",{"title":739,"path":740,"stem":741,"access":12},"materialized-views","\u002Fservices\u002Fmaterialized-views","services\u002Fmaterialized-views",{"title":743,"path":744,"stem":745,"access":12},"Metadata ladder","\u002Fservices\u002Fmetadata-ladder","services\u002Fmetadata-ladder",{"title":747,"path":748,"stem":749,"access":12},"Metadata riders","\u002Fservices\u002Fmetadata-riders","services\u002Fmetadata-riders",{"title":751,"path":752,"stem":753,"access":12,"badge":754},"metrics","\u002Fservices\u002Fmetrics","services\u002Fmetrics","Planned",{"title":756,"path":757,"stem":758,"access":12,"badge":754},"migrations","\u002Fservices\u002Fmigrations","services\u002Fmigrations",{"title":760,"path":761,"stem":762,"access":12},"money","\u002Fservices\u002Fmoney","services\u002Fmoney",{"title":764,"path":765,"stem":766,"access":12},"numbering","\u002Fservices\u002Fnumbering","services\u002Fnumbering",{"title":768,"path":769,"stem":770,"access":12},"overlay-views","\u002Fservices\u002Foverlay-views","services\u002Foverlay-views",{"title":772,"path":773,"stem":774,"access":12,"badge":754},"partitioning","\u002Fservices\u002Fpartitioning","services\u002Fpartitioning",{"title":776,"path":777,"stem":778,"access":12},"periods","\u002Fservices\u002Fperiods","services\u002Fperiods",{"title":780,"path":781,"stem":782,"access":12},"persisted-schemas","\u002Fservices\u002Fpersisted-schemas","services\u002Fpersisted-schemas",{"title":784,"path":785,"stem":786,"access":12},"plaintext-bypass","\u002Fservices\u002Fplaintext-bypass","services\u002Fplaintext-bypass",{"title":788,"path":789,"stem":790,"access":12},"pod-redirect","\u002Fservices\u002Fpod-redirect","services\u002Fpod-redirect",{"title":792,"path":793,"stem":794,"access":12},"pod-signature","\u002Fservices\u002Fpod-signature","services\u002Fpod-signature",{"title":796,"path":797,"stem":798,"access":12},"policy","\u002Fservices\u002Fpolicy","services\u002Fpolicy",{"title":800,"path":801,"stem":802,"access":12},"portability","\u002Fservices\u002Fportability","services\u002Fportability",{"title":804,"path":805,"stem":806,"access":12},"reduce","\u002Fservices\u002Freduce","services\u002Freduce",{"title":808,"path":809,"stem":810,"access":12},"routing","\u002Fservices\u002Frouting","services\u002Frouting",{"title":812,"path":813,"stem":814,"access":12},"satellites","\u002Fservices\u002Fsatellites","services\u002Fsatellites",{"title":816,"path":817,"stem":818,"access":12},"schema-identifiers","\u002Fservices\u002Fschema-identifiers","services\u002Fschema-identifiers",{"title":820,"path":821,"stem":822,"access":12},"schema-update","\u002Fservices\u002Fschema-update","services\u002Fschema-update",{"title":824,"path":825,"stem":826,"access":12},"sealed-record","\u002Fservices\u002Fsealed-record","services\u002Fsealed-record",{"title":828,"path":829,"stem":830,"access":12},"sealing provider id","\u002Fservices\u002Fsealing-pid-stability","services\u002Fsealing-pid-stability",{"title":832,"path":833,"stem":834,"access":12},"search — full-text","\u002Fservices\u002Fsearch","services\u002Fsearch",{"title":836,"path":837,"stem":838,"access":12},"sequence","\u002Fservices\u002Fsequence","services\u002Fsequence",{"title":840,"path":841,"stem":842,"access":12},"session","\u002Fservices\u002Fsession","services\u002Fsession",{"title":844,"path":845,"stem":846,"access":12},"session-tiers","\u002Fservices\u002Fsession-tiers","services\u002Fsession-tiers",{"title":848,"path":849,"stem":850,"access":12},"shadow","\u002Fservices\u002Fshadow","services\u002Fshadow",{"title":852,"path":853,"stem":854,"access":12},"share-link","\u002Fservices\u002Fshare-link","services\u002Fshare-link",{"title":856,"path":857,"stem":858,"access":12},"snapshots","\u002Fservices\u002Fsnapshots","services\u002Fsnapshots",{"title":860,"path":861,"stem":862,"access":12},"store capabilities","\u002Fservices\u002Fstorage-capability-matrix","services\u002Fstorage-capability-matrix",{"title":864,"path":865,"stem":866,"access":12},"sync","\u002Fservices\u002Fsync","services\u002Fsync",{"title":868,"path":869,"stem":870,"access":12},"team","\u002Fservices\u002Fteam","services\u002Fteam",{"title":872,"path":873,"stem":874,"access":12},"tiers","\u002Fservices\u002Ftiers","services\u002Ftiers",{"title":876,"path":877,"stem":878,"access":12},"transactions","\u002Fservices\u002Ftransactions","services\u002Ftransactions",{"title":880,"path":881,"stem":882,"access":12},"partitions","\u002Fservices\u002Ftransferable-partitions","services\u002Ftransferable-partitions",{"title":884,"path":885,"stem":886,"access":12},"user-envelope","\u002Fservices\u002Fuser-envelope","services\u002Fuser-envelope",{"title":888,"path":889,"stem":890,"access":12,"badge":754},"validation","\u002Fservices\u002Fvalidation","services\u002Fvalidation",{"title":892,"path":893,"stem":894,"access":12},"vault-head","\u002Fservices\u002Fvault-head","services\u002Fvault-head",{"title":896,"path":897,"stem":898,"access":12},"via","\u002Fservices\u002Fvia","services\u002Fvia",{"title":900,"path":901,"stem":902,"access":12},"withdrawal","\u002Fservices\u002Fwithdrawal","services\u002Fwithdrawal",{"title":904,"path":905,"stem":906,"children":907},"Start","\u002Fstart","start",[908,911,915,919,923],{"title":10,"path":905,"stem":909,"access":12,"icon":910},"start\u002Findex","i-lucide-flag",{"title":912,"path":913,"stem":914,"access":12},"Install","\u002Fstart\u002Finstall","start\u002F1.install",{"title":916,"path":917,"stem":918,"access":12},"Your first vault","\u002Fstart\u002Ffirst-vault","start\u002F2.first-vault",{"title":920,"path":921,"stem":922,"access":12},"Your first service","\u002Fstart\u002Ffirst-service","start\u002F3.first-service",{"title":924,"path":925,"stem":926,"access":12},"See the ciphertext","\u002Fstart\u002Fsee-the-ciphertext","start\u002F4.see-the-ciphertext",{"id":928,"title":735,"access":12,"apiToc":929,"body":930,"category":1515,"description":1516,"extension":1517,"meta":1518,"navigation":1515,"nest":1519,"path":736,"seo":1520,"sinceVersion":1515,"status":1521,"stem":737,"subtitle":1515,"tier":1522,"tocExternal":1515,"__hash__":1523},"docs\u002Fservices\u002Fmanifest.md",false,{"type":931,"value":932,"toc":1501},"minimark",[933,936,940,945,954,979,993,1008,1012,1029,1033,1040,1093,1097,1102,1108,1234,1248,1254,1258,1364,1373,1377,1394,1398,1409,1412,1423,1427,1443,1449,1453,1463,1474,1481,1485,1497],[934,935,735],"h1",{"id":735},[937,938],"service-meta",{":rows":939},"[{\"label\":\"Subpath\",\"value\":\"`@noy-db\u002Fhub\u002Fpod` (also re-exported from the root barrel)\"},{\"label\":\"Factory\",\"value\":\"none — direct named imports\"},{\"label\":\"Cluster\",\"value\":\"F — Snapshot & Portability\"}]",[941,942,944],"h2",{"id":943},"what-it-does","What it does",[946,947,948,949,953],"p",{},"This service gives a pod one place to answer ",[950,951,952],"em",{},"\"what schema generation is this pod at, and does each collection's stored schema still match what it claims?\""," — without opening every collection.",[946,955,956,957,961,962,966,967,970,971,974,975,978],{},"It stores a single ",[958,959,960],"strong",{},"schema manifest"," record in a reserved ",[963,964,965],"code",{},"_manifest"," collection. The manifest is an ",[958,968,969],{},"index, not a copy",": for each collection it holds the schema-fence generation, a SHA-256 of that collection's canonicalised JSON Schema, and the stable field ids, but never the schema body itself. The bodies stay at ",[963,972,973],{},"_schemas\u002F\u003Ccollection>",", each encrypted under ",[958,976,977],{},"that collection's own DEK",". Inlining them would either leak one collection's schema to a principal scoped to a different one, or force the manifest onto a shared key it has no business holding — so the manifest carries metadata and leaves bodies where they are.",[946,980,981,982,985,986,989,990,992],{},"An ",[963,983,984],{},"aggregateHash"," — ",[963,987,988],{},"sha256"," over the canonical JSON of the whole per-collection map — binds the index as a unit. Canonical JSON sorts keys at every depth, so the hash does not depend on insertion order: any change to any entry changes ",[963,991,984],{}," too.",[946,994,995,996,999,1000,1003,1004,1007],{},"The manifest is a ",[958,997,998],{},"derivable cache, not a source of truth",". ",[963,1001,1002],{},"deriveSchemaManifest()"," is a pure projection of the fence generation plus the ",[963,1005,1006],{},"_schemas"," entries the caller can decrypt, so re-deriving against unchanged state always produces the same manifest — which is what makes dump → restore → re-derive match the original with no restore-side special-casing.",[941,1009,1011],{"id":1010},"when-you-need-it","When you need it",[1013,1014,1015,1023,1026],"ul",{},[1016,1017,1018,1019,1022],"li",{},"Opening a ",[963,1020,1021],{},".noydb"," pod and needing to know, before touching data, whether the reader's code is behind the pod's schema generation",[1016,1024,1025],{},"Verifying that a collection's stored schema still matches the content hash the pod recorded",[1016,1027,1028],{},"Carrying stable field identity (from the schema-identifiers work) across a pod boundary",[941,1030,1032],{"id":1031},"opt-in","Opt in",[946,1034,1035,1036,1039],{},"No ",[963,1037,1038],{},"with*()"," factory — the surface tree-shakes through direct named imports:",[1041,1042,1047],"pre",{"className":1043,"code":1044,"language":1045,"meta":1046,"style":1046},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { open, deriveSchemaManifest, MANIFEST_COLLECTION } from '@noy-db\u002Fhub\u002Fpod'\n","ts","",[963,1048,1049],{"__ignoreMap":1046},[1050,1051,1054,1058,1062,1066,1069,1072,1074,1077,1080,1083,1086,1090],"span",{"class":1052,"line":1053},"line",1,[1050,1055,1057],{"class":1056},"s7zQu","import",[1050,1059,1061],{"class":1060},"sMK4o"," {",[1050,1063,1065],{"class":1064},"sTEyZ"," open",[1050,1067,1068],{"class":1060},",",[1050,1070,1071],{"class":1064}," deriveSchemaManifest",[1050,1073,1068],{"class":1060},[1050,1075,1076],{"class":1064}," MANIFEST_COLLECTION",[1050,1078,1079],{"class":1060}," }",[1050,1081,1082],{"class":1056}," from",[1050,1084,1085],{"class":1060}," '",[1050,1087,1089],{"class":1088},"sfazB","@noy-db\u002Fhub\u002Fpod",[1050,1091,1092],{"class":1060},"'\n",[941,1094,1096],{"id":1095},"usage","Usage",[1098,1099,1101],"h3",{"id":1100},"opening-a-pod-through-the-full-read-path","Opening a pod through the full read path",[946,1103,1104,1107],{},[963,1105,1106],{},"open()"," composes the whole sequence: read the header → optionally verify its signature → unlock and restore → re-derive the schema manifest → check the generation fence → hand back the vault.",[1041,1109,1111],{"className":1043,"code":1110,"language":1045,"meta":1046,"style":1046},"import { open } from '@noy-db\u002Fhub'\n\nconst { db, vault } = await open(podBytes, {\n  user: 'alice',\n  secret: 'a-strong-secret',\n  trustedKeys,          \u002F\u002F omit to skip signature verification\n})\n",[963,1112,1113,1132,1139,1176,1197,1214,1226],{"__ignoreMap":1046},[1050,1114,1115,1117,1119,1121,1123,1125,1127,1130],{"class":1052,"line":1053},[1050,1116,1057],{"class":1056},[1050,1118,1061],{"class":1060},[1050,1120,1065],{"class":1064},[1050,1122,1079],{"class":1060},[1050,1124,1082],{"class":1056},[1050,1126,1085],{"class":1060},[1050,1128,1129],{"class":1088},"@noy-db\u002Fhub",[1050,1131,1092],{"class":1060},[1050,1133,1135],{"class":1052,"line":1134},2,[1050,1136,1138],{"emptyLinePlaceholder":1137},true,"\n",[1050,1140,1142,1146,1148,1151,1153,1156,1159,1162,1165,1168,1171,1173],{"class":1052,"line":1141},3,[1050,1143,1145],{"class":1144},"spNyl","const",[1050,1147,1061],{"class":1060},[1050,1149,1150],{"class":1064}," db",[1050,1152,1068],{"class":1060},[1050,1154,1155],{"class":1064}," vault ",[1050,1157,1158],{"class":1060},"}",[1050,1160,1161],{"class":1060}," =",[1050,1163,1164],{"class":1056}," await",[1050,1166,1065],{"class":1167},"s2Zo4",[1050,1169,1170],{"class":1064},"(podBytes",[1050,1172,1068],{"class":1060},[1050,1174,1175],{"class":1060}," {\n",[1050,1177,1179,1183,1186,1188,1191,1194],{"class":1052,"line":1178},4,[1050,1180,1182],{"class":1181},"swJcz","  user",[1050,1184,1185],{"class":1060},":",[1050,1187,1085],{"class":1060},[1050,1189,1190],{"class":1088},"alice",[1050,1192,1193],{"class":1060},"'",[1050,1195,1196],{"class":1060},",\n",[1050,1198,1200,1203,1205,1207,1210,1212],{"class":1052,"line":1199},5,[1050,1201,1202],{"class":1181},"  secret",[1050,1204,1185],{"class":1060},[1050,1206,1085],{"class":1060},[1050,1208,1209],{"class":1088},"a-strong-secret",[1050,1211,1193],{"class":1060},[1050,1213,1196],{"class":1060},[1050,1215,1217,1220,1222],{"class":1052,"line":1216},6,[1050,1218,1219],{"class":1064},"  trustedKeys",[1050,1221,1068],{"class":1060},[1050,1223,1225],{"class":1224},"sHwdD","          \u002F\u002F omit to skip signature verification\n",[1050,1227,1229,1231],{"class":1052,"line":1228},7,[1050,1230,1158],{"class":1060},[1050,1232,1233],{"class":1064},")\n",[946,1235,1236,1237,1239,1240,1243,1244,1247],{},"If the pod was written by a newer schema generation than the opening code understands, ",[963,1238,1106],{}," throws ",[963,1241,1242],{},"MigrationRequiredError"," rather than reading data under the wrong assumptions. A caller that knowingly wants to proceed passes ",[963,1245,1246],{},"allowGenerationAhead: true",".",[946,1249,1250,1251,1253],{},"A pod written before this service existed opens normally — its manifest is simply re-derived from ",[963,1252,1006],{}," on the fly.",[1098,1255,1257],{"id":1256},"reading-the-manifest-directly","Reading the manifest directly",[1041,1259,1261],{"className":1043,"code":1260,"language":1045,"meta":1046,"style":1046},"import { deriveSchemaManifest } from '@noy-db\u002Fhub\u002Fpod'\n\nconst { manifest, undecodableCollections } = await deriveSchemaManifest(store, 'acme', lookupDEK)\n\nmanifest.generation        \u002F\u002F fence generation at derivation time\nmanifest.collections       \u002F\u002F per-collection { generation, contentHash, fieldIds? }\nmanifest.aggregateHash     \u002F\u002F binds the whole index\n",[963,1262,1263,1281,1285,1324,1328,1340,1352],{"__ignoreMap":1046},[1050,1264,1265,1267,1269,1271,1273,1275,1277,1279],{"class":1052,"line":1053},[1050,1266,1057],{"class":1056},[1050,1268,1061],{"class":1060},[1050,1270,1071],{"class":1064},[1050,1272,1079],{"class":1060},[1050,1274,1082],{"class":1056},[1050,1276,1085],{"class":1060},[1050,1278,1089],{"class":1088},[1050,1280,1092],{"class":1060},[1050,1282,1283],{"class":1052,"line":1134},[1050,1284,1138],{"emptyLinePlaceholder":1137},[1050,1286,1287,1289,1291,1294,1296,1299,1301,1303,1305,1307,1310,1312,1314,1317,1319,1321],{"class":1052,"line":1141},[1050,1288,1145],{"class":1144},[1050,1290,1061],{"class":1060},[1050,1292,1293],{"class":1064}," manifest",[1050,1295,1068],{"class":1060},[1050,1297,1298],{"class":1064}," undecodableCollections ",[1050,1300,1158],{"class":1060},[1050,1302,1161],{"class":1060},[1050,1304,1164],{"class":1056},[1050,1306,1071],{"class":1167},[1050,1308,1309],{"class":1064},"(store",[1050,1311,1068],{"class":1060},[1050,1313,1085],{"class":1060},[1050,1315,1316],{"class":1088},"acme",[1050,1318,1193],{"class":1060},[1050,1320,1068],{"class":1060},[1050,1322,1323],{"class":1064}," lookupDEK)\n",[1050,1325,1326],{"class":1052,"line":1178},[1050,1327,1138],{"emptyLinePlaceholder":1137},[1050,1329,1330,1332,1334,1337],{"class":1052,"line":1199},[1050,1331,735],{"class":1064},[1050,1333,1247],{"class":1060},[1050,1335,1336],{"class":1064},"generation        ",[1050,1338,1339],{"class":1224},"\u002F\u002F fence generation at derivation time\n",[1050,1341,1342,1344,1346,1349],{"class":1052,"line":1216},[1050,1343,735],{"class":1064},[1050,1345,1247],{"class":1060},[1050,1347,1348],{"class":1064},"collections       ",[1050,1350,1351],{"class":1224},"\u002F\u002F per-collection { generation, contentHash, fieldIds? }\n",[1050,1353,1354,1356,1358,1361],{"class":1052,"line":1228},[1050,1355,735],{"class":1064},[1050,1357,1247],{"class":1060},[1050,1359,1360],{"class":1064},"aggregateHash     ",[1050,1362,1363],{"class":1224},"\u002F\u002F binds the whole index\n",[946,1365,1366,1369,1370,1372],{},[963,1367,1368],{},"undecodableCollections"," lists collections that exist in ",[963,1371,1006],{}," but which this principal cannot decrypt — see below.",[941,1374,1376],{"id":1375},"reserved-collection","Reserved collection",[946,1378,1379,1381,1382,1385,1386,1389,1390,1393],{},[963,1380,965],{}," is reserved: ",[963,1383,1384],{},"vault.collection('_manifest')"," is refused, even for the owner. Records inside are keyed by manifest ",[950,1387,1388],{},"kind","; today only ",[963,1391,1392],{},"schema"," exists. Like other reserved collections, it travels inside a pod dump.",[941,1395,1397],{"id":1396},"concurrency-refuse-dont-merge","Concurrency: refuse, don't merge",[946,1399,1400,1401,1404,1405,1408],{},"Direct manifest edits use ",[958,1402,1403],{},"strict CAS — refuse, not retry",". If the expected version does not match, the write throws ",[963,1406,1407],{},"ManifestConflictError",". This is the one writer in the hub that behaves this way; every other reserved-collection writer retries on conflict.",[946,1410,1411],{},"The divergence is deliberate. A manifest write encodes a specific point-in-time claim about the pod's whole schema generation and content-hash set. Two concurrent direct edits must be surfaced, never silently merged — a caller that lost the race needs to re-derive against fresh state and decide, not have a stale claim quietly re-applied on top of someone else's.",[946,1413,1414,1415,1418,1419,1422],{},"The sync path that runs after a schema write is different: it is a ",[950,1416,1417],{},"re-derivation triggered by a write that already landed",", so it is allowed to retry, and it loops until the manifest provably converges. That matters when several collections are declared in one ",[963,1420,1421],{},"openVault()"," call and their schema writes race each other.",[941,1424,1426],{"id":1425},"scoped-principals-see-less","Scoped principals see less",[946,1428,1429,1430,1432,1433,1435,1436,1439,1440,1442],{},"A collection-scoped grantee can decrypt ",[963,1431,965],{}," but not a sibling collection's ",[963,1434,1006],{}," entry. When that happens, the derivation reports the collections it could not read, and the sync path ",[958,1437,1438],{},"skips entirely"," — no compare, no write. Writing a manifest derived from a partial view would drop the invisible siblings and assert an ",[963,1441,984],{}," over entries it never verified.",[946,1444,1445,1446,1448],{},"This is safe because the source of truth was already updated by the principal's own declare, ",[963,1447,1106],{}," always re-derives rather than trusting the cache, and the next fully-visible principal's declare refreshes it.",[941,1450,1452],{"id":1451},"disclosure-surface","Disclosure surface",[946,1454,1455,1456,1458,1459,1462],{},"Worth stating plainly: ",[963,1457,965],{}," has ",[958,1460,1461],{},"one DEK for the whole pod",", not one per collection, and the system-prefix propagation rule wraps it into every granted principal's keyring regardless of their permission scope.",[946,1464,1465,1466,1469,1470,1473],{},"So any vault principal, however narrowly scoped, can decrypt the entire index — every collection name, every field name, every content hash and generation, including for collections they have no data access to. A principal scoped to ",[963,1467,1468],{},"invoices"," can still learn that a ",[963,1471,1472],{},"salaries"," collection exists and what its fields are called.",[946,1475,1476,1477,1480],{},"Field ",[950,1478,1479],{},"values"," are never exposed. But collection and field naming conventions are themselves sensitive in some domains, and this is an accepted consequence of the index design rather than an oversight. Choose names accordingly.",[941,1482,1484],{"id":1483},"availability","Availability",[946,1486,1487,1488,1490,1491,1493,1494,1496],{},"Not opted into: nothing writes ",[963,1489,965],{},", and a pod simply has no manifest record — ",[963,1492,1106],{}," re-derives from ",[963,1495,1006],{}," when it needs one.",[1498,1499,1500],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":1046,"searchDepth":1141,"depth":1141,"links":1502},[1503,1504,1505,1506,1510,1511,1512,1513,1514],{"id":943,"depth":1134,"text":944},{"id":1010,"depth":1134,"text":1011},{"id":1031,"depth":1134,"text":1032},{"id":1095,"depth":1134,"text":1096,"children":1507},[1508,1509],{"id":1100,"depth":1141,"text":1101},{"id":1256,"depth":1141,"text":1257},{"id":1375,"depth":1134,"text":1376},{"id":1396,"depth":1134,"text":1397},{"id":1425,"depth":1134,"text":1426},{"id":1451,"depth":1134,"text":1452},{"id":1483,"depth":1134,"text":1484},null,"The pod-wide schema manifest — an encrypted index of every collection's schema generation, content hash and field ids, plus the open() read path.","md",{},"pod",{"title":735,"description":1516},"experimental","advanced","AhJSU67uPl9nUywd3CDfUe8YZdSsAl43JbyDXoc3L04",{"data":1525,"body":1526},{},{"type":1527,"children":1528},"root",[1529],{"type":1530,"tag":946,"props":1531,"children":1532},"element",{},[1533],{"type":1534,"value":1535},"text","none — direct named imports",{"data":1537,"body":1538},{},{"type":1527,"children":1539},[1540],{"type":1530,"tag":946,"props":1541,"children":1542},{},[1543,1548],{"type":1530,"tag":963,"props":1544,"children":1546},{"className":1545},[],[1547],{"type":1534,"value":1089},{"type":1534,"value":1549}," (also re-exported from the root barrel)",{"data":1551,"body":1552},{},{"type":1527,"children":1553},[1554],{"type":1530,"tag":946,"props":1555,"children":1556},{},[1557],{"type":1534,"value":1558},"F — Snapshot & Portability",1791896586244]