Skip to content
Snippets Groups Projects
Commit 1b85d3e9 authored by Kalin Canov's avatar Kalin Canov :fishing_pole_and_fish:
Browse files

moving documents from documentation repo

parent 7315d1a9
No related branches found
No related tags found
No related merge requests found
Showing
with 2445 additions and 0 deletions
{
"info": {
"_postman_id": "fb7eaa5c-4a0e-4fcc-8c75-c71b76716709",
"name": "Attestation Manager Complete",
"description": "Attestation Manager is the collection of apis which are used used to create schema and credential definition, offer verifiable credentials and issue them, get list of schemas and credential definition by different filters.",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
"_exporter_id": "17714957"
},
"item": [
{
"name": "Autoissue-PCM-VC",
"item": [
{
"name": "Create-pcm-schema",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json()\r",
"\r",
"if(res.statusCode == 201){\r",
" pm.environment.set(\"pcm-schema-id\", res.data.schemaID);\r",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"name\": \"principal_schema_01-07-22\",\r\n \"version\": \"01.07.22\",\r\n \"attributes\": [\r\n \"email\",\r\n \"issuerDID\",\r\n \"subjectDID\",\r\n \"federationName\",\r\n \"employeeID\",\r\n \"federationID\",\r\n \"firstName\",\r\n \"lastName\",\r\n \"address\"\r\n ],\r\n \"createdBy\": \"acceptsAnyStrings\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{att_man_baseURL}}/v1/schemas",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"schemas"
]
}
},
"response": []
},
{
"name": "Create-pcm-cred-def",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json()\r",
"\r",
"if(res.statusCode == 201){\r",
" pm.environment.set(\"pcm-vc-cred-def-id\", res.data.credDefId);\r",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"name\": \"principal_member-010722-01\",\r\n \"isRevokable\": false,\r\n \"isAutoIssue\": false,\r\n \"schemaID\": \"{{pcm-schema-id}}\",\r\n \"createdBy\": \"acceptsAnyString\",\r\n \"expiryHours\" : \"-1\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{att_man_baseURL}}/v1/credentialDef",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"credentialDef"
]
}
},
"response": []
},
{
"name": "Post-credentialType-for-autoissue",
"request": {
"method": "POST",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"type\": \"principalMemberCredential\",\n \"schemaId\": \"{{pcm-schema-id}}\"\n}"
},
"url": {
"raw": "{{att_man_baseURL}}/v1/credentialType",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"credentialType"
]
}
},
"response": []
},
{
"name": "update-credDefId-Type",
"request": {
"method": "PATCH",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"body": {
"mode": "raw",
"raw": "{\n \"schemaId\": \"{{pcm-schema-id}}\"\n}"
},
"url": {
"raw": "{{att_man_baseURL}}/v1/updateSchemaIdByType?type=principalMemberCredential",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"updateSchemaIdByType"
],
"query": [
{
"key": "type",
"value": "principalMemberCredential"
}
]
}
},
"response": []
},
{
"name": "Offer-pcm-cred-def-MANUALLY-temp",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json()\r",
"\r",
"if(res.statusCode == 201){\r",
" pm.environment.set(\"cred-offer-id\", res.data.id);\r",
"}\r",
"\r",
""
],
"type": "text/javascript"
}
},
{
"listen": "prerequest",
"script": {
"exec": [
"const arr = JSON.parse(pm.environment.get(\"schema_attr\"))\r",
"for (let i = 0; i < arr.length; i++) {\r",
" pm.globals.set(\"array\"+[i], arr[i]);\r",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"connectionId\": \"{{conn-id}}\",\r\n \"credentialDefinitionId\": \"{{pcm-vc-cred-def-id}}\",\r\n \"comment\": \"Created\",\r\n \"attributes\": [\r\n {\r\n \"name\": \"email\",\r\n \"value\": \"alena@vomoto.com\"\r\n },\r\n {\r\n \"name\": \"issuerDID\",\r\n \"value\": \"H1XnVZzx83suh2x71jnFJt\"\r\n },\r\n {\r\n \"name\": \"subjectDID\",\r\n \"value\": \"H1XnVZzx83suh2x71jnFJt\"\r\n }\r\n ],\r\n \"autoAcceptCredential\": \"never\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{att_man_baseURL}}/v1/create-offer-credential/",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"create-offer-credential",
""
]
}
},
"response": []
}
]
},
{
"name": "Get-all-schemas",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/schemas?pageSize=20&page",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"schemas"
],
"query": [
{
"key": "pageSize",
"value": "20"
},
{
"key": "page",
"value": null
}
]
},
"description": "#### **Description** **:**\n\nThis request fetches all the the schemas created by the requesting participant.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| pageSize | no | `pageSize` <br>Should be provided in query parameter. It filters the list and sets the page size. |\n| page | no | `page` <br>Should be provided in query parameter. It filters the list and sets the page to land on. |"
},
"response": []
},
{
"name": "Get-schema-by-id",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/schemas/{{pcm-schema-id}}",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"schemas",
"{{pcm-schema-id}}"
]
},
"description": "#### **Description** **:**\n\nThis request is used to fetch schema for the provided schema id in URL."
},
"response": []
},
{
"name": "Create-schemas",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json()\r",
"\r",
"if(res.statusCode == 201){\r",
" pm.environment.set(\"schema-id\", res.data.schemaID);\r",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"name\": \"pizza_sandwich_280622-01\",\r\n \"version\": \"28.06.22\",\r\n \"attributes\": {{schema_attr}},\r\n \"createdBy\": \"2344789247389\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{att_man_baseURL}}/v1/schemas",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"schemas"
]
},
"description": "#### **Description** **:**\n\nIt is used to create the schema.\n\n> The schema is a template which defines the schema name, version and the attributes and is used to define the credential definition.\n\n#### **Body Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| name | required | `\"shema_name\"` <br>should be provided in \"STRING\" format |\n| version | required | `\"X.X.X\"` <br>should be provided as \"SemVer\"(\"1.2.3\") in \"STRING\" format. |\n| attributes | required | `[\"attr_1\",\"attr_2\"......\"attr_n\"]` <br>attributes are the key against which the values will be issued in credential. attributes in the \"STRING\" array. |\n| created_by | required | `\"OCM_DID\"` <br>created_by accepts the Organization Credential Manager's DID. |"
},
"response": []
},
{
"name": "Create-cred-def",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json()\r",
"\r",
"if(res.statusCode == 201){\r",
" pm.environment.set(\"cred-def-id\", res.data.credDefId);\r",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"name\": \"Enrollment_credDef-010722\",\r\n \"isRevokable\": false,\r\n \"isAutoIssue\": false,\r\n \"schemaID\": \"{{schema-id}}\",\r\n \"createdBy\": \"acceptsAnyString\",\r\n \"expiryHours\" : \"24\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{att_man_baseURL}}/v1/credentialDef",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"credentialDef"
]
},
"description": "#### **Description** **:**\n\nIt is used to create the Credential Definition.\n\n> A credential definition is a particular issuer's template based on an existing schema to issue credentials from.\n\n#### **Body Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| name | required | `\"Cred_Def_name\"` <br>should be provided in \"STRING\" format |\n| is_revokable | required | `true` or `false` <br>should be provided boolean. |\n| is_auto_issue | required | `true` or `false` <br>should be provided boolean. |\n| schemaID | required | `\"schema_name\"`Should be valid existing schema and should be provided as \"STRING\" |\n| created_by | required | `\"OCM_DID\"` <br>created_by accepts the Organization Credential Manager's DID. |\n| expiry | required | `\"number of hours\"` <br>expiry provides the time for which the verifiable credential will stay active in the wallet. |"
},
"response": []
},
{
"name": "Offer-cred-def",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json()\r",
"\r",
"if(res.statusCode == 201){\r",
" pm.environment.set(\"cred-offer-id\", res.data.id);\r",
"}\r",
"\r",
""
],
"type": "text/javascript"
}
},
{
"listen": "prerequest",
"script": {
"exec": [
"const arr = JSON.parse(pm.environment.get(\"schema_attr\"))\r",
"for (let i = 0; i < arr.length; i++) {\r",
" pm.globals.set(\"array\"+[i], arr[i]);\r",
"}"
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"connectionId\": \"{{conn-id}}\",\r\n \"credentialDefinitionId\": \"{{cred-def-id}}\",\r\n \"comment\": \"Created\",\r\n \"attributes\": [\r\n {\r\n \"name\": \"{{array0}}\",\r\n \"value\": \"test_fname_3\"\r\n },\r\n {\r\n \"name\": \"{{array1}}\",\r\n \"value\": \"test_lname_3\"\r\n },\r\n {\r\n \"name\": \"{{array2}}\",\r\n \"value\": \"test_gender_3\"\r\n }\r\n ],\r\n \"autoAcceptCredential\": \"never\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{att_man_baseURL}}/v1/create-offer-credential/",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"create-offer-credential",
""
]
},
"description": "#### **Description** **:**\n\nA message sent by the Issuer to the potential Holder, describing the credential they intend to offer.\n\n> In Hyperledger Indy, this message is required, because it forces the Issuer to make a cryptographic commitment to the set of fields in the final credential and thus prevents Issuers from inserting spurious data.\n\n#### **Body Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| connectionId | required | `\"`connectionId`\"` <br>should be provided in \"STRING\" format. It the peer to peer connection id for two aeries agent. |\n| credentialDefinitionId | required | `\"cred_def_id\"` <br>should be provided in \"STRING\" format. It is the derived when the Credential Definition is created. |\n| attributes | required | `[{ \"name\" : \"attr_name\", \"value\" : \"attr_value\" }]` <br>should be provided JSON array. |"
},
"response": []
},
{
"name": "Accept-request-issue-cred",
"request": {
"method": "POST",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/accept-request?credentialId={{cred-offer-id}}",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"accept-request"
],
"query": [
{
"key": "credentialId",
"value": "{{cred-offer-id}}"
}
]
},
"description": "#### **Description** **:**\n\nIt is used to accept the acknowledgement received from another Aries agent for the issuance for Verifiable Credential and send Verifiable Credential.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| credentialId | required | `\"credential_offer_id\"` <br>should be provided in \"STRING\" format. It is derived from offer_credential_definition request. |"
},
"response": []
},
{
"name": "Get-credentials",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/credential/",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"credential",
""
],
"query": [
{
"key": "state",
"value": "",
"disabled": true
},
{
"key": "pageSize",
"value": "",
"disabled": true
},
{
"key": "page",
"value": "",
"disabled": true
},
{
"key": "isReceived",
"value": "true",
"disabled": true
},
{
"key": "threadId",
"value": "33e5ea8e-ec08-4144-aac3-d173ab0e58b8",
"disabled": true
}
]
},
"description": "#### **Description** **:**\n\nThis request fetches the created credentials.\n\n> It uses pagination to provide the particular number of records filtered as per the input given.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| state | no | `state` <br>should be provided in query parameter. It filters the connections list according the provided state value. |\n| pageSize | no | `pageSize` <br>Should be provided in query parameter. It filters the list and sets the page size. |\n| page | no | `page` <br>Should be provided in query parameter. It filters the list and sets the page to land on. |"
},
"response": []
},
{
"name": "Get-cred-by-id",
"event": [
{
"listen": "prerequest",
"script": {
"exec": [
""
],
"type": "text/javascript"
}
},
{
"listen": "test",
"script": {
"exec": [
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/credentialDef/{{cred-def-id}}",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"credentialDef",
"{{cred-def-id}}"
]
},
"description": "#### **Description** **:**\n\nThis request is used to fetch credential definitions for the provided cred_def_id in URL."
},
"response": []
},
{
"name": "Get-cred-by-schema-id",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/credentialDef?schemaID={{schema-id}}",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"credentialDef"
],
"query": [
{
"key": "schemaID",
"value": "{{schema-id}}"
}
]
},
"description": "#### **Description** **:**\n\nThis request fetches the created credentials against provided schema_id.\n\n> It uses pagination to provide the particular number of records filtered as per the input given.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| schemaID | no | `\"schema_name\"`Should be valid existing schema and should be provided as \"STRING\" |"
},
"response": []
},
{
"name": "Get-Dids-For-Schema",
"request": {
"method": "GET",
"header": [],
"url": {
"raw": "{{att_man_baseURL}}/v1/schemas/get-dids-for-schema/{{pcm-schema-id}}",
"host": [
"{{att_man_baseURL}}"
],
"path": [
"v1",
"schemas",
"get-dids-for-schema",
"{{pcm-schema-id}}"
]
}
},
"response": []
},
{
"name": "map-user-info",
"event": [
{
"listen": "test",
"script": {
"exec": [
"const res = pm.response.json();\r",
"\r",
"\t\r",
"let template = `\r",
"<html>\r",
" <body> \r",
" <br>\r",
" <div style=\"text-align:center;\">\r",
" <img src='https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=+{{data.invitationUrl}}'></img>\r",
" </div>\r",
" </body>\r",
"</html>`;\r",
"pm.visualizer.set(template, res);\r",
""
],
"type": "text/javascript"
}
}
],
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "raw",
"raw": "{\r\n \"userInfoURL\": \"https://retoolapi.dev/MJrw6e/userinfo/10\"\r\n}",
"options": {
"raw": {
"language": "json"
}
}
},
"url": {
"raw": "{{princi_man_baseURL}}/v1/map-user-info",
"host": [
"{{princi_man_baseURL}}"
],
"path": [
"v1",
"map-user-info"
]
},
"description": "#### **Description** **:**\n\nIt is used to accept the acknowledgement received from another Aries agent for the issuance for Verifiable Credential and send Verifiable Credential.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| credentialId | required | `\"credential_offer_id\"` <br>should be provided in \"STRING\" format. It is derived from offer_credential_definition request. |"
},
"response": []
}
]
}
\ No newline at end of file
This diff is collapsed.
File added
documentation/GAIA-X-OCM-BlockDiagram.png

