Applications

An Application represents a logical collection of resources provisioned within Provide's containerized microservices architecture. An application is immutably configured upon initialization with support for a primary Network.

Access to programmatically manage resources associated with an application is provided via REST API, to which ACL-based authorization is managed using generic permissions.

The organizing user of an Application is associated with the application record for historical purposes and does not authorize any access to the application.

Virtual Resources

Applications can programmatically create and associate "virtual" User and Organization records. Use-cases such as KYC and certain multi-tenant applications which implement their own upstream authentication and authorization are good examples of where such virtual resources make sense.

List Applications

Retrieve a list of applications in the authorized scope.

List Applications

GET https://ident.provide.services/api/v1/applications

Returns a list of applications within the authorized scope

Headers

NameTypeDescription

authorization

string

bearer scoped to an

Application

,

Organization

or

User

[
    {
        "id": "8675134a-32d7-40dc-9698-0457800b58db",
        "created_at": "2021-08-16T18:55:00.139188Z",
        "network_id": "07102258-5e49-480e-86af-6d0c3260827d",
        "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
        "name": "LGT Application for testing - Updated",
        "description": "Application updated using Postman",
        "type": "baseline",
        "config": {
            "webhook_secret": "6facb73e96074858ac92ef7b3c540a49"
        },
        "hidden": false
    },
    {
        "id": "de7efe54-642e-4171-91be-0fe0a7cc0977",
        "created_at": "2021-08-16T17:20:08.757388Z",
        "network_id": "00000000-0000-0000-0000-000000000000",
        "user_id": "7c8fe6f1-38c3-4da1-b4b7-7591c6d0ca7c",
        "name": "Large Green Turtle 8.16.2021:1722",
        "description": "Sandbox application take 2",
        "type": "baseline",
        "config": {},
        "hidden": false
    },
    {
        "id": "5b91264b-b15d-4b02-8f03-74488c438993",
        "created_at": "2021-08-11T13:12:32.465867Z",
        "network_id": "07102258-5e49-480e-86af-6d0c3260827d",
        "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
        "name": "Test application for virtual user testing",
        "description": null,
        "type": null,
        "config": {
            "webhook_secret": "1404fc1d7d9e42908788380d3369504c"
        },
        "hidden": false
    }
]
curl -i \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/applications
HTTP/2 200

Create Application

Create a new application.

Create Application

POST https://ident.provide.services/api/v1/applications

Creates an

Application

Headers

NameTypeDescription

authorization

string

bearer scoped to an

Application

,

Organization

or

User

Request Body

NameTypeDescription

config

object

arbitrary data object used for inclusion of additional parameters required for application use

description

string

brief description of

Application

to be created

hidden

boolean

when true, created

Application

will not be visible to the public

name

string

name of

Application

to be created

network

string

id of network that will host

Application

type

string

type of

Application

to be created

user_id

string

id of user to be designated of owner of

Application

{
    "id": "64c93b72-e440-43b7-8a37-7cfc7ad7fb5d",
    "created_at": "2021-08-18T01:46:34.555634983Z",
    "network_id": "00000000-0000-0000-0000-000000000000",
    "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
    "name": "Large Green Turtle 8.16.2021:1720",
    "description": null,
    "type": null,
    "config": {
        "webhook_secret": "7e6e80047b684354a2fd1542a0b57ac6"
    },
    "hidden": false
}
curl -XPOST -i \
     -H 'content-type: application/json' \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/applications \
     -d '{}'
HTTP/2 201

Retrieve Application Details

Retrieve details for an application.

Get Application Details

GET https://ident.provide.services/api/v1/applications/:id

Returns details for a specified

Application

Path Parameters

NameTypeDescription

application_id

string

id of target

Application

Headers

NameTypeDescription

authorization

string

bearer scoped to an

Application

,

Organization

or

User

with sufficient permissions to access target

Application

