Staging environments are activated automatically for specific source code branches
when a branch is switched to in the Cube Cloud UI. Any development mode
changes must be committed to a branch to be available in this environment.
By default, they are only active and accessible while viewed by at least one user.
When no users are viewing the branch, the environment becomes inactive and inaccessible.If you’d like to update this setting for a specific branch (e.g., for testing purposes),
go to Settings → Staging Environments and check the toggle next to it:
Toggle off (default). A staging environment is only active when viewed by users.
When no users are viewing the branch, queries to this environment will fail.
Toggle on. A staging environment remains always active and accessible,
regardless of user activity.
The same toggle is available in the CLI and the Control Plane
API, so it can be scripted, e.g. from CI:
A staging environment can also be the target of an embed session:
pass its branch name as branchName and the embedded content queries that branch’s data
model. With the toggle on, the session is generated whether or not the environment has
suspended for inactivity; with it off, it fails unless someone is viewing the branch at
that moment.
Staging environments run on Shared deployments, incurring relevant
costs. However, they automatically suspend after 10 minutes
of inactivity, regardless of the availability setting, so you are only
charged for the time when staging environments are being used.
A development environment is activated automatically when a user enters the development
mode on a specific branch of the source code. It updates automatically
when a user saves changes to the data model.Only one development environment is allocated per user.
A development environment is only active and accessible while viewed by a user in the
development mode. Otherwise, queries to this environment will fail.
Development environments run on Shared deployments, incurring relevant
costs. However, they automatically suspend after 10 minutes
of inactivity, so you are only charged for the time when development environments are
being used.
All environments of a deployment share the same Cube Store and the same
pre-aggregations schema. There is no separate schema for
staging or development environments, and the branch name is not part of a
pre-aggregation table name.Cube tells pre-aggregation tables apart by the definition that produced them,
so tables built from different branches coexist in the shared schema:
A branch that leaves a pre-aggregation unchanged is served from the tables the
production environment has already built. If the pre-aggregation’s refresh key
has changed, a query from the branch can start a background refresh of it, and
the production environment then serves the newly built table too.
A branch that changes a pre-aggregation, for example by adding a dimension or
editing a measure, builds its own tables next to the production ones. The
production environment keeps using its own tables and never serves the tables
built for the changed definition.
Once the branch is merged, the production environment can reuse tables that
were already built from it instead of building them again.
Staging and development environments always run the most up-to-date Cube
version, while production follows its update channel. If the newer version
generates different SQL for a pre-aggregation, a branch builds its own tables
even though the definition is unchanged.
Staging and development environments have no scheduled
refresh. Their pre-aggregations are built
when first queried or when you use Build all or Build Selected on
the Pre-Aggregations page.
Building pre-aggregations from a staging or development environment also runs
the regular cleanup of unused tables in the shared schema. It can remove older
production tables that are no longer in use. The production environment rebuilds them on its next
scheduled refresh; until then, queries served by those pre-aggregations can
return incomplete results or fail. Avoid building large partitioned
pre-aggregations from a branch. To test pre-aggregation builds safely, use a
separate deployment on a different Git branch.
Each environment provides its own set of API endpoints.You can access them on the Overview page of your deployment
or by navigating to the Integrations page and clicking API
credentials.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Cube Documentation","colors":{"primary":"#5339CF","light":"#A5A3FF","dark":"#716EEE"},"logo":{"light":"https://mintcdn.com/cubed3/wCTntgEXVYYYnx4l/logo/light.svg?fit=max\u0026auto=format\u0026n=wCTntgEXVYYYnx4l\u0026q=85\u0026s=8bbf45ba64eac6116629064fac55aad7","dark":"https://mintcdn.com/cubed3/wCTntgEXVYYYnx4l/logo/dark.svg?fit=max\u0026auto=format\u0026n=wCTntgEXVYYYnx4l\u0026q=85\u0026s=d8fa230950c8c63b3c2f88d2768694d0"},"favicon":"https://mintcdn.com/cubed3/wCTntgEXVYYYnx4l/favicon.svg?fit=max\u0026auto=format\u0026n=wCTntgEXVYYYnx4l\u0026q=85\u0026s=3b0cb7aa770d2abd546ef19463fbba8c","navbar":{"links":[{"href":"https://cube.dev/demos","label":"Demos"},{"href":"https://cube.dev/changelog","label":"Changelog"},{"href":"https://slack.cube.dev","label":"Community"}],"primary":{"type":"button","label":"Get Started","href":"https://cubecloud.dev/auth/signup"}},"footer":{"socials":{"x":"https://x.com/the_cube_dev","github":"https://github.com/cube-js/cube","linkedin":"https://www.linkedin.com/company/cube-dev"},"links":[{"header":"Legal","items":[{"label":"Privacy Policy","href":"https://cube.dev/legal/privacy-policy"},{"label":"Cookie Preferences","href":"#cookie-preferences"}]}]},"seo":{"metatags":{"og:type":"website","og:site_name":"Cube Documentation"},"indexing":"navigable"},"icons":{"library":"tabler"},"styling":{"codeblocks":"dark","latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"cubed3","hasAudioNarration":false,"actualSubdomain":"cubed3","customDomains":["docs.cube.dev"],"gitSource":{"type":"github","owner":"cube-js","repo":"cube","deployBranch":"master","contentDirectory":"docs-mintlify","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af31882ac69703f57b5f5ea","clientVersion":"0.0.4094","searchFilterCounts":[{"language":"default","tag":"API","count":236},{"language":"default","tag":"Platform Endpoints","count":229},{"language":"default","tag":"Documentation","count":102},{"language":"default","tag":"Admin","count":95},{"language":"default","tag":"Data Modeling","count":65},{"language":"default","tag":"Recipes","count":47},{"language":"default","tag":"Topics","count":47},{"language":"default","tag":"Reference","count":44},{"language":"default","tag":"Connect to data","count":31},{"language":"default","tag":"Explore \u0026 Analyze","count":30}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"#content-area table,.mdx-content table{width:100%!important}.cube-consent{position:fixed;right:16px;bottom:16px;z-index:2147483000;box-sizing:border-box;display:flex;flex-direction:column;gap:8px;width:min(440px, calc(100vw - 32px));padding:16px;background:#fff;color:#111827;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 8px 24px rgb(0 0 0 / 12%);font-size:14px;line-height:1.5}html.dark .cube-consent{background:#111318;color:#f3f4f6;border-color:#2b2f38}.cube-consent__title{margin:0;padding-right:24px;font-size:16px;font-weight:600}.cube-consent__text,.cube-consent__status{margin:0;color:#4b5563}html.dark .cube-consent__text,html.dark .cube-consent__status{color:#b6bcc8}.cube-consent__link{color:inherit;text-decoration:underline}.cube-consent__actions{display:flex;gap:8px}.cube-consent__button{flex:1;padding:8px 16px;border:1px solid #111827;border-radius:6px;background:#111827;color:#fff;font:inherit;font-weight:500;cursor:pointer}html.dark .cube-consent__button{border-color:#f3f4f6;background:#f3f4f6;color:#111318}.cube-consent__button:hover{opacity:0.88}.cube-consent__button:focus-visible,.cube-consent__close:focus-visible,.cube-consent__link:focus-visible{outline:2px solid #111827;outline-offset:2px}html.dark .cube-consent :focus-visible{outline-color:#f3f4f6}.cube-consent__close{position:absolute;top:8px;right:8px;width:24px;height:24px;padding:0;border:0;background:transparent;color:inherit;font-size:20px;line-height:1;cursor:pointer}"}],"page":{"pagePath":"admin/deployment/environments","slug":"/admin/deployment/environments","pageMetadata":{"title":"Deployment environments","sidebarTitle":"Deployment environments","description":"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.","href":"/admin/deployment/environments"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Frame,Heading,OptimizedImage,Warning}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Warning)_missingMdxReference(`Warning`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Every Cube Cloud deployment provides a number of environments:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`A single `,_jsx(_components.a,{href:`#production-environment`,children:`production environment`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Multiple `,_jsx(_components.a,{href:`#staging-environments`,children:`staging environments`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Per-user `,_jsx(_components.a,{href:`#development-environments`,children:`development environments`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`production-environment`,children:`Production environment`}),`\n`,_jsxs(_components.p,{children:[`This is the main environment. It runs the data model from the `,_jsx(_components.em,{children:`main branch`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`availability`,children:`Availability`}),`\n`,_jsxs(_components.p,{children:[`The production environment is `,_jsx(_components.em,{children:`always available`}),` unless `,_jsx(_components.a,{href:`/admin/deployment/auto-suspension`,children:`suspended`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`resources-and-costs`,children:`Resources and costs`}),`\n`,_jsxs(_components.p,{children:[`Depending on the `,_jsx(_components.a,{href:`/admin/deployment/deployment-types`,children:`deployment type`}),`, the production environment\neither runs on a Shared deployment or on a Dedicated deployment with `,_jsx(_components.a,{href:`/admin/deployment/scalability#auto-scaling-of-api-instances`,children:`multiple API\ninstances`}),`, incurring `,_jsx(_components.a,{href:`/admin/account-billing/pricing`,children:`relevant\ncosts`}),`.`]}),`\n`,_jsx(Heading,{level:`3`,id:`cube-version`,children:`Cube version`}),`\n`,_jsxs(_components.p,{children:[`Production environments run a `,_jsx(_components.a,{href:`/admin/deployment#cube-version`,children:`Cube version`}),` from the selected\n`,_jsx(_components.a,{href:`/admin/deployment#update-channels`,children:`update channel`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`staging-environments`,children:`Staging environments`}),`\n`,_jsxs(_components.p,{children:[`Staging environments are activated automatically for specific source code branches\nwhen a branch is switched to in the Cube Cloud UI. Any `,_jsx(_components.a,{href:`/docs/data-modeling/dev-mode`,children:`development mode`}),`\nchanges must be committed to a branch to be available in this environment.`]}),`\n`,_jsx(Heading,{level:`3`,id:`availability-2`,children:`Availability`}),`\n`,_jsx(_components.p,{children:`By default, they are only active and accessible while viewed by at least one user.\nWhen no users are viewing the branch, the environment becomes inactive and inaccessible.`}),`\n`,_jsxs(_components.p,{children:[`If you’d like to update this setting for a specific branch (e.g., for testing purposes),\ngo to `,_jsx(_components.strong,{children:`Settings → Staging Environments`}),` and check the toggle next to it:`]}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Toggle off`}),` (default). A staging environment is only active when viewed by users.\nWhen no users are viewing the branch, queries to this environment will fail.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Toggle on`}),`. A staging environment remains `,_jsx(_components.em,{children:`always active`}),` and accessible,\nregardless of user activity.`]}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://ucarecdn.com/e0dcce34-a53a-4087-b021-25dbaf730a92/`})}),`\n`,_jsxs(_components.p,{children:[`The same toggle is available in the `,_jsx(_components.a,{href:`/reference/cli`,children:`CLI`}),` and the `,_jsx(_components.a,{href:`/reference/control-plane-api#buildapiv1deploymentsdeployment_idbranchesstaging-environment`,children:`Control Plane\nAPI`}),`, so it can be scripted, e.g. from CI:`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes dark-plus dark-plus`,style:{backgroundColor:`#0B0C0E`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#D4D4D4`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`cube`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` data-model`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` enable-branch`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` DEPLOYMENT_ID`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` BRANCH_NAME`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#DCDCAA`,\"--shiki-dark\":`#DCDCAA`},children:`cube`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` data-model`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` disable-branch`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` DEPLOYMENT_ID`}),_jsx(_components.span,{style:{color:`#CE9178`,\"--shiki-dark\":`#CE9178`},children:` BRANCH_NAME`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`A staging environment can also be the target of an `,_jsx(_components.a,{href:`/reference/embed-apis/generate-session`,children:`embed session`}),`:\npass its branch name as `,_jsx(_components.code,{children:`branchName`}),` and the embedded content queries that branch’s data\nmodel. With the toggle on, the session is generated whether or not the environment has\nsuspended for inactivity; with it off, it fails unless someone is viewing the branch at\nthat moment.`]}),`\n`,_jsx(Heading,{level:`3`,id:`resources-and-costs-2`,children:`Resources and costs`}),`\n`,_jsxs(_components.p,{children:[`Staging environments run on Shared deployments, incurring `,_jsx(_components.a,{href:`/admin/account-billing/pricing`,children:`relevant\ncosts`}),`. However, they automatically suspend after 10 minutes\nof inactivity, regardless of the `,_jsx(_components.a,{href:`#availability`,children:`availability`}),` setting, so you are only\ncharged for the time when staging environments are being used.`]}),`\n`,_jsx(Heading,{level:`3`,id:`cube-version-2`,children:`Cube version`}),`\n`,_jsxs(_components.p,{children:[`Staging environments always run the `,_jsx(_components.em,{children:`most up-to-date`}),` Cube version.`]}),`\n`,_jsx(Heading,{level:`2`,id:`development-environments`,children:`Development environments`}),`\n`,_jsxs(_components.p,{children:[`A development environment is activated automatically when a user enters the `,_jsx(_components.a,{href:`/docs/data-modeling/dev-mode`,children:`development\nmode`}),` on a specific branch of the source code. It updates automatically\nwhen a user saves changes to the data model.`]}),`\n`,_jsx(_components.p,{children:`Only one development environment is allocated per user.`}),`\n`,_jsx(Heading,{level:`3`,id:`availability-3`,children:`Availability`}),`\n`,_jsx(_components.p,{children:`A development environment is only active and accessible while viewed by a user in the\ndevelopment mode. Otherwise, queries to this environment will fail.`}),`\n`,_jsx(Heading,{level:`3`,id:`resources-and-costs-3`,children:`Resources and costs`}),`\n`,_jsxs(_components.p,{children:[`Development environments run on Shared deployments, incurring `,_jsx(_components.a,{href:`/admin/account-billing/pricing`,children:`relevant\ncosts`}),`. However, they automatically suspend after 10 minutes\nof inactivity, so you are only charged for the time when development environments are\nbeing used.`]}),`\n`,_jsx(Heading,{level:`3`,id:`cube-version-3`,children:`Cube version`}),`\n`,_jsxs(_components.p,{children:[`Development environments always run the `,_jsx(_components.em,{children:`most up-to-date`}),` Cube version.`]}),`\n`,_jsx(Heading,{level:`2`,id:`pre-aggregations`,children:`Pre-aggregations`}),`\n`,_jsxs(_components.p,{children:[`All environments of a deployment share the same Cube Store and the same\n`,_jsx(_components.a,{href:`/reference/configuration/config#pre_aggregations_schema`,children:`pre-aggregations schema`}),`. There is no separate schema for\nstaging or development environments, and the branch name is not part of a\npre-aggregation table name.`]}),`\n`,_jsx(_components.p,{children:`Cube tells pre-aggregation tables apart by the definition that produced them,\nso tables built from different branches coexist in the shared schema:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`A branch that leaves a pre-aggregation unchanged is served from the tables the\nproduction environment has already built. If the pre-aggregation’s refresh key\nhas changed, a query from the branch can start a background refresh of it, and\nthe production environment then serves the newly built table too.`}),`\n`,_jsx(_components.li,{children:`A branch that changes a pre-aggregation, for example by adding a dimension or\nediting a measure, builds its own tables next to the production ones. The\nproduction environment keeps using its own tables and never serves the tables\nbuilt for the changed definition.`}),`\n`,_jsx(_components.li,{children:`Once the branch is merged, the production environment can reuse tables that\nwere already built from it instead of building them again.`}),`\n`,_jsx(_components.li,{children:`Staging and development environments always run the most up-to-date Cube\nversion, while production follows its update channel. If the newer version\ngenerates different SQL for a pre-aggregation, a branch builds its own tables\neven though the definition is unchanged.`}),`\n`,_jsxs(_components.li,{children:[`Staging and development environments have no `,_jsx(_components.a,{href:`/docs/data-modeling/dev-mode#scheduled-refresh`,children:`scheduled\nrefresh`}),`. Their pre-aggregations are built\nwhen first queried or when you use `,_jsx(_components.strong,{children:`Build all`}),` or `,_jsx(_components.strong,{children:`Build Selected`}),` on\nthe `,_jsx(_components.a,{href:`/admin/monitoring/pre-aggregations#partitions`,children:`Pre-Aggregations page`}),`.`]}),`\n`]}),`\n`,_jsx(Warning,{children:_jsx(_components.p,{children:`Building pre-aggregations from a staging or development environment also runs\nthe regular cleanup of unused tables in the shared schema. It can remove older\nproduction tables that are no longer in use. The production environment rebuilds them on its next\nscheduled refresh; until then, queries served by those pre-aggregations can\nreturn incomplete results or fail. Avoid building large partitioned\npre-aggregations from a branch. To test pre-aggregation builds safely, use a\nseparate deployment on a different Git branch.`})}),`\n`,_jsx(Heading,{level:`2`,id:`api-endpoints`,children:`API endpoints`}),`\n`,_jsx(_components.p,{children:`Each environment provides its own set of API endpoints.`}),`\n`,_jsxs(_components.p,{children:[`You can access them on the `,_jsxs(_components.a,{href:`/admin/connect-to-data/visualization-tools`,children:[_jsx(_components.strong,{children:`Overview`}),` page`]}),` of your deployment\nor by navigating to the `,_jsx(_components.strong,{children:`Integrations`}),` page and `,_jsxs(_components.a,{href:`/admin/connect-to-data/visualization-tools`,children:[`clicking `,_jsx(_components.strong,{children:`API\ncredentials`})]}),`.`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://ucarecdn.com/36cdf2c0-311f-4023-b7ca-e156c6ac288b/`})})]})}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":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Deployment environments","sidebarTitle":"Deployment environments","description":"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.","href":"/admin/deployment/environments"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Production environment","slug":"production-environment","depth":2,"children":[{"title":"Availability","slug":"availability","depth":3,"children":[]},{"title":"Resources and costs","slug":"resources-and-costs","depth":3,"children":[]},{"title":"Cube version","slug":"cube-version","depth":3,"children":[]}]},{"title":"Staging environments","slug":"staging-environments","depth":2,"children":[{"title":"Availability","slug":"availability-2","depth":3,"children":[]},{"title":"Resources and costs","slug":"resources-and-costs-2","depth":3,"children":[]},{"title":"Cube version","slug":"cube-version-2","depth":3,"children":[]}]},{"title":"Development environments","slug":"development-environments","depth":2,"children":[{"title":"Availability","slug":"availability-3","depth":3,"children":[]},{"title":"Resources and costs","slug":"resources-and-costs-3","depth":3,"children":[]},{"title":"Cube version","slug":"cube-version-3","depth":3,"children":[]}]},{"title":"Pre-aggregations","slug":"pre-aggregations","depth":2,"children":[]},{"title":"API endpoints","slug":"api-endpoints","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/cubed3/73c42f6b43b9b3b0/scripts/extract-chat.js","/_mintlify/custom/cubed3/19892615a6a53d32/scripts/extract-core-data.js","/_mintlify/custom/cubed3/476a9fa93e98d93b/consent.js"],"subdomain":"cubed3","siteName":"Cube Documentation","title":"Deployment environments - Cube Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-30T22:35:39.577Z","originalFileLocation":"admin/deployment/environments.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Cube Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_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/cubed3/JtLYPWhDFrYGSK8W/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Deployment environments - Cube Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Cube Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.cube.dev/admin/deployment/environments\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://cubed3.mintlify.site/_mintlify/api/og/v2?division=Deployment\u0026amp;title=Deployment+environments\u0026amp;description=Outlines+production%2C+staging%2C+and+per-developer+environments+and+how+they+differ+inside+one+Cube+deployment.\u0026amp;theme=6d1e003873cec4de62649d7c\u0026amp;signature=ce58ab4921b4e08056afc2d0915932bccd3245c7dc6006150cdbd74de653e6b8\">\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=\"Deployment environments - Cube Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://cubed3.mintlify.site/_mintlify/api/og/v2?division=Deployment\u0026amp;title=Deployment+environments\u0026amp;description=Outlines+production%2C+staging%2C+and+per-developer+environments+and+how+they+differ+inside+one+Cube+deployment.\u0026amp;theme=6d1e003873cec4de62649d7c\u0026amp;signature=ce58ab4921b4e08056afc2d0915932bccd3245c7dc6006150cdbd74de653e6b8\">\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/cubed3/JtLYPWhDFrYGSK8W/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Cube Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5339CF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.cube.dev/admin/deployment/environments\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/admin/deployment/environments.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.cube.dev/#organization\",\"name\":\"Cube Documentation\",\"url\":\"https://docs.cube.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/cubed3/wCTntgEXVYYYnx4l/logo/light.svg?fit=max\u0026auto=format\u0026n=wCTntgEXVYYYnx4l\u0026q=85\u0026s=8bbf45ba64eac6116629064fac55aad7\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.cube.dev#website\",\"name\":\"Cube Documentation\",\"url\":\"https://docs.cube.dev\",\"publisher\":{\"@id\":\"https://docs.cube.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.cube.dev/admin/deployment/environments#webpage\",\"url\":\"https://docs.cube.dev/admin/deployment/environments\",\"name\":\"Deployment environments\",\"description\":\"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.\",\"dateModified\":\"2026-10-30T22:35:39.577Z\",\"isPartOf\":{\"@id\":\"https://docs.cube.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.cube.dev/admin/deployment/environments#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.cube.dev/admin/deployment/environments#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Deployment\",\"item\":\"https://docs.cube.dev/admin/deployment/index\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Deployment environments\",\"item\":\"https://docs.cube.dev/admin/deployment/environments\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.cube.dev/admin/deployment/environments#article\",\"headline\":\"Deployment environments\",\"name\":\"Deployment environments\",\"description\":\"Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.\",\"url\":\"https://docs.cube.dev/admin/deployment/environments\",\"mainEntityOfPage\":{\"@id\":\"https://docs.cube.dev/admin/deployment/environments#webpage\"},\"dateModified\":\"2026-10-30T22:35:39.577Z\",\"publisher\":{\"@id\":\"https://docs.cube.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.cube.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Cube Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Cube Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":"/docs/introduction"}]},{"tab":"Admin","groups":[{"group":"Connect to data","pages":[{"title":"Connect to data","sidebarTitle":"Overview","mode":"wide","href":"/admin/connect-to-data"},{"group":"Data Sources","root":{"title":"Data Sources","sidebarTitle":"Overview","mode":"wide","href":"/admin/connect-to-data/data-sources/index"},"pages":[{"title":"Amazon Athena","href":"/admin/connect-to-data/data-sources/aws-athena"},{"title":"AWS Redshift","href":"/admin/connect-to-data/data-sources/aws-redshift"},{"title":"ClickHouse","href":"/admin/connect-to-data/data-sources/clickhouse"},{"title":"Databricks","href":"/admin/connect-to-data/data-sources/databricks-jdbc"},{"title":"Druid","href":"/admin/connect-to-data/data-sources/druid"},{"title":"DuckDB","href":"/admin/connect-to-data/data-sources/duckdb"},{"title":"Firebolt","href":"/admin/connect-to-data/data-sources/firebolt"},{"title":"Google BigQuery","href":"/admin/connect-to-data/data-sources/google-bigquery"},{"title":"Hive / SparkSQL","href":"/admin/connect-to-data/data-sources/hive"},{"title":"ksqlDB","href":"/admin/connect-to-data/data-sources/ksqldb"},{"title":"Materialize","href":"/admin/connect-to-data/data-sources/materialize"},{"title":"MongoDB","href":"/admin/connect-to-data/data-sources/mongodb"},{"title":"Microsoft Fabric","href":"/admin/connect-to-data/data-sources/ms-fabric"},{"title":"Microsoft SQL Server","href":"/admin/connect-to-data/data-sources/ms-sql"},{"title":"MySQL","href":"/admin/connect-to-data/data-sources/mysql"},{"title":"Oracle","href":"/admin/connect-to-data/data-sources/oracle"},{"title":"Apache Pinot","href":"/admin/connect-to-data/data-sources/pinot"},{"title":"Postgres","href":"/admin/connect-to-data/data-sources/postgres"},{"title":"Presto","href":"/admin/connect-to-data/data-sources/presto"},{"title":"QuestDB","href":"/admin/connect-to-data/data-sources/questdb"},{"title":"RisingWave","href":"/admin/connect-to-data/data-sources/risingwave"},{"title":"SingleStore","href":"/admin/connect-to-data/data-sources/singlestore"},{"title":"Snowflake","href":"/admin/connect-to-data/data-sources/snowflake"},{"title":"SQLite","href":"/admin/connect-to-data/data-sources/sqlite"},{"title":"Trino","href":"/admin/connect-to-data/data-sources/trino"},{"title":"Vertica","href":"/admin/connect-to-data/data-sources/vertica"}]},{"title":"Connecting to multiple data sources","href":"/admin/connect-to-data/multiple-data-sources"},{"title":"Querying concurrency","href":"/admin/connect-to-data/concurrency"},{"title":"Query tracing","href":"/admin/connect-to-data/query-tracing"},{"title":"Set up per-user OAuth","href":"/admin/connect-to-data/oauth-authentication"}]},{"group":"Users \u0026 Permissions","pages":[{"title":"Manage users","href":"/admin/users-and-permissions/manage-users"},{"title":"Roles \u0026 Permissions","href":"/admin/users-and-permissions/roles-and-permissions"},{"title":"User Attributes","href":"/admin/users-and-permissions/user-attributes"},{"title":"User groups","href":"/admin/users-and-permissions/user-groups"},{"title":"Custom roles","href":"/admin/users-and-permissions/custom-roles"}]},{"group":"SSO \u0026 Identity Providers","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/admin/sso/index"},{"title":"Google Workspace","href":"/admin/sso/google-workspace"},{"group":"Microsoft Entra ID","pages":[{"title":"SAML authentication with Microsoft Entra ID","sidebarTitle":"SAML","href":"/admin/sso/microsoft-entra-id/saml"},{"title":"SCIM provisioning with Microsoft Entra ID","sidebarTitle":"SCIM","href":"/admin/sso/microsoft-entra-id/scim"}]},{"group":"Okta","pages":[{"title":"SAML authentication with Okta","sidebarTitle":"SAML","href":"/admin/sso/okta/saml"},{"title":"SCIM provisioning with Okta","sidebarTitle":"SCIM","href":"/admin/sso/okta/scim"}]}]},{"group":"Deployment","pages":[{"title":"Overview","sidebarTitle":"Overview","href":"/admin/deployment/index"},{"title":"Deployment types","sidebarTitle":"Deployment types","description":"Cube provides three deployment types: Shared, Dedicated, and Multi-cluster.","href":"/admin/deployment/deployment-types"},{"title":"Deployment environments","sidebarTitle":"Deployment environments","href":"/admin/deployment/environments"},{"title":"Continuous deployment","description":"This guide covers features and tools you can use to deploy your Cube project to Cube Cloud.","href":"/admin/deployment/continuous-deployment"},{"title":"Custom domains","href":"/admin/deployment/custom-domains"},{"title":"Deployment warm-up","href":"/admin/deployment/warm-up"},{"title":"Auto-suspension","hidden":true,"href":"/admin/deployment/auto-suspension"},{"title":"Scalability","href":"/admin/deployment/scalability"},{"title":"Encryption keys","href":"/admin/deployment/encryption-keys"},{"title":"Limits and quotas","href":"/admin/deployment/limits"},{"title":"Infrastructure Options","href":"/admin/deployment/infrastructure"},{"group":"Dedicated Infrastructure","root":{"title":"Dedicated Infrastructure","href":"/admin/deployment/dedicated/index"},"pages":[{"group":"AWS","root":{"title":"Dedicated Infrastructure on AWS","sidebarTitle":"AWS","href":"/admin/deployment/dedicated/aws/index"},"pages":[{"title":"Setting up AWS PrivateLink","sidebarTitle":"PrivateLink","href":"/admin/deployment/dedicated/aws/private-link"},{"title":"Private API Connectivity on AWS","sidebarTitle":"Private API Connectivity","href":"/admin/deployment/dedicated/aws/private-api-connectivity"},{"title":"Bring Your Own Cloud on AWS","sidebarTitle":"BYOC","href":"/admin/deployment/dedicated/aws/byoc"}]},{"group":"Azure","root":{"title":"Dedicated Infrastructure on Azure","sidebarTitle":"Azure","href":"/admin/deployment/dedicated/azure/index"},"pages":[{"title":"Setting up Azure Private Link","sidebarTitle":"Private Link","href":"/admin/deployment/dedicated/azure/private-link"},{"title":"Bring Your Own Cloud on Azure","sidebarTitle":"BYOC","href":"/admin/deployment/dedicated/azure/byoc"}]},{"group":"GCP","root":{"title":"Dedicated Infrastructure on GCP","sidebarTitle":"GCP","href":"/admin/deployment/dedicated/gcp/index"},"pages":[{"title":"Setting up Google Private Service Connect","sidebarTitle":"Private Service Connect","href":"/admin/deployment/dedicated/gcp/private-service-connect"},{"title":"Bring Your Own Cloud on GCP","sidebarTitle":"BYOC","href":"/admin/deployment/dedicated/gcp/byoc"}]},{"title":"Bring-Your-Own Pre-aggregation Storage","sidebarTitle":"Pre-aggregation Storage","href":"/admin/deployment/dedicated/pre-aggregation-storage"}]},{"group":"Cube OIDC","root":{"title":"OIDC workload identity","sidebarTitle":"Overview","href":"/admin/deployment/oidc/index"},"pages":[{"title":"AWS","sidebarTitle":"AWS","href":"/admin/deployment/oidc/aws"},{"title":"GCP","sidebarTitle":"GCP","href":"/admin/deployment/oidc/gcp"},{"title":"Azure","sidebarTitle":"Azure","href":"/admin/deployment/oidc/azure"}]}]},{"group":"Monitoring","pages":[{"title":"Usage Analytics","href":"/admin/monitoring/usage-analytics"},{"title":"Query History","href":"/admin/monitoring/query-history"},{"title":"Pre-Aggregations","href":"/admin/monitoring/pre-aggregations"},{"title":"Performance Insights","href":"/admin/monitoring/performance"},{"title":"Audit Log","href":"/admin/monitoring/audit-log"},{"title":"Chats History","href":"/admin/monitoring/chats-history"},{"title":"Analyzing data from Query History export","sidebarTitle":"Query History export","href":"/admin/monitoring/query-history-export"},{"group":"Monitoring Integrations","root":{"title":"Overview","href":"/admin/monitoring/monitoring-integrations/index"},"pages":[{"title":"Integration with Amazon CloudWatch","sidebarTitle":"AWS CloudWatch","href":"/admin/monitoring/monitoring-integrations/cloudwatch"},{"title":"Integration with Amazon S3","sidebarTitle":"Amazon S3","href":"/admin/monitoring/monitoring-integrations/s3"},{"title":"Integration with Datadog","sidebarTitle":"Datadog","href":"/admin/monitoring/monitoring-integrations/datadog"},{"title":"Integration with Google Cloud Storage","sidebarTitle":"Google Cloud Storage","href":"/admin/monitoring/monitoring-integrations/gcs"},{"title":"Integration with Grafana Cloud","sidebarTitle":"Grafana Cloud","href":"/admin/monitoring/monitoring-integrations/grafana-cloud"},{"title":"Integration with New Relic","sidebarTitle":"New Relic","href":"/admin/monitoring/monitoring-integrations/new-relic"}]},{"title":"Alerts","href":"/admin/monitoring/alerts"}]},{"group":"AI","pages":[{"title":"Overview","href":"/admin/ai/index"},{"title":"Rules","href":"/admin/ai/rules"},{"title":"Certified queries","href":"/admin/ai/certified-queries"},{"title":"Skills","href":"/admin/ai/skills"},{"title":"Memories","href":"/admin/ai/memory-isolation"},{"title":"Multi-agent","href":"/admin/ai/multi-agent"},{"title":"Bring Your Own Model","sidebarTitle":"Bring Your Own Model","href":"/admin/ai/bring-your-own-model"},{"title":"MCP Connectors","href":"/admin/ai/mcp-connectors"},{"title":"Evals","href":"/admin/ai/evals"}]},{"group":"Account","pages":[{"group":"Customization","pages":[{"title":"App theme","href":"/admin/customization/app-theme"},{"title":"Chart palettes","href":"/admin/customization/chart-palettes"},{"title":"Dashboard themes","href":"/admin/customization/dashboard-themes"}]},{"title":"Time zones","href":"/admin/time-zones"},{"title":"Pricing in Cube Cloud","sidebarTitle":"Pricing","href":"/admin/account-billing/pricing"},{"title":"AI Tokens","sidebarTitle":"AI Tokens","href":"/admin/account-billing/ai-tokens"},{"title":"API keys","href":"/admin/account-billing/api-keys"},{"title":"Billing FAQ","sidebarTitle":"Billing FAQ","href":"/admin/account-billing/billing-faq"},{"title":"Support in Cube Cloud","sidebarTitle":"Support","href":"/admin/account-billing/support"}]}]},{"tab":"Embedding","pages":[{"title":"Embedding","href":"/embedding"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference/data-modeling/cube"}]},{"tab":"Cube Core","pages":[{"title":"Cube Core","href":"/cube-core"}]},{"tab":"Recipes","pages":[{"title":"Recipes","href":"/recipes"}]},{"tab":"API","pages":[{"title":"API","href":"/api-reference/introduction"}]}]},"basePath":"","title":"Deployment environments - Cube Documentation","buildId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","deploymentId":"dpl_42LwxxU1kGN114H4XzwGYXa9ZDah","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-5Xwp92K7.js","DynamicMarkdown-BoyYAA8K.js","zoom-image-lightbox-DkE6VzSN.js","lightbox-handle-r17bVUz3.js"]}