Download OpenAPI specification:
Create application agent
| Meeco-Organisation-Id required | string <uuid> |
object |
{- "application": {
- "description": "string",
- "name": "string",
- "security_rights": [
- "vk:org:delegation"
]
}
}{- "application": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "description": "string",
- "name": "string",
- "security_rights": [
- "vk:org:delegation"
]
}
}Load all application agents
| Meeco-Organisation-Id required | string <uuid> |
{- "applications": [
- {
- "id": null,
- "name": null,
- "description": null,
- "type": null,
- "secret": null,
- "scopes": null,
- "redirects": [ ],
- "logout_redirects": [ ],
- "is_active": null,
- "created_at": null,
- "updated_at": null
}
]
}Get application agent information
| id required | string |
| Meeco-Organisation-Id required | string <uuid> |
{- "application": {
- "id": null,
- "name": null,
- "description": null,
- "type": null,
- "secret": null,
- "scopes": null,
- "redirects": [ ],
- "logout_redirects": [ ],
- "is_active": null,
- "created_at": null,
- "updated_at": null
}
}Update application agent
| id required | string |
| Meeco-Organisation-Id required | string <uuid> |
required | object |
{- "application": {
- "description": "string",
- "name": "string"
}
}{- "application": {
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "description": "string",
- "name": "string",
- "security_rights": [
- "vk:org:delegation"
]
}
}Delete an organisation.
In order to execute this action the current user must have security right atom:tenant:create_org for the tenant of the organisation.
| org_id required | string <uuid> ID of the organisation |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Show an organisation.
In order to execute this action the current user must have
atom:global:view_all_orgs oratom:tenant:view_tenant_orgs for the tenantatom:org:view_org for the org with the ID in parameter org_id| org_id required | string <uuid> ID of the organisation |
{- "org": {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
}Update an organisation.
In order to execute this action the current user must have security right atom:tenant:create_org for the tenant with the ID in parameter tenant_id.
| org_id required | string <uuid> ID of the organisation |
Organisation attributes
| authorised_officer_email | string Authorised officer email |
| authorised_officer_first_name | string Authorised officer first name |
| authorised_officer_last_name | string Authorised officer last name |
| business_address | string Business address |
| color | string The color associated with the organisation in the hex format. Used for the UI. |
| company_number | string Company number |
| company_url | string or null <uri> URL of the company |
| legal_name | string Legal number |
| lei_number | string Legal entity identification number |
| logo_url | string <uri> URL to a logo image |
| name required | string Name of the organisation to create |
| status_in_tenant | string Status: signed legal agreement received or proof of concept |
| trading_name | string Trading number |
{- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "status_in_tenant": "string",
- "trading_name": "string"
}{- "org": {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
}List admins of an organisation.
It is also possible to request a list of archived admins of the organisation, that is, users who used to have organisation security rights for the given organisation, but do not have them now.
In order to execute this action the current user must have
atom:org:list_org_admins for the organisation with the ID in parameter org_id oratom:tenant:list_admins_of_all_orgs_of_tenant for the parent tenant of the organisation org_id or| org_id required | string <uuid> ID of the organisation |
| status | string Enum: "active" "archived" admin status: |
string search admins by their email address. Currenty works only with status=archived | |
| per_page | integer number of admins per page |
| page | integer Number of the page to serve. This parameter activates classic page-based pagination
and cannot be used with parameter |
| order | string Enum: "asc" "desc" order admins by given name in ascending or descending order |
| next_page_after | string When cursor based pagination is used, each paginated response has value |
{- "admins": [
- {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
], - "meta": { },
- "next_page_after": "string"
}Remove all organisation security rights from user.
In order to execute this action the current user must one of the following security rights:
atom:global:assign_org_sr_to_useratom:tenant:assign_org_sr_to_useratom:org:assign_org_sr_to_user| org_id required | string <uuid> ID of the organisation |
| org_admin_id required | string <uuid> ID of the admin |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Show an admin of a given organisation.
In order to execute this action the current user must have
atom:org:list_org_admins for the organisation with the ID in parameter org_id oratom:tenant:list_admins_of_all_orgs_of_tenant for the parent tenant of the organisation org_id or| org_id required | string <uuid> ID of the organisation |
| org_admin_id required | string <uuid> ID of the admin |
{- "admin": {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
}Remove a user from admins of the given organisation, and put the admin into the registry of former admins of that organisation.
In order to execute this action the current user must one of the following security rights:
atom:global:assign_org_sr_to_useratom:tenant:assign_org_sr_to_useratom:org:assign_org_sr_to_user| org_id required | string <uuid> ID of the organisation |
| org_admin_id required | string <uuid> ID of the admin |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Reinstate an archived user and make him/her a org admin again.
In order to execute this action the current user must one of the following security rights:
atom:org:assign_org_sr_to_useratom:tenant:assign_org_sr_to_useratom:global:assign_org_sr_to_user| org_id required | string <uuid> ID of the organisation |
| org_admin_id required | string <uuid> ID of the admin |
{- "admin": {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
}List organisation security rights of a organisation admin.
In order to execute this action the current user must have security right atom:org:list_org_admin_sr for the organisation with the ID in parameter org_id or atom:tenant:list_org_admin_sr for the tenant that the organisation belongs to, or global security right atom:global:list_admin_sr_of_any_admin"
| org_id required | string <uuid> ID of the organisation |
| org_admin_id required | string <uuid> ID of an organisation admin |
{- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
]
}Assign organisation security rights to a user.
The endpoint can process security rights of 2 categories:
for_org = true and for_tenant = falsefor_org = true and for_tenant = true, in this case the security right will be assigned to the tenant which organisation belongs toIn order to execute this action the current user must have one of the following security rights:
atom:org:assign_org_sr_to_user for the organisation with the ID in parameter org_idatom:tenant:assign_org_sr_to_user for the tenant that the organisation belongs toatom:global:assign_org_sr_to_user"| org_id required | string <uuid> ID of the organisation |
| org_admin_id required | string <uuid> ID of an organisation admin |
list of security rights
| security_rights required | Array of strings list of security rights |
{- "security_rights": [
- "atom:org:assign_org_sr_to_user"
]
}{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Archive an organisation.
In order to execute this action the current user must have security right atom:tenant:create_org for the tenant of the organisation.
| org_id required | string <uuid> ID of the organisation |
{- "org": {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
}Restore an organisation.
In order to execute this action the current user must have security right atom:tenant:create_org for the tenant of the organisation.
| org_id required | string <uuid> ID of the organisation |
{- "org": {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
}Add security rights to an organisation.
In order to execute this action the current user must have security right atom:tenant:assign_sr_to_org for the tenant which the organisation belongs to.
| org_id required | string <uuid> ID of the organisation |
list of security rights
| security_rights required | Array of strings list of security rights |
{- "security_rights": [
- "atom:org:assign_org_sr_to_user"
]
}{- "org": {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
}Remove security rights from an organisation.
In order to execute this action the current user must have security right atom:tenant:assign_sr_to_org for the tenant which the organisation belongs to.
| org_id required | string <uuid> ID of the organisation |
| security_rights required | string Comma-separated security rights to remove |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}List organisations in a tenant.
In order to execute this action the current user must have global security atom:global:view_all_orgs or security right atom:tenant:view_tenant_orgs for the tenant with the ID in parameter tenant_id.
| tenant_id required | string <uuid> ID of the tenant |
| status | string Enum: "active" "archived" "all" org status: |
| per_page | integer number of organisations per page |
| order | string Enum: "asc" "desc" order organisations by name in ascending or descending order |
| page | integer Number of the page to serve. This parameter activates classic page-based pagination
and cannot be used with parameter |
| next_page_after | string When cursor based pagination is used, each paginated response has value |
| filter_by | string Search organisations whose names contains the given string. |
{- "meta": { },
- "next_page_after": "string",
- "orgs": [
- {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
]
}Create an organisation.
In order to execute this action the current user must have security right atom:tenant:create_org for the tenant with the ID in parameter tenant_id.
| tenant_id required | string <uuid> ID of the tenant |
| no_first_user | boolean If true, the current user will not become the first admin of the organisation, and the organisation will have not admins. By default the current user becomes the first admin of the organisation |
| add_all_external_security_rights | boolean By default only all internal org-level security rights of the parent tenant are added to a new organisation If this parameter is true, also all external org-level security rights of the parent tenant are added to a new organisation. |
Organisation attributes
| authorised_officer_email | string Authorised officer email |
| authorised_officer_first_name | string Authorised officer first name |
| authorised_officer_last_name | string Authorised officer last name |
| business_address | string Business address |
| color | string The color associated with the organisation in the hex format. Used for the UI. |
| company_number | string Company number |
| company_url | string or null <uri> URL of the company |
| legal_name | string Legal number |
| lei_number | string Legal entity identification number |
| logo_url | string <uri> URL to a logo image |
| name required | string Name of the organisation to create |
| status_in_tenant | string Status: signed legal agreement received or proof of concept |
| trading_name | string Trading number |
{- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "status_in_tenant": "string",
- "trading_name": "string"
}{- "org": {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
}Show a list of organisations which the current user can see. These are the following organisations:
atom:global:view_all_tenants, all organisations are shownatom:tenant:view_tenant_orgsatom:org:view_org Can take optional parameter tenant_id which will restrict the list of organisations to one tenant only.
| tenant_id | string <uuid> This parameter is the ID of a tenant and if present it restricts the list of organisations to one tenant only. |
{- "orgs": [
- {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
]
}Create a signed upload URL for one of the supported file storages. This endpoint is the first step in creating a file.
SVX Utilities generates a random key under which a file will be registered, and creates a record in the database where
the key is stored along with the filename and the content type.
A client is then expected to use a signed URL present in response field upload_url to upload a file to a cloud file storage.
This URL is only valid for a short period of time specified in response field upload_url_expires_in_seconds.
Uploading is done via HTTP method PUT. The response of this endpoint contains a list of headers which much be included in
the PUT request.
The following is an example curl command to upload a file:
curl --location --request PUT \
'https://meecodevstorage0.blob.core.windows.net/dev/66c35456-eb64-42fb-a31a-806530786fe2?se=2023-01-23T08%3A49%3A29Z&sig=mzuonk01F8L%2F0q7avsMvvenk2NwLFVXYsyWJeu5Jdgc%3D&sp=rw&sr=b&sv=2018-11-09' \
--header 'x-ms-blob-type: BlockBlob' \
--data-binary '@/home/john/file.jpg'
After the file is uploaded to Azure Blob Storage, the client is supposed to confirm this upload calling PUT /blobs/{key}.
The response to POST /blobs also contains a URL to retrieve the file, but that functionality is only available after the upload has been confirmed, otherwise it will result in 404 NotFound.
All expired and not confirmed records created with this endpoint will be removed after a while.
| storage_name required | string Name of the file storage. This parameter so optional, if no name is specified, the default file storage is used |
File name and content type
| content_type | string content type of the file to be uploaded |
| filename required | string name of the file to be uploaded |
{- "content_type": "image/jpeg",
- "filename": "logo.jpg"
}{- "blob": {
- "content_type": "string",
- "filename": "string",
- "key": "string",
- "storage_backend_name": "string",
- "storage_backend_type": "string",
- "upload_headers": { },
- "upload_url_expires_in_seconds": 0,
- "uploaded": true
}
}Redirect to a file in a cloud file storage.
This endpoint is public and it only requires the file key in the URL.
The Content Disposition header in the response is hardcoded to be inline for now, but it can be made a parameter to this endpoint in future if needed.
The filename and the content type included in Content Disposition are taken from the database record created in POST /blobs."
| id required | string Blob key |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "http_code": 401,
- "message": null
}Confirm a blob upload.
After a client retrieves an uploads URL via POST /blobs and uploads a file to that URL, a client is expected to inform SVX Utilities that the upload is successful.
The file is not accessible unless the upload is confirmed.
This call may only be performed by the same user who retrieved the upload URL.
The response to the endpoint contains one more upload URL. A client can use it to upload a newer version of the file under the same key. No confirmation is required in this case.
See documentation for POST /blobs for more information.
| id required | string Blob key |
{- "blob": {
- "content_type": "string",
- "filename": "string",
- "key": "string",
- "storage_backend_name": "string",
- "storage_backend_type": "string",
- "upload_headers": { },
- "upload_url_expires_in_seconds": 0,
- "uploaded": true
}
}View information about the file.
This call may only be performed by the same user who retrieved the upload URL and uploaded the file.
Along with a URL to read the file the response to the endpoint contains one more upload URL. A client can use it to upload a newer version of the file under the same key. No confirmation is required in this case.
See documentation for POST /blobs for more information.
| id required | string Blob key |
{- "blob": {
- "content_type": "string",
- "filename": "string",
- "key": "string",
- "storage_backend_name": "string",
- "storage_backend_type": "string",
- "upload_headers": { },
- "upload_url_expires_in_seconds": 0,
- "uploaded": true
}
}View public information about the file.
See documentation for POST /blobs for more information.
| id required | string Blob key |
{- "blob": {
- "content_type": "string",
- "filename": "string",
- "key": "string",
- "storage_backend_name": "string",
- "storage_backend_type": "string",
- "uploaded": true
}
}Returns a paginated list of SVX Wallet deployments for a specific organisation
| org_id required | string Organisation ID |
| per_page | integer Number of deployments per page |
| page | integer Page number |
| order | string Enum: "asc" "desc" Order direction: asc or desc |
{- "deployments": [
- {
- "all_workflows_successful": null,
- "current_user_id": null,
- "git_workflow": null,
- "git_workflow_duration": null,
- "inserted_at": "2023-12-01T10:00:00Z",
- "instance_config_for_workflow_retries": null,
- "instance_id": "xbkm9-vxnve",
- "public_domain": "acme.meeco.app",
- "redis_db": 3,
- "status": "config_values_generated",
- "workflow_reports": null
}
], - "meta": {
- "order": "desc",
- "order_by": "inserted_at",
- "order_from_params": false,
- "page": 1,
- "page_count": 5,
- "per_page": 20,
- "per_page_from_params": false,
- "records_count": 100
}
}Create an SVX Wallet deployment
| org_id required | string Organisation ID |
Deployment request
| description | string Optional human-readable description for this SVX Wallet instance. |
| version_series | string Version series to deploy (e.g. "0.1"). Defaults to the configured default_version_series if omitted. |
{- "description": "string",
- "version_series": "string"
}{- "instance_id": "550e8400-e29b-41d4-a716-446655440000"
}Deletes a specific SVX Wallet deployment by instance ID
| id required | string Instance ID |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "http_code": 401,
- "message": null
}Returns a specific SVX Wallet deployment by instance ID
| id required | string Instance ID |
{- "all_workflows_successful": null,
- "current_user_id": null,
- "description": "Acme Corp production wallet",
- "error": null,
- "external_idp_client_id": "some-client-id",
- "git_workflow": null,
- "git_workflow_duration": null,
- "git_workflow_log": [
- {
- "status": "4.config_files_added",
- "timestamp": "2023-12-01T10:30:00Z"
}, - {
- "status": "3.repo_cloned",
- "timestamp": "2023-12-01T10:25:00Z"
}
], - "inserted_at": "2023-12-01T10:00:00Z",
- "instance_config_for_workflow_retries": null,
- "instance_id": "xbkm9-vxnve",
- "internal_domain": "acme.wallet.internal",
- "online_at": null,
- "online_check_counter": 0,
- "online_status_checked_at": null,
- "public_domain": "acme.meeco.app",
- "redis_db": 3,
- "status": "config_values_generated",
- "versions": {
- "deployed_version": "0.1.0",
- "version_history": null,
- "version_series": "0.1"
}, - "workflow_reports": null
}Redirect to the logo of an organisation.
This endpoint is public and it only requires the organisation ID in the URL.
| org_id required | string <uuid> Organisation ID |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Redirect to the logo of a tenant.
This endpoint is public and it only requires the tenant ID in the URL.
| tenant_id required | string <uuid> Tenant ID |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}List all users with global security rights.
It is also possible to request a list of archived global admins, that is, users who used to have global security rights, but do not have them now.
In order to execute this action the current user must have "security right atom:global:assign_global_sr_to_user.
string search admins by their email address | |
| status | string Enum: "active" "archived" admin status: |
| per_page | integer number of admins per page |
| order | string Enum: "asc" "desc" order admins by name in ascending or descending order |
| page | integer Number of the page to serve. This parameter activates classic page-based pagination
and cannot be used with parameter |
| next_page_after | string When cursor based pagination is used, each paginated response has value |
{- "admins": [
- {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
], - "meta": { },
- "next_page_after": "string"
}Remove a user from global admins, that is, remove all global security rights from a user.
In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.
| id required | string <uuid> ID of the admin |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Show a user with global security rights
In order to execute this action the current user must have "security right atom:global:assign_global_sr_to_user.
| id required | string <uuid> ID of the admin |
{- "admin": {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
}Remove a user from global admins, and put the admin into the registry of former global admins.
In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.
| id required | string <uuid> ID of the admin |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Reinstate an archived user and make him/her a global admin again.
In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.
| id required | string <uuid> ID of the admin |
{- "admin": {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
}Assign global security rights to a user.
The user we are assigning security rights to does not need to be known by ATOM.
In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.
| id required | string <uuid> ID of a user to whom security rights are assigned |
list of security rights
| security_rights required | Array of strings list of security rights |
{- "security_rights": [
- "atom:org:assign_org_sr_to_user"
]
}{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Remove global security rights from a user.
In order to execute this action the current user must have security right atom:global:assign_global_sr_to_user.
| id required | string <uuid> ID of a user from whom security rights are removed |
| security_rights required | string List of comma-separated security rights to remove |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Show all security rights of the current user for all active tenants and organizations
{- "orgs": [
- {
- "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
- "name": "organisation name"
}
], - "security_rights": [
- {
- "scope": {
- "org_id": "a483a0f8-144d-4657-8d08-071653d25b7f",
- "tenant_id": "0361dd6e-db21-4cb2-910a-5cf4d30d0dd2"
}, - "security_rights": [
- "atom:org:assign_org_sr_to_user"
]
}
], - "tenants": [
- {
- "id": "bf15d4be-8e8d-48a8-af49-df615844fa4d",
- "name": "a tenant name"
}
]
}Show all security rights known to ATOM
| with_inactive | boolean By default only active security rights are fetched.
|
{- "security_rights": [
- {
- "security_right": "atom:global:assign_sr_to_tenant",
- "spec": {
- "active": true,
- "description": "Assign a security right to a tenant",
- "for_org": false,
- "for_tenant": false,
- "internal_atom_security_right": true
}
}
]
}List all tenants.
In order to execute this action the current user must have security right atom:global:view_all_tenants.
| status | string Enum: "active" "archived" "all" tenant status: |
| per_page | integer number of tenants per page |
| order | string Enum: "asc" "desc" order tenants by name in ascending or descending order |
| page | integer Number of the page to serve. This parameter activates classic page-based pagination
and cannot be used with parameter |
| next_page_after | string When cursor based pagination is used, each paginated response has value |
| filter_by | string Search tenants whose names contains the given string, or by their ID. |
{- "meta": { },
- "next_page_after": "string",
- "tenants": [
- {
- "archived": true,
- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "security_rights": [
- "atom:org:assign_org_sr_to_user"
], - "status_in_tenant": "string",
- "trading_name": "string"
}
]
}Create a tenant.
In order to execute this action the current user must have security right atom:global:create_tenant.
The current user becomes the first admin of the tenant.
| with_external_security_rights | boolean By default new tenants receive all internal security rights only.
|
Tenant attributes
| authorised_officer_email | string or null [ 0 .. 72 ] characters Authorised officer email |
| authorised_officer_first_name | string or null [ 0 .. 72 ] characters Authorised officer first name |
| authorised_officer_last_name | string or null [ 0 .. 72 ] characters Authorised officer last name |
| business_address | string or null [ 0 .. 72 ] characters Business address |
| color | string or null [ 0 .. 20 ] characters The color associated with the tenant. Used for the UI. |
| company_number | string or null [ 0 .. 72 ] characters Company number |
| id | string <uuid> ID of the tenant. This parameter is optional. If missing, ATOM will choose a random UUID |
| legal_name | string or null [ 0 .. 72 ] characters Legal number |
| lei_number | string or null [ 0 .. 72 ] characters Legal entity identification number |
| logo_url | string or null <uri> URL to a logo image |
| name required | string Name of the tenant |
| status_in_tenant | string or null [ 0 .. 72 ] characters Status: signed legal agreement received or proof of concept |
| trading_name | string or null [ 0 .. 72 ] characters Trading number |
{- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "status_in_tenant": "string",
- "trading_name": "string"
}{- "tenant": {
- "archived": true,
- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "security_rights": [
- "atom:org:assign_org_sr_to_user"
], - "status_in_tenant": "string",
- "trading_name": "string"
}
}Delete a tenant.
In order to execute this action the current user must have security right atom:global:create_tenant.
| tenant_id required | string <uuid> ID of the tenant |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Show a tenant.
In order to execute this action the current user must have either global security right atom:global:view_all_tenants or tenant security right atom:tenant:view_tenant.
| tenant_id required | string <uuid> ID of the tenant |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Update a tenant.
In order to execute this action the current user must have security right atom:global:create_tenant.
It is possible to modify 3 fields:
namelogo_urlcolor| tenant_id required | string <uuid> ID of the tenant |
Tenant attributes
| authorised_officer_email | string or null [ 0 .. 72 ] characters Authorised officer email |
| authorised_officer_first_name | string or null [ 0 .. 72 ] characters Authorised officer first name |
| authorised_officer_last_name | string or null [ 0 .. 72 ] characters Authorised officer last name |
| business_address | string or null [ 0 .. 72 ] characters Business address |
| color | string or null [ 0 .. 20 ] characters The color associated with the tenant. Used for the UI. |
| company_number | string or null [ 0 .. 72 ] characters Company number |
| id | string <uuid> ID of the tenant. This parameter is optional. If missing, ATOM will choose a random UUID |
| legal_name | string or null [ 0 .. 72 ] characters Legal number |
| lei_number | string or null [ 0 .. 72 ] characters Legal entity identification number |
| logo_url | string or null <uri> URL to a logo image |
| name required | string Name of the tenant |
| status_in_tenant | string or null [ 0 .. 72 ] characters Status: signed legal agreement received or proof of concept |
| trading_name | string or null [ 0 .. 72 ] characters Trading number |
{- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "status_in_tenant": "string",
- "trading_name": "string"
}{- "tenant": {
- "archived": true,
- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "security_rights": [
- "atom:org:assign_org_sr_to_user"
], - "status_in_tenant": "string",
- "trading_name": "string"
}
}List admins of a tenant.
In order to execute this action the current user must have
In order to execute this action the current user must have security right atom:tenant:list_tenant_admins for the tenant with the ID in parameter tenant_id
| tenant_id required | string <uuid> ID of the tenant |
| status | string Enum: "active" "archived" admin status: |
string search admins by their email address. Currenty works only with status=archived | |
| per_page | integer number of admins per page |
| order | string Enum: "asc" "desc" order admins by given name in ascending or descending order |
| page | integer Number of the page to serve. This parameter activates classic page-based pagination
and cannot be used with parameter |
| next_page_after | string When cursor based pagination is used, each paginated response has value |
{- "admins": [
- {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
], - "meta": { },
- "next_page_after": "string"
}Remove tenant admin privileges from a tenant admin.
In order to execute this action the current user must have one of the following security rights:
atom:global:assign_tenant_sr_to_tenant_adminatom:tenant:assign_tenant_sr_to_tenant_admin| tenant_id required | string <uuid> ID of the tenant |
| tenant_admin_id required | string <uuid> ID of the admin |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Show an admin of a given tenant
In order to execute this action the current user must have security right atom:tenant:list_tenant_admins for the tenant with the ID in parameter tenant_id
| tenant_id required | string <uuid> ID of the tenant |
| tenant_admin_id required | string <uuid> ID of the admin |
{- "admin": {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
}Remove a user from admins of the given tenant, and put the admin into the registry of former admins of that tenant.
In order to execute this action the current user must have one of the following security rights:
atom:global:assign_tenant_sr_to_tenant_adminatom:tenant:assign_tenant_sr_to_tenant_admin| tenant_id required | string <uuid> ID of the tenant |
| tenant_admin_id required | string <uuid> ID of the admin |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Reinstate an archived user and make him/her a tenant admin again.
In order to execute this action the current user must have one of the following security rights:
atom:tenant:assign_tenant_sr_to_tenant_adminatom:global:assign_tenant_sr_to_tenant_admin| tenant_id required | string <uuid> ID of the tenant |
| tenant_admin_id required | string <uuid> ID of the admin |
{- "admin": {
- "archived": false,
- "email": "peter@peterson.com",
- "family_name": "Peterson",
- "given_name": "Peter",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2"
}
}Assign tenant security rights to a user.
The user we are assigning security rights to does not need to be known by ATOM.
In order to execute this action the current user must have security right atom:tenant:assign_tenant_sr_to_tenant_admin for the tenant with the ID in parameter tenant_id.
| tenant_id required | string <uuid> ID of the tenant |
| tenant_admin_id required | string <uuid> ID of a tenant admin |
list of security rights
| security_rights required | Array of strings list of security rights |
{- "security_rights": [
- "atom:org:assign_org_sr_to_user"
]
}{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
}Archive a tenant.
In order to execute this action the current user must have security right atom:global:create_tenant.
| tenant_id required | string <uuid> ID of the tenant |
{- "tenant": {
- "archived": true,
- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "security_rights": [
- "atom:org:assign_org_sr_to_user"
], - "status_in_tenant": "string",
- "trading_name": "string"
}
}Restore a tenant.
In order to execute this action the current user must have security right atom:global:create_tenant.
| tenant_id required | string <uuid> ID of the tenant |
{- "tenant": {
- "archived": true,
- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "security_rights": [
- "atom:org:assign_org_sr_to_user"
], - "status_in_tenant": "string",
- "trading_name": "string"
}
}Add security rights to a tenant.
In order to execute this action the current user must have security right atom:global:assign_sr_to_tenant.
| tenant_id required | string <uuid> ID of the tenant |
list of security rights
| security_rights required | Array of strings list of security rights |
{- "security_rights": [
- "atom:org:assign_org_sr_to_user"
]
}{- "tenant": {
- "archived": true,
- "authorised_officer_email": "string",
- "authorised_officer_first_name": "string",
- "authorised_officer_last_name": "string",
- "business_address": "string",
- "color": "string",
- "company_number": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "legal_name": "string",
- "lei_number": "string",
- "name": "string",
- "security_rights": [
- "atom:org:assign_org_sr_to_user"
], - "status_in_tenant": "string",
- "trading_name": "string"
}
}Remove security rights from a tenant.
In order to execute this action the current user must have security right atom:global:assign_sr_to_tenant.
| tenant_id required | string <uuid> ID of the tenant |
| security_rights required | string Comma-separated security rights to remove |
{- "error": "unauthorized",
- "extra_info": {
- "reason": "invalid_jwt"
}, - "file": "lib/source/file.ex",
- "http_code": 401,
- "line": 85,
- "message": null
} Show a list of organisations the current user is an admin of.
Can take optional parameter tenant_id which restricts the list of organisations to one tenant only.
| tenant_id | string <uuid> This parameter is the ID of a tenant and if present it restricts the list of organisations to one tenant only. |
{- "archived_orgs": [
- {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
], - "orgs": [
- {
- "archived": false,
- "color": "#C0C0C0",
- "id": "9de00c4f-e1d9-4a7e-8b9e-38b3f5648ee2",
- "name": "vela",
- "security_rights": [
- "atom:org:assign_org_sr_to_user",
- "atom:org:view_org",
- "atom:org:list_org_admins"
], - "tenant_id": "be2070e5-0510-45a4-8d5b-5817442cdc98",
- "tenant_name": "bhp"
}
]
}Endpoint works for a tenant and organisation user based on the Meeco-Organisation-ID header.
Returns a list of invitations available to the caller.
In case of tenant context, endpoint returns all invitations available in the tenancy.
In case of organization context, endpoint returns all invitations available in the organisations.
| status | string Example: status=pending Filter invitation by |
| order | string Enum: "ASC" "DESC" order invitation, Default ordering: |
| order_by | string Value: "given_name" order invitation for |
| per_page | integer Example: per_page=10 Number of records per page |
| page | integer Example: page=1 Page number (starting from 1) |
| Meeco-Organisation-ID | string Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f Specify Organisation ID to set request context to organisation |
{- "invitations": [
- {
- "id": "string",
- "to": "string",
- "status": "pending",
- "token": "string",
- "user_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "accepted_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "message": "string",
- "tenant_id": "string",
- "org_id": "string",
- "presentation_request_url": "string",
- "open_id_presentation_request_url": "string",
- "given_name": "string",
- "family_name": "string",
- "email": "string"
}
], - "meta": {
- "order_by": "name",
- "order": "ASC",
- "order_from_params": true,
- "per_page": 10,
- "per_page_from_params": true,
- "records_count": 100,
- "page": 1,
- "page_count": 10
}
}Creates an invitation for user to join the platform. If user already exists, he/she will be added to the target organisation or tenant.
Payload example to invite an admin:
{
"invitation": {
"email": "email@meeco.me",
"given_name": "Peter",
"family_name": "Peterson",
}
}
Tenant admin will be invited to is determined by the tid attribute value inside the JWT token & empty the Meeco-Organisation-ID query param value in request.
Org admin will be invited to is determined by the tid attribute value inside the JWT token & Meeco-Organisation-ID query param value in request.
Global admin will be invited to is determined by the empty value in tid attribute value inside the JWT token & Meeco-Organisation-ID query param value in request.
The user who is sending the invitations can only invite other users within the tenant or organization they have selected.
For example, if the user is in the tenant context, they can only manage tenant users and invitations. Similarly, in the org context, they can only manage org users and invitations, and in the global context, they can only manage global users and invitations.
| Meeco-Organisation-ID | string Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f Specify Organisation ID to set request context to organisation |
required | object (PlatformCreateInvitationDto) |
{- "invitation": {
- "email": "user@meeco.me",
- "given_name": "Peter",
- "family_name": "Peterson",
- "message": "Welcome message"
}
}{- "invitation": {
- "id": "string",
- "to": "string",
- "status": "pending",
- "token": "string",
- "user_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "accepted_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "message": "string",
- "tenant_id": "string",
- "org_id": "string",
- "presentation_request_url": "string",
- "open_id_presentation_request_url": "string",
- "given_name": "string",
- "family_name": "string",
- "email": "string"
}
}Deletes a pending or expired invitation.
| id required | string |
| Meeco-Organisation-ID | string Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f Specify Organisation ID to set request context to organisation |
{- "errors": [
- {
- "error": "error_type",
- "message": "Error message",
- "http_code": 500,
- "extra_info": { },
- "requested_language": "en",
- "message_in_requested_language": true
}
]
}Fetch information about the invitation.
| id required | string |
| Meeco-Organisation-ID | string Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f Specify Organisation ID to set request context to organisation |
{- "invitation": {
- "id": "string",
- "to": "string",
- "status": "pending",
- "token": "string",
- "user_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "accepted_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "message": "string",
- "tenant_id": "string",
- "org_id": "string",
- "presentation_request_url": "string",
- "open_id_presentation_request_url": "string",
- "given_name": "string",
- "family_name": "string",
- "email": "string"
}
}Resend invitation email to the user.
| id required | string |
| Meeco-Organisation-ID | string Example: 8b673177-6ba0-4d26-97d1-4fdc8c45f90f Specify Organisation ID to set request context to organisation |
{- "invitation": {
- "id": "string",
- "to": "string",
- "status": "pending",
- "token": "string",
- "user_id": "string",
- "created_at": "2019-08-24T14:15:22Z",
- "accepted_at": "2019-08-24T14:15:22Z",
- "expires_at": "2019-08-24T14:15:22Z",
- "message": "string",
- "tenant_id": "string",
- "org_id": "string",
- "presentation_request_url": "string",
- "open_id_presentation_request_url": "string",
- "given_name": "string",
- "family_name": "string",
- "email": "string"
}
}This endpoint updates a user detail
required | object (PlatformUpdateUserDto) |
{- "user": {
- "given_name": "string",
- "family_name": "string"
}
}{- "user": {
- "id": "string",
- "email": "string",
- "email_verified": true,
- "did": "string",
- "jwk_thumbprint_uri": "string",
- "name": "string",
- "given_name": "string",
- "family_name": "string",
- "is_active": true,
- "created_at": "2019-08-24T14:15:22Z",
- "updated_at": "2019-08-24T14:15:22Z"
}
}This endpoint updates a user password
required | object (PlatformUpdatePasswordDto) |
{- "user": {
- "old_password": "string",
- "new_password": "string",
- "confirm_password": "string"
}
}{ }Show information about the user with a valid JWT:
sub){- "administered_archived_orgs": [
- {
- "color": "string",
- "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
- "name": "organisation name",
- "tenant_active": true,
- "tenant_id": "3bd00941-6e5b-4852-aefd-3c55f5660592"
}
], - "administered_archived_tenants": [
- {
- "color": "string",
- "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
- "name": "tenant name"
}
], - "administered_orgs": [
- {
- "color": "string",
- "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
- "name": "organisation name",
- "tenant_active": true,
- "tenant_id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
- "user_became_org_admin_at": "2019-08-24T14:15:22Z"
}
], - "administered_tenants": [
- {
- "color": "string",
- "id": "3bd00941-6e5b-4852-aefd-3c55f5660592",
- "name": "tenant name"
}
], - "family_name": "string",
- "given_name": "string",
- "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
- "tenant_in_jwt": {
- "tenant_id": "34f5c98e-f430-457b-a812-92637d0c6fd0",
- "tenant_known_to_atom": true,
- "tenant_name": "string",
- "user_became_tenant_admin_at": "2019-08-24T14:15:22Z"
}, - "user_known_to_atom": true,
- "user_type": "string"
}