Create a workspace from a configuration or saved template.
Returns 201 when created, 200 for an identical retry with the same ID, or 409 if that ID has a different configuration. Set explain=true to check policies without creating anything.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Mirage","description":"Mirage gives AI agents one virtual filesystem for S3, Google Drive, Slack, GitHub, Notion, Postgres, and SSH, so shell commands work across services.","colors":{"primary":"#0C0C0C","light":"#FAFAFA","dark":"#000000"},"logo":{"light":"https://mintcdn.com/struktoai/7G-pGKhPIqaKqOXr/logo/light.svg?fit=max\u0026auto=format\u0026n=7G-pGKhPIqaKqOXr\u0026q=85\u0026s=d7007be7b5588a72b2072d2c33791785","dark":"https://mintcdn.com/struktoai/7G-pGKhPIqaKqOXr/logo/dark.svg?fit=max\u0026auto=format\u0026n=7G-pGKhPIqaKqOXr\u0026q=85\u0026s=0a255f925beb7370a41145f3f9185e9d"},"favicon":"https://mintcdn.com/struktoai/F9Lv_nTaj6By6crk/favicon.svg?fit=max\u0026auto=format\u0026n=F9Lv_nTaj6By6crk\u0026q=85\u0026s=bbca6fb54e64d72bdda46fb667828f1f","api":{"playground":{"display":"simple"},"examples":{"defaults":"all","languages":["curl","python","javascript"],"prefill":true}},"navbar":{"links":[{"icon":"globe","href":"https://www.strukto.ai/mirage","label":"mirage"},{"icon":"discord","href":"https://discord.gg/u8BPQ65KsS","label":""},{"icon":"x-twitter","href":"https://x.com/struktoai","label":""},{"icon":"github","href":"https://github.com/strukto-ai/mirage","label":"strukto-ai/mirage"}]},"footer":{"socials":{"github":"https://github.com/strukto-ai/mirage"}},"seo":{"metatags":{"keywords":"Mirage, filesystem for AI agents, virtual filesystem, AI agent tools, agent infrastructure, MCP alternative, bash for agents, S3 filesystem, Google Drive filesystem, Slack filesystem, GitHub filesystem, agent sandbox, Strukto","author":"Strukto","robots":"index, follow","googlebot":"index, follow","canonical":"https://docs.mirage.strukto.ai","theme-color":"#0C0C0C","color-scheme":"light dark","language":"en","category":"Technology","target":"developers","apple-mobile-web-app-capable":"yes","apple-mobile-web-app-status-bar-style":"black-translucent","og:type":"website","og:url":"https://docs.mirage.strukto.ai","og:image":"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png","og:image:alt":"Mirage: a virtual terminal for AI agents","og:site_name":"Mirage","og:locale":"en_US","twitter:card":"summary_large_image","twitter:site":"@struktoai","twitter:creator":"@struktoai","twitter:image":"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png","twitter:image:alt":"Mirage · A Virtual Terminal for AI Agents | Strukto"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"struktoai","hasAudioNarration":false,"actualSubdomain":"struktoai","customDomains":["docs.mirage.strukto.ai"],"gitSource":{"type":"github","owner":"strukto-ai","repo":"mirage","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af1de9112241f5ef5b92709","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"VFS","count":204},{"language":"default","tag":"Home","count":134},{"language":"default","tag":"TS","count":95},{"language":"default","tag":"API reference","count":94},{"language":"default","tag":"Python","count":91},{"language":"default","tag":"CLIs","count":79},{"language":"default","tag":"Workspaces","count":51},{"language":"default","tag":"Object Storage","count":48},{"language":"default","tag":"Configuration","count":37},{"language":"default","tag":"Cloud \u0026 Productivity","count":35}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":"#content-area:has(#api-playground-2-operation-page) #header>.prose{margin-top:1.5rem}"}],"page":{"pagePath":"api/operations/workspaces/create-workspace","slug":"/api/operations/workspaces/create-workspace","pageMetadata":{"title":"Create workspace","description":"Create a workspace from a configuration or saved template.\n\nReturns `201` when created, `200` for an identical retry with the same ID, or `409` if that ID has a different configuration. Set `explain=true` to check policies without creating anything.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces","href":"/api/operations/workspaces/create-workspace","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Create a workspace from a configuration or saved template.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Returns \", _jsx(_components.code, {\n children: \"201\"\n }), \" when created, \", _jsx(_components.code, {\n children: \"200\"\n }), \" for an identical retry with the same ID, or \", _jsx(_components.code, {\n children: \"409\"\n }), \" if that ID has a different configuration. Set \", _jsx(_components.code, {\n children: \"explain=true\"\n }), \" to check policies without creating anything.\"]\n })]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(`div`,{className:`mint-hidden`}),`\n`,_jsxs(Accordion,{title:`Errors`,id:`errors`,children:[_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`The token is missing or wrong`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:`A policy or mount mode refused the call`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`409`})}),_jsx(_components.td,{children:`The identifier already exists with a different workspace configuration.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`422`})}),_jsx(_components.td,{children:`Validation Error`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`429`})}),_jsx(_components.td,{children:`Past a rate limit, or a new session past max_sessions`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`503`})}),_jsx(_components.td,{children:`The server is at max_workspaces, or shutting down`})]})]})]}),_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/api/errors`,children:`error examples and recovery steps`}),`. The `,_jsx(_components.a,{href:`https://github.com/strukto-ai/mirage/blob/main/docs/openapi.yaml`,children:`complete OpenAPI contract`}),` includes every response schema.`]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create workspace","description":"Create a workspace from a configuration or saved template.\n\nReturns `201` when created, `200` for an identical retry with the same ID, or `409` if that ID has a different configuration. Set `explain=true` to check policies without creating anything.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces","href":"/api/operations/workspaces/create-workspace","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,..._provideComponents(),...props.components},{Accordion,CodeBlock,ResponseExample,Table}=_components;if(!Accordion)_missingMdxReference(`Accordion`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!ResponseExample)_missingMdxReference(`ResponseExample`,true);if(!Table)_missingMdxReference(`Table`,true);return _jsxs(_Fragment,{children:[_jsx(`div`,{className:`mint-hidden`,children:_jsx(ResponseExample,{children:_jsx(CodeBlock,{filename:`201 Created`,numberOfLines:`23`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`23`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"demo\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"status\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"running\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"created_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1794009600`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"system_time\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"sessions\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"session_id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"01a1b425-ec80-7038-86e0-75b597344043\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"cwd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mounts\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"prefix\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"/\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"vfs\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"ram\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mode\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"write\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"description\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"backend\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"workspace\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"mountpoint\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"internals\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})})})}),`\n`,_jsxs(Accordion,{title:`Errors`,id:`errors`,children:[_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Status`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`401`})}),_jsx(_components.td,{children:`The token is missing or wrong`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`403`})}),_jsx(_components.td,{children:`A policy or mount mode refused the call`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`409`})}),_jsx(_components.td,{children:`The identifier already exists with a different workspace configuration.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`422`})}),_jsx(_components.td,{children:`Validation Error`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`429`})}),_jsx(_components.td,{children:`Past a rate limit, or a new session past max_sessions`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:_jsx(_components.code,{children:`503`})}),_jsx(_components.td,{children:`The server is at max_workspaces, or shutting down`})]})]})]}),_jsxs(_components.p,{children:[`See `,_jsx(_components.a,{href:`/api/errors`,children:`error examples and recovery steps`}),`. The `,_jsx(_components.a,{href:`https://github.com/strukto-ai/mirage/blob/main/docs/openapi.yaml`,children:`complete OpenAPI contract`}),` includes every response schema.`]})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Create workspace","description":"Create a workspace from a configuration or saved template.\n\nReturns `201` when created, `200` for an identical retry with the same ID, or `409` if that ID has a different configuration. Set `explain=true` to check policies without creating anything.","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces","href":"/api/operations/workspaces/create-workspace","autogeneratedByOpenApi":true}}}},"mdxExtracts":{"tableOfContents":[],"codeExamples":{"response":{"type":"ResponseExample","children":[{"filename":"201 Created","html":"\u003cpre class=\"shiki shiki-themes github-light-default dark-plus\" style=\"background-color:#ffffff;--shiki-dark-bg:#0B0C0E;color:#1f2328;--shiki-dark:#D4D4D4\" language=\"json\">\u003ccode language=\"json\" numberOfLines=\"23\">\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">{\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"demo\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"status\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"running\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"created_at\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#B5CEA8\">1794009600\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"system_time\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"sessions\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"session_id\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"01a1b425-ec80-7038-86e0-75b597344043\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"cwd\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"/\"\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mounts\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: [\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> {\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"prefix\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"/\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"vfs\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"ram\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mode\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"write\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"description\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"backend\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0A3069;--shiki-dark:#CE9178\">\"workspace\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">,\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"mountpoint\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> }\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\"> ],\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#116329;--shiki-dark:#9CDCFE\"> \"internals\"\u003c/span>\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">: \u003c/span>\u003cspan style=\"color:#0550AE;--shiki-dark:#569CD6\">null\u003c/span>\u003c/span>\n\u003cspan class=\"line\">\u003cspan style=\"color:#1F2328;--shiki-dark:#D4D4D4\">}\u003c/span>\u003c/span>\n\u003c/code>\u003c/pre>"}],"attributes":[]}}},"jsLinks":[],"dynamicCss":".mint-hidden {\n display: none\n}","openApiReferenceData":{"operation":{"summary":"Create workspace","operationId":"create_workspace_v1_workspaces_post","parameters":["f11d1d00-8985-42e3-b1ef-5d1c19a25755"],"requestBody":"5e188cd5-e827-43c8-ae0f-596b5745e1ff","responses":{"200":"37715361-53f7-40c7-a859-441906363831","201":"8c875cb3-9b0c-4976-8d35-41a54373d506"},"description":"Create a workspace from a configuration or saved template.\n\nReturns `201` when created, `200` for an identical retry with the same ID, or `409` if that ID has a different configuration. Set `explain=true` to check policies without creating anything.","tags":["Workspaces"],"x-hosts":["daemon"],"x-mint":{"content":"\u003cdiv className=\"hidden\">\n\u003cResponseExample>\n\n```json 201 Created\n{\n \"id\": \"demo\",\n \"status\": \"running\",\n \"created_at\": 1794009600,\n \"system_time\": null,\n \"sessions\": [\n {\n \"session_id\": \"01a1b425-ec80-7038-86e0-75b597344043\",\n \"cwd\": \"/\"\n }\n ],\n \"mounts\": [\n {\n \"prefix\": \"/\",\n \"vfs\": \"ram\",\n \"mode\": \"write\",\n \"description\": \"\",\n \"backend\": \"workspace\",\n \"mountpoint\": null\n }\n ],\n \"internals\": null\n}\n```\n\n\u003c/ResponseExample>\n\u003c/div>\n\n\u003cAccordion title=\"Errors\">\n\n| Status | Meaning |\n| --- | --- |\n| `401` | The token is missing or wrong |\n| `403` | A policy or mount mode refused the call |\n| `409` | The identifier already exists with a different workspace configuration. |\n| `422` | Validation Error |\n| `429` | Past a rate limit, or a new session past max_sessions |\n| `503` | The server is at max_workspaces, or shutting down |\n\nSee [error examples and recovery steps](/api/errors). The [complete OpenAPI contract](https://github.com/strukto-ai/mirage/blob/main/docs/openapi.yaml) includes every response schema.\n\n\u003c/Accordion>"},"method":"post","type":"path","servers":["afafde3b-bc70-4615-873f-4ee992b62907"],"security":["09ecccca-9871-40a1-a73f-73d80f8c9acc"],"path":"/v1/workspaces","baseUrlOptions":["http://127.0.0.1:8765"],"title":"Create workspace","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExamples":[{"dropdown":false,"language":"json","code":{"type":"pre","key":null,"ref":null,"props":{"className":"shiki shiki-themes github-light-default dark-plus","style":{"backgroundColor":"#ffffff","--shiki-dark-bg":"#0B0C0E","color":"#1f2328","--shiki-dark":"#D4D4D4"},"language":"json","children":{"type":"code","key":null,"ref":null,"props":{"language":"json","numberOfLines":"23","children":[{"type":"span","key":"0","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"{"}}}},"\n",{"type":"span","key":"2","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"demo\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"4","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"status\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"running\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"6","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"created_at\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#B5CEA8"},"children":"1794009600"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"8","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"system_time\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"10","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"sessions\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}}]}},"\n",{"type":"span","key":"12","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"14","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"session_id\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"01a1b425-ec80-7038-86e0-75b597344043\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"16","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"cwd\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"/\""}}]}},"\n",{"type":"span","key":"18","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"20","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" ],"}}}},"\n",{"type":"span","key":"22","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"mounts\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": ["}}]}},"\n",{"type":"span","key":"24","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" {"}}}},"\n",{"type":"span","key":"26","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"prefix\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"/\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"28","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"vfs\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"ram\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"30","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"mode\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"write\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"32","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"description\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"34","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"backend\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0A3069","--shiki-dark":"#CE9178"},"children":"\"workspace\""}},{"type":"span","key":"3","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":","}}]}},"\n",{"type":"span","key":"36","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"mountpoint\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"38","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" }"}}}},"\n",{"type":"span","key":"40","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":" ],"}}}},"\n",{"type":"span","key":"42","ref":null,"props":{"className":"line","children":[{"type":"span","key":"0","ref":null,"props":{"style":{"color":"#116329","--shiki-dark":"#9CDCFE"},"children":" \"internals\""}},{"type":"span","key":"1","ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":": "}},{"type":"span","key":"2","ref":null,"props":{"style":{"color":"#0550AE","--shiki-dark":"#569CD6"},"children":"null"}}]}},"\n",{"type":"span","key":"44","ref":null,"props":{"className":"line","children":{"type":"span","key":null,"ref":null,"props":{"style":{"color":"#1F2328","--shiki-dark":"#D4D4D4"},"children":"}"}}}},"\n"]}}}},"filename":"201 Created"}],"responseExampleType":"mdx","prefillPlaygroundWithExample":true,"prefillPlaygroundExamples":[{"body.config.oneOf.0.mounts./.vfs":"ram","body.config.oneOf.0.mounts./.mode.oneOf.0":"write","body.id.oneOf.0":"demo"}]},"dependencies":{"parameters":{"f11d1d00-8985-42e3-b1ef-5d1c19a25755":{"name":"explain","in":"query","description":"Return what the call would do without running it.","required":false,"schema":{"type":"boolean","default":false,"isRequired":false,"description":"Return what the call would do without running it.","uniqueKey":"","typeLabel":"boolean"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"config":{"oneOf":[{"type":"object","title":"WorkspaceConfig","description":"Workspace configuration. Supply config or template, never both.","required":["mounts"],"properties":{"mounts":{"additionalProperties":{"properties":{"vfs":{"type":"string","title":"Vfs","isRequired":true,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.vfs","typeLabel":"string"},"mode":{"oneOf":[{"type":"string","title":"MountMode","description":"Mount access level. `read` allows listing and reading. `write` also allows creating, modifying, and deleting files. `exec` additionally allows interpreter commands such as `python3` and `js`.\n\nInterpreter script files must be on an `exec` mount. Inline code and module execution require at least one `exec` mount; imports are not checked by path. Shell scripts follow the permissions of each command they run.","enum":["read","write","exec"],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.mounts.additionalProperties.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.mode","typeLabel":"enum\u003cstring> | null"},"config":{"additionalProperties":true,"type":"object","title":"Config","uniqueKey":"config.oneOf.0.mounts.additionalProperties.config","typeLabel":"Config · object"},"command_limits":{"additionalProperties":{"properties":{"max_bytes":{"oneOf":[{"type":"integer","title":"Max Bytes","minimum":0,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.max_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Bytes","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.max_bytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.max_bytes","typeLabel":"integer | null"},"max_lines":{"oneOf":[{"type":"integer","title":"Max Lines","minimum":0,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.max_lines.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Lines","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.max_lines.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.max_lines","typeLabel":"integer | null"},"timeout_seconds":{"oneOf":[{"type":"number","title":"Timeout Seconds","minimum":0,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.timeout_seconds.oneOf.0","typeLabel":"number"},{"type":"null","title":"Timeout Seconds","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.timeout_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.timeout_seconds","typeLabel":"number | null"},"walk_limit":{"oneOf":[{"type":"integer","title":"Walk Limit","minimum":-1,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.walk_limit.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Walk Limit","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.walk_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.walk_limit","typeLabel":"integer | null"},"on_exceed":{"type":"string","enum":["error","truncate"],"title":"OnExceed","default":"truncate","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties.on_exceed","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"type":"object","title":"Limit","description":"Limits for command output, execution time, and directory traversal. Use `on_exceed` to truncate results or return an error. A `walk_limit` of `-1` allows unlimited entries.","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits.additionalProperties","typeLabel":"Limit · object"},"type":"object","title":"Command Limits","uniqueKey":"config.oneOf.0.mounts.additionalProperties.command_limits","typeLabel":"Command Limits · object"},"backend":{"type":"string","enum":["workspace","fuse","fskit","nfs"],"title":"MountBackend","description":"How the mount is exposed. `workspace` is available only through Mirage. `fuse` and `fskit` expose operating-system mountpoints. `nfs` uses the system NFS client on Linux or macOS; Linux requires root.\n\nFSKit requires macOS 15.4 or later. FSKit and NFS require known file sizes for correct reads. NFS is read-only. The macFUSE FSKit adapter supports appends and metadata changes, but new-file and truncate-then-write operations can write zero-filled data instead of content. Select the backend explicitly.","default":"workspace","uniqueKey":"config.oneOf.0.mounts.additionalProperties.backend","typeLabel":"enum\u003cstring>"},"mountpoint":{"oneOf":[{"type":"string","title":"Mountpoint","uniqueKey":"config.oneOf.0.mounts.additionalProperties.mountpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Mountpoint","uniqueKey":"config.oneOf.0.mounts.additionalProperties.mountpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.mountpoint","typeLabel":"string | null"},"read":{"oneOf":[{"type":"string","title":"ReadPolicy","description":"Cache validation policy. `fresh` checks the backend before returning cached content. `bounded` allows cached content within the configured freshness limit. `pinned` is reserved and currently rejected.","enum":["fresh","bounded","pinned"],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.read.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.mounts.additionalProperties.read.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.read","typeLabel":"enum\u003cstring> | null"},"ttl":{"oneOf":[{"type":"integer","title":"Ttl","uniqueKey":"config.oneOf.0.mounts.additionalProperties.ttl.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Ttl","uniqueKey":"config.oneOf.0.mounts.additionalProperties.ttl.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.ttl","typeLabel":"integer | null"},"write":{"oneOf":[{"type":"string","title":"WritePolicy","description":"Write conflict policy. `unconditional` replaces content without checking its version. `conditional` rejects writes when the backend version has changed since the last read. Creating a file previously observed as missing requires an atomic create in either mode. `staged` is reserved and currently rejected.","enum":["unconditional","conditional","staged"],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.write.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.mounts.additionalProperties.write.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.write","typeLabel":"enum\u003cstring> | null"},"index":{"oneOf":[{"type":"object","title":"RamIndexBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.0.type","typeLabel":"string"},"ttl":{"type":"number","title":"Ttl","default":600,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.0.ttl","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.0","typeLabel":"RamIndexBlock · object"},{"type":"object","title":"RedisIndexBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1.type","typeLabel":"string"},"ttl":{"type":"number","title":"Ttl","default":600,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1.ttl","typeLabel":"number"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1.url","typeLabel":"string"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1.key_prefix","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.1","typeLabel":"RedisIndexBlock · object"},{"type":"null","title":"Index","uniqueKey":"config.oneOf.0.mounts.additionalProperties.index.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.mounts.additionalProperties.index","typeLabel":"RamIndexBlock · object | RedisIndexBlock · object | null"}},"additionalProperties":false,"type":"object","required":["vfs"],"title":"MountBlock","uniqueKey":"config.oneOf.0.mounts.additionalProperties","typeLabel":"MountBlock · object"},"type":"object","title":"Mounts","isRequired":true,"uniqueKey":"config.oneOf.0.mounts","typeLabel":"Mounts · object"},"io":{"properties":{"buffer_bytes":{"type":"integer","maximum":9007199254740991,"minimum":16384,"title":"Buffer Bytes","default":65536,"uniqueKey":"config.oneOf.0.io.buffer_bytes","typeLabel":"integer"}},"additionalProperties":false,"type":"object","title":"IOConfig","description":"Buffer limits for input and output while commands run.","uniqueKey":"config.oneOf.0.io","typeLabel":"IOConfig · object"},"command_limits":{"oneOf":[{"type":"object","title":"Command Limits","additionalProperties":{"properties":{"max_bytes":{"oneOf":[{"type":"integer","title":"Max Bytes","minimum":0,"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.max_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Bytes","uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.max_bytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.max_bytes","typeLabel":"integer | null"},"max_lines":{"oneOf":[{"type":"integer","title":"Max Lines","minimum":0,"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.max_lines.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Lines","uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.max_lines.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.max_lines","typeLabel":"integer | null"},"timeout_seconds":{"oneOf":[{"type":"number","title":"Timeout Seconds","minimum":0,"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.timeout_seconds.oneOf.0","typeLabel":"number"},{"type":"null","title":"Timeout Seconds","uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.timeout_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.timeout_seconds","typeLabel":"number | null"},"walk_limit":{"oneOf":[{"type":"integer","title":"Walk Limit","minimum":-1,"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.walk_limit.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Walk Limit","uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.walk_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.walk_limit","typeLabel":"integer | null"},"on_exceed":{"type":"string","enum":["error","truncate"],"title":"OnExceed","default":"truncate","uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties.on_exceed","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"type":"object","title":"Limit","description":"Limits for command output, execution time, and directory traversal. Use `on_exceed` to truncate results or return an error. A `walk_limit` of `-1` allows unlimited entries.","uniqueKey":"config.oneOf.0.command_limits.oneOf.0.additionalProperties","typeLabel":"Limit · object"},"uniqueKey":"config.oneOf.0.command_limits.oneOf.0","typeLabel":"Command Limits · object"},{"type":"null","title":"Command Limits","uniqueKey":"config.oneOf.0.command_limits.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.command_limits","typeLabel":"Command Limits · object | null"},"max_memory":{"oneOf":[{"type":"string","title":"Max Memory","uniqueKey":"config.oneOf.0.max_memory.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Max Memory","uniqueKey":"config.oneOf.0.max_memory.oneOf.1","typeLabel":"integer"},{"type":"null","title":"Max Memory","uniqueKey":"config.oneOf.0.max_memory.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.max_memory","typeLabel":"string | integer | null"},"max_body_bytes":{"oneOf":[{"type":"string","title":"Max Body Bytes","uniqueKey":"config.oneOf.0.max_body_bytes.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Max Body Bytes","uniqueKey":"config.oneOf.0.max_body_bytes.oneOf.1","typeLabel":"integer"},{"type":"null","title":"Max Body Bytes","uniqueKey":"config.oneOf.0.max_body_bytes.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.max_body_bytes","typeLabel":"string | integer | null"},"max_env":{"oneOf":[{"type":"string","title":"Max Env","uniqueKey":"config.oneOf.0.max_env.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Max Env","uniqueKey":"config.oneOf.0.max_env.oneOf.1","typeLabel":"integer"},{"type":"null","title":"Max Env","uniqueKey":"config.oneOf.0.max_env.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.max_env","typeLabel":"string | integer | null"},"network":{"oneOf":[{"type":"boolean","title":"Network","default":true,"uniqueKey":"config.oneOf.0.network.oneOf.0","typeLabel":"boolean"},{"type":"object","title":"Network","default":true,"additionalProperties":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.oneOf.0.network.oneOf.1.additionalProperties.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.0.network.oneOf.1.additionalProperties.oneOf.0","typeLabel":"string[]"},{"type":"object","additionalProperties":{"type":"string","uniqueKey":"config.oneOf.0.network.oneOf.1.additionalProperties.oneOf.1.additionalProperties","typeLabel":"string"},"uniqueKey":"config.oneOf.0.network.oneOf.1.additionalProperties.oneOf.1","typeLabel":"object"}],"uniqueKey":"config.oneOf.0.network.oneOf.1.additionalProperties","typeLabel":"string[] | object"},"uniqueKey":"config.oneOf.0.network.oneOf.1","typeLabel":"Network · object"}],"uniqueKey":"config.oneOf.0.network","typeLabel":"boolean | Network · object"},"system_time":{"oneOf":[{"type":"string","title":"System Time","uniqueKey":"config.oneOf.0.system_time.oneOf.0","typeLabel":"string"},{"type":"null","title":"System Time","uniqueKey":"config.oneOf.0.system_time.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.system_time","typeLabel":"string | null"},"clis":{"oneOf":[{"type":"object","title":"Clis","additionalProperties":{"properties":{"cli":{"oneOf":[{"type":"string","title":"Cli","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.cli.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cli","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.cli.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.cli","typeLabel":"string | null"},"script":{"oneOf":[{"type":"string","title":"Script","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.script.oneOf.0","typeLabel":"string"},{"type":"null","title":"Script","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.script.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.script","typeLabel":"string | null"},"runtime":{"oneOf":[{"type":"string","title":"Runtime","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.runtime.oneOf.0","typeLabel":"string"},{"type":"null","title":"Runtime","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.runtime.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.runtime","typeLabel":"string | null"},"config":{"additionalProperties":true,"type":"object","title":"Config","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties.config","typeLabel":"Config · object"}},"additionalProperties":false,"type":"object","title":"CLIBlock","description":"Install named commands in the workspace. Set `cli` to a registered CLI type or `script` to a program file. Use `config` for settings and credentials. For scripts, `runtime` selects the execution environment; when omitted, Mirage selects one for the script language.","uniqueKey":"config.oneOf.0.clis.oneOf.0.additionalProperties","typeLabel":"CLIBlock · object"},"uniqueKey":"config.oneOf.0.clis.oneOf.0","typeLabel":"Clis · object"},{"type":"null","title":"Clis","uniqueKey":"config.oneOf.0.clis.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.clis","typeLabel":"Clis · object | null"},"machines":{"oneOf":[{"type":"object","title":"Machines","description":"The machines the workspace runs programs on, by name, each a `provider` and its config.","additionalProperties":{"additionalProperties":true,"type":"object","uniqueKey":"config.oneOf.0.machines.oneOf.0.additionalProperties","typeLabel":"object"},"uniqueKey":"config.oneOf.0.machines.oneOf.0","typeLabel":"Machines · object"},{"type":"null","title":"Machines","description":"The machines the workspace runs programs on, by name, each a `provider` and its config.","uniqueKey":"config.oneOf.0.machines.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.machines","typeLabel":"Machines · object | null"},"runtimes":{"oneOf":[{"type":"array","items":{"oneOf":[{"type":"string","uniqueKey":"config.oneOf.0.runtimes.oneOf.0.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"object","additionalProperties":true,"uniqueKey":"config.oneOf.0.runtimes.oneOf.0.items.[INDEX].oneOf.1","typeLabel":"object"}],"uniqueKey":"config.oneOf.0.runtimes.oneOf.0.items.[INDEX]","typeLabel":"string | object"},"title":"Runtimes","uniqueKey":"config.oneOf.0.runtimes.oneOf.0","typeLabel":"(string | object)[]"},{"type":"null","title":"Runtimes","uniqueKey":"config.oneOf.0.runtimes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.runtimes","typeLabel":"(string | object)[] | null"},"route_policy":{"oneOf":[{"type":"object","title":"ProfilePolicy","description":"Custom policy programs, grouped by the method they handle. Provide a script, its runtime, and optional environment variables. If no runtime is specified, Monty is used and must be installed. Policy programs use their configured environment and can read session variables through `ctx[\"env\"]`.","required":["script"],"properties":{"script":{"oneOf":[{"type":"object","title":"ScriptSource","description":"Embedded program source with a language and optional JavaScript module mode. Configuration files can reference `.py`, `.js`, or `.mjs` files; the loader embeds their contents. `.mjs` files use module mode for imports and top-level `await`.","required":["source"],"properties":{"source":{"title":"Source","type":"string","isRequired":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.script.oneOf.0.source","typeLabel":"string"},"language":{"type":"string","enum":["python","js"],"title":"Language","default":"python","uniqueKey":"config.oneOf.0.route_policy.oneOf.0.script.oneOf.0.language","typeLabel":"enum\u003cstring>"},"module":{"type":"boolean","title":"Module","default":false,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.script.oneOf.0.module","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.script.oneOf.0","typeLabel":"ScriptSource · object"},{"type":"string","title":"Script","isRequired":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.script.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.script","typeLabel":"ScriptSource · object | string"},"runtime":{"oneOf":[{"type":"string","title":"Runtime","default":"monty","uniqueKey":"config.oneOf.0.route_policy.oneOf.0.runtime.oneOf.0","typeLabel":"string"},{"type":"object","title":"Runtime","default":"monty","additionalProperties":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.runtime.oneOf.1","typeLabel":"Runtime · object"}],"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.runtime","typeLabel":"string | Runtime · object"},"env":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"object","title":"SecretRef","description":"Read a configuration value from a secret source using `from`, `ref`, and `key`. The available sources depend on where this reference is used. Secret-source configuration allows only bootstrap sources such as environment variables or dotenv files.","required":["from","key"],"properties":{"from":{"type":"string","title":"From","isRequired":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env.additionalProperties.oneOf.1.from","typeLabel":"string"},"key":{"type":"string","title":"Key","isRequired":true,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env.additionalProperties.oneOf.1.key","typeLabel":"string"},"ref":{"type":"string","title":"Ref","default":"","uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env.additionalProperties.oneOf.1.ref","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env.additionalProperties.oneOf.1","typeLabel":"SecretRef · object"}],"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env.additionalProperties","typeLabel":"string | SecretRef · object"},"type":"object","title":"Env","default":{},"uniqueKey":"config.oneOf.0.route_policy.oneOf.0.env","typeLabel":"Env · object"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.route_policy.oneOf.0","typeLabel":"ProfilePolicy · object"},{"type":"null","uniqueKey":"config.oneOf.0.route_policy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.route_policy","typeLabel":"ProfilePolicy · object | null"},"profiles":{"oneOf":[{"type":"object","title":"Profiles","additionalProperties":{"properties":{"cwd":{"oneOf":[{"type":"string","title":"Cwd","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.cwd.oneOf.0","typeLabel":"string"},{"type":"null","title":"Cwd","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.cwd.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.cwd","typeLabel":"string | null"},"env":{"oneOf":[{"type":"object","title":"Env","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"object","title":"EnvVar","description":"An environment variable with a literal `value` or a secret source identified by `from`, never both. Use `ref` and `key` to select a secret. `readonly` prevents commands from changing the variable. Managed secrets are always exported; literal values use the `export` setting.","properties":{"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.value","typeLabel":"string | null"},"readonly":{"type":"boolean","title":"Readonly","default":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.readonly","typeLabel":"boolean"},"export":{"type":"boolean","title":"Export","default":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.export","typeLabel":"boolean"},"from":{"oneOf":[{"type":"string","title":"From","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.from.oneOf.0","typeLabel":"string"},{"type":"null","title":"From","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.from","typeLabel":"string | null"},"ref":{"type":"string","title":"Ref","default":"","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.ref","typeLabel":"string"},"key":{"oneOf":[{"type":"string","title":"Key","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.key.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.key","typeLabel":"string | null"},"fetch":{"type":"string","enum":["lazy","eager"],"title":"Fetch","default":"lazy","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1.fetch","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties.oneOf.1","typeLabel":"EnvVar · object"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0.additionalProperties","typeLabel":"string | EnvVar · object"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.0","typeLabel":"Env · object"},{"type":"null","title":"Env","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.env","typeLabel":"Env · object | null"},"mounts":{"oneOf":[{"type":"object","title":"Mounts","additionalProperties":{"properties":{"mode":{"oneOf":[{"type":"string","title":"MountMode","description":"Mount access level. `read` allows listing and reading. `write` also allows creating, modifying, and deleting files. `exec` additionally allows interpreter commands such as `python3` and `js`.\n\nInterpreter script files must be on an `exec` mount. Inline code and module execution require at least one `exec` mount; imports are not checked by path. Shell scripts follow the permissions of each command they run.","enum":["read","write","exec"],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.mode","typeLabel":"enum\u003cstring> | null"},"commands":{"oneOf":[{"type":"object","title":"MountCommandsBlock","description":"Approval and deny rules for commands working within this mount. Use session-level command rules for an allow list.","properties":{"ask":{"items":{"properties":{"reason":{"type":"string","title":"Reason","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].reason","typeLabel":"string"},"commands":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].commands.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Commands","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].commands","typeLabel":"string[]"},"paths":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].paths","typeLabel":"string[]"},"mount":{"type":"string","title":"Mount","default":"","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].mount","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"CommandRule","description":"Require approval or deny commands matching the specified patterns. A pattern such as `git push` matches that command and its arguments. Optional paths restrict the rule to matching files or directories. Rules under a mount apply only within that mount.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX]","typeLabel":"CommandRule · object"},"type":"array","title":"Ask","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.ask","typeLabel":"CommandRule · object[]"},"deny":{"items":{"properties":{"reason":{"type":"string","title":"Reason","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].reason","typeLabel":"string"},"commands":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].commands.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Commands","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].commands","typeLabel":"string[]"},"paths":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].paths","typeLabel":"string[]"},"mount":{"type":"string","title":"Mount","default":"","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].mount","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"CommandRule","description":"Require approval or deny commands matching the specified patterns. A pattern such as `git push` matches that command and its arguments. Optional paths restrict the rule to matching files or directories. Rules under a mount apply only within that mount.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX]","typeLabel":"CommandRule · object"},"type":"array","title":"Deny","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0.deny","typeLabel":"CommandRule · object[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.0","typeLabel":"MountCommandsBlock · object"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.commands","typeLabel":"MountCommandsBlock · object | null"},"paths":{"oneOf":[{"type":"object","title":"PathsBlock","description":"Control which paths a session can access. `hide` makes matching paths appear not to exist. `show` exposes more specific paths inside hidden regions, optionally with reduced permissions. Exact paths include their descendants; patterns support `*`, `?`, and character classes.","properties":{"hide":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.hide.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Hide","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.hide","typeLabel":"string[]"},"show":{"items":{"properties":{"path":{"title":"Path","type":"string","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].path","typeLabel":"string"},"mode":{"oneOf":[{"type":"string","title":"MountMode","description":"Mount access level. `read` allows listing and reading. `write` also allows creating, modifying, and deleting files. `exec` additionally allows interpreter commands such as `python3` and `js`.\n\nInterpreter script files must be on an `exec` mount. Inline code and module execution require at least one `exec` mount; imports are not checked by path. Shell scripts follow the permissions of each command they run.","enum":["read","write","exec"],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].mode","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"type":"object","required":["path"],"title":"ShowEntry","description":"An absolute path or anchored path pattern to expose within a hidden region. Optional `mode` reduces permissions for that path. If omitted, mount permissions apply.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX]","typeLabel":"ShowEntry · object"},"type":"array","title":"Show","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.show","typeLabel":"ShowEntry · object[]"},"reasons":{"items":{"properties":{"patterns":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX].patterns.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Patterns","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX].patterns","typeLabel":"string[]"},"reason":{"type":"string","title":"Reason","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX].reason","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["patterns","reason"],"title":"HideReason","description":"An optional explanation for hidden paths. The explanation is available to operators, not to agents accessing the workspace. Hidden paths appear not to exist.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX]","typeLabel":"HideReason · object"},"type":"array","title":"Reasons","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0.reasons","typeLabel":"HideReason · object[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.0","typeLabel":"PathsBlock · object"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties.paths","typeLabel":"PathsBlock · object | null"}},"additionalProperties":false,"type":"object","title":"ProfileMount","description":"Optional permissions for a specific mount. A profile can reduce mount permissions but cannot increase them. Omitted mounts retain their configured permissions. Use path hiding to prevent access to a mount.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0.additionalProperties","typeLabel":"ProfileMount · object"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.0","typeLabel":"Mounts · object"},{"type":"null","title":"Mounts","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.mounts","typeLabel":"Mounts · object | null"},"paths":{"oneOf":[{"type":"object","title":"PathsBlock","description":"Control which paths a session can access. `hide` makes matching paths appear not to exist. `show` exposes more specific paths inside hidden regions, optionally with reduced permissions. Exact paths include their descendants; patterns support `*`, `?`, and character classes.","properties":{"hide":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.hide.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Hide","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.hide","typeLabel":"string[]"},"show":{"items":{"properties":{"path":{"title":"Path","type":"string","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].path","typeLabel":"string"},"mode":{"oneOf":[{"type":"string","title":"MountMode","description":"Mount access level. `read` allows listing and reading. `write` also allows creating, modifying, and deleting files. `exec` additionally allows interpreter commands such as `python3` and `js`.\n\nInterpreter script files must be on an `exec` mount. Inline code and module execution require at least one `exec` mount; imports are not checked by path. Shell scripts follow the permissions of each command they run.","enum":["read","write","exec"],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].mode.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].mode.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX].mode","typeLabel":"enum\u003cstring> | null"}},"additionalProperties":false,"type":"object","required":["path"],"title":"ShowEntry","description":"An absolute path or anchored path pattern to expose within a hidden region. Optional `mode` reduces permissions for that path. If omitted, mount permissions apply.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.show.items.[INDEX]","typeLabel":"ShowEntry · object"},"type":"array","title":"Show","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.show","typeLabel":"ShowEntry · object[]"},"reasons":{"items":{"properties":{"patterns":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX].patterns.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Patterns","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX].patterns","typeLabel":"string[]"},"reason":{"type":"string","title":"Reason","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX].reason","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["patterns","reason"],"title":"HideReason","description":"An optional explanation for hidden paths. The explanation is available to operators, not to agents accessing the workspace. Hidden paths appear not to exist.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.reasons.items.[INDEX]","typeLabel":"HideReason · object"},"type":"array","title":"Reasons","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0.reasons","typeLabel":"HideReason · object[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.0","typeLabel":"PathsBlock · object"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.paths","typeLabel":"PathsBlock · object | null"},"vars":{"oneOf":[{"type":"object","title":"VarsBlock","description":"Environment variable names or glob patterns to hide from the session. Hidden variables appear unset.","properties":{"hide":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.vars.oneOf.0.hide.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Hide","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.vars.oneOf.0.hide","typeLabel":"string[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.vars.oneOf.0","typeLabel":"VarsBlock · object"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.vars.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.vars","typeLabel":"VarsBlock · object | null"},"commands":{"oneOf":[{"type":"object","title":"CommandsBlock","description":"Command access rules. `allow` restricts available commands to matching patterns. `ask` requires approval, and `deny` blocks matching commands with a reason. If `allow` is omitted, it adds no restriction.","properties":{"allow":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.allow.oneOf.0.items.[INDEX]","typeLabel":"string"},"title":"Allow","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.allow.oneOf.0","typeLabel":"string[]"},{"type":"null","title":"Allow","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.allow.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.allow","typeLabel":"string[] | null"},"ask":{"items":{"properties":{"reason":{"type":"string","title":"Reason","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].reason","typeLabel":"string"},"commands":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].commands.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Commands","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].commands","typeLabel":"string[]"},"paths":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].paths","typeLabel":"string[]"},"mount":{"type":"string","title":"Mount","default":"","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX].mount","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"CommandRule","description":"Require approval or deny commands matching the specified patterns. A pattern such as `git push` matches that command and its arguments. Optional paths restrict the rule to matching files or directories. Rules under a mount apply only within that mount.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask.items.[INDEX]","typeLabel":"CommandRule · object"},"type":"array","title":"Ask","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.ask","typeLabel":"CommandRule · object[]"},"deny":{"items":{"properties":{"reason":{"type":"string","title":"Reason","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].reason","typeLabel":"string"},"commands":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].commands.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Commands","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].commands","typeLabel":"string[]"},"paths":{"items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].paths.items.[INDEX]","typeLabel":"string"},"type":"array","title":"Paths","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].paths","typeLabel":"string[]"},"mount":{"type":"string","title":"Mount","default":"","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX].mount","typeLabel":"string"}},"additionalProperties":false,"type":"object","required":["reason"],"title":"CommandRule","description":"Require approval or deny commands matching the specified patterns. A pattern such as `git push` matches that command and its arguments. Optional paths restrict the rule to matching files or directories. Rules under a mount apply only within that mount.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny.items.[INDEX]","typeLabel":"CommandRule · object"},"type":"array","title":"Deny","default":[],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0.deny","typeLabel":"CommandRule · object[]"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.0","typeLabel":"CommandsBlock · object"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.commands","typeLabel":"CommandsBlock · object | null"},"policy":{"oneOf":[{"type":"object","title":"Policy","additionalProperties":{"items":{"properties":{"script":{"oneOf":[{"type":"object","title":"ScriptSource","description":"Embedded program source with a language and optional JavaScript module mode. Configuration files can reference `.py`, `.js`, or `.mjs` files; the loader embeds their contents. `.mjs` files use module mode for imports and top-level `await`.","required":["source"],"properties":{"source":{"title":"Source","type":"string","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].script.oneOf.0.source","typeLabel":"string"},"language":{"type":"string","enum":["python","js"],"title":"Language","default":"python","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].script.oneOf.0.language","typeLabel":"enum\u003cstring>"},"module":{"type":"boolean","title":"Module","default":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].script.oneOf.0.module","typeLabel":"boolean"}},"additionalProperties":false,"isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].script.oneOf.0","typeLabel":"ScriptSource · object"},{"type":"string","title":"Script","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].script.oneOf.1","typeLabel":"string"}],"isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].script","typeLabel":"ScriptSource · object | string"},"runtime":{"oneOf":[{"type":"string","title":"Runtime","default":"monty","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].runtime.oneOf.0","typeLabel":"string"},{"type":"object","title":"Runtime","default":"monty","additionalProperties":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].runtime.oneOf.1","typeLabel":"Runtime · object"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].runtime","typeLabel":"string | Runtime · object"},"env":{"additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"object","title":"SecretRef","description":"Read a configuration value from a secret source using `from`, `ref`, and `key`. The available sources depend on where this reference is used. Secret-source configuration allows only bootstrap sources such as environment variables or dotenv files.","required":["from","key"],"properties":{"from":{"type":"string","title":"From","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env.additionalProperties.oneOf.1.from","typeLabel":"string"},"key":{"type":"string","title":"Key","isRequired":true,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env.additionalProperties.oneOf.1.key","typeLabel":"string"},"ref":{"type":"string","title":"Ref","default":"","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env.additionalProperties.oneOf.1.ref","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env.additionalProperties.oneOf.1","typeLabel":"SecretRef · object"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env.additionalProperties","typeLabel":"string | SecretRef · object"},"type":"object","title":"Env","default":{},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX].env","typeLabel":"Env · object"}},"additionalProperties":false,"type":"object","required":["script"],"title":"ProfilePolicy","description":"Custom policy programs, grouped by the method they handle. Provide a script, its runtime, and optional environment variables. If no runtime is specified, Monty is used and must be installed. Policy programs use their configured environment and can read session variables through `ctx[\"env\"]`.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties.items.[INDEX]","typeLabel":"ProfilePolicy · object"},"type":"array","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0.additionalProperties","typeLabel":"ProfilePolicy · object[]"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.0","typeLabel":"Policy · object"},{"type":"null","title":"Policy","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.policy","typeLabel":"Policy · object | null"},"command_limits":{"oneOf":[{"type":"object","title":"Command Limits","additionalProperties":{"properties":{"max_bytes":{"oneOf":[{"type":"integer","title":"Max Bytes","minimum":0,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.max_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Bytes","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.max_bytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.max_bytes","typeLabel":"integer | null"},"max_lines":{"oneOf":[{"type":"integer","title":"Max Lines","minimum":0,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.max_lines.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Lines","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.max_lines.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.max_lines","typeLabel":"integer | null"},"timeout_seconds":{"oneOf":[{"type":"number","title":"Timeout Seconds","minimum":0,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.timeout_seconds.oneOf.0","typeLabel":"number"},{"type":"null","title":"Timeout Seconds","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.timeout_seconds.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.timeout_seconds","typeLabel":"number | null"},"walk_limit":{"oneOf":[{"type":"integer","title":"Walk Limit","minimum":-1,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.walk_limit.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Walk Limit","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.walk_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.walk_limit","typeLabel":"integer | null"},"on_exceed":{"type":"string","enum":["error","truncate"],"title":"OnExceed","default":"truncate","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties.on_exceed","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"type":"object","title":"Limit","description":"Limits for command output, execution time, and directory traversal. Use `on_exceed` to truncate results or return an error. A `walk_limit` of `-1` allows unlimited entries.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0.additionalProperties","typeLabel":"Limit · object"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.0","typeLabel":"Command Limits · object"},{"type":"null","title":"Command Limits","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.command_limits","typeLabel":"Command Limits · object | null"},"processes":{"oneOf":[{"type":"object","title":"ProcessPermissions","description":"Control which processes a session can list or stop, and the maximum number it can run. Sessions always have access to their own processes. The stop scope cannot exceed the list scope. Profile settings override workspace defaults.","properties":{"list":{"type":"string","enum":["session","workspace"],"title":"List","default":"session","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.0.list","typeLabel":"enum\u003cstring>"},"kill":{"type":"string","enum":["session","workspace"],"title":"Kill","default":"session","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.0.kill","typeLabel":"enum\u003cstring>"},"max":{"oneOf":[{"type":"integer","title":"Max","default":128,"minimum":1,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.0.max.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max","default":128,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.0.max.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.0.max","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.0","typeLabel":"ProcessPermissions · object"},{"type":"null","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.processes","typeLabel":"ProcessPermissions · object | null"},"network":{"oneOf":[{"type":"boolean","title":"Network","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.0","typeLabel":"boolean"},{"type":"object","title":"Network","additionalProperties":{"oneOf":[{"type":"array","items":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.1.additionalProperties.oneOf.0.items.[INDEX]","typeLabel":"string"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.1.additionalProperties.oneOf.0","typeLabel":"string[]"},{"type":"object","additionalProperties":{"type":"string","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.1.additionalProperties.oneOf.1.additionalProperties","typeLabel":"string"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.1.additionalProperties.oneOf.1","typeLabel":"object"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.1.additionalProperties","typeLabel":"string[] | object"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.1","typeLabel":"Network · object"},{"type":"null","title":"Network","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties.network","typeLabel":"boolean | Network · object | null"}},"additionalProperties":false,"type":"object","title":"SessionProfile","description":"Permissions and initial settings for a session. Unspecified settings add no restrictions beyond the workspace configuration.\n\nUse `commands`, `paths`, and `mounts` to control access, and `policy` for custom rules. For command rules without paths, deny takes precedence over approval requests and allow rules. More specific path rules take precedence over broader rules. See [permissions profiles](/home/policy/overview) for rule examples.","uniqueKey":"config.oneOf.0.profiles.oneOf.0.additionalProperties","typeLabel":"SessionProfile · object"},"uniqueKey":"config.oneOf.0.profiles.oneOf.0","typeLabel":"Profiles · object"},{"type":"null","title":"Profiles","uniqueKey":"config.oneOf.0.profiles.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profiles","typeLabel":"Profiles · object | null"},"profile":{"oneOf":[{"type":"string","title":"Profile","uniqueKey":"config.oneOf.0.profile.oneOf.0","typeLabel":"string"},{"type":"null","title":"Profile","uniqueKey":"config.oneOf.0.profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.profile","typeLabel":"string | null"},"processes":{"oneOf":[{"type":"object","title":"ProcessPermissions","description":"Control which processes a session can list or stop, and the maximum number it can run. Sessions always have access to their own processes. The stop scope cannot exceed the list scope. Profile settings override workspace defaults.","properties":{"list":{"type":"string","enum":["session","workspace"],"title":"List","default":"session","uniqueKey":"config.oneOf.0.processes.oneOf.0.list","typeLabel":"enum\u003cstring>"},"kill":{"type":"string","enum":["session","workspace"],"title":"Kill","default":"session","uniqueKey":"config.oneOf.0.processes.oneOf.0.kill","typeLabel":"enum\u003cstring>"},"max":{"oneOf":[{"type":"integer","title":"Max","default":128,"minimum":1,"uniqueKey":"config.oneOf.0.processes.oneOf.0.max.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max","default":128,"uniqueKey":"config.oneOf.0.processes.oneOf.0.max.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.processes.oneOf.0.max","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.processes.oneOf.0","typeLabel":"ProcessPermissions · object"},{"type":"null","uniqueKey":"config.oneOf.0.processes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.processes","typeLabel":"ProcessPermissions · object | null"},"mode":{"type":"string","enum":["read","write","exec"],"title":"MountMode","description":"Mount access level. `read` allows listing and reading. `write` also allows creating, modifying, and deleting files. `exec` additionally allows interpreter commands such as `python3` and `js`.\n\nInterpreter script files must be on an `exec` mount. Inline code and module execution require at least one `exec` mount; imports are not checked by path. Shell scripts follow the permissions of each command they run.","default":"write","uniqueKey":"config.oneOf.0.mode","typeLabel":"enum\u003cstring>"},"read":{"oneOf":[{"type":"string","title":"ReadPolicy","description":"Cache validation policy. `fresh` checks the backend before returning cached content. `bounded` allows cached content within the configured freshness limit. `pinned` is reserved and currently rejected.","enum":["fresh","bounded","pinned"],"uniqueKey":"config.oneOf.0.read.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.read.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.read","typeLabel":"enum\u003cstring> | null"},"write":{"oneOf":[{"type":"string","title":"WritePolicy","description":"Write conflict policy. `unconditional` replaces content without checking its version. `conditional` rejects writes when the backend version has changed since the last read. Creating a file previously observed as missing requires an atomic create in either mode. `staged` is reserved and currently rejected.","enum":["unconditional","conditional","staged"],"uniqueKey":"config.oneOf.0.write.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","uniqueKey":"config.oneOf.0.write.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.write","typeLabel":"enum\u003cstring> | null"},"default_session_id":{"oneOf":[{"type":"string","title":"Default Session Id","uniqueKey":"config.oneOf.0.default_session_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Default Session Id","uniqueKey":"config.oneOf.0.default_session_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.default_session_id","typeLabel":"string | null"},"workspace_id":{"oneOf":[{"type":"string","title":"Workspace Id","uniqueKey":"config.oneOf.0.workspace_id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Workspace Id","uniqueKey":"config.oneOf.0.workspace_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.workspace_id","typeLabel":"string | null"},"cache":{"oneOf":[{"type":"object","title":"RamCacheBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.cache.oneOf.0.type","typeLabel":"string"},"limit":{"oneOf":[{"type":"string","title":"Limit","default":"32MB","uniqueKey":"config.oneOf.0.cache.oneOf.0.limit.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Limit","default":"32MB","uniqueKey":"config.oneOf.0.cache.oneOf.0.limit.oneOf.1","typeLabel":"integer"}],"uniqueKey":"config.oneOf.0.cache.oneOf.0.limit","typeLabel":"string | integer"},"max_drain_bytes":{"oneOf":[{"type":"integer","title":"Max Drain Bytes","uniqueKey":"config.oneOf.0.cache.oneOf.0.max_drain_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Drain Bytes","uniqueKey":"config.oneOf.0.cache.oneOf.0.max_drain_bytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.cache.oneOf.0.max_drain_bytes","typeLabel":"integer | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.cache.oneOf.0","typeLabel":"RamCacheBlock · object"},{"type":"object","title":"RedisCacheBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.cache.oneOf.1.type","typeLabel":"string"},"limit":{"oneOf":[{"type":"string","title":"Limit","default":"512MB","uniqueKey":"config.oneOf.0.cache.oneOf.1.limit.oneOf.0","typeLabel":"string"},{"type":"integer","title":"Limit","default":"512MB","uniqueKey":"config.oneOf.0.cache.oneOf.1.limit.oneOf.1","typeLabel":"integer"}],"uniqueKey":"config.oneOf.0.cache.oneOf.1.limit","typeLabel":"string | integer"},"max_drain_bytes":{"oneOf":[{"type":"integer","title":"Max Drain Bytes","uniqueKey":"config.oneOf.0.cache.oneOf.1.max_drain_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Max Drain Bytes","uniqueKey":"config.oneOf.0.cache.oneOf.1.max_drain_bytes.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.cache.oneOf.1.max_drain_bytes","typeLabel":"integer | null"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.cache.oneOf.1.url","typeLabel":"string"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","uniqueKey":"config.oneOf.0.cache.oneOf.1.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","uniqueKey":"config.oneOf.0.cache.oneOf.1.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.cache.oneOf.1.key_prefix","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.cache.oneOf.1","typeLabel":"RedisCacheBlock · object"},{"type":"null","title":"Cache","uniqueKey":"config.oneOf.0.cache.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.cache","typeLabel":"RamCacheBlock · object | RedisCacheBlock · object | null"},"index":{"oneOf":[{"type":"object","title":"RamIndexBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.index.oneOf.0.type","typeLabel":"string"},"ttl":{"type":"number","title":"Ttl","default":600,"uniqueKey":"config.oneOf.0.index.oneOf.0.ttl","typeLabel":"number"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.index.oneOf.0","typeLabel":"RamIndexBlock · object"},{"type":"object","title":"RedisIndexBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.index.oneOf.1.type","typeLabel":"string"},"ttl":{"type":"number","title":"Ttl","default":600,"uniqueKey":"config.oneOf.0.index.oneOf.1.ttl","typeLabel":"number"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.index.oneOf.1.url","typeLabel":"string"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","uniqueKey":"config.oneOf.0.index.oneOf.1.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","uniqueKey":"config.oneOf.0.index.oneOf.1.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.index.oneOf.1.key_prefix","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.index.oneOf.1","typeLabel":"RedisIndexBlock · object"},{"type":"null","title":"Index","uniqueKey":"config.oneOf.0.index.oneOf.2","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.index","typeLabel":"RamIndexBlock · object | RedisIndexBlock · object | null"},"store":{"oneOf":[{"type":"object","title":"StoreBlock","description":"Storage settings for workspace metadata, sessions, filesystem records, logs, and execution records. Top-level settings select the default backend; per-group settings override it.\n\nS3 is supported only for the `workspace` group. Disk storage uses `root` and keeps jobs in memory. The `execution` group supports RAM or Redis.","properties":{"type":{"type":"string","enum":["ram","disk","redis"],"title":"Type","default":"ram","uniqueKey":"config.oneOf.0.store.oneOf.0.type","typeLabel":"enum\u003cstring>"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.store.oneOf.0.url","typeLabel":"string"},"key_prefix":{"type":"string","title":"Key Prefix","default":"mirage:","uniqueKey":"config.oneOf.0.store.oneOf.0.key_prefix","typeLabel":"string"},"root":{"type":"string","title":"Root","default":"~/.mirage/state","uniqueKey":"config.oneOf.0.store.oneOf.0.root","typeLabel":"string"},"namespace":{"oneOf":[{"type":"object","title":"RamStoreBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.0.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.0","typeLabel":"RamStoreBlock · object"},{"type":"object","title":"DiskStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"disk","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.1.type","typeLabel":"string"},"root":{"type":"string","title":"Root","default":"~/.mirage/state","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.1.root","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.1","typeLabel":"DiskStoreBlock · object"},{"type":"object","title":"RedisStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.2.type","typeLabel":"string"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.2.url","typeLabel":"string"},"key_prefix":{"type":"string","title":"Key Prefix","default":"mirage:","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.2.key_prefix","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.2","typeLabel":"RedisStoreBlock · object"},{"type":"object","title":"S3StoreBlock","description":"S3 storage settings. Uses the same configuration fields as the S3 backend.","required":["bucket","type"],"properties":{"bucket":{"type":"string","title":"Bucket","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.bucket","typeLabel":"string"},"type":{"type":"string","const":"s3","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.type","typeLabel":"string"},"timeout":{"type":"number","exclusiveMinimum":0,"title":"Timeout","default":30,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.timeout","typeLabel":"number"},"region":{"oneOf":[{"type":"string","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.region.oneOf.0","typeLabel":"string"},{"type":"null","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.region","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_access_key_id.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_access_key_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_access_key_id","typeLabel":"string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_secret_access_key.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_secret_access_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_secret_access_key","typeLabel":"string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_session_token.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_session_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_session_token","typeLabel":"string\u003cpassword> | null"},"aws_profile":{"oneOf":[{"type":"string","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_profile.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.aws_profile","typeLabel":"string | null"},"endpoint_url":{"oneOf":[{"type":"string","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.endpoint_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.endpoint_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.endpoint_url","typeLabel":"string | null"},"path_style":{"type":"boolean","title":"Path Style","default":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.path_style","typeLabel":"boolean"},"proxy":{"oneOf":[{"type":"string","title":"Proxy","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.proxy.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Proxy","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.proxy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.proxy","typeLabel":"string\u003cpassword> | null"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.key_prefix","typeLabel":"string | null"},"default_content_type":{"oneOf":[{"type":"string","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.default_content_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.default_content_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3.default_content_type","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.3","typeLabel":"S3StoreBlock · object"},{"type":"null","title":"Namespace","uniqueKey":"config.oneOf.0.store.oneOf.0.namespace.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.namespace","typeLabel":"RamStoreBlock · object | DiskStoreBlock · object | RedisStoreBlock · object | S3StoreBlock · object | null"},"observer":{"oneOf":[{"type":"object","title":"RamStoreBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.0.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.0","typeLabel":"RamStoreBlock · object"},{"type":"object","title":"DiskStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"disk","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.1.type","typeLabel":"string"},"root":{"type":"string","title":"Root","default":"~/.mirage/state","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.1.root","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.1","typeLabel":"DiskStoreBlock · object"},{"type":"object","title":"RedisStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.2.type","typeLabel":"string"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.2.url","typeLabel":"string"},"key_prefix":{"type":"string","title":"Key Prefix","default":"mirage:","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.2.key_prefix","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.2","typeLabel":"RedisStoreBlock · object"},{"type":"object","title":"S3StoreBlock","description":"S3 storage settings. Uses the same configuration fields as the S3 backend.","required":["bucket","type"],"properties":{"bucket":{"type":"string","title":"Bucket","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.bucket","typeLabel":"string"},"type":{"type":"string","const":"s3","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.type","typeLabel":"string"},"timeout":{"type":"number","exclusiveMinimum":0,"title":"Timeout","default":30,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.timeout","typeLabel":"number"},"region":{"oneOf":[{"type":"string","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.region.oneOf.0","typeLabel":"string"},{"type":"null","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.region","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_access_key_id.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_access_key_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_access_key_id","typeLabel":"string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_secret_access_key.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_secret_access_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_secret_access_key","typeLabel":"string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_session_token.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_session_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_session_token","typeLabel":"string\u003cpassword> | null"},"aws_profile":{"oneOf":[{"type":"string","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_profile.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.aws_profile","typeLabel":"string | null"},"endpoint_url":{"oneOf":[{"type":"string","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.endpoint_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.endpoint_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.endpoint_url","typeLabel":"string | null"},"path_style":{"type":"boolean","title":"Path Style","default":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.path_style","typeLabel":"boolean"},"proxy":{"oneOf":[{"type":"string","title":"Proxy","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.proxy.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Proxy","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.proxy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.proxy","typeLabel":"string\u003cpassword> | null"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.key_prefix","typeLabel":"string | null"},"default_content_type":{"oneOf":[{"type":"string","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.default_content_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.default_content_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3.default_content_type","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.3","typeLabel":"S3StoreBlock · object"},{"type":"null","title":"Observer","uniqueKey":"config.oneOf.0.store.oneOf.0.observer.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.observer","typeLabel":"RamStoreBlock · object | DiskStoreBlock · object | RedisStoreBlock · object | S3StoreBlock · object | null"},"workspace":{"oneOf":[{"type":"object","title":"RamStoreBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.0.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.0","typeLabel":"RamStoreBlock · object"},{"type":"object","title":"DiskStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"disk","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.1.type","typeLabel":"string"},"root":{"type":"string","title":"Root","default":"~/.mirage/state","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.1.root","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.1","typeLabel":"DiskStoreBlock · object"},{"type":"object","title":"RedisStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.2.type","typeLabel":"string"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.2.url","typeLabel":"string"},"key_prefix":{"type":"string","title":"Key Prefix","default":"mirage:","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.2.key_prefix","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.2","typeLabel":"RedisStoreBlock · object"},{"type":"object","title":"S3StoreBlock","description":"S3 storage settings. Uses the same configuration fields as the S3 backend.","required":["bucket","type"],"properties":{"bucket":{"type":"string","title":"Bucket","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.bucket","typeLabel":"string"},"type":{"type":"string","const":"s3","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.type","typeLabel":"string"},"timeout":{"type":"number","exclusiveMinimum":0,"title":"Timeout","default":30,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.timeout","typeLabel":"number"},"region":{"oneOf":[{"type":"string","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.region.oneOf.0","typeLabel":"string"},{"type":"null","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.region","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_access_key_id.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_access_key_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_access_key_id","typeLabel":"string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_secret_access_key.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_secret_access_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_secret_access_key","typeLabel":"string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_session_token.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_session_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_session_token","typeLabel":"string\u003cpassword> | null"},"aws_profile":{"oneOf":[{"type":"string","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_profile.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.aws_profile","typeLabel":"string | null"},"endpoint_url":{"oneOf":[{"type":"string","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.endpoint_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.endpoint_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.endpoint_url","typeLabel":"string | null"},"path_style":{"type":"boolean","title":"Path Style","default":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.path_style","typeLabel":"boolean"},"proxy":{"oneOf":[{"type":"string","title":"Proxy","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.proxy.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Proxy","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.proxy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.proxy","typeLabel":"string\u003cpassword> | null"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.key_prefix","typeLabel":"string | null"},"default_content_type":{"oneOf":[{"type":"string","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.default_content_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.default_content_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3.default_content_type","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.3","typeLabel":"S3StoreBlock · object"},{"type":"null","title":"Workspace","uniqueKey":"config.oneOf.0.store.oneOf.0.workspace.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.workspace","typeLabel":"RamStoreBlock · object | DiskStoreBlock · object | RedisStoreBlock · object | S3StoreBlock · object | null"},"execution":{"oneOf":[{"type":"object","title":"RamStoreBlock","properties":{"type":{"type":"string","const":"ram","title":"Type","default":"ram","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.0.type","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.0","typeLabel":"RamStoreBlock · object"},{"type":"object","title":"DiskStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"disk","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.1.type","typeLabel":"string"},"root":{"type":"string","title":"Root","default":"~/.mirage/state","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.1.root","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.1","typeLabel":"DiskStoreBlock · object"},{"type":"object","title":"RedisStoreBlock","required":["type"],"properties":{"type":{"type":"string","const":"redis","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.2.type","typeLabel":"string"},"url":{"type":"string","title":"Url","default":"redis://localhost:6379/0","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.2.url","typeLabel":"string"},"key_prefix":{"type":"string","title":"Key Prefix","default":"mirage:","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.2.key_prefix","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.2","typeLabel":"RedisStoreBlock · object"},{"type":"object","title":"S3StoreBlock","description":"S3 storage settings. Uses the same configuration fields as the S3 backend.","required":["bucket","type"],"properties":{"bucket":{"type":"string","title":"Bucket","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.bucket","typeLabel":"string"},"type":{"type":"string","const":"s3","title":"Type","isRequired":true,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.type","typeLabel":"string"},"timeout":{"type":"number","exclusiveMinimum":0,"title":"Timeout","default":30,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.timeout","typeLabel":"number"},"region":{"oneOf":[{"type":"string","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.region.oneOf.0","typeLabel":"string"},{"type":"null","title":"Region","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.region.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.region","typeLabel":"string | null"},"aws_access_key_id":{"oneOf":[{"type":"string","title":"Aws Access Key Id","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_access_key_id.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Access Key Id","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_access_key_id.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_access_key_id","typeLabel":"string\u003cpassword> | null"},"aws_secret_access_key":{"oneOf":[{"type":"string","title":"Aws Secret Access Key","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_secret_access_key.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Secret Access Key","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_secret_access_key.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_secret_access_key","typeLabel":"string\u003cpassword> | null"},"aws_session_token":{"oneOf":[{"type":"string","title":"Aws Session Token","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_session_token.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Aws Session Token","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_session_token.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_session_token","typeLabel":"string\u003cpassword> | null"},"aws_profile":{"oneOf":[{"type":"string","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_profile.oneOf.0","typeLabel":"string"},{"type":"null","title":"Aws Profile","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_profile.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.aws_profile","typeLabel":"string | null"},"endpoint_url":{"oneOf":[{"type":"string","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.endpoint_url.oneOf.0","typeLabel":"string"},{"type":"null","title":"Endpoint Url","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.endpoint_url.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.endpoint_url","typeLabel":"string | null"},"path_style":{"type":"boolean","title":"Path Style","default":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.path_style","typeLabel":"boolean"},"proxy":{"oneOf":[{"type":"string","title":"Proxy","format":"password","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.proxy.oneOf.0","typeLabel":"string\u003cpassword>"},{"type":"null","title":"Proxy","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.proxy.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.proxy","typeLabel":"string\u003cpassword> | null"},"key_prefix":{"oneOf":[{"type":"string","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.key_prefix.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key Prefix","default":"mirage/","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.key_prefix.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.key_prefix","typeLabel":"string | null"},"default_content_type":{"oneOf":[{"type":"string","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.default_content_type.oneOf.0","typeLabel":"string"},{"type":"null","title":"Default Content Type","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.default_content_type.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3.default_content_type","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.3","typeLabel":"S3StoreBlock · object"},{"type":"null","title":"Execution","uniqueKey":"config.oneOf.0.store.oneOf.0.execution.oneOf.4","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store.oneOf.0.execution","typeLabel":"RamStoreBlock · object | DiskStoreBlock · object | RedisStoreBlock · object | S3StoreBlock · object | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.store.oneOf.0","typeLabel":"StoreBlock · object"},{"type":"null","uniqueKey":"config.oneOf.0.store.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.store","typeLabel":"StoreBlock · object | null"},"env":{"oneOf":[{"type":"object","title":"Env","additionalProperties":{"oneOf":[{"type":"string","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"object","title":"EnvVar","description":"An environment variable with a literal `value` or a secret source identified by `from`, never both. Use `ref` and `key` to select a secret. `readonly` prevents commands from changing the variable. Managed secrets are always exported; literal values use the `export` setting.","properties":{"value":{"oneOf":[{"type":"string","title":"Value","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.value.oneOf.0","typeLabel":"string"},{"type":"null","title":"Value","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.value.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.value","typeLabel":"string | null"},"readonly":{"type":"boolean","title":"Readonly","default":false,"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.readonly","typeLabel":"boolean"},"export":{"type":"boolean","title":"Export","default":true,"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.export","typeLabel":"boolean"},"from":{"oneOf":[{"type":"string","title":"From","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.from.oneOf.0","typeLabel":"string"},{"type":"null","title":"From","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.from.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.from","typeLabel":"string | null"},"ref":{"type":"string","title":"Ref","default":"","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.ref","typeLabel":"string"},"key":{"oneOf":[{"type":"string","title":"Key","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.key.oneOf.0","typeLabel":"string"},{"type":"null","title":"Key","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.key.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.key","typeLabel":"string | null"},"fetch":{"type":"string","enum":["lazy","eager"],"title":"Fetch","default":"lazy","uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1.fetch","typeLabel":"enum\u003cstring>"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties.oneOf.1","typeLabel":"EnvVar · object"}],"uniqueKey":"config.oneOf.0.env.oneOf.0.additionalProperties","typeLabel":"string | EnvVar · object"},"uniqueKey":"config.oneOf.0.env.oneOf.0","typeLabel":"Env · object"},{"type":"null","title":"Env","uniqueKey":"config.oneOf.0.env.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.env","typeLabel":"Env · object | null"},"secrets":{"oneOf":[{"type":"object","title":"Secrets","additionalProperties":{"properties":{"source":{"title":"Source","type":"string","isRequired":true,"uniqueKey":"config.oneOf.0.secrets.oneOf.0.additionalProperties.source","typeLabel":"string"},"config":{"additionalProperties":true,"type":"object","title":"Config","uniqueKey":"config.oneOf.0.secrets.oneOf.0.additionalProperties.config","typeLabel":"Config · object"}},"additionalProperties":false,"type":"object","required":["source"],"title":"SecretSource","description":"A named secret source and its configuration. Managed environment variables refer to this source by name. Configuration fields can contain literal values or bootstrap secret references.","uniqueKey":"config.oneOf.0.secrets.oneOf.0.additionalProperties","typeLabel":"SecretSource · object"},"uniqueKey":"config.oneOf.0.secrets.oneOf.0","typeLabel":"Secrets · object"},{"type":"null","title":"Secrets","uniqueKey":"config.oneOf.0.secrets.oneOf.1","typeLabel":"null"}],"uniqueKey":"config.oneOf.0.secrets","typeLabel":"Secrets · object | null"}},"additionalProperties":false,"uniqueKey":"config.oneOf.0","typeLabel":"WorkspaceConfig · object"},{"type":"null","description":"Workspace configuration. Supply config or template, never both.","uniqueKey":"config.oneOf.1","typeLabel":"null"}],"uniqueKey":"config","typeLabel":"WorkspaceConfig · object | null"},"template":{"oneOf":[{"type":"string","title":"Template","description":"Name of a saved template. Supply template or config, never both.","uniqueKey":"template.oneOf.0","typeLabel":"string"},{"type":"null","title":"Template","description":"Name of a saved template. Supply template or config, never both.","uniqueKey":"template.oneOf.1","typeLabel":"null"}],"uniqueKey":"template","typeLabel":"string | null"},"id":{"oneOf":[{"type":"string","title":"Id","description":"Workspace identifier. Use the same identifier to retry an identical configuration.","uniqueKey":"id.oneOf.0","typeLabel":"string"},{"type":"null","title":"Id","description":"Workspace identifier. Use the same identifier to retry an identical configuration.","uniqueKey":"id.oneOf.1","typeLabel":"null"}],"uniqueKey":"id","typeLabel":"string | null"}},"additionalProperties":false,"type":"object","title":"CreateWorkspaceRequest","description":"Workspace configuration or saved template to create from. Supply exactly one of `config` and `template`.","uniqueKey":"","typeLabel":"CreateWorkspaceRequest · object"},"example":{"id":"demo","config":{"mounts":{"/":{"vfs":"ram","mode":"write"}}}},"examples":{"Example":{"title":"Example","value":{"id":"demo","config":{"mounts":{"/":{"vfs":"ram","mode":"write"}}}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"37715361-53f7-40c7-a859-441906363831":{"description":"Existing workspace for an identical retry, or policy evaluation when `explain=true`.","content":{"application/json":{"schema":{"oneOf":[{"type":"object","title":"WorkspaceDetail","required":["id","status","created_at"],"properties":{"id":{"title":"Id","type":"string","isRequired":true,"uniqueKey":"oneOf.0.id","typeLabel":"string"},"status":{"type":"string","enum":["running","stopped"],"title":"Status","description":"running while the server holds the workspace in memory; stopped while it keeps only its config and state, until a start.","isRequired":true,"uniqueKey":"oneOf.0.status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"number","title":"Created At","description":"Creation time as Unix seconds. For example, 1794009600 is 2026-11-07T00:00:00Z. Fractional values include sub-second precision.","example":1794009600,"isRequired":true,"uniqueKey":"oneOf.0.created_at","typeLabel":"number"},"system_time":{"oneOf":[{"type":"string","title":"System Time","uniqueKey":"oneOf.0.system_time.oneOf.0","typeLabel":"string"},{"type":"null","title":"System Time","uniqueKey":"oneOf.0.system_time.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.system_time","typeLabel":"string | null"},"sessions":{"items":{"properties":{"session_id":{"type":"string","title":"Session Id","isRequired":true,"uniqueKey":"oneOf.0.sessions.items.[INDEX].session_id","typeLabel":"string"},"cwd":{"type":"string","title":"Cwd","isRequired":true,"uniqueKey":"oneOf.0.sessions.items.[INDEX].cwd","typeLabel":"string"}},"type":"object","required":["session_id","cwd"],"title":"SessionSummary","uniqueKey":"oneOf.0.sessions.items.[INDEX]","typeLabel":"SessionSummary · object"},"type":"array","title":"Sessions","uniqueKey":"oneOf.0.sessions","typeLabel":"SessionSummary · object[]"},"mounts":{"items":{"properties":{"prefix":{"type":"string","title":"Prefix","isRequired":true,"uniqueKey":"oneOf.0.mounts.items.[INDEX].prefix","typeLabel":"string"},"vfs":{"type":"string","title":"Vfs","isRequired":true,"uniqueKey":"oneOf.0.mounts.items.[INDEX].vfs","typeLabel":"string"},"mode":{"type":"string","title":"Mode","isRequired":true,"uniqueKey":"oneOf.0.mounts.items.[INDEX].mode","typeLabel":"string"},"description":{"type":"string","title":"Description","default":"","uniqueKey":"oneOf.0.mounts.items.[INDEX].description","typeLabel":"string"},"backend":{"type":"string","enum":["workspace","fuse","fskit","nfs"],"title":"MountBackend","description":"How the mount is exposed. `workspace` is available only through Mirage. `fuse` and `fskit` expose operating-system mountpoints. `nfs` uses the system NFS client on Linux or macOS; Linux requires root.\n\nFSKit requires macOS 15.4 or later. FSKit and NFS require known file sizes for correct reads. NFS is read-only. The macFUSE FSKit adapter supports appends and metadata changes, but new-file and truncate-then-write operations can write zero-filled data instead of content. Select the backend explicitly.","default":"workspace","uniqueKey":"oneOf.0.mounts.items.[INDEX].backend","typeLabel":"enum\u003cstring>"},"mountpoint":{"oneOf":[{"type":"string","title":"Mountpoint","description":"Where the server exposes this mount on its own host, the generated path when the config named none; null for a workspace mount, and while the workspace is stopped.","uniqueKey":"oneOf.0.mounts.items.[INDEX].mountpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Mountpoint","description":"Where the server exposes this mount on its own host, the generated path when the config named none; null for a workspace mount, and while the workspace is stopped.","uniqueKey":"oneOf.0.mounts.items.[INDEX].mountpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.mounts.items.[INDEX].mountpoint","typeLabel":"string | null"}},"type":"object","required":["prefix","vfs","mode"],"title":"MountSummary","uniqueKey":"oneOf.0.mounts.items.[INDEX]","typeLabel":"MountSummary · object"},"type":"array","title":"Mounts","uniqueKey":"oneOf.0.mounts","typeLabel":"MountSummary · object[]"},"internals":{"oneOf":[{"type":"object","title":"WorkspaceInternals","required":["cache_bytes","cache_entries","history_length","in_flight_jobs"],"properties":{"cache_bytes":{"oneOf":[{"type":"integer","title":"Cache Bytes","isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.cache_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Bytes","isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.cache_bytes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.cache_bytes","typeLabel":"integer | null"},"cache_entries":{"oneOf":[{"type":"integer","title":"Cache Entries","isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.cache_entries.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Entries","isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.cache_entries.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.cache_entries","typeLabel":"integer | null"},"history_length":{"type":"integer","title":"History Length","isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.history_length","typeLabel":"integer"},"in_flight_jobs":{"type":"integer","title":"In Flight Jobs","isRequired":true,"uniqueKey":"oneOf.0.internals.oneOf.0.in_flight_jobs","typeLabel":"integer"}},"uniqueKey":"oneOf.0.internals.oneOf.0","typeLabel":"WorkspaceInternals · object"},{"type":"null","uniqueKey":"oneOf.0.internals.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.internals","typeLabel":"WorkspaceInternals · object | null"}},"uniqueKey":"oneOf.0","typeLabel":"WorkspaceDetail · object"},{"type":"object","title":"Policy explanation","uniqueKey":"oneOf.1","typeLabel":"Policy explanation · object"}],"uniqueKey":"","typeLabel":"WorkspaceDetail · object | Policy explanation · object"},"example":{"id":"demo","status":"running","created_at":1794009600,"system_time":null,"sessions":[{"session_id":"01a1b425-ec80-7038-86e0-75b597344043","cwd":"/"}],"mounts":[{"prefix":"/","vfs":"ram","mode":"write","description":"","backend":"workspace","mountpoint":null}],"internals":null},"examples":{"Example":{"title":"Example","value":{"id":"demo","status":"running","created_at":1794009600,"system_time":null,"sessions":[{"session_id":"01a1b425-ec80-7038-86e0-75b597344043","cwd":"/"}],"mounts":[{"prefix":"/","vfs":"ram","mode":"write","description":"","backend":"workspace","mountpoint":null}],"internals":null}}},"exampleType":"examples"}},"exampleType":"examples"},"8c875cb3-9b0c-4976-8d35-41a54373d506":{"description":"Created","content":{"application/json":{"schema":{"properties":{"id":{"title":"Id","type":"string","isRequired":true,"uniqueKey":"id","typeLabel":"string"},"status":{"type":"string","enum":["running","stopped"],"title":"Status","description":"running while the server holds the workspace in memory; stopped while it keeps only its config and state, until a start.","isRequired":true,"uniqueKey":"status","typeLabel":"enum\u003cstring>"},"created_at":{"type":"number","title":"Created At","description":"Creation time as Unix seconds. For example, 1794009600 is 2026-11-07T00:00:00Z. Fractional values include sub-second precision.","example":1794009600,"isRequired":true,"uniqueKey":"created_at","typeLabel":"number"},"system_time":{"oneOf":[{"type":"string","title":"System Time","uniqueKey":"system_time.oneOf.0","typeLabel":"string"},{"type":"null","title":"System Time","uniqueKey":"system_time.oneOf.1","typeLabel":"null"}],"uniqueKey":"system_time","typeLabel":"string | null"},"sessions":{"items":{"properties":{"session_id":{"type":"string","title":"Session Id","isRequired":true,"uniqueKey":"sessions.items.[INDEX].session_id","typeLabel":"string"},"cwd":{"type":"string","title":"Cwd","isRequired":true,"uniqueKey":"sessions.items.[INDEX].cwd","typeLabel":"string"}},"type":"object","required":["session_id","cwd"],"title":"SessionSummary","uniqueKey":"sessions.items.[INDEX]","typeLabel":"SessionSummary · object"},"type":"array","title":"Sessions","uniqueKey":"sessions","typeLabel":"SessionSummary · object[]"},"mounts":{"items":{"properties":{"prefix":{"type":"string","title":"Prefix","isRequired":true,"uniqueKey":"mounts.items.[INDEX].prefix","typeLabel":"string"},"vfs":{"type":"string","title":"Vfs","isRequired":true,"uniqueKey":"mounts.items.[INDEX].vfs","typeLabel":"string"},"mode":{"type":"string","title":"Mode","isRequired":true,"uniqueKey":"mounts.items.[INDEX].mode","typeLabel":"string"},"description":{"type":"string","title":"Description","default":"","uniqueKey":"mounts.items.[INDEX].description","typeLabel":"string"},"backend":{"type":"string","enum":["workspace","fuse","fskit","nfs"],"title":"MountBackend","description":"How the mount is exposed. `workspace` is available only through Mirage. `fuse` and `fskit` expose operating-system mountpoints. `nfs` uses the system NFS client on Linux or macOS; Linux requires root.\n\nFSKit requires macOS 15.4 or later. FSKit and NFS require known file sizes for correct reads. NFS is read-only. The macFUSE FSKit adapter supports appends and metadata changes, but new-file and truncate-then-write operations can write zero-filled data instead of content. Select the backend explicitly.","default":"workspace","uniqueKey":"mounts.items.[INDEX].backend","typeLabel":"enum\u003cstring>"},"mountpoint":{"oneOf":[{"type":"string","title":"Mountpoint","description":"Where the server exposes this mount on its own host, the generated path when the config named none; null for a workspace mount, and while the workspace is stopped.","uniqueKey":"mounts.items.[INDEX].mountpoint.oneOf.0","typeLabel":"string"},{"type":"null","title":"Mountpoint","description":"Where the server exposes this mount on its own host, the generated path when the config named none; null for a workspace mount, and while the workspace is stopped.","uniqueKey":"mounts.items.[INDEX].mountpoint.oneOf.1","typeLabel":"null"}],"uniqueKey":"mounts.items.[INDEX].mountpoint","typeLabel":"string | null"}},"type":"object","required":["prefix","vfs","mode"],"title":"MountSummary","uniqueKey":"mounts.items.[INDEX]","typeLabel":"MountSummary · object"},"type":"array","title":"Mounts","uniqueKey":"mounts","typeLabel":"MountSummary · object[]"},"internals":{"oneOf":[{"type":"object","title":"WorkspaceInternals","required":["cache_bytes","cache_entries","history_length","in_flight_jobs"],"properties":{"cache_bytes":{"oneOf":[{"type":"integer","title":"Cache Bytes","isRequired":true,"uniqueKey":"internals.oneOf.0.cache_bytes.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Bytes","isRequired":true,"uniqueKey":"internals.oneOf.0.cache_bytes.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"internals.oneOf.0.cache_bytes","typeLabel":"integer | null"},"cache_entries":{"oneOf":[{"type":"integer","title":"Cache Entries","isRequired":true,"uniqueKey":"internals.oneOf.0.cache_entries.oneOf.0","typeLabel":"integer"},{"type":"null","title":"Cache Entries","isRequired":true,"uniqueKey":"internals.oneOf.0.cache_entries.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"internals.oneOf.0.cache_entries","typeLabel":"integer | null"},"history_length":{"type":"integer","title":"History Length","isRequired":true,"uniqueKey":"internals.oneOf.0.history_length","typeLabel":"integer"},"in_flight_jobs":{"type":"integer","title":"In Flight Jobs","isRequired":true,"uniqueKey":"internals.oneOf.0.in_flight_jobs","typeLabel":"integer"}},"uniqueKey":"internals.oneOf.0","typeLabel":"WorkspaceInternals · object"},{"type":"null","uniqueKey":"internals.oneOf.1","typeLabel":"null"}],"uniqueKey":"internals","typeLabel":"WorkspaceInternals · object | null"}},"type":"object","required":["id","status","created_at"],"title":"WorkspaceDetail","uniqueKey":"","typeLabel":"WorkspaceDetail · object"},"example":{"id":"demo","status":"running","created_at":1794009600,"system_time":null,"sessions":[{"session_id":"01a1b425-ec80-7038-86e0-75b597344043","cwd":"/"}],"mounts":[{"prefix":"/","vfs":"ram","mode":"write","description":"","backend":"workspace","mountpoint":null}],"internals":null},"examples":{"Example":{"title":"Example","value":{"id":"demo","status":"running","created_at":1794009600,"system_time":null,"sessions":[{"session_id":"01a1b425-ec80-7038-86e0-75b597344043","cwd":"/"}],"mounts":[{"prefix":"/","vfs":"ram","mode":"write","description":"","backend":"workspace","mountpoint":null}],"internals":null}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"09ecccca-9871-40a1-a73f-73d80f8c9acc":{"bearerAuth":{"type":"http","scheme":"bearer","description":"The server's token (MIRAGE_AUTH_TOKEN) or a JWT. A daemon in the default local mode with no token accepts requests without one.","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"afafde3b-bc70-4615-873f-4ee992b62907":{"url":"http://127.0.0.1:8765","description":"A local server on its default port"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"The server's token (MIRAGE_AUTH_TOKEN) or a JWT. A daemon in the default local mode with no token accepts requests without one.","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"The server's token (MIRAGE_AUTH_TOKEN) or a JWT. A daemon in the default local mode with no token accepts requests without one.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.yaml"},"subdomain":"struktoai","siteName":"Mirage","title":"Create workspace - Mirage","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T11:37:56.410Z","originalFileLocation":"api/operations/workspaces/create-workspace.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Create a workspace from a configuration or saved template. Returns 201 when created, 200 for an identical retry with the same ID, or 409 if that ID has a different configuration. Set explain=true to check policies without creating anything.\">\u003cmeta data-mint-head name=\"keywords\" content=\"Mirage, filesystem for AI agents, virtual filesystem, AI agent tools, agent infrastructure, MCP alternative, bash for agents, S3 filesystem, Google Drive filesystem, Slack filesystem, GitHub filesystem, agent sandbox, Strukto\">\u003cmeta data-mint-head name=\"application-name\" content=\"Mirage\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create workspace - Mirage\">\u003cmeta data-mint-head property=\"og:description\" content=\"Create a workspace from a configuration or saved template. Returns 201 when created, 200 for an identical retry with the same ID, or 409 if that ID has a different configuration. Set explain=true to check policies without creating anything.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Mirage\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Create workspace - Mirage\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Create a workspace from a configuration or saved template. Returns 201 when created, 200 for an identical retry with the same ID, or 409 if that ID has a different configuration. Set explain=true to check policies without creating anything.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/struktoai/3lv99snhL-Tr_A0L/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Mirage\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0C0C0C\">\u003cmeta data-mint-head name=\"og:locale\" content=\"en_US\">\u003cmeta data-mint-head name=\"author\" content=\"Strukto\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#0C0C0C\">\u003cmeta data-mint-head name=\"color-scheme\" content=\"light dark\">\u003cmeta data-mint-head name=\"language\" content=\"en\">\u003cmeta data-mint-head name=\"category\" content=\"Technology\">\u003cmeta data-mint-head name=\"target\" content=\"developers\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-capable\" content=\"yes\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\">\u003cmeta data-mint-head name=\"og:image:alt\" content=\"Mirage: a virtual terminal for AI agents\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@struktoai\">\u003cmeta data-mint-head name=\"twitter:image:alt\" content=\"Mirage · A Virtual Terminal for AI Agents | Strukto\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api/operations/workspaces/create-workspace.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.mirage.strukto.ai/#organization\",\"name\":\"Mirage\",\"url\":\"https://docs.mirage.strukto.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/struktoai/7G-pGKhPIqaKqOXr/logo/light.svg?fit=max\u0026auto=format\u0026n=7G-pGKhPIqaKqOXr\u0026q=85\u0026s=d7007be7b5588a72b2072d2c33791785\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.mirage.strukto.ai#website\",\"name\":\"Mirage\",\"url\":\"https://docs.mirage.strukto.ai\",\"publisher\":{\"@id\":\"https://docs.mirage.strukto.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace#webpage\",\"url\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace\",\"name\":\"Create workspace\",\"description\":\"Create a workspace from a configuration or saved template. Returns 201 when created, 200 for an identical retry with the same ID, or 409 if that ID has a different configuration. Set explain=true to check policies without creating anything.\",\"dateModified\":\"2026-11-09T11:37:56.410Z\",\"isPartOf\":{\"@id\":\"https://docs.mirage.strukto.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Mirage\",\"item\":\"https://docs.mirage.strukto.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Create workspace\",\"item\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace#apireference\",\"headline\":\"Create workspace\",\"name\":\"Create workspace\",\"description\":\"Create a workspace from a configuration or saved template. Returns 201 when created, 200 for an identical retry with the same ID, or 409 if that ID has a different configuration. Set explain=true to check policies without creating anything.\",\"url\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace\",\"mainEntityOfPage\":{\"@id\":\"https://docs.mirage.strukto.ai/api/operations/workspaces/create-workspace#webpage\"},\"image\":\"https://raw.githubusercontent.com/strukto-ai/mirage/main/assets/mirage-og-light@2x.png\",\"dateModified\":\"2026-11-09T11:37:56.410Z\",\"publisher\":{\"@id\":\"https://docs.mirage.strukto.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.mirage.strukto.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Mirage\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Mirage","nav":{"global":null,"tabs":[{"tab":"Home","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/mirage-icon-light.svg","pages":[{"title":"Home","href":"/home/introduction"}]},{"tab":"Python","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/python-logo.svg","pages":[{"title":"Python","href":"/python/install"}]},{"tab":"TS","icon":"https://mintlify.s3.us-west-1.amazonaws.com/struktoai/images/typescript-logo.svg","pages":[{"title":"TS","href":"/typescript/install"}]},{"tab":"API reference","icon":"code","groups":[{"group":"HTTP API","pages":[{"title":"Overview","icon":"book-open","href":"/api/overview"},{"title":"Quickstart","icon":"bolt","href":"/api/quickstart"},{"title":"Authentication","icon":"key","href":"/api/authentication"},{"title":"Streaming and stdin","icon":"arrows-left-right","href":"/api/streaming"},{"title":"Errors","icon":"triangle-exclamation","href":"/api/errors"},{"title":"API reference","description":"Find endpoints by resource, path, parameter, or response field.","icon":"list","href":"/api/reference"}]},{"group":"Workspaces","pages":[{"group":"Lifecycle","pages":[{"title":"Create workspace","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces","href":"/api/operations/workspaces/create-workspace"},{"title":"List workspaces","description":"Running workspaces first, then stopped ones, which keep only their config and state until a start.","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces","href":"/api/operations/workspaces/list-workspaces"},{"title":"Get workspace","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}","href":"/api/operations/workspaces/get-workspace"},{"title":"Delete workspace","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/workspaces/{workspace_id}","href":"/api/operations/workspaces/delete-workspace"},{"title":"List workspace logs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/logs","href":"/api/operations/workspaces/list-workspace-logs"},{"title":"Stop workspace","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/stop","href":"/api/operations/workspaces/stop-workspace"},{"title":"Start workspace","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/start","href":"/api/operations/workspaces/start-workspace"},{"title":"Cancel all commands","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/cancel","href":"/api/operations/workspaces/cancel-all-commands"},{"title":"Stop all background jobs","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/kill","href":"/api/operations/workspaces/stop-all-background-jobs"},{"title":"Set profile","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/workspaces/{workspace_id}/profiles/{name}","href":"/api/operations/workspaces/set-profile"}]},{"group":"Shell","pages":[{"title":"Run shell command","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/shell","href":"/api/operations/shell/run-shell-command"}]},{"group":"VFS","pages":[{"title":"Read file","deprecated":null,"version":null,"sidebarTitle":"read","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/read","href":"/api/operations/vfs/read-file"},{"title":"Write file","deprecated":null,"version":null,"sidebarTitle":"write","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/write","href":"/api/operations/vfs/write-file"},{"title":"Append to file","deprecated":null,"version":null,"sidebarTitle":"append","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/append","href":"/api/operations/vfs/append-to-file"},{"title":"Write at file offset","deprecated":null,"version":null,"sidebarTitle":"pwrite","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/pwrite","href":"/api/operations/vfs/write-at-file-offset"},{"title":"Get path metadata","deprecated":null,"version":null,"sidebarTitle":"stat","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/stat","href":"/api/operations/vfs/get-path-metadata"},{"title":"List directory entries","deprecated":null,"version":null,"sidebarTitle":"readdir","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/readdir","href":"/api/operations/vfs/list-directory-entries"},{"title":"Check path exists","deprecated":null,"version":null,"sidebarTitle":"exists","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/exists","href":"/api/operations/vfs/check-path-exists"},{"title":"Check path is directory","deprecated":null,"version":null,"sidebarTitle":"is_dir","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/is_dir","href":"/api/operations/vfs/check-path-is-directory"},{"title":"Check path is file","deprecated":null,"version":null,"sidebarTitle":"is_file","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/is_file","href":"/api/operations/vfs/check-path-is-file"},{"title":"List file names","deprecated":null,"version":null,"sidebarTitle":"list_files","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/list_files","href":"/api/operations/vfs/list-file-names"},{"title":"Create directory","deprecated":null,"version":null,"sidebarTitle":"mkdir","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/mkdir","href":"/api/operations/vfs/create-directory"},{"title":"Delete empty directory","deprecated":null,"version":null,"sidebarTitle":"rmdir","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/rmdir","href":"/api/operations/vfs/delete-empty-directory"},{"title":"Delete file","deprecated":null,"version":null,"sidebarTitle":"unlink","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/unlink","href":"/api/operations/vfs/delete-file"},{"title":"Create empty file","deprecated":null,"version":null,"sidebarTitle":"create","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/create","href":"/api/operations/vfs/create-empty-file"},{"title":"Rename path","deprecated":null,"version":null,"sidebarTitle":"rename","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/rename","href":"/api/operations/vfs/rename-path"},{"title":"Create symbolic link","deprecated":null,"version":null,"sidebarTitle":"symlink","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/symlink","href":"/api/operations/vfs/create-symbolic-link"},{"title":"Read symbolic link","deprecated":null,"version":null,"sidebarTitle":"readlink","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/readlink","href":"/api/operations/vfs/read-symbolic-link"},{"title":"Update path attributes","deprecated":null,"version":null,"sidebarTitle":"setattr","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/setattr","href":"/api/operations/vfs/update-path-attributes"},{"title":"Get extended attribute","deprecated":null,"version":null,"sidebarTitle":"getxattr","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/getxattr","href":"/api/operations/vfs/get-extended-attribute"},{"title":"List extended attributes","deprecated":null,"version":null,"sidebarTitle":"listxattr","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/listxattr","href":"/api/operations/vfs/list-extended-attributes"},{"title":"Set extended attribute","deprecated":null,"version":null,"sidebarTitle":"setxattr","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/setxattr","href":"/api/operations/vfs/set-extended-attribute"},{"title":"Remove extended attribute","deprecated":null,"version":null,"sidebarTitle":"removexattr","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/removexattr","href":"/api/operations/vfs/remove-extended-attribute"},{"title":"Resize file","deprecated":null,"version":null,"sidebarTitle":"truncate","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/truncate","href":"/api/operations/vfs/resize-file"},{"title":"Call VFS function","deprecated":null,"version":null,"sidebarTitle":"call","openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/vfs/{name}","href":"/api/operations/vfs/call-vfs-function"}]},{"group":"Agent Instructions","pages":[{"title":"Read VFS.md","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/vfs-md","href":"/api/operations/documents/read-vfsmd"},{"title":"Write VFS.md","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/workspaces/{workspace_id}/vfs-md","href":"/api/operations/documents/write-vfsmd"},{"title":"Read SKILL.md","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/skill-md","href":"/api/operations/documents/read-skillmd"},{"title":"Write SKILL.md","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/workspaces/{workspace_id}/skill-md","href":"/api/operations/documents/write-skillmd"}]},{"group":"Approval requests","pages":[{"title":"List asks","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/asks","href":"/api/operations/asks/list-asks"},{"title":"Respond to ask","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/asks/{ask_id}","href":"/api/operations/asks/respond-to-ask"}]},{"group":"Commands","pages":[{"title":"List commands","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/lines","href":"/api/operations/lines/list-commands"},{"title":"Get command","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/lines/{line_id}","href":"/api/operations/lines/get-command"},{"title":"Write stdin","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/workspaces/{workspace_id}/lines/{line_id}/stdin","href":"/api/operations/lines/write-stdin"},{"title":"Close stdin","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/workspaces/{workspace_id}/lines/{line_id}/stdin","href":"/api/operations/lines/close-stdin"}]},{"group":"Jobs","pages":[{"title":"List jobs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/jobs","href":"/api/operations/jobs/list-jobs"},{"title":"Get job","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/jobs/{job_id}","href":"/api/operations/jobs/get-job"}]},{"group":"Processes","pages":[{"title":"List processes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/processes","href":"/api/operations/processes/list-processes"},{"title":"Get process","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/processes/{pid}","href":"/api/operations/processes/get-process"}]},{"group":"Machines","pages":[{"title":"List machines","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/machines","href":"/api/operations/machines/list-machines"},{"title":"Get machine","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/workspaces/{workspace_id}/machines/{machine_id}","href":"/api/operations/machines/get-machine"}]}]},{"group":"Configuration","pages":[{"group":"Templates","pages":[{"title":"List templates","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates","href":"/api/operations/templates/list-templates"},{"title":"Create template","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates","href":"/api/operations/templates/create-template"},{"title":"Get template","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/templates/{ref}","href":"/api/operations/templates/get-template"},{"title":"Delete template","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/templates/{ref}","href":"/api/operations/templates/delete-template"},{"title":"Restore template","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/templates/{ref}/restore","href":"/api/operations/templates/restore-template"}]},{"group":"Policies","pages":[{"title":"List policies","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/policies","href":"/api/operations/policies/list-policies"},{"title":"Create policy","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/policies","href":"/api/operations/policies/create-policy"},{"title":"Get policy","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/policies/{ref}","href":"/api/operations/policies/get-policy"},{"title":"Update policy","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/policies/{ref}","href":"/api/operations/policies/update-policy"},{"title":"Delete policy","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/policies/{ref}","href":"/api/operations/policies/delete-policy"}]},{"group":"VFS","pages":[{"title":"List VFS","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/vfs","href":"/api/operations/saved-vfs/list-vfs"},{"title":"Create VFS","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/vfs","href":"/api/operations/saved-vfs/create-vfs"},{"title":"List VFS types","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/vfs/types","href":"/api/operations/saved-vfs/list-vfs-types"},{"title":"Get VFS","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/vfs/{ref}","href":"/api/operations/saved-vfs/get-vfs"},{"title":"Update VFS","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/vfs/{ref}","href":"/api/operations/saved-vfs/update-vfs"},{"title":"Delete VFS","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/vfs/{ref}","href":"/api/operations/saved-vfs/delete-vfs"}]},{"group":"CLI","pages":[{"title":"List CLIs","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/clis","href":"/api/operations/saved-clis/list-clis"},{"title":"Create CLI","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/clis","href":"/api/operations/saved-clis/create-cli"},{"title":"List CLI types","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/clis/types","href":"/api/operations/saved-clis/list-cli-types"},{"title":"Get CLI","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/clis/{ref}","href":"/api/operations/saved-clis/get-cli"},{"title":"Update CLI","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/clis/{ref}","href":"/api/operations/saved-clis/update-cli"},{"title":"Delete CLI","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/clis/{ref}","href":"/api/operations/saved-clis/delete-cli"}]},{"group":"Runtime","pages":[{"title":"List runtimes","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/runtimes","href":"/api/operations/saved-runtimes/list-runtimes"},{"title":"Create runtime","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/runtimes","href":"/api/operations/saved-runtimes/create-runtime"},{"title":"List runtime types","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/runtimes/types","href":"/api/operations/saved-runtimes/list-runtime-types"},{"title":"Get runtime","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/runtimes/{ref}","href":"/api/operations/saved-runtimes/get-runtime"},{"title":"Update runtime","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/runtimes/{ref}","href":"/api/operations/saved-runtimes/update-runtime"},{"title":"Delete runtime","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/runtimes/{ref}","href":"/api/operations/saved-runtimes/delete-runtime"}]},{"group":"Machine","pages":[{"title":"List machines","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines","href":"/api/operations/saved-machines/list-machines"},{"title":"Create machine","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/machines","href":"/api/operations/saved-machines/create-machine"},{"title":"List machine types","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/types","href":"/api/operations/saved-machines/list-machine-types"},{"title":"Get machine","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/machines/{ref}","href":"/api/operations/saved-machines/get-machine"},{"title":"Update machine","deprecated":null,"version":null,"openapi":"/openapi.yaml put /v1/machines/{ref}","href":"/api/operations/saved-machines/update-machine"},{"title":"Delete machine","deprecated":null,"version":null,"openapi":"/openapi.yaml delete /v1/machines/{ref}","href":"/api/operations/saved-machines/delete-machine"}]}]},{"group":"Server","pages":[{"group":"Service","pages":[{"title":"Check health","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/health","href":"/api/operations/service/check-health"}]},{"group":"Daemon","pages":[{"title":"Check readiness","deprecated":null,"version":null,"openapi":"/openapi.yaml get /v1/daemon/ready","href":"/api/operations/daemon/check-readiness"},{"title":"Shut down server","deprecated":null,"version":null,"openapi":"/openapi.yaml post /v1/daemon/shutdown","href":"/api/operations/daemon/shut-down-server"}]}]}]}]},"basePath":"","title":"Create workspace - Mirage","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C-hEh3I2.js","utils-CnF4QiUD.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C7PVNbel.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-8ytevL2A.js","snippetPresets-BT1alx3v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-BLXC0i_W.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-CyLIGI9_.js","shallow-DC0lGVIW.js","getApiPlaygroundDisplay-CgDQ85tN.js","CodeSnippet-6-I-Gpv9.js","CodeSnippets-BAk1kDdu.js","Page-C945cI-W.js","getPastedJson-B276RuWN.js","icon-BqP8etTm.js","MethodPill-DM6sbxG1.js","DuplicateIcon-PyJglOaE.js","createIcon-CMeOMAc_.js","DynamicMarkdown-BoyYAA8K.js","SectionHeading-DAYv3gvZ.js","axios-vUo_bRtp.js","Markdown-BhTTmazV.js","clsx-CR-RHrVC.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CBUH0-zX.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BmARFYNC.js"]}