This topic explains how to create a Maia runner in your own infrastructure. For a discussion of why you might want to deploy in your own infrastructure rather than use a Matillion Full SaaS solution, read Maia runner overview. We currently support Maia runners running in Snowflake, AWS, Azure, or Google Cloud environments.There are two different types of Maia runner:
This article covers Maia runners only. For Streaming runners, read Create a Streaming runner.The installation process is similar for both types of Maia runner, but you must select the correct Maia runner type for the type of pipeline you want to run. You can install both Maia runners in the same infrastructure if you intend to run both types of pipeline.Read Scaling best practices to understand how to size your Maia runner for the level of performance you need.
In the left navigation, click . Then, select Runners from the menu. You will see a list of all Maia runners currently created.
Click Add runner.
Click Maia.
Complete the following properties:
Runner name: A unique name for your new Maia runner. Maximum 30 characters. Accepts both uppercase and lowercase A-z, 0-9, whitespace (not the first character), hyphens and underscores.
Description: Optionally enter a brief description of the Maia runner.
Version track: Select the version track that this Maia runner will use: Current or Stable. Read Version tracks for details of this option.
Cloud provider: The cloud platform that the Maia runner will be deployed to. Currently, Snowflake, AWS, Azure, and Google Cloud are supported.
Deployment: The supported deployment method for the given cloud provider. Currently, Native App for Snowflake, Fargate (ECS) or EKS for AWS, Container App or AKS for Azure, and GKE for Google Cloud are supported.
Auto update: Select whether you want your Maia runner to automatically update or not. Read Auto update for details of this option.
Set up the Maia runner in your cloud infrastructure
When created with the above process, the Maia runner needs to be set up in your cloud infrastructure. There are several different ways of doing this, and you can use whichever method suits you:
To complete these processes, you will require certain details of the created Maia runner. To obtain these details, locate the Maia runner in the Runners list of Maia runners, and click the three dots … next to it, then click Runner details. The parameters and values in the sections Runner image URI, Runner environment variables, and Credentials are required when configuring your Maia runner in your cloud infrastructure.
There are a number of reasons why you may need to restart your Maia runner, such as receiving Maia runner updates.To restart a Maia runner, follow the steps in Restart a Maia runner. In some cases, you may need or choose to pause the Maia runner before restarting.
To delete a Maia runner from Maia, locate the Maia runner in the Runners list, then click the three dots … → Remove runner.Deleting the Maia runner from the Runners list doesn’t remove the underlying Snowflake, AWS, Azure, or Google Cloud resources. You should go into the relevant cloud console and clean up any resources that you no longer require.
Snowflake: Use Snowpark Container Services to manage and clean up any Snowflake resources associated with the Maia runner.
AWS: Use the AWS Console to identify and delete any resources associated with the Maia runner, such as EC2 instances and IAM roles.
Azure: Use the Azure Portal to locate and remove any related resources, such as virtual machines and resource groups.
Google Cloud: Use the Google Cloud Console to locate and remove any related resources, such as the GKE cluster, VPC, GCS bucket, Secret Manager secrets, and service accounts.
Deleting a Maia runner that is currently running may interrupt scheduled pipelines or pipelines that are currently running. Therefore, you should always stop the Maia runner service before deleting it.
Using the Maia runner to develop and run pipelines
To use a Maia runner for developing and then running pipelines, you need to select the Maia runner when you create an environment. See below for details of how to make Maia runners available to specific environments.You can change which Maia runner an environment uses at any time by editing the environment and selecting a different Maia runner. This is safe to do, as the change will only affect pipelines that are run after the change. So:
Your open Designer session won’t change.
Any pipelines that are currently running will continue to run using the old Maia runner.
Any existing schedules will continue to run using the old Maia runner. To use the new Maia runner, you would have to change the schedule.
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 project only uses specific ones.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.For details of how to restrict a Maia runner, read Restricting Maia runners.
{"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":"6af1fb5dca20d619cf50c261","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":[],"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/create-a-runner","slug":"/docs/guides/create-a-runner","pageMetadata":{"title":"Create a Maia runner in your infrastructure","description":null,"href":"/docs/guides/create-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 s_runner=`Streaming runner`;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`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedFrame,Warning,_MdxComponentBoundary}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!Warning)_missingMdxReference(`Warning`,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:[`This topic explains how to create a `,m_runner,` in your own infrastructure. For a discussion of why you might want to deploy in your own infrastructure rather than use a Matillion Full SaaS solution, read `,_jsxs(_components.a,{href:`/docs/guides/runner-overview`,children:[m_runner,` overview`]}),`. We currently support `,m_runner,`s running in Snowflake, AWS, Azure, or Google Cloud environments.`]}),`\n`,_jsxs(_components.p,{children:[`There are two different types of `,m_runner,`:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[m_runner,`:`]}),` Required to run `,_jsxs(_components.a,{href:`/docs/guides/pipelines`,children:[designer,` pipelines`]}),`.`]}),`\n`,_jsxs(_components.li,{children:[_jsxs(_components.strong,{children:[s_runner,`:`]}),` Required to run `,_jsx(_components.a,{href:`/docs/streaming/streaming-pipelines/#create-a-streaming-pipeline`,children:`Streaming pipelines`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`This article covers `,m_runner,`s `,_jsx(_components.em,{children:`only`}),`. For `,s_runner,`s, read `,_jsxs(_components.a,{href:`/docs/streaming/create-streaming-runner`,children:[`Create a `,s_runner]}),`.`]}),`\n`,_jsxs(_components.p,{children:[`The installation process is similar for both types of `,m_runner,`, but you must select the correct `,m_runner,` type for the type of pipeline you want to run. You can install `,_jsx(_components.em,{children:`both`}),` `,m_runner,`s in the same infrastructure if you intend to run both types of pipeline.`]}),`\n`,_jsxs(_components.p,{children:[`Read `,_jsx(_components.a,{href:`/docs/guides/scaling-best-practices`,children:`Scaling best practices`}),` to understand how to size your `,m_runner,` for the level of performance you need.`]}),`\n`,_jsx(Heading,{level:`2`,id:`prerequisites`,children:`Prerequisites`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A `,maia,` account. To register, read `,_jsx(_components.a,{href:`/docs/administration/registration`,children:`Registration`}),`. Once you have signed up, log in to the `,_jsx(_components.a,{href:`https://app.matillion.com/hub/`,children:maia}),`.`]}),`\n`,_jsxs(_components.li,{children:[`An account in Snowflake, AWS, Azure, or Google Cloud to host the `,m_runner,`.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`create-a-maia-runner`,children:`Create a Maia runner`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`In the left navigation, click `,_jsx(_MdxComponentBoundary,{name:`Runners`,children:_jsx(Runners,{})}),`. Then, select `,_jsx(_components.strong,{children:`Runners`}),` from the menu. You will see a list of all `,m_runner,`s currently created.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Add runner`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:maia}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Complete the following properties:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Runner name:`}),` A unique name for your new `,m_runner,`. Maximum 30 characters. Accepts both uppercase and lowercase A-z, 0-9, whitespace (not the first character), hyphens and underscores.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Description:`}),` Optionally enter a brief description of the `,m_runner,`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Version track:`}),` Select the version track that this `,m_runner,` will use: `,_jsx(_components.strong,{children:`Current`}),` or `,_jsx(_components.strong,{children:`Stable`}),`. Read `,_jsx(_components.a,{href:`/docs/guides/runner-updates#version-tracks`,children:`Version tracks`}),` for details of this option.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Cloud provider:`}),` The cloud platform that the `,m_runner,` will be deployed to. Currently, Snowflake, AWS, Azure, and Google Cloud are supported.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Deployment:`}),` The supported deployment method for the given cloud provider. Currently, Native App for Snowflake, Fargate (ECS) or EKS for AWS, Container App or AKS for Azure, and GKE for Google Cloud are supported.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Auto update:`}),` Select whether you want your `,m_runner,` to automatically update or not. Read `,_jsx(_components.a,{href:`/docs/guides/runner-updates#auto-update`,children:`Auto update`}),` for details of this option.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Create runner`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`set-up-the-maia-runner-in-your-cloud-infrastructure`,children:`Set up the Maia runner in your cloud infrastructure`}),`\n`,_jsxs(_components.p,{children:[`When created with the above process, the `,m_runner,` needs to be set up in your cloud infrastructure. There are several different ways of doing this, and you can use whichever method suits you:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`For Snowflake `,m_runner,`s:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsxs(_components.a,{href:`/docs/guides/snowflake-runner-install`,children:[`Installing a `,m_runner,` for Snowflake`]})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`For AWS `,m_runner,`s:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/aws-fargate-manual-runner-setup`,children:`AWS Fargate manual setup for Maia runners`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/runner-installation-cloudformation-quick-create`,children:`Maia runner installation using a CloudFormation quick-create link`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/eks-deployment-guide`,children:`Amazon EKS deployment guide for Maia runners`})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`For Azure `,m_runner,`s:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/azure-arm-runner-install`,children:`Maia runner installation using an ARM template`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/amend-azure-arm-template`,children:`Download and amend the ARM template`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/aks-deployment-guide`,children:`Azure AKS deployment guide for Maia runners`})}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`For Google Cloud `,m_runner,`s:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`/docs/guides/gke-deployment-guide`,children:`GKE deployment guide`})}),`\n`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`To complete these processes, you will require certain details of the created `,m_runner,`. To obtain these details, locate the `,m_runner,` in the `,_jsx(_components.strong,{children:`Runners`}),` list of `,m_runner,`s, and click the three dots `,_jsx(_components.strong,{children:`…`}),` next to it, then click `,_jsx(_components.strong,{children:`Runner details`}),`. The parameters and values in the sections `,_jsx(_components.strong,{children:`Runner image URI`}),`, `,_jsx(_components.strong,{children:`Runner environment variables`}),`, and `,_jsx(_components.strong,{children:`Credentials`}),` are required when configuring your `,m_runner,` in your cloud infrastructure.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`check-maia-runner-status`,children:`Check Maia runner status`}),`\n`,_jsxs(_components.p,{children:[`After deploying the `,m_runner,` in your cloud infrastructure, you should return to `,maia,` to verify that it’s correctly connected and running.`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click the menu button in the top left of any `,maia,` page, then click `,_jsx(_components.strong,{children:`Manage runners`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Locate the `,m_runner,` in the list and check the status:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Running:`}),` The `,m_runner,` is connected and ready for development and pipeline tasks.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Unknown:`}),` The `,m_runner,` is in an unknown state.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Pending:`}),` The `,m_runner,` has been created but has not yet connected to `,maia,`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Stopped:`}),` The `,m_runner,` has been stopped.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`When the `,m_runner,` status shows `,_jsx(_components.strong,{children:`Running`}),`, it’s ready to use.`]}),`\n`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`restarting-your-maia-runner`,children:`Restarting your Maia runner`}),`\n`,_jsxs(_components.p,{children:[`There are a number of reasons why you may need to restart your `,m_runner,`, such as receiving `,m_runner,` updates.`]}),`\n`,_jsxs(_components.p,{children:[`To restart a `,m_runner,`, follow the steps in `,_jsxs(_components.a,{href:`/docs/guides/restart-runner`,children:[`Restart a `,m_runner]}),`. In some cases, you may need or choose to `,_jsx(_components.a,{href:`/docs/guides/pause-runner`,children:`pause`}),` the `,m_runner,` before restarting.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`deleting-a-maia-runner`,children:`Deleting a Maia runner`}),`\n`,_jsxs(_components.p,{children:[`To delete a `,m_runner,` from `,maia,`, locate the `,m_runner,` in the `,_jsx(_components.strong,{children:`Runners`}),` list, then click the three dots `,_jsx(_components.strong,{children:`…`}),` → `,_jsx(_components.strong,{children:`Remove runner`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`Deleting the `,m_runner,` from the `,_jsx(_components.strong,{children:`Runners`}),` list doesn’t remove the underlying Snowflake, AWS, Azure, or Google Cloud resources. You should go into the relevant cloud console and clean up any resources that you no longer require.`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Snowflake:`}),` Use `,_jsx(_components.a,{href:`https://docs.snowflake.com/en/snowpark-container-services`,children:`Snowpark Container Services`}),` to manage and clean up any Snowflake resources associated with the `,m_runner,`.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`AWS:`}),` Use the `,_jsx(_components.a,{href:`https://aws.amazon.com/`,children:`AWS Console`}),` to identify and delete any resources associated with the `,m_runner,`, such as EC2 instances and IAM roles.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Azure:`}),` Use the `,_jsx(_components.a,{href:`https://azure.microsoft.com/`,children:`Azure Portal`}),` to locate and remove any related resources, such as virtual machines and resource groups.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Google Cloud:`}),` Use the `,_jsx(_components.a,{href:`https://console.cloud.google.com/`,children:`Google Cloud Console`}),` to locate and remove any related resources, such as the GKE cluster, VPC, GCS bucket, Secret Manager secrets, and service accounts.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsxs(_components.p,{children:[`Deleting a `,m_runner,` that is currently running may interrupt scheduled pipelines or pipelines that are currently running. Therefore, you should always stop the `,m_runner,` service before deleting it.`]})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`using-the-maia-runner-to-develop-and-run-pipelines`,children:`Using the Maia runner to develop and run pipelines`}),`\n`,_jsxs(_components.p,{children:[`To use a `,m_runner,` for developing and then running pipelines, you need to select the `,m_runner,` when you `,_jsx(_components.a,{href:`/docs/guides/environments`,children:`create an environment`}),`. See `,_jsx(_components.a,{href:`#restricting-a-maia-runner`,children:`below`}),` for details of how to make `,m_runner,`s available to specific environments.`]}),`\n`,_jsxs(_components.p,{children:[`You can change which `,m_runner,` an environment uses at any time by `,_jsx(_components.a,{href:`/docs/guides/environments#edit-an-environment`,children:`editing`}),` the environment and selecting a different `,m_runner,`. This is safe to do, as the change will only affect pipelines that are run after the change. So:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Your open `,designer,` session won’t change.`]}),`\n`,_jsxs(_components.li,{children:[`Any pipelines that are currently running will continue to run using the old `,m_runner,`.`]}),`\n`,_jsxs(_components.li,{children:[`Any existing `,_jsx(_components.a,{href:`/docs/guides/schedules`,children:`schedules`}),` will continue to run using the old `,m_runner,`. To use the new `,m_runner,`, you would have to change the schedule.`]}),`\n`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`restricting-a-maia-runner`,children:`Restricting a Maia runner`}),`\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 project only uses specific ones.`]}),`\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:[`For details of how to restrict a `,m_runner,`, read `,_jsxs(_components.a,{href:`/docs/guides/restrict-a-runner`,children:[`Restricting `,m_runner,`s`]}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`video`,children:`Video`}),`\n`,_jsx(OptimizedFrame,{width:`560`,height:`315`,src:`https://www.youtube.com/embed/6l1jvghPhvs?enablejsapi=1`,title:`YouTube video player`,frameBorder:`0`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen`,allowFullScreen:true})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{Runners,s_runner,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":"Create a Maia runner in your infrastructure","description":null,"href":"/docs/guides/create-a-runner"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[146,449,"null;const RunnerMetadata=()=>null;const"],[551,1738,""],[2323,2351,""],[2482,2497,"`Maia runner`,` in y"],[2719,2789,"`Maia runner`,` overview`]}),`. We currently support `,`Maia runner`,`s running "],[2920,2935,"`Maia runner`,`:`]})"],[3044,3059,"`Maia runner`,`:`]})"],[3141,3159,"`Designer`,` pipelin"],[3245,3255,"`Streaming runner`,`"],[3478,3493,"`Maia runner`,`s `,_"],[3540,3550,"`Streaming runner`,`"],[3650,3660,"`Streaming runner`]}"],[3761,3831,"`Maia runner`,`, but you must select the correct `,`Maia runner`,` type for the "],[3926,3941,"`Maia runner`,`s in "],[4191,4206,"`Maia runner`,` for "],[4396,4414,"`Maia`,` account. To"],[4630,4648,"`Maia`}),`.`]}),`\n`,"],[4748,4763,"`Maia runner`,`.`]})"],[5208,5223,"`Maia runner`,`s cur"],[5507,5525,"`Maia`}),`.`]}),`\n`]"],[5790,5805,"`Maia runner`,`. Max"],[6074,6089,"`Maia runner`,`.`]})"],[6218,6233,"`Maia runner`,` will"],[6603,6618,"`Maia runner`,` will"],[7118,7133,"`Maia runner`,` to a"],[7718,7733,"`Maia runner`,` need"],[7998,8013,"`Maia runner`,`s:`]}"],[8177,8192,"`Maia runner`,` for "],[8304,8319,"`Maia runner`,`s:`]}"],[8976,8991,"`Maia runner`,`s:`]}"],[9599,9614,"`Maia runner`,`s:`]}"],[9919,9989,"`Maia runner`,`. To obtain these details, locate the `,`Maia runner`,` in the `,"],[10047,10062,"`Maia runner`,`s, an"],[10479,10494,"`Maia runner`,` in y"],[10706,10721,"`Maia runner`,` in y"],[10770,10788,"`Maia`,` to verify t"],[10989,11007,"`Maia`,` page, then "],[11167,11182,"`Maia runner`,` in t"],[11343,11358,"`Maia runner`,` is c"],[11508,11523,"`Maia runner`,` is i"],[11638,11653,"`Maia runner`,` has "],[11697,11715,"`Maia`,`.`]}),`\n`,_j"],[11800,11815,"`Maia runner`,` has "],[11930,11945,"`Maia runner`,` stat"],[12273,12323,"`Maia runner`,`, such as receiving `,`Maia runner`,` updates"],[12380,12395,"`Maia runner`,`, fol"],[12493,12508,"`Maia runner`]}),`. "],[12631,12646,"`Maia runner`,` befo"],[12835,12883,"`Maia runner`,` from `,`Maia`,`, locate the `,`Maia runner`,"],[13132,13147,"`Maia runner`,` from"],[13718,13733,"`Maia runner`,`.`]})"],[13962,13977,"`Maia runner`,`, suc"],[14698,14713,"`Maia runner`,` that"],[14850,14865,"`Maia runner`,` serv"],[15118,15133,"`Maia runner`,` for "],[15197,15212,"`Maia runner`,` when"],[15420,15435,"`Maia runner`,`s ava"],[15531,15546,"`Maia runner`,` an e"],[15719,15734,"`Maia runner`,`. Thi"],[15916,15934,"`Designer`,` session"],[16068,16083,"`Maia runner`,`.`]})"],[16248,16298,"`Maia runner`,`. To use the new `,`Maia runner`,`, you would"],[16526,16541,"`Maia runner`,`s are"],[16628,16643,"`Maia runner`,`s and"],[16757,16807,"`Maia runner`,` (the default state when a `,`Maia runner`,` "],[16884,16899,"`Maia runner`,` can "],[16978,17048,"`Maia runner`,` but don’t specify any projects, the `,`Maia runner`,` won’t be a"],[17149,17164,"`Maia runner`,`, rea"],[17252,17267,"`Maia runner`,`s`]})"],[17893,17953,"RunnerMetadata,s_runner,m_runner,designer,maia,default:MDXCo"]]},"mdxExtracts":{"tableOfContents":[{"title":"Prerequisites","slug":"prerequisites","depth":2,"children":[]},{"title":"Create a Maia runner","slug":"create-a-maia-runner","depth":2,"children":[]},{"title":"Set up the Maia runner in your cloud infrastructure","slug":"set-up-the-maia-runner-in-your-cloud-infrastructure","depth":2,"children":[]},{"title":"Check Maia runner status","slug":"check-maia-runner-status","depth":2,"children":[]},{"title":"Restarting your Maia runner","slug":"restarting-your-maia-runner","depth":2,"children":[]},{"title":"Deleting a Maia runner","slug":"deleting-a-maia-runner","depth":2,"children":[]},{"title":"Using the Maia runner to develop and run pipelines","slug":"using-the-maia-runner-to-develop-and-run-pipelines","depth":2,"children":[]},{"title":"Restricting a Maia runner","slug":"restricting-a-maia-runner","depth":2,"children":[]},{"title":"Video","slug":"video","depth":2,"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":"Create a Maia runner in your infrastructure - Maia Documentation","relatedPagesConfig":{"enabled":true,"limit":5,"mode":"manual"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-09T16:52:23.596Z","originalFileLocation":"docs/guides/create-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=\"Create a Maia runner in your infrastructure - 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/create-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=Create+a+Maia+runner+in+your+infrastructure\u0026amp;theme=ce57a3e3dfd574362d42229a\u0026amp;signature=df6f78e75a4e819a69343cc7b39bd1db9a005f345928c46adc2b2dbaab0f3e19\">\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 a Maia runner in your infrastructure - Maia Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://matillion.mintlify.site/_mintlify/api/og/v2?division=Managing+runners\u0026amp;title=Create+a+Maia+runner+in+your+infrastructure\u0026amp;theme=ce57a3e3dfd574362d42229a\u0026amp;signature=df6f78e75a4e819a69343cc7b39bd1db9a005f345928c46adc2b2dbaab0f3e19\">\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/create-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/create-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/create-a-runner#webpage\",\"url\":\"https://docs.maia.ai/docs/guides/create-a-runner\",\"name\":\"Create a Maia runner in your infrastructure\",\"dateModified\":\"2026-11-09T16:52:23.596Z\",\"isPartOf\":{\"@id\":\"https://docs.maia.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.maia.ai/docs/guides/create-a-runner#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.maia.ai/docs/guides/create-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\":\"Create a Maia runner in your infrastructure\",\"item\":\"https://docs.maia.ai/docs/guides/create-a-runner\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.maia.ai/docs/guides/create-a-runner#article\",\"headline\":\"Create a Maia runner in your infrastructure\",\"name\":\"Create a Maia runner in your infrastructure\",\"url\":\"https://docs.maia.ai/docs/guides/create-a-runner\",\"mainEntityOfPage\":{\"@id\":\"https://docs.maia.ai/docs/guides/create-a-runner#webpage\"},\"dateModified\":\"2026-11-09T16:52:23.596Z\",\"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","description":null,"href":"/docs/guides/manage-runners"},{"title":"Create a Maia runner in your infrastructure","href":"/docs/guides/create-a-runner"},{"title":"Pause a Maia runner","description":null,"href":"/docs/guides/pause-runner"},{"title":"Restart a Maia runner","href":"/docs/guides/restart-runner"},{"title":"Refresh Maia runner credentials","href":"/docs/guides/refresh-credentials"},{"title":"Restrict a Maia runner","href":"/docs/guides/restrict-a-runner"},{"group":"Logging","pages":[{"title":"Maia runner logs","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":"Create a Maia runner in your infrastructure - Maia Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":[],"chunks":[]}