App Environments

What "environments" are, and how do we use them

There is an administrator backend, database, and app for a number of different environments. An environment is therefore just an instance of the app and its backend with isolated data so that one environment does not affect another.

Environments

Production

The Production environment is the one used normally by users and the municipality app admin staff.

We don't include the environment name "production" in communication with users, e.g. in the app itself, since users do not need to be aware of the notion of environments.

Sandbox

The Sandbox environment is ought to be kept as similar to production as possible - that means changes deployed to production should also be deployed to sandbox as soon as possible.

It is intended to be used for training new staff, and for staff to be able to practice operations without having an effect on the broader user base - e.g. sending notifications.

Staging

The staging environment is intended for testing functionality that needs to be tested in a very realistic environment - fully deployed to the internet. e.g. when services on the internet will need to be able to connect to a running instance of the backend. It is primarily intended to be used by developers, who might sometimes ask municipality staff to try functionality out in the staging environment.

That means that the staging environment is sometimes not as stable as production. Data might be lost when the database is reset back to a demonstration state after some destructive upgrades.

Development

Development environment usually refers to the app on a developer's computer where they are actively modifying code and experimenting with functionality.

Last updated