Workflows allow you to run sequential actions and increase efficiency across development workflows. With Workflows as code, you can treat Workflows like other production asset; this feature allows you to manage Workflows through GitOps. Each Workflow has its own YAML file.When GitOps is enabled, changes made to Workflows will appear in GitOps logs.
Managing Workflows in both GitOps and the Cortex UI
When you enable GitOps editing for Workflows, it only affects Workflows that are backed by a YAML file. You can still create and delete Workflows via the Cortex UI, and you can still edit a Workflow via the UI if it’s not managed via GitOps.
Users with the Edit Workflows permission can configure GitOps editing in Cortex.
Enabling GitOps editing for Workflows only affects Workflows backed by a YAML file. You can still create and delete Workflows via the Cortex UI.
From the main sidebar, click your avatar in the bottom-left corner.
Click Settings.
From the Settings menu, locate the Workspace section, then click GitOps.
Select the Workflows tab.
Toggle on Enable GitOps for Workflows editing.
Optionally, under Workflow GitOps repository allowlist, specify which repositories to import Workflows from. See configuring an allowlist for more information.
Select the the Entities tab.
Under Processing, toggle on Cortex YAML processing.
Workflow YAML files must be stored in their own repository, separate from catalog entities, under .cortex/workflows at the repository root. You can organize the files into subdirectories, which Cortex searches recursively.The Workflow YAML uses the same data structure as Cortex’s Workflow API. For the fields each block takes, see the Workflow block configuration reference. For complete definitions you can start from, see Example Workflow definitions.You can create a Workflow configuration from scratch, or you can start in the Cortex UI and export the Workflow to a YAML file.GitOps editing applies only to Workflows that are backed by a YAML file, so you can continue to create, edit, and delete other Workflows in the Cortex UI. For more information, refer to Using both the UI and GitOps.To export a Workflow to a YAML file in Cortex:
From the main sidebar, select Workflows.
Do one of the following:
Select the All tab to search and filter across all of your organization’s Workflows.
Select the Mine tab to search and filter only the Workflows you own.
Note that Cortex saves your selection and restores it the next time you open this page.
Locate the Workflow, then click the overflow menu icon next to it.
Select Edit Workflow.
At the top of the Workflow, click the Overflow menu.
Select Export Workflow YAML.
The YAML is downloaded and saved to your computer.
Add the YAML file to your Git repository within .cortex/workflows.
A nested form input is a NESTED_FORM_FIELD on a USER_INPUT action under schema.inputs. When the data type is a single value, the item is described by a nested element object: set its type (for example, NUMBER_FIELD) and, for numbers, a format of INTEGER or DECIMAL, along with optional per-item min, max, placeholder, and defaultValue. The field’s top-level itemType summarizes the item type. The outer min and max set the number of items the runner can enter ( min defaults to 1 and also serves as the default count) while element.min and element.max bound each individual value.Other item types use the same structure with a different element.type and itemType.Example YAML (single value, number / integer)
name: Provision replicastag: provision-replicasdescription: nullisDraft: truefilter: type: GLOBALisRunnableViaApi: falseactions:- name: Get deployments slug: get-deployments schema: inputs: - name: Replica counts description: null key: replica-counts required: false disabled: false element: # describes each item (present for "Single value") name: Replica counts description: null key: replica-counts required: false disabled: false defaultValue: null placeholder: null format: INTEGER # INTEGER or DECIMAL (NUMBER_FIELD only) min: null # per-item minimum value max: null # per-item maximum value type: NUMBER_FIELD # item value type min: 1 # min number of items (element count); also the default count max: null # max number of items (element count) itemType: INTEGER # summary of the item type type: NESTED_FORM_FIELD inputOverrides: [] jsValidatorScript: "" type: USER_INPUT outgoingActions: [] isRootAction: truerunRestrictionPolicies: []iconTag: nullvariables: []
A note about the example Workflow YAML
itemType sets the item type. It defaults to OBJECT; other values (for example STRING or INTEGER) make each item a single value.
With itemType: OBJECT, the nested form is a sub-form. Define one or more sub-inputs per row.
With a single-value itemType, the item is described by the nested element object—its type and type-specific options such as format for numbers or validationRegex for text. There is no separate inputs list on the field.
min and max are optional element-count limits and apply to every itemType. min defaults to 1 and also acts as the default number of rows.
name, description, key, and required apply to the field for every itemType. inputOverrides and jsValidatorScript are set at the schema level, not on the field.
Item type reference
Value type
element.type
itemType
Text
INPUT_FIELD
STRING
Paragraph
TEXTAREA_FIELD
STRING
Number (Integer)
NUMBER_FIELD + format: INTEGER
INTEGER
Number (Decimal)
NUMBER_FIELD + format: DECIMAL
DECIMAL
Toggle
TOGGLE_FIELD
BOOLEAN
Date
DATE_FIELD
STRING
element also carries type-specific keys, i.e. NUMBER_FIELD adds format (INTEGER/DECIMAL) plus min/max; text types add validationRegex. For the default Object data type, the field uses a list of sub-field definitions instead of a single element.
A Run Workflow block uses type: RUN_WORKFLOW under schema. inputs maps each of the child Workflow’s variable slugs to a value or a template, and waitForCompletion makes the block wait for the child run to finish.
Users with the Edit Workflows permission can duplicate and edit Workflows in Cortex.GitOps-managed Workflows are read-only in the Cortex UI. To modify one, create a duplicate, edit the copy, and use it as your primary Workflow going forward.The UI displays a link to the Workflow’s YAML file in your repository:
From the main sidebar, select Workflows.
Do one of the following:
Select the All tab to search and filter across all of your organization’s Workflows.
Select the Mine tab to search and filter only the Workflows you own.
Note that Cortex saves your selection and restores it the next time you open this page.
Locate the Workflow, then click the overflow menu icon next to it.
Select Duplicate Workflow.
Click Duplicate workflow.The Workflow is duplicated and a copy is added to the main Workflows page.
To edit the new Workflow, do one of the following:
Click Edit Workflow in the toast notification that appears in the bottom-right corner.
Locate the Workflow, click the Overflow menu next to it, then select Edit Workflow.
Make any necessary changes.
Save the Workflow.
A Git icon next to a Workflow’s name indicates that it’s managed via GitOps:
Last modified on November 3, 2026
{"docsConfig":{"theme":"aspen","$schema":"https://mintlify.com/docs.json","name":"Cortex","colors":{"primary":"#653EE8","light":"#9378EF","dark":"#5132BA"},"logo":{"light":"https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/logo/cortex-light.svg?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=3d32dd91336a0de9463a57e04f9b8bb3","dark":"https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/logo/cortex-dark.svg?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=e664b364295c3625385d56e02110b4a7"},"favicon":{"light":"https://mintcdn.com/cortex-290c0c42/09VjkT_e7zMKfZOT/images/favicon.png?fit=max\u0026auto=format\u0026n=09VjkT_e7zMKfZOT\u0026q=85\u0026s=1689c84dea2d7ff7c17603f1d27163ae","dark":"https://mintcdn.com/cortex-290c0c42/09VjkT_e7zMKfZOT/images/favicon.png?fit=max\u0026auto=format\u0026n=09VjkT_e7zMKfZOT\u0026q=85\u0026s=1689c84dea2d7ff7c17603f1d27163ae"},"api":{"playground":{"display":"interactive"},"examples":{"prefill":true}},"appearance":{"default":"system"},"background":{"decoration":"gradient"},"navbar":{"links":[{"icon":"/images/us-flag.png","href":"https://app.getcortexapp.com/","label":"US"},{"icon":"/images/eu-flag.png","href":"https://app.eu.cortex.io/","label":"EU"}],"primary":{"type":"button","label":"Get a Demo","href":"https://www.cortex.io/demo"}},"footer":{"socials":{"github":"https://github.com/cortexapps","linkedin":"https://www.linkedin.com/company/cortexapp","youtube":"https://www.youtube.com/@cortex611","x":"https://twitter.com/GetCortexApp"},"links":[{"header":"Cortex","items":[{"label":"Cortex website","href":"https://cortex.io"},{"label":"Product log in (US)","href":"https://app.getcortexapp.com/login"},{"label":"Product log in (EU)","href":"https://app.eu.cortex.io/login"},{"label":"Privacy Policy","href":"https://www.cortex.io/legal/privacy-policy"},{"label":"Security Policy","href":"https://www.cortex.io/legal/security-policy"},{"label":"Terms of Service","href":"https://www.cortex.io/legal/terms-of-service"},{"label":"Status Page","href":"https://status.cortex.io/"}]},{"header":"Resources","items":[{"label":"Cortex Academy","href":"https://academy.cortex.io/"},{"label":"Blog","href":"https://www.cortex.io/blog"},{"label":"Engineering Blog","href":"https://builders.cortex.io/"},{"label":"Braintrust","href":"https://www.braintrust.cortex.io/"},{"label":"Contact Support","href":"https://support.cortex.io/"}]}]},"fonts":{"heading":{"family":"Inter"},"body":{"family":"Inter"}},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","download-pdf"],"display":"header"},"interaction":{"drilldown":true},"metadata":{"timestamp":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cortex-290c0c42","hasAudioNarration":false,"actualSubdomain":"cortex-290c0c42","customDomains":["docs.cortex.io"],"gitSource":{"type":"github","owner":"cortexapps","repo":"brainpower","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea1d60ceeb4d4d9de73188","collectionId":"516e92e7-638c-420c-ade3-70280e08b22e","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea1d60ceeb4d4d9de73188"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea1d60ceeb4d4d9de73188","clientVersion":"0.0.4067","searchFilterCounts":[{"language":"default","tag":"API Reference","count":567},{"language":"default","tag":"REST API operations","count":566},{"language":"default","tag":"Integrations","count":424},{"language":"default","tag":"Product Docs","count":178},{"language":"default","tag":"Connect data","count":96},{"language":"default","tag":"Cookbooks","count":39},{"language":"default","tag":"Workflows","count":39},{"language":"default","tag":"Product areas","count":38},{"language":"default","tag":"Scorecards","count":27},{"language":"default","tag":"Entities overview","count":27}],"searchSettings":{"showContentSnippets":true}},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","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":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":":where(img[src^=\"/images/\"]){display:block;margin-left:auto;margin-right:auto;max-width:100%;height:auto}#navbar li.navbar-link>a{background-color:rgb(3 7 18 / 0.06)}#navbar li.navbar-link>a:hover{background-color:rgb(3 7 18 / 0.12)}html.dark #navbar li.navbar-link>a{background-color:rgb(255 255 255 / 0.07)}html.dark #navbar li.navbar-link>a:hover{background-color:rgb(255 255 255 / 0.14)}#content-area .mdx-content{--tw-prose-links: #7458DB;--tw-prose-invert-links: #C0AFFF}html.dark #content-area .mdx-content :where(a):not(:where([class~=\"not-prose\"],[class~=\"not-prose\"] *)){color:#C0AFFF}.product-tab{background-color:#F3F4F6!important;color:#000!important}.product-tab[data-active=\"true\"]{background-color:#E6E7E9!important}html.dark .product-tab{background-color:rgb(255 255 255 / 0.1)!important;color:#fff!important}html.dark .product-tab[data-active=\"true\"]{background-color:#653EE8!important}.product-item[data-active=\"true\"]{background-color:#E6E7E9}html.dark .product-item[data-active=\"true\"]{background-color:rgb(255 255 255 / 0.05)}.product-item-arrow{opacity:0}.product-item-arrow svg{width:14px!important;height:14px!important;max-width:14px;max-height:14px;flex-shrink:0}.product-item-arrow[data-active=\"true\"]{opacity:1}#kapa-search-ask-row{display:flex;align-items:center;gap:0.5rem;margin:0 0.375rem 0.375rem;padding:0.625rem 0.75rem;border-top:1px solid rgb(229 231 235);background:transparent;font-size:0.875rem;font-weight:500;color:rgb(3 7 18);text-align:left;cursor:pointer}#kapa-search-ask-row[hidden]{display:none}#kapa-search-ask-row:hover{background:rgb(0 0 0 / 0.03)}#kapa-search-ask-row svg{width:1rem;height:1rem;flex-shrink:0;color:rgb(var(--primary))}#kapa-search-ask-row .kapa-search-ask-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#kapa-search-ask-row kbd{padding:0 0.3rem;border:1px solid rgb(229 231 235);border-radius:0.25rem;font-family:inherit;font-size:0.75rem;color:rgb(107 114 128)}.dark #kapa-search-ask-row{border-top-color:rgb(255 255 255 / 0.1);color:#fff}.dark #kapa-search-ask-row:hover{background:rgb(255 255 255 / 0.05)}.dark #kapa-search-ask-row svg{color:rgb(var(--primary-light))}.dark #kapa-search-ask-row kbd{border-color:rgb(255 255 255 / 0.1);color:rgb(156 163 175)}#assistant-entry,#assistant-entry-mobile{display:none!important}#kapa-ask-button{display:none;flex:none;align-items:center;gap:0.375rem;height:2.25rem;margin-left:0.5rem;padding:0 0.875rem 0 0.75rem;border-radius:9999px;background:rgb(3 7 18 / 0.03);font-size:0.875rem;font-weight:500;color:rgb(55 65 81);cursor:pointer}@media (min-width: 1024px){#kapa-ask-button{display:flex}}#kapa-ask-button:hover{background:rgb(3 7 18 / 0.1)}#kapa-ask-button svg{width:1rem;height:1rem;color:rgb(var(--primary))}html.dark #kapa-ask-button{background:rgb(255 255 255 / 0.03);color:rgb(209 213 219)}html.dark #kapa-ask-button:hover{background:rgb(255 255 255 / 0.1)}html.dark #kapa-ask-button svg{color:rgb(var(--primary-light))}"},{"filePath":"status-tags.css","content":".nav-tag-pill[data-status]{background-color:var(--status-tag-color)!important;border-color:var(--status-tag-color)!important}.nav-tag-pill[data-status],.nav-tag-pill[data-status] .nav-tag-pill-text{color:#FFFFFF!important}.nav-tag-pill[data-status=\"research-preview\"]{--status-tag-color: #7B2D6B}.nav-tag-pill[data-status=\"public-beta\"]{--status-tag-color: #1D4ED8}.nav-tag-pill[data-status=\"private-beta\"]{--status-tag-color: #8C1D3A}"}],"page":{"pagePath":"streamline/workflows/workflows-as-code","slug":"/streamline/workflows/workflows-as-code","pageMetadata":{"title":"Workflows as code","description":null,"href":"/streamline/workflows/workflows-as-code"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Heading,OptimizedImage,Table,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`Workflows allow you to run sequential actions and increase efficiency across development workflows. With Workflows as code, you can treat Workflows like other production asset; this feature allows you to manage Workflows through `,_jsx(_components.a,{href:`/configure/gitops`,children:`GitOps`}),`. Each Workflow has its own YAML file.`]}),`\n`,_jsxs(_components.p,{children:[`When GitOps is enabled, changes made to Workflows will appear in `,_jsx(_components.a,{href:`/configure/gitops/gitops-logs`,children:`GitOps logs`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`managing-workflows-in-both-gitops-and-the-cortex-ui`,children:`Managing Workflows in both GitOps and the Cortex UI`}),`\n`,_jsx(_components.p,{children:`When you enable GitOps editing for Workflows, it only affects Workflows that are backed by a YAML file. You can still create and delete Workflows via the Cortex UI, and you can still edit a Workflow via the UI if it’s not managed via GitOps.`}),`\n`,_jsx(Heading,{level:`3`,id:`step-1-configuring-gitops-editing-for-workflows`,children:`Step 1: Configuring GitOps editing for Workflows`}),`\n`,_jsxs(_components.p,{children:[`Users with the `,_jsx(_components.code,{children:`Edit Workflows`}),` permission can configure GitOps editing in Cortex.`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Enabling GitOps editing for Workflows only affects Workflows backed by a YAML file. You can still create and delete Workflows via the Cortex UI.`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsx(_components.li,{children:`From the main sidebar, click your avatar in the bottom-left corner.`}),`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Settings`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`From the `,_jsx(_components.strong,{children:`Settings`}),` menu, locate the `,_jsx(_components.strong,{children:`Workspace`}),` section, then click `,_jsx(_components.strong,{children:`GitOps`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Workflows`}),` tab.`]}),`\n`,_jsxs(_components.li,{children:[`Toggle on `,_jsx(_components.strong,{children:`Enable GitOps for Workflows editing`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Optionally, under `,_jsx(_components.strong,{children:`Workflow GitOps repository allowlist`}),`, specify which repositories to import Workflows from. See `,_jsx(_components.a,{href:`/configure/settings/gitops-settings#gitops-workflow-settings`,children:`configuring an allowlist`}),` for more information.`]}),`\n`,_jsxs(_components.li,{children:[`Select the the `,_jsx(_components.strong,{children:`Entities`}),` tab.`]}),`\n`,_jsxs(_components.li,{children:[`Under `,_jsx(_components.strong,{children:`Processing`}),`, toggle on `,_jsx(_components.strong,{children:`Cortex YAML processing`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`step-2-creating-a-yaml-file-for-the-workflow`,children:`Step 2: Creating a YAML file for the Workflow`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Prerequisites`})}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`You must have the `,_jsx(_components.code,{children:`Edit Workflows`}),` permission.`]}),`\n`,_jsxs(_components.li,{children:[`An existing Workflow. If you haven’t yet created a Workflow, refer to `,_jsx(_components.a,{href:`/streamline/workflows/create`,children:`Creating a Workflow`}),` and `,_jsx(_components.a,{href:`/streamline/workflows/configuring-workflow-settings`,children:`Configuring Workflow settings`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Workflow YAML files must be stored in their own repository, separate from catalog entities, under `,_jsx(_components.code,{children:`.cortex/workflows`}),` at the repository root. You can organize the files into subdirectories, which Cortex searches recursively.`]}),`\n`,_jsxs(_components.p,{children:[`The Workflow YAML uses the same data structure as `,_jsx(_components.a,{href:`/api/rest/workflows`,children:`Cortex’s Workflow API`}),`. For the fields each block takes, see the `,_jsx(_components.a,{href:`/streamline/workflows/blocks/block-configuration-reference`,children:`Workflow block configuration reference`}),`. For complete definitions you can start from, see `,_jsx(_components.a,{href:`/streamline/workflows/example-workflow-definitions`,children:`Example Workflow definitions`}),`.`]}),`\n`,_jsx(_components.p,{children:`You can create a Workflow configuration from scratch, or you can start in the Cortex UI and export the Workflow to a YAML file.`}),`\n`,_jsxs(_components.p,{children:[`GitOps editing applies only to Workflows that are backed by a YAML file, so you can continue to create, edit, and delete other Workflows in the Cortex UI. For more information, refer to `,_jsx(_components.a,{href:`/configure/gitops#using-both-ui-and-gitops`,children:`Using both the UI and GitOps`}),`.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`To export a Workflow to a YAML file in Cortex`}),`:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`From the main sidebar, select `,_jsx(_components.strong,{children:`Workflows`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Do one of the following:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`All`}),` tab to search and filter across all of your organization’s Workflows.`]}),`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Mine`}),` tab to search and filter only the Workflows you own.`]}),`\n`,_jsx(_components.li,{children:`Note that Cortex saves your selection and restores it the next time you open this page.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Locate the Workflow, then click the `,_jsx(_components.strong,{children:`overflow menu icon`}),` next to it.`,_jsx(`br`,{})]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=86698867dbd3391ff36ee5119662b38c`,alt:`The 'Overflow menu' icon next to a Workflow.`,width:`375`,\"data-og-width\":`3404`,\"data-og-height\":`996`,\"data-path\":`images/workflows-overflow.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?w=280\u0026fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=9c8202eba69f60339b52582c1a423217 280w, https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?w=560\u0026fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=ef3da84c01080fa5c1eae6a6dd63b8e5 560w, https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?w=840\u0026fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=24e68f5cb7bfab88b2644e3bf67c9f89 840w, https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?w=1100\u0026fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=27ac89ad0d240d483ae461bf08f2d4f4 1100w, https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?w=1650\u0026fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=8404519f7d6a473f21ad981c0330d599 1650w, https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/images/workflows-overflow.png?w=2500\u0026fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=c460bacb52325a56173849252760adaa 2500w`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Edit Workflow`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`At the top of the Workflow, click the `,_jsx(_components.strong,{children:`Overflow menu.`})]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Export Workflow YAML`}),`.`,_jsx(`br`,{})]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=12ae55c63f3b8e98116b6c416fa9250c`,alt:`The 'Export Workflow YAML' option.`,width:`375`,\"data-og-width\":`3418`,\"data-og-height\":`892`,\"data-path\":`images/export-workflow-yaml.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?w=280\u0026fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=1babe4b0d7cadd0c7c697aa67f19fdbb 280w, https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?w=560\u0026fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=31d7cc15321da0b95352a856c437ef66 560w, https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?w=840\u0026fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=6a3eadfad0f77df64f5aad6842e7f8a0 840w, https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?w=1100\u0026fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=d5733b243db4d94225dd4483f334805b 1100w, https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?w=1650\u0026fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=a3b9091274dfe6671b9733b62f58be9c 1650w, https://mintcdn.com/cortex-290c0c42/kB9I5hpwwMkz0yx1/images/export-workflow-yaml.png?w=2500\u0026fit=max\u0026auto=format\u0026n=kB9I5hpwwMkz0yx1\u0026q=85\u0026s=15f80e4d7f6e5ea5515da062e0cc7def 2500w`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`The YAML is downloaded and saved to your computer.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Add the YAML file to your Git repository within `,_jsx(_components.code,{children:`.cortex/workflows`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsx(Heading,{level:`4`,id:`example-workflow-yaml`,children:`Example Workflow YAML`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`nested form`}),` input is a `,_jsx(_components.code,{children:`NESTED_FORM_FIELD`}),` on a `,_jsx(_components.code,{children:`USER_INPUT`}),` action under `,_jsx(_components.code,{children:`schema.inputs`}),`. When the data type is a single value, the item is described by a nested `,_jsx(_components.code,{children:`element`}),` object: set its `,_jsx(_components.code,{children:`type`}),` (for example, `,_jsx(_components.code,{children:`NUMBER_FIELD`}),`) and, for numbers, a `,_jsx(_components.code,{children:`format`}),` of `,_jsx(_components.code,{children:`INTEGER`}),` or `,_jsx(_components.code,{children:`DECIMAL`}),`, along with optional per-item `,_jsx(_components.code,{children:`min`}),`, `,_jsx(_components.code,{children:`max`}),`, `,_jsx(_components.code,{children:`placeholder`}),`, and `,_jsx(_components.code,{children:`defaultValue`}),`. The field’s top-level `,_jsx(_components.code,{children:`itemType`}),` summarizes the item type. The outer `,_jsx(_components.code,{children:`min`}),` and `,_jsx(_components.code,{children:`max`}),` set the number of items the runner can enter ( `,_jsx(_components.code,{children:`min`}),` defaults to 1 and also serves as the default count) while `,_jsx(_components.code,{children:`element.min`}),` and `,_jsx(_components.code,{children:`element.max`}),` bound each individual value.`]}),`\n`,_jsxs(_components.p,{children:[`Other item types use the same structure with a different `,_jsx(_components.code,{children:`element.type`}),` and `,_jsx(_components.code,{children:`itemType`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Example YAML (single value, number / integer)`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`41`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`41`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Provision replicas`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`tag`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`provision-replicas`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`description`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`isDraft`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`filter`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`GLOBAL`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`isRunnableViaApi`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`actions`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Get deployments`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` slug`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`get-deployments`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` schema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` inputs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` - `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Replica counts`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` description`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`replica-counts`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` required`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` disabled`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` element`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# describes each item (present for \"Single value\")`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Replica counts`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` description`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` key`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`replica-counts`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` required`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` disabled`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` defaultValue`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` placeholder`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` format`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`INTEGER`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # INTEGER or DECIMAL (NUMBER_FIELD only)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` min`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # per-item minimum value`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` max`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # per-item maximum value`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`NUMBER_FIELD`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # item value type`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` min`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`1`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # min number of items (element count); also the default count`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` max`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # max number of items (element count)`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` itemType`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`INTEGER`}),_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:` # summary of the item type`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`NESTED_FORM_FIELD`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` inputOverrides`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` jsValidatorScript`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`USER_INPUT`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` outgoingActions`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` isRootAction`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`runRestrictionPolicies`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`iconTag`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`variables`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: []`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`A note about the example Workflow YAML`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`itemType`}),` sets the item type. It defaults to `,_jsx(_components.code,{children:`OBJECT`}),`; other values (for example `,_jsx(_components.code,{children:`STRING`}),` or `,_jsx(_components.code,{children:`INTEGER`}),`) make each item a single value.`]}),`\n`,_jsxs(_components.li,{children:[`With `,_jsx(_components.code,{children:`itemType: OBJECT`}),`, the nested form is a sub-form. Define one or more sub-inputs per row.`]}),`\n`,_jsxs(_components.li,{children:[`With a single-value `,_jsx(_components.code,{children:`itemType`}),`, the item is described by the nested `,_jsx(_components.code,{children:`element`}),` object—its `,_jsx(_components.code,{children:`type`}),` and type-specific options such as `,_jsx(_components.code,{children:`format`}),` for numbers or `,_jsx(_components.code,{children:`validationRegex`}),` for text. There is no separate `,_jsx(_components.code,{children:`inputs`}),` list on the field.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`min`}),` and `,_jsx(_components.code,{children:`max`}),` are optional element-count limits and apply to every `,_jsx(_components.code,{children:`itemType`}),`. `,_jsx(_components.code,{children:`min`}),` defaults to 1 and also acts as the default number of rows.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`name`}),`, `,_jsx(_components.code,{children:`description`}),`, `,_jsx(_components.code,{children:`key`}),`, and `,_jsx(_components.code,{children:`required`}),` apply to the field for every `,_jsx(_components.code,{children:`itemType`}),`. `,_jsx(_components.code,{children:`inputOverrides`}),` and `,_jsx(_components.code,{children:`jsValidatorScript`}),` are set at the `,_jsx(_components.code,{children:`schema`}),` level, not on the field.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Item type reference`})}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`Value type`}),_jsx(_components.th,{children:`element.type`}),_jsx(_components.th,{children:`itemType`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Text`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INPUT_FIELD`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STRING`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Paragraph`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`TEXTAREA_FIELD`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STRING`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Number (Integer)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`NUMBER_FIELD`}),` + `,_jsx(_components.code,{children:`format: INTEGER`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`INTEGER`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Number (Decimal)`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`NUMBER_FIELD`}),` + `,_jsx(_components.code,{children:`format: DECIMAL`})]}),_jsx(_components.td,{children:_jsx(_components.code,{children:`DECIMAL`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Toggle`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`TOGGLE_FIELD`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`BOOLEAN`})})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{children:`Date`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`DATE_FIELD`})}),_jsx(_components.td,{children:_jsx(_components.code,{children:`STRING`})})]})]})]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.code,{children:`element`}),` also carries type-specific keys, i.e. `,_jsx(_components.code,{children:`NUMBER_FIELD`}),` adds format (`,_jsx(_components.code,{children:`INTEGER`}),`/`,_jsx(_components.code,{children:`DECIMAL`}),`) plus min/max; text types add `,_jsx(_components.code,{children:`validationRegex`}),`. For the default Object data type, the field uses a list of sub-field definitions instead of a single element.`]}),`\n`,_jsx(Heading,{level:`4`,id:`example-run-workflow-block-yaml`,children:`Example Run Workflow block YAML`}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`Run Workflow`}),` block uses `,_jsx(_components.code,{children:`type: RUN_WORKFLOW`}),` under `,_jsx(_components.code,{children:`schema`}),`. `,_jsx(_components.code,{children:`inputs`}),` maps each of the child Workflow’s variable slugs to a value or a template, and `,_jsx(_components.code,{children:`waitForCompletion`}),` makes the block wait for the child run to finish.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`yaml`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`yaml`,children:_jsxs(_components.code,{language:`yaml`,numberOfLines:`9`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`- `}),_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:`name`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`Run approval`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` slug`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`run-approval`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` schema`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` type`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`RUN_WORKFLOW`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` workflowId`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`approval-workflow`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` waitForCompletion`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`true`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` inputs`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`:`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` app-id`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"{{actions.form.outputs.appId}}\"`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#569CD6`},children:` count`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`5`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`Values keep the child variable’s type, so `,_jsx(_components.code,{children:`count: 5`}),` is passed as a number. If the child Workflow has no variables, set `,_jsx(_components.code,{children:`inputs: {}`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`editing-gitops-managed-workflows-in-cortex`,children:`Editing GitOps-managed Workflows in Cortex`}),`\n`,_jsxs(_components.p,{children:[`Users with the `,_jsx(_components.code,{children:`Edit Workflows`}),` permission can duplicate and edit Workflows in Cortex.`]}),`\n`,_jsx(_components.p,{children:`GitOps-managed Workflows are read-only in the Cortex UI. To modify one, create a duplicate, edit the copy, and use it as your primary Workflow going forward.`}),`\n`,_jsx(_components.p,{children:`The UI displays a link to the Workflow’s YAML file in your repository:`}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=4c10553e634d403e41f6168355d86213`,alt:`The 'Repo' icon in the upper-right corner of a Workflow.`,width:`563`,\"data-og-width\":`1275`,\"data-og-height\":`128`,\"data-path\":`images/workflow-repo-link.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=4e3c1fbdd04a26b75133c444ab2b1997 280w, https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=a2cad35c880757cfd984ffb053a3f223 560w, https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=a77d58cc3b2a481543d2dec358b9eb45 840w, https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=f45403aeb2f6bdef8a18a49fb28461c9 1100w, https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=96e353225f153fea707df999510a7513 1650w, https://mintcdn.com/cortex-290c0c42/GdCQ7wvPeVXdjHh5/images/workflow-repo-link.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=GdCQ7wvPeVXdjHh5\u0026q=85\u0026s=7f839221f880a2aea80efd993dcf4c75 2500w`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`From the main sidebar, select `,_jsx(_components.strong,{children:`Workflows`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Do one of the following:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`All`}),` tab to search and filter across all of your organization’s Workflows.`]}),`\n`,_jsxs(_components.li,{children:[`Select the `,_jsx(_components.strong,{children:`Mine`}),` tab to search and filter only the Workflows you own.`]}),`\n`,_jsx(_components.li,{children:`Note that Cortex saves your selection and restores it the next time you open this page.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Locate the Workflow, then click the `,_jsx(_components.strong,{children:`overflow menu icon`}),` next to it.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Select `,_jsx(_components.strong,{children:`Duplicate Workflow`}),`.`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsxs(_components.p,{children:[`Click `,_jsx(_components.strong,{children:`Duplicate workflow`}),`.`]}),`\n`,_jsx(_components.p,{children:`The Workflow is duplicated and a copy is added to the main Workflows page.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`To edit the new Workflow, do one of the following:`}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Click `,_jsx(_components.strong,{children:`Edit Workflow`}),` in the toast notification that appears in the bottom-right corner.`]}),`\n`,_jsxs(_components.li,{children:[`Locate the Workflow, click the `,_jsx(_components.strong,{children:`Overflow menu`}),` next to it, then select `,_jsx(_components.strong,{children:`Edit Workflow`}),`.`]}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Make any necessary changes.`}),`\n`]}),`\n`,_jsxs(_components.li,{children:[`\n`,_jsx(_components.p,{children:`Save the Workflow.`}),`\n`]}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`A `,_jsx(_components.strong,{children:`Git icon`}),` next to a Workflow’s name indicates that it’s managed via GitOps:`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=26842e94c52b96264b1a8e75fd69c403`,alt:`The 'Git' icon next to a Workflow's name.`,width:`275`,\"data-og-width\":`366`,\"data-og-height\":`80`,\"data-path\":`images/gitops-managed-workflow.jpg`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?w=280\u0026fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=e84dcf7d9d5465ea6010e39291297537 280w, https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?w=560\u0026fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=785eeacb20925f8ad5ca5f22ace58189 560w, https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?w=840\u0026fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=53c18af85febdfe82d7f9066b9bb963e 840w, https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?w=1100\u0026fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=f43e932753746a9bd25b6d986592feac 1100w, https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?w=1650\u0026fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=49a97ccda579cd5898498ae609f1ffc2 1650w, https://mintcdn.com/cortex-290c0c42/OnaYqLHqq-U_XM2R/images/gitops-managed-workflow.jpg?w=2500\u0026fit=max\u0026auto=format\u0026n=OnaYqLHqq-U_XM2R\u0026q=85\u0026s=4c73f6eadc2c44aacaba88e8e4999083 2500w`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Workflows as code","description":null,"href":"/streamline/workflows/workflows-as-code"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Managing Workflows in both GitOps and the Cortex UI","slug":"managing-workflows-in-both-gitops-and-the-cortex-ui","depth":2,"children":[{"title":"Step 1: Configuring GitOps editing for Workflows","slug":"step-1-configuring-gitops-editing-for-workflows","depth":3,"children":[]},{"title":"Step 2: Creating a YAML file for the Workflow","slug":"step-2-creating-a-yaml-file-for-the-workflow","depth":3,"children":[]},{"title":"Example Workflow YAML","slug":"example-workflow-yaml","depth":4,"children":[]},{"title":"Example Run Workflow block YAML","slug":"example-run-workflow-block-yaml","depth":4,"children":[]}]},{"title":"Editing GitOps-managed Workflows in Cortex","slug":"editing-gitops-managed-workflows-in-cortex","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cortex-290c0c42/ed8d91d3153959c2/kapa.js","/_mintlify/custom/cortex-290c0c42/36b87f2caabcf780/status-tags.js"],"subdomain":"cortex-290c0c42","siteName":"Cortex","title":"Workflows as code - Cortex","relatedPagesConfig":{"enabled":true,"limit":3,"mode":"automatic"},"navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T17:45:15.952Z","gitLastModified":"2026-11-03T17:39:40.000Z","originalFileLocation":"streamline/workflows/workflows-as-code.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Cortex\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Workflows as code - Cortex\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cortex\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cortex.io/streamline/workflows/workflows-as-code\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cortex-290c0c42.mintlify.app/_mintlify/api/og/v2?division=Workflows\u0026amp;title=Workflows+as+code\u0026amp;theme=f362d88979a16e7429bae890\u0026amp;signature=9907bdbb977f73e8156e78b1d94584734c0df05933737fdb0c271b1fd969f64e\">\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=\"Workflows as code - Cortex\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cortex-290c0c42.mintlify.app/_mintlify/api/og/v2?division=Workflows\u0026amp;title=Workflows+as+code\u0026amp;theme=f362d88979a16e7429bae890\u0026amp;signature=9907bdbb977f73e8156e78b1d94584734c0df05933737fdb0c271b1fd969f64e\">\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/cortex-290c0c42/GsIUSGAJ7s7HMHgE/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cortex\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#653EE8\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cortex.io/streamline/workflows/workflows-as-code\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/streamline/workflows/workflows-as-code.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cortex.io/#organization\",\"name\":\"Cortex\",\"url\":\"https://docs.cortex.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cortex-290c0c42/JcmXgfdiEzZzqS2M/logo/cortex-light.svg?fit=max\u0026auto=format\u0026n=JcmXgfdiEzZzqS2M\u0026q=85\u0026s=3d32dd91336a0de9463a57e04f9b8bb3\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cortex.io#website\",\"name\":\"Cortex\",\"url\":\"https://docs.cortex.io\",\"publisher\":{\"@id\":\"https://docs.cortex.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code#webpage\",\"url\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code\",\"name\":\"Workflows as code\",\"dateModified\":\"2026-11-03T17:39:40.000Z\",\"isPartOf\":{\"@id\":\"https://docs.cortex.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Streamline\",\"item\":\"https://docs.cortex.io/streamline/workflows/create\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Workflows\",\"item\":\"https://docs.cortex.io/streamline/workflows\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Workflows as code\",\"item\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code#article\",\"headline\":\"Workflows as code\",\"name\":\"Workflows as code\",\"url\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cortex.io/streamline/workflows/workflows-as-code#webpage\"},\"dateModified\":\"2026-11-03T17:39:40.000Z\",\"publisher\":{\"@id\":\"https://docs.cortex.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cortex.io#website\"}}]}\u003c/script>","siteName":"Cortex","nav":{"global":null,"tabs":[{"tab":"Product Docs","icon":"books","groups":[{"group":"Cortex","pages":[{"title":"Home","mode":"frame","href":""}]},{"group":"Get Started","pages":[{"group":"Cortex quick start guide","root":{"title":"Cortex quick start guide","href":"/get-started/quickstart"},"pages":[{"title":"Getting started: Logging in to Cortex and configuring your workspace","href":"/get-started/quickstart/getting-started-logging-in-to-cortex-and-configuring-your-workspace"},{"title":"Laying the foundation: Data modeling, integrations, and identity mapping","href":"/get-started/quickstart/laying-the-foundation-data-modeling-integrations-and-identity-mapping"},{"title":"Building on the foundation: Catalogs, Scorecards, Workflows, and Eng Intelligence","href":"/get-started/quickstart/building-on-the-foundation-catalogs-scorecards-workflows-and-eng-intelligence"},{"title":"Going further with Cortex","href":"/get-started/quickstart/going-further-with-cortex"}]},{"group":"AI in Cortex","root":{"title":"AI in Cortex","href":"/get-started/cortex-ai-assistant"},"pages":[{"title":"Cortex AI prompt library","href":"/get-started/cortex-ai-assistant/library"},{"group":"Cortex MCP","root":{"title":"Cortex MCP","href":"/get-started/cortex-ai-assistant/mcp"},"pages":[{"title":"Configuring the Cortex MCP","href":"/get-started/cortex-ai-assistant/mcp/configuring-cortex-mcp"},{"title":"Using the Cortex MCP","href":"/get-started/cortex-ai-assistant/mcp/using-cortex-mcp"},{"title":"Signing in to the remote Cortex MCP with OAuth","href":"/get-started/cortex-ai-assistant/mcp/mcp-oauth"},{"title":"Using the Cortex MCP in Glean","href":"/get-started/cortex-ai-assistant/mcp/glean"}]},{"title":"Cortex AI chat","tag":"RESEARCH PREVIEW","href":"/cortex-ai-chat"}]}]},{"group":"Connect data","pages":[{"title":"Ingesting data into Cortex","href":"/ingesting-data-into-cortex/overview"},{"group":"Entities overview","root":{"title":"Entities overview","href":"/ingesting-data-into-cortex/entities-overview"},"pages":[{"group":"Managing entities","root":{"title":"Managing entities","href":"/ingesting-data-into-cortex/entities-overview/entities"},"pages":[{"group":"Defining entities with YAML","root":{"title":"Defining entities with YAML","href":"/ingesting-data-into-cortex/entities-overview/entities/yaml"},"pages":[{"title":"YAML linter tool","href":"/ingesting-data-into-cortex/entities-overview/entities/yaml/linter"}]},{"group":"Adding entities","root":{"title":"Adding entities","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities"},"pages":[{"title":"Adding services","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/add-services"},{"title":"Adding domains","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/domains"},{"group":"Adding teams","root":{"title":"Adding teams","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams"},"pages":[{"title":"Viewing teams","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams/viewing-teams"},{"title":"Team roles","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams/team-roles"},{"title":"Team ownership entity editing","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/teams/team-entity-editing"}]},{"group":"Adding custom entity types","root":{"title":"Adding custom entity types","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types"},"pages":[{"title":"Creating custom entities","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types/creating-custom-entities"},{"title":"Managing custom entities","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types/managing-custom-entities"},{"title":"Managing custom entity types","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/entity-types/managing-custom-entity-types"}]},{"title":"Defining dependencies","href":"/ingesting-data-into-cortex/entities-overview/entities/adding-entities/dependencies"}]},{"title":"Entity details page","href":"/ingesting-data-into-cortex/entities-overview/entities/details"},{"group":"Ownership","root":{"title":"How ownership works","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership"},"pages":[{"title":"Ownership best practices","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/ownership-best-practices"},{"title":"Assigning owners to entities","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/assigning-owners-to-entities"},{"title":"Ownership inheritance","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/ownership-inheritance"},{"title":"Viewing and managing ownership","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/viewing-and-managing-ownership"},{"title":"Ownership sources reference","href":"/ingesting-data-into-cortex/entities-overview/entities/ownership/ownership-sources"}]},{"group":"Defining relationship types","root":{"title":"Defining relationship types","href":"/ingesting-data-into-cortex/entities-overview/entities/defining-relationship-types"},"pages":[{"title":"Managing relationships","href":"/ingesting-data-into-cortex/entities-overview/entities/defining-relationship-types/managing-relationships"}]},{"title":"Grouping entities","href":"/ingesting-data-into-cortex/entities-overview/entities/groups"},{"title":"Adding external documentation","href":"/ingesting-data-into-cortex/entities-overview/entities/external-docs"},{"title":"Adding deployment data via API","href":"/ingesting-data-into-cortex/entities-overview/entities/deploys"},{"title":"Adding custom data","href":"/ingesting-data-into-cortex/entities-overview/entities/custom-data"},{"title":"Discovered entities","href":"/ingesting-data-into-cortex/entities-overview/entities/discovery-audit"},{"group":"Archiving entities","root":{"title":"Archiving entities","href":"/ingesting-data-into-cortex/entities-overview/entities/archiving-entities"},"pages":[{"title":"Archiving entities automatically","href":"/ingesting-data-into-cortex/entities-overview/entities/archiving-entities/auto-archive"},{"title":"Archiving entities manually","href":"/ingesting-data-into-cortex/entities-overview/entities/archiving-entities/archiving-entities-manually"}]},{"title":"Relationship graphs","tag":"PUBLIC BETA","href":"/ingesting-data-into-cortex/entities-overview/entities/relationship-graph"},{"title":"Using On-call Assistant for incident notifications","href":"/ingesting-data-into-cortex/entities-overview/entities/oncall-assistant"},{"group":"Managing Terraform infra in Cortex","root":{"title":"Managing Terraform infra in Cortex","href":"/ingesting-data-into-cortex/entities-overview/entities/terraform"},"pages":[{"title":"Manage entities using Cortex Terraform Provider","href":"/ingesting-data-into-cortex/entities-overview/entities/terraform/terraform-provider"}]}]}]},{"group":"Catalogs overview","root":{"title":"Catalogs overview","href":"/ingesting-data-into-cortex/catalogs"},"pages":[{"title":"Viewing catalogs","href":"/ingesting-data-into-cortex/catalogs/viewing-catalogs"},{"title":"Managing catalogs","href":"/ingesting-data-into-cortex/catalogs/managing-catalogs"}]},{"group":"Integrations","root":{"title":"Integrations","href":"/ingesting-data-into-cortex/integrations"},"pages":[{"title":"Internally hosted integrations","href":"/ingesting-data-into-cortex/integrations/axon-relay"},{"group":"Apiiro","root":{"title":"Apiiro","href":"/ingesting-data-into-cortex/integrations/apiiro"},"pages":[{"title":"Connecting entities to Apiiro","href":"/ingesting-data-into-cortex/integrations/apiiro/connecting-entities-to-apiiro"},{"title":"Using the integration for Apiiro","href":"/ingesting-data-into-cortex/integrations/apiiro/using-the-integration-for-apiiro"}]},{"title":"ArgoCD","href":"/ingesting-data-into-cortex/integrations/argocd"},{"group":"AWS","root":{"title":"AWS","href":"/ingesting-data-into-cortex/integrations/aws"},"pages":[{"title":"Importing entities from AWS","href":"/ingesting-data-into-cortex/integrations/aws/importing-entities-from-aws"},{"title":"Using the integration for AWS","href":"/ingesting-data-into-cortex/integrations/aws/using-the-integration-for-aws"}]},{"title":"Azure DevOps","href":"/ingesting-data-into-cortex/integrations/azuredevops"},{"title":"Azure Resources","href":"/ingesting-data-into-cortex/integrations/azureresources"},{"title":"BambooHR","href":"/ingesting-data-into-cortex/integrations/bamboohr"},{"title":"Bitbucket","href":"/ingesting-data-into-cortex/integrations/bitbucket"},{"title":"BugSnag","href":"/ingesting-data-into-cortex/integrations/bugsnag"},{"title":"Buildkite","href":"/ingesting-data-into-cortex/integrations/buildkite"},{"title":"Checkmarx","href":"/ingesting-data-into-cortex/integrations/checkmarx"},{"title":"CircleCI","href":"/ingesting-data-into-cortex/integrations/circleci"},{"title":"ClickUp","href":"/ingesting-data-into-cortex/integrations/clickup"},{"title":"Codecov","href":"/ingesting-data-into-cortex/integrations/codecov"},{"title":"Coralogix","href":"/ingesting-data-into-cortex/integrations/coralogix"},{"title":"Custom webhook integrations","href":"/ingesting-data-into-cortex/integrations/webhook"},{"group":"Datadog","root":{"title":"Datadog","href":"/ingesting-data-into-cortex/integrations/datadog"},"pages":[{"title":"Connecting entities to Datadog","href":"/ingesting-data-into-cortex/integrations/datadog/connecting-entities-to-datadog"},{"title":"Using the integration for Datadog","href":"/ingesting-data-into-cortex/integrations/datadog/using-the-integration-for-datadog"}]},{"title":"Dynatrace","href":"/ingesting-data-into-cortex/integrations/dynatrace"},{"title":"Entra ID","href":"/ingesting-data-into-cortex/integrations/entraid"},{"title":"FireHydrant","href":"/ingesting-data-into-cortex/integrations/firehydrant"},{"title":"GitHub","href":"/ingesting-data-into-cortex/integrations/github"},{"title":"GitLab","href":"/ingesting-data-into-cortex/integrations/gitlab"},{"group":"Google Cloud Platform","root":{"title":"Google Cloud Platform","href":"/ingesting-data-into-cortex/integrations/google"},"pages":[{"title":"Connecting entities to Google Cloud Platform","href":"/ingesting-data-into-cortex/integrations/google/connecting-entities-to-google-cloud-platform"},{"title":"Using the integration for Google Cloud Platform","href":"/ingesting-data-into-cortex/integrations/google/using-the-integration-for-google-cloud-platform"}]},{"title":"Grafana","href":"/ingesting-data-into-cortex/integrations/grafana"},{"group":"Harness","root":{"title":"Harness","href":"/ingesting-data-into-cortex/integrations/harness"},"pages":[{"title":"Importing data from Harness","tag":"PUBLIC BETA","href":"/ingesting-data-into-cortex/integrations/harness/importing-data-from-harness"},{"title":"Using the integration for Harness","href":"/ingesting-data-into-cortex/integrations/harness/using-the-integration-for-harness"}]},{"title":"Humanitec","href":"/ingesting-data-into-cortex/integrations/humanitec"},{"group":"incident.io","root":{"title":"incident.io","href":"/ingesting-data-into-cortex/integrations/incidentio"},"pages":[{"title":"Connecting entities to incident.io","href":"/ingesting-data-into-cortex/integrations/incidentio/connecting-entities-to-incident.io"},{"title":"Using the integration for incident.io","href":"/ingesting-data-into-cortex/integrations/incidentio/using-the-integration-for-incident.io"}]},{"title":"Instana","href":"/ingesting-data-into-cortex/integrations/instana"},{"title":"Jenkins","href":"/ingesting-data-into-cortex/integrations/jenkins"},{"title":"Jira","href":"/ingesting-data-into-cortex/integrations/jira"},{"group":"Kubernetes","root":{"title":"Kubernetes","href":"/ingesting-data-into-cortex/integrations/kubernetes"},"pages":[{"title":"Connecting entities to Kubernetes","href":"/ingesting-data-into-cortex/integrations/kubernetes/connecting-entities-to-kubernetes"},{"title":"Using the integration for Kubernetes","href":"/ingesting-data-into-cortex/integrations/kubernetes/using-the-integration-for-kubernetes"}]},{"title":"LaunchDarkly","href":"/ingesting-data-into-cortex/integrations/launchdarkly"},{"title":"Lightstep","href":"/ingesting-data-into-cortex/integrations/lightstep"},{"title":"Mend","href":"/ingesting-data-into-cortex/integrations/mend"},{"title":"Microsoft Teams","href":"/ingesting-data-into-cortex/integrations/microsoftteams"},{"title":"New Relic","href":"/ingesting-data-into-cortex/integrations/newrelic"},{"title":"Okta","href":"/ingesting-data-into-cortex/integrations/okta"},{"title":"Opsgenie","href":"/ingesting-data-into-cortex/integrations/opsgenie"},{"group":"PagerDuty","root":{"title":"PagerDuty","href":"/ingesting-data-into-cortex/integrations/pagerduty"},"pages":[{"title":"Connecting entities to PagerDuty","href":"/ingesting-data-into-cortex/integrations/pagerduty/connecting-entities-to-pagerduty"},{"title":"Using the integration for PagerDuty","href":"/ingesting-data-into-cortex/integrations/pagerduty/using-the-integration-for-pagerduty"}]},{"title":"Prometheus","href":"/ingesting-data-into-cortex/integrations/prometheus"},{"title":"Rollbar","href":"/ingesting-data-into-cortex/integrations/rollbar"},{"group":"Rootly","root":{"title":"Rootly","href":"/ingesting-data-into-cortex/integrations/rootly"},"pages":[{"title":"Connecting entities to Rootly","tag":"PUBLIC BETA","href":"/ingesting-data-into-cortex/integrations/rootly/connecting-entities-to-rootly"},{"title":"Using the integration for Rootly","href":"/ingesting-data-into-cortex/integrations/rootly/using-the-integration-for-rootly"}]},{"title":"Semgrep","href":"/ingesting-data-into-cortex/integrations/semgrep"},{"title":"Sentry","href":"/ingesting-data-into-cortex/integrations/sentry"},{"title":"ServiceNow","href":"/ingesting-data-into-cortex/integrations/servicenow"},{"group":"Slack","root":{"title":"Slack","href":"/ingesting-data-into-cortex/integrations/slack"},"pages":[{"title":"Using the integration for Slack","href":"/ingesting-data-into-cortex/integrations/slack/using-the-integration-for-slack-ai-assistant"},{"title":"Slack integration FAQ and troubleshooting","href":"/ingesting-data-into-cortex/integrations/slack/slack-integration-faq-and-troubleshooting"}]},{"title":"Snyk","href":"/ingesting-data-into-cortex/integrations/snyk"},{"title":"SonarQube","href":"/ingesting-data-into-cortex/integrations/sonarqube"},{"title":"Splunk Observability Cloud (SignalFx)","href":"/ingesting-data-into-cortex/integrations/splunk-observability"},{"title":"Splunk On-Call (VictorOps)","href":"/ingesting-data-into-cortex/integrations/splunk-oncall"},{"title":"Sumo Logic","href":"/ingesting-data-into-cortex/integrations/sumologic"},{"title":"Syntasso Kratix Enterprise (SKE)","href":"/ingesting-data-into-cortex/integrations/syntasso"},{"title":"Veracode","href":"/ingesting-data-into-cortex/integrations/veracode"},{"title":"Wiz","href":"/ingesting-data-into-cortex/integrations/wiz"},{"group":"Workday","root":{"title":"Workday","href":"/ingesting-data-into-cortex/integrations/workday"},"pages":[{"title":"Using the integration for Workday","href":"/ingesting-data-into-cortex/integrations/workday/using-the-integration-for-workday"}]},{"title":"xMatters","href":"/ingesting-data-into-cortex/integrations/xmatters"}]}]},{"group":"Standardize","pages":[{"group":"Scorecards overview","root":{"title":"Scorecards overview","href":"/standardize/scorecards"},"pages":[{"title":"Create a Scorecard","href":"/standardize/scorecards/create"},{"title":"Reviewing and evaluating Scorecards","href":"/standardize/scorecards/evaluate"},{"title":"Scorecard rule exemptions","href":"/standardize/scorecards/rule-exemptions"},{"title":"Scorecard rule filters","href":"/standardize/scorecards/scorecard-filters"},{"title":"Scorecard examples","href":"/standardize/scorecards/scorecard-examples"},{"title":"Scorecards as code","href":"/standardize/scorecards/scorecards-as-code"},{"title":"Scorecard troubleshooting and FAQ","href":"/standardize/scorecards/scorecard-troubleshooting-and-faq"}]},{"group":"Cortex Query Language (CQL)","root":{"title":"Cortex Query Language (CQL)","href":"/standardize/cql"},"pages":[{"title":"Running and saving CQL queries","href":"/standardize/cql/run"},{"title":"Using CQL reports","href":"/standardize/cql/cql-reports"},{"title":"Using JQ in Cortex","href":"/standardize/cql/using-jq"}]}]},{"group":"Improve","pages":[{"group":"OpEx Review","root":{"title":"OpEx Review","tag":"PUBLIC BETA","href":"/improve/opex-review"},"pages":[{"title":"Configuring OpEx Review","tag":"PUBLIC BETA","href":"/improve/opex-review/configuring-opex"},{"title":"Using the OpEx Review report","tag":"PUBLIC BETA","href":"/improve/opex-review/using-opex"},{"title":"Using Cortex AI in OpEx Review","tag":"RESEARCH PREVIEW","href":"/improve/opex-review/using-opex-ai-chat"},{"title":"OpEx Review FAQ","tag":"PUBLIC BETA","href":"/improve/opex-review/opex-faq"}]},{"group":"Eng Intelligence","root":{"title":"Eng Intelligence","hidden":true,"href":"/improve/eng-intelligence"},"pages":[{"group":"Dashboards","root":{"title":"Dashboards","href":"/improve/eng-intelligence/dashboards"},"pages":[{"title":"DORA Dashboard","href":"/improve/eng-intelligence/dora-dashboard"},{"title":"Velocity Dashboard","href":"/improve/eng-intelligence/velocity-dashboard"},{"title":"AI impact dashboard for GitHub Copilot","tag":"PUBLIC BETA","href":"/improve/eng-intelligence/dashboards/ai-impact"},{"group":"Custom dashboards","root":{"title":"Custom dashboards","href":"/improve/eng-intelligence/dashboards/custom"},"pages":[{"title":"Managing custom dashboards","href":"/improve/eng-intelligence/dashboards/custom/managing-custom-dashboards"}]}]},{"group":"Data Explorer","root":{"title":"Data Explorer","href":"/improve/eng-intelligence/data-explorer"},"pages":[{"title":"Available metrics in Data Explorer","href":"/improve/eng-intelligence/data-explorer/available-metrics-in-data-explorer"},{"title":"Data Explorer reference","href":"/improve/eng-intelligence/data-explorer/data-explorer-reference"}]},{"title":"Custom metrics","href":"/improve/eng-intelligence/custom-metrics"}]},{"group":"Initiatives and Action items","root":{"title":"Initiatives and Action items","href":"/improve/initiatives"},"pages":[{"title":"Creating issues based on Initiatives","href":"/improve/initiatives/issue-config"}]},{"group":"Reports","root":{"title":"Reports","href":"/improve/reports"},"pages":[{"title":"Executive report","href":"/improve/reports/executive-report"},{"title":"All Scorecards report","href":"/improve/reports/all-scorecards"},{"group":"Bird's eye report","root":{"title":"Bird's eye report","href":"/improve/reports/birds-eye"},"pages":[{"title":"Legacy Bird's Eye report","hidden":true,"href":"/improve/reports/birds-eye/legacy-birds-eye-report"}]},{"title":"Progress report","href":"/improve/reports/progress-report"},{"title":"Report card","href":"/improve/reports/report-card"}]}]},{"group":"Streamline","pages":[{"group":"Workflows","root":{"title":"Workflows","href":"/streamline/workflows"},"pages":[{"title":"Creating a Workflow","href":"/streamline/workflows/create"},{"title":"Configuring Workflow settings","href":"/streamline/workflows/configuring-workflow-settings"},{"group":"Adding blocks to a Workflow","root":{"title":"Adding blocks to a Workflow","href":"/streamline/workflows/blocks"},"pages":[{"title":"Using request signing with Workflow blocks","href":"/streamline/workflows/blocks/using-request-signing-with-workflow-blocks"},{"title":"Referencing a Workflow state in a block","href":"/streamline/workflows/blocks/states"},{"title":"Workflow block configuration reference","href":"/streamline/workflows/blocks/block-configuration-reference"}]},{"title":"Running a Workflow","href":"/streamline/workflows/run"},{"title":"Publishing a Workflow","href":"/streamline/workflows/publishing-a-workflow"},{"title":"Viewing Workflows","description":null,"href":"/streamline/workflows/viewing-workflows"},{"title":"Workflows as code","href":"/streamline/workflows/workflows-as-code"},{"title":"Example Workflow definitions","description":"Complete Workflow definitions you can create with the Workflows API or manage as YAML","href":"/streamline/workflows/example-workflow-definitions"},{"group":"Registering a Scaffolder template","root":{"title":"Registering a Scaffolder template","href":"/streamline/workflows/scaffolder"},"pages":[{"title":"Scaffolder advanced usage","href":"/streamline/workflows/scaffolder/advanced-usage"},{"title":"Convert a GitHub repo to a Cookiecutter template","href":"/streamline/workflows/scaffolder/convert-template"}]}]},{"group":"Plugins","root":{"title":"Plugins","href":"/streamline/plugins"},"pages":[{"title":"Plugin Marketplace","href":"/streamline/plugins/marketplace"},{"group":"Creating a plugin","root":{"title":"Creating a plugin","href":"/streamline/plugins/creating-plugins"},"pages":[{"title":"Creating a plugin proxy","href":"/streamline/plugins/creating-plugins/plugin-proxy"},{"title":"Editing a plugin","href":"/streamline/plugins/creating-plugins/editing-a-plugin"},{"title":"Plugin development reference","href":"/streamline/plugins/creating-plugins/plugin-development-reference"},{"title":"Styling plugins with theme tokens","href":"/styling-plugins-with-theme-tokens"}]},{"title":"Migrating Backstage plugins to Cortex","href":"/streamline/plugins/backstage-migration"},{"title":"Calling internal service endpoints via plugin proxy","href":"/streamline/plugins/calling-internal-service-endpoints-via-plugin-proxy"}]},{"title":"Engineering homepage","href":"/streamline/homepage"}]},{"group":"Configure","pages":[{"group":"Workspace Settings","root":{"title":"Workspace Settings","href":"/configure/settings"},"pages":[{"title":"Customizing your workspace","href":"/configure/settings/workspace-customization"},{"group":"Entity settings","root":{"title":"Entity settings","href":"/configure/settings/entity-settings"},"pages":[{"group":"Data verification","pages":[{"title":"Data verification","href":"/configure/settings/entity-settings/verification"},{"title":"Viewing and verifying data verifications","href":"/configure/settings/entity-settings/viewing-and-verifying-data-verifications"}]}]},{"title":"GitOps settings","href":"/configure/settings/gitops-settings"},{"group":"Notifications","root":{"title":"Notifications","href":"/configure/settings/notifications"},"pages":[{"title":"Notification logs","href":"/configure/settings/notifications/logs"}]},{"title":"Scorecard settings","href":"/configure/settings/scorecard"},{"group":"API keys, secrets, and tokens","root":{"title":"API keys, secrets, and tokens","href":"/configure/settings/api-keys"},"pages":[{"title":"Secrets","href":"/configure/settings/api-keys/secrets"},{"title":"Personal tokens","href":"/configure/settings/api-keys/personal-tokens"}]},{"title":"Audit logs","href":"/configure/settings/audit-logs"},{"title":"Adding an IP allowlist","href":"/configure/settings/ip-allowlist"},{"group":"Managing users and roles","root":{"title":"Managing users and roles","href":"/configure/settings/managing-users"},"pages":[{"group":"Roles and permissions","root":{"title":"Roles and permissions","href":"/configure/settings/managing-users/permissioning"},"pages":[{"title":"Custom roles","href":"/configure/settings/managing-users/permissioning/custom-roles"}]},{"group":"Configuring SSO for Cortex workspace logins","root":{"title":"Configuring SSO for Cortex workspace logins","href":"/configure/settings/managing-users/configuring-sso"},"pages":[{"title":"Entra ID SSO","href":"/configure/settings/managing-users/configuring-sso/entraid"},{"title":"Google SSO","href":"/configure/settings/managing-users/configuring-sso/google"},{"title":"Okta SSO","href":"/configure/settings/managing-users/configuring-sso/okta"},{"title":"Other OIDC SSO providers","href":"/configure/settings/managing-users/configuring-sso/oidc"}]},{"group":"Provisioning users with SCIM","root":{"title":"Provisioning Cortex users with SCIM","href":"/configure/settings/managing-users/scim/provisioning-users-with-scim"},"pages":[{"title":"Configuring SCIM in Cortex","href":"/configure/settings/managing-users/scim/configuring-scim"},{"title":"Configuring Microsoft Entra ID SCIM for Cortex","href":"/configure/settings/managing-users/scim/entraid-scim"},{"title":"Configuring Okta SCIM for Cortex","href":"/configure/settings/managing-users/scim/okta-scim"}]},{"title":"Configuring identity mappings","href":"/configure/settings/managing-users/identity-mapping"},{"title":"Onboarding management","href":"/configure/settings/managing-users/onboarding-mgmt"}]},{"title":"Using search in Cortex","href":"/configure/settings/search"}]},{"group":"GitOps for Cortex overview","root":{"title":"GitOps for Cortex overview","href":"/configure/gitops"},"pages":[{"title":"Using GitOps for Cortex","href":"/configure/gitops/using-gitops-for-cortex"},{"title":"GitOps logs","href":"/configure/gitops/gitops-logs"}]},{"title":"Cortex Command Line Interface","href":"/configure/cortex-command-line-interface"}]},{"group":"Resources","pages":[{"group":"Cortex beta program and release phases","root":{"title":"Cortex beta program and release phases","href":"/resources/beta"},"pages":[{"title":"AI impact dashboard for GitHub Copilot","hidden":true,"tag":"beta","href":"/resources/beta/ai-dashboard"},{"title":"Custom dashboards","hidden":true,"tag":"beta","href":"/resources/beta/custom-dashboards"},{"title":"Workflow Runs API","hidden":true,"href":"/resources/beta/workflow-runs-api"},{"title":"Entity Relationships Bird's Eye (Private Beta)","hidden":true,"href":"/resources/beta/entity-relationships-birds-eye-private-beta"},{"title":"Entity Relationships All Scorecards","hidden":true,"href":"/resources/beta/entity-relationships-birds-eye-private-beta-1"},{"title":"Incident.io: expanded incident functionality","tag":"private-beta","hidden":true,"href":"/resources/beta/incident-core-types-incident.io-private-beta"},{"title":"Incident.io On-call","tag":"private-beta","hidden":true,"href":"/resources/beta/incident.io-on-call"},{"title":"Data Explorer with Tabular View","hidden":true,"href":"/resources/beta/data-explorer-with-tabular-view"},{"title":"AWS Relationship Auto-Creation","hidden":true,"href":"/resources/beta/aws-relationship-auto-creation"}]},{"title":"Further help","href":"/resources/help"}]}]},{"tab":"Cookbooks","icon":"hat-chef","pages":[{"title":"Cookbooks","href":"/guides"}]},{"tab":"API Reference","icon":"brain","pages":[{"title":"API Reference","href":"/api"}]}]},"basePath":"","title":"Workflows as code - Cortex","buildId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","deploymentId":"dpl_9VVk5y1P8k1ATeJguVngy9Q3cmbD","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-CvtNkYOX.js","lightbox-handle-r17bVUz3.js"]}