Skip to content

Authentication Objects

This technical design describes implementation and API for Authentication Objects.

POST /api/authentication-objects/

Permissions

Requires authentication and authentication_objects.create permission.

Request example

Headers

Request Method: POST
Content-Type: application/json
Authorization: JWT access_token

Body

KeyTypeNotes
namestring
providerenumValues: imanage, docusign, api_key, autologyx, microsoft_client_credentials, box_client_credentials, adobe_client_credentials, salesforce_client_credentials, oauth_client_credentials
descriptionstring
expiry_atdateOptional
expiry_applies_tostringOptional
credentialsobjectEach provider has different set of credentials
Provider iManage
KeyTypeNotes
usernamestring
passwordstring
client_idstring
client_secretstring
hoststring
Provider DocuSign
KeyTypeNotes
user_idstring
client_idstring
private_rsa_keystring
hoststring
Provider Autologyx
KeyTypeNotes
usernamestring
passwordstring
Provider ApiKey
KeyTypeNotes
header_keystring
url_keystring
api_Keystring
Provider Microsoft Client Credentials
KeyTypeNotes
tenantstring
client_idstring
client_secretstring
scopestring
Provider Box Client Credentials
KeyTypeNotes
client_idstring
client_secretstring
scopestring
box_subject_typeenum
box_subject_idstring
Provider Adobe Client Credentials
KeyTypeNotes
client_idstring
client_secretstring
scopestring
Provider Salesforce Client Credentials
KeyTypeNotes
client_idstring
client_secretstring
domain_namestring
Provider Generic Client Credentials
KeyTypeNotes
client_idstring
client_secretstring
scopestring
token_urlurl
refresh_urlurl
additional_parametersjson_object
additional_authorization_headersjson_object
Provider ROPC Generic oAuth
KeyTypeNotes
token_urlurl
refresh_urlurl
usernamestring
passwordstring
client_idstring
client_secretstring
scopestring

Response

  • Successful status 201 Created
  • Response body:
json
{
  "id": 5,
  "name": "My iManage credentials",
  "provider": "imanage",
  "description": "The credentials to iManage provider",
  "expiry_at": "2025-02-05",
  "expiry_applies_to": "client_secret",
  "created_at": "2021-05-18T06:39:17.688341Z",
  "created_by": { 
    "id ": 256, 
    "first_name": "John", 
    "last_name": "Smith", 
    "username": "j.smith@autologyx.com", 
    "company_name": "Autologyx", 
    "is_deleted": false
},
  "modified_at": "2021-05-18T06:39:17.688394Z"
  "modified_by": {
    "id ": 256,
    "first_name": "John",
    "last_name": "Smith",
    "username": "j.smith@autologyx.com",
    "company_name": "Autologyx",
    "is_deleted": false
  },
  "_meta": {
    "permissions":{
      "list": true,
      "view": true,
      "create": true,
      "edit": true,
      "delete": true
    } 
  },
  "credentials": <credentials>
}

Errors

ErrorResponse codeMessage
"name" is missing400 Bad Request"name": [ "This field is required." ]
"name" is null400 Bad Request"name": [ "This field may not be null." ]
"name" has > 100 chars400 Bad Request"name": [ "Ensure this field has no more than 100 characters." ]
"name" is not unique400 Bad Request"name": [ "This field must be unique." ]
"expiry_at" is not a valid date400 Bad Request"expiry_at": ["Date has wrong format. Use one of these formats instead: YYYY-MM-DD."]
"expiry_at" is not a future date400 Bad Request"expiry_at": [ "Date must be in the future." ]
"expiry_applies_to" not provided when "expiry_at" is provided400 Bad Request"expiry_applies_to": [ "This field is required when expiry_at is provided." ]
"expiry_at_to" not provided when "expiry_applies_to" is provided400 Bad Requestexpiry_at": [ "This field is required when expiry_applies_to is provided." ]
"expiry_applies_to" has > 255 chars400 Bad Request"expiry_applies_to ": [ "Ensure this field has no more than 255 characters." ]
"expiry_applies_to" is null when the "expiry_at" is provided400 Bad Request"expiry_applies_to ": [ "This field may not be null when expiry_at is provided" ]
"expiry_at_to" is null when the "expiry_applies_to" is provided400 Bad Request"expiry_at ": [ "This field may not be null when expiry_applies_to is provided" ]
"expiry_applies_to" is blank400 Bad Requestexpiry_applies_to ": [ "This field may not be blank." ]
"provider" is missing400 Bad Request"provider": [ "This field is required." ]
"provider" is null400 Bad Request"provider": [ "This field may not be null." ]
"provider" is not a choice400 Bad Request"provider": [ "{ provider } is not a valid choice" ]
"description" has > 500 chars400 Bad Request"description": [ "Ensure this field has no more than 500 characters." ]
"description" is null400 Bad Request"description": [ "This field may not be null." ]
"credentials" is missing400 Bad Request"credentials": [ "This field is required." ]
"credentials" is null400 Bad Request"credentials": [ "This field may not be null." ]
Limit of Authentication exceeded400 Bad Request"type": [ "Limit of 100 Authentication Objects has been exceeded" ]
Provider integration is both inactive and disabled400 Bad Request"details": ["<provider_name> integration requires activation and enablement to perform this action."]
Provider integration is inactive400 Bad Request"details": ["<provider_name> integration requires activation to perform this action."]
Provider integration is disabled400 Bad Request"details": ["<provider_name> integration requires enablement to perform this action."]
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

Provider "IManage"

ErrorResponse codeMessage
"username" is missing400 Bad Request"username": [ "This field is required." ]
"username" is null400 Bad Request"username": [ "This field may not be null." ]
"username" has > 255 chars400 Bad Request"username": [ "Ensure this field has no more than 255 characters." ]
"password" is missing400 Bad Request"password": [ "This field is required." ]
"password" is null400 Bad Request"password": [ "This field may not be null." ]
"password" has > 255 chars400 Bad Request"password": [ "Ensure this field has no more than 255 characters." ]
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 255 chars400 Bad Request"client_id": [ "Ensure this field has no more than 255 characters." ]
"client_secret" has > 255 chars400 Bad Request"client_secret": [ "Ensure this field has no more than 200 characters." ]
"host" is missing400 Bad Request"host": [ "This field is required." ]
"host" is null400 Bad Request"host": [ "This field may not be null." ]
"host" has > 200 chars400 Bad Request"host": [ "Ensure this field has no more than 200 characters." ]
"host" is not valid400 Bad Request"host": [ "Enter a valid URL" ]