{
    "id": "063452b4-4964-40d9-8443-53a61fbd4dc9",
    "created_at": "2021-08-18T18:04:22.750806Z",
    "network_id": "07102258-5e49-480e-86af-6d0c3260827d",
    "user_id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
    "name": "LGT Test application TK421",
    "description": "LGT Test application for testing and documentation",
    "type": "baseline",
    "config": {
        "sample": "arbitrary value",
        "webhook_secret": "000111222333444555666c"
    },
    "hidden": true
}
curl -i \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/applications/efef1044-4958-43bc-903b-28f2bb938037
HTTP/2 200

URL Parameters

ParameterDescription

id

id of the Application

Update Application

Update an application.

Update Application

POST https://ident.provide.services/api/v1/applications

Updates a specified

Application

Headers

NameTypeDescription

authorization

string

bearer scoped to

Application

,

Organization

or

User

with sufficient permissions to access target

Application

Request Body

NameTypeDescription

config

object

arbitrary data object used for inclusion of additional parameters required for application use

description

string

brief description of

Application

to be created

hidden

boolean

when true, created

Application

will not be visible to the public

name

string

name of

Application

to be created

network

string

id of network that will host

Application

type

string

type of

Application

to be created

user_id

string

id of user to be designated of owner of

Application

curl -XPUT -i \
     -H 'content-type: application/json' \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/applications/efef1044-4958-43bc-903b-28f2bb938037 \
     -d '{}'
HTTP/2 204

URL Parameters

Parameter

id

id of the Application

Delete Application

Delete an application.

curl -XDELETE -i \
     -H 'content-type: application/json' \
     -H 'authorization: bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7fSwiZXhwIjpudWxsLCJpYXQiOjE1NTk4Nzg1NzQsImp0aSI6IjYzYTJkY2QzLWI5OTgtNDZjNC1hNzFkLTQ5MjU4YTBhYmEyMyIsInN1YiI6ImFwcGxpY2F0aW9uOmNiMjAzN2Y3LTc5ZmMtNDBmNC05NzIwLWFkYTYzNmRhNDE4MyJ9.0LsVj7oTF0KjwbcUhg9a-fQRWB7cGzKJxLIANeX2cWE' \
     https://ident.provide.services/api/v1/applications/efef1044-4958-43bc-903b-28f2bb938037 \
HTTP/2 204

Associate Application Organization

POST https://ident.provide.services/api/v1/applications/:id/organizations

Associates an

Organization

to the specified

Application

Path Parameters

NameTypeDescription

id

string

id of target

Application

Headers

NameTypeDescription

authentication

string

bearer should be scoped to

Application

Request Body

NameTypeDescription

organization_id

string

id of organization to be associated to target application; cannot contain

organization_id

already associated with

Application

.

Associate Application User

POST https://ident.provide.services/api/v1/applications/:id/users

Associates a

User

to a specified

Application

Path Parameters

NameTypeDescription

id

string

id of target

Application

; cannot contain

user_id

already associated with

Application

Headers

NameTypeDescription

authentication

string

bearer should be scoped to

Application

Request Body

NameTypeDescription

user_id

string

id of

User

to be associated to target

Application

; cannot contain

user_id

already associated with

Application

List Application Users

GET https://ident.provide.services/api/v1/applications/:id/users

Retrieves a list of organization instances associated with specified Application

Path Parameters

NameTypeDescription

id

string

id of target

Application

Headers

NameTypeDescription

authorization

string

bearer scoped to an

Application

[
    {
        "id": "49a02f33-33f2-4d69-a301-ffb1933e77cc",
        "created_at": "2021-08-11T03:38:36.24522Z",
        "name": "John Young",
        "first_name": "John",
        "last_name": "Young",
        "permissions": 510,
        "privacy_policy_agreed_at": null,
        "terms_of_service_agreed_at": null
    },
    {
        "id": "7e6c0063-ab63-4c5c-82cd-41f5c885f050",
        "created_at": "2021-08-17T02:06:13.875344Z",
        "name": "Robert Crippen",
        "first_name": "Robert",
        "last_name": "Crippen",
        "permissions": 510,
        "privacy_policy_agreed_at": null,
        "terms_of_service_agreed_at": null
    }
]

Last updated