[{"data":1,"prerenderedAt":2383},["ShallowReactive",2],{"docs-nav":3,"doc-\u002Fdocs\u002Fmulti-tenancy":79,"content-query-F3sKItFp0t":1354},[4,10,15,19,23,28,34,38,43,47,52,57,61,66,70,74],{"_path":5,"title":6,"description":7,"order":8,"category":9},"\u002Fdocs\u002Fapi-reference","API Reference","Overview of the Vaultaris REST API — endpoints, authentication, response conventions, and rate limiting.",1,"Reference",{"_path":11,"title":12,"description":13,"order":14,"category":9},"\u002Fdocs\u002Farchitecture","Architecture","System design overview — components, request lifecycle, background workers, and data flow in Vaultaris.",4,{"_path":16,"title":17,"description":18,"order":8,"category":17},"\u002Fdocs\u002Fconcepts","Core Concepts","Understand the building blocks of Vaultaris — tenants, users, roles, groups, applications, sessions, and the security primitives that connect them.",{"_path":20,"title":21,"description":22,"order":8,"category":21},"\u002Fdocs\u002Fconfiguration","Configuration","Complete reference for all Vaultaris environment variables.",{"_path":24,"title":25,"description":26,"order":8,"category":27},"\u002Fdocs\u002Fdeployment","Deployment Guide","Deploy Vaultaris to production using Docker Compose, bare metal, or a managed container platform.","Deployment",{"_path":29,"title":30,"description":31,"order":32,"category":33},"\u002Fdocs\u002Finstallation","Installation","Install Vaultaris using Docker, a pre-built binary, or by compiling from source.",3,"Getting Started",{"_path":35,"title":36,"description":37,"order":8,"category":33},"\u002Fdocs\u002Fintroduction","Introduction","Vaultaris is an open-source, enterprise-grade Identity and Access Management platform written in Rust — a self-hostable alternative to Keycloak and Auth0.",{"_path":39,"title":40,"description":41,"order":42,"category":27},"\u002Fdocs\u002Fkubernetes","Kubernetes","Deploy Vaultaris on Kubernetes using the official Helm chart or plain manifests.",2,{"_path":44,"title":45,"description":46,"order":42,"category":17},"\u002Fdocs\u002Fmulti-tenancy","Multi-Tenancy","How Vaultaris isolates organizations, supports SaaS use cases, and manages license-driven resource freezing.",{"_path":48,"title":49,"description":50,"order":8,"category":51},"\u002Fdocs\u002Foauth-oidc","OAuth 2.0 & OpenID Connect","How to integrate Vaultaris as an authorization server — authorization code, client credentials, password flows, DPoP sender-constrained tokens, and hosted login.","Authentication & Authorization",{"_path":53,"title":54,"description":55,"order":8,"category":56},"\u002Fdocs\u002Fplugins","Plugin Development","Extend Vaultaris with type-safe native Rust plugins.","Plugins",{"_path":58,"title":59,"description":60,"order":42,"category":33},"\u002Fdocs\u002Fquickstart","Quickstart","Run Vaultaris locally in under five minutes using Docker Compose.",{"_path":62,"title":63,"description":64,"order":42,"category":65},"\u002Fdocs\u002Fsdk-nodejs","Node.js SDK","Use the vaultaris-sdk package to integrate Vaultaris into your Node.js or TypeScript applications. Includes transparent DPoP support.","SDKs",{"_path":67,"title":68,"description":69,"order":8,"category":65},"\u002Fdocs\u002Fsdk-rust","Rust SDK","Use the vaultaris-sdk crate to interact with Vaultaris from your Rust applications. Includes transparent DPoP support.",{"_path":71,"title":72,"description":73,"order":32,"category":9},"\u002Fdocs\u002Fsecurity","Security","Security architecture, cryptographic choices, and hardening recommendations for Vaultaris.",{"_path":75,"title":76,"description":77,"order":78,"category":51},"\u002Fdocs\u002Fwebauthn","WebAuthn \u002F Passkeys \u002F FIDO2","Complete guide to integrating WebAuthn passwordless authentication and passkeys with Vaultaris.",5,{"_path":44,"_dir":80,"_draft":81,"_partial":81,"_locale":82,"title":45,"description":46,"order":42,"category":17,"body":83,"_type":1348,"_id":1349,"_source":1350,"_file":1351,"_stem":1352,"_extension":1353},"docs",false,"",{"type":84,"children":85,"toc":1328},"root",[86,95,125,131,229,250,256,261,301,307,320,326,347,354,385,391,486,492,645,664,670,683,688,735,748,754,759,765,854,860,904,910,929,934,940,945,951,956,995,1001,1322],{"type":87,"tag":88,"props":89,"children":91},"element","h2",{"id":90},"tenant-isolation-model",[92],{"type":93,"value":94},"text","Tenant isolation model",{"type":87,"tag":96,"props":97,"children":98},"p",{},[99,101,108,110,116,118,123],{"type":93,"value":100},"Hard-partitioned by ",{"type":87,"tag":102,"props":103,"children":105},"code",{"className":104},[],[106],{"type":93,"value":107},"tenant_id",{"type":93,"value":109},". Every SQL query includes ",{"type":87,"tag":102,"props":111,"children":113},{"className":112},[],[114],{"type":93,"value":115},"WHERE tenant_id = $1",{"type":93,"value":117},". JWT tokens carry a ",{"type":87,"tag":102,"props":119,"children":121},{"className":120},[],[122],{"type":93,"value":107},{"type":93,"value":124}," claim enforced by the authentication middleware on every authenticated request. Cross-tenant data access is structurally impossible except from the master tenant.",{"type":87,"tag":88,"props":126,"children":128},{"id":127},"creating-tenants",[129],{"type":93,"value":130},"Creating tenants",{"type":87,"tag":132,"props":133,"children":137},"pre",{"className":134,"code":135,"language":136,"meta":82,"style":82},"language-bash shiki shiki-themes github-dark-dimmed github-light","POST \u002Fapi\u002Fv1\u002Ftenants\n{\n  \"name\": \"Acme Corp\",\n  \"slug\": \"acme\",\n  \"display_name\": \"Acme Corporation\"\n}\n","bash",[138],{"type":87,"tag":102,"props":139,"children":140},{"__ignoreMap":82},[141,158,167,186,203,220],{"type":87,"tag":142,"props":143,"children":145},"span",{"class":144,"line":8},"line",[146,152],{"type":87,"tag":142,"props":147,"children":149},{"style":148},"--shiki-default:#F69D50;--shiki-light:#6F42C1",[150],{"type":93,"value":151},"POST",{"type":87,"tag":142,"props":153,"children":155},{"style":154},"--shiki-default:#96D0FF;--shiki-light:#032F62",[156],{"type":93,"value":157}," \u002Fapi\u002Fv1\u002Ftenants\n",{"type":87,"tag":142,"props":159,"children":160},{"class":144,"line":42},[161],{"type":87,"tag":142,"props":162,"children":164},{"style":163},"--shiki-default:#ADBAC7;--shiki-light:#24292E",[165],{"type":93,"value":166},"{\n",{"type":87,"tag":142,"props":168,"children":169},{"class":144,"line":32},[170,175,181],{"type":87,"tag":142,"props":171,"children":172},{"style":148},[173],{"type":93,"value":174},"  \"name\"",{"type":87,"tag":142,"props":176,"children":178},{"style":177},"--shiki-default:#6CB6FF;--shiki-light:#005CC5",[179],{"type":93,"value":180},":",{"type":87,"tag":142,"props":182,"children":183},{"style":154},[184],{"type":93,"value":185}," \"Acme Corp\",\n",{"type":87,"tag":142,"props":187,"children":188},{"class":144,"line":14},[189,194,198],{"type":87,"tag":142,"props":190,"children":191},{"style":148},[192],{"type":93,"value":193},"  \"slug\"",{"type":87,"tag":142,"props":195,"children":196},{"style":177},[197],{"type":93,"value":180},{"type":87,"tag":142,"props":199,"children":200},{"style":154},[201],{"type":93,"value":202}," \"acme\",\n",{"type":87,"tag":142,"props":204,"children":205},{"class":144,"line":78},[206,211,215],{"type":87,"tag":142,"props":207,"children":208},{"style":148},[209],{"type":93,"value":210},"  \"display_name\"",{"type":87,"tag":142,"props":212,"children":213},{"style":177},[214],{"type":93,"value":180},{"type":87,"tag":142,"props":216,"children":217},{"style":154},[218],{"type":93,"value":219}," \"Acme Corporation\"\n",{"type":87,"tag":142,"props":221,"children":223},{"class":144,"line":222},6,[224],{"type":87,"tag":142,"props":225,"children":226},{"style":163},[227],{"type":93,"value":228},"}\n",{"type":87,"tag":96,"props":230,"children":231},{},[232,234,240,242,248],{"type":93,"value":233},"Returns a UUID ",{"type":87,"tag":102,"props":235,"children":237},{"className":236},[],[238],{"type":93,"value":239},"id",{"type":93,"value":241},". All subsequent resource routes are scoped under ",{"type":87,"tag":102,"props":243,"children":245},{"className":244},[],[246],{"type":93,"value":247},"\u002Fapi\u002Fv1\u002Ftenants\u002F{id}\u002F",{"type":93,"value":249},".",{"type":87,"tag":88,"props":251,"children":253},{"id":252},"per-tenant-configuration",[254],{"type":93,"value":255},"Per-tenant configuration",{"type":87,"tag":96,"props":257,"children":258},{},[259],{"type":93,"value":260},"Each tenant has independent configuration for:",{"type":87,"tag":262,"props":263,"children":264},"ul",{},[265,271,276,281,286,291,296],{"type":87,"tag":266,"props":267,"children":268},"li",{},[269],{"type":93,"value":270},"Token lifetimes (access, refresh, ID, authorization code)",{"type":87,"tag":266,"props":272,"children":273},{},[274],{"type":93,"value":275},"Password policy (complexity, history, rotation, lockout)",{"type":87,"tag":266,"props":277,"children":278},{},[279],{"type":93,"value":280},"MFA settings (enabled, required)",{"type":87,"tag":266,"props":282,"children":283},{},[284],{"type":93,"value":285},"Branding (logo, colors, custom CSS, welcome text)",{"type":87,"tag":266,"props":287,"children":288},{},[289],{"type":93,"value":290},"Email templates (per-tenant and per-application)",{"type":87,"tag":266,"props":292,"children":293},{},[294],{"type":93,"value":295},"Plugin activations and configurations",{"type":87,"tag":266,"props":297,"children":298},{},[299],{"type":93,"value":300},"Identity providers and OAuth client allowlists per group",{"type":87,"tag":88,"props":302,"children":304},{"id":303},"the-master-tenant",[305],{"type":93,"value":306},"The master tenant",{"type":87,"tag":96,"props":308,"children":309},{},[310,312,318],{"type":93,"value":311},"UUID ",{"type":87,"tag":102,"props":313,"children":315},{"className":314},[],[316],{"type":93,"value":317},"00000000-0000-0000-0000-000000000001",{"type":93,"value":319},". Admin users here can manage other tenants — the only context where cross-tenant operations are permitted.",{"type":87,"tag":88,"props":321,"children":323},{"id":322},"hosted-tenants",[324],{"type":93,"value":325},"Hosted tenants",{"type":87,"tag":96,"props":327,"children":328},{},[329,331,337,339,345],{"type":93,"value":330},"A tenant whose license includes ",{"type":87,"tag":102,"props":332,"children":334},{"className":333},[],[335],{"type":93,"value":336},"features.hosting.enabled = true",{"type":93,"value":338}," (granted by the control plane) can act as a ",{"type":87,"tag":340,"props":341,"children":342},"em",{},[343],{"type":93,"value":344},"host",{"type":93,"value":346}," for other tenants on the same Vaultaris instance.",{"type":87,"tag":348,"props":349,"children":351},"h3",{"id":350},"what-hosting-means",[352],{"type":93,"value":353},"What hosting means",{"type":87,"tag":262,"props":355,"children":356},{},[357,362,367,380],{"type":87,"tag":266,"props":358,"children":359},{},[360],{"type":93,"value":361},"Each hosted tenant is a regular, fully isolated tenant",{"type":87,"tag":266,"props":363,"children":364},{},[365],{"type":93,"value":366},"The host tenant gets a \"Hosted clients\" dashboard section with aggregate stats",{"type":87,"tag":266,"props":368,"children":369},{},[370,372,378],{"type":93,"value":371},"The host ",{"type":87,"tag":373,"props":374,"children":375},"strong",{},[376],{"type":93,"value":377},"cannot",{"type":93,"value":379}," read hosted tenant data, only aggregate counts",{"type":87,"tag":266,"props":381,"children":382},{},[383],{"type":93,"value":384},"Sub-hosting (a hosted tenant hosting others) is not permitted without an explicit control-plane license grant",{"type":87,"tag":348,"props":386,"children":388},{"id":387},"license-capability-fields",[389],{"type":93,"value":390},"License capability fields",{"type":87,"tag":392,"props":393,"children":394},"table",{},[395,414],{"type":87,"tag":396,"props":397,"children":398},"thead",{},[399],{"type":87,"tag":400,"props":401,"children":402},"tr",{},[403,409],{"type":87,"tag":404,"props":405,"children":406},"th",{},[407],{"type":93,"value":408},"Field",{"type":87,"tag":404,"props":410,"children":411},{},[412],{"type":93,"value":413},"Meaning",{"type":87,"tag":415,"props":416,"children":417},"tbody",{},[418,444,469],{"type":87,"tag":400,"props":419,"children":420},{},[421,431],{"type":87,"tag":422,"props":423,"children":424},"td",{},[425],{"type":87,"tag":102,"props":426,"children":428},{"className":427},[],[429],{"type":93,"value":430},"features.hosting.enabled",{"type":87,"tag":422,"props":432,"children":433},{},[434,436,442],{"type":93,"value":435},"Master switch (default ",{"type":87,"tag":102,"props":437,"children":439},{"className":438},[],[440],{"type":93,"value":441},"false",{"type":93,"value":443},")",{"type":87,"tag":400,"props":445,"children":446},{},[447,456],{"type":87,"tag":422,"props":448,"children":449},{},[450],{"type":87,"tag":102,"props":451,"children":453},{"className":452},[],[454],{"type":93,"value":455},"features.hosting.max_hosted_tenants",{"type":87,"tag":422,"props":457,"children":458},{},[459,461,467],{"type":93,"value":460},"Cap on active hosted tenants (",{"type":87,"tag":102,"props":462,"children":464},{"className":463},[],[465],{"type":93,"value":466},"null",{"type":93,"value":468}," = unlimited)",{"type":87,"tag":400,"props":470,"children":471},{},[472,481],{"type":87,"tag":422,"props":473,"children":474},{},[475],{"type":87,"tag":102,"props":476,"children":478},{"className":477},[],[479],{"type":93,"value":480},"features.hosting.allowed_tiers",{"type":87,"tag":422,"props":482,"children":483},{},[484],{"type":93,"value":485},"Tiers the host may assign to hosted clients",{"type":87,"tag":348,"props":487,"children":489},{"id":488},"rest-surface",[490],{"type":93,"value":491},"REST surface",{"type":87,"tag":392,"props":493,"children":494},{},[495,516],{"type":87,"tag":396,"props":496,"children":497},{},[498],{"type":87,"tag":400,"props":499,"children":500},{},[501,506,511],{"type":87,"tag":404,"props":502,"children":503},{},[504],{"type":93,"value":505},"Method",{"type":87,"tag":404,"props":507,"children":508},{},[509],{"type":93,"value":510},"Path",{"type":87,"tag":404,"props":512,"children":513},{},[514],{"type":93,"value":515},"Purpose",{"type":87,"tag":415,"props":517,"children":518},{},[519,545,570,594,620],{"type":87,"tag":400,"props":520,"children":521},{},[522,531,540],{"type":87,"tag":422,"props":523,"children":524},{},[525],{"type":87,"tag":102,"props":526,"children":528},{"className":527},[],[529],{"type":93,"value":530},"GET",{"type":87,"tag":422,"props":532,"children":533},{},[534],{"type":87,"tag":102,"props":535,"children":537},{"className":536},[],[538],{"type":93,"value":539},"\u002Fapi\u002Fv1\u002Ftenants\u002F{host_id}\u002Fhosted-tenants\u002Fcapability",{"type":87,"tag":422,"props":541,"children":542},{},[543],{"type":93,"value":544},"Resolved capability + live count",{"type":87,"tag":400,"props":546,"children":547},{},[548,556,565],{"type":87,"tag":422,"props":549,"children":550},{},[551],{"type":87,"tag":102,"props":552,"children":554},{"className":553},[],[555],{"type":93,"value":530},{"type":87,"tag":422,"props":557,"children":558},{},[559],{"type":87,"tag":102,"props":560,"children":562},{"className":561},[],[563],{"type":93,"value":564},"\u002Fapi\u002Fv1\u002Ftenants\u002F{host_id}\u002Fhosted-tenants",{"type":87,"tag":422,"props":566,"children":567},{},[568],{"type":93,"value":569},"List active hosted tenants",{"type":87,"tag":400,"props":571,"children":572},{},[573,581,589],{"type":87,"tag":422,"props":574,"children":575},{},[576],{"type":87,"tag":102,"props":577,"children":579},{"className":578},[],[580],{"type":93,"value":151},{"type":87,"tag":422,"props":582,"children":583},{},[584],{"type":87,"tag":102,"props":585,"children":587},{"className":586},[],[588],{"type":93,"value":564},{"type":87,"tag":422,"props":590,"children":591},{},[592],{"type":93,"value":593},"Provision a new hosted tenant",{"type":87,"tag":400,"props":595,"children":596},{},[597,606,615],{"type":87,"tag":422,"props":598,"children":599},{},[600],{"type":87,"tag":102,"props":601,"children":603},{"className":602},[],[604],{"type":93,"value":605},"PATCH",{"type":87,"tag":422,"props":607,"children":608},{},[609],{"type":87,"tag":102,"props":610,"children":612},{"className":611},[],[613],{"type":93,"value":614},"\u002Fapi\u002Fv1\u002Ftenants\u002F{host_id}\u002Fhosted-tenants\u002F{id}\u002Fstatus",{"type":87,"tag":422,"props":616,"children":617},{},[618],{"type":93,"value":619},"Suspend or archive",{"type":87,"tag":400,"props":621,"children":622},{},[623,631,640],{"type":87,"tag":422,"props":624,"children":625},{},[626],{"type":87,"tag":102,"props":627,"children":629},{"className":628},[],[630],{"type":93,"value":530},{"type":87,"tag":422,"props":632,"children":633},{},[634],{"type":87,"tag":102,"props":635,"children":637},{"className":636},[],[638],{"type":93,"value":639},"\u002Fapi\u002Fv1\u002Ftenants\u002F{host_id}\u002Fhosted-tenants\u002F{id}\u002Fstats",{"type":87,"tag":422,"props":641,"children":642},{},[643],{"type":93,"value":644},"Aggregate counts (no PII)",{"type":87,"tag":96,"props":646,"children":647},{},[648,650,656,658,663],{"type":93,"value":649},"All endpoints return ",{"type":87,"tag":102,"props":651,"children":653},{"className":652},[],[654],{"type":93,"value":655},"403",{"type":93,"value":657}," if the host license lacks ",{"type":87,"tag":102,"props":659,"children":661},{"className":660},[],[662],{"type":93,"value":336},{"type":93,"value":249},{"type":87,"tag":88,"props":665,"children":667},{"id":666},"billing-shadow-tenants",[668],{"type":93,"value":669},"Billing shadow tenants",{"type":87,"tag":96,"props":671,"children":672},{},[673,675,681],{"type":93,"value":674},"Billing shadow tenants (",{"type":87,"tag":102,"props":676,"children":678},{"className":677},[],[679],{"type":93,"value":680},"is_billing_shadow = true",{"type":93,"value":682},") are a special variant used by the cloud control plane. They hold only billing RBAC — they are not workload tenants and do not store user authentication data.",{"type":87,"tag":96,"props":684,"children":685},{},[686],{"type":93,"value":687},"Four roles are seeded at creation:",{"type":87,"tag":262,"props":689,"children":690},{},[691,702,713,724],{"type":87,"tag":266,"props":692,"children":693},{},[694,700],{"type":87,"tag":102,"props":695,"children":697},{"className":696},[],[698],{"type":93,"value":699},"billing.owner",{"type":93,"value":701}," — full billing access",{"type":87,"tag":266,"props":703,"children":704},{},[705,711],{"type":87,"tag":102,"props":706,"children":708},{"className":707},[],[709],{"type":93,"value":710},"billing.admin",{"type":93,"value":712}," — manage members and subscriptions",{"type":87,"tag":266,"props":714,"children":715},{},[716,722],{"type":87,"tag":102,"props":717,"children":719},{"className":718},[],[720],{"type":93,"value":721},"billing.finance",{"type":93,"value":723}," — view invoices and payment methods",{"type":87,"tag":266,"props":725,"children":726},{},[727,733],{"type":87,"tag":102,"props":728,"children":730},{"className":729},[],[731],{"type":93,"value":732},"billing.viewer",{"type":93,"value":734}," — read-only",{"type":87,"tag":96,"props":736,"children":737},{},[738,740,746],{"type":93,"value":739},"Billing shadow tenants are excluded from OpenAPI docs and cannot be created or queried by normal tenant API calls. The provisioning endpoint is guarded by a service token (",{"type":87,"tag":102,"props":741,"children":743},{"className":742},[],[744],{"type":93,"value":745},"BILLING_SHADOW_SERVICE_TOKEN",{"type":93,"value":747},").",{"type":87,"tag":88,"props":749,"children":751},{"id":750},"freeze-unfreeze-system",[752],{"type":93,"value":753},"Freeze \u002F Unfreeze System",{"type":87,"tag":96,"props":755,"children":756},{},[757],{"type":93,"value":758},"When a license downgrades or expires, Vaultaris brings the instance within the new resource limits by freezing excess resources.",{"type":87,"tag":348,"props":760,"children":762},{"id":761},"freeze-rules",[763],{"type":93,"value":764},"Freeze rules",{"type":87,"tag":262,"props":766,"children":767},{},[768,778,788,798,808],{"type":87,"tag":266,"props":769,"children":770},{},[771,776],{"type":87,"tag":373,"props":772,"children":773},{},[774],{"type":93,"value":775},"Trigger",{"type":93,"value":777}," — license downgrade, license expiry, or explicit admin action",{"type":87,"tag":266,"props":779,"children":780},{},[781,786],{"type":87,"tag":373,"props":782,"children":783},{},[784],{"type":93,"value":785},"Order",{"type":93,"value":787}," — LIFO (Last In, First Out): most recently created resources frozen first",{"type":87,"tag":266,"props":789,"children":790},{},[791,796],{"type":87,"tag":373,"props":792,"children":793},{},[794],{"type":93,"value":795},"Scope",{"type":93,"value":797}," — Users, OAuthClients, Applications, Identity Providers, Groups",{"type":87,"tag":266,"props":799,"children":800},{},[801,806],{"type":87,"tag":373,"props":802,"children":803},{},[804],{"type":93,"value":805},"Exception",{"type":93,"value":807}," — System admin users are never frozen (login always works)",{"type":87,"tag":266,"props":809,"children":810},{},[811,816,818,824,826,832,834,840,841,847,848],{"type":87,"tag":373,"props":812,"children":813},{},[814],{"type":93,"value":815},"Reason tracking",{"type":93,"value":817}," — ",{"type":87,"tag":102,"props":819,"children":821},{"className":820},[],[822],{"type":93,"value":823},"FreezeReason",{"type":93,"value":825}," enum: ",{"type":87,"tag":102,"props":827,"children":829},{"className":828},[],[830],{"type":93,"value":831},"LicenseDowngrade",{"type":93,"value":833},", ",{"type":87,"tag":102,"props":835,"children":837},{"className":836},[],[838],{"type":93,"value":839},"Expiry",{"type":93,"value":833},{"type":87,"tag":102,"props":842,"children":844},{"className":843},[],[845],{"type":93,"value":846},"Suspension",{"type":93,"value":833},{"type":87,"tag":102,"props":849,"children":851},{"className":850},[],[852],{"type":93,"value":853},"AdminAction",{"type":87,"tag":348,"props":855,"children":857},{"id":856},"unfreeze-rules",[858],{"type":93,"value":859},"Unfreeze rules",{"type":87,"tag":262,"props":861,"children":862},{},[863,872,881],{"type":87,"tag":266,"props":864,"children":865},{},[866,870],{"type":87,"tag":373,"props":867,"children":868},{},[869],{"type":93,"value":775},{"type":93,"value":871}," — license upgrade or resource deletion that frees up capacity",{"type":87,"tag":266,"props":873,"children":874},{},[875,879],{"type":87,"tag":373,"props":876,"children":877},{},[878],{"type":93,"value":785},{"type":93,"value":880}," — FIFO (First In, First Out): oldest resources restored first",{"type":87,"tag":266,"props":882,"children":883},{},[884,888,890,895,897,902],{"type":87,"tag":373,"props":885,"children":886},{},[887],{"type":93,"value":805},{"type":93,"value":889}," — Resources frozen with ",{"type":87,"tag":102,"props":891,"children":893},{"className":892},[],[894],{"type":93,"value":853},{"type":93,"value":896}," reason are ",{"type":87,"tag":373,"props":898,"children":899},{},[900],{"type":93,"value":901},"never",{"type":93,"value":903}," automatically unfrozen; explicit admin action required",{"type":87,"tag":348,"props":905,"children":907},{"id":906},"viewing-frozen-resources",[908],{"type":93,"value":909},"Viewing frozen resources",{"type":87,"tag":132,"props":911,"children":913},{"className":134,"code":912,"language":136,"meta":82,"style":82},"GET \u002Fapi\u002Fv1\u002Ftenants\u002F{tenant_id}\u002Ffrozen\n",[914],{"type":87,"tag":102,"props":915,"children":916},{"__ignoreMap":82},[917],{"type":87,"tag":142,"props":918,"children":919},{"class":144,"line":8},[920,924],{"type":87,"tag":142,"props":921,"children":922},{"style":148},[923],{"type":93,"value":530},{"type":87,"tag":142,"props":925,"children":926},{"style":154},[927],{"type":93,"value":928}," \u002Fapi\u002Fv1\u002Ftenants\u002F{tenant_id}\u002Ffrozen\n",{"type":87,"tag":96,"props":930,"children":931},{},[932],{"type":93,"value":933},"Returns a list of frozen resources grouped by type, including the freeze reason and timestamp.",{"type":87,"tag":348,"props":935,"children":937},{"id":936},"unfreeze-manually",[938],{"type":93,"value":939},"Unfreeze manually",{"type":87,"tag":96,"props":941,"children":942},{},[943],{"type":93,"value":944},"Admin can unfreeze specific resources via the dashboard or directly via the API. Upgrading the license triggers automatic FIFO restoration up to the new limits.",{"type":87,"tag":88,"props":946,"children":948},{"id":947},"federated-deployment",[949],{"type":93,"value":950},"Federated deployment",{"type":87,"tag":96,"props":952,"children":953},{},[954],{"type":93,"value":955},"For organizations running multiple Vaultaris instances (e.g., one per region):",{"type":87,"tag":262,"props":957,"children":958},{},[959,972,977,990],{"type":87,"tag":266,"props":960,"children":961},{},[962,964,970],{"type":93,"value":963},"Set ",{"type":87,"tag":102,"props":965,"children":967},{"className":966},[],[968],{"type":93,"value":969},"CONTROL_PLANE_URL",{"type":93,"value":971}," on each satellite instance",{"type":87,"tag":266,"props":973,"children":974},{},[975],{"type":93,"value":976},"The control plane manages license assignment, usage telemetry, and grace-period enforcement",{"type":87,"tag":266,"props":978,"children":979},{},[980,982,988],{"type":93,"value":981},"Satellites are fully autonomous if the control plane is unreachable — they operate normally until the grace period (",{"type":87,"tag":102,"props":983,"children":985},{"className":984},[],[986],{"type":93,"value":987},"GRACE_PERIOD_HOURS",{"type":93,"value":989},", default 168 h) expires",{"type":87,"tag":266,"props":991,"children":992},{},[993],{"type":93,"value":994},"License limit changes (from a control-plane heartbeat response) are applied immediately: downgrade → LIFO freeze, upgrade → FIFO unfreeze",{"type":87,"tag":88,"props":996,"children":998},{"id":997},"provisioning-tenants-programmatically",[999],{"type":93,"value":1000},"Provisioning tenants programmatically",{"type":87,"tag":132,"props":1002,"children":1006},{"className":1003,"code":1004,"language":1005,"meta":82,"style":82},"language-typescript shiki shiki-themes github-dark-dimmed github-light","\u002F\u002F Node.js example\nconst tenant = await vaultaris.tenants.create({ name: 'Acme', slug: 'acme' });\nconst adminRole = await vaultaris.roles.create(tenant.id, { name: 'Admin' });\nconst adminGroup = await vaultaris.groups.create(tenant.id, { name: 'Admins' });\nawait vaultaris.groups.assignRole(tenant.id, adminGroup.id, adminRole.id);\nconst client = await vaultaris.clients.create(tenant.id, {\n  name: 'Web App', clientType: 'public',\n  redirectUris: ['https:\u002F\u002Fapp.example.com\u002Fcallback'],\n  grantTypes: ['authorization_code', 'refresh_token'],\n  pkceRequired: true,\n});\n","typescript",[1007],{"type":87,"tag":102,"props":1008,"children":1009},{"__ignoreMap":82},[1010,1019,1079,1122,1164,1186,1220,1249,1268,1295,1313],{"type":87,"tag":142,"props":1011,"children":1012},{"class":144,"line":8},[1013],{"type":87,"tag":142,"props":1014,"children":1016},{"style":1015},"--shiki-default:#768390;--shiki-light:#6A737D",[1017],{"type":93,"value":1018},"\u002F\u002F Node.js example\n",{"type":87,"tag":142,"props":1020,"children":1021},{"class":144,"line":42},[1022,1028,1033,1038,1043,1048,1054,1059,1064,1069,1074],{"type":87,"tag":142,"props":1023,"children":1025},{"style":1024},"--shiki-default:#F47067;--shiki-light:#D73A49",[1026],{"type":93,"value":1027},"const",{"type":87,"tag":142,"props":1029,"children":1030},{"style":177},[1031],{"type":93,"value":1032}," tenant",{"type":87,"tag":142,"props":1034,"children":1035},{"style":1024},[1036],{"type":93,"value":1037}," =",{"type":87,"tag":142,"props":1039,"children":1040},{"style":1024},[1041],{"type":93,"value":1042}," await",{"type":87,"tag":142,"props":1044,"children":1045},{"style":163},[1046],{"type":93,"value":1047}," vaultaris.tenants.",{"type":87,"tag":142,"props":1049,"children":1051},{"style":1050},"--shiki-default:#DCBDFB;--shiki-light:#6F42C1",[1052],{"type":93,"value":1053},"create",{"type":87,"tag":142,"props":1055,"children":1056},{"style":163},[1057],{"type":93,"value":1058},"({ name: ",{"type":87,"tag":142,"props":1060,"children":1061},{"style":154},[1062],{"type":93,"value":1063},"'Acme'",{"type":87,"tag":142,"props":1065,"children":1066},{"style":163},[1067],{"type":93,"value":1068},", slug: ",{"type":87,"tag":142,"props":1070,"children":1071},{"style":154},[1072],{"type":93,"value":1073},"'acme'",{"type":87,"tag":142,"props":1075,"children":1076},{"style":163},[1077],{"type":93,"value":1078}," });\n",{"type":87,"tag":142,"props":1080,"children":1081},{"class":144,"line":32},[1082,1086,1091,1095,1099,1104,1108,1113,1118],{"type":87,"tag":142,"props":1083,"children":1084},{"style":1024},[1085],{"type":93,"value":1027},{"type":87,"tag":142,"props":1087,"children":1088},{"style":177},[1089],{"type":93,"value":1090}," adminRole",{"type":87,"tag":142,"props":1092,"children":1093},{"style":1024},[1094],{"type":93,"value":1037},{"type":87,"tag":142,"props":1096,"children":1097},{"style":1024},[1098],{"type":93,"value":1042},{"type":87,"tag":142,"props":1100,"children":1101},{"style":163},[1102],{"type":93,"value":1103}," vaultaris.roles.",{"type":87,"tag":142,"props":1105,"children":1106},{"style":1050},[1107],{"type":93,"value":1053},{"type":87,"tag":142,"props":1109,"children":1110},{"style":163},[1111],{"type":93,"value":1112},"(tenant.id, { name: ",{"type":87,"tag":142,"props":1114,"children":1115},{"style":154},[1116],{"type":93,"value":1117},"'Admin'",{"type":87,"tag":142,"props":1119,"children":1120},{"style":163},[1121],{"type":93,"value":1078},{"type":87,"tag":142,"props":1123,"children":1124},{"class":144,"line":14},[1125,1129,1134,1138,1142,1147,1151,1155,1160],{"type":87,"tag":142,"props":1126,"children":1127},{"style":1024},[1128],{"type":93,"value":1027},{"type":87,"tag":142,"props":1130,"children":1131},{"style":177},[1132],{"type":93,"value":1133}," adminGroup",{"type":87,"tag":142,"props":1135,"children":1136},{"style":1024},[1137],{"type":93,"value":1037},{"type":87,"tag":142,"props":1139,"children":1140},{"style":1024},[1141],{"type":93,"value":1042},{"type":87,"tag":142,"props":1143,"children":1144},{"style":163},[1145],{"type":93,"value":1146}," vaultaris.groups.",{"type":87,"tag":142,"props":1148,"children":1149},{"style":1050},[1150],{"type":93,"value":1053},{"type":87,"tag":142,"props":1152,"children":1153},{"style":163},[1154],{"type":93,"value":1112},{"type":87,"tag":142,"props":1156,"children":1157},{"style":154},[1158],{"type":93,"value":1159},"'Admins'",{"type":87,"tag":142,"props":1161,"children":1162},{"style":163},[1163],{"type":93,"value":1078},{"type":87,"tag":142,"props":1165,"children":1166},{"class":144,"line":78},[1167,1172,1176,1181],{"type":87,"tag":142,"props":1168,"children":1169},{"style":1024},[1170],{"type":93,"value":1171},"await",{"type":87,"tag":142,"props":1173,"children":1174},{"style":163},[1175],{"type":93,"value":1146},{"type":87,"tag":142,"props":1177,"children":1178},{"style":1050},[1179],{"type":93,"value":1180},"assignRole",{"type":87,"tag":142,"props":1182,"children":1183},{"style":163},[1184],{"type":93,"value":1185},"(tenant.id, adminGroup.id, adminRole.id);\n",{"type":87,"tag":142,"props":1187,"children":1188},{"class":144,"line":222},[1189,1193,1198,1202,1206,1211,1215],{"type":87,"tag":142,"props":1190,"children":1191},{"style":1024},[1192],{"type":93,"value":1027},{"type":87,"tag":142,"props":1194,"children":1195},{"style":177},[1196],{"type":93,"value":1197}," client",{"type":87,"tag":142,"props":1199,"children":1200},{"style":1024},[1201],{"type":93,"value":1037},{"type":87,"tag":142,"props":1203,"children":1204},{"style":1024},[1205],{"type":93,"value":1042},{"type":87,"tag":142,"props":1207,"children":1208},{"style":163},[1209],{"type":93,"value":1210}," vaultaris.clients.",{"type":87,"tag":142,"props":1212,"children":1213},{"style":1050},[1214],{"type":93,"value":1053},{"type":87,"tag":142,"props":1216,"children":1217},{"style":163},[1218],{"type":93,"value":1219},"(tenant.id, {\n",{"type":87,"tag":142,"props":1221,"children":1223},{"class":144,"line":1222},7,[1224,1229,1234,1239,1244],{"type":87,"tag":142,"props":1225,"children":1226},{"style":163},[1227],{"type":93,"value":1228},"  name: ",{"type":87,"tag":142,"props":1230,"children":1231},{"style":154},[1232],{"type":93,"value":1233},"'Web App'",{"type":87,"tag":142,"props":1235,"children":1236},{"style":163},[1237],{"type":93,"value":1238},", clientType: ",{"type":87,"tag":142,"props":1240,"children":1241},{"style":154},[1242],{"type":93,"value":1243},"'public'",{"type":87,"tag":142,"props":1245,"children":1246},{"style":163},[1247],{"type":93,"value":1248},",\n",{"type":87,"tag":142,"props":1250,"children":1252},{"class":144,"line":1251},8,[1253,1258,1263],{"type":87,"tag":142,"props":1254,"children":1255},{"style":163},[1256],{"type":93,"value":1257},"  redirectUris: [",{"type":87,"tag":142,"props":1259,"children":1260},{"style":154},[1261],{"type":93,"value":1262},"'https:\u002F\u002Fapp.example.com\u002Fcallback'",{"type":87,"tag":142,"props":1264,"children":1265},{"style":163},[1266],{"type":93,"value":1267},"],\n",{"type":87,"tag":142,"props":1269,"children":1271},{"class":144,"line":1270},9,[1272,1277,1282,1286,1291],{"type":87,"tag":142,"props":1273,"children":1274},{"style":163},[1275],{"type":93,"value":1276},"  grantTypes: [",{"type":87,"tag":142,"props":1278,"children":1279},{"style":154},[1280],{"type":93,"value":1281},"'authorization_code'",{"type":87,"tag":142,"props":1283,"children":1284},{"style":163},[1285],{"type":93,"value":833},{"type":87,"tag":142,"props":1287,"children":1288},{"style":154},[1289],{"type":93,"value":1290},"'refresh_token'",{"type":87,"tag":142,"props":1292,"children":1293},{"style":163},[1294],{"type":93,"value":1267},{"type":87,"tag":142,"props":1296,"children":1298},{"class":144,"line":1297},10,[1299,1304,1309],{"type":87,"tag":142,"props":1300,"children":1301},{"style":163},[1302],{"type":93,"value":1303},"  pkceRequired: ",{"type":87,"tag":142,"props":1305,"children":1306},{"style":177},[1307],{"type":93,"value":1308},"true",{"type":87,"tag":142,"props":1310,"children":1311},{"style":163},[1312],{"type":93,"value":1248},{"type":87,"tag":142,"props":1314,"children":1316},{"class":144,"line":1315},11,[1317],{"type":87,"tag":142,"props":1318,"children":1319},{"style":163},[1320],{"type":93,"value":1321},"});\n",{"type":87,"tag":1323,"props":1324,"children":1325},"style",{},[1326],{"type":93,"value":1327},"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 .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);}",{"title":82,"searchDepth":32,"depth":32,"links":1329},[1330,1331,1332,1333,1334,1339,1340,1346,1347],{"id":90,"depth":42,"text":94},{"id":127,"depth":42,"text":130},{"id":252,"depth":42,"text":255},{"id":303,"depth":42,"text":306},{"id":322,"depth":42,"text":325,"children":1335},[1336,1337,1338],{"id":350,"depth":32,"text":353},{"id":387,"depth":32,"text":390},{"id":488,"depth":32,"text":491},{"id":666,"depth":42,"text":669},{"id":750,"depth":42,"text":753,"children":1341},[1342,1343,1344,1345],{"id":761,"depth":32,"text":764},{"id":856,"depth":32,"text":859},{"id":906,"depth":32,"text":909},{"id":936,"depth":32,"text":939},{"id":947,"depth":42,"text":950},{"id":997,"depth":42,"text":1000},"markdown","content:docs:multi-tenancy.md","content","docs\u002Fmulti-tenancy.md","docs\u002Fmulti-tenancy","md",{"_path":44,"_dir":80,"_draft":81,"_partial":81,"_locale":82,"title":45,"description":46,"order":42,"category":17,"body":1355,"_type":1348,"_id":1349,"_source":1350,"_file":1351,"_stem":1352,"_extension":1353},{"type":84,"children":1356,"toc":2363},[1357,1361,1383,1387,1463,1479,1483,1487,1518,1522,1532,1536,1551,1555,1579,1583,1660,1664,1803,1819,1823,1833,1837,1876,1886,1890,1894,1898,1970,1974,2012,2016,2033,2037,2041,2045,2049,2053,2084,2088,2359],{"type":87,"tag":88,"props":1358,"children":1359},{"id":90},[1360],{"type":93,"value":94},{"type":87,"tag":96,"props":1362,"children":1363},{},[1364,1365,1370,1371,1376,1377,1382],{"type":93,"value":100},{"type":87,"tag":102,"props":1366,"children":1368},{"className":1367},[],[1369],{"type":93,"value":107},{"type":93,"value":109},{"type":87,"tag":102,"props":1372,"children":1374},{"className":1373},[],[1375],{"type":93,"value":115},{"type":93,"value":117},{"type":87,"tag":102,"props":1378,"children":1380},{"className":1379},[],[1381],{"type":93,"value":107},{"type":93,"value":124},{"type":87,"tag":88,"props":1384,"children":1385},{"id":127},[1386],{"type":93,"value":130},{"type":87,"tag":132,"props":1388,"children":1389},{"className":134,"code":135,"language":136,"meta":82,"style":82},[1390],{"type":87,"tag":102,"props":1391,"children":1392},{"__ignoreMap":82},[1393,1404,1411,1426,1441,1456],{"type":87,"tag":142,"props":1394,"children":1395},{"class":144,"line":8},[1396,1400],{"type":87,"tag":142,"props":1397,"children":1398},{"style":148},[1399],{"type":93,"value":151},{"type":87,"tag":142,"props":1401,"children":1402},{"style":154},[1403],{"type":93,"value":157},{"type":87,"tag":142,"props":1405,"children":1406},{"class":144,"line":42},[1407],{"type":87,"tag":142,"props":1408,"children":1409},{"style":163},[1410],{"type":93,"value":166},{"type":87,"tag":142,"props":1412,"children":1413},{"class":144,"line":32},[1414,1418,1422],{"type":87,"tag":142,"props":1415,"children":1416},{"style":148},[1417],{"type":93,"value":174},{"type":87,"tag":142,"props":1419,"children":1420},{"style":177},[1421],{"type":93,"value":180},{"type":87,"tag":142,"props":1423,"children":1424},{"style":154},[1425],{"type":93,"value":185},{"type":87,"tag":142,"props":1427,"children":1428},{"class":144,"line":14},[1429,1433,1437],{"type":87,"tag":142,"props":1430,"children":1431},{"style":148},[1432],{"type":93,"value":193},{"type":87,"tag":142,"props":1434,"children":1435},{"style":177},[1436],{"type":93,"value":180},{"type":87,"tag":142,"props":1438,"children":1439},{"style":154},[1440],{"type":93,"value":202},{"type":87,"tag":142,"props":1442,"children":1443},{"class":144,"line":78},[1444,1448,1452],{"type":87,"tag":142,"props":1445,"children":1446},{"style":148},[1447],{"type":93,"value":210},{"type":87,"tag":142,"props":1449,"children":1450},{"style":177},[1451],{"type":93,"value":180},{"type":87,"tag":142,"props":1453,"children":1454},{"style":154},[1455],{"type":93,"value":219},{"type":87,"tag":142,"props":1457,"children":1458},{"class":144,"line":222},[1459],{"type":87,"tag":142,"props":1460,"children":1461},{"style":163},[1462],{"type":93,"value":228},{"type":87,"tag":96,"props":1464,"children":1465},{},[1466,1467,1472,1473,1478],{"type":93,"value":233},{"type":87,"tag":102,"props":1468,"children":1470},{"className":1469},[],[1471],{"type":93,"value":239},{"type":93,"value":241},{"type":87,"tag":102,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":93,"value":247},{"type":93,"value":249},{"type":87,"tag":88,"props":1480,"children":1481},{"id":252},[1482],{"type":93,"value":255},{"type":87,"tag":96,"props":1484,"children":1485},{},[1486],{"type":93,"value":260},{"type":87,"tag":262,"props":1488,"children":1489},{},[1490,1494,1498,1502,1506,1510,1514],{"type":87,"tag":266,"props":1491,"children":1492},{},[1493],{"type":93,"value":270},{"type":87,"tag":266,"props":1495,"children":1496},{},[1497],{"type":93,"value":275},{"type":87,"tag":266,"props":1499,"children":1500},{},[1501],{"type":93,"value":280},{"type":87,"tag":266,"props":1503,"children":1504},{},[1505],{"type":93,"value":285},{"type":87,"tag":266,"props":1507,"children":1508},{},[1509],{"type":93,"value":290},{"type":87,"tag":266,"props":1511,"children":1512},{},[1513],{"type":93,"value":295},{"type":87,"tag":266,"props":1515,"children":1516},{},[1517],{"type":93,"value":300},{"type":87,"tag":88,"props":1519,"children":1520},{"id":303},[1521],{"type":93,"value":306},{"type":87,"tag":96,"props":1523,"children":1524},{},[1525,1526,1531],{"type":93,"value":311},{"type":87,"tag":102,"props":1527,"children":1529},{"className":1528},[],[1530],{"type":93,"value":317},{"type":93,"value":319},{"type":87,"tag":88,"props":1533,"children":1534},{"id":322},[1535],{"type":93,"value":325},{"type":87,"tag":96,"props":1537,"children":1538},{},[1539,1540,1545,1546,1550],{"type":93,"value":330},{"type":87,"tag":102,"props":1541,"children":1543},{"className":1542},[],[1544],{"type":93,"value":336},{"type":93,"value":338},{"type":87,"tag":340,"props":1547,"children":1548},{},[1549],{"type":93,"value":344},{"type":93,"value":346},{"type":87,"tag":348,"props":1552,"children":1553},{"id":350},[1554],{"type":93,"value":353},{"type":87,"tag":262,"props":1556,"children":1557},{},[1558,1562,1566,1575],{"type":87,"tag":266,"props":1559,"children":1560},{},[1561],{"type":93,"value":361},{"type":87,"tag":266,"props":1563,"children":1564},{},[1565],{"type":93,"value":366},{"type":87,"tag":266,"props":1567,"children":1568},{},[1569,1570,1574],{"type":93,"value":371},{"type":87,"tag":373,"props":1571,"children":1572},{},[1573],{"type":93,"value":377},{"type":93,"value":379},{"type":87,"tag":266,"props":1576,"children":1577},{},[1578],{"type":93,"value":384},{"type":87,"tag":348,"props":1580,"children":1581},{"id":387},[1582],{"type":93,"value":390},{"type":87,"tag":392,"props":1584,"children":1585},{},[1586,1600],{"type":87,"tag":396,"props":1587,"children":1588},{},[1589],{"type":87,"tag":400,"props":1590,"children":1591},{},[1592,1596],{"type":87,"tag":404,"props":1593,"children":1594},{},[1595],{"type":93,"value":408},{"type":87,"tag":404,"props":1597,"children":1598},{},[1599],{"type":93,"value":413},{"type":87,"tag":415,"props":1601,"children":1602},{},[1603,1624,1645],{"type":87,"tag":400,"props":1604,"children":1605},{},[1606,1614],{"type":87,"tag":422,"props":1607,"children":1608},{},[1609],{"type":87,"tag":102,"props":1610,"children":1612},{"className":1611},[],[1613],{"type":93,"value":430},{"type":87,"tag":422,"props":1615,"children":1616},{},[1617,1618,1623],{"type":93,"value":435},{"type":87,"tag":102,"props":1619,"children":1621},{"className":1620},[],[1622],{"type":93,"value":441},{"type":93,"value":443},{"type":87,"tag":400,"props":1625,"children":1626},{},[1627,1635],{"type":87,"tag":422,"props":1628,"children":1629},{},[1630],{"type":87,"tag":102,"props":1631,"children":1633},{"className":1632},[],[1634],{"type":93,"value":455},{"type":87,"tag":422,"props":1636,"children":1637},{},[1638,1639,1644],{"type":93,"value":460},{"type":87,"tag":102,"props":1640,"children":1642},{"className":1641},[],[1643],{"type":93,"value":466},{"type":93,"value":468},{"type":87,"tag":400,"props":1646,"children":1647},{},[1648,1656],{"type":87,"tag":422,"props":1649,"children":1650},{},[1651],{"type":87,"tag":102,"props":1652,"children":1654},{"className":1653},[],[1655],{"type":93,"value":480},{"type":87,"tag":422,"props":1657,"children":1658},{},[1659],{"type":93,"value":485},{"type":87,"tag":348,"props":1661,"children":1662},{"id":488},[1663],{"type":93,"value":491},{"type":87,"tag":392,"props":1665,"children":1666},{},[1667,1685],{"type":87,"tag":396,"props":1668,"children":1669},{},[1670],{"type":87,"tag":400,"props":1671,"children":1672},{},[1673,1677,1681],{"type":87,"tag":404,"props":1674,"children":1675},{},[1676],{"type":93,"value":505},{"type":87,"tag":404,"props":1678,"children":1679},{},[1680],{"type":93,"value":510},{"type":87,"tag":404,"props":1682,"children":1683},{},[1684],{"type":93,"value":515},{"type":87,"tag":415,"props":1686,"children":1687},{},[1688,1711,1734,1757,1780],{"type":87,"tag":400,"props":1689,"children":1690},{},[1691,1699,1707],{"type":87,"tag":422,"props":1692,"children":1693},{},[1694],{"type":87,"tag":102,"props":1695,"children":1697},{"className":1696},[],[1698],{"type":93,"value":530},{"type":87,"tag":422,"props":1700,"children":1701},{},[1702],{"type":87,"tag":102,"props":1703,"children":1705},{"className":1704},[],[1706],{"type":93,"value":539},{"type":87,"tag":422,"props":1708,"children":1709},{},[1710],{"type":93,"value":544},{"type":87,"tag":400,"props":1712,"children":1713},{},[1714,1722,1730],{"type":87,"tag":422,"props":1715,"children":1716},{},[1717],{"type":87,"tag":102,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":93,"value":530},{"type":87,"tag":422,"props":1723,"children":1724},{},[1725],{"type":87,"tag":102,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":93,"value":564},{"type":87,"tag":422,"props":1731,"children":1732},{},[1733],{"type":93,"value":569},{"type":87,"tag":400,"props":1735,"children":1736},{},[1737,1745,1753],{"type":87,"tag":422,"props":1738,"children":1739},{},[1740],{"type":87,"tag":102,"props":1741,"children":1743},{"className":1742},[],[1744],{"type":93,"value":151},{"type":87,"tag":422,"props":1746,"children":1747},{},[1748],{"type":87,"tag":102,"props":1749,"children":1751},{"className":1750},[],[1752],{"type":93,"value":564},{"type":87,"tag":422,"props":1754,"children":1755},{},[1756],{"type":93,"value":593},{"type":87,"tag":400,"props":1758,"children":1759},{},[1760,1768,1776],{"type":87,"tag":422,"props":1761,"children":1762},{},[1763],{"type":87,"tag":102,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":93,"value":605},{"type":87,"tag":422,"props":1769,"children":1770},{},[1771],{"type":87,"tag":102,"props":1772,"children":1774},{"className":1773},[],[1775],{"type":93,"value":614},{"type":87,"tag":422,"props":1777,"children":1778},{},[1779],{"type":93,"value":619},{"type":87,"tag":400,"props":1781,"children":1782},{},[1783,1791,1799],{"type":87,"tag":422,"props":1784,"children":1785},{},[1786],{"type":87,"tag":102,"props":1787,"children":1789},{"className":1788},[],[1790],{"type":93,"value":530},{"type":87,"tag":422,"props":1792,"children":1793},{},[1794],{"type":87,"tag":102,"props":1795,"children":1797},{"className":1796},[],[1798],{"type":93,"value":639},{"type":87,"tag":422,"props":1800,"children":1801},{},[1802],{"type":93,"value":644},{"type":87,"tag":96,"props":1804,"children":1805},{},[1806,1807,1812,1813,1818],{"type":93,"value":649},{"type":87,"tag":102,"props":1808,"children":1810},{"className":1809},[],[1811],{"type":93,"value":655},{"type":93,"value":657},{"type":87,"tag":102,"props":1814,"children":1816},{"className":1815},[],[1817],{"type":93,"value":336},{"type":93,"value":249},{"type":87,"tag":88,"props":1820,"children":1821},{"id":666},[1822],{"type":93,"value":669},{"type":87,"tag":96,"props":1824,"children":1825},{},[1826,1827,1832],{"type":93,"value":674},{"type":87,"tag":102,"props":1828,"children":1830},{"className":1829},[],[1831],{"type":93,"value":680},{"type":93,"value":682},{"type":87,"tag":96,"props":1834,"children":1835},{},[1836],{"type":93,"value":687},{"type":87,"tag":262,"props":1838,"children":1839},{},[1840,1849,1858,1867],{"type":87,"tag":266,"props":1841,"children":1842},{},[1843,1848],{"type":87,"tag":102,"props":1844,"children":1846},{"className":1845},[],[1847],{"type":93,"value":699},{"type":93,"value":701},{"type":87,"tag":266,"props":1850,"children":1851},{},[1852,1857],{"type":87,"tag":102,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":93,"value":710},{"type":93,"value":712},{"type":87,"tag":266,"props":1859,"children":1860},{},[1861,1866],{"type":87,"tag":102,"props":1862,"children":1864},{"className":1863},[],[1865],{"type":93,"value":721},{"type":93,"value":723},{"type":87,"tag":266,"props":1868,"children":1869},{},[1870,1875],{"type":87,"tag":102,"props":1871,"children":1873},{"className":1872},[],[1874],{"type":93,"value":732},{"type":93,"value":734},{"type":87,"tag":96,"props":1877,"children":1878},{},[1879,1880,1885],{"type":93,"value":739},{"type":87,"tag":102,"props":1881,"children":1883},{"className":1882},[],[1884],{"type":93,"value":745},{"type":93,"value":747},{"type":87,"tag":88,"props":1887,"children":1888},{"id":750},[1889],{"type":93,"value":753},{"type":87,"tag":96,"props":1891,"children":1892},{},[1893],{"type":93,"value":758},{"type":87,"tag":348,"props":1895,"children":1896},{"id":761},[1897],{"type":93,"value":764},{"type":87,"tag":262,"props":1899,"children":1900},{},[1901,1909,1917,1925,1933],{"type":87,"tag":266,"props":1902,"children":1903},{},[1904,1908],{"type":87,"tag":373,"props":1905,"children":1906},{},[1907],{"type":93,"value":775},{"type":93,"value":777},{"type":87,"tag":266,"props":1910,"children":1911},{},[1912,1916],{"type":87,"tag":373,"props":1913,"children":1914},{},[1915],{"type":93,"value":785},{"type":93,"value":787},{"type":87,"tag":266,"props":1918,"children":1919},{},[1920,1924],{"type":87,"tag":373,"props":1921,"children":1922},{},[1923],{"type":93,"value":795},{"type":93,"value":797},{"type":87,"tag":266,"props":1926,"children":1927},{},[1928,1932],{"type":87,"tag":373,"props":1929,"children":1930},{},[1931],{"type":93,"value":805},{"type":93,"value":807},{"type":87,"tag":266,"props":1934,"children":1935},{},[1936,1940,1941,1946,1947,1952,1953,1958,1959,1964,1965],{"type":87,"tag":373,"props":1937,"children":1938},{},[1939],{"type":93,"value":815},{"type":93,"value":817},{"type":87,"tag":102,"props":1942,"children":1944},{"className":1943},[],[1945],{"type":93,"value":823},{"type":93,"value":825},{"type":87,"tag":102,"props":1948,"children":1950},{"className":1949},[],[1951],{"type":93,"value":831},{"type":93,"value":833},{"type":87,"tag":102,"props":1954,"children":1956},{"className":1955},[],[1957],{"type":93,"value":839},{"type":93,"value":833},{"type":87,"tag":102,"props":1960,"children":1962},{"className":1961},[],[1963],{"type":93,"value":846},{"type":93,"value":833},{"type":87,"tag":102,"props":1966,"children":1968},{"className":1967},[],[1969],{"type":93,"value":853},{"type":87,"tag":348,"props":1971,"children":1972},{"id":856},[1973],{"type":93,"value":859},{"type":87,"tag":262,"props":1975,"children":1976},{},[1977,1985,1993],{"type":87,"tag":266,"props":1978,"children":1979},{},[1980,1984],{"type":87,"tag":373,"props":1981,"children":1982},{},[1983],{"type":93,"value":775},{"type":93,"value":871},{"type":87,"tag":266,"props":1986,"children":1987},{},[1988,1992],{"type":87,"tag":373,"props":1989,"children":1990},{},[1991],{"type":93,"value":785},{"type":93,"value":880},{"type":87,"tag":266,"props":1994,"children":1995},{},[1996,2000,2001,2006,2007,2011],{"type":87,"tag":373,"props":1997,"children":1998},{},[1999],{"type":93,"value":805},{"type":93,"value":889},{"type":87,"tag":102,"props":2002,"children":2004},{"className":2003},[],[2005],{"type":93,"value":853},{"type":93,"value":896},{"type":87,"tag":373,"props":2008,"children":2009},{},[2010],{"type":93,"value":901},{"type":93,"value":903},{"type":87,"tag":348,"props":2013,"children":2014},{"id":906},[2015],{"type":93,"value":909},{"type":87,"tag":132,"props":2017,"children":2018},{"className":134,"code":912,"language":136,"meta":82,"style":82},[2019],{"type":87,"tag":102,"props":2020,"children":2021},{"__ignoreMap":82},[2022],{"type":87,"tag":142,"props":2023,"children":2024},{"class":144,"line":8},[2025,2029],{"type":87,"tag":142,"props":2026,"children":2027},{"style":148},[2028],{"type":93,"value":530},{"type":87,"tag":142,"props":2030,"children":2031},{"style":154},[2032],{"type":93,"value":928},{"type":87,"tag":96,"props":2034,"children":2035},{},[2036],{"type":93,"value":933},{"type":87,"tag":348,"props":2038,"children":2039},{"id":936},[2040],{"type":93,"value":939},{"type":87,"tag":96,"props":2042,"children":2043},{},[2044],{"type":93,"value":944},{"type":87,"tag":88,"props":2046,"children":2047},{"id":947},[2048],{"type":93,"value":950},{"type":87,"tag":96,"props":2050,"children":2051},{},[2052],{"type":93,"value":955},{"type":87,"tag":262,"props":2054,"children":2055},{},[2056,2066,2070,2080],{"type":87,"tag":266,"props":2057,"children":2058},{},[2059,2060,2065],{"type":93,"value":963},{"type":87,"tag":102,"props":2061,"children":2063},{"className":2062},[],[2064],{"type":93,"value":969},{"type":93,"value":971},{"type":87,"tag":266,"props":2067,"children":2068},{},[2069],{"type":93,"value":976},{"type":87,"tag":266,"props":2071,"children":2072},{},[2073,2074,2079],{"type":93,"value":981},{"type":87,"tag":102,"props":2075,"children":2077},{"className":2076},[],[2078],{"type":93,"value":987},{"type":93,"value":989},{"type":87,"tag":266,"props":2081,"children":2082},{},[2083],{"type":93,"value":994},{"type":87,"tag":88,"props":2085,"children":2086},{"id":997},[2087],{"type":93,"value":1000},{"type":87,"tag":132,"props":2089,"children":2090},{"className":1003,"code":1004,"language":1005,"meta":82,"style":82},[2091],{"type":87,"tag":102,"props":2092,"children":2093},{"__ignoreMap":82},[2094,2101,2148,2187,2226,2245,2276,2299,2314,2337,2352],{"type":87,"tag":142,"props":2095,"children":2096},{"class":144,"line":8},[2097],{"type":87,"tag":142,"props":2098,"children":2099},{"style":1015},[2100],{"type":93,"value":1018},{"type":87,"tag":142,"props":2102,"children":2103},{"class":144,"line":42},[2104,2108,2112,2116,2120,2124,2128,2132,2136,2140,2144],{"type":87,"tag":142,"props":2105,"children":2106},{"style":1024},[2107],{"type":93,"value":1027},{"type":87,"tag":142,"props":2109,"children":2110},{"style":177},[2111],{"type":93,"value":1032},{"type":87,"tag":142,"props":2113,"children":2114},{"style":1024},[2115],{"type":93,"value":1037},{"type":87,"tag":142,"props":2117,"children":2118},{"style":1024},[2119],{"type":93,"value":1042},{"type":87,"tag":142,"props":2121,"children":2122},{"style":163},[2123],{"type":93,"value":1047},{"type":87,"tag":142,"props":2125,"children":2126},{"style":1050},[2127],{"type":93,"value":1053},{"type":87,"tag":142,"props":2129,"children":2130},{"style":163},[2131],{"type":93,"value":1058},{"type":87,"tag":142,"props":2133,"children":2134},{"style":154},[2135],{"type":93,"value":1063},{"type":87,"tag":142,"props":2137,"children":2138},{"style":163},[2139],{"type":93,"value":1068},{"type":87,"tag":142,"props":2141,"children":2142},{"style":154},[2143],{"type":93,"value":1073},{"type":87,"tag":142,"props":2145,"children":2146},{"style":163},[2147],{"type":93,"value":1078},{"type":87,"tag":142,"props":2149,"children":2150},{"class":144,"line":32},[2151,2155,2159,2163,2167,2171,2175,2179,2183],{"type":87,"tag":142,"props":2152,"children":2153},{"style":1024},[2154],{"type":93,"value":1027},{"type":87,"tag":142,"props":2156,"children":2157},{"style":177},[2158],{"type":93,"value":1090},{"type":87,"tag":142,"props":2160,"children":2161},{"style":1024},[2162],{"type":93,"value":1037},{"type":87,"tag":142,"props":2164,"children":2165},{"style":1024},[2166],{"type":93,"value":1042},{"type":87,"tag":142,"props":2168,"children":2169},{"style":163},[2170],{"type":93,"value":1103},{"type":87,"tag":142,"props":2172,"children":2173},{"style":1050},[2174],{"type":93,"value":1053},{"type":87,"tag":142,"props":2176,"children":2177},{"style":163},[2178],{"type":93,"value":1112},{"type":87,"tag":142,"props":2180,"children":2181},{"style":154},[2182],{"type":93,"value":1117},{"type":87,"tag":142,"props":2184,"children":2185},{"style":163},[2186],{"type":93,"value":1078},{"type":87,"tag":142,"props":2188,"children":2189},{"class":144,"line":14},[2190,2194,2198,2202,2206,2210,2214,2218,2222],{"type":87,"tag":142,"props":2191,"children":2192},{"style":1024},[2193],{"type":93,"value":1027},{"type":87,"tag":142,"props":2195,"children":2196},{"style":177},[2197],{"type":93,"value":1133},{"type":87,"tag":142,"props":2199,"children":2200},{"style":1024},[2201],{"type":93,"value":1037},{"type":87,"tag":142,"props":2203,"children":2204},{"style":1024},[2205],{"type":93,"value":1042},{"type":87,"tag":142,"props":2207,"children":2208},{"style":163},[2209],{"type":93,"value":1146},{"type":87,"tag":142,"props":2211,"children":2212},{"style":1050},[2213],{"type":93,"value":1053},{"type":87,"tag":142,"props":2215,"children":2216},{"style":163},[2217],{"type":93,"value":1112},{"type":87,"tag":142,"props":2219,"children":2220},{"style":154},[2221],{"type":93,"value":1159},{"type":87,"tag":142,"props":2223,"children":2224},{"style":163},[2225],{"type":93,"value":1078},{"type":87,"tag":142,"props":2227,"children":2228},{"class":144,"line":78},[2229,2233,2237,2241],{"type":87,"tag":142,"props":2230,"children":2231},{"style":1024},[2232],{"type":93,"value":1171},{"type":87,"tag":142,"props":2234,"children":2235},{"style":163},[2236],{"type":93,"value":1146},{"type":87,"tag":142,"props":2238,"children":2239},{"style":1050},[2240],{"type":93,"value":1180},{"type":87,"tag":142,"props":2242,"children":2243},{"style":163},[2244],{"type":93,"value":1185},{"type":87,"tag":142,"props":2246,"children":2247},{"class":144,"line":222},[2248,2252,2256,2260,2264,2268,2272],{"type":87,"tag":142,"props":2249,"children":2250},{"style":1024},[2251],{"type":93,"value":1027},{"type":87,"tag":142,"props":2253,"children":2254},{"style":177},[2255],{"type":93,"value":1197},{"type":87,"tag":142,"props":2257,"children":2258},{"style":1024},[2259],{"type":93,"value":1037},{"type":87,"tag":142,"props":2261,"children":2262},{"style":1024},[2263],{"type":93,"value":1042},{"type":87,"tag":142,"props":2265,"children":2266},{"style":163},[2267],{"type":93,"value":1210},{"type":87,"tag":142,"props":2269,"children":2270},{"style":1050},[2271],{"type":93,"value":1053},{"type":87,"tag":142,"props":2273,"children":2274},{"style":163},[2275],{"type":93,"value":1219},{"type":87,"tag":142,"props":2277,"children":2278},{"class":144,"line":1222},[2279,2283,2287,2291,2295],{"type":87,"tag":142,"props":2280,"children":2281},{"style":163},[2282],{"type":93,"value":1228},{"type":87,"tag":142,"props":2284,"children":2285},{"style":154},[2286],{"type":93,"value":1233},{"type":87,"tag":142,"props":2288,"children":2289},{"style":163},[2290],{"type":93,"value":1238},{"type":87,"tag":142,"props":2292,"children":2293},{"style":154},[2294],{"type":93,"value":1243},{"type":87,"tag":142,"props":2296,"children":2297},{"style":163},[2298],{"type":93,"value":1248},{"type":87,"tag":142,"props":2300,"children":2301},{"class":144,"line":1251},[2302,2306,2310],{"type":87,"tag":142,"props":2303,"children":2304},{"style":163},[2305],{"type":93,"value":1257},{"type":87,"tag":142,"props":2307,"children":2308},{"style":154},[2309],{"type":93,"value":1262},{"type":87,"tag":142,"props":2311,"children":2312},{"style":163},[2313],{"type":93,"value":1267},{"type":87,"tag":142,"props":2315,"children":2316},{"class":144,"line":1270},[2317,2321,2325,2329,2333],{"type":87,"tag":142,"props":2318,"children":2319},{"style":163},[2320],{"type":93,"value":1276},{"type":87,"tag":142,"props":2322,"children":2323},{"style":154},[2324],{"type":93,"value":1281},{"type":87,"tag":142,"props":2326,"children":2327},{"style":163},[2328],{"type":93,"value":833},{"type":87,"tag":142,"props":2330,"children":2331},{"style":154},[2332],{"type":93,"value":1290},{"type":87,"tag":142,"props":2334,"children":2335},{"style":163},[2336],{"type":93,"value":1267},{"type":87,"tag":142,"props":2338,"children":2339},{"class":144,"line":1297},[2340,2344,2348],{"type":87,"tag":142,"props":2341,"children":2342},{"style":163},[2343],{"type":93,"value":1303},{"type":87,"tag":142,"props":2345,"children":2346},{"style":177},[2347],{"type":93,"value":1308},{"type":87,"tag":142,"props":2349,"children":2350},{"style":163},[2351],{"type":93,"value":1248},{"type":87,"tag":142,"props":2353,"children":2354},{"class":144,"line":1315},[2355],{"type":87,"tag":142,"props":2356,"children":2357},{"style":163},[2358],{"type":93,"value":1321},{"type":87,"tag":1323,"props":2360,"children":2361},{},[2362],{"type":93,"value":1327},{"title":82,"searchDepth":32,"depth":32,"links":2364},[2365,2366,2367,2368,2369,2374,2375,2381,2382],{"id":90,"depth":42,"text":94},{"id":127,"depth":42,"text":130},{"id":252,"depth":42,"text":255},{"id":303,"depth":42,"text":306},{"id":322,"depth":42,"text":325,"children":2370},[2371,2372,2373],{"id":350,"depth":32,"text":353},{"id":387,"depth":32,"text":390},{"id":488,"depth":32,"text":491},{"id":666,"depth":42,"text":669},{"id":750,"depth":42,"text":753,"children":2376},[2377,2378,2379,2380],{"id":761,"depth":32,"text":764},{"id":856,"depth":32,"text":859},{"id":906,"depth":32,"text":909},{"id":936,"depth":32,"text":939},{"id":947,"depth":42,"text":950},{"id":997,"depth":42,"text":1000},1780603564892]