Capabilities
The /capabilities An endpoint is required for every participant that provides services:
Participant Registry
Authorisation Registry
Service Provider
Identity Provider
The endpoint returns the iSHARE capabilities of the iSHARE party. The server response is an iSHARE signed JSON Web Token.
Depending on whether or not an Access Token is provided to the capabilities endpoint, the endpoint must return public or public and restricted endpoints. in detail:
If an access token IS NOT provided
Return public endpoints, including the Access Token endpoint
If an access token IS provided
Return public endpoints, including the Access Token endpoint
Return restricted endpoints
Any endpoints that do not support the iSHARE's Identification, Authentication, and Authorisation (IAA) methods and are not intended for use by iSHARE roles should not be included in the capabilities endpoint response. This is because when a participant sees an endpoint in the capabilities response, they will assume it is iSHARE-compliant and supports iSHARE’s IAA mechanisms. However, if a party has other endpoints that rely on different authorisation methods and are not aligned with iSHARE, those should be excluded from the response to prevent misunderstandings.
The /capabilities endpoint is required for every participant that provides services. The endpoint returns iSHARE capabilities (supported versions & optional features) of the iSHARE party.
The capabilities endpoint should only return the public endpoints if no access token is provided. If an access token is provided, the capabilities endpoint will also provide the restricted endpoints. A party may also have private endpoints, which are endpoints for their own internal organization, also known as endpoints that are implemented, but not to share with the others. These endpoints are not within the scope of iSHARE and should not be returned to other iSHARE parties.
Server response is an iSHARE signed JSON Web Token. Please refer to the models 'jwtHeader' and 'jwtPayloadCapabilitiesToken' which indicate what the decoded response will look like.
OAuth 2.0 authorization based on bearer token. MUST contain “Bearer “ + access token value. Must be provided if restricted endpoints are needed.
OK
OK
Response Model
The model of the capabilities_token JWT response is available on the iSHARE OpenAPI documentation. For convenience, the model of the parties_info object, contained within the token, is described below:
Decoded capabilities_token parameters:
It contains iSHARE-compliant JWT claims; however, if an access token is not provided, then aud The claim should be omitted while signing JWT. In addition to that, it also contains the following parameters:
capabilities_infoObject. Root level. (Required) Contains information about capabilities.publicServicesAn array of objects. Contained incapabilities_info. (Required) When no Authorisation header is presented when invoking the /capabilities endpoint, only public_services are returned. Public services themselves may (and usually will) require authentication to invoke them.identifierString. Contained inpublic_services. (Required) Unique identifier of the service. For iSHARE-defined services, it must contain the predefined identifier (defined as operationId in the iSHARE generic OpenAPI specification). For other services, it might, for instance, refer to operationId in OpenAPI specifications, or other forms of identifiers in other specification formats.titleString. Contained inpublic_services. (Required) Human-readable name of the service.descriptionString. Contained inpublic_services. Description of the service.endpointDescriptionString. Contained inpublic_services. URL that describes the service endpoint. Could be, for instance, a URL to an OpenAPI description, a WSDL document, a SPARQL Service Description, etc.endpointURLString. Contained inpublic_services. (Required) URL of the endpoint, including the correct host. Depending on the setup, this information could also already be included in the description that is provided via theendpointDescription.tokenEndpointString. Contained inpublic_services. URL where the access token for the feature can be retrieved. This is optional because if the feature is an access token, it is not needed to mention it twice.statusString. Contained inpublic_services. (Required) Provides information on the status of the service. Must be either "deprecated" or "active".serviceTypeString. Contained inpublic_services. (Required) Can be either "framework-defined", "dataspace-defined" or "self-defined". A framework-defined service is required from a framework perspective (including, for instance, the /capabilities endpoint), a dataspace-defined service is required from a dataspace perspective, and a self-defined service is defined by the provider of the service (actual data services are part of this category).versionObject. Contained inpublic_services. (Required) Versioning information of the provided service.compliesWithFrameworkVersionsAn array of strings. Contained inversion. An array of framework versions that the service complies with, at a framework level. If not included, the service is assumed to be compliant with the latest version. The versions can be retrieved using the /versions endpoint. Required for framework-defined services.compliesWithDataspaceVersionsAn array of strings. Contained inversion. An array of dataspace versions that the service complies with, at a dataspace level.capabilityVersionAn array of strings. Contained inversion. (Required) Version of the provided service. The version numbering of services is not related to the version numbering of the framework or of a dataspace.
methodsAn array of strings. Contained inpublic_services. An array of operations supported by the endpoint. It could be HTTP methods when the endpoint is HTTP-based, for example: GET, POST, etc.authRegistryObject. Contained inpublic_services. Optional object which contains details about the Authorisation Register that must be used for this service.partyIdString. Contained inauthRegistry. (Required) Party Identifier of the Authorisation Registry provider that must be used for this service.urlString. Contained inauthRegistry. (Required) The URL pointer specific to the party where authorisations can be queried/checked from.
restrictedServices An array of objects. Contained in
capabilities_info. When an Authorisation header is presented when invoking the /capabilities endpoint, in addition to the public services, restricted services may be returned, based on the information provided on the participant by the Authorisation header. This could, for example, be implemented to expose services only to participants of a dataspaces. restrictedServices themselves may (and usually will) require authentication to invoke them. The attributes of restrictedServices are 100% equal to the attributes of publicServices and therefore omitted here.
Example request
Example response
The response contains an encoded JWT, which looks like this:
After decoding, the example content of the JWT looks like this:
Last updated