Spaces
All applications must exist in a space, spaces provide a network level isolation for a group of applications, in addition they allow developer to set "space-level" environment variables that are included in every app that is launched in the space. This can be useful for network discovery of other applications, low latency isolation between related apps, to provide a secure boundary for dev, qa, etc environments and allow for auto-discovery of other services through space-level environment variables.
Note that services in on space may not be attached to services in a seperate space, in addition there is a "default" space that provides a global area if an app has no need for inter-app communication. Spaces are regional, meaning a specific space may not have applications in seperate regions within the same space.
Create Space
POST /spaces
Name | Type | Description | Example |
---|---|---|---|
name | required string | Unique short name (less than 12 characters), alpha numeric name | perf-dev-us |
description | optional string | A description of the space | Performance Devleopment in the US Region |
compliance | optional array | An array of compliance limitations | ["socs","prod"] or ["dev"] |
stack | optional string | The stack to place this space in (see stacks). | ds1 |
CURL Example
curl \
-H 'Authorization: ...' \
-X POST \
-d '{"name":"perf-dev-us","description":"Performance dev in US", "stack":"ds1"}'
https://apps.akkeris.io/spaces
201 "Created" Response
{
"compliance": [
"socs",
"pci"
],
"created_at": "2016-07-26T16:10:50.391Z",
"id": "3911c0ec-e967-4497-8db5-54a52c5174b4",
"name": "default",
"region": {
"id": "7edbac4b-6a5e-09e1-ef3a-08084a904621",
"name": "us-seattle"
},
"stack": {
"id": "77d8c44b-6a5e-09e1-ef3a-08084a904622",
"name": "ds1"
},
"state": "allocated",
"updated_at": "2016-07-26T16:10:53.114Z"
}
Update Spaces
Update the compliance or description for a space.
PATCH /spaces/{space_id_or_name}
CURL Example
curl \
-H 'Authorization: ...' \
-X PATCH \
https://apps.akkeris.io/spaces/default \
-d '{"compliance":["socs","canary"]}'
200 "OK" Response
[
{
"compliance": [
"socs",
"canary"
],
"created_at": "2016-07-26T15:47:05.126Z",
"id": "3911c0ec-e967-4497-8db5-54a52c5174b4",
"name": "default",
"region": {
"id": "7edbac4b-6a5e-09e1-ef3a-08084a904621",
"name": "us-seattle"
},
"stack": {
"id": "77d8c44b-6a5e-09e1-ef3a-08084a904622",
"name": "ds1"
},
"state": "allocated",
"updated_at": "2016-07-26T15:47:07.267Z"
}
...
]
List Spaces
Retrieves a list of all of the active/available spaces.
GET /spaces
CURL Example
curl \
-H 'Authorization: ...' \
-X GET \
https://apps.akkeris.io/spaces
200 "OK" Response
[
{
"compliance": [
"socs",
"pci"
],
"created_at": "2016-07-26T15:47:05.126Z",
"id": "3911c0ec-e967-4497-8db5-54a52c5174b4",
"name": "default",
"region": {
"id": "7edbac4b-6a5e-09e1-ef3a-08084a904621",
"name": "us-seattle"
},
"stack": {
"id": "77d8c44b-6a5e-09e1-ef3a-08084a904622",
"name": "ds1"
},
"state": "allocated",
"updated_at": "2016-07-26T15:47:07.267Z"
}
...
]
Get Space Info
Retrieves info on a specific space.
GET /spaces/{space}
CURL Example
curl \
-H 'Authorization: ...' \
-X GET \
https://apps.akkeris.io/spaces/default
200 "OK" Response
{
"compliance": [
"socs",
"pci"
],
"created_at": "2016-07-26T15:47:05.126Z",
"id": "3911c0ec-e967-4497-8db5-54a52c5174b4",
"name": "default",
"region": {
"id": "7edbac4b-6a5e-09e1-ef3a-08084a904621",
"name": "us-seattle"
},
"stack": {
"id": "77d8c44b-6a5e-09e1-ef3a-08084a904622",
"name": "ds1"
},
"state": "allocated",
"updated_at": "2016-07-26T15:47:07.267Z"
}