Use Case Activation / Discoverability
After configuring the Nuts node with the required artifacts, the use case can be activated for a subject. This means activating the related Discovery Service for the subject, making them discoverable.
Pre-requisites:
- You have created a subject for the organization, for which you want to activate the use case.
- You have configured the Nuts node for the use case (Discovery Service definition and Policy definition).
Acquiring credentials
The definition specifies which Verifiable Credentials the subject needs to register on the Discovery Service. These are often a combination of, but not limited to, the following credentials: NutsOrganizationCredential
, NutsUraCredential
, and/or DiscoveryRegistrationCredential
.
These need to be issued by a trusted party, which depends on the use case. In development or test environments, parties are typically allowed to issue the credentials to themselves. In acceptance or production environments, they're normally issued by a trusted third party.
Self-issuance
Trusted third party
A third party issues a Verifiable Credential to one of the subject's DIDs using an out-of-band mechanism. Use the following API call to list the DIDs of a subject (replace <subjectID>
with the ID of the subject):
GET http://<internal Nuts API>/internal/vdr/v2/subject/<subjectID>
POST http://<internal Nuts API>/internal/vcr/v2/holder/<did>/vc
Content-Type: application/json
<Verifiable Credential>
- Replace
<did>
with the DID to which the credential was issued. - Replace
<VerifiableCredential>
with the VC as it was received from the issuer.
Discovery Service Activation
To make a subject discoverable, activate the particular Discovery Service. The following example activates a service, supplying an additional FHIR endpoint to be used for the use case.
POST http://<internal Nuts API>/internal/discovery/v1/<serviceID>/<subjectID>
Content-Type: application/json
{
"registrationParameters": {
"fhir": "https://example.com/fhir"
}
}
- Replace
<serviceID>
with the ID of the Discovery Service, which can be found in the definition in theid
field. - Replace
<subjectID>
with the ID of the subject
Note that if the subject doesn't have the required credentials in its wallet, the call might succeed, but actual registration won't happen until the required credentials are present. In this case, the call returns status 202 (Created
), with a message detailing what failed.
This is also the case if the Discovery Service is unreachable.