Client
An Object
Platform
Client
A Client defines an entry point for applications to connect to your platform. Applications utilize a key and secret to identify themselves as a particular client of your platform.
You can have as many Clients as you would like. Each client has a key/secret combination which the calling application will need to provide in order to assert their identity as the client. This prevents unknown applications from using your platform without your knowledge.
Clients support the OAuth2 authentication flows. You can specify for each Client which flows you intend for it to support. You can also enable Open Driver authentication support for JavaScript/HTML5 applications running on the Cloud CMS hosted tier.
Finally, you can at any point disable Clients if you suspect they are being tampered with or if you decide you would like to issue new credentials.
Note
Drop in one of our language drivers to accelerate your development. Here are links to some of our popular Cookbooks to help you get started!
Parent
This Client is contained within a Platform .
Properties
The following properties are available:
Property
Type
Default
Read-Only
Description
_doc
string
No
The primary ID
_system
object
No
Metadata maintained by the system
accessTokenValiditySeconds
number
No
allowAutoApprovalForImplicitFlow
boolean
No
allowGuestLogin
boolean
No
allowOpenDriverAuthentication
boolean
No
authorizedGrantTypes
string
No
defaultTenantId
string
No
domainUrls
array
No
enabled
boolean
No
isTenantDefault
boolean
No
key
string
No
refreshTokenValiditySeconds
number
No
registeredRedirectUri
string
No
scope
string
No
secret
string
No
Methods
The following methods are available:
Check Permission
Checks whether one or more authorities against the specified client are granted for a given set of users
POST /clients/{clientId}/permissions/{permissionId}/check
Parameters
Name
Required
Type
Description
clientId
true
string
permissionId
true
string
id
true
string
Response
{
"$ref": "#/components/schemas/checkPermission"
}
Check Single Authority
Checks whether a single authority is granted against the specified client for the given user
POST /clients/{clientId}/authorities/{authorityId}/check
Parameters
Name
Required
Type
Description
clientId
true
string
authorityId
true
string
The ID or authority key for the authority
id
true
string
Response
{
"type": "object",
"description": "Check",
"extends": "status",
"properties": {
"check": {
"type": "boolean"
},
"ok": null
}
}
Check multiple Authorities
Checks whether one or more authorities against the specified client are granted for a given set of users
POST /clients/authorities/check
Parameters
This function has no parameters.
Response
{
"type": "object",
"description": "Check Multiple Authorities Out",
"properties": {
"checks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"permissionedId": {
"type": "string"
},
"principalId": {
"type": "string"
},
"authorityId": {
"type": "string"
},
"result": {
"type": "boolean"
}
}
}
}
}
}
Check multiple Permissions
Checks whether one or more permissions against the specified client are granted for a given set of users
POST /clients/permissions/check
Parameters
This function has no parameters.
Response
{
"type": "object",
"description": "Check Multiple Permissions Out",
"properties": {
"checks": {
"type": "array",
"items": {
"type": "object",
"properties": {
"permissionedId": {
"type": "string"
},
"principalId": {
"type": "string"
},
"permissionId": {
"type": "string"
},
"result": {
"type": "boolean"
}
}
}
}
}
}
Create Client
Creates a new Client
POST /clients
Parameters
This function has no parameters.
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Delete Client
Deletes an existing Client
DELETE /clients/{clientId}
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Delete Client
Deletes an existing Client
POST /clients/{clientId}/delete
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Grant Authority
Grants an authority against the specified client to a given user
POST /clients/{clientId}/authorities/{authorityId}/grant
Parameters
Name
Required
Type
Description
clientId
true
string
authorityId
true
string
id
true
string
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Lists Client
Retrieves a list of Client instances
GET /clients
Parameters
Name
Required
Type
Description
sort
false
object
Defines how to sort fields in the result set
skip
false
number
Skips the result set cursor ahead the specified number of records
limit
false
number
Specifies the number of records to be handed back in the result set
Response
{
"type": "object",
"description": "Result Map",
"properties": {
"total_rows": {
"type": "number"
},
"offset": {
"type": "number"
},
"size": {
"type": "number"
},
"rows": {
"type": "array",
"items": {
"$ref": "#/components/schemas/resultmap_client"
}
}
}
}
Queries for Client
Queries for instances of type Client
POST /clients/query
Parameters
Name
Required
Type
Description
sort
false
object
Defines how to sort fields in the result set
skip
false
number
Skips the result set cursor ahead the specified number of records
limit
false
number
Specifies the number of records to be handed back in the result set
Response
{
"type": "object",
"description": "Result Map",
"properties": {
"total_rows": {
"type": "number"
},
"offset": {
"type": "number"
},
"size": {
"type": "number"
},
"rows": {
"type": "array",
"items": {
"$ref": "#/components/schemas/resultmap_client"
}
}
}
}
Read ACL
Read the Access Control List for the specified client
GET /clients/{clientId}/acl/list
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"description": "Result Map of ACL entries",
"properties": {
"total_rows": {
"type": "number"
},
"offset": {
"type": "number"
},
"size": {
"type": "number"
},
"rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"_doc": {
"type": "string",
"title": "Principal ID"
},
"name": {
"type": "string",
"title": "Principal Name"
},
"type": {
"type": "string",
"title": "Principal Type"
},
"domainId": {
"type": "string"
},
"domainQualifiedId": {
"type": "string"
},
"domainQualifiedName": {
"type": "string"
},
"principalId": {
"type": "string",
"title": "Principal ID"
},
"userEmail": {
"type": "string"
},
"userFirstName": {
"type": "string"
},
"userLastName": {
"type": "string"
},
"authorities": {
"type": "array",
"title": "Authorities",
"items": {
"type": "string",
"title": "Authority Key"
}
}
}
}
}
}
}
Read ACL for Principal
Read the Access Control List for the specified client and the given principal
GET /clients/{clientId}/acl
Parameters
Name
Required
Type
Description
clientId
true
string
id
true
string
Response
{
"type": "object",
"description": "Result Map of Authority Keys",
"properties": {
"total_rows": {
"type": "number"
},
"offset": {
"type": "number"
},
"size": {
"type": "number"
},
"rows": {
"type": "array",
"items": {
"type": "string",
"description": "Authority Key"
}
}
}
}
Read Authorities Report
Read the Authorities Report for the specified client
POST /clients/{clientId}/authorities
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"description": "Authority Report",
"properties": {
"principalId": {
"type": "object",
"properties": {
"id": {
"type": "object",
"properties": {
"role-key": {
"type": "string"
},
"principal": {
"type": "string"
},
"permissioned": {
"type": "string"
},
"inheritsFrom": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"principal": {
"type": "string"
},
"permissioned": {
"type": "string"
}
}
}
}
}
}
}
}
}
Read Client
Reads an instance of a Client
GET /clients/{clientId}
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"extends": "document",
"description": "Client",
"container": "platform",
"properties": {
"key": {
"type": "string",
"required": true
},
"secret": {
"type": "string",
"required": true
},
"authorizedGrantTypes": {
"type": "string",
"enum": [
"authorization_code",
"password",
"implicit",
"client_credentials",
"refresh_token"
]
},
"scope": {
"type": "string"
},
"registeredRedirectUri": {
"type": "string"
},
"domainUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"isTenantDefault": {
"type": "boolean"
},
"defaultTenantId": {
"type": "string"
},
"allowOpenDriverAuthentication": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"allowAutoApprovalForImplicitFlow": {
"type": "boolean"
},
"accessTokenValiditySeconds": {
"type": "number"
},
"refreshTokenValiditySeconds": {
"type": "number"
},
"allowGuestLogin": {
"type": "boolean"
},
"_doc": null,
"_system": null
}
}
Revoke Authority
Revokes an authority against the specified client from a given user
POST /clients/{clientId}/authorities/{authorityId}/revoke
Parameters
Name
Required
Type
Description
clientId
true
string
authorityId
true
string
id
true
string
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Starts an export job for this resource
Starts an export job for this resource
POST /clients/{clientId}/export
Parameters
Name
Required
Type
Description
clientId
true
string
groupId
false
string
The Group ID to be assigned to the exported archive
artifactId
false
string
The Artifact ID to be assigned to the exported archive
versionId
false
string
The Version ID to be assigned to the exported archive
vaultId
false
string
The ID of the vault where the exported archive should be saved
schedule
false
string
Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous')
Response
{
"type": "object",
"description": "Export Configuration",
"properties": {
"startDate": {
"type": "object"
},
"endDate": {
"type": "object"
},
"startChangeset": {
"type": "string"
},
"endChangeset": {
"type": "string"
},
"includeACLs": {
"type": "boolean"
},
"includeTeams": {
"type": "boolean"
},
"includeActivities": {
"type": "boolean"
},
"includeBinaries": {
"type": "boolean"
},
"includeAttachments": {
"type": "boolean"
},
"artifactDependencies": {
"type": "array",
"items": {
"type": "object"
}
},
"artifactIncludes": {
"type": "array",
"items": {
"type": "object"
}
},
"forceIncludes": {
"type": "boolean"
}
}
}
Starts an import job for this resource
Starts an import job for this resource
POST /clients/{clientId}/import
Parameters
Name
Required
Type
Description
clientId
true
string
groupId
false
string
The Group ID to be assigned to the exported archive
artifactId
false
string
The Artifact ID to be assigned to the exported archive
versionId
false
string
The Version ID to be assigned to the exported archive
vaultId
false
string
The ID of the vault where the exported archive should be saved
schedule
false
string
Whether to run the job immediately or in the background (either 'synchronous' or 'asynchronous')
Response
{
"type": "object",
"description": "Import Configuration",
"properties": {
"includeACLs": {
"type": "boolean"
},
"includeTeams": {
"type": "boolean"
},
"includeActivities": {
"type": "boolean"
},
"includeBinaries": {
"type": "boolean"
},
"includeAttachments": {
"type": "boolean"
},
"strategy": {
"type": "array",
"items": {
"type": "string"
}
},
"substitutions": {
"type": "string"
}
}
}
Update Client
Updates an existing Client
PUT /clients/{clientId}
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Update Client
Updates an existing Client
POST /clients/{clientId}/update
Parameters
Name
Required
Type
Description
clientId
true
string
Response
{
"type": "object",
"description": "Status of Operation",
"properties": {
"ok": {
"type": "boolean",
"description": "Indicates whether the operation succeeded or not"
}
}
}
Schema
{
"type": "object",
"extends": "document",
"description": "Client",
"container": "platform",
"properties": {
"key": {
"type": "string",
"required": true
},
"secret": {
"type": "string",
"required": true
},
"authorizedGrantTypes": {
"type": "string",
"enum": [
"authorization_code",
"password",
"implicit",
"client_credentials",
"refresh_token"
]
},
"scope": {
"type": "string"
},
"registeredRedirectUri": {
"type": "string"
},
"domainUrls": {
"type": "array",
"items": {
"type": "string"
}
},
"isTenantDefault": {
"type": "boolean"
},
"defaultTenantId": {
"type": "string"
},
"allowOpenDriverAuthentication": {
"type": "boolean"
},
"enabled": {
"type": "boolean"
},
"allowAutoApprovalForImplicitFlow": {
"type": "boolean"
},
"accessTokenValiditySeconds": {
"type": "number"
},
"refreshTokenValiditySeconds": {
"type": "number"
},
"allowGuestLogin": {
"type": "boolean"
},
"_doc": null,
"_system": null
},
"id": "client"
}