Client

An Object

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"
}