Provider "DocuSign"

ErrorResponse codeMessage
"user_id" is missing400 Bad Request"user_id": [ "This field is required." ]
"user_id" is null400 Bad Request"user_id": [ "This field may not be null." ]
"user_id" has > 255 chars400 Bad Request"user_id": [ "Ensure this field has no more than 255 characters." ]
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 255 chars400 Bad Request"client_id": [ "Ensure this field has no more than 255 characters." ]
"private_rsa_key" is missing400 Bad Request"private_rsa_key": [ "This field is required." ]
"private_rsa_key" is null400 Bad Request"private_rsa_key": [ "This field may not be null." ]
"private_rsa_key" has > 2000 chars400 Bad Request"private_rsa_key": [ "Ensure this field has no more than 2000 characters." ]
"host" is missing400 Bad Request"host": [ "This field is required." ]
"host" is null400 Bad Request"host": [ "This field may not be null." ]
"host" has > 200 chars400 Bad Request"host": [ "Ensure this field has no more than 200 characters." ]
"host" is not valid400 Bad Request"host": [ " \fake_host\ is not a valid choice." ]

Provider "Autologyx"

ErrorResponse codeMessage
"username" is missing400 Bad Request"username": [ "This field is required." ]
"username" is null400 Bad Request"username": [ "This field may not be null." ]
"username" has > 255 chars400 Bad Request"username": [ "Ensure this field has no more than 255 characters." ]
"username" is not valid400 Bad Request"username": [ "Enter a valid email address" ]
"password" is missing400 Bad Request"password": [ "This field is required." ]
"password" is null400 Bad Request"password": [ "This field may not be null." ]
"password" has > 255 chars400 Bad Request"password": [ "Ensure this field has no more than 255 characters." ]

Provider "Microsoft Client Credentials"

ErrorResponse codeMessage
"tenant" is missing400 Bad Request"tenant": [ "This field is required." ]
"tenant" is null400 Bad Request"tenant": [ "This field may not be null." ]
"tenant" has > 255 chars400 Bad Request"tenant": [ "Ensure this field has no more than 255 characters." ]
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 120 chars400 Bad Request"client_id": [ "Ensure this field has no more than 120 characters." ]
"client_secret" is missing400 Bad Request"client_secret": [ "This field is required." ]
"client_secret" is null400 Bad Request"client_secret": [ "This field may not be null." ]
"client_secret" has > 120 chars400 Bad Request"client_secret": [ "Ensure this field has no more than 120 characters." ]
"scope" is missing400 Bad Request"scope": [ "This field is required." ]
"scope" is null400 Bad Request"scope": [ "This field may not be null." ]
"scope" has > 255 chars400 Bad Request"scope": [ "Ensure this field has no more than 255 characters." ]

Provider "Box Client Credentials"

