Skip to main content

Wallet Registry API

The Wallet Registry API that is used for public access to make read-only calls is shown below. This registry part of the Wallet Server (not the Wallet Admin API), and provides a way to validate the configuration done through the Wallet Admin API.

openapi: 3.0.0
info:
version: 0.0.1
title: Registry API
description: Public endpoints used by the Client SDK
termsOfService: 'https://identos.com'
contact:
email: support@identos.ca
servers:
- url: 'http://localhost:8084'
tags:
- name: Data Sources
description: (IDP, RS, Authenticator)
- name: Organizations
- name: Enrolled Clients
description: Service Provider (SP)
- name: Authorization Servers
- name: Build Information

paths:

/registry/data-sources/{type}:
get:
tags:
- Data Sources
summary: Fetch collection of data sources, per specified type
description: Return a list of all DataSources matching the {type} and filters
operationId: getDataSources
parameters:
- name: type
in: path
description: Type of enrolled DataSource requested
required: true
schema:
type: string
enum:
- IDP
- RS
- AUTH
- name: include_resources
in: query
required: false
description: Include resources under the datasource
schema:
type: boolean
default: false
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EnrolledDataSourceDTO'
400:
description: Invalid Type supplied
content: {}

/registry/data-sources/{type}/{id}:
get:
tags:
- Data Sources
summary: Fetch data source item
description: Return a DataSource object
operationId: getDataSource
parameters:
- name: type
in: path
description: Type of enrolled DataSource requested
required: true
schema:
type: string
enum:
- IDP
- RS
- AUTH
- name: id
in: path
required: true
description: Enrolled DataSource Id
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/DataSourceDTO'
400:
description: Invalid Type supplied
content: {}

/registry/data-sources/RS/{id}/resources:
get:
tags:
- Data Sources
summary: Fetch resources for a specific enrolled RS
operationId: getRsResources
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RSResourceDTO'
400:
description: Invalid Type supplied
content: {}

/registry/organizations:
get:
tags:
- Organizations
summary: Fetch collection of organizations
description: Return a list of all registered Organizations in a Wallet
operationId: getOrganizations
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrganizationDTO'
400:
description: Invalid Type supplied
content: {}

/registry/organizations/{id}:
get:
tags:
- Organizations
summary: Fetch Organization item
description: Return an Organization object
operationId: getOrganization
parameters:
- name: id
in: path
required: true
description: Organization Id
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationDetailsDTO'
400:
description: Invalid ID supplied
content: {}

/registry/clients:
get:
tags:
- Enrolled Clients
summary: Fetch collection of Service Providers (clients)
description: Return a list of all enrolled clients (SP) in a Wallet
operationId: getEnrolledClients
parameters:
- name: as_id
in: query
description: Filter by Auth Server ID
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/EnrolledClientDTO'
400:
description: Invalid Type supplied
content: {}

/registry/clients/{id}:
get:
tags:
- Enrolled Clients
summary: Fetch Enrolled Client item
description: Return a Service Provider (SP) object
operationId: getEnrolledClient
parameters:
- name: id
in: path
required: true
description: Client Id
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/EnrolledClientDTO'
400:
description: Invalid ID supplied
content: {}

/registry/authorization-servers:
get:
tags:
- Authorization Servers
summary: Fetch collection of Authorization Servers (AS)
description: Return a list of all AS matching the filters
operationId: getAuthServers
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AuthorizationServerDTO'

/registry/authorization-servers/{id}:
get:
tags:
- Authorization Servers
summary: Fetch AS item
description: Return an AS object
operationId: getAuthorizationServer
parameters:
- name: id
in: path
required: true
description: AS Id
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/AuthorizationServerDTO'
400:
description: Invalid Type supplied
content: {}

/registry/authorization-servers/{id}/resources:
get:
tags:
- Authorization Servers
summary: Fetch Capabilities of an AS
description: Return list of capabilities available for a specific AS
operationId: getAuthorizationServerCapabilities
parameters:
- name: id
in: path
required: true
description: AS Id
schema:
type: string
responses:
200:
description: successful operation
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/AuthzServerResourceDTO'
400:
description: Invalid Type supplied
content: {}

/.well-known/api/version:
get:
tags:
- Build Information
summary: Build information about the Wallet Server
description: Returns application name, version, release date, and home page
operationId: listBuildInfo
responses:
200:
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/BuildInformationDTO'


components:

schemas:

OrganizationDTO:
required:
- id
- name
type: object
properties:
id:
type: string
name:
type: string

OrganizationDetailsDTO:
allOf:
- $ref: '#/components/schemas/OrganizationDTO'
- type: object
properties:
clients:
type: array
items:
$ref: '#/components/schemas/EnrolledClientDTO'
data_sources:
type: array
items:
$ref: '#/components/schemas/DataSourceDTO'

AuthorizationServerDTO:
required:
- identifier
- organization
type: object
properties:
identifier:
type: string
organization:
$ref: '#/components/schemas/OrganizationDTO'

EnrolledClientDTO:
required:
- identifier
- name
type: object
properties:
identifier:
type: string
name:
type: string
authorization_server:
$ref: '#/components/schemas/AuthorizationServerDTO'
icon_uri:
type: string
policy_uri:
type: string
tos_uri:
type: string
consent_footer_html:
type: string
consent_subtitle_html:
type: string
consent_title_html:
type: string
last_active:
type: string
format: date-time

EnrolledDataSourceDTO:
type: object
properties:
id:
type: string
data_source:
$ref: '#/components/schemas/DataSourceWithResourcesDTO'
type:
type: string
style:
$ref: '#/components/schemas/AuthorizationServerDTO'

DataSourceDTO:
required:
- name
- organization
- style
- data_source_id
type: object
properties:
organization:
$ref: '#/components/schemas/OrganizationDTO'
name:
type: string
data_source_id:
type: string
style:
$ref: '#/components/schemas/StyleDTO'
required:
type: boolean

DataSourceWithResourcesDTO:
type: object
properties:
data_source_id:
type: string
name:
type: string
required:
type: boolean
organization:
$ref: '#/components/schemas/OrganizationDTO'
style:
$ref: '#/components/schemas/StyleDTO'
resources:
type: array
items:
$ref: '#/components/schemas/RSResourceDTO'

StyleDTO:
type: object
properties:
logo_url:
type: string
style_color:
type: string
style_font_color:
type: string

IdpAuthenticatorResponse:
required:
- data_source
- id
type: object
properties:
idp_authenticator_id:
type: string
data_source:
$ref: '#/components/schemas/DataSourceDTO'
type:
type: string
enum:
- 'AUTH'

EnrolledRsDTO:
required:
- authorization_server
- data_source
- id
type: object
properties:
id:
type: string
data_source:
$ref: '#/components/schemas/DataSourceDTO'
authorization_server:
$ref: '#/components/schemas/AuthorizationServerDTO'
type:
type: string
enum:
- 'RS'

ResourceDefinitionDTO:
type: object
properties:
authorization_server_id:
type: string
type:
type: string
name:
type: string
res_def_id:
type: string
scopes:
type: array
items:
type: string
named_scopes:
type: array
items:
$ref: '#/components/schemas/NamedResourceScopeDTO'
description:
type: string
information_uri:
type: string
logo_url:
type: string
style_color:
type: string
style_font_color:
type: string

AuthzServerResourceDTO:
type: object
properties:
resource_type:
type: string
scopes:
type: array
items:
type: string
named_scopes:
type: array
items:
$ref: "#/components/schemas/NamedResourceScopeDTO"

RSResourceDTO:
type: object
properties:
rs_res_id:
type: string
resource:
$ref: "#/components/schemas/ResourceDefinitionDTO"
approved_scopes:
type: array
items:
type: string
named_approved_scopes:
type: array
items:
$ref: '#/components/schemas/NamedResourceScopeDTO'

NamedResourceScopeDTO:
type: object
properties:
scope:
type: string
display_name:
type: string

BuildInformationDTO:
type: object
properties:
version:
type: string
name:
type: string
release_date:
type: string
homepage:
type: string