Core concepts
Deployments & environments
Environments are isolated contexts in which your services run; deployments are the running instances of those services. Together they take a design from your laptop to production.
Environments
An environmentis an isolated context for running a project's services — for example a local environment for development and a remote one for production. Each environment holds its own configuration and its own set of deployments, so the same design can run in several places at once without interference.
Deployments
A deployment represents a running instance of a service in an environment. Deployments track:
- Status — one of
PENDING,RUNNING,FAILED,STOPPED, orSTOPPING. - Logs — output captured as the deployment starts and runs.
- Outputs — values a service produces once it is up, such as a connection string or a public URL.
- Environment variables — the configuration injected into the running service.
Outputs flow between services
A deployment's outputs can be referenced by other services. A database deployment can publish its connection URL, and a web app deployment can consume it — resolved at deploy time through the Dreambase API.Environment variables
A deployment's environment variables are computed from two sources, which Dreambase merges into a single effective set at deploy time and whenever an input changes:
- Connector-derived — when a service depends on another (a connectorfrom the dependent to the dependency), the dependency's outputs are mapped onto variable names. A web app connected to a database can receive a
DATABASE_URLfrom the database's connection-string output automatically. - User-provided (service-scoped)— variables you set directly on a service. These are defined per service, in addition to the design/environment variables, and are managed from the service's Env Vars tab in the node details panel.
User-provided variables override connectors
When the same key comes from both sources, the user-provided value wins. This lets you pin or override a connector-derived variable — for example, pointDATABASE_URL at an external database for one environment while leaving the connector in place.Service-scoped variables behave just like design/environment variables, with two switches:
- Single value — the same value in every environment, versus a distinct value set per environment.
- Sensitive — the value is encrypted at rest and masked in the UI and API responses.
A value can be a literal or a reference to a design/environment variable written as {{env.KEY}}, which is resolved for the deployment's environment when the effective set is computed. Whenever these variables change, Dreambase re-computes the effective set for the running deployment and emits a DEPLOYMENT_ENV_CHANGED event so the hosting service can apply the update.
Local vs. remote
Running a project locally deploys its services on your own machine — Docker-image services through Docker, codebase services from their repositories. Publishing to a remote environment hands each service to the appropriate platform service, which provisions and runs it in the cloud.
Insight at a glance
Whichever environment a deployment lives in, the app gives you quick insight into health, logs, and metricsacross all of a project's services. Health is kept current by the Monitoring service, which checks each deployment on a schedule and reports the result back into Dreambase.
Lifecycle events
Deployments emit events that platform services react to:DEPLOYMENT_CREATED and DEPLOYMENT_DELETED to provision or tear down infrastructure, DEPLOYMENT_STATUS_CHANGEDwhen a deployment's status changes (for example, an older deployment is marked STOPPED when a new one supersedes it), and DEPLOYMENT_ENV_CHANGED when its environment variables change — such as when a dependency publishes new outputs — so the service can apply them.