ErrorResponse codeMessage
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 120 chars400 Bad Request"client_id": [ "Ensure this field has no more than 120 characters." ]
"client_secret" is missing400 Bad Request"client_secret": [ "This field is required." ]
"client_secret" is null400 Bad Request"client_secret": [ "This field may not be null." ]
"client_secret" has > 120 chars400 Bad Request"client_secret": [ "Ensure this field has no more than 120 characters." ]
"scope" has > 255 chars400 Bad Request"scope": [ "Ensure this field has no more than 255 characters." ]
"box_subject_id" is missing400 Bad Request"box_subject_id": [ "This field is required." ]
"box_subject_id" is null400 Bad Request"box_subject_id": [ "This field may not be null." ]
"box_subject_id" has > 255 chars400 Bad Request"box_subject_id": [ "Ensure this field has no more than 255 characters." ]
"box_subject_type" is missing400 Bad Request"box_subject_type": [ "This field is required." ]
"box_subject_type" is null400 Bad Request"box_subject_type": [ "This field may not be null." ]
"box_subject_type" not a valid enum value400 Bad Request"box_subject_type": [ " ""value" is not a valid choice."]

Provider "Adobe Client Credentials"

ErrorResponse codeMessage
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 120 chars400 Bad Request"client_id": [ "Ensure this field has no more than 120 characters." ]
"client_secret" is missing400 Bad Request"client_secret": [ "This field is required." ]
"client_secret" is null400 Bad Request"client_secret": [ "This field may not be null." ]
"client_secret" has > 120 chars400 Bad Request"client_secret": [ "Ensure this field has no more than 120 characters." ]
"scope" is missing400 Bad Request"scope": [ "This field is required." ]
"scope" is null400 Bad Request"scope": [ "This field may not be null." ]
"scope" has > 255 chars400 Bad Request"scope": [ "Ensure this field has no more than 255 characters." ]

Provider "Generic Client Credentials"

ErrorResponse codeMessage
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 120 chars400 Bad Request"client_id": [ "Ensure this field has no more than 120 characters." ]
"client_secret" is missing400 Bad Request"client_secret": [ "This field is required." ]
"client_secret" is null400 Bad Request"client_secret": [ "This field may not be null." ]
"client_secret" has > 120 chars400 Bad Request"client_secret": [ "Ensure this field has no more than 120 characters." ]
"scope" is null400 Bad Request"scope": [ "This field may not be null." ]
"scope" has > 255 chars400 Bad Request"scope": [ "Ensure this field has no more than 255 characters." ]
"token_url" is missing400 Bad Request"token_url": [ "This field is required." ]
"token_url" is null400 Bad Request"token_url": [ "This field may not be null." ]
"token_url" has > 255 chars400 Bad Request"token_url": [ "Ensure this field has no more than 255 characters." ]
"token_url" not valid URL400 Bad Request"token_url": [ "Enter a valid URL." ]
"refresh_url" is null400 Bad Request"refresh_url": [ "This field may not be null." ]
"refresh_url" has > 255 chars400 Bad Request"refresh_url": [ "Ensure this field has no more than 255 characters." ]
"refresh_url" not valid URL400 Bad Request"refresh_url": [ "Enter a valid URL." ]
"additional_parameters" is null400 Bad Request"additional_parameters": [ "This field may not be null." ]
"additional_parameters" has > 5000 chars400 Bad Request"additional_parameters": [ "Ensure this field has no more than 255 characters (it has {value}." ]
"additional_parameters" is not Object400 Bad Request"additional_parameters": [ "Value must be valid JSON object." ]
"additional_authorization_headers" is null400 Bad Request"additional_authorization_headers": [ "This field may not be null." ]
"additional_authorization_headers" has > 5000 chars400 Bad Request"additional_authorization_headers": [ "Ensure this field has no more than 255 characters (it has {value}." ]
"additional_authorization_headers" is not Object400 Bad Request"additional_authorization_headers": [ "Value must be valid JSON object." ]

Provider "ROPC Generic oAuth"

ErrorResponse codeMessage
"token_url" is missing400 Bad Request"token_url": [ "This field is required." ]
"token_url" is null400 Bad Request"token_url": [ "This field may not be null." ]
"token_url" has > 255 chars400 Bad Request"token_url": [ "Ensure this field has no more than 255 characters." ]
"token_url" not valid URL400 Bad Request"token_url": [ "Enter a valid URL." ]
"refresh_url" is null400 Bad Request"refresh_url": [ "This field may not be null." ]
"refresh_url" has > 255 chars400 Bad Request"refresh_url": [ "Ensure this field has no more than 255 characters." ]
"refresh_url" not valid URL400 Bad Request"refresh_url": [ "Enter a valid URL." ]
"username" is missing400 Bad Request"username": [ "This field is required." ]
"username" is null400 Bad Request"username": [ "This field may not be null." ]
"username" has > 255 chars400 Bad Request"username": [ "Ensure this field has no more than 255 characters." ]
"password" is missing400 Bad Request"password": [ "This field is required." ]
"password" is null400 Bad Request"password": [ "This field may not be null." ]
"password" has > 255 chars400 Bad Request"password": [ "Ensure this field has no more than 255 characters." ]
"client_id" is missing400 Bad Request"client_id": [ "This field is required." ]
"client_id" is null400 Bad Request"client_id": [ "This field may not be null." ]
"client_id" has > 255 chars400 Bad Request"client_id": [ "Ensure this field has no more than 255 characters." ]
"client_secret" is missing400 Bad Request"client_secret": [ "This field is required." ]
"client_secret" is null400 Bad Request"client_secret": [ "This field may not be null." ]
"client_secret" has > 255 chars400 Bad Request"client_secret": [ "Ensure this field has no more than 255 characters." ]
"scope" is null400 Bad Request"scope": [ "This field may not be null." ]
"scope" has > 255 chars400 Bad Request"scope": [ "Ensure this field has no more than 255 characters." ]

GET /api/authentication-objects/

Returns list of Authentication Objects.

Permissions

Requires authentication and authentication_objects.list permission.

Request example

Headers

Request Method: GET
Content-Type: application/json
Authorization: JWT access_token

Response

KeyTypeNotes
limitint
offsetint
total_countintTotal number of forms visible to the user (based on permissions).
filtered_countintNumber of forms visible to the user (based on permissions) with filters applied.
nextURL / nullNext page URL (null if there is no next page)
previousURL / nullPrevious page URL (null if there is no previous page)
resultsArrayDescribed in the next table.

Response results array

KeyTypeNotes
idint
namestring
descriptionstring
providerenumValues: imanage, docusign, api_key, autologyx, microsoft_client_credentials, box_client_credentials, adobe_client_credentials, salesforce_client_credentials, oauth_client_credentials
expiry_atdate
created_atdatetime
created_byuser
modified_atdatetime
modified_byuser
_meta.permissionsObjectDict describing permissions.

Response example

  • Status 200 OK
  • Body
json
{
  "limit": 100,
  "offset": 0,
  "filtered_count": 1,
  "total_count": 20,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 5,
      "name": "My iManage credentials",
      "description": "The credentials to iManage provider"
      "provider": "imanage",
      "expiry_at": "2021-08-22",
      "created_at": "2021-08-12T11:21:51.877690+02:00",
      "created_by": <user>,
      "modified_at": "2021-09-14T11:11:31.127734+02:00",
      "modified_by": <user>,
      "_meta": {
        "permissions": {
            "list": true,
            "view": true,
            "edit": true,
            "create": true,
            "delete": true,
        }
      }
    }
  ]
}

Sorting

ParameterExampleNotes
id{build}/api/object-class-forms/?ordering=idAscending
id{build}/api/object-class-forms/?ordering=-idDescending (-)
name{build}/api/object-class-forms/?ordering=nameAscending
name{build}/api/object-class-forms/?ordering=-nameDescending (-)
expiry_at{build}/api/object-class-forms/?ordering=expiry_atAscending
expiry_at{build}/api/object-class-forms/?ordering=-expiry_atDescending (-)
created_at{build}/api/object-class-forms/?ordering=created_atAscending
created_at{build}/api/object-class-forms/?ordering=-created_atDescending (-)
modified_at{build}/api/object-class-forms/?ordering=modified_atAscending
modified_at{build}/api/object-class-forms/?ordering=-modified_atDescending (-)

Filtering

ParameterPredicatesExample
id={build}/api/object-class-forms/?id=9
namestandard string{build}/api/object-class-forms/?name__icontains=foobar
providerstandard enum{build}/api/object-class-forms/?provider_in=provider
expiry_atstandard date{build}/api/object-class-forms/?expiry_at=2022-01-01
created_atstandard datetime{build}/api/object-class-forms/?created_at__gte=2022-01-01
created_bystandard set{build}/api/object-class-forms/?created_by__in=123,234,345
modified_atstandard datetime{build}/api/object-class-forms/?modified_at__range=2022-01-01,2022-01-31
modified_bystandard set{build}/api/object-class-forms/?modified_by=123

Errors

ErrorResponse codeMessage
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

GET /api/authentication-objects/id/

Returns details of Authentication Objects.

Permissions

Requires authentication and authentication_objects.view permission.

Request example

Headers

Request Method: GET
Content-Type: application/json
Authorization: JWT access_token

Response example

  • Status 200 OK
  • Body
json
{
  "id": 5,
  "name": "My iManage credentials",
  "description": "The credentials to iManage provider",
  "expiry_at": "2025-02-05",
  "expiry_applies_to": "client_secret",
  "provider": "imanage",
  "created_at": "2021-08-12T11:21:51.877690+02:00",
  "created_by": <user>,
  "modified_at": "2021-09-14T11:11:31.127734+02:00",
  "modified_by": <user>,
  "_meta": {
    "permissions": {
        "list": true,
        "view": true,
        "edit": true,
        "create": true,
        "delete": true,
    }
  },
  "credentials": <credentials>
}
Autologyx
json
{
    ...
    "credentials": {
        "username": "user@example.com"
    }
}
DocuSign
json
{
    ...
    "credentials": {
        "user_id": "some-user-id",
        "client_id": "some-client-id",
        "host": "https://...."
    }
}
API Key
json
{
    ...
    "credentials": {
        "method": "send_in_header",
        "key": "MyHeader"
    }
}
Adobe Client Credentials
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "scope": "scope"
    }
}
Box
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "scope": "read, write",
        "box_subject_type": "user"
        "box_subject_type": "user-id"
    }
}
Generic Client Credentials
json
{
    ...
    "credentials": {
        "token_url": "https://oauth-client-credentials.com",
        "refresh_url": "https://oauth-client-credentials.com",  # included only if not empty
        "client_id": "some-client-id",  # included only if not empty
        "scope": "scope",  # included only if not empty
        "additional_parameters": {"key": "val"},
        "additional_authorization_headers": {"key": "val"},
    }
}
ROPC Generic oAuth
json
{
    ...
    "credentials": {
        "token_url": "https://example.com/oauth/refresh",
        "refresh_url": "https://example.com/oauth/token",  # included only if not empty
        "username": "user@example.com",
        "client_id": "some-client-id",  # included only if not empty
        "scope": "read, write",  # included only if not empty
    }
}
iManage
json
{
    ...
    "credentials": {
        "username": "user@example.com",
        "client_id": "some-client-id",
        "host": "https://...."
    }
}
Microsoft Client Credentials
json
{
    ...
    "credentials": {
        "tenant": "common",
        "client_id": "some-client-id",
        "scope": "https://graph.microsoft.com/.default"
    }
}
Salesforce Client Credentials
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "domain_name": "common"
    }
}

Errors

ErrorResponse codeMessage
Authentication object with "id" does not exist404 Not Found"detail": "Not found."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

PATCH /api/authentication-objects/id/

Updates the Authentication Object.

Permissions

Requires authentication and authentication_objects.edit permission.

Request example

Headers

Request Method: PATCH
Content-Type: application/json
Authorization: JWT access_token

Body

json
{
  "name": "My updated iManage credentials",
  "description": "The updated credentials to iManage provider"
  "credentials": {
    ...
}
iManage
json
{
    ...
    "credentials": {
        "username": "username",
        "password": "notObvious",
        "client_id": "some-client-id",
        "client_secret": "client-secret",
        "host": "https://...."
    }
}
DocuSign
json
{
    ...
    "credentials": {
        "user_id": "some-user-id",
        "client_id": "some-client-id",
        "private_rsa_key": "some-private-rsa-key",
        "host": "https://...."
    }
}
Autologyx
json
{
    ...
    "credentials": {
        "username": "user@example.com",
        "password": "notObvious",
    }
}
Microsoft Client Credentials
json
{
    ...
    "credentials": {
        "tenant": "common",
        "client_id": "some-client-id",
        "client_secret": "some-client-secret",
        "scope": "https://graph.microsoft.com/.default"
    }
}
Box Client Credentials
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "client_secret": "some-client-secret",
        "scope": "scope",
        "box_subject_type": "user",
        "box_subject_id": "8949874",
    }
}
Adobe Client Credentials
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "client_secret": "some-client-secret",
        "scope": "scope"
    }
}
Salesforce Client Credentials
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "client_secret": "some-client-secret",
        "domain_name": "common"
    }
}
Generic Client Credentials
json
{
    ...
    "credentials": {
        "client_id": "some-client-id",
        "client_secret": "some-client-secret",
        "scope": "https://graph.microsoft.com/.default",
        "token_url": "https://graph.microsoft.com/token",
        "refresh_url": "https://graph.microsoft.com/token",
        "additional_parameters": {},
        "additional_authorization_headers": {},
    }
}
ROPC Generic oAuth
json
{
    ...
    "credentials": {
        "token_url": "https://example.com/oauth/refresh",
        "refresh_url": "https://example.com/oauth/token",
        "username": "user@example.com",
        "password": "notObvious",
        "client_id": "some-client-id",
        "client_secret": "some-client-secret",
        "scope": "read",
    }
}

Response

KeyTypeNotes
idint
namestring
descriptionstring
providerenumValues: imanage, docusign, api_key, autologyx, microsoft_client_credentials, box_client_credentials, adobe_client_credentials, salesforce_client_credentials, oauth_client_credentials
expiry_atdateOptional
expiry_applies_tostringOptional
created_atdatetime
created_byuser
modified_atdatetime
modified_byuser
_meta.permissionsObjectDict describing permissions.
credentialsObjectA dict with publicly visible credentials.

Response example

  • Status 200 OK
  • Body
json
{
  "id": 5,
  "name": "My updated iManage credentials",
  "description": "The updated credentials to iManage provider",
  "expiry_at": "2025-02-05",
  "expiry_applies_to": "client_secret",
  "provider": "imanage",
  "created_at": "2021-08-12T11:21:51.877690+02:00",
  "created_by": <user>,
  "modified_at": "2021-09-14T11:11:31.127734+02:00",
  "modified_by": <user>,
  "_meta": {
    "permissions": {
        "list": true,
        "view": true,
        "edit": true,
        "create": true,
        "delete": true,
    }
  },
  "credentials": <credentials>
}

Restrictions

  • The provider cannot be changed once the Authentication Object has been created. Any attempt to change it will be silently ignored.

Errors

ErrorResponse codeMessage
Authentication object with "id" does not exist404 Not Found"detail": "Not found."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."
"expiry_at" is not a valid date400 Bad Request"expiry_at": ["Date has wrong format. Use one of these formats instead: YYYY-MM-DD."]
"expiry_at" is not a future date400 Bad Request"expiry_at": [ "Date must be in the future." ]
"expiry_applies_to" not provided when "expiry_at" is provided400 Bad Request"expiry_applies_to": [ "This field is required when expiry_at is provided." ]
"expiry_at_to" not provided when "expiry_applies_to" is provided400 Bad Requestexpiry_at": [ "This field is required when expiry_applies_to is provided." ]
"expiry_applies_to" has > 255 chars400 Bad Request"expiry_applies_to ": [ "Ensure this field has no more than 255 characters." ]
"expiry_applies_to" is null when the "expiry_at" is provided400 Bad Request"expiry_applies_to ": [ "This field may not be null when expiry_at is provided" ]
"expiry_at_to" is null when the "expiry_applies_to" is provided400 Bad Request"expiry_at ": [ "This field may not be null when expiry_applies_to is provided" ]
"expiry_applies_to" is blank400 Bad Requestexpiry_applies_to ": [ "This field may not be blank." ]
Provider integration is inactive400 Bad Request"details": ["<provider_name> integration requires activation to perform this action."]

DELETE /api/authentication-objects/id/

Deletes the Authentication object.

Permissions

Requires authentication and authentication_objects.delete permission.

Request example

  • Headers
Request Method: DELETE
Location: /api/authentication-objects/9/
Authorization: JWT access_token

Response example

  • Status 204 No Content
  • Body

Errors

ErrorResponse codeMessage
Authentication Object in use - Sequences400 Forbidden"detail": "Authentication Object is in use by Sequences."
Authentication Object in use - Outbound e-mail settings400 Forbidden"detail": "Authentication Object is in use by Outbound Mail Setup."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."
Authentication object with "id" does not exist404 Not Found"detail": "Not found."
Provider integration is inactive400 Bad Request"details": ["<provider_name> integration requires activation to perform this action."]

OPTIONS /api/authentication-objects/

Permissions

Requires authentication only.

Request example

  • Headers
Request Method: OPTIONS
Location: /api/authentication-objects/

Response example

  • Status 200 OK
  • Body
json
{
    "list": {
        "columns": [
            {
                "alias": "id",
                "type": "int",
                "predicates": [
                    "exact",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "range"
                ],
                "sort_ok": true
            },
            {
                "alias": "name",
                "type": "string",
                "predicates": [
                    "exact",
                    "iexact",
                    "contains",
                    "icontains",
                    "startswith",
                    "istartswith",
                    "endswith",
                    "iendswith"
                ],
                "sort_ok": true
            },
            {
                "alias": "provider",
                "type": "enum",
                "predicates": [
                    "exact",
                    "in"
                ],
                "sort_ok": false,
                "values": [
                    {
                        "value": "autologyx",
                        "text": "Autologyx"
                    },
                    {
                        "value": "docu_sign",
                        "text": "DocuSign"
                    },
                    {
                        "value": "api_key",
                        "text": "Api Key"
                    },
                    {
                        "value": "adobe_client_credentials",
                        "text": "Adobe Client Credentials"
                    },
                    {
                        "value": "box_client_credentials",
                        "text": "Box Client Credentials"
                    },
                    {
                        "value": "oauth_client_credentials",
                        "text": "Generic Client Credentials"
                    },
                    {
                        "value": "oauth_ropc",
                        "text": "ROPC Generic oAuth"
                    },
                    {
                        "value": "imanage",
                        "text": "iManage"
                    },
                    {
                        "value": "microsoft_client_credentials",
                        "text": "Microsoft Client Credentials"
                    },
                    {
                        "value": "salesforce_client_credentials",
                        "text": "Salesforce Client Credentials"
                    }
                ]
            },
            {
                "alias": "description",
                "type": "string",
                "predicates": [],
                "sort_ok": false
            },
            {
                "alias": "expiry_at",
                "type": "date",
                "predicates": [
                    "exact",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "range",
                    "isnull"
                ],
                "sort_ok": true
            },
            {
                "alias": "created_at",
                "type": "datetime",
                "predicates": [
                    "exact",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "range"
                ],
                "sort_ok": true
            },
            {
                "alias": "modified_at",
                "type": "datetime",
                "predicates": [
                    "exact",
                    "gt",
                    "gte",
                    "lt",
                    "lte",
                    "range"
                ],
                "sort_ok": true
            },
            {
                "alias": "created_by",
                "type": "user",
                "predicates": [
                    "exact",
                    "in"
                ],
                "sort_ok": false,
                "autocomplete": "/api/users/autocomplete/?text__icontains="
            },
            {
                "alias": "modified_by",
                "type": "user",
                "predicates": [
                    "exact",
                    "in"
                ],
                "sort_ok": false,
                "autocomplete": "/api/users/autocomplete/?text__icontains="
            }
        ]
    },
    "details": {
        "schema": [
            {
                "alias": "name",
                "type": "string",
                "required": true,
                "validators": [
                    {
                        "type": "max_length",
                        "length": 100
                    }
                ]
            },
            {
                "alias": "description",
                "type": "string",
                "required": false,
                "validators": [
                    {
                        "type": "max_length",
                        "length": 500
                    }
                ]
            },
            {
                "alias": "expiry_at",
                "type": "date",
                "required": false,
                "validators": [
                    {
                        "type": "date_in_future"
                    }
                ]
            },
            {
                "alias": "expiry_applies_to",
                "type": "string",
                "required": false,
                "validators": [
                    {
                        "type": "max_length",
                        "length": 255
                    }
                ]
            },
            {
                "alias": "provider",
                "type": "enum",
                "values": [
                    {
                        "value": "autologyx",
                        "text": "Autologyx"
                    },
                    {
                        "value": "docu_sign",
                        "text": "DocuSign"
                    },
                    {
                        "value": "api_key",
                        "text": "Api Key"
                    },
                    {
                        "value": "adobe_client_credentials",
                        "text": "Adobe Client Credentials"
                    },
                    {
                        "value": "box_client_credentials",
                        "text": "Box Client Credentials"
                    },
                    {
                        "value": "oauth_client_credentials",
                        "text": "Generic Client Credentials"
                    },
                    {
                        "value": "oauth_ropc",
                        "text": "ROPC Generic oAuth"
                    },
                    {
                        "value": "imanage",
                        "text": "iManage"
                    },
                    {
                        "value": "microsoft_client_credentials",
                        "text": "Microsoft Client Credentials"
                    },
                    {
                        "value": "salesforce_client_credentials",
                        "text": "Salesforce Client Credentials"
                    }
                ],
                "required": true
            },
            {
                "alias": "credentials",
                "schema": [],
                "schema_by_provider": [
                    {
                        "provider": "autologyx",
                        "schema": [
                            {
                                "alias": "username",
                                "type": "email",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "password",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "docu_sign",
                        "schema": [
                            {
                                "alias": "user_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "private_rsa_key",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 2000
                                    }
                                ]
                            },
                            {
                                "alias": "host",
                                "type": "enum",
                                "required": true,
                                "values": [
                                    {
                                        "value": "account.docusign.com",
                                        "text": "account.docusign.com"
                                    },
                                    {
                                        "value": "account-d.docusign.com",
                                        "text": "account-d.docusign.com"
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "api_key",
                        "schema": [
                            {
                                "alias": "api_key",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 8000
                                    }
                                ]
                            },
                            {
                                "alias": "method",
                                "type": "enum",
                                "required": true,
                                "values": [
                                    {
                                        "value": "send_in_header",
                                        "text": "Send in header"
                                    },
                                    {
                                        "value": "send_in_query_string",
                                        "text": "Send in query string"
                                    }
                                ]
                            },
                            {
                                "alias": "key",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "adobe_client_credentials",
                        "schema": [
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "scope",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "box_client_credentials",
                        "schema": [
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "scope",
                                "type": "string",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "box_subject_type",
                                "type": "enum",
                                "required": true,
                                "values": [
                                    {
                                        "value": "user",
                                        "text": "user"
                                    },
                                    {
                                        "value": "enterprise",
                                        "text": "enterprise"
                                    }
                                ]
                            },
                            {
                                "alias": "box_subject_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "oauth_client_credentials",
                        "schema": [
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "scope",
                                "type": "string",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "token_url",
                                "type": "url",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "refresh_url",
                                "type": "url",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "additional_parameters",
                                "type": "json_object",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 5000
                                    }
                                ]
                            },
                            {
                                "alias": "additional_authorization_headers",
                                "type": "json_object",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 5000
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "oauth_ropc",
                        "schema": [
                            {
                                "alias": "token_url",
                                "type": "url",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "refresh_url",
                                "type": "url",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "username",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "password",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "scope",
                                "type": "string",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "imanage",
                        "schema": [
                            {
                                "alias": "username",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "password",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": false,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "host",
                                "type": "url",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "microsoft_client_credentials",
                        "schema": [
                            {
                                "alias": "tenant",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            },
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "scope",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    },
                    {
                        "provider": "salesforce_client_credentials",
                        "schema": [
                            {
                                "alias": "client_id",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "client_secret",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 120
                                    }
                                ]
                            },
                            {
                                "alias": "domain_name",
                                "type": "string",
                                "required": true,
                                "validators": [
                                    {
                                        "type": "max_length",
                                        "length": 255
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "restrictions": {
        "limit_items": 100
    }
}

GET /api/authentication-objects/id/usage/

Permissions

Requires authentication and authentication_objects.view permission.

Request example

  • Headers
Request Method: GET
Location: /api/authentication-objects/1/usage/
Authorization: JWT access_token

Response

KeyTypeNotes
num_of_outbound_mail_setupint
sequencesarray
num_of_sequencesint

Response sequences array

KeyTypeNotes
idintSequence id
namestrName of sequence

Response example

  • Status 200 OK
  • Body
json
{
    "num_of_outbound_mail_setup": 0,
    "sequences": [
        {
            "id": 1,
            "name": "sequence1"
        },
        {
            "id": 7,
            "name": "sequence_test"
        }
    ],
    "num_of_sequences": 2,
}

Errors

ErrorResponse codeMessage
id is invalid404 Bad Request'detail': "Not found."
Unauthorized API call403 Bad Request'detail': "You do not have permission to perform this action."

POST /api/authentication-objects/test/

Returns a status for given credentials:

  • True – if credentials are correct
  • False – if there was authentication error

Permissions

Requires authentication and authentication_objects.edit permission.

Request example

Headers

Request Method: POST
Content-Type: application/json
Authorization: JWT access_token

Body

For provider specific credentials, see #POST /api/authentication-objects/

json
{
  "name": "Authentication object",
  "description": "Description",
  "provider": "autologyx",
  "credentials": {
        "username": "some_username@example.test",
        "password": "password"
    }
}

Response

json
{
    "status": true
}

Errors

ErrorResponse codeMessage
Provider integration is both inactive and disabled400 Bad Request"details": ["<provider_name> integration requires activation and enablement to perform this action."]
Provider integration is inactive400 Bad Request"details": ["<provider_name> integration requires activation to perform this action."]
Provider integration is disabled400 Bad Request"details": ["<provider_name> integration requires enablement to perform this action."]

POST /api/authentication-objects/id/test/

Returns a status for credentials stored for an existing authentication object:

  • True – if credentials are correct
  • False – if there was authentication error

Permissions

Requires authentication and authentication_objects.edit permission.

Request example

Headers

Request Method: POST
Content-Type: application/json
Authorization: JWT access_token

Body

For provider specific credentials, see #POST /api/authentication-objects/

json
{
  "name": "Authentication object",
  "description": "Description",
  "provider": "autologyx",
  "credentials": {
        "username": "some_username@example.test",
        "password": "password"
    }
}

Response

json
{
    "status": true
}

Errors

ErrorResponse codeMessage
Provider integration is inactive400 Bad Request"details": ["<provider_name> integration requires activation to perform this action."]

Personal Authentication - PAO

Personal Authentication Objects are user-specific credentials that allow individual users to authenticate and access external systems. Unlike system-wide Authentication Objects, they are created and managed by Users without requiring special permissions.

Each Personal Authentication Object is private to the User who created it, ensuring that only they can view or modify it. However, Super Admin Users are an exception; they have the ability to edit them but cannot use them to authenticate in external systems.

PAO related to any Integration are excluded.

POST /api/authentication-objects/personal/

Permissions

Requires authentication only.

Request example

Headers

Request Method: POST
Content-Type: application/json
Authorization: JWT access_token

Body

KeyTypeNotes
namestring
descriptionstring
providerenumValues: imanage, docusign, api_key, autologyx, microsoft_client_credentials, box_client_credentials, adobe_client_credentials, salesforce_client_credentials, oauth_client_credentials
credentialsobjectEach provider has different set of credentials

For provider specific credentials, see #POST /api/authentication-objects/

Response

  • Successful status 201 Created
  • Response body:
json
{
  "id": 5,
  "name": "My iManage credentials",
  "description": "The credentials to iManage provider"
  "provider": "imanage",
  "created_at": "2021-05-18T06:39:17.688341Z",
  "created_by": { 
    "id ": 256, 
    "first_name": "John", 
    "last_name": "Smith", 
    "username": "j.smith@autologyx.com", 
    "company_name": "Autologyx", 
    "is_deleted": false
},
  "modified_at": "2021-05-18T06:39:17.688394Z"
  "modified_by": {
    "id ": 256,
    "first_name": "John",
    "last_name": "Smith",
    "username": "j.smith@autologyx.com",
    "company_name": "Autologyx",
    "is_deleted": false
  },
  "_meta": {
    "permissions":{
      "list": true,
      "view": true,
      "create": true,
      "edit": true,
      "delete": true
    } 
  }
}

Restrictions

  • Each User may have only 1 Personal Authentication Object created for each provider.

Errors

Generally, the same errors as for #POST /api/authentication-objects/ are handled.

Additional errors are listed below.

ErrorResponse codeMessage
Limit of PAOs per provider exceeded400 Bad Request"type": [ "Personal Authentication Object for this provider has already been created." ]
"method": "send_in_query_string" is passed in credentials of api_key provider400 Bad Request"method": [ '"send_in_query_string" is not a valid choice.' ]

GET /api/authentication-objects/personal/

Returns list of Personal Authentication Objects.

Permissions

Requires authentication and the User must be a Super Admin.

Request example

Headers

Request Method: GET
Content-Type: application/json
Authorization: JWT access_token

Response

KeyTypeNotes
limitint
offsetint
total_countintTotal number of forms visible to the user (based on permissions).
filtered_countintNumber of forms visible to the user (based on permissions) with filters applied.
nextURL / nullNext page URL (null if there is no next page)
previousURL / nullPrevious page URL (null if there is no previous page)
resultsArrayDescribed in the next table.

Response results array

KeyTypeNotes
idint
namestring
descriptionstring
providerenumValues: imanage, docusign, api_key, autologyx, microsoft_client_credentials, box_client_credentials, adobe_client_credentials, salesforce_client_credentials, oauth_client_credentials
created_atdatetime
created_byuser
modified_atdatetime
modified_byuser
_meta.permissionsObjectDict describing permissions.

Response example

  • Status 200 OK
  • Body
json
{
  "limit": 100,
  "offset": 0,
  "filtered_count": 1,
  "total_count": 20,
  "next": null,
  "previous": null,
  "results": [
    {
      "id": 5,
      "name": "My iManage credentials",
      "description": "The credentials to iManage provider"
      "provider": "imanage",
      "created_at": "2021-08-12T11:21:51.877690+02:00",
      "created_by": <user>,
      "modified_at": "2021-09-14T11:11:31.127734+02:00",
      "modified_by": <user>,
      "_meta": {
        "permissions": {
            "list": true,
            "view": true,
            "edit": true,
            "create": true,
            "delete": true,
        }
      }
    }
  ]
}

Sorting

ParameterExampleNotes
id{build}/api/object-class-forms/?ordering=idAscending
id{build}/api/object-class-forms/?ordering=-idDescending (-)
name{build}/api/object-class-forms/?ordering=nameAscending
name{build}/api/object-class-forms/?ordering=-nameDescending (-)
created_at{build}/api/object-class-forms/?ordering=created_atAscending
created_at{build}/api/object-class-forms/?ordering=-created_atDescending (-)
modified_at{build}/api/object-class-forms/?ordering=modified_atAscending
modified_at{build}/api/object-class-forms/?ordering=-modified_atDescending (-)

Filtering

ParameterPredicatesExample
id={build}/api/object-class-forms/?id=9
namestandard string{build}/api/object-class-forms/?name__icontains=foobar
providerstandard enum{build}/api/object-class-forms/?provider_in=provider
created_atstandard datetime{build}/api/object-class-forms/?created_at__gte=2022-01-01
created_bystandard set{build}/api/object-class-forms/?created_by__in=123,234,345
modified_atstandard datetime{build}/api/object-class-forms/?modified_at__range=2022-01-01,2022-01-31
modified_bystandard set{build}/api/object-class-forms/?modified_by=123

Errors

ErrorResponse codeMessage
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

GET /api/authentication-objects/personal/me/

Returns a list of the caller's Personal Authentication Objects.

Permissions

Requires authentication only.

Request example

Headers

Request Method: GET
Content-Type: application/json
Authorization: JWT access_token

Response

The same errors as for #GET /api/authentication-objects/personal/.

Sorting

The same errors as for #GET /api/authentication-objects/personal/.

Filtering

ParameterPredicatesExample
id={build}/api/object-class-forms/?id=9
namestandard string{build}/api/object-class-forms/?name__icontains=foobar
providerstandard enum{build}/api/object-class-forms/?provider_in=provider
created_atstandard datetime{build}/api/object-class-forms/?created_at__gte=2022-01-01
modified_atstandard datetime{build}/api/object-class-forms/?modified_at__range=2022-01-01,2022-01-31

Errors

ErrorResponse codeMessage
Requesting user is not authenticated401 Unauthorized"detail": "Authentication credentials were not provided."

GET /api/personal-authentication-objects/id/

Returns details of the Personal Authentication Object.

Permissions

Requires authentication and the User must be either the creator of the Personal Authentication Object or a Super Admin.

Request example

Headers

Request Method: GET
Content-Type: application/json
Authorization: JWT access_token

Response example

  • Status 200 OK
  • Body
json
{
  "id": 5,
  "name": "My iManage credentials",
  "description": "The credentials to iManage provider"
  "provider": "imanage",
  "created_at": "2021-08-12T11:21:51.877690+02:00",
  "created_by": <user>,
  "modified_at": "2021-09-14T11:11:31.127734+02:00",
  "modified_by": <user>,
  "_meta": {
    "permissions": {
        "list": true,
        "view": true,
        "edit": true,
        "create": true,
        "delete": true,
    }
  }
}

For provider specific credentials, see #GET /api/authentication-objects/id/

Errors

ErrorResponse codeMessage
PAO with "id" does not exist404 Not Found"detail": "Not found."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

PATCH /api/authentication-objects/personal/id/

Updates the Personal Authentication Object.

Permissions

Requires authentication and the User must be either the creator of the Personal Authentication Object or a Super Admin.

Request example

Headers

Request Method: PATCH
Content-Type: application/json
Authorization: JWT access_token

Body

json
{
  "name": "My updated iManage credentials",
  "description": "The updated credentials to iManage provider",
  "credentials": {
    ...
  }
}

For provider specific credentials, see #GET /api/authentication-objects/id/

Response

KeyTypeNotes
idint
namestring
descriptionstring
providerenumValues: imanage, docusign, api_key, autologyx, microsoft_client_credentials, box_client_credentials, adobe_client_credentials, salesforce_client_credentials, oauth_client_credentials
created_atdatetime
created_byuser
modified_atdatetime
modified_byuser
_meta.permissionsObjectDict describing permissions.

Response example

  • Status 200 OK
  • Body
json
{
  "id": 5,
  "name": "My updated iManage credentials",
  "description": "The updated credentials to iManage provider"
  "provider": "imanage",
  "created_at": "2021-08-12T11:21:51.877690+02:00",
  "created_by": <user>,
  "modified_at": "2021-09-14T11:11:31.127734+02:00",
  "modified_by": <user>,
  "_meta": {
    "permissions": {
        "list": true,
        "view": true,
        "edit": true,
        "create": true,
        "delete": true,
    }
  }
}

Errors

The same errors as for #PATCH /api/authentication-objects/id/ are handled.

ErrorResponse codeMessage
"method": "send_in_query_string" is passed in credentials of api_key provider400 Bad Request"method": [ '"send_in_query_string" is not a valid choice.' ]

DELETE /api/authentication-objects/personal/id/

Deletes the Personal Authentication object.

Permissions

Requires authentication and the User must be either the creator of the Personal Authentication Object or a Super Admin.

Request example

  • Headers
Request Method: DELETE
Location: /api/authentication-objects/personal/9/
Authorization: JWT access_token

Response example

  • Status 204 No Content
  • Body

Errors

ErrorResponse codeMessage
Requesting user is not authenticated401 Unauthorized"detail": "Authentication credentials were not provided."
PAO with "id" does not exist404 Not Found"detail": "Not found."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."

GET /api/authentication-objects/personal/id/authentication-headers/

This endpoint provides the authentication data of a specified Personal Authentication Object (PAO) in a format to be directly used in request’s headers to external system.

Permissions

Requires authentication and the User must be the creator of the Personal Authentication Object.

Request example

Headers

Request Method: GET
Content-Type: application/json
Authorization: JWT access_token

Response

Response contains the authentication headers for the Personal Authentication Object of different providers.

  1. Generally access_token is obtained from the Personal Authentication Object and used in the authentication header with the "Bearer" prefix to authorize subsequent requests to the server.
  2. A Personal Authentication Object with client_credentials provider is used to obtain the access_token and token_type which are used in the header.
  3. Every time access_token is used, it is checked for expiry. If it is expired, a new access_token is obtained using the refresh_token and the new access_token is used in the header.
  4. Header key might be different for different providers. For example, for imanage provider, the key is X-Auth-Token and its value is Bearer <access_token>.
  5. token_type is used to specify the type of token used in the header it might be different for different providers. For example, for client_credentials provider, the token_type is Bearer.
  6. For api_key provider, the api_key and its saved value is used in the header. Personal Authentication Object is used to store the API key and its value.

Response example

  • Status 200 OK
  • Body

Provider

iManage
json
{
    "X-Auth-Token": "<token_type> <access_token>"
}
Autologyx
json
{
    "Authorization": "<token_type> <access_token>"
}
Api Key
json
{
    "Some-api-key": "api key"
}
Docu Sign
json
{
    "Authorization": "<token_type> <access_token>"
}
Adobe
json
{
    "Authorization": "<token_type> <access_token>"
}
Box
json
{
    "Authorization": "<token_type> <access_token>"
}
Generic Client Credentials
json
{
    "Authorization": "<token_type> <access_token>"
}
Microsoft
json
{
    "Authorization": "<token_type> <access_token>"
}
Salesforce
json
{
    "Authorization": "<token_type> <access_token>"
}

Errors

ErrorResponse codeMessage
Requesting user is not authenticated401 Unauthorized"detail": "Authentication credentials were not provided."
PAO with "id" does not exist404 Not Found"detail": "Not found."
Insufficient permissions403 Forbidden"detail": "You do not have permission to perform this action."
Authentication failed200 OK"detail": "Unable to authenticate your credentials.", "error_code": "ERR_INVALID_CREDENTIALS"

POST /api/authentication-objects/personal/test/

Returns a status for given credentials:

  • True – if credentials are correct
  • False – if there was authentication error

Permissions

Requires authentication only.

Request example

Headers

Request Method: POST
Content-Type: application/json
Authorization: JWT access_token

Body

For provider specific credentials, see #POST /api/authentication-objects/personal/

json
{
  "name": "Authentication object",
  "description": "Description",
  "provider": "autologyx",
  "credentials": {
        "username": "some_username@example.test",
        "password": "password"
    }
}

Response

json
{
    "status": true
}

POST /api/authentication-objects/personal/id/test/

Returns a status for credentials stored for an existing authentication object:

  • True – if credentials are correct
  • False – if there was authentication error

Permissions

Requires authentication and the User must be either the creator of the Personal Authentication Object or a Super Admin.

Request example

Headers

Request Method: POST
Content-Type: application/json
Authorization: JWT access_token

Body

For provider specific credentials, see #POST /api/authentication-objects/personal/

json
{
  "name": "Authentication object",
  "description": "Description",
  "provider": "autologyx",
  "credentials": {
        "username": "some_username@example.test",
        "password": "password"
    }
}

Response

json
{
    "status": true
}