- Sphere Engine overview
- Compilers
- Overview
- API integration
- JavaScript widget
- Resources
- Problems
- Overview
- API integration
- JavaScript widget
- Handbook
- Resources
- Containers
- Overview
- API
- Workspaces
- Handbook
- RESOURCES
- Programming languages
- Modules comparison
- Webhooks
- Infrastructure management
- API changelog
- FAQ
Within Sphere Engine Containers, there are integrated mechanisms enabling the freezing and unfreezing of workspaces.
Introduction
Sometimes you may want to suspend the operations of a workspace without removing it. In such cases, you can choose to "freeze" the workspace. While frozen, the workspace retains its data but becomes inactive, making it unusable until you choose to "unfreeze" it.
Freezing the workspace also frees up the slots occupied by it, allowing those resources to be allocated elsewhere. You can unfreeze the workspace at any time to resume its normal functionality.
Below is a diagram of the life of the workspace when you use the freezing functionality. It shows the different states and the transitions between them.
Creating a freezable workspace
To enable the freezing feature for a workspace, adjust the max_inactivity_storage_time
parameter in the
workspace creation API method to a value greater
than 0
.
Important: Workspaces created with the default value of max_inactivity_storage_time
parameter or with
max_inactivity_storage_time = 0
cannot be frozen. The value of this parameter uses minutes as a unit and it is 0
by default.
curl -X POST -F "project_id=<project_id>" -F "max_inactive_storage_time=5" "https://<customer_id>.containers.sphere-engine.com/api/v1/workspaces?access_token=<access_token>"
Setting the max_inactivity_storage_time
parameter to a value of 5
will result in the workspace being frozen after
5
minutes of inactivity. In such a case, the workspace will be frozen but not removed.
You can also set an additional parameter, max_storage_time
, to specify the maximum lifespan of the workspace. This is
the maximum time after which the workspace will be removed. This parameter is also measured in minutes and is set to
0
by default, which means the workspace will not be removed.
curl -X POST -F "project_id=<project_id>" -F "max_inactive_storage_time=5" -F "max_storage_time=120" "https://<customer_id>.containers.sphere-engine.com/api/v1/workspaces?access_token=<access_token>"
This means that the workspace will be frozen after 5
minutes of inactivity and will be removed after 120 minutes,
regardless of whether it is frozen or not.
Freezing the workspace
Freezing the workspace can be accomplished by invoking the PUT
method on the endpoint
/api/v1/workspaces/<project_id>/stop
.
curl -X PUT "https://<customer_id>.containers.sphere-engine.com/api/v1/workspaces/<project_id>/stop?access_token=<access_token>"
Alternatively, you can manually freeze the workspace through the customer panel here. Simply click the stop button in the Actions column.
Unfreezing the workspace
To unfreeze the workspace it's enough for the end-user to re-enter it. Upon re-entry, the workspace will be restored to its state before freezing occurred.
Involved workspace parameters
There are three parameters of the workspace that affect the behavior of the freezing mechanism:
max_inactive_storage_time
- the maximum time for which the workspace will be stored as freezed,max_storage_time
- the maximum time after which the workspace will be unconditionally removed,inactivity_timeout
- the time after which the inactive workspace will be either frozen or removed.