---
title: Deployment environments
sidebarTitle: Deployment environments
description: Outlines production, staging, and per-developer environments and how they differ inside one Cube deployment.
---

Every Cube Cloud deployment provides a number of environments:
- A single [production environment](#production-environment).
- Multiple [staging environments](#staging-environments).
- Per-user [development environments](#development-environments).

## Production environment

This is the main environment. It runs the data model from the _main branch_.

### Availability

The production environment is _always available_ unless [suspended][ref-suspend].

### Resources and costs

Depending on the [deployment type][ref-deployment-types], the production environment
either runs on a Shared deployment or on a Dedicated deployment with [multiple API
instances][ref-api-instance-scalability], incurring [relevant
costs][ref-pricing-deployment-tiers].

### Cube version

Production environments run a [Cube version][ref-version] from the selected
[update channel][ref-version-channel].

## Staging environments

Staging environments are activated automatically for specific source code branches
when a branch is switched to in the Cube Cloud UI. Any [development mode][ref-dev-mode]
changes must be committed to a branch to be available in this environment.

### Availability

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.

<Frame>
  <img src="https://ucarecdn.com/e0dcce34-a53a-4087-b021-25dbaf730a92/" />
</Frame>

The same toggle is available in the [CLI][ref-cli] and the [Control Plane
API][ref-control-plane-api-staging], so it can be scripted, e.g. from CI:

```bash
cube data-model enable-branch DEPLOYMENT_ID BRANCH_NAME
cube data-model disable-branch DEPLOYMENT_ID BRANCH_NAME
```

### Resources and costs

Staging environments run on Shared deployments, incurring [relevant
costs][ref-pricing-deployment-tiers]. However, they automatically suspend after 10 minutes
of inactivity, regardless of the [availability](#availability) setting, so you are only
charged for the time when staging environments are being used.

### Cube version

Staging environments always run the _most up-to-date_ Cube version.

## Development environments

A development environment is activated automatically when a user enters the [development
mode][ref-dev-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.

### Availability

A development environment is only active and accessible while viewed by a user in the
development mode. Otherwise, queries to this environment will fail.

### Resources and costs

Development environments run on Shared deployments, incurring [relevant
costs][ref-pricing-deployment-tiers]. However, they automatically suspend after 10 minutes
of inactivity, so you are only charged for the time when development environments are
being used.

### Cube version

Development environments always run the _most up-to-date_ Cube version.

{/*

TODO:
Consumption? Resources? Move from  http://localhost:3000/product/deployment/cloud/deployments#resource-consumption

*/}

## API endpoints

Each environment provides its own set of API endpoints.

You can access them on the [**Overview** page][ref-overview] of your deployment
or by navigating to the **Integrations** page and [clicking **API
credentials**][ref-credentials].

<Frame>
  <img src="https://ucarecdn.com/36cdf2c0-311f-4023-b7ca-e156c6ac288b/" />
</Frame>


[ref-dev-mode]: /docs/data-modeling/dev-mode
[ref-deployment-types]: /admin/deployment/deployment-types
[ref-api-instance-scalability]: /admin/deployment/scalability#auto-scaling-of-api-instances
[ref-pricing-deployment-tiers]: /admin/account-billing/pricing
[ref-suspend]: /admin/deployment/auto-suspension
[ref-overview]: /admin/connect-to-data/visualization-tools
[ref-credentials]: /admin/connect-to-data/visualization-tools
[ref-version]: /admin/deployment#cube-version
[ref-version-channel]: /admin/deployment#update-channels
[ref-cli]: /reference/cli
[ref-control-plane-api-staging]: /reference/control-plane-api#buildapiv1deploymentsdeployment_idbranchesstaging-environment