- Sphere Engine overview
- Compilers
- Overview
- API
- Widgets
- Resources
- Problems
- Overview
- API
- Widgets
- Handbook
- Resources
- Containers
- Overview
- Glossary
- API
- Workspaces
- Handbook
- Resources
- RESOURCES
- Programming languages
- Modules comparison
- Webhooks
- Infrastructure management
- API changelog
- FAQ
Important: To successfully complete this tutorial, you need to have an active Sphere Engine account with a dedicated API endpoint and API token. Register for a Sphere Engine account by filling in the sign-up form. Create your Sphere Engine account here.
This tutorial will show you how to start using workspaces.
The diagram below illustrates how the starting workspace flow works. It is divided into two stages. First, you have to create a workspace using our API. Next, you must pass the workspace data into a JavaScript snippet that renders the workspace in your application.
Step 1: Logging in to the panel
After creating your account and successfully logging in, you will be redirected to the client's dashboard.
Step 2: Select a project from list
Select the Project ID
of the first project from the Projects list.
Step 3: Copy access token
To call any API method, you need to be authenticated with an access_token
that you can generate in
the token manager section of the
Sphere Engine client panel.
Step 4: Start a workspace using API
The following example shows how to call the API method responsible for creating a new workspace using the curl
command. Now, we can call the API method in the following way:
curl -X POST \
-F "project_id=__PUT_HERE_PROJECT_ID__" \
"https://<customer_id>.containers.sphere-engine.com/api/v1/workspaces?access_token=<access_token>"
The response from the API call will be a objects which represents a starting workspace, for example:
{
"message": "Workspace has been created",
"workspace": {
"id": "48dba362e85e4aebac3dc8e6b0677ff7",
"project": {
"id": "eef024c1d14f46319517a65edafb5ee3",
"name": "EXAMPLE"
},
"created_at": "2021-01-01 10:20:37 +0000",
"terminated_at": null,
"last_usage": null,
"inactivity_timeout": 15,
"workspace_token": "73543c2d-3476-46ee-a49c-227f59181961",
"workspace_token_required": true,
"state": {
"code": 1,
"name": "starting",
"error_reason": null
},
"auto_resume": true,
"workspace_init_failed": false,
"streams": {
"workspace_init_output": null,
"workspace_init_error": null
},
"retention_time_stopped": 0,
"retention_time_total": 0,
"permissions": {
"enter": true,
"remove": false,
"stop": false
},
"config": "{content of the configuration}",
"workspace_url": "https://<endpoint>/workspace/48dba362e85e4aebac3dc8e6b0677ff7"
}
}
Step 5: Embed a workspace in your application
The code responsible for workspace initialization should be inserted only once, immediately after the <body>
element.
<script>(function(d, s, id){
SE_BASE = "<customer_id>.containers.sphere-engine.com";
SE_HTTPS = true;
SE = window.SE || (window.SE = []);
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = (SE_HTTPS ? "https" : "http") + "://" + SE_BASE + "/static/sdk/sdk.min.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, "script", "sphere-engine-jssdk"));
SE.ready = function(f) {
if (document.readyState != "loading" && document.readyState != "interactive") f();
else window.addEventListener("load", f);
};
</script>
The following code should be inserted on the page in the spot where you want the workspace to be displayed:
<div class="se-workspace" data-workspace="__PUT_HERE_WORKSPACE_ID_FROM_JSON_RESPONSE__"></div>