The RESTful configuration interface is follows the REST concepts. It is stateless and each request is treated as a new configuration transaction. It’s possible to target a small subsystem with configuration changes, or the entire server in a single sweep. The REST interface implements a full CRUD system to manage all configuration in the Identity Server.
The RESTful API tries to follow the RESTCONF [draft-ietf-netconf-restconf-07] protocol, which is an upcoming configuration standard sibling to the NETCONF configuration protocol. But since the RESTCONF is still a draft a number of differences exist.
The configuration can be created, read, updated and deleted using the following HTTP methods:
The REST API can be used with two data types, XML and JSON.
All operations start at the same base URL:
Note, the port of the configuration interface is different from the runtime ports. The factory default is 6749.
Operations on the configurations are performed on the running datastore.:
There are also special datastores. The rollbacks are one example. They are located under:
The REST API is protected with BASIC authentication. The same credentials as used with any administrator function should be used.
If neither deep nor shallow is passed as argument a variable depth will be returned.
All resources can be represented with an HTTP URL.
Example - the Identity Server name (default issuer):
Some resources are lists, like the services and profiles.
Example - URI of a service:
The resource Node1 in this example is a service node, i.e. an instance in the service list.
If calling the same resource but omitting the resource Id, all nodes will be returned:
Some resources have multiple keys that together make up the key for the resource. One example is the Profile list.
It has two keys, the profile ID and the profile TYPE, these are comma separated:
This section gives the reader some examples on how to work with the REST interface. More detailed configuration examples are found in the configuration sections for each subsystem.
Read the top level tag with the deep query parameter to retrieve all configuration
GET /admin/api/rest/running?deep HTTP/1.1
HTTP/1.1 200 OK