Why would you have your schemas in version control
One of the prime benefits of having your schemas locally is that you will have the changes to your Enterspeed schemas as part of the version control history.Let’s imagine you are creating a new feature for your site.By having your schemas in version control you will now get the full story of changes made to support this new feature, not only the code changes you did to your site but also the schema changes you did to support the new feature.
First, you must install the Enterspeed CLI. If you haven’t worked with the CLI, take a look at the Getting started guide.The guide includes everything, incl. installation, authenticating and selecting the right tenant.
If you already have a tenant with multiple schemas deployed to multiple environments you can clone these schemas and extract a deployment plan to your local machine.If you are starting a new tenant, you can just skip this step.
This will extract a deployment plan for the given environment. The deployment plan is a json file containing the schema alias and version number for all schemas deployed to the environment.
Let’s say you start working on a new feature for your site.Depending on your version control branch strategy, you might create a feature branch to keep changes isolated until ready for a PR or to be merged into the main branch.Now you can make the code and schemas changes you need.After creating or updating a schema use the following command to import the schema into Enterspeed.
es-cli schema import -a [schema alias]
The import command will import the schema even if it’s a new schema or an updated schema. This way you don’t have to call either a create or save command.
Once you have imported a schema you want to test if the schema is working as expected.You do that as normal by going to the schema in the Enterspeed app where you can test the schema against real source entities.
This will deploy the schema to the given environment which will start the processing and generate the views.The deploy command will also update your local deployment plan to match the new version of the deployed schema.This means that the deployment plan is always up to date and ready when you merge your change into the main branch where other developers can run a full deployment to update their own environment.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Enterspeed Docs","colors":{"primary":"#0018ff","light":"#99bfdd","dark":"#000035"},"logo":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e","dark":"https://mintcdn.com/enterspeed/ZSYX286dEXJYPh8A/images/Enterspeed_Logo_RGB_DIAP.svg?fit=max\u0026auto=format\u0026n=ZSYX286dEXJYPh8A\u0026q=85\u0026s=57859398954b59778cd723e0b9e4dca5"},"favicon":{"light":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f","dark":"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/favicon.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=2e00ec680e7f80f676f9d4748626ec0f"},"background":{"decoration":"grid"},"navbar":{"links":[{"href":"https://www.enterspeedstatus.com/","label":"Status"}]},"footer":{"socials":{"github":"https://github.com/enterspeedhq","linkedin":"https://www.linkedin.com/company/enterspeed","website":"https://www.enterspeed.com/","youtube":"https://www.youtube.com/@enterspeedhq"},"links":[{"header":"Company","items":[{"label":"Enterspeed","href":"https://www.enterspeed.com"},{"label":"Contact Us","href":"https://www.enterspeed.com/contact"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]},{"header":"Resources","items":[{"label":"Blog","href":"https://www.enterspeed.com/blog"},{"label":"Product Updates","href":"https://updates.enterspeed.com/"},{"label":"Newsletter Signup","href":"https://content.enterspeed.com/newsletter-signup"},{"label":"Privacy Policy","href":"https://www.enterspeed.com/privacy-policy"}]}]},"search":{"prompt":"Search docs"},"icons":{"library":"fontawesome"},"styling":{"eyebrows":"breadcrumbs","latex":false},"integrations":{"gtm":{"tagId":"GTM-N32R9R7"},"mixpanel":{"projectToken":"efb544fc5e5319cb4a082b0154e14df2","region":"eu"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode","download-spec"],"display":"header"},"interaction":{"drilldown":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"enterspeed","hasAudioNarration":false,"actualSubdomain":"enterspeed","customDomains":["docs.enterspeed.com"],"gitSource":{"type":"github","owner":"enterspeedhq","repo":"enterspeed-docs","deployBranch":"master","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"collectionId":"528dd4a1-f406-4d8f-a3a1-420ea5af8b77","liveDeploymentHistoryId":"6ae9c20c98ee2cfbfea836ef","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae9c20c98ee2cfbfea836ef"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae9c20c98ee2cfbfea836ef","clientVersion":"0.0.4074","searchFilterCounts":[{"language":"default","tag":"Enterspeed","count":136},{"language":"default","tag":"Overview","count":46},{"language":"default","tag":"Integrations","count":43},{"language":"default","tag":"Source integrations","count":30},{"language":"default","tag":"Speedtrain","count":29},{"language":"default","tag":"Key concepts","count":23},{"language":"default","tag":"Umbraco","count":21},{"language":"default","tag":"Tutorials","count":20},{"language":"default","tag":"Schema reference","count":19},{"language":"default","tag":"Getting started","count":16}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":false}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".integration-logos .card img{background-color:#f0f3f7;border-radius:0.5rem;padding:0.75rem;box-sizing:border-box}.dark .integration-logos .card img{background-color:#000035}"}],"page":{"pagePath":"enterspeed/tooling/cli/keep-schemas-in-version-control","slug":"/enterspeed/tooling/cli/keep-schemas-in-version-control","pageMetadata":{"title":"Keep schemas in version control","description":null,"href":"/enterspeed/tooling/cli/keep-schemas-in-version-control"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedFrame,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedFrame)_missingMdxReference(`OptimizedFrame`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(Frame,{children:_jsx(OptimizedFrame,{src:`https://www.youtube.com/embed/5crm4rUMdxU`,width:`100%`,height:`400`,frameBorder:`0`,allow:`accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture`,allowFullScreen:true})}),`\n`,_jsx(Heading,{level:`2`,id:`why-would-you-have-your-schemas-in-version-control`,children:`Why would you have your schemas in version control`}),`\n`,_jsx(_components.p,{children:`One of the prime benefits of having your schemas locally is that you will have the changes to your Enterspeed schemas as part of the version control history.`}),`\n`,_jsx(_components.p,{children:`Let’s imagine you are creating a new feature for your site.`}),`\n`,_jsx(_components.p,{children:`By having your schemas in version control you will now get the full story of changes made to support this new feature, not only the code changes you did to your site but also the schema changes you did to support the new feature.`}),`\n`,_jsx(Heading,{level:`2`,id:`prepare-your-local-environment`,children:`Prepare your local environment`}),`\n`,_jsx(Heading,{level:`3`,id:`1-install-enterspeed-cli`,children:`1. Install Enterspeed CLI`}),`\n`,_jsxs(_components.p,{children:[`First, you must install the Enterspeed CLI. If you haven’t worked with the CLI, take a look at the `,_jsx(_components.a,{href:`/enterspeed/tooling/cli/getting-started`,children:`Getting started guide`}),`.`]}),`\n`,_jsx(_components.p,{children:`The guide includes everything, incl. installation, authenticating and selecting the right tenant.`}),`\n`,_jsx(Heading,{level:`3`,id:`2-clone-schemas-and-deployment-plan`,children:`2. Clone schemas and deployment plan`}),`\n`,_jsx(_components.p,{children:`If you already have a tenant with multiple schemas deployed to multiple environments you can clone these schemas and extract a deployment plan to your local machine.`}),`\n`,_jsx(_components.p,{children:`If you are starting a new tenant, you can just skip this step.`}),`\n`,_jsx(Heading,{level:`4`,id:`clone-schemas`,children:`Clone schemas`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`es-cli schema clone`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`This will clone all your schemas from Enterspeed to your local machine in a folder called `,_jsx(_components.code,{children:`Schemas`}),`.`]}),`\n`,_jsx(Heading,{level:`4`,id:`extract-deployment-plan`,children:`Extract deployment plan`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`es-cli deployment extract -e [your environment name]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`This will extract a deployment plan for the given environment. The deployment plan is a `,_jsx(_components.code,{children:`json`}),` file containing the schema alias and version number for all schemas deployed to the environment.`]}),`\n`,_jsx(Heading,{level:`4`,id:`push-changes-to-your-repository`,children:`Push changes to your repository`}),`\n`,_jsx(_components.p,{children:`You can now commit and push all your schemas and deployment plan to your repository and we are ready to start working with the schemas.`}),`\n`,_jsx(Heading,{level:`2`,id:`working-with-schema-locally`,children:`Working with schema locally`}),`\n`,_jsx(Heading,{level:`3`,id:`3-create-a-new-schema-or-update-an-existing-one`,children:`3. Create a new schema or update an existing one`}),`\n`,_jsx(_components.p,{children:`Let’s say you start working on a new feature for your site.`}),`\n`,_jsx(_components.p,{children:`Depending on your version control branch strategy, you might create a feature branch to keep changes isolated until ready for a PR or to be merged into the main branch.`}),`\n`,_jsx(_components.p,{children:`Now you can make the code and schemas changes you need.`}),`\n`,_jsx(_components.p,{children:`After creating or updating a schema use the following command to import the schema into Enterspeed.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`es-cli schema import -a [schema alias]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`The import command will import the schema even if it’s a new schema or an updated schema. This way you don’t have to call either a create or save command.`})}),`\n`,_jsx(Heading,{level:`3`,id:`4-testing-schemas`,children:`4. Testing schemas`}),`\n`,_jsx(_components.p,{children:`Once you have imported a schema you want to test if the schema is working as expected.`}),`\n`,_jsx(_components.p,{children:`You do that as normal by going to the schema in the Enterspeed app where you can test the schema against real source entities.`}),`\n`,_jsx(Heading,{level:`3`,id:`5-deploying-schemas`,children:`5. Deploying schemas`}),`\n`,_jsx(_components.p,{children:`Now that you have tested your schema changes, it’s time to deploy the schema.`}),`\n`,_jsxs(_components.p,{children:[`You do that by running the `,_jsx(_components.code,{children:`schema deploy`}),` command`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`es-cli schema deploy [schema alias] -e [your environment name]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`This will deploy the schema to the given environment which will start the processing and generate the views.`}),`\n`,_jsx(_components.p,{children:`The deploy command will also update your local deployment plan to match the new version of the deployed schema.`}),`\n`,_jsx(_components.p,{children:`This means that the deployment plan is always up to date and ready when you merge your change into the main branch where other developers can run a full deployment to update their own environment.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,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:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`es-cli deployment deployment deploy -e [your environment name]`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`The deployment plan can also be used to deploy the schemas in the correct version in a CD pipeline. `,_jsx(_components.a,{href:`/enterspeed/tooling/cli/continuous-deployment`,children:`Use Enterspeed CLI in your release pipeline`})]})})]})}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":"Keep schemas in version control","description":null,"href":"/enterspeed/tooling/cli/keep-schemas-in-version-control"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Why would you have your schemas in version control","slug":"why-would-you-have-your-schemas-in-version-control","depth":2,"children":[]},{"title":"Prepare your local environment","slug":"prepare-your-local-environment","depth":2,"children":[{"title":"1. Install Enterspeed CLI","slug":"1-install-enterspeed-cli","depth":3,"children":[]},{"title":"2. Clone schemas and deployment plan","slug":"2-clone-schemas-and-deployment-plan","depth":3,"children":[]},{"title":"Clone schemas","slug":"clone-schemas","depth":4,"children":[]},{"title":"Extract deployment plan","slug":"extract-deployment-plan","depth":4,"children":[]},{"title":"Push changes to your repository","slug":"push-changes-to-your-repository","depth":4,"children":[]}]},{"title":"Working with schema locally","slug":"working-with-schema-locally","depth":2,"children":[{"title":"3. Create a new schema or update an existing one","slug":"3-create-a-new-schema-or-update-an-existing-one","depth":3,"children":[]},{"title":"4. Testing schemas","slug":"4-testing-schemas","depth":3,"children":[]},{"title":"5. Deploying schemas","slug":"5-deploying-schemas","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"enterspeed","siteName":"Enterspeed Docs","title":"Keep schemas in version control - Enterspeed Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-03T06:29:13.850Z","originalFileLocation":"enterspeed/tooling/cli/keep-schemas-in-version-control.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=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_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/enterspeed/DjjqapwY-6NONS8k/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Keep schemas in version control - Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://enterspeed.mintlify.site/_mintlify/api/og/v2?division=CLI\u0026amp;title=Keep+schemas+in+version+control\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=5b1cd2d8925609bfd93833dd6980600ac86342a07712fd3d47f000046879de37\">\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=\"Keep schemas in version control - Enterspeed Docs\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://enterspeed.mintlify.site/_mintlify/api/og/v2?division=CLI\u0026amp;title=Keep+schemas+in+version+control\u0026amp;theme=46924038ce8145a2b946a524\u0026amp;signature=5b1cd2d8925609bfd93833dd6980600ac86342a07712fd3d47f000046879de37\">\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/enterspeed/DjjqapwY-6NONS8k/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Enterspeed Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0018ff\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/enterspeed/tooling/cli/keep-schemas-in-version-control.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.enterspeed.com/#organization\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/enterspeed/epLxx3NKRbzcMz_w/images/Enterspeed_Logo_RGB_Black.svg?fit=max\u0026auto=format\u0026n=epLxx3NKRbzcMz_w\u0026q=85\u0026s=491f6b7030bd2783bc3e51bb7183237e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.enterspeed.com#website\",\"name\":\"Enterspeed Docs\",\"url\":\"https://docs.enterspeed.com\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control#webpage\",\"url\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control\",\"name\":\"Keep schemas in version control\",\"dateModified\":\"2026-11-03T06:29:13.850Z\",\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"CLI\",\"item\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Keep schemas in version control\",\"item\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control#article\",\"headline\":\"Keep schemas in version control\",\"name\":\"Keep schemas in version control\",\"url\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control\",\"mainEntityOfPage\":{\"@id\":\"https://docs.enterspeed.com/enterspeed/tooling/cli/keep-schemas-in-version-control#webpage\"},\"dateModified\":\"2026-11-03T06:29:13.850Z\",\"publisher\":{\"@id\":\"https://docs.enterspeed.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.enterspeed.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Enterspeed Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Enterspeed Docs","nav":{"global":null,"products":[{"product":"Enterspeed","icon":"gear-complex-api","description":"The data orchestration layer","pages":[{"group":"Overview","pages":[{"title":"Enterspeed Documentation","sidebarTitle":"Welcome","href":"/enterspeed/welcome"},{"group":"Getting started","pages":[{"group":"0 - Setup","pages":[{"title":"Intro","href":"/enterspeed/getting-started/intro"},{"title":"Setting up domains","href":"/enterspeed/getting-started/domains"},{"title":"Configuring environments","href":"/enterspeed/getting-started/environments"},{"title":"Using environment clients","href":"/enterspeed/getting-started/environment-clients"},{"title":"Adding data sources","href":"/enterspeed/getting-started/data-sources"}]},{"title":"1 - Ingesting data","href":"/enterspeed/ingest"},{"group":"2 - Transforming data","pages":[{"title":"2 - Transforming data","sidebarTitle":"Intro","href":"/enterspeed/transform/intro"},{"title":"Designing a schema","href":"/enterspeed/transform/designing-a-schema"},{"title":"Schema versioning","sidebarTitle":"Versioning","href":"/enterspeed/transform/schema-versioning"}]},{"title":"3 - Delivering data","href":"/enterspeed/deliver"}]},{"group":"Key concepts","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/enterspeed/key-concepts/overview"},{"title":"Schemas","sidebarTitle":"Schemas","href":"/enterspeed/key-concepts/schemas"},{"title":"Partial schemas","sidebarTitle":"Partial schemas","href":"/enterspeed/key-concepts/partial-schemas"},{"title":"Index schemas","sidebarTitle":"Index schemas","href":"/enterspeed/key-concepts/index-schemas"},{"title":"Referencing schemas","sidebarTitle":"Referencing schemas","href":"/enterspeed/key-concepts/referencing-schemas"},{"title":"Source Entities","sidebarTitle":"Source Entities","href":"/enterspeed/key-concepts/source-entities"},{"title":"Source Groups","sidebarTitle":"Source Groups","href":"/enterspeed/key-concepts/source-groups"},{"title":"Routing","sidebarTitle":"Routing","href":"/enterspeed/key-concepts/routing"},{"title":"Views","sidebarTitle":"Views","href":"/enterspeed/key-concepts/views"},{"title":"Redirects","sidebarTitle":"Redirects","href":"/enterspeed/key-concepts/redirects"},{"title":"Domains \u0026 hostnames","sidebarTitle":"Domains \u0026 hostnames","href":"/enterspeed/key-concepts/domains-hostnames"},{"title":"Reprocessing","sidebarTitle":"Reprocessing","href":"/enterspeed/key-concepts/reprocessing"}]},{"title":"User Login","href":"/enterspeed/user-login"},{"title":"Service Limits","href":"/enterspeed/service-limits"}]},{"group":"Schema reference","icon":"book-open-cover","pages":[{"group":"schemas","pages":[{"group":"JavaScript schemas","pages":[{"title":"Intro","href":"/enterspeed/reference/js/intro"},{"title":"JSDoc","href":"/enterspeed/reference/js/jsdoc"},{"group":"Full schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/full-schema/intro"},{"title":"Triggers","href":"/enterspeed/reference/js/full-schema/triggers"},{"title":"Properties","href":"/enterspeed/reference/js/full-schema/properties"},{"title":"Routes","href":"/enterspeed/reference/js/full-schema/routes"},{"title":"Actions","href":"/enterspeed/reference/js/full-schema/actions"}]},{"group":"Index schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/index-schema/intro"},{"title":"Triggers","href":"/enterspeed/reference/js/index-schema/triggers"},{"title":"Properties","href":"/enterspeed/reference/js/index-schema/properties"},{"title":"Index","href":"/enterspeed/reference/js/index-schema/index-method"}]},{"group":"Partial schema","pages":[{"title":"Intro","href":"/enterspeed/reference/js/partial-schema/intro"},{"title":"Properties","href":"/enterspeed/reference/js/partial-schema/properties"}]}]},{"group":"JSON schemas","tag":"Deprecated","pages":[{"title":"Property types","href":"/enterspeed/reference/json/property-types"},{"title":"Expression","href":"/enterspeed/reference/json/expression"},{"title":"Path selector","href":"/enterspeed/reference/json/path-selector"}]}]},{"title":"Filter Expressions","href":"/enterspeed/reference/filter-expressions"},{"group":"Schema example library","pages":[{"title":"Overview","href":"/enterspeed/reference/schema-example-library/overview"}]},{"title":"Organising your schemas","href":"/enterspeed/reference/folders"}]},{"group":"API","icon":"code","pages":[{"title":"Enterspeed API","sidebarTitle":"Overview","href":"/enterspeed/api/overview"},{"group":"Delivery","pages":[{"title":"Get content by URL, IDs, or handles","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /v2","href":"/api-reference/delivery/get-content-by-url-ids-or-handles"},{"title":"Get content by IDs, or handles","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v2","href":"/api-reference/delivery/get-content-by-ids-or-handles"}]},{"group":"Ingest","pages":[{"title":"Save entity","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /ingest/v2/{originId}","href":"/api-reference/ingest/save-entity"},{"title":"Delete entity","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml delete /ingest/v2/{originId}","href":"/api-reference/ingest/delete-entity"},{"title":"Save entities","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /ingest/v2","href":"/api-reference/ingest/save-entities"},{"title":"Delete entities","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml delete /ingest/v2","href":"/api-reference/ingest/delete-entities"}]},{"group":"Routes","pages":[{"title":"Get Routes","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /routes/v1","href":"/api-reference/routes/get-routes"},{"title":"Get Routes v2","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml get /routes/v2","href":"/api-reference/routes/get-routes-v2"}]},{"group":"Query","pages":[{"title":"Query items","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/{indexAlias}","href":"/api-reference/query/query-items"},{"title":"Multi query items","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1","href":"/api-reference/query/multi-query-items"},{"title":"Query items from Auto Indexing source groups","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/sourceGroupAlias/{sourceGroupAlias}/type/{sourceEntityType}","href":"/api-reference/query/query-items-from-auto-indexing-source-groups"},{"title":"Multi query items from Auto Indexing source groups","deprecated":null,"version":null,"openapi":"/enterspeed/enterspeedv1Api.yaml post /v1/source","href":"/api-reference/query/multi-query-items-from-auto-indexing-source-groups"}]}]},{"group":"Integrations","icon":"plug","pages":[{"title":"Enterspeed Integrations","sidebarTitle":"Overview","href":"/enterspeed/integrations/overview"},{"group":"Source integrations","pages":[{"title":"Commercetools","href":"/enterspeed/integrations/commercetools"},{"title":"n8n","href":"/enterspeed/integrations/n8n"},{"group":"Umbraco","pages":[{"title":"Getting started","href":"/enterspeed/integrations/umbraco/getting-started"},{"title":"Getting data","href":"/enterspeed/integrations/umbraco/getting-data"},{"title":"Services","href":"/enterspeed/integrations/umbraco/services"},{"title":"Service registration","href":"/enterspeed/integrations/umbraco/service-registration"},{"title":"Value Converter","href":"/enterspeed/integrations/umbraco/enterspeed-value-converter"},{"title":"UmbracoContentEntity","href":"/enterspeed/integrations/umbraco/umbraco-content-entity"},{"title":"Additional properties","href":"/enterspeed/integrations/umbraco/additional-properties"},{"title":"Background tasks","href":"/enterspeed/integrations/umbraco/background-tasks"},{"title":"Content dashboard","href":"/enterspeed/integrations/umbraco/content-dashboard"},{"title":"Culture and hostnames","href":"/enterspeed/integrations/umbraco/culture-and-hostnames"},{"title":"Database","href":"/enterspeed/integrations/umbraco/database"},{"title":"Guards","href":"/enterspeed/integrations/umbraco/enterspeed-guards"},{"title":"Enterspeed Property Service","href":"/enterspeed/integrations/umbraco/enterspeed-propertys-service"},{"title":"Grid Editor Value Converters","href":"/enterspeed/integrations/umbraco/grid-editor-value-converters"},{"title":"Jobs","href":"/enterspeed/integrations/umbraco/jobs"},{"title":"Publishing","href":"/enterspeed/integrations/umbraco/publishing"},{"title":"Redirects","href":"/enterspeed/integrations/umbraco/redirects"},{"title":"Troubleshooting","href":"/enterspeed/integrations/umbraco/troubleshooting"},{"title":"Umbraco Cloud","href":"/enterspeed/integrations/umbraco/umbraco-cloud"},{"title":"Tagging in Umbraco","href":"/enterspeed/integrations/umbraco/umbraco-tagging"},{"title":"Updating package","href":"/enterspeed/integrations/umbraco/updating-package"}]},{"title":"Umbraco \u0026 Cloudinary","href":"/enterspeed/integrations/umbraco-cloudinary"},{"group":"Sitecore","pages":[{"title":"Getting started","href":"/enterspeed/integrations/sitecore/getting-started"},{"title":"Getting data","href":"/enterspeed/integrations/sitecore/getting-data"},{"title":"Services","href":"/enterspeed/integrations/sitecore/services"},{"title":"Processed entities","href":"/enterspeed/integrations/sitecore/processed-entities"},{"title":"SitecoreContentEntity","href":"/enterspeed/integrations/sitecore/sitecorecontententity"},{"title":"Field Value Converter","href":"/enterspeed/integrations/sitecore/enterspeed-value-converter"}]}]},{"group":"Destination integrations","pages":[{"group":"Configuration","pages":[{"title":"Skip unchanged views and resend","sidebarTitle":"Skip unchanged views","href":"/enterspeed/integrations/skip-unchanged-views"}]},{"title":"Webhooks","href":"/enterspeed/integrations/webhooks"},{"title":"Algolia","href":"/enterspeed/integrations/algolia"},{"title":"Clerk.io","href":"/enterspeed/integrations/clerk"},{"title":"Elastic App Search","href":"/enterspeed/integrations/elastic-app-search"},{"title":"Elasticsearch","href":"/enterspeed/integrations/elasticsearch"},{"title":"Enterspeed Ingest","href":"/enterspeed/integrations/ingest"},{"title":"Relewise","href":"/enterspeed/integrations/relewise"},{"title":"Azure Service Bus","href":"/enterspeed/integrations/servicebus"},{"title":"Shopify","href":"/enterspeed/integrations/shopify"},{"title":"Speedtrain","href":"/enterspeed/integrations/speedtrain"},{"title":"Typesense","href":"/enterspeed/integrations/typesense"}]}]},{"group":"Tutorials","icon":"graduation-cap","pages":[{"title":"Tutorials","sidebarTitle":"Overview","href":"/enterspeed/tutorials/overview"},{"group":"Creating a simple site","pages":[{"title":"Intro","href":"/enterspeed/tutorials/creating-a-simple-site/intro"},{"title":"1. Sources \u0026 Environments","href":"/enterspeed/tutorials/creating-a-simple-site/1-sources-environments"},{"title":"2. Ingesting data","href":"/enterspeed/tutorials/creating-a-simple-site/2-ingesting-data"},{"title":"3. Designing your APIs","href":"/enterspeed/tutorials/creating-a-simple-site/3-designing-your-apis"},{"title":"4. Fetching data","href":"/enterspeed/tutorials/creating-a-simple-site/4-fetching-data"}]},{"group":"Multilevel navigation","pages":[{"title":"1. Getting started","href":"/enterspeed/tutorials/multilevel-navigation/1-getting-started"},{"title":"2. Create schemas","href":"/enterspeed/tutorials/multilevel-navigation/2-create-schemas"},{"title":"3. Going further","href":"/enterspeed/tutorials/multilevel-navigation/3-going-further"},{"title":"4. Wrap up","href":"/enterspeed/tutorials/multilevel-navigation/4-wrap-up"}]},{"group":"Umbraco and Next.js","pages":[{"title":"Intro","href":"/enterspeed/tutorials/umbraco-nextjs/intro"},{"title":"1. Sources \u0026 Environments","href":"/enterspeed/tutorials/umbraco-nextjs/1-sources-environments"},{"title":"2. Configuring Umbraco","href":"/enterspeed/tutorials/umbraco-nextjs/2-configuring-umbraco"},{"title":"3. Designing your APIs","href":"/enterspeed/tutorials/umbraco-nextjs/3-designing-your-apis"},{"title":"4. Fetching data in Next.js","href":"/enterspeed/tutorials/umbraco-nextjs/4-fetching-data-in-nextjs"}]},{"group":"Product list (CMS + PIM)","pages":[{"title":"1. Getting started","href":"/enterspeed/tutorials/product-list-cms-pim/1-getting-started"},{"title":"2. Data sources and environment","href":"/enterspeed/tutorials/product-list-cms-pim/2-data-sources-environment"},{"title":"3. Ingest data","href":"/enterspeed/tutorials/product-list-cms-pim/3-ingest-data"},{"title":"4. Create schemas","href":"/enterspeed/tutorials/product-list-cms-pim/4-create-schemas"},{"title":"5. Wrap up","href":"/enterspeed/tutorials/product-list-cms-pim/5-wrap-up"}]}]},{"group":"Best practices","icon":"compass","pages":[{"title":"Overview","href":"/enterspeed/best-practices/overview"},{"title":"Ingest integrations","href":"/enterspeed/best-practices/ingest-integrations"},{"title":"Schemas","href":"/enterspeed/best-practices/schemas"},{"title":"Indexes","href":"/enterspeed/best-practices/indexes"}]},{"group":"CLI","icon":"terminal","pages":[{"title":"Overview","href":"/enterspeed/tooling/cli/overview"},{"title":"Getting started","description":null,"href":"/enterspeed/tooling/cli/getting-started"},{"title":"Keep schemas in version control","href":"/enterspeed/tooling/cli/keep-schemas-in-version-control"},{"title":"Continuous Deployment","description":null,"href":"/enterspeed/tooling/cli/continuous-deployment"},{"title":"Developer setup","href":"/enterspeed/tooling/cli/developer-setup"}]},{"group":"MCP server","icon":"plug","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/overview"},{"title":"Documentation MCP","href":"/enterspeed/mcp-server/documentation-mcp/overview"},{"group":"Query MCP","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/query-mcp/overview"},{"title":"Connecting an agent","href":"/enterspeed/mcp-server/query-mcp/connecting-an-agent"},{"title":"Connecting a client","href":"/enterspeed/mcp-server/query-mcp/connecting-a-client"}]},{"group":"Management MCP","pages":[{"title":"Overview","href":"/enterspeed/mcp-server/management-mcp/overview"},{"title":"Tools","href":"/enterspeed/mcp-server/management-mcp/tools"}]}]}]},{"product":"Speedtrain","icon":"microchip-ai","description":"Governed AI content enrichment","pages":[{"title":"Speedtrain","href":"/speedtrain/intro"}]}]},"basePath":"","title":"Keep schemas in version control - Enterspeed Docs","buildId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","deploymentId":"dpl_BLQvU86QFwq3AhPofSTw6q8dGWKm","dynamics":["07c022d89b"],"chunks":["Frame-CK6QbnxT.js","DynamicMarkdown-BKiHAm_d.js"]}