Decisiv
is transitioning to API
authentication leveraging the
industry standard OAuth 2.0. By doing so, we
will be able to offer consumers a more familiar and openly supported
interface.
In order to help our existing consumers transition to this new standard,
we are exposing and requiring the usage of the
X-DECISIV-TRANSITON-TOKEN
HTTP Header
which will properly scope requests during this transition.
The following diagram captures the new flow
for interacting with the
Decisiv API
s.
Each API
consumer will own and maintain one or more OAuth Applications
which will be used as an identifying source when utilizing the new OAuth
flow.
This application
will consist of managed client_id
and client_secret
value which consumers should keep secured.
Decisiv
offers a self service method of retrieval for interested
consumers who have access to the Case
application. The Transition
Token
can be generated (and later accessed) by navigating to:
Admin
> Customize Your Database
> Platform API
New consumers should click the Create Transition Token
button.
Existing locations with a previously generated token will see the
Transition Token
listed in a table under the Transition to OAuth
announcement.
Once you have an Application
registered in the Decisiv
ecosystem,
you may request an access_token
from our Authentication
server.
NOTE: At this time, all API
consumers will need to utilize the
Password
flow for authentication. This can be initiated by setting
the grant_type
attribute to password
as shown in the example below.
curl -X POST \
https://login.staging.decisivapps.com/oauth/token \
-H 'Content-Type: application/json' \
-d '{
"client_id":"DECISIV_SUPPLIED_CLIENT_ID",
"client_secret":"PROTECT_THIS_SECRET",
"grant_type": "password",
"username": "decisiv-api-example",
"password": "SECURE_PASSWORD_HERE"
}'
{
"access_token":
"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
"token_type": "Bearer",
"expires_in": 3600,
"refresh_token": "REFRESH_TOKEN_VALUE_HERE",
"created_at": 1563275159
}
The access_token
returned in the response
will be valid for
accessing supported Decisiv API
s. Please note the expiration
of
the token
which is noted by the expires_in
attribute (and also
available inside of the access_token
). Please note, expires_in
is
represented in seconds
.
You may wish to leverage an OAuth
client for managing token
expiration or implement a process using the refresh_token
.
The OAuth
flow is currently supported in both the Platform API as well as the Service Events API.
Requests will require the following HTTP Headers
:
Authorization
X-DECISIV-TRANSITION-TOKEN
curl -X GET \
https://api.staging.decisivapps.com/platform_api/cases \
-H 'Accept: text=xml;version=0.3-beta' \
-H 'Accept-Version: 1' \
-H 'Authorization: Bearer ACCESS_TOKEN_GOES_HERE' \
-H 'X-DECISIV-TRANSITION-TOKEN: TRANSITION_TOKEN_HERE'