You can restrict which Maia runners are available to a specific project or environment. This is useful if you have multiple Maia runners and want to ensure that a Maia runner is only available to specific projects. You can also ensure that only specific environments are allowed to use Maia runners, thus preventing access within a project to any user who doesn’t have access to that environment.An unrestricted Maia runner (the default state when a Maia runner is created) can always be used by any project or environment. A restricted Maia runner can only be used by the projects and environments you specify. If you restrict a Maia runner but don’t specify any projects, the Maia runner won’t be accessible to any project.In addition to the process described below, you can also restrict Maia runners using the Update an agent endpoint, and manage the Maia runner‘s allow list using the Set allow list and Remove project from allow list endpoints.
You can restrict a Maia runner regardless of its current status (Running, Stopped, etc.).
In the left navigation, click . Then, select Runners from the menu.
Locate the Maia runner you want to restrict and click the Maia runner‘s name to open the Maia runner details page.
Click the Allow List tab.
Click the Restrict agent toggle to enable restrictions. This will reveal the list of projects that can use the Maia runner, along with the number of environments in each project that can use the Maia runner (“All environments”, “1 environment”, “2 environments”, etc.).
Click Manage next to the Projects heading. This will open the Manage projects dialog.
The Manage projects dialog lists all the projects in your Maia account. To allow a project to use the Maia runner, click the project name and then click the right-arrow button. This will move the project to the Allowed projects list on the right. You can use the left-arrow button to remove a project from the Allowed projects list.
Click Save to save your changes and close the dialog.
By default, every environment in an allowed project can use the Maia runner. If you want to further restrict the Maia runner to a specific environment or set of environments within the project:
Click environments next to the project name (it may say “All environments”, “1 environment”, “2 environments”, etc.). This will open the Manage environments dialog.
The Manage environments dialog lists all the environments used by the project. To allow an environment to use the Maia runner, click the environment name and then click the right-arrow button. This will move the environment to the Allowed environments list on the right. You can use the left-arrow button to remove an environment from the Allowed environments list.
If an environment doesn’t yet exist but you want to ensure that when it’s created it can use the Maia runner, you can use the Reserve environment function to specify the name of the environment that you plan to create. To do this:
Click the three dots … to the right of the project you want to reserve an environment for.
Click + Reserve environment. This will open the Reserve Environment dialog.
In the Environment name field, enter the name of the environment you plan to create.
Click Reserve to reserve the name and close the dialog. The reserved environment name will be added to the Allowed environments list for the project, with “(reserved)” next to its name.
You can repeat this process to reserve multiple environment names for the project.
This action doesn’t create the environment. When an environment with this exact name is subsequently created in the project, this Maia runner will be available for selection by that environment.
When you reserve an environment name for the Maia runner, it automatically restricts the Maia runner to only that environment, even though it doesn’t yet exist, which means no other environments can use it unless you explicitly add them to the Allowed environments list.To remove a reserved environment, click the environment name in the Allowed environments list and then click the left-arrow button to move it to the list on the left. This will remove the reservation, and it will no longer appear in either list of the dialog.
If you switch the Restrict agent toggle off, the Maia runner will be made available to every project and environment. The list of allowed projects, environments, and reserved environments will be saved, however, so if you later re-enable the Restrict agent toggle, the previous restrictions will be restored.
When you create an environment within a project, one of the decisions you need to make is which Maia runner the environment will use. For details of how to create an environment, read Environments.The environment’s Runner drop-down will only display those Maia runners that are unrestricted or that are restricted to the environment that is being created.
When you create a schedule, one of the decisions you need to make is which Maia runner the scheduled pipelines will use. For details of how to create a schedule, read Schedules.The schedule’s Runner drop-down will only display those Maia runners that are unrestricted or that are restricted to the project and environment that the schedule is being created in.If you restrict a Maia runner so that it’s no longer available to a project that already uses it in a schedule, the schedule itself isn’t automatically updated or disabled. However, the next scheduled execution will be recorded with a Forbidden status in pipeline run history. To keep the schedule running, either re-include the project or environment in the Maia runner‘s allow list, or edit the schedule to use a different Maia runner. No new schedules subsequently added to the project will be able to select that Maia runner.
Was this page helpful?
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Maia Documentation","colors":{"primary":"#001f1d","light":"#20514e","dark":"#001f1d"},"logo":{"light":"https://mintcdn.com/matillion/GyuNBHAx-GXnVlKX/images/maia-by-matillion-light.svg?fit=max\u0026auto=format\u0026n=GyuNBHAx-GXnVlKX\u0026q=85\u0026s=2c48b854f858c5a835450b3f34360db7","dark":"https://mintcdn.com/matillion/GyuNBHAx-GXnVlKX/images/maia-by-matillion-dark.svg?fit=max\u0026auto=format\u0026n=GyuNBHAx-GXnVlKX\u0026q=85\u0026s=88f8d1e1b1931cefd35c233a56cafe0a","href":"https://docs.maia.ai/"},"favicon":{"light":"https://mintcdn.com/matillion/0xM0A92Owv1nZXX1/images/maia-favicon-dark-green.png?fit=max\u0026auto=format\u0026n=0xM0A92Owv1nZXX1\u0026q=85\u0026s=356295fc83c5c6d1ed4aac2573ae45b1","dark":"https://mintcdn.com/matillion/0xM0A92Owv1nZXX1/images/maia-favicon-white.png?fit=max\u0026auto=format\u0026n=0xM0A92Owv1nZXX1\u0026q=85\u0026s=8709fc6d370155352cb6a4b5bbdd59d6"},"appearance":{"default":"light","strict":true},"background":{"decoration":"gradient"},"navbar":{"links":[{"href":"https://support.matillion.com/s/","label":"Support"}],"primary":{"type":"button","label":"Book your Maia demo","href":"https://www.maia.ai/book-a-demo"}},"footer":{"socials":{"x":"https://x.com/matillion","facebook":"https://www.facebook.com/matillion","youtube":"https://www.youtube.com/user/MatillionVideos","linkedin":"https://www.linkedin.com/company/matillion-limited","instagram":"https://www.instagram.com/matillion_"},"links":[{"header":"Maia","items":[{"label":"Maia.ai","href":"https://maia.ai"},{"label":"Academy","href":"https://academy.matillion.com"},{"label":"Exchange","href":"https://exchange.matillion.com/"},{"label":"Roadmap","href":"https://roadmap.matillion.com/"},{"label":"Support","href":"https://support.matillion.com/s"},{"label":"YouTube","href":"https://www.youtube.com/@Matillion"}]},{"header":"Matillion","items":[{"label":"Matillion.com","href":"https://matillion.com"},{"label":"Status","href":"https://status.matillion.com/"},{"label":"News","href":"https://www.matillion.com/news"},{"label":"Legal","href":"https://www.matillion.com/legal"},{"label":"Trust Center","href":"https://www.matillion.com/trust-center"}]}]},"seo":{"metatags":{"google-site-verification":"0VLXGRESICGHnU66TdhEgUMBRRubPnW8JTkzOpiiNn0"}},"fonts":{"heading":{"family":"Inter, system-ui"},"body":{"family":"Inter, system-ui"}},"integrations":{"ga4":{"measurementId":"G-6T2W93NTXW"},"posthog":{"apiKey":"phc_ky6YtuQApuXUkdApnVTY5PrjvnHx7EQGtYyRVSd9G535","apiHost":"https://us.i.posthog.com"}},"contextual":{"options":["claude","chatgpt","perplexity","copy","view"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"matillion","hasAudioNarration":false,"actualSubdomain":"matillion","customDomains":["docs.maia.ai"],"gitSource":{"type":"github","owner":"matillion","repo":"maia-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"DISABLED"},"CONTEXTUAL_FEEDBACK":{"status":"DISABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"DISABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af31b8cb9fceafd4089c323","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"Components","count":355},{"language":"default","tag":"Guides","count":208},{"language":"default","tag":"Connectors","count":188},{"language":"default","tag":"API Reference","count":128},{"language":"default","tag":"Endpoints","count":113},{"language":"default","tag":"Orchestration","count":93},{"language":"default","tag":"Admin","count":71},{"language":"default","tag":"Transformation","count":69},{"language":"default","tag":"Runners","count":51},{"language":"default","tag":"Streaming","count":34}],"searchSettings":{"showContentSnippets":false}},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","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}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"#navbar .bg-background-light,#navbar .bg-background-dark{background-color:#001f1d!important}#navbar a,#navbar button,#navbar span,#navbar p{color:white!important}#navbar svg{color:white!important;stroke:white!important}#navbar #topbar-cta-button a,#navbar #topbar-cta-button a span,#navbar #topbar-cta-button svg{color:#001f1d!important}#navbar #topbar-cta-button a{font-weight:600!important}:root:not(.dark) #search-bar-entry,:root:not(.dark) #nav-anchor,:root:not(.dark) #navbar .navbar-link,:root:not(.dark) .nav-anchor{background-color:#0a3d39!important;border-radius:9999px!important}#topbar-cta-button a span.bg-primary-dark{background:#ffc700!important;border-radius:9999px!important}#navbar svg.bg-gray-500{background-color:white!important}#navbar button.lg\\:hidden div.font-semibold{color:white!important}#navbar button.lg\\:hidden div.text-gray-500 svg{color:white!important;stroke:white!important}#navbar img.nav-logo{content:url('/images/maia-by-matillion-light.svg');height:50px!important;width:auto!important}#footer img.nav-logo{content:url('/images/maia-by-matillion-dark.svg');height:80px!important;width:auto!important}#pagination{display:none}#navigation-items>div{padding-bottom:4rem!important}#navbar a[data-active=\"true\"] div.h-px{height:4px!important;background-color:#ffc700!important;border-radius:9999px!important}[id^=\"headlessui-dialog-panel\"] .navbar-link a{color:white!important}[id^=\"headlessui-dialog-panel\"] nav{padding-top:2.5rem}.accordion{width:100%!important;overflow-x:auto!important}.accordion>div{padding-left:1.375rem!important;padding-right:0!important}.accordion>div[class*=\"overflow\"],.accordion>div>div[class*=\"overflow\"]{overflow:visible!important}@media (min-width: 1920px){body:has(#navbar.is-not-custom) #body-content{max-width:2000px!important}body:has(#navbar.is-not-custom) #content-container{max-width:1650px!important}body:has(#navbar.is-not-custom) #navbar .max-w-8xl{max-width:2000px!important}}body:has(#navbar.is-not-custom) #content{zoom:var(--maia-content-zoom, 100%)}body:has(#navbar.is-not-custom) #content-area>#content+div:has(>p+a){zoom:var(--maia-content-zoom, 100%)}#content-area>#content+div:has(>p+a)>p{font-size:1.5rem;line-height:2rem;font-weight:600;letter-spacing:normal;color:#101828;margin-bottom:0.5rem}.dark #content-area>#content+div:has(>p+a)>p{color:inherit}#content-area>#content+div:has(>p+a)>a{font-size:1rem;line-height:1.75rem}"},{"filePath":"new-features-blog/new-features-blog.css","content":".fos-background-container{position:fixed;top:0;left:0;height:100vh;width:100vw;background:#fff3d1;z-index:-1;background-size:cover}.fos-post-page-container{background-color:#fff;border-radius:20px;padding:20px!important}.fos-roadmap-page-container{background-color:#fff;border-radius:20px;width:95%}@media (min-width: 1024px){.fos-roadmap-page-container{width:70%;margin:0 auto}}.fos-changelog-page-container{background-color:#fff;border-radius:20px}.banner-title,.fos-header-banner-title{color:#00524E;font-size:4rem;font-weight:700;font-family:'Inter', sans-serif}.banner-subtitle,.fos-header-banner-subtitle{color:#001F1D;font-size:1.1487em;margin-top:0.5em;margin-bottom:2em}.fos-header-boards-trigger,.fos-header-roadmap-trigger,.fos-header-changelog-trigger{display:none}.fos-user-side-header{color:white;font-family:'Inter', sans-serif}.fos-header-container{background-color:#001f1d;box-shadow:0px 1px 13px #bfbfbf}.fos-header-boards-dropdown-content span{color:white}.fos-header-links-container{justify-content:center;gap:1em}.fos-header-link{color:white;font-size:14px!important;font-weight:bold;padding:10px 0}.fos-header-logo-container{display:flex}.fos-header-logo-image{width:100px}.fos-header-boards-link{color:white;font-size:16px;padding:10px 0;font-weight:bold}.fos-header-link-icon{color:white}"}],"page":{"pagePath":"docs/guides/restrict-a-runner","slug":"/docs/guides/restrict-a-runner","pageMetadata":{"title":"Restrict a Maia runner","description":null,"href":"/docs/guides/restrict-a-runner"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const Runners=()=>_jsxs(_Fragment,{children:[`the `,_jsx(`strong`,{children:`Runners \u0026 Instances`}),` icon `,_jsx(`span`,{style:{whiteSpace:`nowrap`},children:_jsx(`img`,{src:`/images/global-nav/runners-instances.png`,width:`20`,height:`20`,style:{verticalAlign:`text-bottom`,display:`inline`,margin:`0 1px`}})})]});const m_runner=`Maia runner`;const designer=`Designer`;const maia=`Maia`;const RunnerMetadata=({runnerType,platforms=[]})=>{return _jsx(`div`,{style:{background:`var(--colors-background-light, #f9fafb)`,border:`1px solid var(--colors-border-default, #e5e7eb)`,borderRadius:`12px`,padding:`20px 28px`,marginBottom:`28px`,boxShadow:`0 1px 4px rgba(0,0,0,0.10)`},children:_jsx(`table`,{style:{width:`100%`,borderCollapse:`collapse`},children:_jsxs(`tbody`,{children:[_jsxs(`tr`,{children:[_jsx(`td`,{style:{fontWeight:`600`,paddingRight:`32px`,paddingBottom:`14px`,whiteSpace:`nowrap`,verticalAlign:`middle`,width:`180px`},children:`Runner type`}),_jsx(`td`,{style:{paddingBottom:`14px`,verticalAlign:`middle`},children:runnerType})]}),_jsxs(`tr`,{children:[_jsx(`td`,{style:{fontWeight:`600`,paddingRight:`32px`,whiteSpace:`nowrap`,verticalAlign:`middle`},children:`Runner platform`}),_jsx(`td`,{style:{verticalAlign:`middle`},children:_jsx(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:`8px`},children:platforms.map((platform,i)=>_jsxs(`span`,{style:{background:`#dcfce7`,color:`#15803d`,border:`1px solid #bbf7d0`,borderRadius:`9999px`,padding:`3px 12px`,fontSize:`0.85rem`,fontWeight:`500`,whiteSpace:`nowrap`},children:[platform,` ✅`]},i))})})]})]})})})};function _createMdxContent(props){const _components={a:`a`,em:`em`,hr:`hr`,li:`li`,ol:`ol`,p:`p`,strong:`strong`,..._provideComponents(),...props.components},{Heading,Note,_MdxComponentBoundary}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!_MdxComponentBoundary)_missingMdxReference(`_MdxComponentBoundary`,true);return _jsxs(_Fragment,{children:[_jsx(_MdxComponentBoundary,{name:`RunnerMetadata`,children:_jsx(RunnerMetadata,{runnerType:`${maia} Hybrid`,platforms:[`AWS`,`Azure`,`Google Cloud`,`Snowflake`]})}),`\n`,_jsxs(_components.p,{children:[`You can restrict which `,m_runner,`s are available to a specific project or environment. This is useful if you have multiple `,m_runner,`s and want to ensure that a `,m_runner,` is only available to specific projects. You can also ensure that only specific environments are allowed to use `,m_runner,`s, thus preventing access within a project to any user who doesn’t have access to that environment.`]}),`\n`,_jsxs(_components.p,{children:[`An unrestricted `,m_runner,` (the default state when a `,m_runner,` is created) can always be used by any project or environment. A restricted `,m_runner,` can only be used by the projects and environments you specify. If you restrict a `,m_runner,` but don’t specify any projects, the `,m_runner,` won’t be accessible to any project.`]}),`\n`,_jsxs(_components.p,{children:[`In addition to the process described below, you can also restrict `,m_runner,`s using the `,_jsx(_components.a,{href:`/api-reference/runners/update-a-runner`,children:`Update an agent`}),` endpoint, and manage the `,m_runner,`‘s allow list using the `,_jsx(_components.a,{href:`/api-reference/runners/set-runner-allow-list`,children:`Set allow list`}),` and `,_jsx(_components.a,{href:`/api-reference/runners/remove-project-from-runner-allow-list`,children:`Remove project from allow list`}),` endpoints.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`how-to-restrict-a-maia-runner`,children:`How to restrict a Maia runner`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`You can restrict a `,m_runner,` regardless of its current status (Running, Stopped, etc.).`]})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`In the left navigation, click `,_jsx(_MdxComponentBoundary,{name:`Runners`,children:_jsx(Runners,{})}),`. Then, select `,_jsx(_components.strong,{children:`Runners`}),` from the menu.`]}),`\n`,_jsxs(_components.li,{children:[`Locate the `,m_runner,` you want to restrict and click the `,m_runner,`‘s name to open the `,m_runner,` details page.`]}),`\n`,_jsxs(_components.li,{children:[`Click the `,_jsx(_components.strong,{children:`Allow List`}),` tab.`]}),`\n`,_jsxs(_components.li,{children:[`Click the `,_jsx(_components.strong,{children:`Restrict agent`}),` toggle to enable restrictions. This will reveal the list of projects that can use the `,m_runner,`, along with the number of environments in each project that can use the `,m_runner,` (“All environments”, “1 environment”, “2 environments”, etc.).`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Manage`}),` next to the `,_jsx(_components.strong,{children:`Projects`}),` heading. This will open the `,_jsx(_components.strong,{children:`Manage projects`}),` dialog.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Manage projects`}),` dialog lists all the projects in your `,maia,` account. To allow a project to use the `,m_runner,`, click the project name and then click the right-arrow button. This will move the project to the `,_jsx(_components.strong,{children:`Allowed projects`}),` list on the right. You can use the left-arrow button to remove a project from the `,_jsx(_components.strong,{children:`Allowed projects`}),` list.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Save`}),` to save your changes and close the dialog.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`By default, every environment in an allowed project can use the `,m_runner,`. If you want to further restrict the `,m_runner,` to a specific environment or set of environments within the project:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`environments`}),` next to the project name (it may say “All environments”, “1 environment”, “2 environments”, etc.). This will open the `,_jsx(_components.strong,{children:`Manage environments`}),` dialog.`]}),`\n`,_jsxs(_components.li,{children:[`The `,_jsx(_components.strong,{children:`Manage environments`}),` dialog lists all the environments used by the project. To allow an environment to use the `,m_runner,`, click the environment name and then click the right-arrow button. This will move the environment to the `,_jsx(_components.strong,{children:`Allowed environments`}),` list on the right. You can use the left-arrow button to remove an environment from the `,_jsx(_components.strong,{children:`Allowed environments`}),` list.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`reserving-an-environment-name`,children:`Reserving an environment name`}),`\n`,_jsxs(_components.p,{children:[`If an environment doesn’t yet exist but you want to ensure that when it’s created it can use the `,m_runner,`, you can use the `,_jsx(_components.strong,{children:`Reserve environment`}),` function to specify the name of the environment that you plan to create. To do this:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click the three dots `,_jsx(_components.strong,{children:`…`}),` to the right of the project you want to reserve an environment for.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`+ Reserve environment`}),`. This will open the `,_jsx(_components.strong,{children:`Reserve Environment`}),` dialog.`]}),`\n`,_jsxs(_components.li,{children:[`In the `,_jsx(_components.strong,{children:`Environment name`}),` field, enter the name of the environment you plan to create.`]}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Reserve`}),` to reserve the name and close the dialog. The reserved environment name will be added to the `,_jsx(_components.strong,{children:`Allowed environments`}),` list for the project, with “(reserved)” next to its name.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`You can repeat this process to reserve multiple environment names for the project.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`This action `,_jsx(_components.em,{children:`doesn’t`}),` create the environment. When an environment with this exact name is subsequently created in the project, this `,m_runner,` will be available for selection by that environment.`]})}),`\n`,_jsxs(_components.p,{children:[`When you reserve an environment name for the `,m_runner,`, it automatically restricts the `,m_runner,` to only that environment, even though it doesn’t yet exist, which means no other environments can use it unless you explicitly add them to the `,_jsx(_components.strong,{children:`Allowed environments`}),` list.`]}),`\n`,_jsxs(_components.p,{children:[`To remove a reserved environment, click the environment name in the `,_jsx(_components.strong,{children:`Allowed environments`}),` list and then click the left-arrow button to move it to the list on the left. This will remove the reservation, and it will no longer appear in either list of the dialog.`]}),`\n`,_jsx(Heading,{level:`3`,id:`turning-off-maia-runner-restrictions`,children:`Turning off Maia runner restrictions`}),`\n`,_jsxs(_components.p,{children:[`If you switch the `,_jsx(_components.strong,{children:`Restrict agent`}),` toggle off, the `,m_runner,` will be made available to every project and environment. The list of allowed projects, environments, and reserved environments will be saved, however, so if you later re-enable the `,_jsx(_components.strong,{children:`Restrict agent`}),` toggle, the previous restrictions will be restored.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`using-the-restricted-maia-runner`,children:`Using the restricted Maia runner`}),`\n`,_jsx(Heading,{level:`3`,id:`in-an-environment`,children:`In an environment`}),`\n`,_jsxs(_components.p,{children:[`When you create an environment within a project, one of the decisions you need to make is which `,m_runner,` the environment will use. For details of how to create an environment, read `,_jsx(_components.a,{href:`/docs/guides/environments`,children:`Environments`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The environment’s `,_jsx(_components.strong,{children:`Runner`}),` drop-down will only display those `,m_runner,`s that are unrestricted or that are restricted to the environment that is being created.`]}),`\n`,_jsx(Heading,{level:`3`,id:`in-a-schedule`,children:`In a schedule`}),`\n`,_jsxs(_components.p,{children:[`When you create a schedule, one of the decisions you need to make is which `,m_runner,` the scheduled pipelines will use. For details of how to create a schedule, read `,_jsx(_components.a,{href:`/docs/guides/schedules`,children:`Schedules`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The schedule’s `,_jsx(_components.strong,{children:`Runner`}),` drop-down will only display those `,m_runner,`s that are unrestricted or that are restricted to the project and environment that the schedule is being created in.`]}),`\n`,_jsxs(_components.p,{children:[`If you restrict a `,m_runner,` so that it’s no longer available to a project that already uses it in a schedule, the schedule itself isn’t automatically updated or disabled. However, the next scheduled execution will be recorded with a `,_jsx(_components.strong,{children:`Forbidden`}),` status in `,_jsx(_components.a,{href:`/docs/guides/pipeline-run-history`,children:`pipeline run history`}),`. To keep the schedule running, either re-include the project or environment in the `,m_runner,`‘s allow list, or edit the schedule to use a different `,m_runner,`. No new schedules subsequently added to the project will be able to select that `,m_runner,`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{Runners,m_runner,designer,maia,RunnerMetadata,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":"Restrict a Maia runner","description":null,"href":"/docs/guides/restrict-a-runner"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[146,449,"null;const RunnerMetadata=()=>null;const"],[517,1704,""],[2194,2222,""],[2340,2355,"`Maia runner`,`s are"],[2442,2492,"`Maia runner`,`s and want to ensure that a `,`Maia runner`,`"],[2606,2621,"`Maia runner`,`s, th"],[2774,2824,"`Maia runner`,` (the default state when a `,`Maia runner`,` "],[2901,2916,"`Maia runner`,` can "],[2995,3065,"`Maia runner`,` but don’t specify any projects, the `,`Maia runner`,` won’t be a"],[3199,3214,"`Maia runner`,`s usi"],[3347,3362,"`Maia runner`,`‘s al"],[3851,3866,"`Maia runner`,` rega"],[4238,4343,"`Maia runner`,` you want to restrict and click the `,`Maia runner`,`‘s name to open the `,`Maia runner`,` details page.`"],[4648,4663,"`Maia runner`,`, alo"],[4733,4748,"`Maia runner`,` (“Al"],[5203,5276,"`Maia`,` account. To allow a project to use the `,`Maia runner`,`, click the pro"],[5815,5885,"`Maia runner`,`. If you want to further restrict the `,`Maia runner`,` to a spec"],[6470,6485,"`Maia runner`,`, cli"],[7057,7072,"`Maia runner`,`, you"],[8479,8494,"`Maia runner`,` will"],[8632,8702,"`Maia runner`,`, it automatically restricts the `,`Maia runner`,` to only that e"],[9495,9510,"`Maia runner`,` will"],[10156,10171,"`Maia runner`,` the "],[10470,10485,"`Maia runner`,`s tha"],[10760,10775,"`Maia runner`,` the "],[11069,11084,"`Maia runner`,`s tha"],[11256,11271,"`Maia runner`,` so t"],[11718,11733,"`Maia runner`,`‘s al"],[11785,11800,"`Maia runner`,`. No "],[11878,11893,"`Maia runner`,`.`]})"],[12126,12166,"RunnerMetadata,m_runner,designer,maia,de"]]},"mdxExtracts":{"tableOfContents":[{"title":"How to restrict a Maia runner","slug":"how-to-restrict-a-maia-runner","depth":2,"children":[{"title":"Reserving an environment name","slug":"reserving-an-environment-name","depth":3,"children":[]},{"title":"Turning off Maia runner restrictions","slug":"turning-off-maia-runner-restrictions","depth":3,"children":[]}]},{"title":"Using the restricted Maia runner","slug":"using-the-restricted-maia-runner","depth":2,"children":[{"title":"In an environment","slug":"in-an-environment","depth":3,"children":[]},{"title":"In a schedule","slug":"in-a-schedule","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/matillion/1eecfe13cb8a36b9/scripts/feedback-widget.js","/_mintlify/custom/matillion/b8b092d8d394af0f/scripts/ga4-events.js","/_mintlify/custom/matillion/5baf5b38fe34f41f/scripts/iubenda.js","/_mintlify/custom/matillion/573540f1e9142d9c/scripts/kapa-widget.js","/_mintlify/custom/matillion/a52101786f42c23b/scripts/ph-pageleaves.js","/_mintlify/custom/matillion/b8f0431aaf9ef855/scripts/cookie-preferences-button.js","/_mintlify/custom/matillion/a3d31738f4c89949/scripts/status-badge-nav.js","/_mintlify/custom/matillion/b444958fcc79163d/scripts/text-size-slider.js","/_mintlify/custom/matillion/f7016c1e98f77080/scripts/posthog-events.js"],"subdomain":"matillion","siteName":"Maia Documentation","title":"Restrict a Maia runner - Maia Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T16:52:23.363Z","originalFileLocation":"docs/guides/restrict-a-runner.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}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=\"application-name\" content=\"Maia Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_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/matillion/eb7R3mt9l7P1vThW/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Restrict a Maia runner - Maia Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Maia Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.maia.ai/docs/guides/restrict-a-runner\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://matillion.mintlify.site/_mintlify/api/og/v2?division=Managing+runners\u0026amp;title=Restrict+a+Maia+runner\u0026amp;theme=ce57a3e3dfd574362d42229a\u0026amp;signature=dbd0bad17653d1d5bee8269748654387fc3a5f21e1117f9ae4e59254f21b90b2\">\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=\"Restrict a Maia runner - Maia Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://matillion.mintlify.site/_mintlify/api/og/v2?division=Managing+runners\u0026amp;title=Restrict+a+Maia+runner\u0026amp;theme=ce57a3e3dfd574362d42229a\u0026amp;signature=dbd0bad17653d1d5bee8269748654387fc3a5f21e1117f9ae4e59254f21b90b2\">\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/matillion/eb7R3mt9l7P1vThW/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Maia Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#001f1d\">\u003cmeta data-mint-head name=\"google-site-verification\" content=\"0VLXGRESICGHnU66TdhEgUMBRRubPnW8JTkzOpiiNn0\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.maia.ai/docs/guides/restrict-a-runner\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/guides/restrict-a-runner.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.maia.ai/#organization\",\"name\":\"Maia Documentation\",\"url\":\"https://docs.maia.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/matillion/GyuNBHAx-GXnVlKX/images/maia-by-matillion-light.svg?fit=max\u0026auto=format\u0026n=GyuNBHAx-GXnVlKX\u0026q=85\u0026s=2c48b854f858c5a835450b3f34360db7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.maia.ai#website\",\"name\":\"Maia Documentation\",\"url\":\"https://docs.maia.ai\",\"publisher\":{\"@id\":\"https://docs.maia.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.maia.ai/docs/guides/restrict-a-runner#webpage\",\"url\":\"https://docs.maia.ai/docs/guides/restrict-a-runner\",\"name\":\"Restrict a Maia runner\",\"dateModified\":\"2026-11-09T16:52:23.363Z\",\"isPartOf\":{\"@id\":\"https://docs.maia.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.maia.ai/docs/guides/restrict-a-runner#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.maia.ai/docs/guides/restrict-a-runner#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Runners\",\"item\":\"https://docs.maia.ai/docs/guides/runner-overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Managing runners\",\"item\":\"https://docs.maia.ai/docs/guides/manage-runners\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Restrict a Maia runner\",\"item\":\"https://docs.maia.ai/docs/guides/restrict-a-runner\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.maia.ai/docs/guides/restrict-a-runner#article\",\"headline\":\"Restrict a Maia runner\",\"name\":\"Restrict a Maia runner\",\"url\":\"https://docs.maia.ai/docs/guides/restrict-a-runner\",\"mainEntityOfPage\":{\"@id\":\"https://docs.maia.ai/docs/guides/restrict-a-runner#webpage\"},\"dateModified\":\"2026-11-09T16:52:23.363Z\",\"publisher\":{\"@id\":\"https://docs.maia.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.maia.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Maia Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Maia Documentation","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":""}]},{"tab":"Admin","pages":[{"title":"Admin","href":"/docs/administration/administration-overview"}]},{"tab":"Components","pages":[{"title":"Components","href":"/docs/components/components-overview"}]},{"tab":"Guides","pages":[{"group":"Platform overview","root":{"title":"Maia product overview","href":"/docs/guides/maia-overview"},"pages":[{"title":"Maia product overview","href":"/docs/guides/maia-overview"},{"title":"Maia product architecture","href":"/docs/guides/architecture-overview"},{"title":"Full SaaS vs Hybrid SaaS","href":"/docs/guides/full-saas-vs-hybrid-saas"},{"title":"Data Pipeline Language (DPL)","href":"/docs/guides/data-pipeline-language"},{"title":"Maia glossary","href":"/docs/guides/glossary"},{"title":"Supported browsers","href":"/docs/guides/supported-browsers"},{"title":"Maia product release FAQ","href":"/docs/guides/release-faq"},{"title":"Migrating from Matillion ETL to Maia","href":"/docs/guides/migrating-from-matillion-etl"}]},{"group":"Setup","root":{"title":"Setup overview","href":"/docs/guides/setup-overview"},"pages":[{"title":"Setup overview","href":"/docs/guides/setup-overview"},{"title":"Services","href":"/docs/guides/services"},{"group":"Full SaaS","pages":[{"title":"Setup guide - Matillion Full SaaS Snowflake","href":"/docs/guides/full-saas-snowflake"},{"title":"Setup guide - Matillion Full SaaS Amazon Redshift","href":"/docs/guides/full-saas-redshift"},{"title":"Setup guide - Matillion Full SaaS Databricks","href":"/docs/guides/full-saas-databricks"},{"title":"Setup guide - Matillion Full SaaS Google BigQuery","href":"/docs/guides/full-saas-bigquery"}]},{"group":"Hybrid SaaS","pages":[{"title":"Setup guide - Hybrid SaaS Snowflake on AWS","href":"/docs/guides/hybrid-saas-snowflake-aws"},{"title":"Setup guide - Hybrid SaaS Snowflake on Azure","href":"/docs/guides/hybrid-saas-snowflake-azure"},{"title":"Setup guide - Hybrid SaaS Snowflake on Google Cloud","href":"/docs/guides/hybrid-saas-snowflake-gcp"},{"title":"Setup guide - Hybrid SaaS Snowflake on Snowpark","href":"/docs/guides/hybrid-saas-snowflake-snowpark"},{"title":"Setup guide - Hybrid SaaS Amazon Redshift on AWS","href":"/docs/guides/hybrid-saas-redshift-aws"},{"title":"Setup guide - Hybrid SaaS Databricks on AWS","href":"/docs/guides/hybrid-saas-databricks-aws"},{"title":"Setup guide - Hybrid SaaS Databricks on Azure","href":"/docs/guides/hybrid-saas-databricks-azure"},{"title":"Setup guide - Hybrid SaaS Google BigQuery","href":"/docs/guides/hybrid-saas-bigquery"}]}]},{"group":"Getting started","root":{"title":"Maia new user tutorial","href":"/docs/guides/new-user-tutorial"},"pages":[{"title":"Maia new user tutorial","href":"/docs/guides/new-user-tutorial"},{"title":"Project quickstart guide","href":"/docs/guides/project-quickstart-guide"},{"title":"Using Designer","href":"/docs/guides/using-designer"},{"title":"Convert workloads from other platforms","tag":"Preview","href":"/docs/guides/convert-workloads-from-other-platforms"},{"title":"Best practices for converting workloads","href":"/docs/guides/convert-workloads-best-practices"},{"title":"Getting started with loading data","href":"/docs/guides/loading-data-overview"},{"title":"Incremental or high water mark data loading","href":"/docs/guides/incremental-load-example"},{"title":"Post-processing","href":"/docs/guides/post-processing"},{"title":"Sampling component output and metadata","href":"/docs/guides/sampling-output"},{"title":"Validating pipelines","href":"/docs/guides/validating-pipelines"},{"title":"Organizing file storage","href":"/docs/guides/organizing-file-storage"}]},{"group":"Projects","root":{"title":"Projects","href":"/docs/guides/projects"},"pages":[{"title":"Projects","href":"/docs/guides/projects"},{"title":"Branches","href":"/docs/guides/branches"},{"title":"Environments","href":"/docs/guides/environments"},{"title":"Artifacts","href":"/docs/guides/artifacts"},{"title":"Schedules","href":"/docs/guides/schedules"},{"group":"Connections","root":{"title":"Connections","href":"/docs/guides/connections"},"pages":[{"title":"Connections","href":"/docs/guides/connections"},{"title":"Secrets and connections","href":"/docs/guides/secrets-and-connections-overview"},{"title":"Understanding the new connections model","href":"/docs/guides/new-connections-model"},{"title":"Secrets and secret definitions","href":"/docs/guides/secrets-and-secret-definitions"},{"title":"Cloud provider credentials","href":"/docs/guides/cloud-credentials"}]},{"title":"Networks","href":"/docs/guides/networks"},{"title":"Upgrade Assistant","href":"/docs/guides/upgrade-assistant"}]},{"group":"Pipelines","root":{"title":"Pipelines","href":"/docs/guides/pipelines"},"pages":[{"title":"Pipelines","href":"/docs/guides/pipelines"},{"title":"Pipelines tutorial","href":"/docs/guides/pipelines-tutorial"},{"group":"Variables","pages":[{"title":"Project and pipeline variables","href":"/docs/guides/variables"},{"title":"Grid variables","href":"/docs/guides/grid-variables"},{"title":"System variables","href":"/docs/guides/system-variables"},{"title":"Variable expressions","href":"/docs/guides/variable-expressions"}]},{"title":"Code Editor","href":"/docs/guides/code-editor"},{"title":"Transactions","href":"/docs/guides/transactions"},{"title":"Data masking in transformation pipelines","href":"/docs/guides/data-masking-transformation"},{"title":"Matillion data quality framework","href":"/docs/guides/data-quality-framework"},{"title":"Shared pipelines","href":"/docs/guides/shared-pipelines"},{"title":"Reviewing pipeline quality","tag":"Preview","href":"/docs/guides/pipeline-quality"},{"title":"Tutorial: Triggering a pipeline via SQS","href":"/docs/guides/triggering-a-pipeline-via-sqs"}]},{"group":"Git","root":{"title":"Git overview","href":"/docs/guides/git-introduction"},"pages":[{"title":"Git overview","href":"/docs/guides/git-introduction"},{"group":"Using Git in Designer","root":{"title":"Using Git in Designer","href":"/docs/guides/git-overview"},"pages":[{"title":"Using Git in Designer","href":"/docs/guides/git-overview"},{"title":"Commit changes","href":"/docs/guides/git-commit"},{"title":"Push local changes","href":"/docs/guides/git-push"},{"title":"Pull remote changes","href":"/docs/guides/git-pull"},{"title":"Merge from branch","href":"/docs/guides/git-merge"},{"title":"Compare changes","href":"/docs/guides/git-compare"},{"title":"Reset branch","href":"/docs/guides/git-hard-reset"},{"title":"Revert changes","href":"/docs/guides/git-revert"},{"title":"Pull requests","href":"/docs/guides/git-pull-requests"},{"title":"Troubleshooting Git errors","href":"/docs/guides/troubleshooting-git"}]},{"group":"Connect your own Git repository","root":{"title":"Connect your own Git repo","href":"/docs/guides/installing-git-provider-overview"},"pages":[{"title":"Connect your own Git repo","href":"/docs/guides/installing-git-provider-overview"},{"group":"GitHub","root":{"title":"What is the Maia GitHub app?","href":"/docs/guides/matillion-github-app-overview"},"pages":[{"title":"What is the Maia GitHub app?","href":"/docs/guides/matillion-github-app-overview"},{"title":"Installing the Maia app in GitHub","href":"/docs/guides/installing-matillion-app-github-marketplace"},{"title":"Prerequisites for connecting to a GitHub repository","href":"/docs/guides/connect-github-repository-prerequisites"},{"title":"Troubleshooting GitHub repository errors","href":"/docs/guides/troubleshooting-github-repository-connection"}]},{"group":"GitLab","root":{"title":"What is the Maia GitLab App?","href":"/docs/guides/matillion-gitlab-app-overview"},"pages":[{"title":"What is the Maia GitLab App?","href":"/docs/guides/matillion-gitlab-app-overview"},{"title":"Prerequisites for connecting to a GitLab repository","href":"/docs/guides/connect-gitlab-repository-prerequisites"},{"title":"Troubleshooting GitLab repository errors","href":"/docs/guides/troubleshooting-gitlab-repository-connections"}]},{"group":"Azure DevOps","root":{"title":"Maia Azure DevOps app overview","href":"/docs/guides/matillion-azure-devops-app-overview"},"pages":[{"title":"Maia Azure DevOps app overview","href":"/docs/guides/matillion-azure-devops-app-overview"},{"title":"Installing the Maia app in Azure","href":"/docs/guides/installing-matillion-app-azure-devops"},{"title":"Prerequisites for connecting to an Azure DevOps repository","href":"/docs/guides/connect-azure-devops-repository-prerequisites"},{"title":"Troubleshooting Azure DevOps repository errors","href":"/docs/guides/troubleshooting-azure-devops-repository-connection"}]},{"group":"Bitbucket","root":{"title":"Maia Bitbucket app overview","href":"/docs/guides/matillion-bitbucket-app-overview"},"pages":[{"title":"Maia Bitbucket app overview","href":"/docs/guides/matillion-bitbucket-app-overview"},{"title":"Prerequisites for connecting to a Bitbucket repository","href":"/docs/guides/connect-bitbucket-repository-prerequisites"},{"title":"Troubleshooting Bitbucket repository errors","href":"/docs/guides/troubleshooting-bitbucket-repository-connection"}]}]},{"title":"Reconnecting your Git user account","href":"/docs/guides/reconnecting-git-user-account"}]},{"group":"Custom connectors","root":{"title":"Custom connector overview","href":"/docs/guides/custom-connector-overview"},"pages":[{"title":"Custom connector overview","href":"/docs/guides/custom-connector-overview"},{"title":"Flex connector overview","href":"/docs/guides/flex-connector-introduction"},{"title":"Creating custom connectors","href":"/docs/guides/custom-connector-setup"},{"title":"Custom connector authentication","href":"/docs/guides/custom-connector-authentication"},{"title":"Script paging in custom connectors","href":"/docs/guides/custom-connector-script-paging"}]},{"group":"Runners","root":{"title":"Maia runner overview","href":"/docs/guides/runner-overview"},"pages":[{"title":"Maia runner overview","href":"/docs/guides/runner-overview"},{"title":"Maia runner updates","href":"/docs/guides/runner-updates"},{"title":"Scaling best practices","href":"/docs/guides/scaling-best-practices"},{"group":"Managing runners","root":{"title":"Manage runners","href":"/docs/guides/manage-runners"},"pages":[{"title":"Manage runners","href":"/docs/guides/manage-runners"},{"title":"Create a Maia runner in your infrastructure","href":"/docs/guides/create-a-runner"},{"title":"Pause a Maia runner","href":"/docs/guides/pause-runner"},{"title":"Restart a Maia runner","href":"/docs/guides/restart-runner"},{"title":"Refresh Maia runner credentials","description":null,"href":"/docs/guides/refresh-credentials"},{"title":"Restrict a Maia runner","href":"/docs/guides/restrict-a-runner"},{"group":"Logging","pages":[{"title":"Maia runner logs","description":null,"href":"/docs/guides/runner-logs"},{"title":"Enable Maia runner heap dumps","href":"/docs/guides/enable-runner-heap-dumps"},{"title":"Export Maia runner logs","href":"/docs/guides/export-logs-hybrid-saas"}]}]},{"group":"AWS runner","pages":[{"title":"Amazon EKS deployment guide for Maia runners","href":"/docs/guides/eks-deployment-guide"},{"group":"ECS Fargate","pages":[{"title":"Maia runner installation using a CloudFormation quick-create link","href":"/docs/guides/runner-installation-cloudformation-quick-create"},{"title":"AWS Fargate manual setup for Maia runners","href":"/docs/guides/aws-fargate-manual-runner-setup"}]},{"group":"AWS configuration","pages":[{"title":"AWS IAM roles","href":"/docs/guides/aws-iam-roles"},{"title":"AWS IAM permissions for runner deployment","href":"/docs/guides/aws-iam-permissions-for-runner"},{"title":"Add Maia runner credentials to AWS Secrets Manager","href":"/docs/guides/add-runner-credentials-to-aws-secrets-manager"}]}]},{"group":"Azure runner","pages":[{"title":"Azure AKS deployment guide for Maia runners","href":"/docs/guides/aks-deployment-guide"},{"group":"Container Apps","pages":[{"title":"Maia runner installation using an ARM template","href":"/docs/guides/azure-arm-runner-install"},{"title":"ARM template permissions","href":"/docs/guides/arm-template-permissions"},{"title":"Download and amend the Azure ARM template","href":"/docs/guides/amend-azure-arm-template"},{"title":"Configuring an Azure key vault for Maia runners","href":"/docs/guides/azure-arm-runner-key-vault"},{"title":"Azure managed identity","href":"/docs/guides/azure-managed-identity"},{"title":"Sizing Maia runners on Azure Container Apps","href":"/docs/guides/azure-arm-runner-sizing"}]},{"title":"Troubleshooting a Maia runner hosted on Azure","href":"/docs/guides/azure-runner-troubleshooting"}]},{"group":"Google Cloud runner","pages":[{"title":"Google Cloud GKE deployment for Maia runners","href":"/docs/guides/gke-deployment-guide"},{"title":"Google Cloud IAM permissions for runner deployment","href":"/docs/guides/gcp-iam-permissions-for-runner"}]},{"group":"Snowflake runner","pages":[{"title":"Installing a Maia runner for Snowflake","href":"/docs/guides/snowflake-runner-install"},{"title":"Using secrets in a Maia runner for Snowflake","href":"/docs/guides/snowflake-runner-secrets"},{"title":"Troubleshooting a Maia runner for Snowflake","href":"/docs/guides/snowflake-runner-troubleshooting"}]},{"title":"Kubernetes deployment guide for runners","href":"/docs/guides/kubernetes-deployment-guide"},{"title":"Connectivity via AWS PrivateLink","href":"/docs/guides/connecting-via-privatelink"},{"title":"Shared script runner","href":"/docs/guides/shared-script-runner"},{"group":"General configuration","pages":[{"title":"Optional Maia runner parameters","href":"/docs/guides/optional-runner-parameters"},{"title":"Customizing Maia runner networking and connectivity","href":"/docs/guides/customizing-runner-networking-and-connectivity"},{"title":"Installing Python libraries","href":"/docs/guides/installing-python-libraries"},{"title":"Uploading external drivers to a Maia runner","href":"/docs/guides/uploading-external-drivers"}]}]},{"group":"Context Engine","root":{"title":"Context Engine overview","href":"/docs/guides/context-engine-overview"},"pages":[{"title":"Context Engine overview","href":"/docs/guides/context-engine-overview"},{"title":"Creating knowledge graphs","href":"/docs/guides/creating-knowledge-graphs"},{"title":"Managing knowledge graphs","href":"/docs/guides/managing-knowledge-graphs"},{"title":"Visualizing knowledge graphs","href":"/docs/guides/visualizing-knowledge-graphs"}]},{"group":"Maia Team","root":{"title":"Maia Team overview","href":"/docs/guides/maia-team-overview"},"pages":[{"title":"Maia Team overview","href":"/docs/guides/maia-team-overview"},{"title":"Building pipelines","href":"/docs/guides/maia-pipelines"},{"title":"Chat features","href":"/docs/guides/maia-sessions-and-tools"},{"title":"Context files","href":"/docs/guides/maia-context-files"},{"title":"Create a custom connector with Maia Team","href":"/docs/guides/create-a-custom-connector-with-maia"},{"title":"Mission Control overview","href":"/docs/guides/mission-control"},{"title":"Mission Control integrations","href":"/docs/guides/mission-control-integrations"},{"title":"Tasks in Mission Control","href":"/docs/guides/mission-control-tasks"},{"title":"Pipeline notes","href":"/docs/guides/ai-note"},{"title":"Prompting best practices","href":"/docs/guides/maia-best-practices"},{"title":"Skills","href":"/docs/guides/maia-skills"},{"title":"AI FAQ","href":"/docs/guides/ai-faq"}]},{"group":"Observability","root":{"title":"Observability overview","href":"/docs/guides/observability-overview"},"pages":[{"title":"Observability overview","href":"/docs/guides/observability-overview"},{"title":"Audit service","href":"/docs/guides/audit-service"},{"title":"Lineage","href":"/docs/guides/data-lineage"},{"title":"Pipeline notifications","href":"/docs/guides/pipeline-notifications"},{"group":"Pipeline observability","pages":[{"title":"Pipeline run history","href":"/docs/guides/pipeline-run-history"},{"title":"Impact stream","href":"/docs/guides/impact-stream"},{"title":"Troubleshoot pipelines with Maia Team","href":"/docs/guides/troubleshoot-pipelines-with-maia-team"}]}]},{"group":"Connections and credentials","root":{"title":"Connections and credentials overview","href":"/docs/guides/connections-and-credentials-overview"},"pages":[{"title":"Connections and credentials overview","href":"/docs/guides/connections-and-credentials-overview"},{"title":"Amazon Redshift connection","href":"/docs/guides/amazon-redshift-connection"},{"title":"Amazon Redshift Serverless connection","href":"/docs/guides/amazon-redshift-serverless-connection"},{"title":"Databricks","href":"/docs/guides/databricks-cdw-guide"},{"title":"Databricks Jobs Compute configuration","href":"/docs/guides/databricks-jobs-compute"},{"title":"Connect your Databricks account to Maia via Partner Connect","href":"/docs/guides/databricks-partner-connect"},{"title":"Connectivity via AWS PrivateLink using Full SaaS","href":"/docs/guides/aws-privatelink"},{"title":"Troubleshooting cloud data warehouse errors","href":"/docs/guides/troubleshooting-connectivity"}]},{"group":"Streaming","root":{"title":"Streaming pipelines","href":"/docs/streaming/streaming-pipelines"},"pages":[{"title":"Streaming pipelines","href":"/docs/streaming/streaming-pipelines"},{"title":"Sync All Tables","href":"/docs/streaming/sync-all-tables"},{"title":"Failover recovery for streaming pipelines","href":"/docs/streaming/failover-recovery"},{"group":"Sources","pages":[{"title":"Modify access to source databases","href":"/docs/streaming/how-to-modify-access-for-each-source-system"},{"group":"Db2 for IBM i","pages":[{"title":"Configure your Db2 for IBM i database","href":"/docs/streaming/db2-for-ibm-i-configure-database"},{"title":"Db2 for IBM i streaming connector","href":"/docs/streaming/db2-for-ibm-i-streaming-source"}]},{"group":"Microsoft SQL Server","pages":[{"title":"Configure your Microsoft SQL Server database","href":"/docs/streaming/microsoft-sql-server-configure-database"},{"title":"Microsoft SQL Server streaming connector","href":"/docs/streaming/microsoft-sql-server-streaming-source"}]},{"group":"MySQL","pages":[{"title":"Configure the Streaming runner for MySQL","href":"/docs/streaming/mysql-configure-runner"},{"title":"Configure your MySQL database","href":"/docs/streaming/mysql-configure-database"},{"title":"MySQL streaming connector","href":"/docs/streaming/mysql-streaming-source"}]},{"group":"Oracle","pages":[{"title":"Configure your Oracle database","href":"/docs/streaming/oracle-configure-database"},{"title":"Oracle streaming connector","href":"/docs/streaming/oracle-streaming-source"}]},{"group":"PostgreSQL","pages":[{"title":"Configure your PostgreSQL database","href":"/docs/streaming/postgresql-configure-database"},{"title":"PostgreSQL streaming connector","href":"/docs/streaming/postgresql-streaming-source"}]}]},{"group":"Destinations","pages":[{"title":"Streaming to an Amazon S3 destination","href":"/docs/streaming/amazon-s3-streaming-destination"},{"title":"Streaming to an Azure Blob Storage destination","href":"/docs/streaming/azure-blob-storage-streaming-destination"},{"title":"Streaming to a Google Cloud Storage destination","href":"/docs/streaming/google-cloud-storage-streaming-destination"},{"title":"Streaming to a Snowflake destination","href":"/docs/streaming/snowflake-streaming-destination"}]},{"group":"Streaming runners","pages":[{"title":"Create a Streaming runner","href":"/docs/streaming/create-streaming-runner"},{"title":"Streaming runner versions","href":"/docs/streaming/runner-versions"},{"title":"Sizing Streaming runners","href":"/docs/streaming/sizing-streaming-runners"},{"title":"Streaming runner logs","href":"/docs/streaming/streaming-runner-logs"},{"title":"Enable Streaming runner heap dumps","href":"/docs/streaming/streaming-runner-heap-dumps"},{"group":"AWS","pages":[{"title":"AWS Fargate Streaming runner setup","href":"/docs/streaming/aws-streaming-runner-manual-setup"},{"title":"AWS IAM roles for Streaming runners","href":"/docs/streaming/streaming-runner-aws-iam-roles"},{"title":"Streaming runner installation using a CloudFormation quick-create link","href":"/docs/streaming/streaming-runner-installation-cloudformation-quick-create"}]},{"group":"Azure","pages":[{"title":"Streaming runner installation on Azure","href":"/docs/streaming/azure-streaming-runner-install"},{"title":"Configuring an Azure key vault for Streaming runners","href":"/docs/streaming/azure-arm-streaming-runner-key-vault"},{"title":"Download and amend the Azure Resource Manager template for a Streaming runner","href":"/docs/streaming/amend-azure-arm-streaming-template"},{"title":"Azure Resource Manager Streaming runner template permissions","href":"/docs/streaming/arm-streaming-template-permissions"},{"title":"Communicating with other Azure services","href":"/docs/streaming/authenticate-streaming-runner-with-azure-services"},{"title":"Azure Streaming runner troubleshooting","href":"/docs/streaming/azure-streaming-runner-troubleshooting"}]},{"group":"GCP","pages":[{"title":"Streaming runner installation on Google Cloud","href":"/docs/streaming/gcp-streaming-runner-install"}]}]}]},{"group":"Videos","pages":[{"title":"Feature videos","href":"/docs/videos/feature-videos"},{"title":"How-to video guides","href":"/docs/videos/how-to-videos"}]}]},{"tab":"API Reference","pages":[{"title":"API Reference","href":"/docs/api-reference/maia-api-overview"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/docs/changelog/2026-changelog"}]}]},"basePath":"","title":"Restrict a Maia runner - Maia Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}