90.5 KiB

documentation/GAIA-X-OCM.Participant Onboarding.drawio.png

150 KiB

documentation/GAIA-X-Overview-blockDiagram.png

105 KiB

{
"id": "a78e1388-afe8-405d-8d5e-273f5dd3ad34",
"name": "GAIAX-Complete-Flow-GX",
"values": [
{
"key": "email",
"value": "tagotejo@zetmail.com",
"type": "default",
"enabled": true
},
{
"key": "password",
"value": "password@123",
"type": "default",
"enabled": true
},
{
"key": "otp_received",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "otpId",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "part-id",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "conn-id",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "schema-id",
"value": "7KuDTpQh3GJ7Gp6kErpWvM:2:pizza_sandwich_230622:23.06.22",
"type": "default",
"enabled": true
},
{
"key": "cred-def-id",
"value": "AXF7h6Jiz3At18H5Mgrcwh:3:CL:242632:KYC_Cred_Def",
"type": "default",
"enabled": true
},
{
"key": "cred-offer-id",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "presentation-id",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "schema_attr",
"value": "[ \"fName\",\"lName\", \"gender\"]",
"type": "default",
"enabled": true
},
{
"key": "email2",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "password2",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "pcm-vc-cred-def-id",
"value": "",
"type": "default",
"enabled": true
},
{
"key": "oob-presentation-id",
"value": "",
"type": "any",
"enabled": true
},
{
"key": "Con_man_baseURL",
"value": "https://gaiax.vereign.com/ocm/connection/",
"enabled": true
},
{
"key": "Onboarding_man_baseURL",
"value": "http://3.111.77.38:3004",
"type": "default",
"enabled": true
},
{
"key": "proof_man_baseURL",
"value": "https://gaiax.vereign.com/ocm/proof",
"enabled": true
},
{
"key": "att_man_baseURL",
"value": "https://gaiax.vereign.com/ocm/attestation",
"type": "default",
"enabled": true
},
{
"key": "pcm-schema-id",
"value": "",
"type": "any",
"enabled": true
},
{
"key": "prpsl_conn-id",
"value": "",
"type": "any",
"enabled": true
},
{
"key": "oob_type-presentation-id",
"value": "",
"type": "any",
"enabled": true
},
{
"key": "princi_man_baseURL",
"value": "https://gaiax.vereign.com/ocm/principal",
"type": "default",
"enabled": true
},
{
"key": "accptfa_conn-id",
"value": "",
"type": "any",
"enabled": true
},
{
"key": "accptfa_credID",
"value": "",
"type": "any",
"enabled": true
},
{
"key": "proofpfa_presentaionID",
"value": "",
"type": "any",
"enabled": true
}
],
"_postman_variable_scope": "environment",
"_postman_exported_at": "2022-07-06T14:10:05.351Z",
"_postman_exported_using": "Postman/9.24.0"
}
\ No newline at end of file
This diff is collapsed.
# Introduction
The purpuse of this repository is to hold specific information related to `Organization Credential Manager` project:
* Initial high level requirement which are specific for the project
* Technical documentation and diagrams
* Agreed tools and libraries
* Outcome of researches
```mermaid
sequenceDiagram
participant OCM Admin
participant OCM Attestation Manager
par
OCM Admin ->> OCM Attestation Manager: Calls the POST method credentialDef with relevant attributes.
OCM Attestation Manager ->> OCM Admin: Responds with status code 201, with message 'Credential definition created successfully', if credential definition is created on ledger successfully
end
```
```mermaid
sequenceDiagram
participant OCM Admin
participant OCM Attestation Manager
par
OCM Admin ->> OCM Attestation Manager: Calls the POST method Schemas with relevant attributes.
OCM Attestation Manager ->> OCM Admin: Responds with status code 201, with message 'Schema created successfully', if schema is created on ledger successfully
end
```
# OCM ER Diagram
```mermaid
erDiagram
Participant ||--o{ Schema : Creates-Consume
Schema ||--|{ Attributes : Has
CredentialDef ||--|| Schema : Has
Connection ||--o{ Credential : Issues
Credential ||--|| CredentialDef : Has
Participant ||--o{ Connection : Has
Proof }o--|| Connection : Requests
Agent }o--|| Participant : Has
Agent ||--|{ Ledger : Has
User }|--|| Participant : Has
Config {
uuid id
string key
string value
DateTime created_date
DateTime updated_date
}
Participant {
uuid id
string name
string address
string website
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
User {
uuid id
string email
string password
Boolean is_verified
Role role
uuid participant_id
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
Agent {
uuid id
uuid participant_id
string agent_url
string invitation_url
string public_did
string wallet_name
string status
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
Ledger {
uuid id
uuid agent_id
string network
Blob genesis_file
string environment
DateTime created_date
DateTime updated_date
}
Schema {
uuid id
string schemaID
string participant_did
string name
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
Attributes {
uuid id
string schemaID
string name
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
Credential {
uuid id
uuid exchange_id
uuid cred_def_id
string connection_id
string participant_id
string principal_did
DateTime created_date
DateTime updated_date
}
CredentialDef {
uuid id
string cred_def_id
string schemaID
string name
Boolean is_auto_issue
Boolean is_revokable
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
Connection {
uuid id
string connection_id
string status
string participant_did
string their_did
string their_label
DateTime created_date
uuid created_by
DateTime updated_date
uuid updated_by
}
Proof {
uuid id
string presentation_id
string credential_def_id
string participant_did
string their_did
string status
DateTime created_date
DateTime updated_date
}
```
```mermaid
sequenceDiagram
participant PCM User
participant PCM App
participant OCM Admin
participant OCM Attestation Manager
par
OCM Admin ->> OCM Attestation Manager: Calls the POST method create-offer-Credential with connectionId, credentialDefinitionId and relevant attributes and their values.
OCM Attestation Manager ->> PCM App: Offers the Credential to the corresponding PCM
PCM User->> PCM App: Accepts the Credential
PCM App ->> OCM Attestation Manager: Sends acknowledgement
OCM Attestation Manager ->> PCM App: Accepts the acknowledgement on accept-request API, and issues the Verifiable Credential, which gets stored in PCM wallet.
end
```
# OCM ER Diagram
```mermaid
flowchart LR
gateway[API Gateway] -->Connection
subgraph test
service1 --> service2
subgraph subgraph
subgraph2-->subgraph1
end
end
```
# Onboarding Diagram
```mermaid
flowchart LR
subgraph AA["Authentication & Authorization"]
g-reg["Registration"]
end
subgraph gaiax[Gaiax]
TSA["Trust Services API"]
subgraph ocm
AISBL
Services-->g-db
g-reg-->Services
Services-- Request -->AISBL
AISBL-- callback -->Services
end
g-db[(Database)]
end
subgraph ayanworks[Ayanworks]
aAdmin((Admin))
aAdmin-->g-reg
a-ocm["OCM Services"]-- Request -->a-afj
a-afj["AFJ"]-- callback -->a-ocm
a-ocm-->a-db[(Database)]
AISBL-- "Credential Issue v2" -->a-afj
a-TSA["Trust Service API"]
end
subgraph vereign[Vereign]
vAdmin((Admin))
vAdmin-->g-reg
v-ocm["OCM Services"]-- Request -->v-afj
v-afj["AFJ"]-- callback -->v-ocm
v-ocm-->v-db[(Database)]
AISBL-- "Credential Issue v2" -->v-afj
v-TSA["Trust Service API"]
end
subgraph pcm[PCM]
p-afj["Mobile Aries Agent"]-- "Registration connection" -->AISBL
p-afj-- "Subscription Connection" -->v-afj
end
subgraph Certifier
cAriesAgent["Aries Agent"]-- eIDAS VC -->a-afj
cAriesAgent["Aries Agent"]-- eIDAS VC -->v-afj
end
```
```mermaid
sequenceDiagram
participant PCM User
participant PCM App
participant OCM Admin
participant OCM Proof Manager
par
OCM Admin ->> OCM Proof Manager: Calls the POST method send-out-of-band-presentation-request, with either schemaId or credentialDefinitionId and required attributes.
OCM Proof Manager ->> OCM Admin: Sends the URL generated of proof presentation request
OCM Admin->> OCM Admin: Receives the URL and converts it to QR code and displays the same.
PCM App ->> OCM Admin: Scans the QR code for Out of Band Proof Presentation.
PCM User ->> PCM App: The User accepts to share the requested attributes of specified credential.
PCM App ->> OCM Proof Manager: Sends the requested attributes, if proof verification is successful it sets isVerified as true and state as done in the database.
OCM Admin ->> OCM Proof Manager: Calls Get method find-by-presentation-id API, against the presentation-id of proof request, and confirms the status of isVerified and state.
end
```
## Principal Credential Schema
This schema is used to issue VC to Principal User at the time of registration. This VC will indicate respective principal user is part of Gaiax ecosystem. This VC will also be used every time to make respective connection as Trusted via Proof Verification of this schemaID
Following attributes should be in schema (case sensitive)
```
1. email // principalUser email address
2. issuerDID // issuer OCM organization public DID
3. subjectDID // holder pairwise DID
```
```mermaid
sequenceDiagram
participant Playstore/Appstore
participant PCM User
participant PCM App
participant OCM Notification Manager(Federation)
participant Mediator
participant OCM Admin
participant OCM Connection Manager
participant OCM Principal Manager
participant OCM Attestation Manager
par
User Device->>Playstore/Appstore: Downloads PCM App
PCM User ->> PCM App: Enters email
PCM App ->>OCM Notification Manager(Federation): sends email Address to notification/sendOTP(), for OTP generation
OCM Notification Manager(Federation) ->> PCM User: Sends OTP to Email address provided
PCM User->>PCM App: Enters OTP
PCM App ->>OCM Notification Manager(Federation): Sends OTP to notification/verifyOTP()
OCM Notification Manager(Federation)->>PCM App: On successful verification, returns success
PCM User ->> PCM App: Enters Pin and Biometric
PCM App ->> PCM App: Create Wallet, show mnemonic
PCM User->>PCM App: copies and saves mnemonic
end
par
PCM App->> Mediator: Sends DIDComm Connection
Mediator->>PCM App: On successful connection sends connected
end
par
OCM Admin ->> OCM Connection Manager: Uses invitationURL(), to generate new Invitation URL with parameter 'alias = member'
OCM Admin ->> OCM Admin: Converts URL to QR, and displays
PCM App ->> OCM Admin: Scans the QR code, and the connection between PCM and OCM gets completed and active
OCM Connection Manager ->> OCM Principal Manager: Request for issuance of Principal credential
OCM Principal Manager ->> OCM Attestation Manager: Requests Attestation Manager with Principal Credential CredDef to issue credential based on CredDef
OCM Attestation Manager ->> PCM App: Issues Credential to the individual and the credential gets stored in PCM App's wallet
end
```
```mermaid
sequenceDiagram
participant PCM User
participant PCM App
participant OCM Admin
participant OCM Proof Manager
par
OCM Admin ->> OCM Proof Manager: Calls the POST method send-presentation-request, against the connectionID, with either schemaId or credentialDefinitionId and required attributes.
OCM Proof Manager ->> PCM App: Sends the Proof Presentation Request.
PCM User ->> PCM App: The User accepts to share the requested attributes of specified credential.
PCM App ->> OCM Proof Manager: Sends the requested attributes, if proof verification is successful it sets isVerified as true and state as done in the database.
OCM Admin ->> OCM Proof Manager: Calls Get method find-by-presentation-id API, against the presentation-id of proof request, and confirms the status of isVerified and state.
end
```
```mermaid
sequenceDiagram
participant PCM App
participant OCM Admin
participant OCM Connection Manager
participant OCM Connection Manager Db
participant OCM Principal Manager
participant OCM Proof Manager
par
OCM Admin ->> OCM Connection Manager: Uses invitationURL(), to generate new Invitation URL with parameter 'alias = subscriber'
OCM Admin ->> OCM Admin: Converts URL to QR, and displays
PCM App ->> OCM Admin: Scans the QR code, and the connection between PCM and OCM gets completed and active
OCM Connection Manager ->> OCM Principal Manager: Requests for Proof Verification on Principal credential, to turn connection from active to trusted
OCM Principal Manager ->> OCM Proof Manager: Requests Proof Verification on sendMembershipProofRequest() on Principal Credential schema
OCM Proof Manager ->> PCM App: Requests for proof verification from PCM App
PCM App ->> OCM Proof Manager: Responds with Proof Request.
OCM Proof Manager ->> OCM Connection Manager Db: Changes the status of Connection to Trusted from Completed if proof verification is successful
end
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment