Service API¶
Introduction¶
Sesam provides a RESTful API for controlling the service and for working with the data in the datahub.
If you follow the Getting started guide, the api will be served on the url you find on the
management studio “settings” page under the “Connection url” heading. For a cloud instance it will typically be on
the form https://instance-guid.sesam.cloud/api
.
All references to this URL in this document should be substituted with the real URL for your Sesam instance. The rest of this document will assume that the api can be found on this URL.
The API documentation is also self-hosted and can be explored using the Swagger user interface at “<host:port>/api/reference”.
Most API calls will require you to authenticate using a JWT token .
You can also use a commandline tool like curl or wget to explore the API. This will be the most useful approach if you are planning to communicate with Sesam using a script or a program.
When using curl
to access the API url’s directly, you will need to supply the JWT token for each HTTP request.
Here’s an example that creates an alias
for curl that does this for you (remember to change the example URL to your
real sesam instance URL):
# Create a text-file with the email and password you use to log in to Sesam:
echo "email=YOUR_EMAIL_ADDRESS&password=YOUR_PASSWORD" > cred.txt
# Download the authorization token for the specified email and password and store it in an environment variable:
export SESAM_AUTH_HEADER="Authorization: Bearer $(curl -d @cred.txt https://instance-guid.sesam.cloud/api/jwt)"
# Make an alias to run curl with the authorization token:
alias curlJWT='curl -H "$SESAM_AUTH_HEADER"'
You can then substitute curl
with curlJWT
in all calls to the API. The rest of this document assumes that
you have created this alias.
Note that if you are communicating with the API using your own program or script, you must remember to set the HTTP header property “Authorization” to the string “Bearer ” concatenated with the token you get from the command:
curl -d @cred.txt https://instance-guid.sesam.cloud/api/jwt
This was built-in to the shell script snippet we used to set up the culrJWT
alias previously; the
“cred.txt” file contains the text “email=YOUR_EMAIL_ADDRESS&password=YOUR_PASSWORD” without the quotes and substituted
with your real username and password. For security reasons, remember to remove the cred.txt
file after you have
retrieved the JWT token.
The most important api urls are:
/api/pipes
(i.e. https://instance-guid.sesam.cloud/api/pipes
)
This returns a list of pipes. For an explanation of what a pipe is, read the Pipes concept definition.
/api/datasets
(i.e. https://instance-guid.sesam.cloud/api/datasets
)
This returns a list of datasets. (For an explanation of what a dataset is, read the Datasets concept definition).
For a full description of the /pipes and /datasets endpoint, read the “Pipes” and “Dataset” sections in the Instance API Reference.
Examples¶
In the following we will go through a few examples of what you can do with the api. As mentioned previously, we will use
the curlJWT
alias we created to interact with the api from the command line. If you are using MS Windows you can
install for instance Cygwin in order to install and use the curl command (and create the curlJWT
alias).
Get information about one specified pipe¶
To only get one specific pipe, add the pipe’s “_id” attribute to the pipes-url. To get the pipe with the _id “Northwind:Products”, you would do this:
With curl:
curlJWT https://instance-guid.sesam.cloud/api/pipes/Northwind:Products
Run operations on a pipe¶
A pipe typically has a number of operations that can be triggered via the api. These are listed in the pipeinfo[“runtime”][“supported-operations”] attribute. A typical value looks like this:
"supported-operations": [
"enable",
"disable",
"start",
"stop"
]
These operations are triggered by sending a POST-request to the url /pipes/{pipeID}/pump. For example: to disable the “Northwind:Products” pipe you would do this:
With curl:
curlJWT --data operation=disable https://instance-guid.sesam.cloud/api/pipes/Northwind:Products/pump
To manually start the pipe’s pump, you would do this:
With curl:
curlJWT --data operation=start https://instance-guid.sesam.cloud/api/pipes/Northwind:Products/pump
sesam start-pump Northwind:Products --server_base_url https://instance-guid.sesam.cloud/api
To stop a running pump, you would do this:
With curl:
curlJWT --data operation=stop https://instance-guid.sesam.cloud/api/pipes/Northwind:Products/pump
Get information about one specific dataset¶
To only get one specific dataset, add the dataset’s “_id” attribute to the dataset-url. To get the dataset with the _id “Northwind:Products”, you would do this:
With curl:
curlJWT https://instance-guid.sesam.cloud/api/datasets/Northwind:Products
Get the content of the dataset¶
To see the entities in the dataset, add “/entities?limit=3” to the dataset’s url, like this:
With curl:
curlJWT https://instance-guid.sesam.cloud/api/datasets/Northwind:Products/entities?limit=3
The “limit” parameter limits the number of returned entities to a managable number. Without this parameter, all the entities in the dataset would be returned. Depending on the size of the dataset, that could take a while, so it is generally a good idea to include a “limit”-parameter.
Instance API Reference¶
- GET /models¶
EXPERIMENTAL: Returns a list of all the models
- Query Parameters
effective (boolean) – If true then implict and explicit models will be merged in the response.
verbose (boolean) – If false then only the id and name of the models and entity types will be returned
with_property (string) – If specified with a property name, returns all models that the property use.
- Status Codes
200 OK – An array of models
- Response JSON Object
[] (object) –
- POST /models¶
EXPERIMENTAL: Adds one or more models to the list of models
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Request JSON Object
[] (object) –
- Status Codes
200 OK – An array of models
- Response JSON Object
[] (object) –
- GET /models/{model_id}¶
EXPERIMENTAL: Returns the specified model
- Parameters
model_id (string) – The id of the model
- Query Parameters
effective (boolean) – If true then implict and explicit models will be merged in the response.
verbose (boolean) – If false then only the id and name of the model and entity types will be returned
- Status Codes
200 OK – The model
- DELETE /models/{model_id}¶
EXPERIMENTAL: Deletes the specified model
- Parameters
model_id (string) – The id of the model
- Status Codes
200 OK – OK
- GET /models/{model_id}/{entity_type_id}¶
EXPERIMENTAL: Returns the specified entity type in a model
- Parameters
model_id (string) – The id of the model
entity_type_id (string) – The id of the entity type
- Query Parameters
effective (boolean) – If true then implict and explicit models will be merged in the response.
- Status Codes
200 OK – The entity type
- GET /pipes¶
Returns a list of all the pipes
- Query Parameters
verbose (boolean) – When set to true the pipe information will be more verbose.
fields (array) – Specify which top-level keys in the pipe objects to return/omit.
- Status Codes
200 OK – An array of pipes
- Response JSON Object
[]._id (string) – (required)
[].cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
[].cached_response_info.timestamp (string) – The date and time the information was cached. (required)
[].config.effective._id (string) – (required)
[].config.effective.principals[] (string) –
[].config.effective.pump (object) – (required)
[].config.effective.sink.dataset (string) –
[].config.effective.sink.type (string) – (required)
[].config.effective.source.dataset (string) –
[].config.effective.source.type (string) – (required)
[].config.effective.type (string) – (required)
[].config.original._id (string) – (required)
[].config.original.metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
[].config.original.type (string) – (required)
[].runtime.config-errors[].elements (string) – The JSON path of the json element in the configuration that caused the error. (required)
[].runtime.config-errors[].level (string) – The severity-level of the error. (required)
[].runtime.config-errors[].msg (string) – A human-readable description of the error. (required)
[].runtime.dependencies[] (string) –
[].runtime.is-disabled (boolean) –
[].runtime.is-running (boolean) – (required)
[].runtime.is-valid-config (boolean) – (required)
[].runtime.queues (object) –
- POST /pipes¶
Creates one or more pipes
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Request JSON Object
[]._id (string) – (required)
[].metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
[].type (string) – (required)
- Status Codes
200 OK – An array containing the new pipes
- Response JSON Object
[]._id (string) – (required)
[].cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
[].cached_response_info.timestamp (string) – The date and time the information was cached. (required)
[].config.effective._id (string) – (required)
[].config.effective.principals[] (string) –
[].config.effective.pump (object) – (required)
[].config.effective.sink.dataset (string) –
[].config.effective.sink.type (string) – (required)
[].config.effective.source.dataset (string) –
[].config.effective.source.type (string) – (required)
[].config.effective.type (string) – (required)
[].config.original._id (string) – (required)
[].config.original.metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
[].config.original.type (string) – (required)
[].runtime.config-errors[].elements (string) – The JSON path of the json element in the configuration that caused the error. (required)
[].runtime.config-errors[].level (string) – The severity-level of the error. (required)
[].runtime.config-errors[].msg (string) – A human-readable description of the error. (required)
[].runtime.dependencies[] (string) –
[].runtime.is-disabled (boolean) –
[].runtime.is-running (boolean) – (required)
[].runtime.is-valid-config (boolean) – (required)
[].runtime.queues (object) –
- GET /pipes/{pipe_id}¶
Returns the specified pipe
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
fields (array) – Specify which top-level keys in the pipe object to return/omit.
- Status Codes
200 OK – The pipe
- Response JSON Object
_id (string) – (required)
cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
cached_response_info.timestamp (string) – The date and time the information was cached. (required)
config.effective._id (string) – (required)
config.effective.principals[] (string) –
config.effective.pump (object) – (required)
config.effective.sink.dataset (string) –
config.effective.sink.type (string) – (required)
config.effective.source.dataset (string) –
config.effective.source.type (string) – (required)
config.effective.type (string) – (required)
config.original._id (string) – (required)
config.original.metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
config.original.type (string) – (required)
runtime.config-errors[].elements (string) – The JSON path of the json element in the configuration that caused the error. (required)
runtime.config-errors[].level (string) – The severity-level of the error. (required)
runtime.config-errors[].msg (string) – A human-readable description of the error. (required)
runtime.dependencies[] (string) –
runtime.is-disabled (boolean) –
runtime.is-running (boolean) – (required)
runtime.is-valid-config (boolean) – (required)
runtime.queues (object) –
- DELETE /pipes/{pipe_id}¶
Deletes the specified pipe
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
- GET /pipes/{pipe_id}/config¶
Returns the configuration of the specified pipe
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – The pipe configuration
- Response JSON Object
_id (string) – (required)
metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
type (string) – (required)
- PUT /pipes/{pipe_id}/config¶
Updates the configuration of the specified pipe
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Request JSON Object
_id (string) – (required)
metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
type (string) – (required)
- Status Codes
200 OK – The updated pipe
- Response JSON Object
_id (string) – (required)
cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
cached_response_info.timestamp (string) – The date and time the information was cached. (required)
config.effective._id (string) – (required)
config.effective.principals[] (string) –
config.effective.pump (object) – (required)
config.effective.sink.dataset (string) –
config.effective.sink.type (string) – (required)
config.effective.source.dataset (string) –
config.effective.source.type (string) – (required)
config.effective.type (string) – (required)
config.original._id (string) – (required)
config.original.metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
config.original.type (string) – (required)
runtime.config-errors[].elements (string) – The JSON path of the json element in the configuration that caused the error. (required)
runtime.config-errors[].level (string) – The severity-level of the error. (required)
runtime.config-errors[].msg (string) – A human-readable description of the error. (required)
runtime.dependencies[] (string) –
runtime.is-disabled (boolean) –
runtime.is-running (boolean) – (required)
runtime.is-valid-config (boolean) – (required)
runtime.queues (object) –
- GET /pipes/{pipe_id}/entities¶
Returns the entities produced by the specified pipe
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
since (string) – Specifies the minimum since-value.
stage (string) – Can be set to ‘source’, ‘before-transforms’, ‘after-transforms’ or ‘sink’ (default). ‘source’ returns entities as they come out of the source. ‘before-transforms’ returns entities as they are fed into the first transform. ‘after-transforms’ return entities as they look after the last transform. ‘sink’ returns entities as they look as they enter the sink.
- Status Codes
200 OK – The entities
- Response JSON Object
[]._id (string) – (required)
- GET /pipes/{pipe_id}/log¶
Returns the entities in the execution log dataset
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
since (integer) – An opaque value that can be used to efficiently skip already seen entities.
history (boolean) – If this is true (the default) all entities, including replaced ones, will be returned. If this is false, only the latest version of the entities will be returned
reverse (boolean) – If this is false (the default) the entities will be returned from the start of the dataset log. If this is true, the entities will be returned from the end of the dataset log instead
deleted (boolean) – If this is true (the default) the entities marked as deleted will also be returned from the dataset log. If this is false, the entities that are marked as deleted will not included in result. If you request the complete history the deletes will always be included.
- Status Codes
200 OK – The entities
- Response JSON Object
[]._id (string) – (required)
[]._updated (integer) – The dataset offset of this entity. (required)
- GET /pipes/{pipe_id}/generate-schema-definition¶
Returns info about the schema of the entities processed by the pipe
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
sample_size (integer) – Specifies the number of entities to sample from the source
keys_only (boolean) – Specifies if only the array of keys should returned, or the whole schema
- Status Codes
200 OK – OK
- GET /pipes/{pipe_id}/pump¶
Returns info about the pump of the specified pipe
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – The pump
- POST /pipes/{pipe_id}/pump¶
Runs some operation on the pump. The operation is specified by the ‘operation’ form parameter in the request.
The following operations exists:
“start”:
Starts a new run of the pump. A pump is typically run automatically at scheduled intervals, but with this operation a pump can be started manually.
“start-rescan”:
Starts a new rescan, unless a rescan is already running.
“stop”:
Stops the pump, if it is running (both rescans and normal pump runs are stopped). If the pump is not running, this operation has no effect.
“enable”:
Enables the pump. This means that the pump can be run automatically by the system (usually on some fixed schedule).
“disable”:
Disables the pump. This means that the pump cannot be run automatically by the system. Note that it is still possible to start the pump manually with the “start”-operation.
“update-last-seen”:
Updates the “last-seen” value of the pump. This is the value the pump uses to figure out at which point in the source-data it stopped at its last run. The format of the “last-seen” form parameter depends on the source-system. It could be a date, and it could be some opaque binary value.
To clear the “last-seen” value of the pump, set the “last-seen” form parameter to an empty string. This will make the pump behave as if it was running for the first time. This is useful in cases where one wants to reprocess the data from scratch for some reason.
“set-last-seen-to-end”:
Updates the “last-seen” value of the pump such that the pump thinks that it has seen all the source-data. Not all source-types supports this operation. NOTE: Doing this may result in data-loss, since any unread entities in the source will not be read. But it is sometimes useful during development and testing; for instance when one has a huge existing source-dataset, but only want to run the pipe against new entities.
“reset-tracking” (EXPERIMENTAL):
Resets the dependency tracking so that it will continue starting from the end of dependent datasets. NOTE: It is not safe to use this operation while the pipe is running.
Note that tracking will continue from what is the end of the datasets at the point in time when the pump runs, not the time at which this call is made.
Note that dependency tracking will then be skipped for untracked offsets, causing the output to be potentially incorrect. Use this feature only during development, or when you intend to do a full sync soon after the reset.
“reset-rescan”:
Make the next rescan runs start from the beginning of the source-dataset, even if the last rescan was interrupted before it finished. (Normally, if the last rescan run was interrupted, the next rescan run will resume from where the interrupted rescan run got to).
“discard-retries”:
Writes a ‘pump-discard-retries’ entity to the pipe execution log. This will make the pump ignore any pending retries due to write-errors on the next run, in effect discarding any retries of these previously failed entities. Note that such discarded retryable entities are not written to the dead-letter dataset.
“discard-inferred-schema”:
Deletes any accumulated inferred schema information for the pipe. Note: you would normally reset the pipe after doing this. This operation is useful for pipes that doesn’t support continuation as these pipes don’t automatically delete the inferred schema on reset.
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – The pump
- POST /pipes/{pipe_id}/webhook¶
Schedules the pump of the pipe to run. The json body must include a “token” property that must match the token generated by the pipe when it registered the webhook. If not, it will throw a 404 error which will in turn unregister the webhook on the sender side.
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
404 Not Found – Unknown webhook or pipe
- GET /pipes/{pipe_id}/entity-types/source¶
Returns the pipe’s source entity type
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
- GET /pipes/{pipe_id}/entity-types/sink¶
Returns the pipe’s sink entity type
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
- GET /datasets¶
Returns a list of all the datasets
- Query Parameters
verbose (boolean) – When set to true the dataset information will be more verbose.
- Status Codes
200 OK – An array of datasets
- Response JSON Object
[]._id (string) – (required)
[].cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
[].cached_response_info.timestamp (string) – The date and time the information was cached. (required)
- GET /datasets/{dataset_id}¶
Returns the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Status Codes
200 OK – The dataset
- Response JSON Object
_id (string) – (required)
cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
cached_response_info.timestamp (string) – The date and time the information was cached. (required)
- DELETE /datasets/{dataset_id}¶
Deletes the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Status Codes
200 OK – OK
- POST /datasets/{dataset_id}¶
Performs some operation on the specified dataset. The operation to do is specified with the “operation” form parameter. Supported operations are “rollback-circuit-breaker” and “commit-circuit-breaker”.
- Parameters
dataset_id (string) – The id of the dataset
- Status Codes
200 OK – OK
- GET /datasets/{dataset_id}/entities¶
Returns the entities in the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Query Parameters
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
since (integer) – An opaque value that can be used to efficiently skip already seen entities.
history (boolean) – If this is true (the default) all entities, including replaced ones, will be returned. If this is false, only the latest version of the entities will be returned
reverse (boolean) – If this is false (the default) the entities will be returned from the start of the dataset log. If this is true, the entities will be returned from the end of the dataset log instead
deleted (boolean) – If this is true (the default) the entities marked as deleted will also be returned from the dataset log. If this is false, the entities that are marked as deleted will not included in result. If you request the complete history the deletes will always be included.
populated (boolean) – If this is true the response will be 404 if the dataset has not yet been populated. It is not enough for the dataset to have data, but the data that’s there must reflect a complete view of the dataset’s source. In other words; the dataset must be fully populated. In practice this means that the pipe that populates the dataset has not yet had a complete full run. Normally 404 is only returned when the dataset does not exist.
uncommitted (boolean) – If true then the response may include uncommitted entities. This is only relevant if the pipe that writes to the dataset have a circuit breaker enabled. Use this for debugging purposes only.
subset (string) – If specified then the specified JSON encoded subset expression will be used to retrieve entities from a dataset subset. If the subset does not exist, then 404 is returned.
- Status Codes
200 OK – The entities
- Response JSON Object
[]._id (string) – (required)
[]._updated (integer) – The dataset offset of this entity. (required)
- POST /datasets/{dataset_id}/entities¶
Puts the specified entities into the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Query Parameters
force (boolean) – If ‘false’, then the hashes of the posted entity and the previous version will be compared before storing the entity. The entity will not be written to the dataset if the hashes are the same. If ‘true’, then the entity will always be written to the dataset. The default is ‘false’.
- Status Codes
200 OK – OK
- GET /datasets/{dataset_id}/entities/{rest_of_path}¶
Deprecated. Use the /entity endpoint. Returns the specified entity in the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
rest_of_path (string) – The id of the entity
- Query Parameters
subset (string) – If specified then the specified JSON encoded subset expression will be used to retrieve the entity from a dataset subset. If the subset does not exist, then 404 is returned.
- Status Codes
200 OK – The entity
- Response JSON Object
_id (string) – (required)
_updated (integer) – The dataset offset of this entity. (required)
- GET /datasets/{dataset_id}/entity¶
Returns the specified entity in the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Query Parameters
entity_id (string) – The id of the entity
subset (string) – If specified then the specified JSON encoded subset expression will be used to retrieve the entity from a dataset subset. If the subset does not exist, then 404 is returned.
offset (integer) – Look up the entity id at this specific offset in the dataset. If it is not there, or there is another entity at that offset, then 404 is returned.
uncommitted (boolean) – If true then the response may include uncommitted entities. This is only relevant if the pipe that writes to the dataset have a circuit breaker enabled.
- Status Codes
200 OK – The entity
- Response JSON Object
_id (string) – (required)
_updated (integer) – The dataset offset of this entity. (required)
Returns a sdshare collection feed for the entities in the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Status Codes
200 OK – OK
Returns a sdshare fragments feed for the entities in the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Status Codes
200 OK – OK
Returns a sdshare fragment for the specified entity in the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
rest_of_path (string) – The id of the entity-id
- Status Codes
200 OK – OK
- GET /datasets/{dataset_id}/indexes¶
Returns the indexes on the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
- Status Codes
200 OK – The indexes of the dataset.
- Response JSON Object
[] (object) –
- DELETE /datasets/{dataset_id}/indexes/{index_int_id}¶
Deletes the specified dataset
- Parameters
dataset_id (string) – The id of the dataset
index_int_id (integer) – The index integer id
- Status Codes
200 OK – OK
- GET /datasets/{dataset_id}/generate-schema-definition¶
Returns info about the schema of the entities in the dataset
- Parameters
dataset_id (string) – The id of the dataset
- Query Parameters
sample_size (integer) – Specifies the number of entities to sample from the dataset
keys_only (boolean) – Specifies if only the array of keys should returned, or the whole schema
- Status Codes
200 OK – OK
- GET /config¶
Returns the all configuration of the node in the default (i.e empty) config-group. The config is returned as an array of json objects, or as a zip-archive, depending on the value of the ‘Accepts’ header.
- Status Codes
200 OK – The configuration
- Response JSON Object
[]._id (string) – (required)
[].type (string) – (required)
- PUT /config¶
Overwrites all configuration of the node in the default (i.e empty) config-group.
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Status Codes
200 OK – OK
- GET /config/{config-group}¶
Returns all configuration that has been tagged by by the specified config-group.
- Parameters
config-group (string) – The id of the config-group to get the config from.
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Status Codes
200 OK – The configuration
- Response JSON Object
[]._id (string) – (required)
[].type (string) – (required)
- PUT /config/{config-group}¶
Overwrites all configuration that has been tagged by the specified config-group’.
- Parameters
config-group (string) – The id of the config-group to post the config to.
- Status Codes
200 OK – OK
- GET /config-history/entity¶
Returns all configuration history for a specific config entity
- Query Parameters
entity_id (string) – The id of the entity
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
since (integer) – An opaque value that can be used to efficiently skip already seen entities.
reverse (boolean) – If this is false (the default) the entities will be returned from the start of the dataset log. If this is true, the entities will be returned from the end of the dataset log instead
- Status Codes
200 OK – The configuration history for the config entity
- Response JSON Object
[]._id (string) – (required)
[].type (string) – (required)
- GET /¶
- Query Parameters
aggregated (boolean) – If set to false then the response will not be aggregated.
- Status Codes
200 OK – OK
- Response JSON Object
status.git-revision (string) – This is an internal value that refers to the git revision that was used to build this version of the sesam portal.
status.teamcity-buildnumber (string) – This is an internal value that refers to the build-job that produced this version of the sesam portal.
- POST /env¶
Adds a variable or list of variables to the environment variable manager. If a variable already exists, it is overwritten.
- Status Codes
200 OK – OK
- PUT /env¶
Adds a variable or list of variables to the environment variable manager. If a variable already exists, it is overwritten.
- Status Codes
200 OK – OK
- PATCH /env¶
Adds a variable or list of variables to the environment variable manager. If a variable already exists, it is overwritten.
- Status Codes
200 OK – OK
- DELETE /env/{env_var}¶
Deleted the specified environment variable.
- Parameters
env_var (string) – The name of the environment variable to delete
- Status Codes
200 OK – OK
- PUT /secrets¶
Adds the secrets specified in the payload. The payload must be a JSON object where the keys are the secret names and the values are the secret values. If a secret already exists, it is overwritten.
- Status Codes
200 OK – OK
- POST /secrets¶
Adds the secrets specified in the payload. The payload must be a JSON object where the keys are the secret names and the values are the secret values. If a secret already exists, it is overwritten. Existing secrets are not deleted.
- Status Codes
200 OK – OK
- DELETE /secrets/{secret_key}¶
Deleted the specified secret.
- Parameters
secret_key (string) – The name of the secret to delete
- Status Codes
200 OK – OK
- GET /health¶
Sesam api health information
- Status Codes
200 OK – OK
503 Service Unavailable – The sesam-node isn’t feeling well.
- PUT /license¶
Upload a new license key. The new license will replace the old license if valid.
- Status Codes
200 OK – OK
- GET /namespaces¶
Returns the service’s namespaces (includes default namespaces)
- Status Codes
200 OK – OK
- GET /metadata¶
Returns the service metadata
- Status Codes
200 OK – OK
- Response JSON Object
[] (object) –
- PUT /metadata¶
Updates the service metadata
- Status Codes
200 OK – OK
- Response JSON Object
[] (object) –
- DELETE /metadata¶
Deletes all service metadata
- Status Codes
200 OK – OK
- Response JSON Object
[] (object) –
publisher endpoint sdshare collection feed
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
publisher endpoint sdshare fragments feed
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/entities¶
publisher endpoint json entities
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/entities/{filename}¶
publisher endpoint json entities - filename in url version
- Parameters
pipe_id (string) – The id of the pipe
filename (string) – The filename to use as attachment filename
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/csv¶
publisher csv endpoint
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
linked_excel_file (string) – Instead of returning a CSV file, return a Excel file with a “connection” link to the original CSV URL. This parameter contains the filename to use.
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/csv/{filename}¶
publisher csv endpoint - filename in url version
- Parameters
pipe_id (string) – The id of the pipe
filename (string) – The filename to use as attachment filename
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
linked_excel_file (string) – Instead of returning a CSV file, return a Excel file with a “connection” link to the original CSV URL. This parameter contains the filename to use.
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/excel¶
publisher excel endpoint
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/excel/{filename}¶
publisher excel endpoint - filename in url version
- Parameters
pipe_id (string) – The id of the pipe
filename (string) – The filename to use as attachment filename
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/xml¶
publisher xml endpoint
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
- GET /publishers/{pipe_id}/xml/{filename}¶
publisher xml endpoint - filename in url version
- Parameters
pipe_id (string) – The id of the pipe
filename (string) – The filename to use as attachment filename
- Query Parameters
since (string) – Specifies the minimum since-value.
limit (integer) – Specifies the maximum number of entities to return. If this is not specified, all available entities are returned..
- Status Codes
200 OK – OK
Returns the shareable links that have been created for this publisher
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
- Response JSON Object
[] (any) – A shareable link to a publisher endpoint.
Create a new shareable link for this publisher
- Parameters
pipe_id (string) – The id of the pipe
- Status Codes
200 OK – OK
Deletes the specified shareable link
- Parameters
pipe_id (string) – The id of the pipe
shareable_link_id (string) – The id of the shareable link
- Status Codes
200 OK – OK
Sesam api receiver endpoint - uses the SDShare Push protocol. Pushes n-triples to the named pipe. This is only supported for pipes that have an ‘http_endpoint’ source.
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
resource (string) – Specifies the root resources
- Status Codes
200 OK – OK
- POST /receivers/{pipe_id}/entities¶
Sesam api receiver endpoint - uses the JSON Push protocol. Pushes JSON entities to the named pipe. This is only supported for pipes that have an ‘http_endpoint’ source.
- Parameters
pipe_id (string) – The id of the pipe
- Query Parameters
sequence_id (string) – A string token that is generated every time the data sync is started. Included in all requests.
is_full (boolean) – A boolean. Has the value true if this is a full data sync, and false if not. Included in all requests. The default value is false.
request_id (string) – A string token that is generated for every request. Included in all requests.
previous_request_id (string) – A string token referencing the request_id of the previous request. Included in all but the first request.
is_first (boolean) – A boolean. Included in the first request with the value true.
is_last (boolean) – A boolean. Included in the last request with the value true.
- Status Codes
200 OK – OK
- Response JSON Object
common_ancestor_entity (any) –
existing_entity (any) –
input_entity (any) –
updated_entity (any) –
- GET /systems¶
Returns a list of all the systems
- Query Parameters
verbose (boolean) – If true then the ‘storage’ property will contain a breakdown of the disk-usage
- Status Codes
200 OK – An array of systems
- Response JSON Object
[]._id (string) – (required)
[].cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
[].cached_response_info.timestamp (string) – The date and time the information was cached. (required)
- POST /systems¶
Creates one or more systems
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Request JSON Object
[]._id (string) – (required)
[].metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
- Status Codes
200 OK – An array containing the new systems
- Response JSON Object
[]._id (string) – (required)
[].cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
[].cached_response_info.timestamp (string) – The date and time the information was cached. (required)
- GET /systems/{system_id}¶
Returns the specified system
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – The system
- Response JSON Object
_id (string) – (required)
cached_response_info.age (number) – The age (in seconds) of the cached information. This information can be derived from the “cache_time” property, but is included as a debug-aid. (required)
cached_response_info.timestamp (string) – The date and time the information was cached. (required)
- DELETE /systems/{system_id}¶
Deletes the specified system
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – OK
- GET /systems/{system_id}/logs¶
Returns the logs from the microservice. By default it returns the last 1000 lines.
- Parameters
system_id (string) – The id of the system
- Query Parameters
since (string) – Specifies from which point in time to stream the logs. The value must be an ISO datetime value, e.g. ‘2016-11-08T08:28:45.880594510Z’. Note that all log lines after this point in the log will be returned.
- Status Codes
200 OK – The microservice logs data
- GET /systems/{system_id}/status¶
Returns the status from the system (if microservice, then a subset of docker inspect)
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – The microservice status data
- POST /systems/{system_id}/reload¶
Queues a operation to pull a new docker image and recreate the microservice (i.e. asynchronously)
- Parameters
system_id (string) – The id of the system
- Status Codes
202 Accepted – The result of the reload operarion
- GET /systems/{system_id}/proxy/{rest_of_path}¶
Passes the request through to the microservice and returns the response
- Parameters
system_id (string) – The id of the system
rest_of_path (string) – The relative path to access on the microservice
- Status Codes
200 OK – The proxied response from the microservice
- POST /systems/{system_id}/proxy/{rest_of_path}¶
Passes the request through to the microservice and returns the response
- Parameters
system_id (string) – The id of the system
rest_of_path (string) – The relative path to access on the microservice
- Status Codes
200 OK – The proxied response from the microservice
- PUT /systems/{system_id}/proxy/{rest_of_path}¶
Passes the request through to the microservice and returns the response
- Parameters
system_id (string) – The id of the system
rest_of_path (string) – The relative path to access on the microservice
- Status Codes
200 OK – The proxied response from the microservice
- PATCH /systems/{system_id}/proxy/{rest_of_path}¶
Passes the request through to the microservice and returns the response
- Parameters
system_id (string) – The id of the system
rest_of_path (string) – The relative path to access on the microservice
- Status Codes
200 OK – The proxied response from the microservice
- DELETE /systems/{system_id}/proxy/{rest_of_path}¶
Passes the request through to the microservice and returns the response
- Parameters
system_id (string) – The id of the system
rest_of_path (string) – The relative path to access on the microservice
- Status Codes
200 OK – The proxied response from the microservice
- GET /systems/{system_id}/config¶
Returns the configuration of the specified system
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – The system configuration
- Response JSON Object
_id (string) – (required)
metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
- PUT /systems/{system_id}/config¶
This service lets the user update a system’s configuration by sending a PUT-request with the new configuration. The id of the system is specified by the ‘{system_id}’ part of the url.
- Parameters
system_id (string) – The id of the system
- Query Parameters
force (boolean) – When this is set to “true” it forces the server to accept configuration errors and do a best-effort attempt to apply the new configuration. This is rarely a good idea.
- Request JSON Object
_id (string) – (required)
metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
- Status Codes
200 OK – The system configuration
- Response JSON Object
_id (string) – (required)
metadata.$config-group (string) – This can be set to specify that this pipe belongs to the specified config-group. If this value is not set, the pipe belongs to the default config-group. See also the ‘/config/{config-group}’ endpoint.
- GET /systems/{system_id}/secrets¶
Returns a list of the names of the defined secrets for the specified system.
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – OK
- Response JSON Object
[] (string) –
- PUT /systems/{system_id}/secrets¶
Overwrites the secrets for the specified system. The payload must be a JSON object where the keys are the secret names and the values are the secret values.
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – OK
- POST /systems/{system_id}/secrets¶
Adds the secrets specified in the payload to the specified system. The payload must be a JSON object where the keys are the secret names and the values are the secret values. If a secret already exists, it is overwritten. Existing secrets are not deleted.
- Parameters
system_id (string) – The id of the system
- Status Codes
200 OK – OK
Portal API Reference¶
- GET /api¶
Returns information about the sesam portal.
- Status Codes
200 OK – OK
- Response JSON Object
authentication_providers[].id (string) – The unique id of the provider (required)
authentication_providers[].login_button_icon (string) – Optional. An url to the icon that should be used on the login-button for this provider.
authentication_providers[].login_button_text (string) – Optional. The text to display on the login button.
authentication_providers[].login_button_tooltip (string) – Optional. The mouse-over tooltip to display on the login button.
authentication_providers[].login_url (string) – The url to go to to start authenticating with this provider (required)
status.build-date (string) –
status.feature-level (integer) – A positive integer that indicates which api features this version of the sesam-portal supports. (required)
status.git-revision (string) – This is an internal value that refers to the git revision that was used to build this version of the sesam portal.
status.health_status.message (string) – If the status is not “ok”, this property contains a human-readable message describing the problem.
status.health_status.status (string) – (required)
status.is_email_verification_required (boolean) –
status.is_fallback_mode (boolean) –
status.is_internal_users_enabled (boolean) –
status.is_itest_mode (boolean) –
status.revision (string) –
status.start_time (string) –
status.teamcity-buildnumber (string) – This is an internal value that refers to the build-job that produced this version of the sesam portal.
status.tos_version (number) –
status.uptime (string) –
status.version (string) –
tos_version (number) – The current version of the Terms of Service
- GET /api/profile¶
Returns information about the currently logged-in user.
- Status Codes
200 OK – OK
- Response JSON Object
supported-operations.activate_portal_admin_powers (any) – (required)
supported-operations.create_paymentmethod (any) – (required)
supported-operations.create_subscription (any) – (required)
supported-operations.create_trial_subscription (any) – (required)
supported-operations.delete_account (any) – (required)
supported-operations.request_email_verification (any) – (required)
supported-operations.request_trial_subscription (any) – (required)
supported-operations.send_reset_password_email (any) – (required)
supported-operations.update_user_profile (any) – (required)
userInfo.isLoggedIn (boolean) –
userInfo.lastRequestTrial.created_time (string) – The time when the user made the request, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.dismissed_from_gui (boolean) – This can be set to true to hide a denied request from the user’s gui.
userInfo.lastRequestTrial.responded_time (string) – The time when the request was answered, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.response (string) – A text describing the reason behind the result (typically used to explain why the request was denied.
userInfo.lastRequestTrial.status (string) – The result of the request.
userInfo.lastRequestTrial.user_submitted_information (object) – The information the user submits when requesting information. This information is diplayed to the sesam employee that reviews the “create trial” request. The exact properties that are present is decided by the GUI; both the backend storage and the admin form the sesam employee uses can handle any number and types of properties.
userInfo.profile.email (string) –
userInfo.profile.email_is_verified (boolean) –
userInfo.profile.name (string) –
userInfo.profile.nickname (string) –
userInfo.profile.picture (string) –
userInfo.providerIds[] (string) –
userInfo.providerWhitelist[] (string) –
userInfo.user_id (string) –
- PUT /api/profile¶
Updates information about the currently logged-in user. This endpoint accepts the same json structure as the GET /api/profile endpoint produces, but only a few of the fields in that structure will be used, since the user is only allowed to change a few of the fields. The “name” field can be changed, but the “email” field can not be changed, for instance. This endpoint also accept a “sparse” json-structure, that only contains the field(s) that the client wants to modify. The values represented by any “missing” fields will not be modified; if for instance the json only contains the “picture”-field, the “name”-field will not be modified.
- Request JSON Object
userInfo.approvedTos (number) –
userInfo.isPortalAdmin (boolean) – This property can only be modified by the special portal-admin users. The portal-admin powers of such users are disabled by default, and must be explicitly activated by setting this property to ‘true’.
userInfo.profile.name (string) –
userInfo.profile.nickname (string) –
userInfo.profile.picture (string) –
userInfo.providerIds[] (string) –
userInfo.providerWhitelist[] (string) –
- Status Codes
200 OK – OK
- Response JSON Object
supported-operations.activate_portal_admin_powers (any) – (required)
supported-operations.create_paymentmethod (any) – (required)
supported-operations.create_subscription (any) – (required)
supported-operations.create_trial_subscription (any) – (required)
supported-operations.delete_account (any) – (required)
supported-operations.request_email_verification (any) – (required)
supported-operations.request_trial_subscription (any) – (required)
supported-operations.send_reset_password_email (any) – (required)
supported-operations.update_user_profile (any) – (required)
userInfo.isLoggedIn (boolean) –
userInfo.lastRequestTrial.created_time (string) – The time when the user made the request, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.dismissed_from_gui (boolean) – This can be set to true to hide a denied request from the user’s gui.
userInfo.lastRequestTrial.responded_time (string) – The time when the request was answered, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.response (string) – A text describing the reason behind the result (typically used to explain why the request was denied.
userInfo.lastRequestTrial.status (string) – The result of the request.
userInfo.lastRequestTrial.user_submitted_information (object) – The information the user submits when requesting information. This information is diplayed to the sesam employee that reviews the “create trial” request. The exact properties that are present is decided by the GUI; both the backend storage and the admin form the sesam employee uses can handle any number and types of properties.
userInfo.profile.email (string) –
userInfo.profile.email_is_verified (boolean) –
userInfo.profile.name (string) –
userInfo.profile.nickname (string) –
userInfo.profile.picture (string) –
userInfo.providerIds[] (string) –
userInfo.providerWhitelist[] (string) –
userInfo.user_id (string) –
- GET /api/profile2¶
Returns information about the currently logged-in user. If the user is not logged in a 401 response is returned instead. TODO replace the “/api/profile” endpoint with this when we deploy the unified frontend.
- Status Codes
200 OK – This returns the same response as the /api/profile endpoint
401 Unauthorized – The user is not logged in
- Response JSON Object
supported-operations.activate_portal_admin_powers (any) – (required)
supported-operations.create_paymentmethod (any) – (required)
supported-operations.create_subscription (any) – (required)
supported-operations.create_trial_subscription (any) – (required)
supported-operations.delete_account (any) – (required)
supported-operations.request_email_verification (any) – (required)
supported-operations.request_trial_subscription (any) – (required)
supported-operations.send_reset_password_email (any) – (required)
supported-operations.update_user_profile (any) – (required)
userInfo.isLoggedIn (boolean) –
userInfo.lastRequestTrial.created_time (string) – The time when the user made the request, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.dismissed_from_gui (boolean) – This can be set to true to hide a denied request from the user’s gui.
userInfo.lastRequestTrial.responded_time (string) – The time when the request was answered, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.response (string) – A text describing the reason behind the result (typically used to explain why the request was denied.
userInfo.lastRequestTrial.status (string) – The result of the request.
userInfo.lastRequestTrial.user_submitted_information (object) – The information the user submits when requesting information. This information is diplayed to the sesam employee that reviews the “create trial” request. The exact properties that are present is decided by the GUI; both the backend storage and the admin form the sesam employee uses can handle any number and types of properties.
userInfo.profile.email (string) –
userInfo.profile.email_is_verified (boolean) –
userInfo.profile.name (string) –
userInfo.profile.nickname (string) –
userInfo.profile.picture (string) –
userInfo.providerIds[] (string) –
userInfo.providerWhitelist[] (string) –
userInfo.user_id (string) –
- DELETE /api/profile/{user_id}¶
Deletes the specified user.
- Parameters
user_id (string) – The id of the user to delete.
- Status Codes
200 OK – OK
- POST /api/jwt¶
Returns the JSON Web Token for the user described in the post parameters (email+password).
- Status Codes
200 OK – OK
- GET /api/subscriptions/{subscription_id}/jwt¶
Returns the JSON Web Token for the specified subscription for the currently logged in user.
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- GET /api/jwt/publickey¶
Returns the RSA public key that can be used to verify the JWT signature
- Status Codes
200 OK – OK
- GET /api/jwt/zendesk¶
Returns the JWT to be used with the Zendesk authentication api for the currently logged in user
- Status Codes
200 OK – OK
501 Not Implemented – Not implemented. Configuration for Zendesk is missing in the portal
- GET /api/jwt/zendesk-chat¶
Returns the JWT to be used with the Zendesk Chat authentication api for the currently logged in user
- Status Codes
200 OK – OK
501 Not Implemented – Not implemented. Configuration for Zendesk is missing in the portal
- GET /api/subscriptions¶
Returns the subscriptions that this user is connected to.
- Status Codes
200 OK – OK
- Response JSON Object
[]._updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
[].audit.created_by.email (string) –
[].audit.created_by.name (string) –
[].audit.created_by.picture (string) –
[].audit.created_by.user_id (string) –
[].audit.created_ts (string) –
[].audit.last_modified_by.email (string) –
[].audit.last_modified_by.name (string) –
[].audit.last_modified_by.picture (string) –
[].audit.last_modified_by.user_id (string) –
[].audit.last_modified_ts (string) –
[].connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
[].connections[].name (string) – The human-redable name of the connection. (required)
[].connections[].type (string) – This specified the type of component this connection points to. (required)
[].connections[].url (string) – (required)
[].created (string) – (required)
[].current-users-member (any) –
[].description (string) – A short description of the subscription.
[].id (string) – (required)
[].is_unused_precreated_subscription (boolean) – Specified if this is an unused precreated subscription. Such subscriptions are kept in reserve and assigned to people when they try to create a new subscription. This saves people from having to wait for a new box to be provisioned.
[].licenses[].is-active-license (boolean) – This is set to true if this is the currently active license. A subscription might have several licenses; each license has an expiration date, and each time the customer will renews the license, a new entry is added to the subscription’s ‘licenses’ list.
[].licenses[].original._id (string) – (required)
[].licenses[].original.created (string) – (required)
[].licenses[].original.email (string) – (required)
[].licenses[].original.expires (string) – (required)
[].licenses[].signed (string) – The signed license key. This is only present for ‘on-premise’ subscriptions. For ‘in-cloud’ subscriptions the license-key is handled by the provisioner service and should never be shown to the customer.
[].name (string) – (required)
[].network.network-acl[].access (string) – (required)
[].network.network-acl[].address (string) – (required)
[].network.public-access (boolean) –
[].paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
[].paymentmethod_info.description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
[].paymentmethod_info.id (string) – The internal id of this paymentmethod. (required)
[].paymentmethod_info.is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
[].paymentmethod_info.name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
[].paymentmethod_info.owner.email (string) – The email of the owner (required)
[].paymentmethod_info.owner.name (string) – The name of the owner (required)
[].paymentmethod_info.owner.picture (string) –
[].paymentmethod_info.owner.user_id (string) – The id of the owner (required)
[].paymentmethod_info.type (string) – The type of this paymentmethod. (required)
[].products.databrowser[].custom_fqdn[] (string) –
[].products.databrowser[].id (string) – (required)
[].products.databrowser[].name (string) –
[].products.databrowser[].size (string) –
[].products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
[].products.datahub.backup (string) –
[].products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
[].products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
[].products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
[].products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
[].products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
[].products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
[].products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
[].products.gdpr_platform.custom_fqdn[] (string) –
[].products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
[].products.gdpr_platform.size (string) – (required)
[].products.microservices.size (string) – (required)
[].products.search (boolean) – This controls whether to activate the search capability
[].products.sla.level (string) – (required)
[].products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
[].products.vpn.connections[].address_spaces[] (string) –
[].products.vpn.connections[].gateway_address (string) –
[].products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
[].products.vpn.dns[] (string) –
[].products.vpn.enable_snat (boolean) –
[].products.vpn.local-range (string) –
[].products.vpn.local-subnet (string) –
[].products.vpn.onsite-ranges[] (string) –
[].products.vpn.public-gateway (string) –
[].products.vpn.sesam_address_spaces[] (string) –
[].products.vpn.sesam_gateway (string) –
[].products.vpn.tier (integer) –
[].products.vpn.type (string) –
[].provisioner_version (string) – Specifies the version of the sesam provisioner that’s been used to provision this subscription. As of now that can either be “1”, “2” or “snowflake”
[].provisioning_result.bootstrap (boolean) –
[].provisioning_result.datahub.debuginfo (any) – This property contains debug information that is only present in internal development environments.
[].provisioning_result.datahub.fqdn (string) – (required)
[].provisioning_result.datahub.private-ip (string) – (required)
[].provisioning_result.datahub.public_ip (string) – (required)
[].provisioning_result.datahub.tag (string) – The docker image tag that the sesam-node container is currently using.
[].provisioning_result.dev_docker_container_info (object) – This property contains debug information that is only present in internal development environments.
[].provisioning_result.msg[] (string) –
[].provisioning_result.network.acl[].access (string) – (required)
[].provisioning_result.network.acl[].address (string) – (required)
[].provisioning_result.network.public-access (boolean) –
[].provisioning_result.network.range (string) –
[].provisioning_result.network.subnet (string) –
[].provisioning_result.provisioning_settings.kubernets_upgrade_channel (string) – The upgrade channel to use to auto-upgrade the kubernetes cluster. See https://docs.microsoft.com/en-us/azure/aks/upgrade-cluster#set-auto-upgrade-channel for a detailed explanation and for a list of available channels.
[].provisioning_result.provisioning_settings.max_workers (integer) – The maximum number of server machines this subscription is allowed to use.
[].provisioning_result.provisioning_settings.num_workers (integer) – The number of server machines this subscription currently uses.
[].provisioning_result.services.databrowsers[].custom_fqdn[] (string) –
[].provisioning_result.services.databrowsers[].debuginfo (any) – This property contains debug information that is only present in internal development environments.
[].provisioning_result.services.databrowsers[].fqdn (string) – (required)
[].provisioning_result.services.databrowsers[].id (string) – (required)
[].provisioning_result.services.databrowsers[].private-ip (string) – (required)
[].provisioning_result.services.databrowsers[].public_ip (string) – (required)
[].provisioning_result.services.databrowsers[].size (string) –
[].provisioning_result.services.databrowsers[].tag (string) – The docker image tag for the data access portal container
[].provisioning_result.services.databrowsers[].type (string) – (required)
[].provisioning_status (string) –
[].service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
[].supported-operations.accept_invitation (any) – (required)
[].supported-operations.add_api_jwt_token (any) –
[].supported-operations.add_notification_rule (any) – (required)
[].supported-operations.assign_role_to_user (any) – (required)
[].supported-operations.create_custom_role (any) – (required)
[].supported-operations.decline_invitation (any) – (required)
[].supported-operations.delete_subscription (any) – (required)
[].supported-operations.invite_user (any) – (required)
[].supported-operations.leave_subscription (any) – (required)
[].supported-operations.modify_subscription (any) – (required)
[].supported-operations.renew_license (any) –
[].supported-operations.view_api_jwt_tokens (any) –
[].supported-operations.view_members (any) – (required)
[].type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values. (required)
[].url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
[].was_created_from_a_precreated_subscription (boolean) – Specified if this subscription was create by assigning a precreated subscription.
- POST /api/subscriptions¶
Creates a new subscription
- Request JSON Object
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
description (string) – A short description of the subscription.
id (string) –
license-expiration-date (string) – If this is specified it should be an ISO-8601 formatted datestring. This is used instead of the default value when setting the expiration date of the subscription license. The specified value cannot be in the past or too far in the future (a 400-response will be returned if the value is invalid).
name (string) –
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
provisioner_version (string) – This specified the provisioner this subscription will be provisioned with. If this value is “1” or missing, and the service specified is “in-cloud”, the original provisioner is used. If the value is “2”, the new “sesam-provisioner” is used. If the version is “snowflake” the Portal won’t provision this subscription.
service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values.
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
created (string) – (required)
current-users-member (any) –
description (string) – A short description of the subscription.
id (string) – (required)
is_unused_precreated_subscription (boolean) – Specified if this is an unused precreated subscription. Such subscriptions are kept in reserve and assigned to people when they try to create a new subscription. This saves people from having to wait for a new box to be provisioned.
licenses[].is-active-license (boolean) – This is set to true if this is the currently active license. A subscription might have several licenses; each license has an expiration date, and each time the customer will renews the license, a new entry is added to the subscription’s ‘licenses’ list.
licenses[].original._id (string) – (required)
licenses[].original.created (string) – (required)
licenses[].original.email (string) – (required)
licenses[].original.expires (string) – (required)
licenses[].signed (string) – The signed license key. This is only present for ‘on-premise’ subscriptions. For ‘in-cloud’ subscriptions the license-key is handled by the provisioner service and should never be shown to the customer.
name (string) – (required)
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
paymentmethod_info.description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.id (string) – The internal id of this paymentmethod. (required)
paymentmethod_info.is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
paymentmethod_info.name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.owner.email (string) – The email of the owner (required)
paymentmethod_info.owner.name (string) – The name of the owner (required)
paymentmethod_info.owner.picture (string) –
paymentmethod_info.owner.user_id (string) – The id of the owner (required)
paymentmethod_info.type (string) – The type of this paymentmethod. (required)
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
provisioner_version (string) – Specifies the version of the sesam provisioner that’s been used to provision this subscription. As of now that can either be “1”, “2” or “snowflake”
provisioning_result.bootstrap (boolean) –
provisioning_result.datahub.debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.datahub.fqdn (string) – (required)
provisioning_result.datahub.private-ip (string) – (required)
provisioning_result.datahub.public_ip (string) – (required)
provisioning_result.datahub.tag (string) – The docker image tag that the sesam-node container is currently using.
provisioning_result.dev_docker_container_info (object) – This property contains debug information that is only present in internal development environments.
provisioning_result.msg[] (string) –
provisioning_result.network.acl[].access (string) – (required)
provisioning_result.network.acl[].address (string) – (required)
provisioning_result.network.public-access (boolean) –
provisioning_result.network.range (string) –
provisioning_result.network.subnet (string) –
provisioning_result.provisioning_settings.kubernets_upgrade_channel (string) – The upgrade channel to use to auto-upgrade the kubernetes cluster. See https://docs.microsoft.com/en-us/azure/aks/upgrade-cluster#set-auto-upgrade-channel for a detailed explanation and for a list of available channels.
provisioning_result.provisioning_settings.max_workers (integer) – The maximum number of server machines this subscription is allowed to use.
provisioning_result.provisioning_settings.num_workers (integer) – The number of server machines this subscription currently uses.
provisioning_result.services.databrowsers[].custom_fqdn[] (string) –
provisioning_result.services.databrowsers[].debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.services.databrowsers[].fqdn (string) – (required)
provisioning_result.services.databrowsers[].id (string) – (required)
provisioning_result.services.databrowsers[].private-ip (string) – (required)
provisioning_result.services.databrowsers[].public_ip (string) – (required)
provisioning_result.services.databrowsers[].size (string) –
provisioning_result.services.databrowsers[].tag (string) – The docker image tag for the data access portal container
provisioning_result.services.databrowsers[].type (string) – (required)
provisioning_status (string) –
service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
supported-operations.accept_invitation (any) – (required)
supported-operations.add_api_jwt_token (any) –
supported-operations.add_notification_rule (any) – (required)
supported-operations.assign_role_to_user (any) – (required)
supported-operations.create_custom_role (any) – (required)
supported-operations.decline_invitation (any) – (required)
supported-operations.delete_subscription (any) – (required)
supported-operations.invite_user (any) – (required)
supported-operations.leave_subscription (any) – (required)
supported-operations.modify_subscription (any) – (required)
supported-operations.renew_license (any) –
supported-operations.view_api_jwt_tokens (any) –
supported-operations.view_members (any) – (required)
type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values. (required)
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
was_created_from_a_precreated_subscription (boolean) – Specified if this subscription was create by assigning a precreated subscription.
- GET /api/subscriptions/{subscription_id}¶
Returns information about the specified subscription
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
created (string) – (required)
current-users-member (any) –
description (string) – A short description of the subscription.
id (string) – (required)
is_unused_precreated_subscription (boolean) – Specified if this is an unused precreated subscription. Such subscriptions are kept in reserve and assigned to people when they try to create a new subscription. This saves people from having to wait for a new box to be provisioned.
licenses[].is-active-license (boolean) – This is set to true if this is the currently active license. A subscription might have several licenses; each license has an expiration date, and each time the customer will renews the license, a new entry is added to the subscription’s ‘licenses’ list.
licenses[].original._id (string) – (required)
licenses[].original.created (string) – (required)
licenses[].original.email (string) – (required)
licenses[].original.expires (string) – (required)
licenses[].signed (string) – The signed license key. This is only present for ‘on-premise’ subscriptions. For ‘in-cloud’ subscriptions the license-key is handled by the provisioner service and should never be shown to the customer.
name (string) – (required)
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
paymentmethod_info.description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.id (string) – The internal id of this paymentmethod. (required)
paymentmethod_info.is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
paymentmethod_info.name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.owner.email (string) – The email of the owner (required)
paymentmethod_info.owner.name (string) – The name of the owner (required)
paymentmethod_info.owner.picture (string) –
paymentmethod_info.owner.user_id (string) – The id of the owner (required)
paymentmethod_info.type (string) – The type of this paymentmethod. (required)
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
provisioner_version (string) – Specifies the version of the sesam provisioner that’s been used to provision this subscription. As of now that can either be “1”, “2” or “snowflake”
provisioning_result.bootstrap (boolean) –
provisioning_result.datahub.debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.datahub.fqdn (string) – (required)
provisioning_result.datahub.private-ip (string) – (required)
provisioning_result.datahub.public_ip (string) – (required)
provisioning_result.datahub.tag (string) – The docker image tag that the sesam-node container is currently using.
provisioning_result.dev_docker_container_info (object) – This property contains debug information that is only present in internal development environments.
provisioning_result.msg[] (string) –
provisioning_result.network.acl[].access (string) – (required)
provisioning_result.network.acl[].address (string) – (required)
provisioning_result.network.public-access (boolean) –
provisioning_result.network.range (string) –
provisioning_result.network.subnet (string) –
provisioning_result.provisioning_settings.kubernets_upgrade_channel (string) – The upgrade channel to use to auto-upgrade the kubernetes cluster. See https://docs.microsoft.com/en-us/azure/aks/upgrade-cluster#set-auto-upgrade-channel for a detailed explanation and for a list of available channels.
provisioning_result.provisioning_settings.max_workers (integer) – The maximum number of server machines this subscription is allowed to use.
provisioning_result.provisioning_settings.num_workers (integer) – The number of server machines this subscription currently uses.
provisioning_result.services.databrowsers[].custom_fqdn[] (string) –
provisioning_result.services.databrowsers[].debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.services.databrowsers[].fqdn (string) – (required)
provisioning_result.services.databrowsers[].id (string) – (required)
provisioning_result.services.databrowsers[].private-ip (string) – (required)
provisioning_result.services.databrowsers[].public_ip (string) – (required)
provisioning_result.services.databrowsers[].size (string) –
provisioning_result.services.databrowsers[].tag (string) – The docker image tag for the data access portal container
provisioning_result.services.databrowsers[].type (string) – (required)
provisioning_status (string) –
service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
supported-operations.accept_invitation (any) – (required)
supported-operations.add_api_jwt_token (any) –
supported-operations.add_notification_rule (any) – (required)
supported-operations.assign_role_to_user (any) – (required)
supported-operations.create_custom_role (any) – (required)
supported-operations.decline_invitation (any) – (required)
supported-operations.delete_subscription (any) – (required)
supported-operations.invite_user (any) – (required)
supported-operations.leave_subscription (any) – (required)
supported-operations.modify_subscription (any) – (required)
supported-operations.renew_license (any) –
supported-operations.view_api_jwt_tokens (any) –
supported-operations.view_members (any) – (required)
type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values. (required)
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
was_created_from_a_precreated_subscription (boolean) – Specified if this subscription was create by assigning a precreated subscription.
- DELETE /api/subscriptions/{subscription_id}¶
Deletes the specified subscription
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- PUT /api/subscriptions/{subscription_id}¶
Update the subscription
- Parameters
subscription_id (string) – The subscription id
- Request JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
description (string) – A short description of the subscription.
name (string) –
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
created (string) – (required)
current-users-member (any) –
description (string) – A short description of the subscription.
id (string) – (required)
is_unused_precreated_subscription (boolean) – Specified if this is an unused precreated subscription. Such subscriptions are kept in reserve and assigned to people when they try to create a new subscription. This saves people from having to wait for a new box to be provisioned.
licenses[].is-active-license (boolean) – This is set to true if this is the currently active license. A subscription might have several licenses; each license has an expiration date, and each time the customer will renews the license, a new entry is added to the subscription’s ‘licenses’ list.
licenses[].original._id (string) – (required)
licenses[].original.created (string) – (required)
licenses[].original.email (string) – (required)
licenses[].original.expires (string) – (required)
licenses[].signed (string) – The signed license key. This is only present for ‘on-premise’ subscriptions. For ‘in-cloud’ subscriptions the license-key is handled by the provisioner service and should never be shown to the customer.
name (string) – (required)
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
paymentmethod_info.description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.id (string) – The internal id of this paymentmethod. (required)
paymentmethod_info.is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
paymentmethod_info.name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.owner.email (string) – The email of the owner (required)
paymentmethod_info.owner.name (string) – The name of the owner (required)
paymentmethod_info.owner.picture (string) –
paymentmethod_info.owner.user_id (string) – The id of the owner (required)
paymentmethod_info.type (string) – The type of this paymentmethod. (required)
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
provisioner_version (string) – Specifies the version of the sesam provisioner that’s been used to provision this subscription. As of now that can either be “1”, “2” or “snowflake”
provisioning_result.bootstrap (boolean) –
provisioning_result.datahub.debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.datahub.fqdn (string) – (required)
provisioning_result.datahub.private-ip (string) – (required)
provisioning_result.datahub.public_ip (string) – (required)
provisioning_result.datahub.tag (string) – The docker image tag that the sesam-node container is currently using.
provisioning_result.dev_docker_container_info (object) – This property contains debug information that is only present in internal development environments.
provisioning_result.msg[] (string) –
provisioning_result.network.acl[].access (string) – (required)
provisioning_result.network.acl[].address (string) – (required)
provisioning_result.network.public-access (boolean) –
provisioning_result.network.range (string) –
provisioning_result.network.subnet (string) –
provisioning_result.provisioning_settings.kubernets_upgrade_channel (string) – The upgrade channel to use to auto-upgrade the kubernetes cluster. See https://docs.microsoft.com/en-us/azure/aks/upgrade-cluster#set-auto-upgrade-channel for a detailed explanation and for a list of available channels.
provisioning_result.provisioning_settings.max_workers (integer) – The maximum number of server machines this subscription is allowed to use.
provisioning_result.provisioning_settings.num_workers (integer) – The number of server machines this subscription currently uses.
provisioning_result.services.databrowsers[].custom_fqdn[] (string) –
provisioning_result.services.databrowsers[].debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.services.databrowsers[].fqdn (string) – (required)
provisioning_result.services.databrowsers[].id (string) – (required)
provisioning_result.services.databrowsers[].private-ip (string) – (required)
provisioning_result.services.databrowsers[].public_ip (string) – (required)
provisioning_result.services.databrowsers[].size (string) –
provisioning_result.services.databrowsers[].tag (string) – The docker image tag for the data access portal container
provisioning_result.services.databrowsers[].type (string) – (required)
provisioning_status (string) –
service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
supported-operations.accept_invitation (any) – (required)
supported-operations.add_api_jwt_token (any) –
supported-operations.add_notification_rule (any) – (required)
supported-operations.assign_role_to_user (any) – (required)
supported-operations.create_custom_role (any) – (required)
supported-operations.decline_invitation (any) – (required)
supported-operations.delete_subscription (any) – (required)
supported-operations.invite_user (any) – (required)
supported-operations.leave_subscription (any) – (required)
supported-operations.modify_subscription (any) – (required)
supported-operations.renew_license (any) –
supported-operations.view_api_jwt_tokens (any) –
supported-operations.view_members (any) – (required)
type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values. (required)
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
was_created_from_a_precreated_subscription (boolean) – Specified if this subscription was create by assigning a precreated subscription.
- GET /api/subscriptions/{subscription_id}/available-roles¶
Returns a list of the roles that are available for the specified subscription. This includes the build-in roles and any custom-roles that has been created in the subscription.
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- Response JSON Object
[].child-roles[] (string) –
[].description (string) – A longer description of the role. The gui can use this for tooltips.
[].id (string) – The internal id of the role.
[].name (string) – A human readable name for the role. This is what the gui displays.
- POST /api/subscriptions/{subscription_id}/available-roles¶
Adds a new custom-role.
- Parameters
subscription_id (string) – The subscription id
- Request JSON Object
child-roles[] (string) –
description (string) – A longer description of the role. The gui can use this for tooltips.
id (string) – The internal id of the role.
name (string) – A human readable name for the role. This is what the gui displays.
- Status Codes
200 OK – OK
- Response JSON Object
child-roles[] (string) –
description (string) – A longer description of the role. The gui can use this for tooltips.
id (string) – The internal id of the role.
name (string) – A human readable name for the role. This is what the gui displays.
- POST /api/subscriptions/{subscription_id}/licenses¶
Renews the subscription’s license. This extends the current license’s expirationdate, but keeps all other license-values the same. Returns the updated Subscription.
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
created (string) – (required)
current-users-member (any) –
description (string) – A short description of the subscription.
id (string) – (required)
is_unused_precreated_subscription (boolean) – Specified if this is an unused precreated subscription. Such subscriptions are kept in reserve and assigned to people when they try to create a new subscription. This saves people from having to wait for a new box to be provisioned.
licenses[].is-active-license (boolean) – This is set to true if this is the currently active license. A subscription might have several licenses; each license has an expiration date, and each time the customer will renews the license, a new entry is added to the subscription’s ‘licenses’ list.
licenses[].original._id (string) – (required)
licenses[].original.created (string) – (required)
licenses[].original.email (string) – (required)
licenses[].original.expires (string) – (required)
licenses[].signed (string) – The signed license key. This is only present for ‘on-premise’ subscriptions. For ‘in-cloud’ subscriptions the license-key is handled by the provisioner service and should never be shown to the customer.
name (string) – (required)
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
paymentmethod_info.description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.id (string) – The internal id of this paymentmethod. (required)
paymentmethod_info.is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
paymentmethod_info.name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
paymentmethod_info.owner.email (string) – The email of the owner (required)
paymentmethod_info.owner.name (string) – The name of the owner (required)
paymentmethod_info.owner.picture (string) –
paymentmethod_info.owner.user_id (string) – The id of the owner (required)
paymentmethod_info.type (string) – The type of this paymentmethod. (required)
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
provisioner_version (string) – Specifies the version of the sesam provisioner that’s been used to provision this subscription. As of now that can either be “1”, “2” or “snowflake”
provisioning_result.bootstrap (boolean) –
provisioning_result.datahub.debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.datahub.fqdn (string) – (required)
provisioning_result.datahub.private-ip (string) – (required)
provisioning_result.datahub.public_ip (string) – (required)
provisioning_result.datahub.tag (string) – The docker image tag that the sesam-node container is currently using.
provisioning_result.dev_docker_container_info (object) – This property contains debug information that is only present in internal development environments.
provisioning_result.msg[] (string) –
provisioning_result.network.acl[].access (string) – (required)
provisioning_result.network.acl[].address (string) – (required)
provisioning_result.network.public-access (boolean) –
provisioning_result.network.range (string) –
provisioning_result.network.subnet (string) –
provisioning_result.provisioning_settings.kubernets_upgrade_channel (string) – The upgrade channel to use to auto-upgrade the kubernetes cluster. See https://docs.microsoft.com/en-us/azure/aks/upgrade-cluster#set-auto-upgrade-channel for a detailed explanation and for a list of available channels.
provisioning_result.provisioning_settings.max_workers (integer) – The maximum number of server machines this subscription is allowed to use.
provisioning_result.provisioning_settings.num_workers (integer) – The number of server machines this subscription currently uses.
provisioning_result.services.databrowsers[].custom_fqdn[] (string) –
provisioning_result.services.databrowsers[].debuginfo (any) – This property contains debug information that is only present in internal development environments.
provisioning_result.services.databrowsers[].fqdn (string) – (required)
provisioning_result.services.databrowsers[].id (string) – (required)
provisioning_result.services.databrowsers[].private-ip (string) – (required)
provisioning_result.services.databrowsers[].public_ip (string) – (required)
provisioning_result.services.databrowsers[].size (string) –
provisioning_result.services.databrowsers[].tag (string) – The docker image tag for the data access portal container
provisioning_result.services.databrowsers[].type (string) – (required)
provisioning_status (string) –
service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
supported-operations.accept_invitation (any) – (required)
supported-operations.add_api_jwt_token (any) –
supported-operations.add_notification_rule (any) – (required)
supported-operations.assign_role_to_user (any) – (required)
supported-operations.create_custom_role (any) – (required)
supported-operations.decline_invitation (any) – (required)
supported-operations.delete_subscription (any) – (required)
supported-operations.invite_user (any) – (required)
supported-operations.leave_subscription (any) – (required)
supported-operations.modify_subscription (any) – (required)
supported-operations.renew_license (any) –
supported-operations.view_api_jwt_tokens (any) –
supported-operations.view_members (any) – (required)
type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values. (required)
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
was_created_from_a_precreated_subscription (boolean) – Specified if this subscription was create by assigning a precreated subscription.
- GET /api/subscriptions/{subscription_id}/api_json_web_tokens¶
Returns a list of the api JWT tokens for this subscription
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- Response JSON Object
[].audit.created_by.email (string) –
[].audit.created_by.name (string) –
[].audit.created_by.picture (string) –
[].audit.created_by.user_id (string) –
[].audit.created_ts (string) –
[].audit.last_modified_by.email (string) –
[].audit.last_modified_by.name (string) –
[].audit.last_modified_by.picture (string) –
[].audit.last_modified_by.user_id (string) –
[].audit.last_modified_ts (string) –
[].client_id (string) – Optional. The ‘client_id’ (if any) associated with this JWT. This is only present for tokens where the refresh_interval has been set.
[].client_secret (string) – Optional. The ‘client_secret’ (if any) associated with this JWT. For security-reasons this is only returned when the JWT is created. This is only present for tokens where the refresh_interval has been set.
[].description (string) – A user-assigned description of this token. (required)
[].id (string) – The internal id of the token (required)
[].jwt_string (string) – The actual signed JWT. For security-reasons this is only returned when the JWT is created.
[].name (string) – A user-assigned name for this token. (required)
[].payload.api_token_id (string) – The id of this JWT api token. We need a copy of the id in the payload, since the sesam-node needs to be able to retrieve it in order to check if the token has been invalidated. (required)
[].payload.exp (number) – Standard “expiration time” field. This is measured in the number of seconds since the Epoch. Note that if the ‘refresh_interval’ parameter is set, this is not the “exp” value that will actually be in the jwt_string; instead the value will be “current_time + refresh_interval” (required)
[].payload.iat (number) – Standard “issued at” field. This is measured in the number of seconds since the Epoch. (required)
[].payload.principals (object) – This is a mapping from subscriptionid to the list of principals for that subscription. The reason we have a mapping is that our JWTs can contain potentially contain permissions for more than one subscription. In this case there will alwasy be exactly one subscription_id in this mapping (i.e. for the subscription that this api jwt belongs to). (required)
[].payload.user_id (string) – (required)
[].payload.user_principal (string) – This is the principal that normally represents the user itself. This is always set to ‘group:Everyone’ for api JWTs.
[].payload.user_profile.email (string) –
[].payload.user_profile.name (string) –
[].payload.user_profile.picture (string) – An URL pointing to an (avatar-)picture of the user
[].refresh_interval (number) – Optional. Specifies the interval (in seconds) at which the token must be refreshed.
[].supported-operations.delete_api_jwt_token (any) – (required)
- POST /api/subscriptions/{subscription_id}/api_json_web_tokens¶
Creates a new API JWT for the specified subscription. These are json web tokens that are intended for use by things like scripts and cron-jobs, where you need a long-lasting JWT with a specific set of roles.
- Parameters
subscription_id (string) – The subscription id
- Request JSON Object
description (string) – A user-assigned description of this token. This is optional and is only used in the GUI.
exp (number) – The expiration-date to set on the new JWT. This is measured in number of seconds since the Epoch. (required)
name (string) – A user-assigned name for this token. This is optional and is only used in the GUI.
principals[] (string) –
refresh_interval (number) – Optional. If this is specified, the resulting JWT must be refreshed at the specified rate. In this case the ‘exp’ property describes the last time the JWT can be refreshed.
- Status Codes
200 OK – The new SubscriptionJWT
- Response JSON Object
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
client_id (string) – Optional. The ‘client_id’ (if any) associated with this JWT. This is only present for tokens where the refresh_interval has been set.
client_secret (string) – Optional. The ‘client_secret’ (if any) associated with this JWT. For security-reasons this is only returned when the JWT is created. This is only present for tokens where the refresh_interval has been set.
description (string) – A user-assigned description of this token. (required)
id (string) – The internal id of the token (required)
jwt_string (string) – The actual signed JWT. For security-reasons this is only returned when the JWT is created.
name (string) – A user-assigned name for this token. (required)
payload.api_token_id (string) – The id of this JWT api token. We need a copy of the id in the payload, since the sesam-node needs to be able to retrieve it in order to check if the token has been invalidated. (required)
payload.exp (number) – Standard “expiration time” field. This is measured in the number of seconds since the Epoch. Note that if the ‘refresh_interval’ parameter is set, this is not the “exp” value that will actually be in the jwt_string; instead the value will be “current_time + refresh_interval” (required)
payload.iat (number) – Standard “issued at” field. This is measured in the number of seconds since the Epoch. (required)
payload.principals (object) – This is a mapping from subscriptionid to the list of principals for that subscription. The reason we have a mapping is that our JWTs can contain potentially contain permissions for more than one subscription. In this case there will alwasy be exactly one subscription_id in this mapping (i.e. for the subscription that this api jwt belongs to). (required)
payload.user_id (string) – (required)
payload.user_principal (string) – This is the principal that normally represents the user itself. This is always set to ‘group:Everyone’ for api JWTs.
payload.user_profile.email (string) –
payload.user_profile.name (string) –
payload.user_profile.picture (string) – An URL pointing to an (avatar-)picture of the user
refresh_interval (number) – Optional. Specifies the interval (in seconds) at which the token must be refreshed.
supported-operations.delete_api_jwt_token (any) – (required)
- DELETE /api/subscriptions/{subscription_id}/api_json_web_tokens/{api_json_web_token_id}¶
Deletes the specified api JWT token
- Parameters
subscription_id (string) – The subscription id
api_json_web_token_id (string) – The api jwt id
- Status Codes
200 OK – OK
- GET /api/subscriptions/{subscription_id}/available-roles/{role_id}¶
Returns information about the specified role in the specified subscription.
- Parameters
subscription_id (string) – The subscription id
role_id (string) – The role id
- Status Codes
200 OK – OK
- Response JSON Object
child-roles[] (string) –
description (string) – A longer description of the role. The gui can use this for tooltips.
id (string) – The internal id of the role.
name (string) – A human readable name for the role. This is what the gui displays.
- DELETE /api/subscriptions/{subscription_id}/available-roles/{role_id}¶
Deletes the specified role in the specified subscription.
- Parameters
subscription_id (string) – The subscription id
role_id (string) – The role id
- Status Codes
200 OK – OK
- Response JSON Object
child-roles[] (string) –
description (string) – A longer description of the role. The gui can use this for tooltips.
id (string) – The internal id of the role.
name (string) – A human readable name for the role. This is what the gui displays.
- PUT /api/subscriptions/{subscription_id}/available-roles/{role_id}¶
Updates the specified role in the specified subscription.
- Parameters
subscription_id (string) – The subscription id
role_id (string) – The role id
- Request JSON Object
child-roles[] (string) –
description (string) – A longer description of the role. The gui can use this for tooltips.
id (string) – The internal id of the role.
name (string) – A human readable name for the role. This is what the gui displays.
- Status Codes
200 OK – OK
- Response JSON Object
child-roles[] (string) –
description (string) – A longer description of the role. The gui can use this for tooltips.
id (string) – The internal id of the role.
name (string) – A human readable name for the role. This is what the gui displays.
- GET /api/subscriptions/{subscription_id}/members¶
returns a list of the members in the subscription
- Parameters
subscription_id (string) – The subscription id
- Query Parameters
limit (integer) – Specifies the maximum number of members to return. If this is not specified, all available members are returned.
start (integer) – The index of the first member to return. This defaults to 0 (zero), which means to start at the beginning of the list of members. The ‘start’ parameter can be used in conjunction with the ‘limit’ parameter to implement pagination.
- Status Codes
200 OK – OK
- Response JSON Object
[]._updated (any) – This is a version-value that is used to implement optimistic locking on the server. The client can include this value when doing a PUT to the server; the server will then check that the current _updated value matches the value sent by the client. Note that this value can be of any type, so the client shouldn’t make any assumptions about it.
[].audit.invited_by.email (string) –
[].audit.invited_by.name (string) –
[].audit.invited_by.picture (string) –
[].audit.invited_by.user_id (string) –
[].audit.invited_ts (string) –
[].roles[] (string) –
[].sesam_support_info.exp (string) – The “expiration” timestamp of this membership. (required)
[].sesam_support_info.iat (string) – The “issued at” timestamp of this membership.
[].sesam_support_info.reason (any) – The reason the sesam-employee stated for joining the subscription.
[].user.email (string) –
[].user.name (string) –
[].user.picture (string) –
[].user.user_id (string) –
- POST /api/subscriptions/{subscription_id}/members¶
Invites a user to the subscription
- Parameters
subscription_id (string) – The subscription id
- Request JSON Object
email (string) – The email-address of the user to invite. This email address will also be the user’s unique id.
roles[] (string) –
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. The client can include this value when doing a PUT to the server; the server will then check that the current _updated value matches the value sent by the client. Note that this value can be of any type, so the client shouldn’t make any assumptions about it.
audit.invited_by.email (string) –
audit.invited_by.name (string) –
audit.invited_by.picture (string) –
audit.invited_by.user_id (string) –
audit.invited_ts (string) –
roles[] (string) –
sesam_support_info.exp (string) – The “expiration” timestamp of this membership. (required)
sesam_support_info.iat (string) – The “issued at” timestamp of this membership.
sesam_support_info.reason (any) – The reason the sesam-employee stated for joining the subscription.
user.email (string) –
user.name (string) –
user.picture (string) –
user.user_id (string) –
- GET /api/subscriptions/{subscription_id}/members/{user_id}¶
returns information about the roles the specified user has in the subscription
- Parameters
subscription_id (string) – The subscription id
user_id (string) – The user id
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. The client can include this value when doing a PUT to the server; the server will then check that the current _updated value matches the value sent by the client. Note that this value can be of any type, so the client shouldn’t make any assumptions about it.
audit.invited_by.email (string) –
audit.invited_by.name (string) –
audit.invited_by.picture (string) –
audit.invited_by.user_id (string) –
audit.invited_ts (string) –
roles[] (string) –
sesam_support_info.exp (string) – The “expiration” timestamp of this membership. (required)
sesam_support_info.iat (string) – The “issued at” timestamp of this membership.
sesam_support_info.reason (any) – The reason the sesam-employee stated for joining the subscription.
user.email (string) –
user.name (string) –
user.picture (string) –
user.user_id (string) –
- PUT /api/subscriptions/{subscription_id}/members/{user_id}¶
updates the roles the specified user has in the subscription
- Parameters
subscription_id (string) – The subscription id
user_id (string) – The user id
- Request JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. The value should be the same as the value specified by the server in the SubscriptionMemberInfo object. Note that this value can be of any type, so the client shouldn’t make any assumptions about it.
roles[] (string) –
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. The client can include this value when doing a PUT to the server; the server will then check that the current _updated value matches the value sent by the client. Note that this value can be of any type, so the client shouldn’t make any assumptions about it.
audit.invited_by.email (string) –
audit.invited_by.name (string) –
audit.invited_by.picture (string) –
audit.invited_by.user_id (string) –
audit.invited_ts (string) –
roles[] (string) –
sesam_support_info.exp (string) – The “expiration” timestamp of this membership. (required)
sesam_support_info.iat (string) – The “issued at” timestamp of this membership.
sesam_support_info.reason (any) – The reason the sesam-employee stated for joining the subscription.
user.email (string) –
user.name (string) –
user.picture (string) –
user.user_id (string) –
- GET /api/subscriptions/{subscription_id}/pipes/{pipe_id}/available-notification-ruletypes¶
Returns a list of the available notification rule types on the specified pipe. The idea is that the client can use this list to dynamically generate a gui that lets the user add and edit notification rules.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Status Codes
200 OK – OK
- Response JSON Object
[].description (string) – A description of the rule-type (required)
[].name (string) – The human-readable name of the rule-type (required)
[].schema (object) – A JSON Schema that describes which extra parameters (if any) this rule requires. When the portal backend receives a request on the ‘/api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules’ endpoint, this schema is used to validate the request’s json payload. (required)
[].type (string) – The type of the notification_rule (required)
- PUT /api/admin/config/validation_hack_for_NewPipeNotificationRuleInfo¶
This is a dummy endpoint that is used to register the NewPipeNotificationRuleInfo definition, so that it can be used to validate configuration entities in the python code. The endpoint just returns a 400 response.
- Request JSON Object
description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
id (string) – The internal id of the notification_rule. It this is not assigned by the user, it will be set to a unique value by the server.
name (string) – A short user-defined name for the notification_rule.
recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
recipients[].methods[] (string) –
recipients[].type (string) – Specifies what the ‘id’ property refers to.
type (string) – The type of the notification_rule (required)
- Status Codes
400 Bad Request – This endpoint will always return a 400 response
- GET /api/subscriptions/{subscription_id}/notification-rules¶
Returns a list of the notification rules for all pipes in the subscription
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- Response JSON Object
[].description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
[].extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
[].id (string) – (required)
[].name (string) – A short user-defined name for the notification_rule.
[].pipe_id (string) – This property is only present if the notification-rule belongs to one specific pipe (as opposed to belonging to the subscription itself).
[].recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
[].recipients[].methods[] (string) –
[].recipients[].type (string) – Specifies what the ‘id’ property refers to.
[].type (string) – The type of the notification_rule (required)
- POST /api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules¶
Add a new notification rule entry on the specified pipe
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Request JSON Object
description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
id (string) – The internal id of the notification_rule. It this is not assigned by the user, it will be set to a unique value by the server.
name (string) – A short user-defined name for the notification_rule.
recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
recipients[].methods[] (string) –
recipients[].type (string) – Specifies what the ‘id’ property refers to.
type (string) – The type of the notification_rule (required)
- Status Codes
200 OK – OK
- Response JSON Object
description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
id (string) – (required)
name (string) – A short user-defined name for the notification_rule.
pipe_id (string) – This property is only present if the notification-rule belongs to one specific pipe (as opposed to belonging to the subscription itself).
recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
recipients[].methods[] (string) –
recipients[].type (string) – Specifies what the ‘id’ property refers to.
type (string) – The type of the notification_rule (required)
- GET /api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules¶
Returns a list of the notification rules on the specified pipe
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Status Codes
200 OK – OK
- Response JSON Object
[].description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
[].extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
[].id (string) – (required)
[].name (string) – A short user-defined name for the notification_rule.
[].pipe_id (string) – This property is only present if the notification-rule belongs to one specific pipe (as opposed to belonging to the subscription itself).
[].recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
[].recipients[].methods[] (string) –
[].recipients[].type (string) – Specifies what the ‘id’ property refers to.
[].type (string) – The type of the notification_rule (required)
- PUT /api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules/{notification_rule_id}¶
Updates the specified notification rule entry.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
notification_rule_id (string) – The notification_rule id
- Request JSON Object
description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
name (string) – A short user-defined name for the notification_rule.
recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
recipients[].methods[] (string) –
recipients[].type (string) – Specifies what the ‘id’ property refers to.
- Status Codes
200 OK – OK
- Response JSON Object
description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
id (string) – (required)
name (string) – A short user-defined name for the notification_rule.
pipe_id (string) – This property is only present if the notification-rule belongs to one specific pipe (as opposed to belonging to the subscription itself).
recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
recipients[].methods[] (string) –
recipients[].type (string) – Specifies what the ‘id’ property refers to.
type (string) – The type of the notification_rule (required)
- GET /api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules/{notification_rule_id}¶
Gets the specified notification rule entry.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
notification_rule_id (string) – The notification_rule id
- Status Codes
200 OK – OK
- Response JSON Object
description (string) – A user-defined description of the notification_rule. This can be used for instance to explain what steps should be taken if the notification_rule is triggered.
extra_rule_info (object) – Any extra rule-specific information. For some rules the rule “type” is enough information, but some rules requires additional information (for instance min- and max- values for some metric). This information is specified by adding attributes to this object as needed.
id (string) – (required)
name (string) – A short user-defined name for the notification_rule.
pipe_id (string) – This property is only present if the notification-rule belongs to one specific pipe (as opposed to belonging to the subscription itself).
recipients[].id (any) – The id of this recipient. This can be a role-id (in which case every user with this roleid gets notified), a user-id, or a plain email address. The ‘type’ property specifies how the ‘id’ should be interpreted. (required)
recipients[].methods[] (string) –
recipients[].type (string) – Specifies what the ‘id’ property refers to.
type (string) – The type of the notification_rule (required)
- DELETE /api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules/{notification_rule_id}¶
Deletes the specified notification rule entry.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
notification_rule_id (string) – The notification_rule id
- Status Codes
200 OK – OK
- GET /api/subscriptions/{subscription_id}/pipes/{pipe_id}/notification-rules/{notification_rule_id}/notifications¶
Returns the notifications that has been triggered by the specified notification rule.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
notification_rule_id (string) – The notification_rule id
- Query Parameters
limit (integer) – Specifies the maximum number of notifications to return. If this is not specified, a reasonable default limit will still be used.
since (string) – This can be set to a ISO 8601 datetime string to only return notifications that are more recent than the specified datetime.
include_dismissed (boolean) – Specified if dismissed notifications should be included in the results.
- Status Codes
200 OK – OK
- Response JSON Object
[].alerts_will_be_visible_for_the_current_user (boolean) – This is true if this notification should generate an alert for the user. This can be false if the user is looking at one specific notification-rule in the GUI; in that case we want do display all notifications, including the ones that won’t trigger alerts for the current user. (required)
[].event_count (integer) – The number of instances of the notification-rule triggering that this notification represents. To prevent a rough notification-rule from creating thousands of identical notifications, the number of notifications that can be created within a certain time-span is limited. But we still need to keep track of the total number of times the notification-rule has triggered, so we increment this value as needed. (required)
[].event_timestamp (string) – (required)
[].extra_notification_info (object) – This is a json-object with additional notification-ruletype specific information about the notification.
[].is_ongoing (boolean) – This is true if the notification is still “ongoing”, meaning that the condition that caused the notification to trigger hasn’t since been resolved. (required)
[].last_event_timestamp (string) – The timestamp of the last notification-rule triggering that this notification represents. See the also the ‘event_count’ property. (required)
[].msg (string) – A human-readable message describing the notification. (required)
[].notification_id (integer) – An integer that uniquely identifies this notification. (required)
[].notification_rule_id (string) – The id of the notification rule that triggered this notification. (required)
[].notification_rule_name (string) – The name of the notification rule that triggered this notification. (required)
[].notification_rule_type (string) – The type of the notification rule that triggered this notification. (required)
[].pipe_id (string) – The id of the pipe that this notification belongs to (if any). If the notification doesn’t belong to a pipe, this property will not be present.
[].subscription_id (string) – The id of the subscription that this notification belongs to (if any). If the notification doesn’t belong to a subscription, this property will not be present.
- GET /api/notifications¶
Returns the notifications that should be displayed in the “Alerts”-list for this user.
- Query Parameters
limit (integer) – Specifies the maximum number of notifications to return. If this is not specified, a reasonable default limit will still be used.
since (string) – This can be set to a ISO 8601 datetime string to only return notifications that are more recent than the specified datetime.
include_dismissed (boolean) – Specifies if dismissed notifications should be included in the results.
- Status Codes
200 OK – OK
- Response JSON Object
[].alerts_will_be_visible_for_the_current_user (boolean) – This is true if this notification should generate an alert for the user. This can be false if the user is looking at one specific notification-rule in the GUI; in that case we want do display all notifications, including the ones that won’t trigger alerts for the current user. (required)
[].event_count (integer) – The number of instances of the notification-rule triggering that this notification represents. To prevent a rough notification-rule from creating thousands of identical notifications, the number of notifications that can be created within a certain time-span is limited. But we still need to keep track of the total number of times the notification-rule has triggered, so we increment this value as needed. (required)
[].event_timestamp (string) – (required)
[].extra_notification_info (object) – This is a json-object with additional notification-ruletype specific information about the notification.
[].is_ongoing (boolean) – This is true if the notification is still “ongoing”, meaning that the condition that caused the notification to trigger hasn’t since been resolved. (required)
[].last_event_timestamp (string) – The timestamp of the last notification-rule triggering that this notification represents. See the also the ‘event_count’ property. (required)
[].msg (string) – A human-readable message describing the notification. (required)
[].notification_id (integer) – An integer that uniquely identifies this notification. (required)
[].notification_rule_id (string) – The id of the notification rule that triggered this notification. (required)
[].notification_rule_name (string) – The name of the notification rule that triggered this notification. (required)
[].notification_rule_type (string) – The type of the notification rule that triggered this notification. (required)
[].pipe_id (string) – The id of the pipe that this notification belongs to (if any). If the notification doesn’t belong to a pipe, this property will not be present.
[].subscription_id (string) – The id of the subscription that this notification belongs to (if any). If the notification doesn’t belong to a subscription, this property will not be present.
- GET /api/notifications-summary¶
Returns the status of all subscriptions and pipes with notification-rules that the user have access to. This endpoint implements the Sesam “json-pull” protocol (https://docs.sesam.io/hub/json-pull.html).
- Query Parameters
limit (integer) – Specifies the maximum number of items to return. If this is not specified, all available items will be returned
since (integer) – This is the ‘since’-value in the sesam json-pull protocol (https://docs.sesam.io/hub/json-pull.html)
deleted (boolean) – Specifies if deleted entries should be included in the results.
- Status Codes
200 OK – OK
- Response JSON Object
[]._deleted (boolean) – (required)
[]._id (string) – The id of the pipe that this item represents (required)
[]._updated (number) – (required)
[].confidence (number) – This number specifies how confident the system is that the status is accurate. This is normally 1, which means that the notification machinery is working as normal. If there is an internal problem with the notification machinery itself, the confidence will be between 1 and 0.
[].notifications[].alerts_will_be_visible_for_the_current_user (boolean) – This is true if this notification should generate an alert for the user. This can be false if the user is looking at one specific notification-rule in the GUI; in that case we want do display all notifications, including the ones that won’t trigger alerts for the current user. (required)
[].notifications[].event_count (integer) – The number of instances of the notification-rule triggering that this notification represents. To prevent a rough notification-rule from creating thousands of identical notifications, the number of notifications that can be created within a certain time-span is limited. But we still need to keep track of the total number of times the notification-rule has triggered, so we increment this value as needed. (required)
[].notifications[].event_timestamp (string) – (required)
[].notifications[].extra_notification_info (object) – This is a json-object with additional notification-ruletype specific information about the notification.
[].notifications[].is_ongoing (boolean) – This is true if the notification is still “ongoing”, meaning that the condition that caused the notification to trigger hasn’t since been resolved. (required)
[].notifications[].last_event_timestamp (string) – The timestamp of the last notification-rule triggering that this notification represents. See the also the ‘event_count’ property. (required)
[].notifications[].msg (string) – A human-readable message describing the notification. (required)
[].notifications[].notification_id (integer) – An integer that uniquely identifies this notification. (required)
[].notifications[].notification_rule_id (string) – The id of the notification rule that triggered this notification. (required)
[].notifications[].notification_rule_name (string) – The name of the notification rule that triggered this notification. (required)
[].notifications[].notification_rule_type (string) – The type of the notification rule that triggered this notification. (required)
[].notifications[].pipe_id (string) – The id of the pipe that this notification belongs to (if any). If the notification doesn’t belong to a pipe, this property will not be present.
[].notifications[].subscription_id (string) – The id of the subscription that this notification belongs to (if any). If the notification doesn’t belong to a subscription, this property will not be present.
[].pipe_id (string) – The id of the pipe that this item represents. This property is optional and is only present if the item represents a pipe.
[].status (string) – If status is “ok” no notification-rules have triggered. If status is “failed” if at least one user-defined notification-rule has triggered. This property is not present in items where “_deleted” is true.
[].subscription_id (string) – The id of the subscription that this item belongs to (required)
- GET /api/monitoring/standard/{subscription_id}/pipes/{pipe_id}¶
Returns standard monitoring information about the specified pipe
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Status Codes
200 OK – OK
- GET /api/monitoring/standard/{subscription_id}¶
Returns standard monitoring information about the specified subscription
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- GET /api/monitoring/invoicing/{subscription_id}¶
Returns invoicing information for the specified subscription
- Parameters
subscription_id (string) – The subscription id
- Status Codes
200 OK – OK
- GET /api/sso¶
Used for SSO authentication. If the portal detects that a user is in session, it creates a JWT and redirects to a provided URL. If not, it serves a login page to authenticate. Right now, this only works with Zendesk.
- Query Parameters
return_to (string) – The URL to return to after authentication
- Status Codes
200 OK – OK
- GET /api/login_implicit_flow¶
This is only used when logging in with openid connect providers that only support the “implicit flow” method. In that case the “id_token” is returned as part for the fragment-part of the url (the bit after the “#”-sign), which isn’t sent to the backend. The login_implicit_flow page contains a javascript snippet that extracts the id_token and calls the jwt_login endpoint.
- Status Codes
200 OK – OK
- POST /api/jwt_login¶
This is only used when logging in with openid connect providers that only support the “implicit flow” method.
- Status Codes
200 OK – OK
- POST /api/login/{provider_id}¶
This starts an openid connect authentication prosess. The user will eventually be redirected back to the ‘/login_callback/{provider_id}’ endpoint.
- Parameters
provider_id (string) – The name of the openid connect authentication provider. This must match a provider that has been configured in the sesamportal.yaml file.
- Status Codes
302 Found – A redirect to the authentication provider’s login-page.
- GET /api/login_callback/{provider_id}¶
The user is redirected back here after authenticating with an openid connect authentication provider.
- Parameters
provider_id (string) – The name of the openid connect authentication provider. This must match a provider that has been configured in the sesamportal.yaml file.
- Query Parameters
code (string) – A short-lived authorization code from the authentication provider. The DAP backend will use this code to retrieve the user’s information from the authentication provider.
- Status Codes
302 Found – Redirect to the sesam portal frontpage
- POST /api/login¶
This is called when the user wants to authenticate with an email-address and a password. If the login is successful, a new http session is created, and the sessionid is returned in a cookie.
- Status Codes
200 OK – OK
- GET /api/logout¶
Logs out the currently logged-in user, and clears the http session data. This is the legacy logout that returns a json object (the same as the /api/profile endpoint). This endpoint is deprected and should be removed once the gui has been updated to use the “/api/logout2” endpoint.
- Status Codes
200 OK – OK
- Response JSON Object
supported-operations.activate_portal_admin_powers (any) – (required)
supported-operations.create_paymentmethod (any) – (required)
supported-operations.create_subscription (any) – (required)
supported-operations.create_trial_subscription (any) – (required)
supported-operations.delete_account (any) – (required)
supported-operations.request_email_verification (any) – (required)
supported-operations.request_trial_subscription (any) – (required)
supported-operations.send_reset_password_email (any) – (required)
supported-operations.update_user_profile (any) – (required)
userInfo.isLoggedIn (boolean) –
userInfo.lastRequestTrial.created_time (string) – The time when the user made the request, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.dismissed_from_gui (boolean) – This can be set to true to hide a denied request from the user’s gui.
userInfo.lastRequestTrial.responded_time (string) – The time when the request was answered, as a ISO 8601 formatted string.
userInfo.lastRequestTrial.response (string) – A text describing the reason behind the result (typically used to explain why the request was denied.
userInfo.lastRequestTrial.status (string) – The result of the request.
userInfo.lastRequestTrial.user_submitted_information (object) – The information the user submits when requesting information. This information is diplayed to the sesam employee that reviews the “create trial” request. The exact properties that are present is decided by the GUI; both the backend storage and the admin form the sesam employee uses can handle any number and types of properties.
userInfo.profile.email (string) –
userInfo.profile.email_is_verified (boolean) –
userInfo.profile.name (string) –
userInfo.profile.nickname (string) –
userInfo.profile.picture (string) –
userInfo.providerIds[] (string) –
userInfo.providerWhitelist[] (string) –
userInfo.user_id (string) –
- GET /api/logout2¶
Logs out the currently logged-in user, and clears the http session data.
- Status Codes
302 Found – This redirect either to the sesam portal frontpage, or to a url that lets the user log out properly from a third party authentication provider.
- GET /api/available-subscription-settings¶
service for returning the various choices that exists for the various subscription settings
- Status Codes
200 OK – OK
- Response JSON Object
products.datahub.size[].label (string) – The label-text to use for this option (required)
products.datahub.size[].maximum_store_disk_usage (integer) – The maximum number of bytes that the datahub’s store is allowed to use on disk. (required)
products.datahub.size[].size (string) – The size-value of this option (“small”, “medium”, etc). (required)
- POST /api/estimate-subscription-price¶
service for calculating subscription price, based on a description of the select subscription options
- Query Parameters
expected_data_size (integer) – What is the expected data size of the subscription
- Request JSON Object
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
description (string) – A short description of the subscription.
id (string) –
license-expiration-date (string) – If this is specified it should be an ISO-8601 formatted datestring. This is used instead of the default value when setting the expiration date of the subscription license. The specified value cannot be in the past or too far in the future (a 400-response will be returned if the value is invalid).
name (string) –
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
provisioner_version (string) – This specified the provisioner this subscription will be provisioned with. If this value is “1” or missing, and the service specified is “in-cloud”, the original provisioner is used. If the value is “2”, the new “sesam-provisioner” is used. If the version is “snowflake” the Portal won’t provision this subscription.
service (string) – Specifies if the subscription is about in in-cloud or on-premise installation. This doesn’t have bearing on whether the Portal provisions this subscription or not, that is controlled by the provisioner_version property as of IS-10634. All on-premise subscriptions have provisioner_version “snowflake” and some in-cloud ones too.
type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values.
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
- Status Codes
200 OK – OK
- Response JSON Object
currency (string) – (required)
dynamic_items.backup_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.monitoring_pr_pipe_basic.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.monitoring_pr_pipe_enterprise.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.monitoring_pr_pipe_standard.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.search_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.sla_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.storage_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.vpn_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_total (string) – Transit-encoded decimal that specifies the total price for all the dynamic items.
expected_total_data_cost (string) – Calculated total monthly cost of data (if the expected data size was provided, otherwise not present)
fixed_items.datahub.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.datahub.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.microservices.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.microservices.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.search.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.search.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.sla.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.sla.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.vpn.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.vpn.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_total (string) – Transit-encoded decimal that specifies the total price for all the fixed items. (required)
- POST /api/subscriptions/{subscription_id}/estimate-subscription-price¶
service for calculating a new subscription price, based on a description of the select subscription options
- Parameters
subscription_id (string) – The subscription id
- Query Parameters
expected_data_size (integer) – What is the expected data size of the subscription
- Request JSON Object
connections[].id (string) – The name “id” is a special case; it represents the default sesam-node connection. When the item’s type is “databrowser”, the id refers to a databrowser in the “databrowser”-list in the “products”-part of the subscription info. (required)
connections[].name (string) – The human-redable name of the connection. (required)
connections[].type (string) – This specified the type of component this connection points to. (required)
connections[].url (string) – (required)
description (string) – A short description of the subscription.
name (string) –
network.network-acl[].access (string) – (required)
network.network-acl[].address (string) – (required)
network.public-access (boolean) –
paymentmethod_id (string) – The id of the PaymentMethod that the licence-fee for this subscription should be billed to. This property is only present for subscriptions of the type “paid”.
products.databrowser[].custom_fqdn[] (string) –
products.databrowser[].id (string) – (required)
products.databrowser[].name (string) –
products.databrowser[].size (string) –
products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
products.datahub.backup (string) –
products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
products.gdpr_platform.custom_fqdn[] (string) –
products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
products.gdpr_platform.size (string) – (required)
products.microservices.size (string) – (required)
products.search (boolean) – This controls whether to activate the search capability
products.sla.level (string) – (required)
products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
products.vpn.connections[].address_spaces[] (string) –
products.vpn.connections[].gateway_address (string) –
products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
products.vpn.dns[] (string) –
products.vpn.enable_snat (boolean) –
products.vpn.local-range (string) –
products.vpn.local-subnet (string) –
products.vpn.onsite-ranges[] (string) –
products.vpn.public-gateway (string) –
products.vpn.sesam_address_spaces[] (string) –
products.vpn.sesam_gateway (string) –
products.vpn.tier (integer) –
products.vpn.type (string) –
url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
- Status Codes
200 OK – OK
- Response JSON Object
currency (string) – (required)
dynamic_items.backup_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.monitoring_pr_pipe_basic.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.monitoring_pr_pipe_enterprise.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.monitoring_pr_pipe_standard.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.search_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.sla_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.storage_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_items.vpn_pr_GB.price (string) – Transit-encoded decimal that specifies the price of one unit of this item in the currency specified by the ‘currency’ property. (required)
dynamic_total (string) – Transit-encoded decimal that specifies the total price for all the dynamic items.
expected_total_data_cost (string) – Calculated total monthly cost of data (if the expected data size was provided, otherwise not present)
fixed_items.datahub.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.datahub.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.microservices.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.microservices.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.search.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.search.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.sla.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.sla.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_items.vpn.price (string) – Transit-encoded decimal that specifies the price in the currency specified by the ‘currency’ property. (required)
fixed_items.vpn.sub_type (string) – The ‘main’ type is given by the property-name used in the PriceEstimate to refer to this PriceEstimateFixedItem. The ‘sub_type’ specifies a more fine-grained type. (required)
fixed_total (string) – Transit-encoded decimal that specifies the total price for all the fixed items. (required)
- POST /api/is-available-subscription-name¶
This service checks that the specified subscription name is unique for specified “owner” and that is a valid name.
- Status Codes
200 OK – OK
- Response JSON Object
is-available (boolean) – (required)
- POST /api/request_trial¶
This is called when a user wants to request a trial subscription.
- Status Codes
200 OK – OK
- POST /api/cancel_request_trial¶
This is called when a user wants to cancel a previously made ‘create trial’ request.
- Status Codes
200 OK – OK
- POST /api/dismiss_denied_request_trial¶
This is called when a user wants to dismiss a denied ‘create trial’ request (so that the request doens’t show up in the user’s gui any longer).
- Status Codes
200 OK – OK
- PUT /api/password¶
Changes the password of the user. This is called when a user is logged in, but wants to change their password.
- Status Codes
200 OK – OK
- Response JSON Object
success (boolean) – (required)
- POST /api/forgot-password¶
Sends a mail to the specified emailaddress with a one-time link that lets the user change the password. The link leads to the normal gui with a url parameter that contains the “change-password” one-time token.
- Status Codes
200 OK – OK
- Response JSON Object
success (boolean) – (required)
- POST /api/reset-password¶
changes the user’s password. This is part of the “forgotten password” flow.
- Status Codes
200 OK – OK
- Response JSON Object
success (boolean) – (required)
- POST /api/verify-emailaddress¶
Verifies the user’s email address. This is part of the “verify emailaddress” flow.
- Status Codes
200 OK – OK, address has been verified
400 Bad Request – Token might be invalid, already used or expired
- POST /api/request-email-verification¶
Asks the portal to send a new ‘Verify emailaddress’ email.
- Status Codes
200 OK – OK, a new email has been sent
409 Conflict – The current user already has a pending ‘verify emailaddress email’, so no new email can be sent at this time.
- GET /api/payment/stripe_publishable_api_key¶
Returns the Stripe publishable api key.
- Status Codes
200 OK – OK
- POST /api/payment/stripe_coupon¶
Returns a coupon if it exists
- Request JSON Object
code (string) – The coupon code
- Status Codes
200 OK – OK
- GET /api/sesam_status¶
Proxy for querying the sesam statuspage API
- Status Codes
200 OK – OK
404 Not Found – Could not connect to sesam.statuspage.io
- POST /api/payment/subscription¶
Creates a new customer and subscription in Stripe and creates a PaymentMethod in the Sesam portal. Also creates a new gdpr subscription in the Sesam Portal (using the new paymentmethod).
- Request JSON Object
companyAddress (string) – The address of the company
companyCity (string) – The city the company resides in
companyCountry (string) – The country the company resides in
companyName (string) – The name of the company
companyZipCode (string) – The zip code of the companys address
couponCode (string) – Optional coupon code
email (string) – The email that the customer should be linked to
phoneNumber (string) – The phone number of the customer
token (object) – The token object returned from Stripe
vat (string) – The VAT of the company
- Status Codes
200 OK – OK
- GET /api/paymentmethods¶
Returns the paymentmethods that this user owns.
- Status Codes
200 OK – OK
- Response JSON Object
[]._updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
[].audit.created_by.email (string) –
[].audit.created_by.name (string) –
[].audit.created_by.picture (string) –
[].audit.created_by.user_id (string) –
[].audit.created_ts (string) –
[].audit.last_modified_by.email (string) –
[].audit.last_modified_by.name (string) –
[].audit.last_modified_by.picture (string) –
[].audit.last_modified_by.user_id (string) –
[].audit.last_modified_ts (string) –
[].billing_info (object) – An json-structure that describes the billing info for the payment method. The client is currently free to store whatever it wants here (but it should be in reasonably structure; we will probably add some validation here later, once we have figured out which fields we need) (required)
[].description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
[].id (string) – The internal id of this paymentmethod. (required)
[].is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
[].name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
[].owner.email (string) – The email of the owner (required)
[].owner.name (string) – The name of the owner (required)
[].owner.picture (string) –
[].owner.user_id (string) – The id of the owner (required)
[].subscriptions[].id (string) – The subscription id (required)
[].subscriptions[].name (string) – The name of the the subscription (required)
[].supported-operations.delete_paymentmethod (any) – (required)
[].supported-operations.modify_billing_info (any) – (required)
[].supported-operations.modify_name_and_description (any) – (required)
[].type (string) – The type of this paymentmethod. (required)
- POST /api/paymentmethods¶
Creates a new paymentmethod
- Request JSON Object
billing_info (object) – An json-structure that describes the billing info for the payment method. The client is currently free to store whatever it wants here (but it should be in reasonably structure; we will probably add some validation here later, once we have figured out which fields we need)
card_token (string) – This is set for PaymentMethods that represents a Stripe credit card. This attribute is never sent to the client; it is only sent from the client to the server when the paymentmethod is created.
description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use.
name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use.
type (string) – The type of this paymentmethod.
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
billing_info (object) – An json-structure that describes the billing info for the payment method. The client is currently free to store whatever it wants here (but it should be in reasonably structure; we will probably add some validation here later, once we have figured out which fields we need) (required)
description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
id (string) – The internal id of this paymentmethod. (required)
is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
owner.email (string) – The email of the owner (required)
owner.name (string) – The name of the owner (required)
owner.picture (string) –
owner.user_id (string) – The id of the owner (required)
subscriptions[].id (string) – The subscription id (required)
subscriptions[].name (string) – The name of the the subscription (required)
supported-operations.delete_paymentmethod (any) – (required)
supported-operations.modify_billing_info (any) – (required)
supported-operations.modify_name_and_description (any) – (required)
type (string) – The type of this paymentmethod. (required)
- GET /api/paymentmethods/{paymentmethod_id}¶
Returns information about the specified paymentmethod
- Parameters
paymentmethod_id (string) – The paymentmethod id
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
billing_info (object) – An json-structure that describes the billing info for the payment method. The client is currently free to store whatever it wants here (but it should be in reasonably structure; we will probably add some validation here later, once we have figured out which fields we need) (required)
description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
id (string) – The internal id of this paymentmethod. (required)
is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
owner.email (string) – The email of the owner (required)
owner.name (string) – The name of the owner (required)
owner.picture (string) –
owner.user_id (string) – The id of the owner (required)
subscriptions[].id (string) – The subscription id (required)
subscriptions[].name (string) – The name of the the subscription (required)
supported-operations.delete_paymentmethod (any) – (required)
supported-operations.modify_billing_info (any) – (required)
supported-operations.modify_name_and_description (any) – (required)
type (string) – The type of this paymentmethod. (required)
- DELETE /api/paymentmethods/{paymentmethod_id}¶
Deletes the specified paymentmethod
- Parameters
paymentmethod_id (string) – The paymentmethod id
- Status Codes
200 OK – OK
- PUT /api/paymentmethods/{paymentmethod_id}¶
Update the paymentmethod
- Parameters
paymentmethod_id (string) – The paymentmethod id
- Request JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it.
billing_info (object) – An json-structure that describes the billing info for the payment method. The client is currently free to store whatever it wants here (but it should be in reasonably structure; we will probably add some validation here later, once we have figured out which fields we need)
description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use.
name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use.
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
billing_info (object) – An json-structure that describes the billing info for the payment method. The client is currently free to store whatever it wants here (but it should be in reasonably structure; we will probably add some validation here later, once we have figured out which fields we need) (required)
description (string) – A humanreadable description of this paymentmethod. This is for the customers internal use. (required)
id (string) – The internal id of this paymentmethod. (required)
is_verified (boolean) – This is set to true when a Portal administrator (i.e a SESAM employee) has manually examined the payment information and checked that it is legitimate. Only portal administrators are allowed to change the value of this property. (required)
name (string) – A humanreadable name of this paymentmethod. This is for the customers internal use. (required)
owner.email (string) – The email of the owner (required)
owner.name (string) – The name of the owner (required)
owner.picture (string) –
owner.user_id (string) – The id of the owner (required)
subscriptions[].id (string) – The subscription id (required)
subscriptions[].name (string) – The name of the the subscription (required)
supported-operations.delete_paymentmethod (any) – (required)
supported-operations.modify_billing_info (any) – (required)
supported-operations.modify_name_and_description (any) – (required)
type (string) – The type of this paymentmethod. (required)
- GET /api/admin¶
Returns a simple htmlpage that lets portal admin perform various operations. This should probably be replaces with a proper fancy page in the normal javascript GUI, but we want the functionality quickly, and only sesam employees will ever see it.
- Status Codes
200 OK – OK
- POST /api/admin¶
Handles POSTs for the various forms on the main admin-page.
- Status Codes
200 OK – OK
- GET /api/admin/search¶
Returns a simple htmlpage that lets admins search for subscriptions and perform various operations on them.
- Query Parameters
search_type (string) – The type of items to search for.
query (string) – Specifies the text to filter search for. An empty string means to display all the items of the selected type.
search_in_all_fields (boolean) – If this is set to false (the default), the query-text will only be matched against a few selected fields (name and id, usually). If it is set to true, the query-text will be matched against all the fields.
- Status Codes
200 OK – OK
- POST /api/admin/search¶
Handles POSTs for the various forms on the search-page.
- Status Codes
200 OK – OK
- GET /api/admin/portal_administrators¶
Returns a simple htmlpage that display the current portal admins.
- Status Codes
200 OK – OK
- POST /api/admin/portal_administrators¶
Handles POSTs for the various forms on the portal_admins-page.
- Status Codes
200 OK – OK
- GET /api/admin/delete_user¶
Returns a simple htmlpage that lets the admin delete users
- Status Codes
200 OK – OK
- POST /api/admin/delete_user¶
Handles POSTs for the various forms on the delete_user-page.
- Status Codes
200 OK – OK
- POST /api/admin/throw_exception¶
This is a test-endpoint for throwing various exceptions. This is used in ci-tests to verify that exceptions of various types are logged correctly.
- Status Codes
200 OK – OK
- GET /api/admin/config_gui¶
Returns a gui for examining and modifying the portal configuration.
- Status Codes
200 OK – OK
- GET /api/admin/pre_created_subscriptions¶
Returns a gui for examining and modifying the “pre-created subscriptions” settings.
- Status Codes
200 OK – OK
- GET /api/admin/config¶
Returns the current runtime configuration of the Portal. This is config that is intended to be modified at runtime (as opposed to stuff like database usernames and passwords, which is specified in the sesamportal.yaml file). See the definition of the ConfigEntity model and it’s child models.
- Status Codes
200 OK – OK
- Response JSON Object
[]._id (string) – (required)
[].type (string) – (required)
- POST /api/admin/config¶
Adds one or more new runtime configuration entries to the Portal.
- Request JSON Object
[]._id (string) – (required)
[].type (string) – (required)
- Status Codes
200 OK – OK
409 Conflict – One or more of the config entities already existed.
- PUT /api/admin/config/validation_hack_for_SubscriptionJWT¶
This is a dummy endpoint that is used to register the SubscriptionJWT definition, so that it can be used to validate configuration entities in the python code. The endpoint just returns a 400 response.
- Request JSON Object
audit.created_by.email (string) –
audit.created_by.name (string) –
audit.created_by.picture (string) –
audit.created_by.user_id (string) –
audit.created_ts (string) –
audit.last_modified_by.email (string) –
audit.last_modified_by.name (string) –
audit.last_modified_by.picture (string) –
audit.last_modified_by.user_id (string) –
audit.last_modified_ts (string) –
client_id (string) – Optional. The ‘client_id’ (if any) associated with this JWT. This is only present for tokens where the refresh_interval has been set.
client_secret (string) – Optional. The ‘client_secret’ (if any) associated with this JWT. For security-reasons this is only returned when the JWT is created. This is only present for tokens where the refresh_interval has been set.
description (string) – A user-assigned description of this token. (required)
id (string) – The internal id of the token (required)
jwt_string (string) – The actual signed JWT. For security-reasons this is only returned when the JWT is created.
name (string) – A user-assigned name for this token. (required)
payload.api_token_id (string) – The id of this JWT api token. We need a copy of the id in the payload, since the sesam-node needs to be able to retrieve it in order to check if the token has been invalidated. (required)
payload.exp (number) – Standard “expiration time” field. This is measured in the number of seconds since the Epoch. Note that if the ‘refresh_interval’ parameter is set, this is not the “exp” value that will actually be in the jwt_string; instead the value will be “current_time + refresh_interval” (required)
payload.iat (number) – Standard “issued at” field. This is measured in the number of seconds since the Epoch. (required)
payload.principals (object) – This is a mapping from subscriptionid to the list of principals for that subscription. The reason we have a mapping is that our JWTs can contain potentially contain permissions for more than one subscription. In this case there will alwasy be exactly one subscription_id in this mapping (i.e. for the subscription that this api jwt belongs to). (required)
payload.user_id (string) – (required)
payload.user_principal (string) – This is the principal that normally represents the user itself. This is always set to ‘group:Everyone’ for api JWTs.
payload.user_profile.email (string) –
payload.user_profile.name (string) –
payload.user_profile.picture (string) – An URL pointing to an (avatar-)picture of the user
refresh_interval (number) – Optional. Specifies the interval (in seconds) at which the token must be refreshed.
supported-operations.delete_api_jwt_token (any) – (required)
- Status Codes
400 Bad Request – This endpoint will always return a 400 response
- PUT /api/admin/config/validation_hack_for_AllowedProvidersForDomains¶
This is a dummy endpoint that is used to register the AllowedProvidersForDomains definition, so that it can be used to validate configuration entities in the python code. The endpoint just returns a 400 response.
- Status Codes
400 Bad Request – This endpoint will always return a 400 response
- PUT /api/admin/config/validation_hack_for_AutoJoinSubscriptionGroup¶
This is a dummy endpoint that is used to register the AutoJoinSubscriptionGroup definition, so that it can be used to validate configuration entities in the python code. The endpoint just returns a 400 response.
- Status Codes
400 Bad Request – This endpoint will always return a 400 response
- PUT /api/admin/config/validation_hack_for_PreCreatedSubscription¶
This is a dummy endpoint that is used to register the PreCreatedSubscription definition, so that it can be used to validate configuration entities in the python code. The endpoint just returns a 400 response.
- Status Codes
400 Bad Request – This endpoint will always return a 400 response
- PUT /api/admin/config/validation_hack_for_RateLimits¶
This is a dummy endpoint that is used to register the RateLimits definition, so that it can be used to validate configuration entities in the python code. The endpoint just returns a 400 response.
- Status Codes
400 Bad Request – This endpoint will always return a 400 response
- PUT /api/admin/config/{config_entity_id}¶
Updates the specified configuration entry.
- Parameters
config_entity_id (string) – The config entity id
- Request JSON Object
_id (string) – (required)
type (string) – (required)
- Status Codes
200 OK – OK
409 Conflict – Someone else has modified the config entity.
- GET /api/admin/config/{config_entity_id}¶
Returns the specified configuration entry.
- Parameters
config_entity_id (string) – The config entity id
- Status Codes
200 OK – OK
- Response JSON Object
_id (string) – (required)
type (string) – (required)
- DELETE /api/admin/config/{config_entity_id}¶
Deletes the specified configuration entry.
- Parameters
config_entity_id (string) – The config entity id
- Status Codes
200 OK – OK
- GET /api/subscriptions/{subscription_id}/subscription-settings¶
This endpoint is intended to be used by subscription sesam-nodes; these nodes needs a way to get notified when a user has done something that changes a subscription’s settings. For instance, this is used by the self-service multinode to retrieve the ip-filtering rules to use.
- Parameters
subscription_id (string) – The subscription id
- Query Parameters
since (integer) – Specifies that the endpoint should only return entities newer than the specified ‘since’ value. The since-value should be set to the value of the “_updated”-attribute in the last seen entity. See https://docs.sesam.io/hub/features/continuation-support.html for details on how this works.
- Status Codes
200 OK – OK
- Response JSON Object
[]._id (string) – (required)
[]._updated (any) – This is a version-value that is used to implement optimistic locking on the server. Note that this value can be of any type, so the client shouldn’t make any assumptions about it. (required)
[].audit.created_by.email (string) –
[].audit.created_by.name (string) –
[].audit.created_by.picture (string) –
[].audit.created_by.user_id (string) –
[].audit.created_ts (string) –
[].audit.last_modified_by.email (string) –
[].audit.last_modified_by.name (string) –
[].audit.last_modified_by.picture (string) –
[].audit.last_modified_by.user_id (string) –
[].audit.last_modified_ts (string) –
[].created (string) – (required)
[].description (string) – A short description of the subscription.
[].name (string) – (required)
[].network.network-acl[].access (string) – (required)
[].network.network-acl[].address (string) – (required)
[].network.public-access (boolean) –
[].products.databrowser[].custom_fqdn[] (string) –
[].products.databrowser[].id (string) – (required)
[].products.databrowser[].name (string) –
[].products.databrowser[].size (string) –
[].products.databrowser[].type (string) – This is only set when the databrower is being used in a gdpr platform
[].products.datahub.backup (string) –
[].products.datahub.byok (boolean) – Setting this to true enables the “Bring Your Own Keys” feature in Azure. See this page for some background on the BYOK feature: https://docs.microsoft.com/en-us/azure/information-protection/byok-price-restrictions Note that enabling this feature incurs additional costs.
[].products.datahub.developer_mode (boolean) – This is a property that is set in some subscriptions to allow certain APIs such as reset node that is dangerous to enable in a production environment
[].products.datahub.fixed_price_gb (integer) – This property specifies the number of GBs that are set as the threshold for the subscription fixed price payment scheme. If this property exists, subscription is invoiced using fixed price scheme.
[].products.datahub.maximum_store_disk_usage (integer) – This is a read-only property that is set in some special cases where a custom server has been set up by sesam employees. It specifies the maximum size of the data store in bytes.
[].products.datahub.monitoring (string) – This can be set to “standard” to enable monitoring for this subscription (this currently requires some manual work by SESAM employees).
[].products.datahub.size (string) – This property describes the size of the node. As of Sep 2021, small, medium, large and xlarge are legacy sizes. The UI maps small/medium to single and xlarge to multi. (required)
[].products.datahub.version (string) – The docker tag that the user wants the sesam-node container to use. The docker tag that is currently in use is specified in the “provisioning_result”->”datahub”->”tag” property. There will always be a delay between the time the user changes the “version”-property and the time when the “provisioning_result”->”datahub”->”tag” property changes; at the very least the sesam-node needs to be stopped and restarted with the new docker-image.
[].products.gdpr_platform.custom_fqdn[] (string) –
[].products.gdpr_platform.name (string) – An optional, humanreadable name for this gdpr platform.
[].products.gdpr_platform.size (string) – (required)
[].products.microservices.size (string) – (required)
[].products.search (boolean) – This controls whether to activate the search capability
[].products.sla.level (string) – (required)
[].products.vpn.connections[]._id (integer) – This is an internal unique id that is assigned to new vpn-connections by the backend. The GUI will not display this value, but will include it as-is in PUT-requests. (The portal backend uses this value to replace the placeholder “****” for the shared_key property in PUT-requests; it needs a way to uniquely identify connections).
[].products.vpn.connections[].address_spaces[] (string) –
[].products.vpn.connections[].gateway_address (string) –
[].products.vpn.connections[].shared_key (string) – This is the secret shared key that is used to authenticate against the VPN. This property is write-only and will always look like “****” in the api-responses from the backend. If the special value “****” is used in a PUT-request, the value is ignored and the current shared_key value will not be changed. The intention is that the GUI can display and send the shared_key value as-is.
[].products.vpn.dns[] (string) –
[].products.vpn.enable_snat (boolean) –
[].products.vpn.local-range (string) –
[].products.vpn.local-subnet (string) –
[].products.vpn.onsite-ranges[] (string) –
[].products.vpn.public-gateway (string) –
[].products.vpn.sesam_address_spaces[] (string) –
[].products.vpn.sesam_gateway (string) –
[].products.vpn.tier (integer) –
[].products.vpn.type (string) –
[].provisioning_settings.kubernets_upgrade_channel (string) – The upgrade channel to use to auto-upgrade the kubernetes cluster. See https://docs.microsoft.com/en-us/azure/aks/upgrade-cluster#set-auto-upgrade-channel for a detailed explanation and for a list of available channels.
[].provisioning_settings.max_workers (integer) – The maximum number of server machines this subscription is allowed to use.
[].provisioning_settings.num_workers (integer) – The number of server machines this subscription currently uses.
[].type (string) – This can be set to ‘trial’ in order to create a trial subscription. It is only legal to set this to true if the ‘create_trial_subscription’-operation (from the ‘supported-operations’ from /api/profile) is enabled and all the various ‘size’ and ‘level’ settings on the subscription is at their minimum values.
[].url (string) – An URL that points to a web-page that is related to the subscription somehow. This url just for human consumption, and would typically be used to point to the home-page of a project, or a wiki-page that describes what the sesam-installation does.
- GET /api/subscriptions/{subscription_id}/pipe-settings¶
Returns a list of pipe-setting dicts. This endpoint is intended to be used by subscription sesam-nodes; these nodes needs a way to get notified when a user has done something that changes a pipe’s monitoring requirements.
- Parameters
subscription_id (string) – The subscription id
- Query Parameters
since (string) – Specifies that the endpoint should only return entities newer than the specified ‘since’ value. The since-value should be set to the value of the “_updated”-attribute in the last seen entity. See for details on how this works.
- Status Codes
200 OK – OK
- Response JSON Object
[]._deleted (boolean) – This is set to true if the entry for the pipe has once existed, but should now be removed.
[]._id (string) – This is the id of the pipe that this entry describes. (required)
[]._updated (any) – An opaque value that can be used as the value of the “since” parameter in a later call.
[].insights_enabled (boolean) – Specifies if the “Insights”-tab should be displayed for this pipe. (required)
[].monitoring_settings.log_events.batch-write-error.triggers[] (string) –
[].monitoring_settings.log_events.pump-completed.triggers[] (string) –
[].monitoring_settings.log_events.pump-failed.triggers[] (string) –
[].monitoring_settings.log_events.pump-started.triggers[] (string) –
[].monitoring_settings.log_events.read-error.triggers[] (string) –
[].monitoring_settings.log_events.write-error.triggers[] (string) –
- PUT /api/subscriptions/{subscription_id}/pipe-settings/{pipe_id}¶
Update the settings of the specified pipe.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Status Codes
200 OK – OK
- Response JSON Object
_updated (any) – This is required for optimistic locking and should be included if there already existed a pipe-settings entry for the pipe.
insights_enabled (boolean) – Specifies if the “Insights”-tab should be displayed for this pipe.
- GET /api/subscriptions/{subscription_id}/pipe-settings/{pipe_id}¶
Returns the settings of the specified pipe.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Status Codes
200 OK – OK
- Response JSON Object
_deleted (boolean) – This is set to true if the entry for the pipe has once existed, but should now be removed.
_id (string) – This is the id of the pipe that this entry describes. (required)
_updated (any) – An opaque value that can be used as the value of the “since” parameter in a later call.
insights_enabled (boolean) – Specifies if the “Insights”-tab should be displayed for this pipe. (required)
monitoring_settings.log_events.batch-write-error.triggers[] (string) –
monitoring_settings.log_events.pump-completed.triggers[] (string) –
monitoring_settings.log_events.pump-failed.triggers[] (string) –
monitoring_settings.log_events.pump-started.triggers[] (string) –
monitoring_settings.log_events.read-error.triggers[] (string) –
monitoring_settings.log_events.write-error.triggers[] (string) –
- DELETE /api/subscriptions/{subscription_id}/pipe-settings/{pipe_id}¶
Deletes the settings of the specified pipe.
- Parameters
subscription_id (string) – The subscription id
pipe_id (string) – The pipe id
- Status Codes
200 OK – OK
- GET /api/subscriptions/{subscription_id}/revoked_json_web_tokens¶
Returns a list of revoked json web tokens. Note that this includes both the transient JWTs that are issued by the unified GUI to talk to the node, and the special API JWTs that are typically very long-lived. This endpoint is intended to be used by subscription sesam-nodes; these nodes needs a way to get notified when a user’s permissions have been modified, and when an api JWT has been revoked.
- Parameters
subscription_id (string) – The subscription id
- Query Parameters
since (string) – Specifies that the endpoint should only return entities newer than the specified ‘since’ value. The since-value should be set to the value of the “_updated”-attribute in the last seen entity. See https://docs.sesam.io/hub/documentation/service-configuration/pipes/configuration-sources.html#continuation-support for details on how this works.
- Status Codes
200 OK – OK
- Response JSON Object
[]._id (string) – (required)
[]._updated (any) – An opaque value that can be used as the value of the “since” parameter in a later call. (required)
[].api_token_id (string) – The id of the API JWT to invalidate. This refers directly to one specific API JWT. This property is mutually exclusive with the ‘user_principal’ parameter, each entity will have either a ‘user_principal’ parameter or a ‘api_token_id’ parameter, but never both.
[].revoked_by.email (string) –
[].revoked_by.name (string) –
[].revoked_by.picture (string) –
[].revoked_by.user_id (string) –
[].revoked_ts (string) – The time this revocation happened. (required)
[].subscription_id (string) – The subscription this revocation applies to. (required)
[].user_principal (string) – The user_principal to invalidate regular (non-api) JWTs for. This tells the subscription-node that all JWTs for the specified user_principal that has been created before the revoked_by time are invalid. This property is mutually exclusive with the ‘api_token_id’ parameter, each entity will have either a ‘user_principal’ parameter or a ‘api_token_id’ parameter, but never both.
- GET /api/subscriptions/{subscription_id}/updated_licences¶
Returns a list of updated licenses. This endpoint is intended to be used by subscription sesam-nodes; these nodes needs a way to get notified when a subscription’s lisence has been upgraded.
- Parameters
subscription_id (string) – The subscription id
- Query Parameters
since (string) – Specifies that the endpoint should only return entities newer than the specified ‘since’ value. The since-value should be set to the value of the “_updated”-attribute in the last seen entity. See https://docs.sesam.io/hub/documentation/service-configuration/pipes/configuration-sources.html#continuation-support for details on how this works.
- Status Codes
200 OK – OK
- Response JSON Object
[]._deleted (boolean) – true if this lisence is obsolete. (required)
[]._id (string) – (required)
[]._updated (any) – An opaque value that can be used as the value of the “since” parameter in a later call. (required)
[].signed (string) – The signed license key. This is only present for ‘on-premise’ subscriptions. For ‘in-cloud’ subscriptions the license-key is handled by the provisioner service and should never be shown to the customer. (required)
- POST /api/subscriptions/{subscription_id}/resource-needs¶
This endpoint is intended to be used by subscription sesam-nodes; these nodes needs a way to specify that more hardware resources are required.
- Parameters
subscription_id (string) – The subscription id
- Request JSON Object
datahub (object) – This property is deprecated. Use ‘provisioning_settings’ instead.
provisioning_settings.num_workers (integer) – Specifies that the number of worker boxes that this subscription needs. (required)
- Status Codes
200 OK – OK
- GET /api/provisioning/domain¶
Returns information about availability of a domain name.
- Query Parameters
fqdn (string) –
subscription_id (string) –
- Status Codes
200 OK – OK
- Response JSON Object
available (boolean) – (required)
content (string) –
fqdn (string) – (required)
message (string) –
ttl (integer) –
type (any) –
- POST /api/feedback¶
Submits feedback from the feedback form to Slack
- Request JSON Object
message (string) – The message body of the feedback
path (string) – The path from where the feedback was submitted
user_email (string) – The email of the sender
- Status Codes
200 OK – OK
- GET /.well-known/openid-configuration¶
This endpoint returns the “OpenID Provider Configuration Response”, as described at https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderConfigurationResponse
- Status Codes
200 OK – OK
- POST /api/openid_connect/token¶
This is the “OpenID Connect Token endpoint”, as described at https://tools.ietf.org/html/rfc6749#section-3.2
- Status Codes
200 OK – OK
Swagger Files¶
To access the Swagger endpoint for your instance go to https://<your-instance>/api/reference
.
For the Portal API go to the Autogenerated Swagger Endpoint for the Portal.
Config groups¶
See the config groups API for more information.
Metrics endpoint¶
If Monitoring and Metrics is enabled, you can access subscription and pipe metrics in the Prometheus-compatible metrics API endpoint from your external monitoring tools.