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 <JWT> scoped to anApplication, 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

Get 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 <JWT> scoped to anApplication, 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

Parameter

Description

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 <JWT> 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

Description

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 <JWT> 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 <JWT> 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 <JWT> 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