PingDirectory

Relationship between the Configuration API and the dsconfig tool

The Configuration API is designed to mirror the dsconfig tool, using the same names for properties and object types.

Property names are presented as hyphen case in dsconfig and as camel-case attributes in the API. In API requests that specify property names, case is not important. Therefore, baseDN is the same as baseDn. Object types are represented in hyphen case. API paths mirror what is in dsconfig. For example, the dsconfig list-connectionhandlers command is analogous to the API’s /config/connection-handlers path. Object types that appear in the schema URNs adhere to a type:subtype syntax. For example, a Local DB Backend’s schema URN is urn:unboundid:schemas:configuration:2.0:backend:localdb. Like the dsconfig tool, all configuration updates made through the API are recorded in logs/config-audit.log.

The API includes the filter, sort, and pagination query parameters described by the System for Cross-domain Identity Management (SCIM) specification. Specific attributes may be requested using the attributes query parameter, whose value must be a comma-delimited list of properties to be returned, for example attributes=baseDN,description. Likewise, attributes can be excluded from responses by specifying the excludedAttributes parameter.

Operations supported by the API are those typically found in REST APIs:

HTTP Method Description Related dsconfig Example

GET

Lists the attributes of an object when used with a path representing an object, such as /config/globalconfigurationor /config/backends/userRoot. Can also list objects when used with a path representing a parent relation, such as /config/backends.

get-backend-prop

list-backends

get-global-configuration-prop

POST

Creates a new instance of an object when used with a relation parent path, such as config/backends.

create-backend

PUT

Replaces the existing attributes of an object. A PUT operation is similar to a PATCH operation, except that the PATCH is determined by determining the difference between an existing target object and a supplied source object. Only those attributes in the source object are modified in the target object. The target object is specified using a path, such as /config/backends/userRoot.

set-backend-prop

set-global-configuration-prop

PATCH

Updates the attributes of an existing object when used with a path representing an object, such as /config/backends/userRoot.

set-backend-prop

set-global-configuration-prop

DELETE

Deletes an existing object when used with a path representing an object, such as /config/backends/userRoot.

delete-backend

The OPTIONS method can also be used to determine the operations permitted for a particular path.

Object names, such as userRoot in the Description column, must be URL-encoded in the path segment of a URL. For example, %20 must be used in place of spaces, and %25 is used in place of the percent (%) character. So the URL for accessing the HTTP Connection Handler object is:

/config/connection-handlers/http%20connection%20handler