Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Published new version 2.8 of the API Specification #67

Open
wants to merge 8 commits into
base: main
Choose a base branch
from

Conversation

masv3971
Copy link
Collaborator

No description provided.

# Datastore Rest API

## Introduction and reference
The following document serves as a reference for the implementation of the Issuer System including the so-called Data Store for the EU-funded DC4EU project. The document focuses on the technical description of the relevant backend endpoints without providing detailed business explanations including scenarios.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Data Store should be Datastore I think.

| Object | [identity {}](#identity) | r | Object containing all data for later identity mapping – as defined in the upload endpoint |
| | | | |
| Output | | | |
| Integer | status | r | Returns operation status; 200 OK, else 400 and error body |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

output is not an integer, output is stated under Response. This is true for other endpoints as well.

| String | authentic_source | o | globally unambiguous name of the issuing entity (agency or institution) |
| Object | [identity {}](#identity)| r | as defined in upload |
| String | document_type | o | Type of Document, initially only “EHIC” or “PDA1” for filter; if empty, all types |
| int64 unix | valid_from | o | credentials valid from or specific date; if empty current date |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

unix is not a type, please remove.

13. PUT /document/status - set document status to revoked

## Backend configurations
Before the Issuer System and the described API can be used, the Issuer System must be configured. A config file is provided for this purpose, for example to define specific endpoints for each Authentic Source. This makes it possible to define several Authentic Sources. A wide variety of architectures are possible, for example with many data stores per authentic source or one data store at the issuer that contains data for many authentic sources. The endpoint for the signature service and the standard credential profiles should also be defined here for each authentic source. This information is relevant for generating the credential.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perhaps mention that the configuration is presented as json, but can be in other formats, for example yaml.

9. POST /document - return a full document entry for credential creation
10. POST /consent - optionally store user consent to display `/document/list information` in a portal
11. POST /consent/get - return consent status of citizen to display `/document/list information` in a portal

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove new line

# Datastore Rest API

## Introduction and reference
The following document serves as a reference for the implementation of the Issuer System including the so-called Data Store for the EU-funded DC4EU project. The document focuses on the technical description of the relevant backend endpoints without providing detailed business explanations including scenarios.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe highlight components for example datastore etc..

| String | resident_house_number | o | As in current PID namespace |
| String | nationality | o | As in current PID namespace |

### attestation{}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove, not used per this api version


unspecified json object, used to include any document type from authentic source

### document_display{}
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should this include long_description, valid_to and valid_from ?

| Boolean | real_data | r | “true” or “false” – For Pilot, indicating the use of real or test data |
| Object | collect { | o | This is defining information for general pick-up by QR-Code/link. |
| String | id | o | If not defined by institution it should be set to document_id value after upload.<br><br>Used to not expose the real document id, thus limiting fraud. |
| Int64<br><br>unix | collect_until | o | If not defined the collect id can be used indefinitely, otherwise issuer should reject request after this date. |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change collect_until to valid_until, less stutter -> collect.collect_until seems bad to me.


### Description

After the upload was successful the authentic source can call the get notification endpoint, to receive `qr_base64_image` and `deep_link` to include them in existing notification means. This is split from the upload endpoint to allow fast mass uploads of documents and to allow openness for different system architectures as this information request may be done by a different authentic source component as the upload.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove qr_ prefix.

| ---------------------- | -------------------------- | -------------------- | -------------------------------------------------------------------------------------------- |
| Type | Attribute | (r)eq.<br><br>(o)pt. | Attibute Description |
| Input | | | |
| String | authentic_source | t | globally unambiguous name of the issuing entity (agency or institution) |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replace t with r.


```mermaid
sequenceDiagram;
Application (Portal/Wallet)->>Issuer: POST document/collect_id;
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it should be,

  1. Issuer ->> Datastore (get document) /document/collect_id
  2. Issuer ->> Wallet (send credential based on document)


|type| Attribute | required | description |
| ---------- | ---------------- | --- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| String | revocation_id | o | ID for credential revocation; If not defined by institution it should be set to document_id value after upload. Different value may be used to allow credential coupling – having one revocation status for multiple credentials |
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

revocation_id change to id


http OK 200, else 400 and error body

## POST /id/mapping
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Change to /identity/mapping to make it more obvious it reference to the identity of a person.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants