PingOne Platform APIs

DaVinci Admin Applications

The PingOne DaVinci Admin Applications service provides endpoints to create, read, update, and delete DaVinci applications. This service also includes endpoints to rotate the application key and application secret values.

A DaVinci application configuration is the link between your site and the sign-on flows you have created in DaVinci. The application configuration contains settings to determine how external sites can send requests for flows, what flows can be requested, and how users and resources from other sites are managed.

Assigning admin roles and permissions to this service

Admin role assignments determine access to PingOne APIs. When assigning admin roles to this service, refer to PingOne Permissions by Service for the service-specific permissions.

You can also choose to assign admin roles based on particular service resources. Refer to PingOne Permissions by Resource when assigning admin roles per service resources.

Admin assignments to roles are set by:

Refer to Roles Management for more information.

DaVinci Admin applications data model properties

Property Type Required Mutable Description

apiKey

Object

Optional

Mutable

The collection of API keys associated with this application resource.

apiKey.enabled

Boolean

Optional

Mutable

Specifies whether the API key for this appliction is enabled.

apiKey.value

String

Optional

Mutable

The value of the API key.

createdAt

Date

N/A

Read only

The time when the application was created.

environment

Object

N/A

Read only

The DaVinci company ID (environment ID) object.

environment.id

String

N/A

Read only

The DaVinci company ID, which is the PingOne environment ID.

id

String

N/A

Read only

The application ID.

name

String

Required

Mutable

The application name.

oauth

Object

Optional

Mutable

The OAuth configuration for this application resource.

oauth.clientSecret

String

Optional

Mutable

The client secret used by this application resource.

oauth.redirectUris

Array

Optional

Mutable

The list of redirect URIs configured for this application resource.

oauth.logoutURIs

Array

Optional

Mutable

The list of logout URIs configured for this application resource.

oauth.scopes

Array

Optional

Mutable

The list of OAuth scopes configured for this application resource.

oauth.grantTypes

Array

Optional

Mutable

The list of OAuth grant types configured for this application resource.

oauth.spjwksUrl

String

Optional

Mutable

A URL to retrieve JWKS keys to verify the authorization request signature. This option takes precedence over spjwksOpenid property if both are set.

oauth.spJwksOpenid

String

Optional

Mutable

A set of JWKS keys to verify the authorization request signature. This property is ignored if spjwksUrl is set.

updatedAt

Date

N/A

Read only

The time when the application was last modified.

Response codes

Code Message

200

Successful operation.

201

Successfully created.

204

Successfully removed. No content.

400

The request could not be completed.

401

You do not have access to this resource.

403

You do not have permissions or are not licensed to make this request.

404

The requested resource was not found.

DaVinci application errors

In addition to the general error codes, DaVinci application operations can return the following errors:

HTTP status Top‑level code Detail code When it happens and what the response contains

400

INVALID_DATA

REQUIRED_VALUE, EMPTY_VALUE, INVALID_VALUE, or OUT_OF_RANGE

Message: The request could not be completed. One or more validation errors were in the request.

When and details

When: A POST /environments/{envID}/davinciApplications or a PUT /environments/{envID}/davinciApplications/{davinciApplicationID} request supplies a body that violates the data model: an omitted name, a blank or null name, a name longer than 256 characters, a name whose first non-whitespace character is outside the allowed set or that contains a < or a ${ sequence, an apiKeyEnabled value that is not a boolean, an oauth value that is not an object, or an unknown oauth.scopes or oauth.grantTypes value

Details: One detail per validation error, each with the failing property path as the target. must have required property 'name' with target name when the request omits name. must not be empty or blank for a blank name. must be string, must be boolean, or must be object for a property of the wrong JSON type. must NOT have more than 256 characters for a name longer than 256 characters. must match pattern "<pattern>", where the pattern is the JSON schema pattern for the property, for a name whose first non-whitespace character is outside the allowed set or that contains a < or a ${ sequence. must be one of the values: <allowed values joined by or>, for example must be one of the values: openid or profile or flow_analytics or offline_access with target oauth.scopes.2 for an unknown oauth.scopes entry.

400

INVALID_DATA

UNIQUENESS_VIOLATION

Message: The request could not be completed. One or more validation errors were in the request.

When and details

When: A POST /environments/{envID}/davinciApplications request fails with a duplicate-key storage error, for example when the request specifies an application name that already exists

Details: App record already exists. No target is returned.

400

INVALID_DATA

INVALID_PARAMETER

Message: The request could not be completed. One or more validation errors were in the request.

When and details

When: A GET all applications request supplies a page, limit, filter, or expand query parameter longer than 256 characters

Details: Detail code INVALID_PARAMETER with message must NOT have more than 256 characters and the overlong query parameter as the target.

400

REQUEST_FAILED

CONSTRAINT_VIOLATION

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A PUT, DELETE, key rotation POST, or secret rotation POST targets an application that is read-only

Details: Application is read-only. The target is readOnly.

400

REQUEST_FAILED

INVALID_PARAMETER or INVALID_FILTER

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A GET all applications request supplies a filter query parameter that references an attribute other than createdBy.user.id, createdBy.client.id, updatedBy.user.id, or updatedBy.client.id, or an operator other than eq, and, or or, when actor metadata is enabled for the environment. When actor metadata is disabled, the filter parameter is ignored

Details: Detail code INVALID_PARAMETER with message The filter attribute was invalid or does not support filtering. and the invalid attribute as the target, or message The filter operator was invalid or not supported. and the invalid operator as the target. A filter that is not a well-formed SCIM expression returns detail code INVALID_FILTER with message The specified filter was invalid. and no target.

400

REQUEST_FAILED

ITEM_LIMIT_EXCEEDED

Message: The request could not be completed. There was an issue processing the request.

When and details

When: A POST /environments/{envID}/davinciApplications request creates an application after the environment has reached the maximum number of applications allowed for the environment

Details: Cannot create more than <resourceLimit> applications. No target is returned.

403

ACCESS_FAILED

None

Message: The request could not be completed. You do not have access to this resource.

When and details

When: The actor lacks the davinci:create:applications permission (POST operations), the davinci:read:applications permission (GET operations), the davinci:update:applications permission (PUT or the key or secret rotation POST), or the davinci:delete:applications permission (DELETE)

Details: None

404

NOT_FOUND

None

Message: The request could not be completed. The requested resource was not found.

When and details

When: A GET one, PUT, DELETE, key rotation, or secret rotation request references a DaVinci application ID that does not exist in the environment

Details: None

415

INVALID_REQUEST

None

Message:

The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.
When and details

When: A key rotation request does not use the application/vnd.pingidentity.davinciApplication.rotateKey+json content type, or a secret rotation request does not use the application/vnd.pingidentity.davinciApplication.rotateSecret+json content type

Details: None

500

UNEXPECTED_ERROR

None

Message: There was an unexpected error with the service. Please try again later.

When and details

When: The service encounters an unexpected internal failure while processing the request, for example a GET all applications request that cannot read the application list

Details: None