PingOne Platform APIs

DaVinci Admin Variables

The PingOne DaVinci Admin Variables service provides endpoints to create, read, update, and delete DaVinci variables. Variables are values that can be read and modified during a flow. Every variable has a context, which determines how widely its value is shared.

The options for the variable’s context types are:

  • flow

    The variable is tied to a specific flow and has a single, persistent value until that value is changed.

  • flowInstance

    The variable can be used in multiple flows.

    • If the variable’s value is set within a flow, the variable instance in that flow gets the value set by the flow’s execution.

    • If the variable’s value is not set within a flow, the variable instance in that flow inherits the value.

  • user

    The variable has a separate value for each user. If you use a variable with this context in a flow, the user must be identified.

  • company

    The variable has a single value for the company. This value is used in all flows and for all users.

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 variable data model properties

Property Type Required Mutable Description

createdAt

Date

N/A

Read only

The time when the variable was created.

context

String

Required

Immutable

The context or type of the variable. Options are flow, flowInstance, user, or company.

dataType

String

Required

Mutable

Data type of the variable. Can be STRING, BOOLEAN, NUMBER, SECRET, or OBJECT. The context property must be set to company to use SECRET as the value for the dataType property.

displayName

String

Optional

Mutable

A human-readable variable name set in the request.

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.

flow

Object

Immutable

Optional

The flow object specifying the DaVinci flow associated with the variable. This is a required property when context is set to flow. It is ignored when context is set to any other option.

flow.id

String

Immutable

Optional

The flow ID of the DaVinci flow associated with the variable. This is a required property when context is set to flow. It is ignored when context is set to any other option.

id

String

N/A

Read only

The variable ID.

max

Integer

Optional

Mutable

The maximum value of the variable. The default value is 2000.

min

Integer

Optional

Mutable

The minimum value of the variable. The default value is 0.

mutable

Boolean

Optional

Mutable

Specifies whether the variable is mutable, which allows nodes within a flow to change the value of the variable. If the value property is null, this property is required.

name

String

Required

Immutable

The variable name.

updatedAt

Date

N/A

Read only

The time when the variable was modified.

value

String/Number/Boolean/Object

Optional

Mutable

An internally stored value that is part of a HashMap/Object. If the mutable property is set to false, this property is required. If mutable is not set on the request, it defaults to true.

Limiting and filtering data

These SCIM operators can be applied to the following attributes:

  • eq (equals)

    Supports attributes of type STRING and BOOLEAN.

  • sw (starts with)

    Supports attributes of type STRING.

  • ew (ends with)

    Supports attributes of type STRING.

  • co (contains)

    Supports attributes of type STRING.

  • and (logical AND)

    Logical AND for building compound expressions in which both expressions are true.

  • or (logical OR)

    Logical OR for building compound expressions if either expression is true.

For information about paging and ordering the response for Read All DaVinci Variables, refer to Paging and ordering collections.

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 variable errors

In addition to the general error codes, DaVinci variable 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}/variables or a PUT /environments/{envID}/variables/{davinciVariableID} request supplies a body that violates the data model: an omitted name, context, dataType, or mutable property, a flow object without an id property, a name or displayName longer than 256 characters, an empty or blank name or displayName, a name, displayName, or flow.id value that starts with an unsupported character or contains a < or a ${ sequence, a context value other than flow, flowInstance, company, or user, a dataType value other than string, number, object, boolean, or secret, or a property whose value is not of the documented JSON type

Details: One detail per validation error, each with the failing property path as the target. must have required property 'name', must have required property 'context', must have required property 'dataType', or must have required property 'mutable' with the omitted property as the target when the request omits that property, and must have required property 'id' with target flow when the request supplies a flow object without an id property. must NOT have more than 256 characters for a name or displayName longer than 256 characters. must not be empty or blank for an empty or blank name or displayName. must match pattern "<pattern>", where <pattern> is the schema pattern, for a name, displayName, or flow.id value that starts with an unsupported character or contains a < or a ${ sequence. must be one of the values: flow or flowInstance or company or user for an unknown context value and must be one of the values: string or number or object or boolean or secret for an unknown dataType value. must be string for a property that must be a string, for example with target name, must be boolean for a mutable value that is not a boolean, must be integer for a min or max value that is not an integer, and must be string,number,boolean,object for a value that is not one of those types.

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 /environments/{envID}/variables or a GET /environments/{envID}/variables/{davinciVariableID} request supplies an expand query parameter longer than 100 characters or a filter query parameter longer than 256 characters

Details: Detail code INVALID_PARAMETER with message must NOT have more than 100 characters and target expand for an overlong expand parameter, or message must NOT have more than 256 characters and target filter for an overlong filter parameter.

400

INVALID_DATA

INVALID_PARAMETER

Message: Invalid attribute provided for sorting

When and details

When: A GET /environments/{envID}/variables request supplies an order query parameter that names an attribute other than name, createdAt, context, value, dataType, or updatedAt

Details: Detail code INVALID_PARAMETER with message Invalid attribute provided for sorting: valid parameters are name, createdAt, context, value, dataType, updatedAt and target order.

400

INVALID_DATA

INVALID_PARAMETER

Message: Invalid page size provided

When and details

When: A GET /environments/{envID}/variables request supplies a limit query parameter that is not a positive integer or is greater than 100

Details: Detail code INVALID_PARAMETER with message Invalid page size provided: page size ranges from 1 to 100 and target limit.

400

INVALID_DATA

INVALID_VALUE

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

When and details

When: A POST request that sets dataType to secret while context is anything other than company, a PUT request that sets dataType to secret for a variable whose context is not company, or a POST request that uses the reserved variable name proto, prototype, or constructor

Details: Detail code INVALID_VALUE with message 'Secret' type is only available for company variables for a secret data type outside the company context, or message Cannot create variable with this name for a reserved name. No target is returned.

400

INVALID_DATA

REQUIRED_VALUE

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

When and details

When: A POST request sets context to flow without a flow.id property in the request body

Details: Detail code REQUIRED_VALUE with message must have required property 'flow.id' and no target.

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 request creates a variable whose name and context combination already exists in the environment

Details: Detail code UNIQUENESS_VIOLATION with message Construct already exists and no target.

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 /environments/{envID}/variables request supplies a filter query parameter that references an attribute other than context, name, value, createdAt, or updatedAt, an operator that the filtered attribute does not support, or an actor attribute such as createdBy.user.id when actor metadata is disabled for the environment. When actor metadata is enabled, actor attributes support only eq combined through and or or

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 or the attribute that does not support it 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

CONSTRAINT_VIOLATION

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

When and details

When: A POST request creates a variable after the environment has reached the maximum number of variables allowed for the environment

Details: Detail code CONSTRAINT_VIOLATION with message Cannot create more constructs due to resource limit and no target.

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:constructs permission (POST operations), the davinci:read:constructs permission (GET operations), the davinci:update:constructs permission (PUT operations), or the davinci:delete:constructs permission (DELETE operations)

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, or DELETE request references a variable ID that does not exist in the environment

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 a variable operation, including a create or update whose variable value exceeds the 1 MB per-variable size limit when size-limit enforcement is enabled for the environment

Details: None