[{"data":1,"prerenderedAt":617},["ShallowReactive",2],{"repo-tree":3,"repo-\u002Fpackages\u002Fpulumi-infisical\u002Freadme":283},[4,7,10,13,16,19,22,25,28,31,34,37,40,43,46,49,52,55,58,61,64,67,69,72,75,78,81,84,86,88,90,93,96,99,102,105,108,111,114,117,120,123,125,127,129,131,133,135,138,141,143,146,149,152,155,158,161,164,167,169,172,175,178,180,183,186,189,192,195,198,201,203,206,209,212,215,218,221,224,227,230,233,236,239,242,245,248,251,254,257,260,263,266,269,272,275,278,281],{"path":5,"title":6},"\u002Fagents\u002Fbackend-code-style","Backend Conventions",{"path":8,"title":9},"\u002Fagents\u002Fdatabase","Database",{"path":11,"title":12},"\u002Fagents\u002Fportal-code-style","Portal Conventions",{"path":14,"title":15},"\u002Fagents\u002Ftranslation","Translation",{"path":17,"title":18},"\u002Fconventions\u002Fbackend-coding","Backend coding conventions",{"path":20,"title":21},"\u002Fconventions\u002Ffrontend-coding","Frontend coding conventions",{"path":23,"title":24},"\u002Fdevelopment-process","Development process",{"path":26,"title":27},"\u002Flearning-api-preview-hetzner-setup","Learning API Preview on Hetzner + Cloudflare",{"path":29,"title":30},"\u002Flearning-api-preview-vm-plan","Learning API Preview VM Plan",{"path":32,"title":33},"\u002Fmonorepo-structure","Monorepo structure",{"path":35,"title":36},"\u002Foperations","Operations — bugs and support",{"path":38,"title":39},"\u002Fpostmortems\u002F2026-03-16_onboarding-currency-regression","Onboarding Zod transform silently broken — web signups assigned wrong checkout currency",{"path":41,"title":42},"\u002Fpostmortems\u002Freadme","Postmortems",{"path":44,"title":45},"\u002Fpostmortems\u002F_template","TEMPLATE",{"path":47,"title":48},"\u002Fpostmortems\u002Fposthog-comparison","Postmortem practice — comparison with PostHog",{"path":50,"title":51},"\u002Fpreview-environment-plan","Preview Environment Plan",{"path":53,"title":54},"\u002Fprinciples","Engineering principles",{"path":56,"title":57},"\u002Fworking-with-ai","Working with AI",{"path":59,"title":60},"\u002F.claude\u002Fskills\u002Feval-playground\u002Fskill","Eval Playground — Co-development Skill",{"path":62,"title":63},"\u002F.claude\u002Fskills\u002Ffigma-diff-section\u002Fskill","Figma Diff Section Pipeline",{"path":65,"title":66},"\u002Fagents","AGENTS.md",{"path":68,"title":66},"\u002Fclaude",{"path":70,"title":71},"\u002Freadme","Studyflash",{"path":73,"title":74},"\u002Fapps\u002Fcore-api\u002Fagents","Core API (apps\u002Fcore-api)",{"path":76,"title":77},"\u002Fapps\u002Fcore-api\u002Freadme","README",{"path":79,"title":80},"\u002Fapps\u002Femail-previews\u002Fagents","Email Previews (apps\u002Femail-previews)",{"path":82,"title":83},"\u002Fapps\u002Flanding-page\u002Fagents","Landing Page (apps\u002Flanding-page)",{"path":85,"title":83},"\u002Fapps\u002Flanding-page\u002Fclaude",{"path":87,"title":66},"\u002Fapps\u002Flearning-api\u002Fagents",{"path":89,"title":77},"\u002Fapps\u002Flearning-api\u002Freadme",{"path":91,"title":92},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Feval_metrics_design","Surface-Specific Eval Metrics Design",{"path":94,"title":95},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ftest_set","Quiz Eval Test Set",{"path":97,"title":98},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Ffrontend\u002Freadme","React + TypeScript + Vite",{"path":100,"title":101},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fcontent-pillar-shallow-coverage\u002Freadme","Content pillar misses subtopics in dense documents",{"path":103,"title":104},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fdocling-empty-section-headers\u002Freadme","Empty section headers dropped by docling chunker",{"path":106,"title":107},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fknown-issues\u002Fdocling-table-reading-order\u002Freadme","Table\u002Fbox layout causes wrong reading order",{"path":109,"title":110},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Fmetrics\u002Freadme","Quiz eval metrics — canonical rubrics",{"path":112,"title":113},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-04-12-quiz-summary-feedback-current-state","Quiz and Summary Feedback Current State",{"path":115,"title":116},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-04-24-quiz-eval-metrics","Quiz Evaluation Metrics",{"path":118,"title":119},"\u002Fapps\u002Flearning-api\u002Fevals-playground\u002Freports\u002F2026-05-01-quiz-eval-current-state","Quiz Eval Current State",{"path":121,"title":122},"\u002Fapps\u002Flearning-api\u002Fmonitoring\u002Freadme","Monitoring Stack",{"path":124,"title":77},"\u002Fapps\u002Flearning-api\u002Fshared\u002Freadme",{"path":126,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fflashcard_agent\u002Freadme",{"path":128,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fingestion_agent\u002Freadme",{"path":130,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fquiz_agent\u002Freadme",{"path":132,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Flearning_agents\u002Fsummary_agent\u002Freadme",{"path":134,"title":77},"\u002Fapps\u002Flearning-api\u002Fworkers\u002Fparser\u002Freadme",{"path":136,"title":137},"\u002Fapps\u002Fmarketing-emails-preview\u002Fagents","Marketing Emails Preview (apps\u002Fmarketing-emails-preview)",{"path":139,"title":140},"\u002Fapps\u002Fmobile-app\u002Fagents","StudyFlash Mobile App - Claude Code Configuration",{"path":142,"title":140},"\u002Fapps\u002Fmobile-app\u002Fclaude",{"path":144,"title":145},"\u002Fapps\u002Fmountain-max\u002Fagents","Mountain Max (apps\u002Fmountain-max)",{"path":147,"title":148},"\u002Fapps\u002Fmountain-max\u002Fgame\u002Freadme","Mountain Max Game",{"path":150,"title":151},"\u002Fapps\u002Fportal\u002Fagents","Portal (apps\u002Fportal)",{"path":153,"title":154},"\u002Fapps\u002Fportal\u002Freadme","Nuxt Minimal Starter",{"path":156,"title":157},"\u002Fapps\u002Fportal\u002Fapp\u002Fcomposables\u002Ffiles\u002Freadme","File Upload Composables",{"path":159,"title":160},"\u002Fapps\u002Fportal\u002Fdocs\u002Flibrary-routing","Library Routing Documentation",{"path":162,"title":163},"\u002Fapps\u002Fsupabase\u002Fagents","Supabase (apps\u002Fsupabase)",{"path":165,"title":166},"\u002Fapps\u002Fwrapped\u002Fagents","Wrapped (apps\u002Fwrapped)",{"path":168,"title":98},"\u002Fapps\u002Fwrapped\u002Freadme",{"path":170,"title":171},"\u002Finfra\u002Freadme","infra\u002F",{"path":173,"title":174},"\u002Finfra\u002Fdns\u002Freadme","DNS Infrastructure",{"path":176,"title":177},"\u002Finfra\u002Fdokploy\u002Freadme","studyflash-dokploy",{"path":179,"title":77},"\u002Finfra\u002Fdokploy\u002Fsdk\u002Fnodejs\u002Freadme",{"path":181,"title":182},"\u002Finfra\u002Finfisical\u002Freadme","Infisical Infrastructure",{"path":184,"title":185},"\u002Finfra\u002Flearning-api\u002Freadme","Pulumi GCP TypeScript Template",{"path":187,"title":188},"\u002Finfra\u002Fopenreplay\u002Freadme","OpenReplay on Hetzner",{"path":190,"title":191},"\u002Finfra\u002Fscripts\u002Freadme","infra\u002Fscripts\u002F",{"path":193,"title":194},"\u002Finfra\u002Fturborepo-cache\u002Freadme","Turborepo Remote Cache Infrastructure",{"path":196,"title":197},"\u002Finternal\u002Fchatwoot\u002Freadme","Chatwoot Infrastructure",{"path":199,"title":200},"\u002Finternal\u002Fchatwoot\u002Fprovider\u002Freadme","studyflash-chatwoot-provider",{"path":202,"title":77},"\u002Finternal\u002Fchatwoot\u002Fprovider\u002Fsdk\u002Fnodejs\u002Freadme",{"path":204,"title":205},"\u002Finternal\u002Fdocs\u002Freadme","internal\u002Fdocs",{"path":207,"title":208},"\u002Finternal\u002Fsupport-bot\u002Fclaude","Support Bot (Maximilian)",{"path":210,"title":211},"\u002Finternal\u002Fsupport-bot\u002Freadme","Studyflash Customer Support Bot (Maximilian)",{"path":213,"title":214},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Faccount_issues","Account Issues",{"path":216,"title":217},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fbilling_invoice","Billing Invoice",{"path":219,"title":220},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fcontent_upload","Content Upload",{"path":222,"title":223},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fdata_loss","Data Loss",{"path":225,"title":226},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fflashcard_issues","Flashcard Issues",{"path":228,"title":229},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fgarbage","Garbage",{"path":231,"title":232},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fgeneral_how_to","General How To",{"path":234,"title":235},"\u002Finternal\u002Fsupport-bot\u002Fkb","Knowledge Base Index",{"path":237,"title":238},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Flanguage_issues","Language Issues",{"path":240,"title":241},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmindmap_issues","Mindmap Issues",{"path":243,"title":244},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmisunderstanding","Misunderstanding",{"path":246,"title":247},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fmock_exam_issues","Mock Exam Issues",{"path":249,"title":250},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fpodcast_issues","Podcast Issues",{"path":252,"title":253},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fquiz_issues","Quiz Issues",{"path":255,"title":256},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Frefund_request","Refund Request",{"path":258,"title":259},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsubscription_cancellation","Subscription Cancellation",{"path":261,"title":262},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsubscription_info","Subscription Info",{"path":264,"title":265},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fsummary_issues","Summary Issues",{"path":267,"title":268},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Ftechnical_errors","Technical Errors",{"path":270,"title":271},"\u002Finternal\u002Fsupport-bot\u002Fkb\u002Fvideo_issues","Video Issues",{"path":273,"title":274},"\u002Fpackages\u002Fcommon\u002Fdocs\u002Fearly-access-features","Declarative Early Access Features",{"path":276,"title":277},"\u002Fpackages\u002Fcommon\u002Fscripts\u002Freadme","Common Package Scripts",{"path":279,"title":280},"\u002Fpackages\u002Fdevtools\u002Ffigma-plugins\u002Freadme","Figma plugins",{"path":282,"title":77},"\u002Fpackages\u002Fpulumi-infisical\u002Freadme",{"id":284,"title":77,"body":285,"description":610,"extension":611,"lastReviewed":612,"meta":613,"navigation":466,"owner":612,"path":282,"seo":614,"status":612,"stem":615,"tags":612,"__hash__":616},"repo\u002Fpackages\u002Fpulumi-infisical\u002FREADME.md",{"type":286,"value":287,"toc":607},"minimark",[288,301,329,334,337,577,592,603],[289,290,291,292,296,297,300],"p",{},"Generated Pulumi SDK for the Infisical Terraform provider, shared across every\ninfra Pulumi stack that needs to manage Infisical-side resources (currently\n",[293,294,295],"code",{},"infra\u002Finfisical","; future stacks add themselves with ",[293,298,299],{},"@pulumi\u002Finfisical: workspace:*",").",[302,303,304],"blockquote",{},[289,305,306,307,316,317,322,323,328],{},"Derived work of ",[308,309,313],"a",{"href":310,"rel":311},"https:\u002F\u002Fgithub.com\u002Finfisical\u002Fterraform-provider-infisical",[312],"nofollow",[293,314,315],{},"terraform-provider-infisical",",\ndistributed under ",[308,318,321],{"href":319,"rel":320},"https:\u002F\u002Fwww.mozilla.org\u002Fen-US\u002FMPL\u002F2.0\u002F",[312],"MPL 2.0",". Bugs and missing features\nbelong ",[308,324,327],{"href":325,"rel":326},"https:\u002F\u002Fgithub.com\u002Finfisical\u002Fterraform-provider-infisical\u002Fissues",[312],"upstream",".",[330,331,333],"h2",{"id":332},"regenerating","Regenerating",[289,335,336],{},"The SDK is generated by Pulumi's TF bridge and committed in this repo. To pull in a\nnew provider version:",[338,339,344],"pre",{"className":340,"code":341,"language":342,"meta":343,"style":343},"language-sh shiki shiki-themes github-light github-dark","# from a clean throwaway dir, run pulumi against the upstream provider\nmkdir -p \u002Ftmp\u002Fregen && cd \u002Ftmp\u002Fregen\ncat > Pulumi.yaml \u003C\u003CEOF\nname: regen\nruntime: nodejs\npackages:\n  infisical:\n    source: terraform-provider\n    version: \u003Cnew-tf-bridge-version>\n    parameters:\n      - Infisical\u002Finfisical\nEOF\npulumi install\n\n# overwrite this package with the freshly-generated SDK\nrm -rf \u003Crepo>\u002Fpackages\u002Fpulumi-infisical\u002F*.ts \\\n       \u003Crepo>\u002Fpackages\u002Fpulumi-infisical\u002Ftypes \\\n       \u003Crepo>\u002Fpackages\u002Fpulumi-infisical\u002Fconfig \\\n       \u003Crepo>\u002Fpackages\u002Fpulumi-infisical\u002Fscripts\ncp -r sdks\u002Finfisical\u002F. \u003Crepo>\u002Fpackages\u002Fpulumi-infisical\u002F\n","sh","",[293,345,346,355,380,399,405,411,417,423,429,435,441,447,452,461,468,474,507,524,540,554],{"__ignoreMap":343},[347,348,351],"span",{"class":349,"line":350},"line",1,[347,352,354],{"class":353},"sJ8bj","# from a clean throwaway dir, run pulumi against the upstream provider\n",[347,356,358,362,366,370,374,377],{"class":349,"line":357},2,[347,359,361],{"class":360},"sScJk","mkdir",[347,363,365],{"class":364},"sj4cs"," -p",[347,367,369],{"class":368},"sZZnC"," \u002Ftmp\u002Fregen",[347,371,373],{"class":372},"sVt8B"," && ",[347,375,376],{"class":364},"cd",[347,378,379],{"class":368}," \u002Ftmp\u002Fregen\n",[347,381,383,386,390,393,396],{"class":349,"line":382},3,[347,384,385],{"class":360},"cat",[347,387,389],{"class":388},"szBVR"," >",[347,391,392],{"class":368}," Pulumi.yaml",[347,394,395],{"class":388}," \u003C\u003C",[347,397,398],{"class":368},"EOF\n",[347,400,402],{"class":349,"line":401},4,[347,403,404],{"class":368},"name: regen\n",[347,406,408],{"class":349,"line":407},5,[347,409,410],{"class":368},"runtime: nodejs\n",[347,412,414],{"class":349,"line":413},6,[347,415,416],{"class":368},"packages:\n",[347,418,420],{"class":349,"line":419},7,[347,421,422],{"class":368},"  infisical:\n",[347,424,426],{"class":349,"line":425},8,[347,427,428],{"class":368},"    source: terraform-provider\n",[347,430,432],{"class":349,"line":431},9,[347,433,434],{"class":368},"    version: \u003Cnew-tf-bridge-version>\n",[347,436,438],{"class":349,"line":437},10,[347,439,440],{"class":368},"    parameters:\n",[347,442,444],{"class":349,"line":443},11,[347,445,446],{"class":368},"      - Infisical\u002Finfisical\n",[347,448,450],{"class":349,"line":449},12,[347,451,398],{"class":368},[347,453,455,458],{"class":349,"line":454},13,[347,456,457],{"class":360},"pulumi",[347,459,460],{"class":368}," install\n",[347,462,464],{"class":349,"line":463},14,[347,465,467],{"emptyLinePlaceholder":466},true,"\n",[347,469,471],{"class":349,"line":470},15,[347,472,473],{"class":353},"# overwrite this package with the freshly-generated SDK\n",[347,475,477,480,483,486,489,492,495,498,501,504],{"class":349,"line":476},16,[347,478,479],{"class":360},"rm",[347,481,482],{"class":364}," -rf",[347,484,485],{"class":388}," \u003C",[347,487,488],{"class":368},"rep",[347,490,491],{"class":372},"o",[347,493,494],{"class":388},">",[347,496,497],{"class":368},"\u002Fpackages\u002Fpulumi-infisical\u002F",[347,499,500],{"class":364},"*",[347,502,503],{"class":368},".ts",[347,505,506],{"class":364}," \\\n",[347,508,510,513,515,517,519,522],{"class":349,"line":509},17,[347,511,512],{"class":388},"       \u003C",[347,514,488],{"class":368},[347,516,491],{"class":372},[347,518,494],{"class":388},[347,520,521],{"class":368},"\u002Fpackages\u002Fpulumi-infisical\u002Ftypes",[347,523,506],{"class":364},[347,525,527,529,531,533,535,538],{"class":349,"line":526},18,[347,528,512],{"class":388},[347,530,488],{"class":368},[347,532,491],{"class":372},[347,534,494],{"class":388},[347,536,537],{"class":368},"\u002Fpackages\u002Fpulumi-infisical\u002Fconfig",[347,539,506],{"class":364},[347,541,543,545,547,549,551],{"class":349,"line":542},19,[347,544,512],{"class":388},[347,546,488],{"class":368},[347,548,491],{"class":372},[347,550,494],{"class":388},[347,552,553],{"class":368},"\u002Fpackages\u002Fpulumi-infisical\u002Fscripts\n",[347,555,557,560,563,566,568,570,572,574],{"class":349,"line":556},20,[347,558,559],{"class":360},"cp",[347,561,562],{"class":364}," -r",[347,564,565],{"class":368}," sdks\u002Finfisical\u002F.",[347,567,485],{"class":388},[347,569,488],{"class":368},[347,571,491],{"class":372},[347,573,494],{"class":388},[347,575,576],{"class":368},"\u002Fpackages\u002Fpulumi-infisical\u002F\n",[289,578,579,580,583,584,587,588,591],{},"Then from the repo root: ",[293,581,582],{},"pnpm install"," (rebuilds ",[293,585,586],{},"bin\u002F"," via the SDK's postinstall),\n",[293,589,590],{},"pnpm --filter studyflash-infisical preview"," to confirm no behavioral drift.",[289,593,594,596,597,600,601,328],{},[293,595,586],{}," and ",[293,598,599],{},"node_modules\u002F"," are gitignored — both are regenerated locally on ",[293,602,582],{},[604,605,606],"style",{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}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);}",{"title":343,"searchDepth":357,"depth":357,"links":608},[609],{"id":332,"depth":357,"text":333},"Generated Pulumi SDK for the Infisical Terraform provider, shared across every\ninfra Pulumi stack that needs to manage Infisical-side resources (currently\ninfra\u002Finfisical; future stacks add themselves with @pulumi\u002Finfisical: workspace:*).","md",null,{},{"description":610},"packages\u002Fpulumi-infisical\u002FREADME","ECU7vMNfSizAHkhiyi20FYGuvegBK0_TYpLrH5QLqj0",1779007964825]