diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 023a2b995ee55d9021a647982cd3bc9b83fc16c0..07351eeff50c072aa9aab2c6a1b5f1ed9c010b6a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,6 +1,6 @@ include: - - project: '${HELPERS_PATH}' - file: '${HELPERS_FILE}' + - project: "${HELPERS_PATH}" + file: "${HELPERS_FILE}" stages: - lint diff --git a/README.md b/README.md index 7e2e5668a38952c81113616e7ff44b176715a57e..91735ec6ceb0bd7113538711791a4d9e87a3ba1b 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,10 @@ # ocm-engine version 1 #### Dependencies + Node 12 Python 2.5.0 >= <3.0.0 -pnpm +pnpm ### Setup local @@ -13,13 +14,12 @@ pnpm app options: attestation, connection, principal, ssi -### Docker compose +### Docker compose -1. Go to compose dir +1. Go to compose dir 2. docker-compose up ## Example Flows (OCM Usage) Please refer to [OCM-flow-overview](documentation/ocm-flow-overview.md) - diff --git a/apps/attestation-manager/GDPR.md b/apps/attestation-manager/GDPR.md index e7e10f96fb1aaab81d9d075eb37f6a1a75ad8ada..6b5e37ce488857954e2e5d4857fb822421fa48e8 100644 --- a/apps/attestation-manager/GDPR.md +++ b/apps/attestation-manager/GDPR.md @@ -1,8 +1,11 @@ # GDPR Compliance Document + The objective of this document is to detail, the data being stored and proccessed by the Organization Credential Manager's, Attestation Manger. ## What information is stored + ### Source User Information + The Open Id connect claims that MAY contain all sorts of personal data (like email, name, age and others), are received from any external source. ### Technical User Information (Public) @@ -15,18 +18,25 @@ The Open Id connect claims that MAY contain all sorts of personal data (like ema - Offered credential attributes and attachments ## How is the information stored + ### Source User Information + Source User Information is encrypted using the Private Key of the Organizations SSI Agent and stored until the issuance of credential in Organization's SSI Agent's PostgreSQL database. ### Technical User Information (Public) + Technical User Information is encrypted using the Private Key of the Organizations SSI Agent and stored internally (on the agent) on PostgreSQL and externally/ metadata (shared between the OCM services) on PostgreSQL of Organization. ## Who can access the information + The Source User Information and Technical User Information both are accessible only by the Organization specific SSI agent's private key. -## How long will the information stay +## How long will the information stay + ### Source User Information + The Source User Information is wiped out once the credential is issued. ### Technical User Information (Public) + The Technical User Information is wiped out according to the retention periods (not defined yet). diff --git a/apps/attestation-manager/Gaia-x Attestation Manager API.postman_collection.json b/apps/attestation-manager/Gaia-x Attestation Manager API.postman_collection.json index d25f2ab84a4433b8be33c143a42895ba37feb491..dc6381c873dbeda3d6cf92a6e873ef3e66cfa24e 100644 --- a/apps/attestation-manager/Gaia-x Attestation Manager API.postman_collection.json +++ b/apps/attestation-manager/Gaia-x Attestation Manager API.postman_collection.json @@ -1,991 +1,850 @@ { - "info": { - "_postman_id": "096d259a-3afa-45e2-b8fd-ce78cc1afaee", - "name": "Gaia-x Attestation Manager API", - "description": "API documentation for GAIA-X Attestation Manager", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "10250261" - }, - "item": [ - { - "name": "Fetch credential information by credential id", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credential-info/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credential-info", - ":id" - ], - "variable": [ - { - "key": "id" - } - ] - } - }, - "response": [] - }, - { - "name": "Send credential proposal to connection", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"connectionId\": \"<string>\",\n \"credentialDefinitionId\": \"<string>\",\n \"comment\": \"<string>\",\n \"credentialProposal\": {},\n \"autoAcceptCredential\": \"<string>\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/create-propose-credential", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "create-propose-credential" - ] - } - }, - "response": [] - }, - { - "name": "Send credential offer with credential values to connection", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"connectionId\": \"<string>\",\n \"credentialDefinitionId\": \"<string>\",\n \"comment\": \"<string>\",\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n },\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"autoAcceptCredential\": \"<string>\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/create-offer-credential", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "create-offer-credential" - ] - } - }, - "response": [] - }, - { - "name": "Accept credential request by credential id", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{baseUrl}}/v1/accept-request/:credentialId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-request", - ":credentialId" - ], - "variable": [ - { - "key": "credentialId" - } - ] - } - }, - "response": [] - }, - { - "name": "Accept credential proposal by credential id", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{baseUrl}}/v1/accept-proposal/:credentialId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-proposal", - ":credentialId" - ], - "variable": [ - { - "key": "credentialId" - } - ] - } - }, - "response": [] - }, - { - "name": "Accept credential offer by credential id", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{baseUrl}}/v1/accept-offer/:credentialId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-offer", - ":credentialId" - ], - "variable": [ - { - "key": "credentialId" - } - ] - } - }, - "response": [] - }, - { - "name": "Accept credentials by credential id", - "request": { - "method": "POST", - "header": [], - "url": { - "raw": "{{baseUrl}}/v1/accept-credential/:credentialId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-credential", - ":credentialId" - ], - "variable": [ - { - "key": "credentialId" - } - ] - } - }, - "response": [] - }, - { - "name": "Fetch list of credential definition", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credentialDef", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credentialDef" - ] - } - }, - "response": [] - }, - { - "name": "Fetch credential definition by id", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credentialDef/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credentialDef", - ":id" - ], - "variable": [ - { - "key": "id", - "value": "<string>" - } - ] - } - }, - "response": [] - }, - { - "name": "Create new credential definition", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"schemaID\": \"<string>\",\n \"name\": \"<string>\",\n \"isRevokable\": \"<boolean>\",\n \"isAutoIssue\": \"<boolean>\",\n \"expiryHours\": \"<string>\",\n \"createdBy\": \"<string>\",\n \"type\": \"<string>\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/credentialDef", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credentialDef" - ] - } - }, - "response": [] - }, - { - "name": "Fetch list of credentials using pagination and queries", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credential?page=0&pageSize=10&isReceived&threadId&state&credDefId&createdDateStart&createdDateEnd&updatedDateStart&updatedDateEnd&expirationDateStart&expirationDateEnd&connectionId&principalDid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credential" - ], - "query": [ - { - "key": "page", - "value": "0" - }, - { - "key": "pageSize", - "value": "10" - }, - { - "key": "isReceived", - "value": null - }, - { - "key": "threadId", - "value": null - }, - { - "key": "state", - "value": null - }, - { - "key": "credDefId", - "value": null - }, - { - "key": "createdDateStart", - "value": null - }, - { - "key": "createdDateEnd", - "value": null - }, - { - "key": "updatedDateStart", - "value": null - }, - { - "key": "updatedDateEnd", - "value": null - }, - { - "key": "expirationDateStart", - "value": null - }, - { - "key": "expirationDateEnd", - "value": null - }, - { - "key": "connectionId", - "value": null - }, - { - "key": "principalDid", - "value": null - } - ] - } - }, - "response": [ - { - "name": "Fetch list of credentials using pagination and queries", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credential?page=0&pageSize=10&isReceived&threadId&state&credDefId&createdDateStart&createdDateEnd&updatedDateStart&updatedDateEnd&expirationDateStart&expirationDateEnd&connectionId&principalDid", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credential" - ], - "query": [ - { - "key": "page", - "value": "0" - }, - { - "key": "pageSize", - "value": "10" - }, - { - "key": "isReceived", - "value": null - }, - { - "key": "threadId", - "value": null - }, - { - "key": "state", - "value": null - }, - { - "key": "credDefId", - "value": null - }, - { - "key": "createdDateStart", - "value": null - }, - { - "key": "createdDateEnd", - "value": null - }, - { - "key": "updatedDateStart", - "value": null - }, - { - "key": "updatedDateEnd", - "value": null - }, - { - "key": "expirationDateStart", - "value": null - }, - { - "key": "expirationDateEnd", - "value": null - }, - { - "key": "connectionId", - "value": null - }, - { - "key": "principalDid", - "value": null - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 05:58:26 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "4576" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"11e0-n29HDRxi/1rhzktri7nD+uBh93Y\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Credential fetch successfully\",\n \"data\": {\n \"count\": 87,\n \"records\": [\n {\n \"id\": \"01b3d49c-1d51-4070-924d-9424ea239a93\",\n \"credentialId\": \"f4472554-ee2e-4262-bfc6-0ed268c8be31\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48687:Automation_CredDef_001\",\n \"threadId\": \"cdb2ce40-970d-4bb2-9d8b-a4aa5e517226\",\n \"state\": \"done\",\n \"principalDid\": \"CuZ94QvJCHihuCBCzRULoc\",\n \"connectionId\": \"2ded97e4-0c8e-470a-8e53-481e24e50db7\",\n \"createdDate\": \"2023-05-15T13:10:52.070Z\",\n \"updatedDate\": \"2023-05-15T13:13:10.164Z\",\n \"expirationDate\": \"2023-05-16T13:10:52.068Z\"\n },\n {\n \"id\": \"0306d10d-1b8f-471a-98c2-86edfe24e1dd\",\n \"credentialId\": \"c1b80b87-e044-4056-87ed-f53b50480015\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:46833:OCM1-passport\",\n \"threadId\": \"52d63479-a20e-47e3-9e5b-43b06998566d\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"FyydY9n2QZyuskXGm73kH8\",\n \"connectionId\": \"f468aeaa-6482-44af-b3d5-eb67aed0a2bd\",\n \"createdDate\": \"2023-05-09T12:52:55.259Z\",\n \"updatedDate\": \"2023-05-09T12:52:55.259Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"0b444def-2419-4635-97a5-46b8a2a93a8c\",\n \"credentialId\": \"2b7f4387-3361-4bc5-b4f8-0a6a3fb7b05a\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48362:Enrollment_credDef-222222322211\",\n \"threadId\": \"84336905-fbdb-4405-be94-24f0bb3143d8\",\n \"state\": \"done\",\n \"principalDid\": \"9M5aDzwUzeiq3sSwBD5mPC\",\n \"connectionId\": \"4a1b0ed2-d7ce-4629-9d91-03247f0015ca\",\n \"createdDate\": \"2023-05-09T14:06:00.663Z\",\n \"updatedDate\": \"2023-05-09T14:09:38.440Z\",\n \"expirationDate\": \"2023-05-10T14:06:00.661Z\"\n },\n {\n \"id\": \"0be85272-0802-48c4-a155-787534b050c7\",\n \"credentialId\": \"85ec488c-2f23-4544-885e-3f0e9a4f3e63\",\n \"credDefId\": \"48f6D93QZPA127oknMazWy:3:CL:41034:test2-credDef\",\n \"threadId\": \"edbdddc1-1a49-4d3e-aa47-bfbdca65aedf\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"LpN6wLLjfm5p1tqUo8Nf3w\",\n \"connectionId\": \"d45614da-c174-4399-bf27-3cf01928fe3a\",\n \"createdDate\": \"2023-03-27T12:10:22.645Z\",\n \"updatedDate\": \"2023-03-27T12:10:22.645Z\",\n \"expirationDate\": \"2023-03-28T11:10:22.642Z\"\n },\n {\n \"id\": \"13424638-ce33-4c77-9375-7b24e2d55e10\",\n \"credentialId\": \"4fea6609-cb4f-478b-9c30-a1ef09453dd1\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:50014:LoginCredentials2\",\n \"threadId\": \"eeb6a119-68bd-40bf-b454-69cd0dd6c13d\",\n \"state\": \"done\",\n \"principalDid\": \"7tziR5BbxSbqJbrtDC7ZJw\",\n \"connectionId\": \"9d6b7000-5f5a-49cd-91e7-6aff9ef73f83\",\n \"createdDate\": \"2023-05-22T11:23:47.206Z\",\n \"updatedDate\": \"2023-05-22T11:24:05.454Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"14b85bde-d2f4-4e1a-a49c-b7f51e0b9d68\",\n \"credentialId\": \"7dbd2d9d-b285-4c8d-a8c0-c982dbb76194\",\n \"credDefId\": \"48f6D93QZPA127oknMazWy:3:CL:41034:test2-credDef\",\n \"threadId\": \"34c43f2b-5223-42ac-8d6b-d6aa3508b30e\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"LpN6wLLjfm5p1tqUo8Nf3w\",\n \"connectionId\": \"d45614da-c174-4399-bf27-3cf01928fe3a\",\n \"createdDate\": \"2023-03-27T11:43:12.367Z\",\n \"updatedDate\": \"2023-03-27T11:43:12.367Z\",\n \"expirationDate\": \"2023-03-28T10:43:12.364Z\"\n },\n {\n \"id\": \"15281264-9b75-457b-babf-ea453ef742df\",\n \"credentialId\": \"c597ebb2-9dea-4a75-9616-1cf577818699\",\n \"credDefId\": \"48f6D93QZPA127oknMazWy:3:CL:42130:Driver Licence\",\n \"threadId\": \"48866e07-61b7-4036-9aeb-b4048edb1f5c\",\n \"state\": \"done\",\n \"principalDid\": \"AZGMhjPLkTHmHrwbaVCg8S\",\n \"connectionId\": \"1e55ac60-ce30-4887-b51b-ce581ab020c0\",\n \"createdDate\": \"2023-03-22T07:44:10.338Z\",\n \"updatedDate\": \"2023-03-22T07:45:48.314Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"17713cae-bbb5-4347-ab56-bb0abd11d4e3\",\n \"credentialId\": \"404433ba-bf23-4a1b-91b9-4c2e0b550811\",\n \"credDefId\": \"PFoX6wEKUmUrciXad7gyxQ:3:CL:46833:SSI-prod-passport1\",\n \"threadId\": \"3ad48da9-536d-4a70-b519-4a96328fff68\",\n \"state\": \"credential-received\",\n \"principalDid\": \"FyydY9n2QZyuskXGm73kH8\",\n \"connectionId\": \"f468aeaa-6482-44af-b3d5-eb67aed0a2bd\",\n \"createdDate\": \"2023-05-09T13:21:04.464Z\",\n \"updatedDate\": \"2023-05-09T13:21:59.765Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"17fe1bd6-1fb8-441d-bab7-da0c065feade\",\n \"credentialId\": \"fb713703-4dbb-4046-92a9-38275dfdc3c3\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48710:Automation_CredDef_001\",\n \"threadId\": \"92d75b0f-658a-4a15-ad8d-464e1bc9ed56\",\n \"state\": \"done\",\n \"principalDid\": \"CuZ94QvJCHihuCBCzRULoc\",\n \"connectionId\": \"2ded97e4-0c8e-470a-8e53-481e24e50db7\",\n \"createdDate\": \"2023-05-15T13:10:49.447Z\",\n \"updatedDate\": \"2023-05-15T13:14:28.548Z\",\n \"expirationDate\": \"2023-05-16T13:10:49.445Z\"\n },\n {\n \"id\": \"1879df35-ccaf-444a-b953-10339531582a\",\n \"credentialId\": \"9a5a8b7b-f1d7-45a3-a5f4-af78d0b450f3\",\n \"credDefId\": \"2ZDQuDB9Ww23qnesQLw9aq:3:CL:43799:Enrollment_credDef-22222322211\",\n \"threadId\": \"4ab8c6a6-7183-41db-bc5c-75d31c5c3753\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"9aRgDXK7SXJVKpbp91yAmr\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"createdDate\": \"2023-04-05T08:47:48.281Z\",\n \"updatedDate\": \"2023-04-05T08:47:48.281Z\",\n \"expirationDate\": \"2023-04-06T08:47:48.277Z\"\n }\n ]\n }\n}" - } - ] - }, - { - "name": "Fetch credential by credential id", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credential/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credential", - ":id" - ], - "variable": [ - { - "key": "id", - "value": "f4472554-ee2e-4262-bfc6-0ed268c8be31" - } - ] - } - }, - "response": [ - { - "name": "Fetch credential by credential id", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credential/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credential", - ":id" - ], - "variable": [ - { - "key": "id", - "value": "f4472554-ee2e-4262-bfc6-0ed268c8be31" - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 05:58:44 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "525" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"20d-E/63SLfeyJlcwG1mLsRAN1dAc50\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Credential fetched successfully\",\n \"data\": {\n \"id\": \"01b3d49c-1d51-4070-924d-9424ea239a93\",\n \"credentialId\": \"f4472554-ee2e-4262-bfc6-0ed268c8be31\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48687:Automation_CredDef_001\",\n \"threadId\": \"cdb2ce40-970d-4bb2-9d8b-a4aa5e517226\",\n \"state\": \"done\",\n \"principalDid\": \"CuZ94QvJCHihuCBCzRULoc\",\n \"connectionId\": \"2ded97e4-0c8e-470a-8e53-481e24e50db7\",\n \"createdDate\": \"2023-05-15T13:10:52.070Z\",\n \"updatedDate\": \"2023-05-15T13:13:10.164Z\",\n \"expirationDate\": \"2023-05-16T13:10:52.068Z\"\n }\n}" - } - ] - }, - { - "name": "Create new CredentialType", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"type\": \"<string>\",\n \"schemaId\": \"<string>\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/credentialType", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credentialType" - ] - } - }, - "response": [] - }, - { - "name": "Fetch CredentialType (schemaId amd its attributes) by type", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/credentialType", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "credentialType" - ] - } - }, - "response": [] - }, - { - "name": "Delete credential (request/offer/proposal) by credential id", - "request": { - "method": "DELETE", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/delete-credential/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "delete-credential", - ":id" - ], - "variable": [ - { - "key": "id" - } - ] - } - }, - "response": [] - }, - { - "name": "Health check", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/health", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "health" - ] - } - }, - "response": [ - { - "name": "Health check", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/health", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "health" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 05:54:20 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "93" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"5d-n7tsAF97fIhtcEb5uvvhp8pNSHg\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Fri Jun 02 2023 05:54:20 GMT+0000 (Coordinated Universal Time)\"\n}" - } - ] - }, - { - "name": "Fetch list of Schemas with pagination", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "schemas" - ] - } - }, - "response": [] - }, - { - "name": "Create new schema", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"name\": \"<string>\",\n \"createdBy\": \"<string>\",\n \"version\": \"<string>\",\n \"attributes\": [\n \"<string>\",\n \"<string>\"\n ],\n \"type\": \"<string>\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/schemas", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "schemas" - ] - } - }, - "response": [] - }, - { - "name": "Fetch list of dids for schema id", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/schemas/get-dids-for-schema/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "schemas", - "get-dids-for-schema", - ":id" - ], - "variable": [ - { - "key": "id", - "value": "<string>" - } - ] - } - }, - "response": [] - }, - { - "name": "Fetch list of Schemas by schema id", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/schemas/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "schemas", - ":id" - ], - "variable": [ - { - "key": "id", - "value": "<string>" - } - ] - } - }, - "response": [] - }, - { - "name": "Update schemaId in CredentialsType", - "request": { - "method": "PATCH", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"schemaId\": \"<string>\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/updateSchemaIdByType", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "updateSchemaIdByType" - ] - } - }, - "response": [] - }, - { - "name": "Add user information associated with connection id", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"connectionId\": \"<string>\",\n \"autoAcceptCredential\": \"<string>\",\n \"userInfo\": {}\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/userInfo", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "userInfo" - ] - } - }, - "response": [] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "key": "baseUrl", - "value": "https://ssi-dev.vereign.com/ocm/attestation" - } - ] -} \ No newline at end of file + "info": { + "_postman_id": "096d259a-3afa-45e2-b8fd-ce78cc1afaee", + "name": "Gaia-x Attestation Manager API", + "description": "API documentation for GAIA-X Attestation Manager", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "10250261" + }, + "item": [ + { + "name": "Fetch credential information by credential id", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credential-info/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "credential-info", ":id"], + "variable": [ + { + "key": "id" + } + ] + } + }, + "response": [] + }, + { + "name": "Send credential proposal to connection", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"connectionId\": \"<string>\",\n \"credentialDefinitionId\": \"<string>\",\n \"comment\": \"<string>\",\n \"credentialProposal\": {},\n \"autoAcceptCredential\": \"<string>\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/create-propose-credential", + "host": ["{{baseUrl}}"], + "path": ["v1", "create-propose-credential"] + } + }, + "response": [] + }, + { + "name": "Send credential offer with credential values to connection", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"connectionId\": \"<string>\",\n \"credentialDefinitionId\": \"<string>\",\n \"comment\": \"<string>\",\n \"attributes\": [\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n },\n {\n \"name\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"autoAcceptCredential\": \"<string>\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/create-offer-credential", + "host": ["{{baseUrl}}"], + "path": ["v1", "create-offer-credential"] + } + }, + "response": [] + }, + { + "name": "Accept credential request by credential id", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/v1/accept-request/:credentialId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-request", ":credentialId"], + "variable": [ + { + "key": "credentialId" + } + ] + } + }, + "response": [] + }, + { + "name": "Accept credential proposal by credential id", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/v1/accept-proposal/:credentialId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-proposal", ":credentialId"], + "variable": [ + { + "key": "credentialId" + } + ] + } + }, + "response": [] + }, + { + "name": "Accept credential offer by credential id", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/v1/accept-offer/:credentialId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-offer", ":credentialId"], + "variable": [ + { + "key": "credentialId" + } + ] + } + }, + "response": [] + }, + { + "name": "Accept credentials by credential id", + "request": { + "method": "POST", + "header": [], + "url": { + "raw": "{{baseUrl}}/v1/accept-credential/:credentialId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-credential", ":credentialId"], + "variable": [ + { + "key": "credentialId" + } + ] + } + }, + "response": [] + }, + { + "name": "Fetch list of credential definition", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credentialDef", + "host": ["{{baseUrl}}"], + "path": ["v1", "credentialDef"] + } + }, + "response": [] + }, + { + "name": "Fetch credential definition by id", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credentialDef/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "credentialDef", ":id"], + "variable": [ + { + "key": "id", + "value": "<string>" + } + ] + } + }, + "response": [] + }, + { + "name": "Create new credential definition", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"schemaID\": \"<string>\",\n \"name\": \"<string>\",\n \"isRevokable\": \"<boolean>\",\n \"isAutoIssue\": \"<boolean>\",\n \"expiryHours\": \"<string>\",\n \"createdBy\": \"<string>\",\n \"type\": \"<string>\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/credentialDef", + "host": ["{{baseUrl}}"], + "path": ["v1", "credentialDef"] + } + }, + "response": [] + }, + { + "name": "Fetch list of credentials using pagination and queries", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credential?page=0&pageSize=10&isReceived&threadId&state&credDefId&createdDateStart&createdDateEnd&updatedDateStart&updatedDateEnd&expirationDateStart&expirationDateEnd&connectionId&principalDid", + "host": ["{{baseUrl}}"], + "path": ["v1", "credential"], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "pageSize", + "value": "10" + }, + { + "key": "isReceived", + "value": null + }, + { + "key": "threadId", + "value": null + }, + { + "key": "state", + "value": null + }, + { + "key": "credDefId", + "value": null + }, + { + "key": "createdDateStart", + "value": null + }, + { + "key": "createdDateEnd", + "value": null + }, + { + "key": "updatedDateStart", + "value": null + }, + { + "key": "updatedDateEnd", + "value": null + }, + { + "key": "expirationDateStart", + "value": null + }, + { + "key": "expirationDateEnd", + "value": null + }, + { + "key": "connectionId", + "value": null + }, + { + "key": "principalDid", + "value": null + } + ] + } + }, + "response": [ + { + "name": "Fetch list of credentials using pagination and queries", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credential?page=0&pageSize=10&isReceived&threadId&state&credDefId&createdDateStart&createdDateEnd&updatedDateStart&updatedDateEnd&expirationDateStart&expirationDateEnd&connectionId&principalDid", + "host": ["{{baseUrl}}"], + "path": ["v1", "credential"], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "pageSize", + "value": "10" + }, + { + "key": "isReceived", + "value": null + }, + { + "key": "threadId", + "value": null + }, + { + "key": "state", + "value": null + }, + { + "key": "credDefId", + "value": null + }, + { + "key": "createdDateStart", + "value": null + }, + { + "key": "createdDateEnd", + "value": null + }, + { + "key": "updatedDateStart", + "value": null + }, + { + "key": "updatedDateEnd", + "value": null + }, + { + "key": "expirationDateStart", + "value": null + }, + { + "key": "expirationDateEnd", + "value": null + }, + { + "key": "connectionId", + "value": null + }, + { + "key": "principalDid", + "value": null + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 05:58:26 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "4576" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"11e0-n29HDRxi/1rhzktri7nD+uBh93Y\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Credential fetch successfully\",\n \"data\": {\n \"count\": 87,\n \"records\": [\n {\n \"id\": \"01b3d49c-1d51-4070-924d-9424ea239a93\",\n \"credentialId\": \"f4472554-ee2e-4262-bfc6-0ed268c8be31\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48687:Automation_CredDef_001\",\n \"threadId\": \"cdb2ce40-970d-4bb2-9d8b-a4aa5e517226\",\n \"state\": \"done\",\n \"principalDid\": \"CuZ94QvJCHihuCBCzRULoc\",\n \"connectionId\": \"2ded97e4-0c8e-470a-8e53-481e24e50db7\",\n \"createdDate\": \"2023-05-15T13:10:52.070Z\",\n \"updatedDate\": \"2023-05-15T13:13:10.164Z\",\n \"expirationDate\": \"2023-05-16T13:10:52.068Z\"\n },\n {\n \"id\": \"0306d10d-1b8f-471a-98c2-86edfe24e1dd\",\n \"credentialId\": \"c1b80b87-e044-4056-87ed-f53b50480015\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:46833:OCM1-passport\",\n \"threadId\": \"52d63479-a20e-47e3-9e5b-43b06998566d\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"FyydY9n2QZyuskXGm73kH8\",\n \"connectionId\": \"f468aeaa-6482-44af-b3d5-eb67aed0a2bd\",\n \"createdDate\": \"2023-05-09T12:52:55.259Z\",\n \"updatedDate\": \"2023-05-09T12:52:55.259Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"0b444def-2419-4635-97a5-46b8a2a93a8c\",\n \"credentialId\": \"2b7f4387-3361-4bc5-b4f8-0a6a3fb7b05a\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48362:Enrollment_credDef-222222322211\",\n \"threadId\": \"84336905-fbdb-4405-be94-24f0bb3143d8\",\n \"state\": \"done\",\n \"principalDid\": \"9M5aDzwUzeiq3sSwBD5mPC\",\n \"connectionId\": \"4a1b0ed2-d7ce-4629-9d91-03247f0015ca\",\n \"createdDate\": \"2023-05-09T14:06:00.663Z\",\n \"updatedDate\": \"2023-05-09T14:09:38.440Z\",\n \"expirationDate\": \"2023-05-10T14:06:00.661Z\"\n },\n {\n \"id\": \"0be85272-0802-48c4-a155-787534b050c7\",\n \"credentialId\": \"85ec488c-2f23-4544-885e-3f0e9a4f3e63\",\n \"credDefId\": \"48f6D93QZPA127oknMazWy:3:CL:41034:test2-credDef\",\n \"threadId\": \"edbdddc1-1a49-4d3e-aa47-bfbdca65aedf\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"LpN6wLLjfm5p1tqUo8Nf3w\",\n \"connectionId\": \"d45614da-c174-4399-bf27-3cf01928fe3a\",\n \"createdDate\": \"2023-03-27T12:10:22.645Z\",\n \"updatedDate\": \"2023-03-27T12:10:22.645Z\",\n \"expirationDate\": \"2023-03-28T11:10:22.642Z\"\n },\n {\n \"id\": \"13424638-ce33-4c77-9375-7b24e2d55e10\",\n \"credentialId\": \"4fea6609-cb4f-478b-9c30-a1ef09453dd1\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:50014:LoginCredentials2\",\n \"threadId\": \"eeb6a119-68bd-40bf-b454-69cd0dd6c13d\",\n \"state\": \"done\",\n \"principalDid\": \"7tziR5BbxSbqJbrtDC7ZJw\",\n \"connectionId\": \"9d6b7000-5f5a-49cd-91e7-6aff9ef73f83\",\n \"createdDate\": \"2023-05-22T11:23:47.206Z\",\n \"updatedDate\": \"2023-05-22T11:24:05.454Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"14b85bde-d2f4-4e1a-a49c-b7f51e0b9d68\",\n \"credentialId\": \"7dbd2d9d-b285-4c8d-a8c0-c982dbb76194\",\n \"credDefId\": \"48f6D93QZPA127oknMazWy:3:CL:41034:test2-credDef\",\n \"threadId\": \"34c43f2b-5223-42ac-8d6b-d6aa3508b30e\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"LpN6wLLjfm5p1tqUo8Nf3w\",\n \"connectionId\": \"d45614da-c174-4399-bf27-3cf01928fe3a\",\n \"createdDate\": \"2023-03-27T11:43:12.367Z\",\n \"updatedDate\": \"2023-03-27T11:43:12.367Z\",\n \"expirationDate\": \"2023-03-28T10:43:12.364Z\"\n },\n {\n \"id\": \"15281264-9b75-457b-babf-ea453ef742df\",\n \"credentialId\": \"c597ebb2-9dea-4a75-9616-1cf577818699\",\n \"credDefId\": \"48f6D93QZPA127oknMazWy:3:CL:42130:Driver Licence\",\n \"threadId\": \"48866e07-61b7-4036-9aeb-b4048edb1f5c\",\n \"state\": \"done\",\n \"principalDid\": \"AZGMhjPLkTHmHrwbaVCg8S\",\n \"connectionId\": \"1e55ac60-ce30-4887-b51b-ce581ab020c0\",\n \"createdDate\": \"2023-03-22T07:44:10.338Z\",\n \"updatedDate\": \"2023-03-22T07:45:48.314Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"17713cae-bbb5-4347-ab56-bb0abd11d4e3\",\n \"credentialId\": \"404433ba-bf23-4a1b-91b9-4c2e0b550811\",\n \"credDefId\": \"PFoX6wEKUmUrciXad7gyxQ:3:CL:46833:SSI-prod-passport1\",\n \"threadId\": \"3ad48da9-536d-4a70-b519-4a96328fff68\",\n \"state\": \"credential-received\",\n \"principalDid\": \"FyydY9n2QZyuskXGm73kH8\",\n \"connectionId\": \"f468aeaa-6482-44af-b3d5-eb67aed0a2bd\",\n \"createdDate\": \"2023-05-09T13:21:04.464Z\",\n \"updatedDate\": \"2023-05-09T13:21:59.765Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"17fe1bd6-1fb8-441d-bab7-da0c065feade\",\n \"credentialId\": \"fb713703-4dbb-4046-92a9-38275dfdc3c3\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48710:Automation_CredDef_001\",\n \"threadId\": \"92d75b0f-658a-4a15-ad8d-464e1bc9ed56\",\n \"state\": \"done\",\n \"principalDid\": \"CuZ94QvJCHihuCBCzRULoc\",\n \"connectionId\": \"2ded97e4-0c8e-470a-8e53-481e24e50db7\",\n \"createdDate\": \"2023-05-15T13:10:49.447Z\",\n \"updatedDate\": \"2023-05-15T13:14:28.548Z\",\n \"expirationDate\": \"2023-05-16T13:10:49.445Z\"\n },\n {\n \"id\": \"1879df35-ccaf-444a-b953-10339531582a\",\n \"credentialId\": \"9a5a8b7b-f1d7-45a3-a5f4-af78d0b450f3\",\n \"credDefId\": \"2ZDQuDB9Ww23qnesQLw9aq:3:CL:43799:Enrollment_credDef-22222322211\",\n \"threadId\": \"4ab8c6a6-7183-41db-bc5c-75d31c5c3753\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"9aRgDXK7SXJVKpbp91yAmr\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"createdDate\": \"2023-04-05T08:47:48.281Z\",\n \"updatedDate\": \"2023-04-05T08:47:48.281Z\",\n \"expirationDate\": \"2023-04-06T08:47:48.277Z\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Fetch credential by credential id", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credential/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "credential", ":id"], + "variable": [ + { + "key": "id", + "value": "f4472554-ee2e-4262-bfc6-0ed268c8be31" + } + ] + } + }, + "response": [ + { + "name": "Fetch credential by credential id", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credential/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "credential", ":id"], + "variable": [ + { + "key": "id", + "value": "f4472554-ee2e-4262-bfc6-0ed268c8be31" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 05:58:44 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "525" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"20d-E/63SLfeyJlcwG1mLsRAN1dAc50\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Credential fetched successfully\",\n \"data\": {\n \"id\": \"01b3d49c-1d51-4070-924d-9424ea239a93\",\n \"credentialId\": \"f4472554-ee2e-4262-bfc6-0ed268c8be31\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:48687:Automation_CredDef_001\",\n \"threadId\": \"cdb2ce40-970d-4bb2-9d8b-a4aa5e517226\",\n \"state\": \"done\",\n \"principalDid\": \"CuZ94QvJCHihuCBCzRULoc\",\n \"connectionId\": \"2ded97e4-0c8e-470a-8e53-481e24e50db7\",\n \"createdDate\": \"2023-05-15T13:10:52.070Z\",\n \"updatedDate\": \"2023-05-15T13:13:10.164Z\",\n \"expirationDate\": \"2023-05-16T13:10:52.068Z\"\n }\n}" + } + ] + }, + { + "name": "Create new CredentialType", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"type\": \"<string>\",\n \"schemaId\": \"<string>\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/credentialType", + "host": ["{{baseUrl}}"], + "path": ["v1", "credentialType"] + } + }, + "response": [] + }, + { + "name": "Fetch CredentialType (schemaId amd its attributes) by type", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/credentialType", + "host": ["{{baseUrl}}"], + "path": ["v1", "credentialType"] + } + }, + "response": [] + }, + { + "name": "Delete credential (request/offer/proposal) by credential id", + "request": { + "method": "DELETE", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/delete-credential/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "delete-credential", ":id"], + "variable": [ + { + "key": "id" + } + ] + } + }, + "response": [] + }, + { + "name": "Health check", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/health", + "host": ["{{baseUrl}}"], + "path": ["v1", "health"] + } + }, + "response": [ + { + "name": "Health check", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/health", + "host": ["{{baseUrl}}"], + "path": ["v1", "health"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 05:54:20 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "93" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"5d-n7tsAF97fIhtcEb5uvvhp8pNSHg\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Fri Jun 02 2023 05:54:20 GMT+0000 (Coordinated Universal Time)\"\n}" + } + ] + }, + { + "name": "Fetch list of Schemas with pagination", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/schemas", + "host": ["{{baseUrl}}"], + "path": ["v1", "schemas"] + } + }, + "response": [] + }, + { + "name": "Create new schema", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"name\": \"<string>\",\n \"createdBy\": \"<string>\",\n \"version\": \"<string>\",\n \"attributes\": [\n \"<string>\",\n \"<string>\"\n ],\n \"type\": \"<string>\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/schemas", + "host": ["{{baseUrl}}"], + "path": ["v1", "schemas"] + } + }, + "response": [] + }, + { + "name": "Fetch list of dids for schema id", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/schemas/get-dids-for-schema/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "schemas", "get-dids-for-schema", ":id"], + "variable": [ + { + "key": "id", + "value": "<string>" + } + ] + } + }, + "response": [] + }, + { + "name": "Fetch list of Schemas by schema id", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/schemas/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "schemas", ":id"], + "variable": [ + { + "key": "id", + "value": "<string>" + } + ] + } + }, + "response": [] + }, + { + "name": "Update schemaId in CredentialsType", + "request": { + "method": "PATCH", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"schemaId\": \"<string>\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/updateSchemaIdByType", + "host": ["{{baseUrl}}"], + "path": ["v1", "updateSchemaIdByType"] + } + }, + "response": [] + }, + { + "name": "Add user information associated with connection id", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"connectionId\": \"<string>\",\n \"autoAcceptCredential\": \"<string>\",\n \"userInfo\": {}\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/userInfo", + "host": ["{{baseUrl}}"], + "path": ["v1", "userInfo"] + } + }, + "response": [] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [""] + } + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "https://ssi-dev.vereign.com/ocm/attestation" + } + ] +} diff --git a/apps/attestation-manager/README.md b/apps/attestation-manager/README.md index f7b4dcc3231f0043b9799f6592d6060dcc231ea2..33a0265b07cf078c57a725aa79f0d92d304b0c69 100644 --- a/apps/attestation-manager/README.md +++ b/apps/attestation-manager/README.md @@ -1,31 +1,34 @@ # OCM Attestation Manager ## Description + <hr/> The Attestation Manager is the microservice responsible for handling the features related to Issuance of Credentials. It handles REST endpoints for Schemas, Credential Definitions and Verifiable Credentials. ## Usage + <hr/> -### Swagger Documentation: +### Swagger Documentation: [Swagger/OpenAPI](swagger.json) ## Installation + <hr/> ### Pre-requisite -* pnpm -* docker -* docker-compose -* PostgreSQL +- pnpm +- docker +- docker-compose +- PostgreSQL ### OCM Services Dependencies -* SSI Abstraction -* Connection Manager +- SSI Abstraction +- Connection Manager ## Running the app @@ -40,29 +43,36 @@ The Attestation Manager is the microservice responsible for handling the feature ./deployment/dev ``` -* (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles. +- (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles. + +- Run while in **"infrastructure"** project: -* Run while in **"infrastructure"** project: ```bash $ docker-compose up --build attestation-m ``` + to run only Attestation Manager or + ```bash $ docker-compose up --build ``` + to run all the services. ## Build + ``` pnpm build ``` ## Run + ``` pnpm start ``` ### Environment Variables Required + ``` 1. PORT 2. DATABASE_URL @@ -72,16 +82,19 @@ pnpm start ``` ### Outgoing communication services + ``` 1. SSI Abstraction ``` ### Incomming communication services + ``` 1. Principal Manager ``` ### Features supported + ``` 1. Create Schema 2. Create Credential Definition @@ -90,8 +103,8 @@ pnpm start 5. Accept Credential ``` - ## Test + <hr/> ```bash @@ -105,18 +118,20 @@ $ pnpm test:e2e $ pnpm test:cov ``` - ## GDPR + <hr/> [GDPR](GDPR.md) ## Dependencies + <hr/> [Dependencies](package.json) ## License + <hr/> [Apache 2.0 license](LICENSE) diff --git a/apps/attestation-manager/deployment/helm/Chart.yaml b/apps/attestation-manager/deployment/helm/Chart.yaml index ce7247db8ddc1ee5fd1755bf488cdc5666123d8a..7d96ed7f53ad8dda534eb08bfc90bd94476538de 100644 --- a/apps/attestation-manager/deployment/helm/Chart.yaml +++ b/apps/attestation-manager/deployment/helm/Chart.yaml @@ -3,4 +3,4 @@ appVersion: v1.0.4-rc description: attestation-manager deployment name: attestation-manager version: 1.0.4 -icon: "https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg" +icon: 'https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg' diff --git a/apps/attestation-manager/deployment/helm/README.md b/apps/attestation-manager/deployment/helm/README.md index 123e652639feb7f4f6439fa49a5c5e431ae645f8..71b02e2087551b21e13161b6a9b6f838c8fdd7e2 100644 --- a/apps/attestation-manager/deployment/helm/README.md +++ b/apps/attestation-manager/deployment/helm/README.md @@ -6,62 +6,63 @@ attestation-manager deployment ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| attestationManager.acceptMembershipCredentialsConfig | string | `"AUTO"` | | -| attestationManager.agent.host | string | `"ssi-abstraction"` | | -| attestationManager.agent.port | int | `3010` | | -| attestationManager.agent.protocol | string | `"http"` | | -| attestationManager.database.db | string | `"ocm_attestation_manager"` | | -| attestationManager.database.host | string | `"postgresql-postgresql-ha-postgresql.infra"` | | -| attestationManager.database.password | string | `"ocm_attestation_manager"` | | -| attestationManager.database.port | int | `5432` | | -| attestationManager.database.schema | string | `"attestation"` | | -| attestationManager.database.user | string | `"ocm_attestation_manager"` | | -| attestationManager.elastic.port | int | `9200` | | -| attestationManager.elastic.protocol | string | `"http"` | | -| attestationManager.elastic.url | string | `"elasticsearch"` | | -| attestationManager.nats.port | int | `4222` | | -| attestationManager.nats.protocol | string | `"nats"` | | -| attestationManager.nats.url | string | `"nats"` | | -| attestationManager.url.attestationManager | string | `"https://gaiax.vereign.com/ocm/attestation"` | | -| attestationManager.url.connectionManager | string | `"https://gaiax.vereign.com/ocm/connection"` | | -| attestationManager.url.tsa | string | `"https://gaiax.vereign.com/tsa/policy/policy/example"` | | -| autoscaling.enabled | bool | `false` | Enable autoscaling | -| autoscaling.maxReplicas | int | `3` | Maximum replicas | -| autoscaling.minReplicas | int | `1` | Minimum replicas | -| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger | -| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger | -| image.name | string | `"gaiax/attestation-manager"` | Image name | -| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | -| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used | -| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` | | -| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty | -| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty | -| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` | | -| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | | -| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` | | -| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | -| ingress.enabled | bool | `true` | | -| ingress.frontendDomain | string | `"gaiax.vereign.com"` | | -| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` | | -| ingress.tlsEnabled | bool | `true` | | -| log.encoding | string | `"json"` | | -| log.level | string | `"INFO"` | | -| metrics.enabled | bool | `true` | Enable prometheus metrics | -| metrics.port | int | `2112` | Port for prometheus metrics | -| name | string | `"ssi-abstraction"` | Application name | -| nameOverride | string | `""` | Ovverwrites application name | -| podAnnotations | object | `{}` | | -| replicaCount | int | `1` | Default number of instances to start | -| resources.limits.cpu | string | `"150m"` | | -| resources.limits.memory | string | `"128Mi"` | | -| resources.requests.cpu | string | `"25m"` | | -| resources.requests.memory | string | `"64Mi"` | | -| security.runAsGid | int | `0` | Group used by the apps | -| security.runAsNonRoot | bool | `false` | by default, apps run as non-root | -| security.runAsUid | int | `0` | User used by the apps | -| service.port | int | `3005` | | +| Key | Type | Default | Description | +| ----------------------------------------------------------------- | ------ | ------------------------------------------------------- | -------------------------------------------------------------- | +| attestationManager.acceptMembershipCredentialsConfig | string | `"AUTO"` | | +| attestationManager.agent.host | string | `"ssi-abstraction"` | | +| attestationManager.agent.port | int | `3010` | | +| attestationManager.agent.protocol | string | `"http"` | | +| attestationManager.database.db | string | `"ocm_attestation_manager"` | | +| attestationManager.database.host | string | `"postgresql-postgresql-ha-postgresql.infra"` | | +| attestationManager.database.password | string | `"ocm_attestation_manager"` | | +| attestationManager.database.port | int | `5432` | | +| attestationManager.database.schema | string | `"attestation"` | | +| attestationManager.database.user | string | `"ocm_attestation_manager"` | | +| attestationManager.elastic.port | int | `9200` | | +| attestationManager.elastic.protocol | string | `"http"` | | +| attestationManager.elastic.url | string | `"elasticsearch"` | | +| attestationManager.nats.port | int | `4222` | | +| attestationManager.nats.protocol | string | `"nats"` | | +| attestationManager.nats.url | string | `"nats"` | | +| attestationManager.url.attestationManager | string | `"https://gaiax.vereign.com/ocm/attestation"` | | +| attestationManager.url.connectionManager | string | `"https://gaiax.vereign.com/ocm/connection"` | | +| attestationManager.url.tsa | string | `"https://gaiax.vereign.com/tsa/policy/policy/example"` | | +| autoscaling.enabled | bool | `false` | Enable autoscaling | +| autoscaling.maxReplicas | int | `3` | Maximum replicas | +| autoscaling.minReplicas | int | `1` | Minimum replicas | +| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger | +| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger | +| image.name | string | `"gaiax/attestation-manager"` | Image name | +| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | +| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used | +| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` | | +| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty | +| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty | +| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` | | +| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | | +| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` | | +| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | +| ingress.enabled | bool | `true` | | +| ingress.frontendDomain | string | `"gaiax.vereign.com"` | | +| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` | | +| ingress.tlsEnabled | bool | `true` | | +| log.encoding | string | `"json"` | | +| log.level | string | `"INFO"` | | +| metrics.enabled | bool | `true` | Enable prometheus metrics | +| metrics.port | int | `2112` | Port for prometheus metrics | +| name | string | `"ssi-abstraction"` | Application name | +| nameOverride | string | `""` | Ovverwrites application name | +| podAnnotations | object | `{}` | | +| replicaCount | int | `1` | Default number of instances to start | +| resources.limits.cpu | string | `"150m"` | | +| resources.limits.memory | string | `"128Mi"` | | +| resources.requests.cpu | string | `"25m"` | | +| resources.requests.memory | string | `"64Mi"` | | +| security.runAsGid | int | `0` | Group used by the apps | +| security.runAsNonRoot | bool | `false` | by default, apps run as non-root | +| security.runAsUid | int | `0` | User used by the apps | +| service.port | int | `3005` | | + +--- ----------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0) diff --git a/apps/attestation-manager/deployment/helm/templates/service.yaml b/apps/attestation-manager/deployment/helm/templates/service.yaml index 21c57ac87992e185f824c0c8c9fbf8ab19b289d2..387c8d480b51f5312086a6510081bdac85c6b0c9 100644 --- a/apps/attestation-manager/deployment/helm/templates/service.yaml +++ b/apps/attestation-manager/deployment/helm/templates/service.yaml @@ -1,16 +1,13 @@ apiVersion: v1 kind: Service metadata: - name: {{ template "app.name" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "app.labels" . | nindent 4 }} + name: { { template "app.name" . } } + namespace: { { .Release.Namespace } } + labels: { { - include "app.labels" . | nindent 4 } } spec: clusterIP: None ports: - - name: http - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.port }} - selector: - {{- include "app.selectorLabels" . | nindent 4 }} - + - name: http + port: { { .Values.service.port } } + targetPort: { { .Values.service.port } } + selector: { { - include "app.selectorLabels" . | nindent 4 } } diff --git a/apps/attestation-manager/deployment/helm/values-override.yaml b/apps/attestation-manager/deployment/helm/values-override.yaml index 408c77b9e54c8d3e9de1d31c38af33e1644543c2..1d88acd66500241979973696ead0e1bcc4e1f85d 100644 --- a/apps/attestation-manager/deployment/helm/values-override.yaml +++ b/apps/attestation-manager/deployment/helm/values-override.yaml @@ -1,37 +1,37 @@ image: - repository: registry.gitlab.com/gaia-x/data-infrastructure-federation-services/ocm - # -- Image name - name: attestation-manager + repository: registry.gitlab.com/gaia-x/data-infrastructure-federation-services/ocm + # -- Image name + name: attestation-manager attestationManager: - url: - tsa: https://tsa.gxfs.dev/policy/policy/example - connectionManager: https://ocm.gxfs.dev/connection - attestationManager: https://ocm.gxfs.dev/attestation - database: - host: vereign-database1-postgres.gxfs-vereign - user: ENC[AES256_GCM,data:mk+oOKURENM=,iv:COwKJMsdTq5rk0L6bgooO2ZfTUlc1s16KWfPOGlJ1lo=,tag:5OXJ6l8DCvOUhinh922IAw==,type:str] - password: ENC[AES256_GCM,data:2DRvp3NP2KWDABEjRFqlfVPwtxsooDJW357jmJ7KEFURlubs3DGbce+5wLLhG8XbpdFZhCFEoNZivREa4LwhIw==,iv:3hqOlGqAT5/g52nSnqa8/ydUprOtWThT4lcoysmy11Q=,tag:0ZWS2zf5/huwhq9KO2HjoQ==,type:str] - db: vereign-database1-postgres + url: + tsa: https://tsa.gxfs.dev/policy/policy/example + connectionManager: https://ocm.gxfs.dev/connection + attestationManager: https://ocm.gxfs.dev/attestation + database: + host: vereign-database1-postgres.gxfs-vereign + user: ENC[AES256_GCM,data:mk+oOKURENM=,iv:COwKJMsdTq5rk0L6bgooO2ZfTUlc1s16KWfPOGlJ1lo=,tag:5OXJ6l8DCvOUhinh922IAw==,type:str] + password: ENC[AES256_GCM,data:2DRvp3NP2KWDABEjRFqlfVPwtxsooDJW357jmJ7KEFURlubs3DGbce+5wLLhG8XbpdFZhCFEoNZivREa4LwhIw==,iv:3hqOlGqAT5/g52nSnqa8/ydUprOtWThT4lcoysmy11Q=,tag:0ZWS2zf5/huwhq9KO2HjoQ==,type:str] + db: vereign-database1-postgres ingress: - frontendDomain: ocm.gxfs.dev - frontendTlsSecretName: wildcard-gxfs-dev + frontendDomain: ocm.gxfs.dev + frontendTlsSecretName: wildcard-gxfs-dev sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1nrk70nevtmrcgzjunsed43ar6dk3e06qt7tryqqprj9axv4e0djqa0n0cg - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBySXY3dzljdWdyamFLNkFW - WHNqeGY3Q09WNnd2blJiTDhhVzdKQ0hjalgwCjR3RGZMdHFyM1lhQXdhcnN5SVE0 - NnBwMzlVY2xwTzFQNE5VR3QybnpLb28KLS0tIHU4QVZZRWViNlVKQzg0YVBQWVI5 - S3J1amdkVGhBUzhHOEJmWThSbVFNdm8KsBA7cO4f2Zmym8SoIXAzNw0uxaxfDWg9 - ryyxpwCjSQD2kuOw9epK/J7DpCkpAmipQSNvmU5ZiNnq9VzdQ8WGEA== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2022-08-04T11:06:04Z" - mac: ENC[AES256_GCM,data:MdbVIQyR5s4efjMB1MIiOJZOueS0R1F4xvoaHEUoWaQ/bIWa3Km/CBijCI4+zqM54tZ3Zs+kMLK0FdHd+TpSujY2Jg6U8JqRHnA4cUEcr1el5pnhqo3lLiSmZXhGJaO9mlPoE/IVDdlrDXgRwexnznvyJn5RUpK1KdTsAU02wBI=,iv:EdCTlV7CDJikksz0HoiShKhKCO6LsOGsTk6GQalw6QA=,tag:QCbYT1Wr3KwcgmR70Qxlvg==,type:str] - pgp: [] - encrypted_regex: ^(password|user)$ - version: 3.7.3 + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1nrk70nevtmrcgzjunsed43ar6dk3e06qt7tryqqprj9axv4e0djqa0n0cg + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBySXY3dzljdWdyamFLNkFW + WHNqeGY3Q09WNnd2blJiTDhhVzdKQ0hjalgwCjR3RGZMdHFyM1lhQXdhcnN5SVE0 + NnBwMzlVY2xwTzFQNE5VR3QybnpLb28KLS0tIHU4QVZZRWViNlVKQzg0YVBQWVI5 + S3J1amdkVGhBUzhHOEJmWThSbVFNdm8KsBA7cO4f2Zmym8SoIXAzNw0uxaxfDWg9 + ryyxpwCjSQD2kuOw9epK/J7DpCkpAmipQSNvmU5ZiNnq9VzdQ8WGEA== + -----END AGE ENCRYPTED FILE----- + lastmodified: '2022-08-04T11:06:04Z' + mac: ENC[AES256_GCM,data:MdbVIQyR5s4efjMB1MIiOJZOueS0R1F4xvoaHEUoWaQ/bIWa3Km/CBijCI4+zqM54tZ3Zs+kMLK0FdHd+TpSujY2Jg6U8JqRHnA4cUEcr1el5pnhqo3lLiSmZXhGJaO9mlPoE/IVDdlrDXgRwexnznvyJn5RUpK1KdTsAU02wBI=,iv:EdCTlV7CDJikksz0HoiShKhKCO6LsOGsTk6GQalw6QA=,tag:QCbYT1Wr3KwcgmR70Qxlvg==,type:str] + pgp: [] + encrypted_regex: ^(password|user)$ + version: 3.7.3 diff --git a/apps/attestation-manager/deployment/helm/values.yaml b/apps/attestation-manager/deployment/helm/values.yaml index b5d24b38691288b1400e54b50cf91f1c5ed8f5e7..43a76bc9a942abd486b7d477adf21f3cf6eb972f 100644 --- a/apps/attestation-manager/deployment/helm/values.yaml +++ b/apps/attestation-manager/deployment/helm/values.yaml @@ -1,9 +1,9 @@ -# -- Default number of instances to start +# -- Default number of instances to start replicaCount: 1 # -- Application name name: ssi-abstraction # -- Ovverwrites application name -nameOverride: "" +nameOverride: '' image: repository: eu.gcr.io/vrgn-infra-prj @@ -11,16 +11,15 @@ image: name: gaiax/attestation-manager # -- Image tag # Uses .Chart.AppVersion if empty - tag: "" + tag: '' # -- Image sha, usually generated by the CI # Uses image.tag if empty - sha: "" + sha: '' # -- Image pull policy pullPolicy: IfNotPresent # -- Image pull secret when internal image is used pullSecrets: deployment-key-light - podAnnotations: {} ## ## Pass extra environment variables to the container. @@ -67,7 +66,7 @@ metrics: port: 2112 log: - level: "INFO" + level: 'INFO' encoding: json ## diff --git a/apps/attestation-manager/swagger.json b/apps/attestation-manager/swagger.json index 80e10a286f71bf01b4bd6b2f35ded3a69bba2af5..c821889be10e1685286c641fdfeff2ff69e92190 100644 --- a/apps/attestation-manager/swagger.json +++ b/apps/attestation-manager/swagger.json @@ -142,9 +142,7 @@ } } }, - "tags": [ - "Schemas" - ] + "tags": ["Schemas"] }, "post": { "operationId": "SchemasController_createSchema", @@ -251,9 +249,7 @@ } } }, - "tags": [ - "Schemas" - ] + "tags": ["Schemas"] } }, "/v1/schemas/{id}": { @@ -348,9 +344,7 @@ } } }, - "tags": [ - "Schemas" - ] + "tags": ["Schemas"] } }, "/v1/schemas/get-dids-for-schema/{id}": { @@ -383,9 +377,7 @@ "total_credential_defs": 1, "principalDids": [ { - "loremIpsumCredDef": [ - "1234did" - ] + "loremIpsumCredDef": ["1234did"] } ] } @@ -429,9 +421,7 @@ } } }, - "tags": [ - "Schemas" - ] + "tags": ["Schemas"] } }, "/v1/create-offer-credential": { @@ -569,9 +559,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/create-propose-credential": { @@ -692,9 +680,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/accept-request/{credentialId}": { @@ -708,9 +694,7 @@ "description": "" } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/accept-proposal/{credentialId}": { @@ -724,9 +708,7 @@ "description": "" } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/accept-offer/{credentialId}": { @@ -740,9 +722,7 @@ "description": "" } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/accept-credential/{credentialId}": { @@ -756,9 +736,7 @@ "description": "" } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/credential-info/{id}": { @@ -799,9 +777,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/delete-credential/{id}": { @@ -844,9 +820,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/credential": { @@ -1008,9 +982,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/credential/{id}": { @@ -1082,9 +1054,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/updateSchemaIdByType": { @@ -1166,9 +1136,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/credentialType": { @@ -1227,9 +1195,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] }, "get": { "operationId": "AttestationController_getCredentialTypeAttributes", @@ -1304,9 +1270,7 @@ } } }, - "tags": [ - "Credentials" - ] + "tags": ["Credentials"] } }, "/v1/credentialDef": { @@ -1416,9 +1380,7 @@ } } }, - "tags": [ - "Credential Definitions" - ] + "tags": ["Credential Definitions"] }, "post": { "operationId": "CredentialDefController_createCredentialDef", @@ -1515,9 +1477,7 @@ } } }, - "tags": [ - "Credential Definitions" - ] + "tags": ["Credential Definitions"] } }, "/v1/credentialDef/{id}": { @@ -1605,9 +1565,7 @@ } } }, - "tags": [ - "Credential Definitions" - ] + "tags": ["Credential Definitions"] } }, "/v1/userInfo": { @@ -1631,9 +1589,7 @@ "description": "" } }, - "tags": [ - "userInfo (to be deprecated)" - ] + "tags": ["userInfo (to be deprecated)"] } } }, @@ -1669,12 +1625,7 @@ "type": "string" } }, - "required": [ - "name", - "createdBy", - "version", - "attributes" - ] + "required": ["name", "createdBy", "version", "attributes"] }, "CredentialPreviewAttributes": { "type": "object", @@ -1686,10 +1637,7 @@ "type": "string" } }, - "required": [ - "name", - "value" - ] + "required": ["name", "value"] }, "OfferCredentialDto": { "type": "object", @@ -1755,9 +1703,7 @@ "type": "string" } }, - "required": [ - "schemaId" - ] + "required": ["schemaId"] }, "CredentialTypeDto": { "type": "object", @@ -1769,10 +1715,7 @@ "type": "string" } }, - "required": [ - "type", - "schemaId" - ] + "required": ["type", "schemaId"] }, "CredentialDefDto": { "type": "object", @@ -1822,11 +1765,7 @@ "properties": {} } }, - "required": [ - "connectionId", - "autoAcceptCredential", - "userInfo" - ] + "required": ["connectionId", "autoAcceptCredential", "userInfo"] } } } diff --git a/apps/connection-manager/GDPR.md b/apps/connection-manager/GDPR.md index ee20399b90c412e6d6bcbe896b2a4a9acc1e46eb..6ffb8825b9df532e1a928d51896a3ec586be2fb5 100644 --- a/apps/connection-manager/GDPR.md +++ b/apps/connection-manager/GDPR.md @@ -1,11 +1,15 @@ # GDPR Compliance Document + The objective of this document is to detail, the data being stored and proccessed by the Organization Credential Manager's, Connection Manger. ## What information is stored + ### Source User Information + The email id received from the user. ### Technical User Information (Public) + - DID of the OCM agent - DID of the other participant in the connection - Connection Status @@ -14,10 +18,13 @@ The email id received from the user. - Holder email as well as wallet name is stored in DB ## How is the information stored + The Source User Information and Technical User Information is encrypted using the Private Key of the Organizations SSI Agent and stored internally (on the agent) on PostgreSQL and externally/ metadata (shared between the OCM services) on PostgreSQL of Organization. ## Who can access the information + The Source User Information and Technical User Information both are accessible only by the Organization specific SSI agent's private key. -## How long will the information stay +## How long will the information stay + The Source User Information and Technical User Information is wiped out according to the retention periods (not defined yet). diff --git a/apps/connection-manager/Gaia-x Connection Manager API.postman_collection.json b/apps/connection-manager/Gaia-x Connection Manager API.postman_collection.json index 201a66918deb464b641847eee3f8fe5b9079aefe..003cab2a15419bd00164653b972274faeb5b2666 100644 --- a/apps/connection-manager/Gaia-x Connection Manager API.postman_collection.json +++ b/apps/connection-manager/Gaia-x Connection Manager API.postman_collection.json @@ -1,673 +1,611 @@ { - "info": { - "_postman_id": "1da5476b-7f1e-4a30-8dba-b348f7ac6672", - "name": "Gaia-x Connection Manager API", - "description": "API documentation for GAIA-X Connection Manager", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "10250261" - }, - "item": [ - { - "name": "Fetch connection by connection id", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/connections/adede599-a398-49ea-b115-b8522d17f714", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "connections", - "adede599-a398-49ea-b115-b8522d17f714" - ] - } - }, - "response": [ - { - "name": "Fetch connection by connection id", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/connections/adede599-a398-49ea-b115-b8522d17f714", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "connections", - "adede599-a398-49ea-b115-b8522d17f714" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 02:02:41 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "430" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"1ae-MrfZd4/V8Lo8suMlUBONZ1OD7d4\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"records\": {\n \"id\": \"5457aa3a-9885-4f2c-83c4-54189102dcb2\",\n \"connectionId\": \"adede599-a398-49ea-b115-b8522d17f714\",\n \"status\": \"trusted\",\n \"participantDid\": \"5hfjHDaZMTknD4kVApcXnC\",\n \"theirDid\": \"UZkhCWb66vXWpDiBK6jJD9\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-04-05T10:06:13.140Z\",\n \"updatedDate\": \"2023-04-05T10:06:13.761Z\",\n \"isActive\": true,\n \"isReceived\": true\n }\n }\n}" - } - ] - }, - { - "name": "Fetch list of connections with pagination and queries", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/connections?page=0&pageSize=25&status&participantDID", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "connections" - ], - "query": [ - { - "key": "page", - "value": "0" - }, - { - "key": "pageSize", - "value": "25" - }, - { - "key": "status", - "value": null - }, - { - "key": "participantDID", - "value": null - } - ] - } - }, - "response": [ - { - "name": "Fetch list of connections with pagination and queries", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/connections?page=0&pageSize=25&status&participantDID", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "connections" - ], - "query": [ - { - "key": "page", - "value": "0" - }, - { - "key": "pageSize", - "value": "25" - }, - { - "key": "status", - "value": null - }, - { - "key": "participantDID", - "value": null - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 02:00:49 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "8254" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"203e-T9AKdRFxK834ZNwao8c6y6TX3wc\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"count\": 232,\n \"records\": [\n {\n \"id\": \"008e3953-15d9-421c-ba30-3b06661595fe\",\n \"connectionId\": \"a11a0f89-bdc7-468d-a76f-0f2652af1447\",\n \"status\": \"invited\",\n \"participantDid\": \"PYk6P7VfYMHTEqdnQBEtuY\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-04-06T11:36:24.395Z\",\n \"updatedDate\": \"2023-04-06T11:36:24.395Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"015b95e0-6a43-4b11-9d2d-89e17fddfcc2\",\n \"connectionId\": \"c3d767ea-9e02-4076-8e92-d2a7942e4800\",\n \"status\": \"invited\",\n \"participantDid\": \"9obzVbmTx3oCNLoQeKdS1U\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-23T07:52:11.931Z\",\n \"updatedDate\": \"2023-03-23T07:52:11.931Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0215762c-e581-46e5-a789-4ff13adc3dff\",\n \"connectionId\": \"52ae2374-4c9e-4abd-9da5-aabe98d6acb4\",\n \"status\": \"invited\",\n \"participantDid\": \"Lg6tP3d456p6oyereiCiKU\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T09:28:45.850Z\",\n \"updatedDate\": \"2023-05-10T09:28:45.850Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"02c81e42-7cfa-47fa-a819-dfbc14042ec2\",\n \"connectionId\": \"7cb7cdec-fd69-4c3a-93f4-ab3f85bfa7cb\",\n \"status\": \"invited\",\n \"participantDid\": \"HJ66AqHk4fpvbPXUjb9VqN\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-09T10:24:37.644Z\",\n \"updatedDate\": \"2023-03-09T10:24:37.644Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"03563562-d0dc-4c0d-804a-42adbfd4ea4d\",\n \"connectionId\": \"9d756266-f9fc-4a12-88b2-5123166aebae\",\n \"status\": \"invited\",\n \"participantDid\": \"FTzEn6oyH6peQigjc5pyxp\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-22T13:24:10.790Z\",\n \"updatedDate\": \"2023-03-22T13:24:10.790Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"049020d5-8c21-4ea0-89b0-39426e385c73\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"status\": \"trusted\",\n \"participantDid\": \"95GnbqtZSARbgVDRgstB6A\",\n \"theirDid\": \"QhiAVXCFc4aFeo8Xeio7cD\",\n \"theirLabel\": \"cef7d748-0e1e-409d-a992-eed8fde1f603\",\n \"createdDate\": \"2023-05-09T13:32:59.666Z\",\n \"updatedDate\": \"2023-05-09T13:43:19.978Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"04f11557-4157-4083-a73f-f6c1dc233583\",\n \"connectionId\": \"058d420f-af66-4489-be17-2e5bcdd4d7cd\",\n \"status\": \"trusted\",\n \"participantDid\": \"Fkr8PoGdHGHPEHsUiZpVD2\",\n \"theirDid\": \"Ue61ZtAw1RVzfU42JHbXcU\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-05-09T08:20:47.044Z\",\n \"updatedDate\": \"2023-05-09T08:20:48.154Z\",\n \"isActive\": true,\n \"isReceived\": true\n },\n {\n \"id\": \"04f7aa6c-dcc2-4a3c-9300-9b21e8045a17\",\n \"connectionId\": \"2de29e2f-50cc-45f2-95ef-1770bc3c7b9d\",\n \"status\": \"trusted\",\n \"participantDid\": \"Mmik8v2w5DrZdi755maeFJ\",\n \"theirDid\": \"Ud2wNAWLFEaBaRvdUKwwVa\",\n \"theirLabel\": \"557a4089-4e72-402c-8422-5ddaac2f3d1b\",\n \"createdDate\": \"2023-03-27T07:35:28.046Z\",\n \"updatedDate\": \"2023-03-27T07:35:38.401Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"055ad5f4-d9f3-46e0-9279-8f8c3071ae32\",\n \"connectionId\": \"7e44f02f-9c4f-4c65-a028-d2f90f907ee5\",\n \"status\": \"trusted\",\n \"participantDid\": \"5rBDJq3yK3MLCe8pny4kLz\",\n \"theirDid\": \"RbaMdHuU8PNAHYi2YouicD\",\n \"theirLabel\": \"44f30cb6-7b3b-4a84-861b-767fe670ce26\",\n \"createdDate\": \"2023-05-22T13:47:45.062Z\",\n \"updatedDate\": \"2023-05-22T13:48:16.503Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"0605a933-8f4c-4cd4-b816-79bc17ebc47a\",\n \"connectionId\": \"d8f473d7-1055-4512-bd27-60394314ef2f\",\n \"status\": \"invited\",\n \"participantDid\": \"WBduFTtbz3si6RnebYh91m\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-07T08:09:36.156Z\",\n \"updatedDate\": \"2023-03-07T08:09:36.156Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"06954fec-600c-4d97-81e3-b65d2c8a4d90\",\n \"connectionId\": \"98e3538d-bb71-44e3-8ee4-4999ab357e8c\",\n \"status\": \"invited\",\n \"participantDid\": \"PafruvwBVEqSWJtXCq16Ge\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-22T10:27:14.205Z\",\n \"updatedDate\": \"2023-05-22T10:27:14.205Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0804f8c0-9aff-43c6-a473-344369c9ddc7\",\n \"connectionId\": \"92ffb41e-0190-4731-99ca-af4308b0357a\",\n \"status\": \"complete\",\n \"participantDid\": \"TBkKc84kS2DELsDceQDHFh\",\n \"theirDid\": \"8qcNQgxQfAGJYa8mjgvjfB\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-04-24T09:17:55.082Z\",\n \"updatedDate\": \"2023-04-24T09:20:49.861Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"08b49296-5adb-416a-ba63-7d36cef4d6cd\",\n \"connectionId\": \"6bf8ecb9-4ce2-4fd7-8eec-73094fd118fc\",\n \"status\": \"trusted\",\n \"participantDid\": \"QZQH23QAKuMJxzwUQpXQUG\",\n \"theirDid\": \"31sxM8gpGFTU7YZ58q7rMB\",\n \"theirLabel\": \"e9cbfec0-6575-4025-aa6e-bedf7b7c5938\",\n \"createdDate\": \"2023-05-15T11:29:05.256Z\",\n \"updatedDate\": \"2023-05-15T11:29:10.037Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"09e6e5c4-2b4e-4610-82e9-7dac9435fd59\",\n \"connectionId\": \"14e554fe-c9da-4881-afe7-1d92bffe6eb6\",\n \"status\": \"requested\",\n \"participantDid\": \"My7fYuLyF7ptsMnBn5d7xH\",\n \"theirDid\": \"\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-05-09T11:15:42.452Z\",\n \"updatedDate\": \"2023-05-09T11:15:42.557Z\",\n \"isActive\": false,\n \"isReceived\": true\n },\n {\n \"id\": \"0b3435e3-cbed-4635-ab55-cacdaafbc1cb\",\n \"connectionId\": \"cdca3644-2147-47ce-abd4-7a82e6195d19\",\n \"status\": \"trusted\",\n \"participantDid\": \"8qcNQgxQfAGJYa8mjgvjfB\",\n \"theirDid\": \"TBkKc84kS2DELsDceQDHFh\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-04-24T09:20:48.866Z\",\n \"updatedDate\": \"2023-04-24T09:20:49.758Z\",\n \"isActive\": true,\n \"isReceived\": true\n },\n {\n \"id\": \"0ba240e7-0663-4220-b32c-6e9beaf8a39b\",\n \"connectionId\": \"3020b9cc-51c8-4ae7-9fa5-05f873260a6e\",\n \"status\": \"invited\",\n \"participantDid\": \"97rZZnBjDiQWVkNEu5kxoP\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-04-06T11:43:20.246Z\",\n \"updatedDate\": \"2023-04-06T11:43:20.246Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0c0baac0-b452-46de-8796-a841e7661cb8\",\n \"connectionId\": \"f97bbf2b-9186-4326-80f6-d4235ef019b2\",\n \"status\": \"invited\",\n \"participantDid\": \"9bHihwYECeRbDyAWzGYrkR\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-04-04T14:40:22.948Z\",\n \"updatedDate\": \"2023-04-04T14:40:22.948Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0d2ac070-b316-4d48-9c49-bcd68e626f00\",\n \"connectionId\": \"88f8d883-f5fc-4781-9a4c-04238fcd233b\",\n \"status\": \"invited\",\n \"participantDid\": \"66WLh3hCCSehqE4QoeLKD2\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T09:31:21.937Z\",\n \"updatedDate\": \"2023-05-10T09:31:21.937Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0d44b8f7-e703-405d-ac48-f33e5261bda5\",\n \"connectionId\": \"e823cd0b-8bd3-46f7-9866-a949f8adb493\",\n \"status\": \"invited\",\n \"participantDid\": \"C9rZe9uuw9ogqw8FHPJx28\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-25T14:57:16.527Z\",\n \"updatedDate\": \"2023-03-25T14:57:16.527Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0e5bce8f-4c92-4583-8413-11701f49fd14\",\n \"connectionId\": \"77bf538d-e2ae-4310-a45f-a4a51f26f02f\",\n \"status\": \"complete\",\n \"participantDid\": \"QLLQtZxcq7g8exUMYCAzJL\",\n \"theirDid\": \"2mcHSKBnpbQzzq7Kte8Fbi\",\n \"theirLabel\": \"de3d717c-fcb0-49fb-8bff-1e5a4acdc280\",\n \"createdDate\": \"2023-05-22T01:42:55.707Z\",\n \"updatedDate\": \"2023-05-22T01:43:24.442Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0e7aae40-202d-4d12-968e-b93eab0858eb\",\n \"connectionId\": \"c4326fe8-dfb0-4c3c-9e26-068e01733abc\",\n \"status\": \"invited\",\n \"participantDid\": \"3ADpcR1D11ozo5UNWurLVY\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T12:19:56.914Z\",\n \"updatedDate\": \"2023-05-10T12:19:56.913Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"10bf37e2-f5b5-4e97-9c87-6e09bf723bce\",\n \"connectionId\": \"4aa93902-729d-42ad-b224-c21390055bdf\",\n \"status\": \"invited\",\n \"participantDid\": \"Kq7H3nDWnQhXYe5yosR1J7\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T09:57:05.517Z\",\n \"updatedDate\": \"2023-05-10T09:57:05.517Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"10dea699-a127-4082-b25e-68c128c937ee\",\n \"connectionId\": \"df7a1b85-ea59-40fc-9520-6ae59651eda0\",\n \"status\": \"invited\",\n \"participantDid\": \"Xekj3zM5wUQ1jvaL4cv4Ay\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-07T08:11:02.103Z\",\n \"updatedDate\": \"2023-03-07T08:11:02.103Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"114e8be7-49cd-4581-9675-06650833f1f1\",\n \"connectionId\": \"655fdf48-6ff9-4451-9f73-88621750a3fa\",\n \"status\": \"invited\",\n \"participantDid\": \"BrMoyqzb92hX6Xm2t6wNs5\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-27T07:20:27.591Z\",\n \"updatedDate\": \"2023-03-27T07:20:27.591Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"11def929-68a8-4464-bae6-e9bed225c68d\",\n \"connectionId\": \"61154910-3a13-4e65-b151-d0b9dfec9ecf\",\n \"status\": \"invited\",\n \"participantDid\": \"KDeiHYWP2Y5YgXSPbaZAW4\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-30T11:12:13.346Z\",\n \"updatedDate\": \"2023-03-30T11:12:13.346Z\",\n \"isActive\": false,\n \"isReceived\": false\n }\n ]\n }\n}" - } - ] - }, - { - "name": "Fetch connection information by query id or did ", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/connection-information?connectionId=6a625623-1ae1-4c26-ae9e-8ae7043a439a&did", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "connection-information" - ], - "query": [ - { - "key": "connectionId", - "value": "6a625623-1ae1-4c26-ae9e-8ae7043a439a" - }, - { - "key": "did", - "value": null - } - ] - } - }, - "response": [ - { - "name": "Fetch connection information by query id or did ", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/connection-information?connectionId=6a625623-1ae1-4c26-ae9e-8ae7043a439a&did", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "connection-information" - ], - "query": [ - { - "key": "connectionId", - "value": "6a625623-1ae1-4c26-ae9e-8ae7043a439a" - }, - { - "key": "did", - "value": null - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 02:09:45 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "1294" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"50e-QdCj91548b/gSNWPOH6hEgXsq6k\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection information fetch successfully\",\n \"data\": {\n \"records\": {\n \"issueCredentials\": [\n {\n \"id\": \"d1b0a2e0-2d42-40c2-a1bf-f00187ac34c1\",\n \"credentialId\": \"abfd32ca-80fc-439d-ab62-1e19f909f670\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:46833:OCM1-passport\",\n \"threadId\": \"619094b6-dae4-4d35-83f6-bd3ef9a78ff3\",\n \"state\": \"done\",\n \"principalDid\": \"QhiAVXCFc4aFeo8Xeio7cD\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"createdDate\": \"2023-05-09T13:41:15.067Z\",\n \"updatedDate\": \"2023-05-09T13:41:29.640Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"8658a92b-807b-4627-a180-d9f8fd2389b5\",\n \"credentialId\": \"047978b7-ea0f-4ed9-92df-7bd01a91576b\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:50014:LoginCredentials2\",\n \"threadId\": \"f3d65d44-0735-4712-a9db-5dfb2489a58d\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"QhiAVXCFc4aFeo8Xeio7cD\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"createdDate\": \"2023-05-22T07:19:37.637Z\",\n \"updatedDate\": \"2023-05-22T07:19:37.638Z\",\n \"expirationDate\": null\n }\n ],\n \"presentProofs\": [\n {\n \"id\": \"1daf4f41-d12e-40b0-8ff0-e03436735ade\",\n \"proofRecordId\": \"8eb6beb7-3f38-4482-90c4-14b27342b35f\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"done\",\n \"createdDate\": \"2023-05-09T13:42:09.025Z\",\n \"updatedDate\": \"2023-05-09T13:43:19.967Z\"\n }\n ]\n }\n }\n}" - } - ] - }, - { - "name": "Accept connection invitation", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"invitationUrl\": \"https://ssi-dev.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJmYzM1ODNhYi1kZjEyLTRiNmEtOGYxYi0yY2I2NTk1NWFkMzIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiOEoxVWdoRmFpZ3NUWDlKeHhuV1haUkRzWUtHdU53dDlFRkY5dXN6Q1h0dDQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9zc2ktZGV2LnZlcmVpZ24uY29tOjQ0My9vY20vZGlkY29tbSIsInJvdXRpbmdLZXlzIjpbXX0\",\n \"autoAcceptConnection\": true\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/accept-connection-invitation", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-connection-invitation" - ] - } - }, - "response": [ - { - "name": "Accept connection invitation", - "originalRequest": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"invitationUrl\": \"https://ssi-dev.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJmYzM1ODNhYi1kZjEyLTRiNmEtOGYxYi0yY2I2NTk1NWFkMzIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiOEoxVWdoRmFpZ3NUWDlKeHhuV1haUkRzWUtHdU53dDlFRkY5dXN6Q1h0dDQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9zc2ktZGV2LnZlcmVpZ24uY29tOjQ0My9vY20vZGlkY29tbSIsInJvdXRpbmdLZXlzIjpbXX0\",\n \"autoAcceptConnection\": true\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/accept-connection-invitation", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-connection-invitation" - ] - } - }, - "status": "Accepted", - "code": 202, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 02:12:02 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "1477" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"5c5-XLhvcE9qBLdJDJdTDANXXroqTQY\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 202,\n \"message\": \"Accepted Connection Request\",\n \"data\": {\n \"_tags\": {\n \"state\": \"invited\",\n \"verkey\": \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\",\n \"role\": \"invitee\",\n \"invitationKey\": \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n },\n \"metadata\": {},\n \"id\": \"85ee9709-639e-44b7-aaca-93aa1a7c8db5\",\n \"createdAt\": \"2023-06-02T02:12:01.910Z\",\n \"did\": \"U1ghVZwqoDcv55uVjiiGRZ\",\n \"didDoc\": {\n \"@context\": \"https://w3id.org/did/v1\",\n \"publicKey\": [\n {\n \"id\": \"U1ghVZwqoDcv55uVjiiGRZ#1\",\n \"controller\": \"U1ghVZwqoDcv55uVjiiGRZ\",\n \"type\": \"Ed25519VerificationKey2018\",\n \"publicKeyBase58\": \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\"\n }\n ],\n \"service\": [\n {\n \"id\": \"U1ghVZwqoDcv55uVjiiGRZ#IndyAgentService\",\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"type\": \"IndyAgent\",\n \"priority\": 0,\n \"recipientKeys\": [\n \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\"\n ],\n \"routingKeys\": []\n }\n ],\n \"authentication\": [\n {\n \"publicKey\": \"U1ghVZwqoDcv55uVjiiGRZ#1\",\n \"type\": \"Ed25519SignatureAuthentication2018\"\n }\n ],\n \"id\": \"U1ghVZwqoDcv55uVjiiGRZ\"\n },\n \"verkey\": \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"state\": \"requested\",\n \"role\": \"invitee\",\n \"alias\": \"connection-received\",\n \"autoAcceptConnection\": true,\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"fc3583ab-df12-4b6a-8f1b-2cb65955ad32\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"multiUseInvitation\": false\n }\n}" - } - ] - }, - { - "name": "Health check", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/health", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "health" - ] - } - }, - "response": [ - { - "name": "Health check", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/health", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "health" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 01:57:14 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "93" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"5d-6fAWdfgLj4ONHU0kBMP++Ryy1mQ\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Fri Jun 02 2023 01:57:14 GMT+0000 (Coordinated Universal Time)\"\n}" - } - ] - }, - { - "name": "Create new connection invitation", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"autoAcceptConnection\": true\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/invitation-url?alias=trust", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "invitation-url" - ], - "query": [ - { - "key": "alias", - "value": "trust" - } - ] - } - }, - "response": [ - { - "name": "Create new connection invitation", - "originalRequest": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"autoAcceptConnection\": true\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/invitation-url?alias=trust", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "invitation-url" - ], - "query": [ - { - "key": "alias", - "value": "trust" - } - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 01:58:59 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "2137" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"859-jOPeDmwN60Q2TJ0P9cGI3mOlf2A\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection created successfully\",\n \"data\": {\n \"invitationUrl\": \"https://ssi-dev.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJmYzM1ODNhYi1kZjEyLTRiNmEtOGYxYi0yY2I2NTk1NWFkMzIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiOEoxVWdoRmFpZ3NUWDlKeHhuV1haUkRzWUtHdU53dDlFRkY5dXN6Q1h0dDQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9zc2ktZGV2LnZlcmVpZ24uY29tOjQ0My9vY20vZGlkY29tbSIsInJvdXRpbmdLZXlzIjpbXX0\",\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"fc3583ab-df12-4b6a-8f1b-2cb65955ad32\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"connection\": {\n \"_tags\": {},\n \"metadata\": {},\n \"id\": \"2078a34b-a7fe-4e22-91fc-9797c0b42505\",\n \"createdAt\": \"2023-06-02T01:58:58.280Z\",\n \"did\": \"EP7amWYvKAUL4t3iS7vc1m\",\n \"didDoc\": {\n \"@context\": \"https://w3id.org/did/v1\",\n \"publicKey\": [\n {\n \"id\": \"EP7amWYvKAUL4t3iS7vc1m#1\",\n \"controller\": \"EP7amWYvKAUL4t3iS7vc1m\",\n \"type\": \"Ed25519VerificationKey2018\",\n \"publicKeyBase58\": \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n }\n ],\n \"service\": [\n {\n \"id\": \"EP7amWYvKAUL4t3iS7vc1m#IndyAgentService\",\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"type\": \"IndyAgent\",\n \"priority\": 0,\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"routingKeys\": []\n }\n ],\n \"authentication\": [\n {\n \"publicKey\": \"EP7amWYvKAUL4t3iS7vc1m#1\",\n \"type\": \"Ed25519SignatureAuthentication2018\"\n }\n ],\n \"id\": \"EP7amWYvKAUL4t3iS7vc1m\"\n },\n \"verkey\": \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\",\n \"state\": \"invited\",\n \"role\": \"inviter\",\n \"alias\": \"trust\",\n \"autoAcceptConnection\": true,\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"fc3583ab-df12-4b6a-8f1b-2cb65955ad32\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"multiUseInvitation\": false\n },\n \"invitationUrlShort\": \"https://ssi-dev.vereign.com/ocm/connection/v1/url/d82b96f4-5966-4ada-a171-88dd4f80394a\"\n }\n}" - } - ] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "key": "baseUrl", - "value": "https://ssi-dev.vereign.com/ocm/connection" - } - ] -} \ No newline at end of file + "info": { + "_postman_id": "1da5476b-7f1e-4a30-8dba-b348f7ac6672", + "name": "Gaia-x Connection Manager API", + "description": "API documentation for GAIA-X Connection Manager", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "10250261" + }, + "item": [ + { + "name": "Fetch connection by connection id", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/connections/adede599-a398-49ea-b115-b8522d17f714", + "host": ["{{baseUrl}}"], + "path": ["v1", "connections", "adede599-a398-49ea-b115-b8522d17f714"] + } + }, + "response": [ + { + "name": "Fetch connection by connection id", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/connections/adede599-a398-49ea-b115-b8522d17f714", + "host": ["{{baseUrl}}"], + "path": [ + "v1", + "connections", + "adede599-a398-49ea-b115-b8522d17f714" + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 02:02:41 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "430" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"1ae-MrfZd4/V8Lo8suMlUBONZ1OD7d4\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"records\": {\n \"id\": \"5457aa3a-9885-4f2c-83c4-54189102dcb2\",\n \"connectionId\": \"adede599-a398-49ea-b115-b8522d17f714\",\n \"status\": \"trusted\",\n \"participantDid\": \"5hfjHDaZMTknD4kVApcXnC\",\n \"theirDid\": \"UZkhCWb66vXWpDiBK6jJD9\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-04-05T10:06:13.140Z\",\n \"updatedDate\": \"2023-04-05T10:06:13.761Z\",\n \"isActive\": true,\n \"isReceived\": true\n }\n }\n}" + } + ] + }, + { + "name": "Fetch list of connections with pagination and queries", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/connections?page=0&pageSize=25&status&participantDID", + "host": ["{{baseUrl}}"], + "path": ["v1", "connections"], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "pageSize", + "value": "25" + }, + { + "key": "status", + "value": null + }, + { + "key": "participantDID", + "value": null + } + ] + } + }, + "response": [ + { + "name": "Fetch list of connections with pagination and queries", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/connections?page=0&pageSize=25&status&participantDID", + "host": ["{{baseUrl}}"], + "path": ["v1", "connections"], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "pageSize", + "value": "25" + }, + { + "key": "status", + "value": null + }, + { + "key": "participantDID", + "value": null + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 02:00:49 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "8254" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"203e-T9AKdRFxK834ZNwao8c6y6TX3wc\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"count\": 232,\n \"records\": [\n {\n \"id\": \"008e3953-15d9-421c-ba30-3b06661595fe\",\n \"connectionId\": \"a11a0f89-bdc7-468d-a76f-0f2652af1447\",\n \"status\": \"invited\",\n \"participantDid\": \"PYk6P7VfYMHTEqdnQBEtuY\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-04-06T11:36:24.395Z\",\n \"updatedDate\": \"2023-04-06T11:36:24.395Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"015b95e0-6a43-4b11-9d2d-89e17fddfcc2\",\n \"connectionId\": \"c3d767ea-9e02-4076-8e92-d2a7942e4800\",\n \"status\": \"invited\",\n \"participantDid\": \"9obzVbmTx3oCNLoQeKdS1U\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-23T07:52:11.931Z\",\n \"updatedDate\": \"2023-03-23T07:52:11.931Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0215762c-e581-46e5-a789-4ff13adc3dff\",\n \"connectionId\": \"52ae2374-4c9e-4abd-9da5-aabe98d6acb4\",\n \"status\": \"invited\",\n \"participantDid\": \"Lg6tP3d456p6oyereiCiKU\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T09:28:45.850Z\",\n \"updatedDate\": \"2023-05-10T09:28:45.850Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"02c81e42-7cfa-47fa-a819-dfbc14042ec2\",\n \"connectionId\": \"7cb7cdec-fd69-4c3a-93f4-ab3f85bfa7cb\",\n \"status\": \"invited\",\n \"participantDid\": \"HJ66AqHk4fpvbPXUjb9VqN\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-09T10:24:37.644Z\",\n \"updatedDate\": \"2023-03-09T10:24:37.644Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"03563562-d0dc-4c0d-804a-42adbfd4ea4d\",\n \"connectionId\": \"9d756266-f9fc-4a12-88b2-5123166aebae\",\n \"status\": \"invited\",\n \"participantDid\": \"FTzEn6oyH6peQigjc5pyxp\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-22T13:24:10.790Z\",\n \"updatedDate\": \"2023-03-22T13:24:10.790Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"049020d5-8c21-4ea0-89b0-39426e385c73\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"status\": \"trusted\",\n \"participantDid\": \"95GnbqtZSARbgVDRgstB6A\",\n \"theirDid\": \"QhiAVXCFc4aFeo8Xeio7cD\",\n \"theirLabel\": \"cef7d748-0e1e-409d-a992-eed8fde1f603\",\n \"createdDate\": \"2023-05-09T13:32:59.666Z\",\n \"updatedDate\": \"2023-05-09T13:43:19.978Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"04f11557-4157-4083-a73f-f6c1dc233583\",\n \"connectionId\": \"058d420f-af66-4489-be17-2e5bcdd4d7cd\",\n \"status\": \"trusted\",\n \"participantDid\": \"Fkr8PoGdHGHPEHsUiZpVD2\",\n \"theirDid\": \"Ue61ZtAw1RVzfU42JHbXcU\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-05-09T08:20:47.044Z\",\n \"updatedDate\": \"2023-05-09T08:20:48.154Z\",\n \"isActive\": true,\n \"isReceived\": true\n },\n {\n \"id\": \"04f7aa6c-dcc2-4a3c-9300-9b21e8045a17\",\n \"connectionId\": \"2de29e2f-50cc-45f2-95ef-1770bc3c7b9d\",\n \"status\": \"trusted\",\n \"participantDid\": \"Mmik8v2w5DrZdi755maeFJ\",\n \"theirDid\": \"Ud2wNAWLFEaBaRvdUKwwVa\",\n \"theirLabel\": \"557a4089-4e72-402c-8422-5ddaac2f3d1b\",\n \"createdDate\": \"2023-03-27T07:35:28.046Z\",\n \"updatedDate\": \"2023-03-27T07:35:38.401Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"055ad5f4-d9f3-46e0-9279-8f8c3071ae32\",\n \"connectionId\": \"7e44f02f-9c4f-4c65-a028-d2f90f907ee5\",\n \"status\": \"trusted\",\n \"participantDid\": \"5rBDJq3yK3MLCe8pny4kLz\",\n \"theirDid\": \"RbaMdHuU8PNAHYi2YouicD\",\n \"theirLabel\": \"44f30cb6-7b3b-4a84-861b-767fe670ce26\",\n \"createdDate\": \"2023-05-22T13:47:45.062Z\",\n \"updatedDate\": \"2023-05-22T13:48:16.503Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"0605a933-8f4c-4cd4-b816-79bc17ebc47a\",\n \"connectionId\": \"d8f473d7-1055-4512-bd27-60394314ef2f\",\n \"status\": \"invited\",\n \"participantDid\": \"WBduFTtbz3si6RnebYh91m\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-07T08:09:36.156Z\",\n \"updatedDate\": \"2023-03-07T08:09:36.156Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"06954fec-600c-4d97-81e3-b65d2c8a4d90\",\n \"connectionId\": \"98e3538d-bb71-44e3-8ee4-4999ab357e8c\",\n \"status\": \"invited\",\n \"participantDid\": \"PafruvwBVEqSWJtXCq16Ge\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-22T10:27:14.205Z\",\n \"updatedDate\": \"2023-05-22T10:27:14.205Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0804f8c0-9aff-43c6-a473-344369c9ddc7\",\n \"connectionId\": \"92ffb41e-0190-4731-99ca-af4308b0357a\",\n \"status\": \"complete\",\n \"participantDid\": \"TBkKc84kS2DELsDceQDHFh\",\n \"theirDid\": \"8qcNQgxQfAGJYa8mjgvjfB\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-04-24T09:17:55.082Z\",\n \"updatedDate\": \"2023-04-24T09:20:49.861Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"08b49296-5adb-416a-ba63-7d36cef4d6cd\",\n \"connectionId\": \"6bf8ecb9-4ce2-4fd7-8eec-73094fd118fc\",\n \"status\": \"trusted\",\n \"participantDid\": \"QZQH23QAKuMJxzwUQpXQUG\",\n \"theirDid\": \"31sxM8gpGFTU7YZ58q7rMB\",\n \"theirLabel\": \"e9cbfec0-6575-4025-aa6e-bedf7b7c5938\",\n \"createdDate\": \"2023-05-15T11:29:05.256Z\",\n \"updatedDate\": \"2023-05-15T11:29:10.037Z\",\n \"isActive\": true,\n \"isReceived\": false\n },\n {\n \"id\": \"09e6e5c4-2b4e-4610-82e9-7dac9435fd59\",\n \"connectionId\": \"14e554fe-c9da-4881-afe7-1d92bffe6eb6\",\n \"status\": \"requested\",\n \"participantDid\": \"My7fYuLyF7ptsMnBn5d7xH\",\n \"theirDid\": \"\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-05-09T11:15:42.452Z\",\n \"updatedDate\": \"2023-05-09T11:15:42.557Z\",\n \"isActive\": false,\n \"isReceived\": true\n },\n {\n \"id\": \"0b3435e3-cbed-4635-ab55-cacdaafbc1cb\",\n \"connectionId\": \"cdca3644-2147-47ce-abd4-7a82e6195d19\",\n \"status\": \"trusted\",\n \"participantDid\": \"8qcNQgxQfAGJYa8mjgvjfB\",\n \"theirDid\": \"TBkKc84kS2DELsDceQDHFh\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"createdDate\": \"2023-04-24T09:20:48.866Z\",\n \"updatedDate\": \"2023-04-24T09:20:49.758Z\",\n \"isActive\": true,\n \"isReceived\": true\n },\n {\n \"id\": \"0ba240e7-0663-4220-b32c-6e9beaf8a39b\",\n \"connectionId\": \"3020b9cc-51c8-4ae7-9fa5-05f873260a6e\",\n \"status\": \"invited\",\n \"participantDid\": \"97rZZnBjDiQWVkNEu5kxoP\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-04-06T11:43:20.246Z\",\n \"updatedDate\": \"2023-04-06T11:43:20.246Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0c0baac0-b452-46de-8796-a841e7661cb8\",\n \"connectionId\": \"f97bbf2b-9186-4326-80f6-d4235ef019b2\",\n \"status\": \"invited\",\n \"participantDid\": \"9bHihwYECeRbDyAWzGYrkR\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-04-04T14:40:22.948Z\",\n \"updatedDate\": \"2023-04-04T14:40:22.948Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0d2ac070-b316-4d48-9c49-bcd68e626f00\",\n \"connectionId\": \"88f8d883-f5fc-4781-9a4c-04238fcd233b\",\n \"status\": \"invited\",\n \"participantDid\": \"66WLh3hCCSehqE4QoeLKD2\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T09:31:21.937Z\",\n \"updatedDate\": \"2023-05-10T09:31:21.937Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0d44b8f7-e703-405d-ac48-f33e5261bda5\",\n \"connectionId\": \"e823cd0b-8bd3-46f7-9866-a949f8adb493\",\n \"status\": \"invited\",\n \"participantDid\": \"C9rZe9uuw9ogqw8FHPJx28\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-25T14:57:16.527Z\",\n \"updatedDate\": \"2023-03-25T14:57:16.527Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0e5bce8f-4c92-4583-8413-11701f49fd14\",\n \"connectionId\": \"77bf538d-e2ae-4310-a45f-a4a51f26f02f\",\n \"status\": \"complete\",\n \"participantDid\": \"QLLQtZxcq7g8exUMYCAzJL\",\n \"theirDid\": \"2mcHSKBnpbQzzq7Kte8Fbi\",\n \"theirLabel\": \"de3d717c-fcb0-49fb-8bff-1e5a4acdc280\",\n \"createdDate\": \"2023-05-22T01:42:55.707Z\",\n \"updatedDate\": \"2023-05-22T01:43:24.442Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"0e7aae40-202d-4d12-968e-b93eab0858eb\",\n \"connectionId\": \"c4326fe8-dfb0-4c3c-9e26-068e01733abc\",\n \"status\": \"invited\",\n \"participantDid\": \"3ADpcR1D11ozo5UNWurLVY\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T12:19:56.914Z\",\n \"updatedDate\": \"2023-05-10T12:19:56.913Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"10bf37e2-f5b5-4e97-9c87-6e09bf723bce\",\n \"connectionId\": \"4aa93902-729d-42ad-b224-c21390055bdf\",\n \"status\": \"invited\",\n \"participantDid\": \"Kq7H3nDWnQhXYe5yosR1J7\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-05-10T09:57:05.517Z\",\n \"updatedDate\": \"2023-05-10T09:57:05.517Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"10dea699-a127-4082-b25e-68c128c937ee\",\n \"connectionId\": \"df7a1b85-ea59-40fc-9520-6ae59651eda0\",\n \"status\": \"invited\",\n \"participantDid\": \"Xekj3zM5wUQ1jvaL4cv4Ay\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-07T08:11:02.103Z\",\n \"updatedDate\": \"2023-03-07T08:11:02.103Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"114e8be7-49cd-4581-9675-06650833f1f1\",\n \"connectionId\": \"655fdf48-6ff9-4451-9f73-88621750a3fa\",\n \"status\": \"invited\",\n \"participantDid\": \"BrMoyqzb92hX6Xm2t6wNs5\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-27T07:20:27.591Z\",\n \"updatedDate\": \"2023-03-27T07:20:27.591Z\",\n \"isActive\": false,\n \"isReceived\": false\n },\n {\n \"id\": \"11def929-68a8-4464-bae6-e9bed225c68d\",\n \"connectionId\": \"61154910-3a13-4e65-b151-d0b9dfec9ecf\",\n \"status\": \"invited\",\n \"participantDid\": \"KDeiHYWP2Y5YgXSPbaZAW4\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2023-03-30T11:12:13.346Z\",\n \"updatedDate\": \"2023-03-30T11:12:13.346Z\",\n \"isActive\": false,\n \"isReceived\": false\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Fetch connection information by query id or did ", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/connection-information?connectionId=6a625623-1ae1-4c26-ae9e-8ae7043a439a&did", + "host": ["{{baseUrl}}"], + "path": ["v1", "connection-information"], + "query": [ + { + "key": "connectionId", + "value": "6a625623-1ae1-4c26-ae9e-8ae7043a439a" + }, + { + "key": "did", + "value": null + } + ] + } + }, + "response": [ + { + "name": "Fetch connection information by query id or did ", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/connection-information?connectionId=6a625623-1ae1-4c26-ae9e-8ae7043a439a&did", + "host": ["{{baseUrl}}"], + "path": ["v1", "connection-information"], + "query": [ + { + "key": "connectionId", + "value": "6a625623-1ae1-4c26-ae9e-8ae7043a439a" + }, + { + "key": "did", + "value": null + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 02:09:45 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "1294" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"50e-QdCj91548b/gSNWPOH6hEgXsq6k\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection information fetch successfully\",\n \"data\": {\n \"records\": {\n \"issueCredentials\": [\n {\n \"id\": \"d1b0a2e0-2d42-40c2-a1bf-f00187ac34c1\",\n \"credentialId\": \"abfd32ca-80fc-439d-ab62-1e19f909f670\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:46833:OCM1-passport\",\n \"threadId\": \"619094b6-dae4-4d35-83f6-bd3ef9a78ff3\",\n \"state\": \"done\",\n \"principalDid\": \"QhiAVXCFc4aFeo8Xeio7cD\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"createdDate\": \"2023-05-09T13:41:15.067Z\",\n \"updatedDate\": \"2023-05-09T13:41:29.640Z\",\n \"expirationDate\": null\n },\n {\n \"id\": \"8658a92b-807b-4627-a180-d9f8fd2389b5\",\n \"credentialId\": \"047978b7-ea0f-4ed9-92df-7bd01a91576b\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:50014:LoginCredentials2\",\n \"threadId\": \"f3d65d44-0735-4712-a9db-5dfb2489a58d\",\n \"state\": \"offer-sent\",\n \"principalDid\": \"QhiAVXCFc4aFeo8Xeio7cD\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"createdDate\": \"2023-05-22T07:19:37.637Z\",\n \"updatedDate\": \"2023-05-22T07:19:37.638Z\",\n \"expirationDate\": null\n }\n ],\n \"presentProofs\": [\n {\n \"id\": \"1daf4f41-d12e-40b0-8ff0-e03436735ade\",\n \"proofRecordId\": \"8eb6beb7-3f38-4482-90c4-14b27342b35f\",\n \"connectionId\": \"6a625623-1ae1-4c26-ae9e-8ae7043a439a\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"done\",\n \"createdDate\": \"2023-05-09T13:42:09.025Z\",\n \"updatedDate\": \"2023-05-09T13:43:19.967Z\"\n }\n ]\n }\n }\n}" + } + ] + }, + { + "name": "Accept connection invitation", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"invitationUrl\": \"https://ssi-dev.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJmYzM1ODNhYi1kZjEyLTRiNmEtOGYxYi0yY2I2NTk1NWFkMzIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiOEoxVWdoRmFpZ3NUWDlKeHhuV1haUkRzWUtHdU53dDlFRkY5dXN6Q1h0dDQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9zc2ktZGV2LnZlcmVpZ24uY29tOjQ0My9vY20vZGlkY29tbSIsInJvdXRpbmdLZXlzIjpbXX0\",\n \"autoAcceptConnection\": true\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/accept-connection-invitation", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-connection-invitation"] + } + }, + "response": [ + { + "name": "Accept connection invitation", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"invitationUrl\": \"https://ssi-dev.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJmYzM1ODNhYi1kZjEyLTRiNmEtOGYxYi0yY2I2NTk1NWFkMzIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiOEoxVWdoRmFpZ3NUWDlKeHhuV1haUkRzWUtHdU53dDlFRkY5dXN6Q1h0dDQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9zc2ktZGV2LnZlcmVpZ24uY29tOjQ0My9vY20vZGlkY29tbSIsInJvdXRpbmdLZXlzIjpbXX0\",\n \"autoAcceptConnection\": true\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/accept-connection-invitation", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-connection-invitation"] + } + }, + "status": "Accepted", + "code": 202, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 02:12:02 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "1477" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"5c5-XLhvcE9qBLdJDJdTDANXXroqTQY\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 202,\n \"message\": \"Accepted Connection Request\",\n \"data\": {\n \"_tags\": {\n \"state\": \"invited\",\n \"verkey\": \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\",\n \"role\": \"invitee\",\n \"invitationKey\": \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n },\n \"metadata\": {},\n \"id\": \"85ee9709-639e-44b7-aaca-93aa1a7c8db5\",\n \"createdAt\": \"2023-06-02T02:12:01.910Z\",\n \"did\": \"U1ghVZwqoDcv55uVjiiGRZ\",\n \"didDoc\": {\n \"@context\": \"https://w3id.org/did/v1\",\n \"publicKey\": [\n {\n \"id\": \"U1ghVZwqoDcv55uVjiiGRZ#1\",\n \"controller\": \"U1ghVZwqoDcv55uVjiiGRZ\",\n \"type\": \"Ed25519VerificationKey2018\",\n \"publicKeyBase58\": \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\"\n }\n ],\n \"service\": [\n {\n \"id\": \"U1ghVZwqoDcv55uVjiiGRZ#IndyAgentService\",\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"type\": \"IndyAgent\",\n \"priority\": 0,\n \"recipientKeys\": [\n \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\"\n ],\n \"routingKeys\": []\n }\n ],\n \"authentication\": [\n {\n \"publicKey\": \"U1ghVZwqoDcv55uVjiiGRZ#1\",\n \"type\": \"Ed25519SignatureAuthentication2018\"\n }\n ],\n \"id\": \"U1ghVZwqoDcv55uVjiiGRZ\"\n },\n \"verkey\": \"Fitz5HGemw3rW1agFPZ222LAsAQHSB7Q4NPdtM8uCfx4\",\n \"theirLabel\": \"ssi-abstraction-agent\",\n \"state\": \"requested\",\n \"role\": \"invitee\",\n \"alias\": \"connection-received\",\n \"autoAcceptConnection\": true,\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"fc3583ab-df12-4b6a-8f1b-2cb65955ad32\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"multiUseInvitation\": false\n }\n}" + } + ] + }, + { + "name": "Health check", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/health", + "host": ["{{baseUrl}}"], + "path": ["v1", "health"] + } + }, + "response": [ + { + "name": "Health check", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/health", + "host": ["{{baseUrl}}"], + "path": ["v1", "health"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 01:57:14 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "93" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"5d-6fAWdfgLj4ONHU0kBMP++Ryy1mQ\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Fri Jun 02 2023 01:57:14 GMT+0000 (Coordinated Universal Time)\"\n}" + } + ] + }, + { + "name": "Create new connection invitation", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"autoAcceptConnection\": true\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/invitation-url?alias=trust", + "host": ["{{baseUrl}}"], + "path": ["v1", "invitation-url"], + "query": [ + { + "key": "alias", + "value": "trust" + } + ] + } + }, + "response": [ + { + "name": "Create new connection invitation", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"autoAcceptConnection\": true\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/invitation-url?alias=trust", + "host": ["{{baseUrl}}"], + "path": ["v1", "invitation-url"], + "query": [ + { + "key": "alias", + "value": "trust" + } + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 01:58:59 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "2137" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"859-jOPeDmwN60Q2TJ0P9cGI3mOlf2A\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection created successfully\",\n \"data\": {\n \"invitationUrl\": \"https://ssi-dev.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJmYzM1ODNhYi1kZjEyLTRiNmEtOGYxYi0yY2I2NTk1NWFkMzIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiOEoxVWdoRmFpZ3NUWDlKeHhuV1haUkRzWUtHdU53dDlFRkY5dXN6Q1h0dDQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9zc2ktZGV2LnZlcmVpZ24uY29tOjQ0My9vY20vZGlkY29tbSIsInJvdXRpbmdLZXlzIjpbXX0\",\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"fc3583ab-df12-4b6a-8f1b-2cb65955ad32\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"connection\": {\n \"_tags\": {},\n \"metadata\": {},\n \"id\": \"2078a34b-a7fe-4e22-91fc-9797c0b42505\",\n \"createdAt\": \"2023-06-02T01:58:58.280Z\",\n \"did\": \"EP7amWYvKAUL4t3iS7vc1m\",\n \"didDoc\": {\n \"@context\": \"https://w3id.org/did/v1\",\n \"publicKey\": [\n {\n \"id\": \"EP7amWYvKAUL4t3iS7vc1m#1\",\n \"controller\": \"EP7amWYvKAUL4t3iS7vc1m\",\n \"type\": \"Ed25519VerificationKey2018\",\n \"publicKeyBase58\": \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n }\n ],\n \"service\": [\n {\n \"id\": \"EP7amWYvKAUL4t3iS7vc1m#IndyAgentService\",\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"type\": \"IndyAgent\",\n \"priority\": 0,\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"routingKeys\": []\n }\n ],\n \"authentication\": [\n {\n \"publicKey\": \"EP7amWYvKAUL4t3iS7vc1m#1\",\n \"type\": \"Ed25519SignatureAuthentication2018\"\n }\n ],\n \"id\": \"EP7amWYvKAUL4t3iS7vc1m\"\n },\n \"verkey\": \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\",\n \"state\": \"invited\",\n \"role\": \"inviter\",\n \"alias\": \"trust\",\n \"autoAcceptConnection\": true,\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"fc3583ab-df12-4b6a-8f1b-2cb65955ad32\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"8J1UghFaigsTX9JxxnWXZRDsYKGuNwt9EFF9uszCXtt4\"\n ],\n \"serviceEndpoint\": \"https://ssi-dev.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"multiUseInvitation\": false\n },\n \"invitationUrlShort\": \"https://ssi-dev.vereign.com/ocm/connection/v1/url/d82b96f4-5966-4ada-a171-88dd4f80394a\"\n }\n}" + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [""] + } + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "https://ssi-dev.vereign.com/ocm/connection" + } + ] +} diff --git a/apps/connection-manager/README.md b/apps/connection-manager/README.md index 3de3c80dc98b7af47adfe1894150fd8ce3fc05f2..927fcc8d707fffe56c9c4d615e86ec607cf96913 100644 --- a/apps/connection-manager/README.md +++ b/apps/connection-manager/README.md @@ -1,45 +1,46 @@ # OCM Connection Manager ## Description + <hr/> The connection manager is the microservice responsible for handling the features related to connection between aries agents. The service implements REST endpoints, events and calls to other services related to connections in the Organizational Credential Manager. #### Security note -`Man in the mid` security concern will be address in Phase II of of the project. It was discussed multiple times, and one of the options is to use [TRAIN API](https://train.trust-scheme.de/info/) . +`Man in the mid` security concern will be address in Phase II of of the project. It was discussed multiple times, and one of the options is to use [TRAIN API](https://train.trust-scheme.de/info/) . ## Usage -<hr/> +<hr/> -### Swagger Documentation: +### Swagger Documentation: [Swagger/OpenAPI](swagger.json) ## Installation -<hr/> +<hr/> ### Pre-requisites -* pnpm -* docker -* docker-compose -* postgres -* NATS Server +- pnpm +- docker +- docker-compose +- postgres +- NATS Server ### OCM Services Dependencies -* SSI Abstraction -* Principal Manager -* Attestation Manager -* Proof Manager +- SSI Abstraction +- Principal Manager +- Attestation Manager +- Proof Manager ## Running the app -<hr/> +<hr/> **Each service in the Organizational Credential Manager can be run from the infrastructure repository with Docker.** @@ -52,20 +53,24 @@ The service implements REST endpoints, events and calls to other services relate ./deployment/dev ``` -* (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles. +- (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles. + +- Run while in **"infrastructure"** project: -* Run while in **"infrastructure"** project: ```bash $ docker-compose up --build conn-m ``` + to run only Connection Manager or + ```bash $ docker-compose up --build ``` -to run all the services. +to run all the services. ### Environment variables required + ``` 1. PORT 2. DATABASE_URL @@ -74,6 +79,7 @@ to run all the services. ``` ### Outgoing communication services + ``` 1. PRINCIPAL MANAGER 2. ATTESTATION MANAGER @@ -81,6 +87,7 @@ to run all the services. ``` ### Incoming communication services + ``` 1. SSI-ABSTRACTION 2. PROOF MANAGER @@ -88,6 +95,7 @@ to run all the services. ``` ### Supported features + ``` 1. Nats endpoint to update connection status 2. Create invitation URL. @@ -99,6 +107,7 @@ to run all the services. ``` ## Test + <hr/> ```bash @@ -113,18 +122,19 @@ $ pnpm test:cov ``` ## GDPR + <hr/> [GDPR](GDPR.md) ## Dependencies + <hr/> [Dependencies](package.json) ## License + <hr/> [Apache 2.0 license](LICENSE) - - diff --git a/apps/connection-manager/deployment/helm/Chart.yaml b/apps/connection-manager/deployment/helm/Chart.yaml index 873412abfc15f6891e56fd3a5b4671576eb907e0..ded5c674eeb8be2f2a3baa5f5a07c9e0d033e17e 100644 --- a/apps/connection-manager/deployment/helm/Chart.yaml +++ b/apps/connection-manager/deployment/helm/Chart.yaml @@ -3,4 +3,4 @@ appVersion: v1.0.7-rc description: connection-manager deployment name: connection-manager version: 1.0.7 -icon: "https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg" +icon: 'https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg' diff --git a/apps/connection-manager/deployment/helm/README.md b/apps/connection-manager/deployment/helm/README.md index 0964aca0e3147c6937106d28185817f18dafde9d..a91c4f35da12ec57c534102781a5fb70dd603a03 100644 --- a/apps/connection-manager/deployment/helm/README.md +++ b/apps/connection-manager/deployment/helm/README.md @@ -6,59 +6,60 @@ connection-manager deployment ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| autoscaling.enabled | bool | `false` | Enable autoscaling | -| autoscaling.maxReplicas | int | `3` | Maximum replicas | -| autoscaling.minReplicas | int | `1` | Minimum replicas | -| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger | -| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger | -| connectionManager.agent.host | string | `"ssi-abstraction"` | | -| connectionManager.agent.port | int | `3010` | | -| connectionManager.agent.protocol | string | `"http"` | | -| connectionManager.database.db | string | `"ocm_connection_manager"` | | -| connectionManager.database.host | string | `"postgresql-postgresql-ha-postgresql.infra"` | | -| connectionManager.database.password | string | `"ocm_connection_manager"` | | -| connectionManager.database.port | int | `5432` | | -| connectionManager.database.schema | string | `"connection"` | | -| connectionManager.database.user | string | `"ocm_connection_manager"` | | -| connectionManager.elastic.port | int | `9200` | | -| connectionManager.elastic.protocol | string | `"http"` | | -| connectionManager.elastic.url | string | `"elasticsearch"` | | -| connectionManager.nats.port | int | `4222` | | -| connectionManager.nats.protocol | string | `"nats"` | | -| connectionManager.nats.url | string | `"nats"` | | -| image.name | string | `"gaiax/connection-manager"` | Image name | -| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | -| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used | -| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` | | -| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty | -| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty | -| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` | | -| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | | -| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` | | -| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | -| ingress.enabled | bool | `true` | | -| ingress.frontendDomain | string | `"gaiax.vereign.com"` | | -| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` | | -| ingress.pathOverride | string | `""` | | -| ingress.tlsEnabled | bool | `true` | | -| log.encoding | string | `"json"` | | -| log.level | string | `"INFO"` | | -| metrics.enabled | bool | `true` | Enable prometheus metrics | -| metrics.port | int | `2112` | Port for prometheus metrics | -| name | string | `"connection-manager"` | Application name | -| nameOverride | string | `""` | Ovverwrites application name | -| podAnnotations | object | `{}` | | -| replicaCount | int | `1` | Default number of instances to start | -| resources.limits.cpu | string | `"150m"` | | -| resources.limits.memory | string | `"128Mi"` | | -| resources.requests.cpu | string | `"25m"` | | -| resources.requests.memory | string | `"64Mi"` | | -| security.runAsGid | int | `0` | Group used by the apps | -| security.runAsNonRoot | bool | `false` | by default, apps run as non-root | -| security.runAsUid | int | `0` | User used by the apps | -| service.port | int | `3003` | | +| Key | Type | Default | Description | +| ----------------------------------------------------------------- | ------ | --------------------------------------------- | -------------------------------------------------------------- | +| autoscaling.enabled | bool | `false` | Enable autoscaling | +| autoscaling.maxReplicas | int | `3` | Maximum replicas | +| autoscaling.minReplicas | int | `1` | Minimum replicas | +| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger | +| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger | +| connectionManager.agent.host | string | `"ssi-abstraction"` | | +| connectionManager.agent.port | int | `3010` | | +| connectionManager.agent.protocol | string | `"http"` | | +| connectionManager.database.db | string | `"ocm_connection_manager"` | | +| connectionManager.database.host | string | `"postgresql-postgresql-ha-postgresql.infra"` | | +| connectionManager.database.password | string | `"ocm_connection_manager"` | | +| connectionManager.database.port | int | `5432` | | +| connectionManager.database.schema | string | `"connection"` | | +| connectionManager.database.user | string | `"ocm_connection_manager"` | | +| connectionManager.elastic.port | int | `9200` | | +| connectionManager.elastic.protocol | string | `"http"` | | +| connectionManager.elastic.url | string | `"elasticsearch"` | | +| connectionManager.nats.port | int | `4222` | | +| connectionManager.nats.protocol | string | `"nats"` | | +| connectionManager.nats.url | string | `"nats"` | | +| image.name | string | `"gaiax/connection-manager"` | Image name | +| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | +| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used | +| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` | | +| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty | +| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty | +| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` | | +| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | | +| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` | | +| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | +| ingress.enabled | bool | `true` | | +| ingress.frontendDomain | string | `"gaiax.vereign.com"` | | +| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` | | +| ingress.pathOverride | string | `""` | | +| ingress.tlsEnabled | bool | `true` | | +| log.encoding | string | `"json"` | | +| log.level | string | `"INFO"` | | +| metrics.enabled | bool | `true` | Enable prometheus metrics | +| metrics.port | int | `2112` | Port for prometheus metrics | +| name | string | `"connection-manager"` | Application name | +| nameOverride | string | `""` | Ovverwrites application name | +| podAnnotations | object | `{}` | | +| replicaCount | int | `1` | Default number of instances to start | +| resources.limits.cpu | string | `"150m"` | | +| resources.limits.memory | string | `"128Mi"` | | +| resources.requests.cpu | string | `"25m"` | | +| resources.requests.memory | string | `"64Mi"` | | +| security.runAsGid | int | `0` | Group used by the apps | +| security.runAsNonRoot | bool | `false` | by default, apps run as non-root | +| security.runAsUid | int | `0` | User used by the apps | +| service.port | int | `3003` | | + +--- ----------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0) diff --git a/apps/connection-manager/deployment/helm/templates/service.yaml b/apps/connection-manager/deployment/helm/templates/service.yaml index 21c57ac87992e185f824c0c8c9fbf8ab19b289d2..387c8d480b51f5312086a6510081bdac85c6b0c9 100644 --- a/apps/connection-manager/deployment/helm/templates/service.yaml +++ b/apps/connection-manager/deployment/helm/templates/service.yaml @@ -1,16 +1,13 @@ apiVersion: v1 kind: Service metadata: - name: {{ template "app.name" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "app.labels" . | nindent 4 }} + name: { { template "app.name" . } } + namespace: { { .Release.Namespace } } + labels: { { - include "app.labels" . | nindent 4 } } spec: clusterIP: None ports: - - name: http - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.port }} - selector: - {{- include "app.selectorLabels" . | nindent 4 }} - + - name: http + port: { { .Values.service.port } } + targetPort: { { .Values.service.port } } + selector: { { - include "app.selectorLabels" . | nindent 4 } } diff --git a/apps/connection-manager/deployment/helm/values-override.yaml b/apps/connection-manager/deployment/helm/values-override.yaml index 111febba8e8159fe0080c2dc731154ec7898ea16..e9afa0fd3cfcf20c0a71934f2a820b0461775b62 100644 --- a/apps/connection-manager/deployment/helm/values-override.yaml +++ b/apps/connection-manager/deployment/helm/values-override.yaml @@ -1,38 +1,38 @@ image: - repository: registry.gitlab.com/gaia-x/data-infrastructure-federation-services/ocm - # -- Image name - name: connection-manager + repository: registry.gitlab.com/gaia-x/data-infrastructure-federation-services/ocm + # -- Image name + name: connection-manager connectionManager: - database: - host: vereign-database1-postgres.gxfs-vereign - user: ENC[AES256_GCM,data:f+UtjwOUiyM=,iv:X/7E+GBmxxVdphMTChhhrCjT/01cLFwh62vhJApJkWA=,tag:oM0vFH3KSpFTBjeRi40oJA==,type:str] - password: ENC[AES256_GCM,data:iHEwZCuABQy0RMrDGeq3QEL874JgbQWC+7WQ49TW62Ynh/isVvo0kv8FR/rXRrUks3IlTIGWncj+JnIDQkODMg==,iv:4Lza3vwWDJPTPPYwgmTvrnMLrkQBYa5mnrn9HbQd2oQ=,tag:s6f9IVyJMdqu2NXtt0tuQg==,type:str] - db: vereign-database1-postgres + database: + host: vereign-database1-postgres.gxfs-vereign + user: ENC[AES256_GCM,data:f+UtjwOUiyM=,iv:X/7E+GBmxxVdphMTChhhrCjT/01cLFwh62vhJApJkWA=,tag:oM0vFH3KSpFTBjeRi40oJA==,type:str] + password: ENC[AES256_GCM,data:iHEwZCuABQy0RMrDGeq3QEL874JgbQWC+7WQ49TW62Ynh/isVvo0kv8FR/rXRrUks3IlTIGWncj+JnIDQkODMg==,iv:4Lza3vwWDJPTPPYwgmTvrnMLrkQBYa5mnrn9HbQd2oQ=,tag:s6f9IVyJMdqu2NXtt0tuQg==,type:str] + db: vereign-database1-postgres ingress: - enabled: true - annotations: - kubernetes.io/ingress.class: nginx - nginx.ingress.kubernetes.io/rewrite-target: /$2 - tlsEnabled: true - frontendDomain: ocm.gxfs.dev - frontendTlsSecretName: wildcard-gxfs-dev + enabled: true + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/rewrite-target: /$2 + tlsEnabled: true + frontendDomain: ocm.gxfs.dev + frontendTlsSecretName: wildcard-gxfs-dev sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1nrk70nevtmrcgzjunsed43ar6dk3e06qt7tryqqprj9axv4e0djqa0n0cg - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVHQvUk4xOXBHZjBhT0ly - R1pVeUVtU09mYmppb2hucktLeUx2bGtsUXhJCkdUKzQ5TlNCbzFBTWV4L3REMFlR - bS9nWUxWZ3JERW81QWtCQXJxU3Uzd3MKLS0tIDdmZXdGemdjYzZ5QU11QVVtYnBz - WUROeFJTV0cxYnA4MTREcVlVYkhSZmMKDqEoHpnkE6AbTn1RHDn0G6u3XmeCSaTk - smByqqxfWePRPIul8VTlKnDNN68iQuK7Xxmj3RV7LTSj60XwdeIKuQ== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2022-08-03T14:42:58Z" - mac: ENC[AES256_GCM,data:arq9lpFfu4WBPXPiaIgT/tdRQcBv15SB2sgaD9GBlTL+dVxAuZcDiWTykzWaxpvExf8aGv3flGCMYkQlil1u1YGdlIk7TfUHa+elta/US1QVYCJznChdV4UCSLm8PRh4sg9DWRFgrtxfs6IKhEOq17DwpGc1hVAFjNjUHgvPCFg=,iv:+GvCbcxPBJkzZu5TIZ7oGtCsSa8Fl9Qt6mGi6If2wds=,tag:8Lka/tG40HYjR7Uhn9jyig==,type:str] - pgp: [] - encrypted_regex: ^(password|user)$ - version: 3.7.3 + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1nrk70nevtmrcgzjunsed43ar6dk3e06qt7tryqqprj9axv4e0djqa0n0cg + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBVHQvUk4xOXBHZjBhT0ly + R1pVeUVtU09mYmppb2hucktLeUx2bGtsUXhJCkdUKzQ5TlNCbzFBTWV4L3REMFlR + bS9nWUxWZ3JERW81QWtCQXJxU3Uzd3MKLS0tIDdmZXdGemdjYzZ5QU11QVVtYnBz + WUROeFJTV0cxYnA4MTREcVlVYkhSZmMKDqEoHpnkE6AbTn1RHDn0G6u3XmeCSaTk + smByqqxfWePRPIul8VTlKnDNN68iQuK7Xxmj3RV7LTSj60XwdeIKuQ== + -----END AGE ENCRYPTED FILE----- + lastmodified: '2022-08-03T14:42:58Z' + mac: ENC[AES256_GCM,data:arq9lpFfu4WBPXPiaIgT/tdRQcBv15SB2sgaD9GBlTL+dVxAuZcDiWTykzWaxpvExf8aGv3flGCMYkQlil1u1YGdlIk7TfUHa+elta/US1QVYCJznChdV4UCSLm8PRh4sg9DWRFgrtxfs6IKhEOq17DwpGc1hVAFjNjUHgvPCFg=,iv:+GvCbcxPBJkzZu5TIZ7oGtCsSa8Fl9Qt6mGi6If2wds=,tag:8Lka/tG40HYjR7Uhn9jyig==,type:str] + pgp: [] + encrypted_regex: ^(password|user)$ + version: 3.7.3 diff --git a/apps/connection-manager/deployment/helm/values.yaml b/apps/connection-manager/deployment/helm/values.yaml index aeee0f94732f9950171638e82cf7651b11b3744c..0c33a16d503ec447ab5f5dd936c27f1257f9825f 100644 --- a/apps/connection-manager/deployment/helm/values.yaml +++ b/apps/connection-manager/deployment/helm/values.yaml @@ -1,9 +1,9 @@ -# -- Default number of instances to start +# -- Default number of instances to start replicaCount: 1 # -- Application name name: connection-manager # -- Ovverwrites application name -nameOverride: "" +nameOverride: '' image: repository: eu.gcr.io/vrgn-infra-prj @@ -11,16 +11,15 @@ image: name: gaiax/connection-manager # -- Image tag # Uses .Chart.AppVersion if empty - tag: "" + tag: '' # -- Image sha, usually generated by the CI # Uses image.tag if empty - sha: "" + sha: '' # -- Image pull policy pullPolicy: IfNotPresent # -- Image pull secret when internal image is used pullSecrets: deployment-key-light - podAnnotations: {} ## ## Pass extra environment variables to the container. @@ -67,7 +66,7 @@ metrics: port: 2112 log: - level: "INFO" + level: 'INFO' encoding: json ## @@ -114,4 +113,4 @@ ingress: tlsEnabled: true frontendDomain: gaiax.vereign.com frontendTlsSecretName: cert-manager-tls - pathOverride: "" \ No newline at end of file + pathOverride: '' diff --git a/apps/connection-manager/swagger.json b/apps/connection-manager/swagger.json index 0a3f284d4a124eb0385ec9c0eb69ff4865237256..c6beb679382514405e7cd606d6f5010d29080623 100644 --- a/apps/connection-manager/swagger.json +++ b/apps/connection-manager/swagger.json @@ -67,9 +67,7 @@ "@type": "https://didcomm.org/connections/1.0/invitation", "@id": "efe3fe97", "label": "ssi-abstraction-agent", - "recipientKeys": [ - "8iT6AAmbj9P" - ], + "recipientKeys": ["8iT6AAmbj9P"], "serviceEndpoint": "https://serviceEndpointUrl.com:443/ocm/didcomm", "routingKeys": [] }, @@ -95,9 +93,7 @@ "serviceEndpoint": "https://serviceEndpointUrl.com:443/ocm/didcomm", "type": "IndyAgent", "priority": 0, - "recipientKeys": [ - "8iT6AAmbj9P" - ], + "recipientKeys": ["8iT6AAmbj9P"], "routingKeys": [] } ], @@ -117,9 +113,7 @@ "@type": "https://didcomm.org/connections/1.0/invitation", "@id": "efe3fe97", "label": "ssi-abstraction-agent", - "recipientKeys": [ - "8iT6AAmbj9P" - ], + "recipientKeys": ["8iT6AAmbj9P"], "serviceEndpoint": "https://serviceEndpointUrl.com:443/ocm/didcomm", "routingKeys": [] }, @@ -166,9 +160,7 @@ } } }, - "tags": [ - "Connections" - ] + "tags": ["Connections"] } }, "/v1/connection-information": { @@ -243,9 +235,7 @@ } } }, - "tags": [ - "Connections" - ] + "tags": ["Connections"] } }, "/v1/connections": { @@ -330,9 +320,7 @@ } } }, - "tags": [ - "Connections" - ] + "tags": ["Connections"] } }, "/v1/connections/{connectionId}": { @@ -392,9 +380,7 @@ } } }, - "tags": [ - "Connections" - ] + "tags": ["Connections"] } }, "/v1/accept-connection-invitation": { @@ -451,9 +437,7 @@ "serviceEndpoint": "https://serviceEndpointUrl.com:443/ocm/didcomm", "type": "IndyAgent", "priority": 0, - "recipientKeys": [ - "F6d" - ], + "recipientKeys": ["F6d"], "routingKeys": [] } ], @@ -475,9 +459,7 @@ "@type": "https://didcomm.org/connections/1.0/invitation", "@id": "12ebbf61", "label": "ssi-abstraction-agent", - "recipientKeys": [ - "5Nj" - ], + "recipientKeys": ["5Nj"], "serviceEndpoint": "https://serviceEndpointUrl.com:443/ocm/didcomm", "routingKeys": [] }, @@ -507,9 +489,7 @@ } } }, - "tags": [ - "Connections" - ] + "tags": ["Connections"] } } }, @@ -539,12 +519,7 @@ "type": "string" } }, - "required": [ - "autoAcceptConnection", - "alias", - "myLabel", - "myImageUrl" - ] + "required": ["autoAcceptConnection", "alias", "myLabel", "myImageUrl"] }, "AcceptConnectionInvitationBody": { "type": "object", @@ -556,10 +531,7 @@ "type": "boolean" } }, - "required": [ - "invitationUrl", - "autoAcceptConnection" - ] + "required": ["invitationUrl", "autoAcceptConnection"] } } } diff --git a/apps/proof-manager/GDPR.md b/apps/proof-manager/GDPR.md index bd343ebe87a10f02ed3016d0522292cb10015209..2b0ee008e995a47859b2dd8687239404bfd89203 100644 --- a/apps/proof-manager/GDPR.md +++ b/apps/proof-manager/GDPR.md @@ -1,21 +1,28 @@ # GDPR Compliance Document + The objective of this document is to detail, the data being stored and proccessed by the Organization Credential Manager's, Proof Manger. ## What information is stored + ### Source User Information + No personal data is accessed or processed ### Technical User Information (Public) + Schema id Presentation ids and states DID of requester Created/updated dates ## How is the information stored + The Technical User Information is encrypted using the Private Key of the Organizations SSI Agent and stored internally (on the agent) on PostgreSQL and externally/ metadata (shared between the OCM services) on PostgreSQL of Organization. ## Who can access the information + The Technical User Information both are accessible only by the Organization specific SSI agent's private key. -## How long will the information stay -The Technical User Information is wiped out according to the retention periods (not defined yet). \ No newline at end of file +## How long will the information stay + +The Technical User Information is wiped out according to the retention periods (not defined yet). diff --git a/apps/proof-manager/Gaia-x Proof Manager API.postman_collection.json b/apps/proof-manager/Gaia-x Proof Manager API.postman_collection.json index 9bae7aa5319cd45e28df67119f8217187bc40729..85be30ab148aea5db881000871180166d9e74e21 100644 --- a/apps/proof-manager/Gaia-x Proof Manager API.postman_collection.json +++ b/apps/proof-manager/Gaia-x Proof Manager API.postman_collection.json @@ -1,646 +1,561 @@ { - "info": { - "_postman_id": "8cdaf3fb-ded2-4518-8464-c196c01c622f", - "name": "Gaia-x Proof Manager API", - "description": "API documentation for GAIA-X Proof Manager", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "10250261" - }, - "item": [ - { - "name": "Get full url from short url id", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{baseUrl}}/v1/url/:id", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "url", - ":id" - ], - "variable": [ - { - "key": "id", - "value": "<string>" - } - ] - } - }, - "response": [] - }, - { - "name": "Send presentation request", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"comment\": \"Proof Presenation\",\n \"attributes\": [\n {\n \"schemaId\": \"\",\n \"credentialDefId\": \"{{cred-def-id}}\",\n \"attributeName\": \"fName\",\n \"value\": \"\",\n \"condition\": \"\"\n },\n {\n \"schemaId\": \"\",\n \"credentialDefId\": \"{{pcm-vc-cred-def-id}}\",\n \"attributeName\": \"email\",\n \"value\": \"\",\n \"condition\": \"\"\n }\n ],\n \"connectionId\": \"{{conn-id}}\"\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/send-presentation-request", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "send-presentation-request" - ] - } - }, - "response": [] - }, - { - "name": "Send out of band presentation request", - "request": { - "method": "POST", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - }, - { - "key": "Accept", - "value": "application/json" - } - ], - "body": { - "mode": "raw", - "raw": "{\n \"comment\": \"<string>\",\n \"schemaId\": \"<string>\",\n \"options\": {},\n \"attributes\": [\n \"<string>\",\n \"<string>\"\n ]\n}", - "options": { - "raw": { - "headerFamily": "json", - "language": "json" - } - } - }, - "url": { - "raw": "{{baseUrl}}/v1/send-out-of-band-presentation-request", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "send-out-of-band-presentation-request" - ] - } - }, - "response": [] - }, - { - "name": "Send out of band proof", - "request": { - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/out-of-band-proof", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "out-of-band-proof" - ] - } - }, - "response": [] - }, - { - "name": "Health check", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/health", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "health" - ] - } - }, - "response": [] - }, - { - "name": "Search proof request information using pagination and queries", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/find-proof-presentation?page=0&pageSize=25&proofRecordId&connectionId&credentialDefId&schemaId&theirDid&status&createdDateStart=2023-03-05T08:36:19.170Z&createdDateEnd&updatedDateStart&updatedDateEnd", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "find-proof-presentation" - ], - "query": [ - { - "key": "page", - "value": "0" - }, - { - "key": "pageSize", - "value": "25" - }, - { - "key": "proofRecordId", - "value": null - }, - { - "key": "connectionId", - "value": null - }, - { - "key": "credentialDefId", - "value": null - }, - { - "key": "schemaId", - "value": null - }, - { - "key": "theirDid", - "value": null - }, - { - "key": "status", - "value": null - }, - { - "key": "createdDateStart", - "value": "2023-03-05T08:36:19.170Z" - }, - { - "key": "createdDateEnd", - "value": null - }, - { - "key": "updatedDateStart", - "value": null - }, - { - "key": "updatedDateEnd", - "value": null - } - ] - } - }, - "response": [ - { - "name": "Search proof request information using pagination and queries", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/find-proof-presentation?page=0&pageSize=25&proofRecordId&connectionId&credentialDefId&schemaId&theirDid&status&createdDateStart=2023-03-05T08:36:19.170Z&createdDateEnd&updatedDateStart&updatedDateEnd", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "find-proof-presentation" - ], - "query": [ - { - "key": "page", - "value": "0" - }, - { - "key": "pageSize", - "value": "25" - }, - { - "key": "proofRecordId", - "value": null - }, - { - "key": "connectionId", - "value": null - }, - { - "key": "credentialDefId", - "value": null - }, - { - "key": "schemaId", - "value": null - }, - { - "key": "theirDid", - "value": null - }, - { - "key": "status", - "value": null - }, - { - "key": "createdDateStart", - "value": "2023-03-05T08:36:19.170Z" - }, - { - "key": "createdDateEnd", - "value": null - }, - { - "key": "updatedDateStart", - "value": null - }, - { - "key": "updatedDateEnd", - "value": null - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 06:10:41 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "7522" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"1d62-eeaYumJatMrJi96zaADgb+qSzt0\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentations fetched successfully\",\n \"data\": {\n \"count\": 664,\n \"records\": [\n {\n \"id\": \"001ad97f-78f4-41f1-8a69-e03eefe4136a\",\n \"proofRecordId\": \"6b19a270-3448-4055-97b7-81fb42113688\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:36:19.170Z\",\n \"updatedDate\": \"2023-04-05T08:36:19.170Z\"\n },\n {\n \"id\": \"00bc3f5c-d42f-424c-8db5-2b7fe4f2118f\",\n \"proofRecordId\": \"f9ff0dae-f74c-4ae4-b164-adcbe2e85192\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-06T11:39:24.077Z\",\n \"updatedDate\": \"2023-04-06T11:39:24.077Z\"\n },\n {\n \"id\": \"0117964f-96d4-461d-903c-31e9e4ad9f5f\",\n \"proofRecordId\": \"54673c3c-0325-45cd-b39e-2a77007958a7\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:55.339Z\",\n \"updatedDate\": \"2023-04-05T08:02:55.339Z\"\n },\n {\n \"id\": \"017b6c72-7506-41a4-9cb9-5347641e03de\",\n \"proofRecordId\": \"299ba1c1-7f9b-4a32-9d18-a41f80c5ff33\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:36:14.844Z\",\n \"updatedDate\": \"2023-04-05T08:36:14.844Z\"\n },\n {\n \"id\": \"026aa092-a82f-4cab-bf88-55fe3e084062\",\n \"proofRecordId\": \"f9a2d030-1776-4329-aff1-2707668c61f0\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:35:46.086Z\",\n \"updatedDate\": \"2023-04-05T08:35:46.086Z\"\n },\n {\n \"id\": \"02cecc4a-1824-40d1-b3ea-e1d6e938a74d\",\n \"proofRecordId\": \"9b419c4b-9945-4813-90ad-400190e61100\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-06-02T02:04:42.738Z\",\n \"updatedDate\": \"2023-06-02T02:04:42.738Z\"\n },\n {\n \"id\": \"02ffd3e4-3d87-45dc-8c58-2a9075aa057e\",\n \"proofRecordId\": \"2d619580-7b06-4411-8c47-73dd307ae777\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:35:27.835Z\",\n \"updatedDate\": \"2023-04-05T08:35:27.836Z\"\n },\n {\n \"id\": \"03d59eae-263c-4f37-82d2-d2a61044e680\",\n \"proofRecordId\": \"72a2a37b-ba0a-40a6-9c1e-e05b37fb1550\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:37.486Z\",\n \"updatedDate\": \"2023-04-05T08:02:37.486Z\"\n },\n {\n \"id\": \"03e459a0-e2e7-45e8-a32c-039672523ca3\",\n \"proofRecordId\": \"cd6a82ad-ee03-4e71-9c01-71e7fe83219b\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:04.571Z\",\n \"updatedDate\": \"2023-04-05T08:37:04.571Z\"\n },\n {\n \"id\": \"0405d814-57b6-4ff8-a645-3fe3682e09b8\",\n \"proofRecordId\": \"0a3ad2b8-90f9-49c9-83c8-1cf6b231c5fa\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:43.442Z\",\n \"updatedDate\": \"2023-04-05T08:02:43.442Z\"\n },\n {\n \"id\": \"04409e91-77d1-48f3-8982-d425806e79f2\",\n \"proofRecordId\": \"29e5b3f0-9fcc-40cf-8573-9e219a7366ab\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-10T09:43:56.431Z\",\n \"updatedDate\": \"2023-05-10T09:43:56.431Z\"\n },\n {\n \"id\": \"057647eb-863e-4930-98ce-2e7206756f06\",\n \"proofRecordId\": \"708a6758-36d5-4327-8334-73b7f56e7d45\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:03.757Z\",\n \"updatedDate\": \"2023-04-05T08:02:03.757Z\"\n },\n {\n \"id\": \"057d8759-c2cf-47d1-b809-77b5fa250714\",\n \"proofRecordId\": \"d3e7bf0d-37b8-4177-b771-c055ba384cde\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-27T08:24:51.139Z\",\n \"updatedDate\": \"2023-04-27T08:24:51.139Z\"\n },\n {\n \"id\": \"0708a7a2-d679-44dc-bf0c-93b02de40cb8\",\n \"proofRecordId\": \"74f40bda-9277-4dc9-86dd-01c2266b503f\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:00:54.344Z\",\n \"updatedDate\": \"2023-04-05T08:00:54.344Z\"\n },\n {\n \"id\": \"0723f10e-66e3-45ec-9a70-751365ae2934\",\n \"proofRecordId\": \"a3af4436-7dea-41b4-b66a-1e4138b038dd\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-10T11:48:56.739Z\",\n \"updatedDate\": \"2023-05-10T11:48:56.739Z\"\n },\n {\n \"id\": \"074e14bb-01f0-4d77-a021-6af6f6c8a697\",\n \"proofRecordId\": \"13eb0c78-e4f0-4b24-93f6-af043c13ac57\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:36:46.244Z\",\n \"updatedDate\": \"2023-04-05T08:36:46.244Z\"\n },\n {\n \"id\": \"07bb6a56-c62c-4eed-9673-8973e5cc73e7\",\n \"proofRecordId\": \"5cdfdc23-d98f-4f1d-bac3-e6dedeced3a3\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:01:46.861Z\",\n \"updatedDate\": \"2023-04-05T08:01:46.861Z\"\n },\n {\n \"id\": \"0870526d-849a-44e5-87e4-05416ba8440b\",\n \"proofRecordId\": \"732d5ccc-56a7-476a-a1bb-5a6db8eaf0f2\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:02.390Z\",\n \"updatedDate\": \"2023-04-05T08:37:02.390Z\"\n },\n {\n \"id\": \"09d6f050-8bde-48f3-ba0e-e59b4e8f035f\",\n \"proofRecordId\": \"f41d2f97-f79a-4b9f-a882-b7b78f8966dd\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:12.868Z\",\n \"updatedDate\": \"2023-04-05T08:37:12.868Z\"\n },\n {\n \"id\": \"0c2cead8-f125-43dd-bd16-a1611658132d\",\n \"proofRecordId\": \"0d7d8534-1d4f-4976-bce4-d1ac43a67ac5\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:10.867Z\",\n \"updatedDate\": \"2023-04-05T08:37:10.867Z\"\n },\n {\n \"id\": \"0d0b50dd-bd4f-4409-8918-8faa9e41b36a\",\n \"proofRecordId\": \"437e0246-3c77-40a9-9984-fa279a6da66f\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-25T06:50:47.760Z\",\n \"updatedDate\": \"2023-05-25T06:50:47.760Z\"\n },\n {\n \"id\": \"0d0fbe35-306c-411b-9924-cfbd0671c0c4\",\n \"proofRecordId\": \"c6cf80aa-c82b-40d4-932f-b6a0dfd94b31\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:07.235Z\",\n \"updatedDate\": \"2023-04-05T08:02:07.197Z\"\n },\n {\n \"id\": \"0d36b72b-0ccd-409b-848b-8aaf64cde60c\",\n \"proofRecordId\": \"6ed08154-abc5-4b7a-99b2-8cc746ea2efa\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-27T08:24:51.803Z\",\n \"updatedDate\": \"2023-04-27T08:24:51.804Z\"\n },\n {\n \"id\": \"0d8b8019-3a45-47cc-a0b0-3b7433c79ef3\",\n \"proofRecordId\": \"8b14c221-4e8c-412d-979e-f980c2493718\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-25T08:41:08.159Z\",\n \"updatedDate\": \"2023-05-25T08:41:08.159Z\"\n },\n {\n \"id\": \"0dcb6484-9bbb-4aa0-8f29-55b2099313ac\",\n \"proofRecordId\": \"3f29af26-fa7c-4dff-9e73-dfb11aeed108\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"done\",\n \"createdDate\": \"2023-05-22T10:56:44.678Z\",\n \"updatedDate\": \"2023-05-22T11:46:59.158Z\"\n }\n ]\n }\n}" - } - ] - }, - { - "name": "Fetch proof presentation (with received credentials) by proofRequestId", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/find-by-presentation-id?proofRecordId=3f29af26-fa7c-4dff-9e73-dfb11aeed108", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "proofRecordId", - "value": "3f29af26-fa7c-4dff-9e73-dfb11aeed108", - "description": "(Required) " - } - ] - } - }, - "response": [ - { - "name": "Fetch proof presentation (with received credentials) by proofRequestId", - "originalRequest": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/find-by-presentation-id?proofRecordId=3f29af26-fa7c-4dff-9e73-dfb11aeed106", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "proofRecordId", - "value": "3f29af26-fa7c-4dff-9e73-dfb11aeed106", - "description": "(Required) " - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Date", - "value": "Fri, 02 Jun 2023 06:11:11 GMT" - }, - { - "key": "Content-Type", - "value": "application/json; charset=utf-8" - }, - { - "key": "Content-Length", - "value": "328" - }, - { - "key": "Connection", - "value": "keep-alive" - }, - { - "key": "X-Powered-By", - "value": "Express" - }, - { - "key": "Access-Control-Allow-Origin", - "value": "*" - }, - { - "key": "ETag", - "value": "W/\"148-MIqXpsMkr4A+x4RvK6AWWJ6RzRM\"" - }, - { - "key": "Strict-Transport-Security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetched successfully\",\n \"data\": {\n \"state\": \"done\",\n \"presentations\": [\n {\n \"schemaId\": \"BsfUfTECZPVRnoCgHUfB3p:2:LoginCredentials:1.0\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:50014:LoginCredentials2\",\n \"revRegId\": null,\n \"timestamp\": null,\n \"credentialSubject\": {\n \"email\": \"example@example.com\"\n }\n }\n ]\n }\n}" - } - ] - }, - { - "name": "Delete proof request by proofRecordId", - "request": { - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/delete-proof-request/:proofRecordId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "delete-proof-request", - ":proofRecordId" - ], - "variable": [ - { - "key": "proofRecordId" - } - ] - } - }, - "response": [] - }, - { - "name": "Decline proof request by proofRecordId", - "request": { - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/decline-proof-request/:proofRecordId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "decline-proof-request", - ":proofRecordId" - ], - "variable": [ - { - "key": "proofRecordId" - } - ] - } - }, - "response": [] - }, - { - "name": "Fetch all proofs directly from agent", - "request": { - "method": "GET", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/agent-proofs", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "agent-proofs" - ] - } - }, - "response": [] - }, - { - "name": "Accept proof request by proofRecordId", - "request": { - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/accept-proof-request/:proofRecordId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-proof-request", - ":proofRecordId" - ], - "variable": [ - { - "key": "proofRecordId" - } - ] - } - }, - "response": [] - }, - { - "name": "Accept presentation request by proofRecordId", - "request": { - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/accept-presentation/:proofRecordId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-presentation", - ":proofRecordId" - ], - "variable": [ - { - "key": "proofRecordId", - "value": "<string>" - } - ] - } - }, - "response": [ - { - "name": "Accept presentation request required following attributes ( proof_record_id )", - "originalRequest": { - "method": "POST", - "header": [ - { - "key": "Accept", - "value": "application/json" - } - ], - "url": { - "raw": "{{baseUrl}}/v1/accept-presentation/:proofRecordId", - "host": [ - "{{baseUrl}}" - ], - "path": [ - "v1", - "accept-presentation", - ":proofRecordId" - ], - "variable": [ - { - "key": "proofRecordId" - } - ] - } - }, - "status": "Bad Request", - "code": 400, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "Content-Type", - "value": "application/json" - } - ], - "cookie": [], - "body": "{}" - } - ] - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "key": "baseUrl", - "value": "https://ssi-dev.vereign.com/ocm/proof" - } - ] -} \ No newline at end of file + "info": { + "_postman_id": "8cdaf3fb-ded2-4518-8464-c196c01c622f", + "name": "Gaia-x Proof Manager API", + "description": "API documentation for GAIA-X Proof Manager", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "10250261" + }, + "item": [ + { + "name": "Get full url from short url id", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{baseUrl}}/v1/url/:id", + "host": ["{{baseUrl}}"], + "path": ["v1", "url", ":id"], + "variable": [ + { + "key": "id", + "value": "<string>" + } + ] + } + }, + "response": [] + }, + { + "name": "Send presentation request", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"comment\": \"Proof Presenation\",\n \"attributes\": [\n {\n \"schemaId\": \"\",\n \"credentialDefId\": \"{{cred-def-id}}\",\n \"attributeName\": \"fName\",\n \"value\": \"\",\n \"condition\": \"\"\n },\n {\n \"schemaId\": \"\",\n \"credentialDefId\": \"{{pcm-vc-cred-def-id}}\",\n \"attributeName\": \"email\",\n \"value\": \"\",\n \"condition\": \"\"\n }\n ],\n \"connectionId\": \"{{conn-id}}\"\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/send-presentation-request", + "host": ["{{baseUrl}}"], + "path": ["v1", "send-presentation-request"] + } + }, + "response": [] + }, + { + "name": "Send out of band presentation request", + "request": { + "method": "POST", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + }, + { + "key": "Accept", + "value": "application/json" + } + ], + "body": { + "mode": "raw", + "raw": "{\n \"comment\": \"<string>\",\n \"schemaId\": \"<string>\",\n \"options\": {},\n \"attributes\": [\n \"<string>\",\n \"<string>\"\n ]\n}", + "options": { + "raw": { + "headerFamily": "json", + "language": "json" + } + } + }, + "url": { + "raw": "{{baseUrl}}/v1/send-out-of-band-presentation-request", + "host": ["{{baseUrl}}"], + "path": ["v1", "send-out-of-band-presentation-request"] + } + }, + "response": [] + }, + { + "name": "Send out of band proof", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/out-of-band-proof", + "host": ["{{baseUrl}}"], + "path": ["v1", "out-of-band-proof"] + } + }, + "response": [] + }, + { + "name": "Health check", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/health", + "host": ["{{baseUrl}}"], + "path": ["v1", "health"] + } + }, + "response": [] + }, + { + "name": "Search proof request information using pagination and queries", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/find-proof-presentation?page=0&pageSize=25&proofRecordId&connectionId&credentialDefId&schemaId&theirDid&status&createdDateStart=2023-03-05T08:36:19.170Z&createdDateEnd&updatedDateStart&updatedDateEnd", + "host": ["{{baseUrl}}"], + "path": ["v1", "find-proof-presentation"], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "pageSize", + "value": "25" + }, + { + "key": "proofRecordId", + "value": null + }, + { + "key": "connectionId", + "value": null + }, + { + "key": "credentialDefId", + "value": null + }, + { + "key": "schemaId", + "value": null + }, + { + "key": "theirDid", + "value": null + }, + { + "key": "status", + "value": null + }, + { + "key": "createdDateStart", + "value": "2023-03-05T08:36:19.170Z" + }, + { + "key": "createdDateEnd", + "value": null + }, + { + "key": "updatedDateStart", + "value": null + }, + { + "key": "updatedDateEnd", + "value": null + } + ] + } + }, + "response": [ + { + "name": "Search proof request information using pagination and queries", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/find-proof-presentation?page=0&pageSize=25&proofRecordId&connectionId&credentialDefId&schemaId&theirDid&status&createdDateStart=2023-03-05T08:36:19.170Z&createdDateEnd&updatedDateStart&updatedDateEnd", + "host": ["{{baseUrl}}"], + "path": ["v1", "find-proof-presentation"], + "query": [ + { + "key": "page", + "value": "0" + }, + { + "key": "pageSize", + "value": "25" + }, + { + "key": "proofRecordId", + "value": null + }, + { + "key": "connectionId", + "value": null + }, + { + "key": "credentialDefId", + "value": null + }, + { + "key": "schemaId", + "value": null + }, + { + "key": "theirDid", + "value": null + }, + { + "key": "status", + "value": null + }, + { + "key": "createdDateStart", + "value": "2023-03-05T08:36:19.170Z" + }, + { + "key": "createdDateEnd", + "value": null + }, + { + "key": "updatedDateStart", + "value": null + }, + { + "key": "updatedDateEnd", + "value": null + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 06:10:41 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "7522" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"1d62-eeaYumJatMrJi96zaADgb+qSzt0\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentations fetched successfully\",\n \"data\": {\n \"count\": 664,\n \"records\": [\n {\n \"id\": \"001ad97f-78f4-41f1-8a69-e03eefe4136a\",\n \"proofRecordId\": \"6b19a270-3448-4055-97b7-81fb42113688\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:36:19.170Z\",\n \"updatedDate\": \"2023-04-05T08:36:19.170Z\"\n },\n {\n \"id\": \"00bc3f5c-d42f-424c-8db5-2b7fe4f2118f\",\n \"proofRecordId\": \"f9ff0dae-f74c-4ae4-b164-adcbe2e85192\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-06T11:39:24.077Z\",\n \"updatedDate\": \"2023-04-06T11:39:24.077Z\"\n },\n {\n \"id\": \"0117964f-96d4-461d-903c-31e9e4ad9f5f\",\n \"proofRecordId\": \"54673c3c-0325-45cd-b39e-2a77007958a7\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:55.339Z\",\n \"updatedDate\": \"2023-04-05T08:02:55.339Z\"\n },\n {\n \"id\": \"017b6c72-7506-41a4-9cb9-5347641e03de\",\n \"proofRecordId\": \"299ba1c1-7f9b-4a32-9d18-a41f80c5ff33\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:36:14.844Z\",\n \"updatedDate\": \"2023-04-05T08:36:14.844Z\"\n },\n {\n \"id\": \"026aa092-a82f-4cab-bf88-55fe3e084062\",\n \"proofRecordId\": \"f9a2d030-1776-4329-aff1-2707668c61f0\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:35:46.086Z\",\n \"updatedDate\": \"2023-04-05T08:35:46.086Z\"\n },\n {\n \"id\": \"02cecc4a-1824-40d1-b3ea-e1d6e938a74d\",\n \"proofRecordId\": \"9b419c4b-9945-4813-90ad-400190e61100\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-06-02T02:04:42.738Z\",\n \"updatedDate\": \"2023-06-02T02:04:42.738Z\"\n },\n {\n \"id\": \"02ffd3e4-3d87-45dc-8c58-2a9075aa057e\",\n \"proofRecordId\": \"2d619580-7b06-4411-8c47-73dd307ae777\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:35:27.835Z\",\n \"updatedDate\": \"2023-04-05T08:35:27.836Z\"\n },\n {\n \"id\": \"03d59eae-263c-4f37-82d2-d2a61044e680\",\n \"proofRecordId\": \"72a2a37b-ba0a-40a6-9c1e-e05b37fb1550\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:37.486Z\",\n \"updatedDate\": \"2023-04-05T08:02:37.486Z\"\n },\n {\n \"id\": \"03e459a0-e2e7-45e8-a32c-039672523ca3\",\n \"proofRecordId\": \"cd6a82ad-ee03-4e71-9c01-71e7fe83219b\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:04.571Z\",\n \"updatedDate\": \"2023-04-05T08:37:04.571Z\"\n },\n {\n \"id\": \"0405d814-57b6-4ff8-a645-3fe3682e09b8\",\n \"proofRecordId\": \"0a3ad2b8-90f9-49c9-83c8-1cf6b231c5fa\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:43.442Z\",\n \"updatedDate\": \"2023-04-05T08:02:43.442Z\"\n },\n {\n \"id\": \"04409e91-77d1-48f3-8982-d425806e79f2\",\n \"proofRecordId\": \"29e5b3f0-9fcc-40cf-8573-9e219a7366ab\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-10T09:43:56.431Z\",\n \"updatedDate\": \"2023-05-10T09:43:56.431Z\"\n },\n {\n \"id\": \"057647eb-863e-4930-98ce-2e7206756f06\",\n \"proofRecordId\": \"708a6758-36d5-4327-8334-73b7f56e7d45\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:03.757Z\",\n \"updatedDate\": \"2023-04-05T08:02:03.757Z\"\n },\n {\n \"id\": \"057d8759-c2cf-47d1-b809-77b5fa250714\",\n \"proofRecordId\": \"d3e7bf0d-37b8-4177-b771-c055ba384cde\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-27T08:24:51.139Z\",\n \"updatedDate\": \"2023-04-27T08:24:51.139Z\"\n },\n {\n \"id\": \"0708a7a2-d679-44dc-bf0c-93b02de40cb8\",\n \"proofRecordId\": \"74f40bda-9277-4dc9-86dd-01c2266b503f\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:00:54.344Z\",\n \"updatedDate\": \"2023-04-05T08:00:54.344Z\"\n },\n {\n \"id\": \"0723f10e-66e3-45ec-9a70-751365ae2934\",\n \"proofRecordId\": \"a3af4436-7dea-41b4-b66a-1e4138b038dd\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-10T11:48:56.739Z\",\n \"updatedDate\": \"2023-05-10T11:48:56.739Z\"\n },\n {\n \"id\": \"074e14bb-01f0-4d77-a021-6af6f6c8a697\",\n \"proofRecordId\": \"13eb0c78-e4f0-4b24-93f6-af043c13ac57\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:36:46.244Z\",\n \"updatedDate\": \"2023-04-05T08:36:46.244Z\"\n },\n {\n \"id\": \"07bb6a56-c62c-4eed-9673-8973e5cc73e7\",\n \"proofRecordId\": \"5cdfdc23-d98f-4f1d-bac3-e6dedeced3a3\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:01:46.861Z\",\n \"updatedDate\": \"2023-04-05T08:01:46.861Z\"\n },\n {\n \"id\": \"0870526d-849a-44e5-87e4-05416ba8440b\",\n \"proofRecordId\": \"732d5ccc-56a7-476a-a1bb-5a6db8eaf0f2\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:02.390Z\",\n \"updatedDate\": \"2023-04-05T08:37:02.390Z\"\n },\n {\n \"id\": \"09d6f050-8bde-48f3-ba0e-e59b4e8f035f\",\n \"proofRecordId\": \"f41d2f97-f79a-4b9f-a882-b7b78f8966dd\",\n \"connectionId\": \"757cc3c0-ba70-4ac2-bd52-797ea0fa60a1\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:12.868Z\",\n \"updatedDate\": \"2023-04-05T08:37:12.868Z\"\n },\n {\n \"id\": \"0c2cead8-f125-43dd-bd16-a1611658132d\",\n \"proofRecordId\": \"0d7d8534-1d4f-4976-bce4-d1ac43a67ac5\",\n \"connectionId\": \"f9c10d29-2cbd-44b0-b909-26ca4108c5dd\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:37:10.867Z\",\n \"updatedDate\": \"2023-04-05T08:37:10.867Z\"\n },\n {\n \"id\": \"0d0b50dd-bd4f-4409-8918-8faa9e41b36a\",\n \"proofRecordId\": \"437e0246-3c77-40a9-9984-fa279a6da66f\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-25T06:50:47.760Z\",\n \"updatedDate\": \"2023-05-25T06:50:47.760Z\"\n },\n {\n \"id\": \"0d0fbe35-306c-411b-9924-cfbd0671c0c4\",\n \"proofRecordId\": \"c6cf80aa-c82b-40d4-932f-b6a0dfd94b31\",\n \"connectionId\": \"9bf1804a-a356-44b3-b97a-dd40b0667a50\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-05T08:02:07.235Z\",\n \"updatedDate\": \"2023-04-05T08:02:07.197Z\"\n },\n {\n \"id\": \"0d36b72b-0ccd-409b-848b-8aaf64cde60c\",\n \"proofRecordId\": \"6ed08154-abc5-4b7a-99b2-8cc746ea2efa\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-04-27T08:24:51.803Z\",\n \"updatedDate\": \"2023-04-27T08:24:51.804Z\"\n },\n {\n \"id\": \"0d8b8019-3a45-47cc-a0b0-3b7433c79ef3\",\n \"proofRecordId\": \"8b14c221-4e8c-412d-979e-f980c2493718\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"request-sent\",\n \"createdDate\": \"2023-05-25T08:41:08.159Z\",\n \"updatedDate\": \"2023-05-25T08:41:08.159Z\"\n },\n {\n \"id\": \"0dcb6484-9bbb-4aa0-8f29-55b2099313ac\",\n \"proofRecordId\": \"3f29af26-fa7c-4dff-9e73-dfb11aeed108\",\n \"connectionId\": \"\",\n \"credentialDefId\": \"\",\n \"schemaId\": \"\",\n \"theirDid\": \"\",\n \"status\": \"done\",\n \"createdDate\": \"2023-05-22T10:56:44.678Z\",\n \"updatedDate\": \"2023-05-22T11:46:59.158Z\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Fetch proof presentation (with received credentials) by proofRequestId", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/find-by-presentation-id?proofRecordId=3f29af26-fa7c-4dff-9e73-dfb11aeed108", + "host": ["{{baseUrl}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "proofRecordId", + "value": "3f29af26-fa7c-4dff-9e73-dfb11aeed108", + "description": "(Required) " + } + ] + } + }, + "response": [ + { + "name": "Fetch proof presentation (with received credentials) by proofRequestId", + "originalRequest": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/find-by-presentation-id?proofRecordId=3f29af26-fa7c-4dff-9e73-dfb11aeed106", + "host": ["{{baseUrl}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "proofRecordId", + "value": "3f29af26-fa7c-4dff-9e73-dfb11aeed106", + "description": "(Required) " + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Date", + "value": "Fri, 02 Jun 2023 06:11:11 GMT" + }, + { + "key": "Content-Type", + "value": "application/json; charset=utf-8" + }, + { + "key": "Content-Length", + "value": "328" + }, + { + "key": "Connection", + "value": "keep-alive" + }, + { + "key": "X-Powered-By", + "value": "Express" + }, + { + "key": "Access-Control-Allow-Origin", + "value": "*" + }, + { + "key": "ETag", + "value": "W/\"148-MIqXpsMkr4A+x4RvK6AWWJ6RzRM\"" + }, + { + "key": "Strict-Transport-Security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetched successfully\",\n \"data\": {\n \"state\": \"done\",\n \"presentations\": [\n {\n \"schemaId\": \"BsfUfTECZPVRnoCgHUfB3p:2:LoginCredentials:1.0\",\n \"credDefId\": \"BsfUfTECZPVRnoCgHUfB3p:3:CL:50014:LoginCredentials2\",\n \"revRegId\": null,\n \"timestamp\": null,\n \"credentialSubject\": {\n \"email\": \"example@example.com\"\n }\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Delete proof request by proofRecordId", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/delete-proof-request/:proofRecordId", + "host": ["{{baseUrl}}"], + "path": ["v1", "delete-proof-request", ":proofRecordId"], + "variable": [ + { + "key": "proofRecordId" + } + ] + } + }, + "response": [] + }, + { + "name": "Decline proof request by proofRecordId", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/decline-proof-request/:proofRecordId", + "host": ["{{baseUrl}}"], + "path": ["v1", "decline-proof-request", ":proofRecordId"], + "variable": [ + { + "key": "proofRecordId" + } + ] + } + }, + "response": [] + }, + { + "name": "Fetch all proofs directly from agent", + "request": { + "method": "GET", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/agent-proofs", + "host": ["{{baseUrl}}"], + "path": ["v1", "agent-proofs"] + } + }, + "response": [] + }, + { + "name": "Accept proof request by proofRecordId", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/accept-proof-request/:proofRecordId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-proof-request", ":proofRecordId"], + "variable": [ + { + "key": "proofRecordId" + } + ] + } + }, + "response": [] + }, + { + "name": "Accept presentation request by proofRecordId", + "request": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/accept-presentation/:proofRecordId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-presentation", ":proofRecordId"], + "variable": [ + { + "key": "proofRecordId", + "value": "<string>" + } + ] + } + }, + "response": [ + { + "name": "Accept presentation request required following attributes ( proof_record_id )", + "originalRequest": { + "method": "POST", + "header": [ + { + "key": "Accept", + "value": "application/json" + } + ], + "url": { + "raw": "{{baseUrl}}/v1/accept-presentation/:proofRecordId", + "host": ["{{baseUrl}}"], + "path": ["v1", "accept-presentation", ":proofRecordId"], + "variable": [ + { + "key": "proofRecordId" + } + ] + } + }, + "status": "Bad Request", + "code": 400, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "cookie": [], + "body": "{}" + } + ] + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "type": "text/javascript", + "exec": [""] + } + }, + { + "listen": "test", + "script": { + "type": "text/javascript", + "exec": [""] + } + } + ], + "variable": [ + { + "key": "baseUrl", + "value": "https://ssi-dev.vereign.com/ocm/proof" + } + ] +} diff --git a/apps/proof-manager/README.md b/apps/proof-manager/README.md index cc71b77b1693ce8b82b6bee832ef2273e736e2cd..301032704adfedcb8f51a6709adddd1190ea75d0 100644 --- a/apps/proof-manager/README.md +++ b/apps/proof-manager/README.md @@ -1,31 +1,34 @@ # OCM Proof Manager ## Description + <hr/> The Proof Manager, is the microservice responsible for handling the features related to Proof Presentation in the Organizational Credential Manager. ## Usage + <hr/> -### Swagger Documentation: +### Swagger Documentation: [Swagger/OpenAPI](swagger.json) ## Installation + <hr/> ### Pre-requisite -* pnpm -* docker -* docker-compose -* Postgres +- pnpm +- docker +- docker-compose +- Postgres ### OCM Services Dependencies -* SSI Abstraction -* Connection Manager -* Attestation Manager +- SSI Abstraction +- Connection Manager +- Attestation Manager ## Running the app @@ -34,6 +37,7 @@ The Proof Manager, is the microservice responsible for handling the features rel **The .env files are in the infrastructure repository under /env** ### There are two separate Dockefiles in "./deployment" of every project: + ```bash ## production in: ./deployment/ci @@ -41,30 +45,36 @@ The Proof Manager, is the microservice responsible for handling the features rel ./deployment/dev ``` -* (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles. +- (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles. + +- Run while in **"infrastructure"** project: -* Run while in **"infrastructure"** project: ```bash $ docker-compose up --build proof-m ``` + to run only Connection Manager or + ```bash $ docker-compose up --build ``` -to run all the services. +to run all the services. ## Build + ``` pnpm build ``` ## Run + ``` pnpm start ``` ### Environment Variables Required + ``` 1. PORT 2. DATABASE_URL @@ -74,24 +84,27 @@ pnpm start ``` ### Outgoing communication services + ``` 1. SSI Abstraction ``` ### Incomming communication services + ``` 1. Connection Manager 2. Attestation Manager ``` ## Features supported + ``` -1. Proof Presentation +1. Proof Presentation 2. Out of Band ``` - ## Test + <hr/> ```bash @@ -105,18 +118,20 @@ $ pnpm test:e2e $ pnpm test:cov ``` - ## GDPR + <hr/> [GDPR](GDPR.md) ## Dependencies + <hr/> [Dependencies](package.json) ## License + <hr/> [Apache 2.0 license](LICENSE) diff --git a/apps/proof-manager/deployment/helm/Chart.yaml b/apps/proof-manager/deployment/helm/Chart.yaml index 6f4310e1a757a56469c29f108090eaf06ed464b4..1f8e7e9fd7cd65808abfbf4eeb246524aeaaf971 100644 --- a/apps/proof-manager/deployment/helm/Chart.yaml +++ b/apps/proof-manager/deployment/helm/Chart.yaml @@ -3,4 +3,4 @@ appVersion: v1.0.4-rc description: proof-manager deployment name: proof-manager version: 1.0.4 -icon: "https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg" +icon: 'https://www.vereign.com/wp-content/themes/vereign2020/images/vereign-logo.svg' diff --git a/apps/proof-manager/deployment/helm/README.md b/apps/proof-manager/deployment/helm/README.md index df4e440b66a9ccea392b61e38538ccf0d7804adc..b48c61aa14824757ad378f1c4fd1686f7f6a1057 100644 --- a/apps/proof-manager/deployment/helm/README.md +++ b/apps/proof-manager/deployment/helm/README.md @@ -6,64 +6,66 @@ proof-manager deployment ## Values -| Key | Type | Default | Description | -|-----|------|---------|-------------| -| autoscaling.enabled | bool | `false` | Enable autoscaling | -| autoscaling.maxReplicas | int | `3` | Maximum replicas | -| autoscaling.minReplicas | int | `1` | Minimum replicas | -| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger | -| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger | -| image.name | string | `"gaiax/proof-manager"` | Image name | -| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | -| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used | -| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` | | -| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty | -| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty | -| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` | | -| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | | -| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` | | -| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | -| ingress.enabled | bool | `true` | | -| ingress.frontendDomain | string | `"gaiax.vereign.com"` | | -| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` | | -| ingress.tlsEnabled | bool | `true` | | -| log.encoding | string | `"json"` | | -| log.level | string | `"INFO"` | | -| metrics.enabled | bool | `true` | Enable prometheus metrics | -| metrics.port | int | `2112` | Port for prometheus metrics | -| name | string | `"proof-manager"` | Application name | -| nameOverride | string | `""` | Overwrites application name | -| podAnnotations | object | `{}` | | -| proofManager.acceptPresentationConfig | string | `"AUTO"` | | -| proofManager.agent.host | string | `"ssi-abstraction"` | | -| proofManager.agent.port | int | `3010` | | -| proofManager.agent.protocol | string | `"http"` | | -| proofManager.database.db | string | `"ocm_proof_manager"` | | -| proofManager.database.host | string | `"postgresql-postgresql-ha-postgresql.infra"` | | -| proofManager.database.password | string | `"ocm_proof_manager"` | | -| proofManager.database.port | int | `5432` | | -| proofManager.database.schema | string | `"proof"` | | -| proofManager.database.user | string | `"ocm_proof_manager"` | | -| proofManager.elastic.port | int | `9200` | | -| proofManager.elastic.protocol | string | `"http"` | | -| proofManager.elastic.url | string | `"elasticsearch"` | | -| proofManager.nats.port | int | `4222` | | -| proofManager.nats.protocol | string | `"nats"` | | -| proofManager.nats.url | string | `"nats"` | | -| replicaCount | int | `1` | Default number of instances to start | -| resources.limits.cpu | string | `"150m"` | | -| resources.limits.memory | string | `"128Mi"` | | -| resources.requests.cpu | string | `"25m"` | | -| resources.requests.memory | string | `"64Mi"` | | -| security.runAsGid | int | `0` | Group used by the apps | -| security.runAsNonRoot | bool | `false` | by default, apps run as non-root | -| security.runAsUid | int | `0` | User used by the apps | -| service.port | int | `3007` | | +| Key | Type | Default | Description | +| ----------------------------------------------------------------- | ------ | --------------------------------------------- | -------------------------------------------------------------- | +| autoscaling.enabled | bool | `false` | Enable autoscaling | +| autoscaling.maxReplicas | int | `3` | Maximum replicas | +| autoscaling.minReplicas | int | `1` | Minimum replicas | +| autoscaling.targetCPUUtilizationPercentage | int | `70` | CPU target for autoscaling trigger | +| autoscaling.targetMemoryUtilizationPercentage | int | `70` | Memory target for autoscaling trigger | +| image.name | string | `"gaiax/proof-manager"` | Image name | +| image.pullPolicy | string | `"IfNotPresent"` | Image pull policy | +| image.pullSecrets | string | `"deployment-key-light"` | Image pull secret when internal image is used | +| image.repository | string | `"eu.gcr.io/vrgn-infra-prj"` | | +| image.sha | string | `""` | Image sha, usually generated by the CI Uses image.tag if empty | +| image.tag | string | `""` | Image tag Uses .Chart.AppVersion if empty | +| ingress.annotations."cert-manager.io/cluster-issuer" | string | `"letsencrypt-production-http"` | | +| ingress.annotations."kubernetes.io/ingress.class" | string | `"nginx"` | | +| ingress.annotations."kubernetes.io/ingress.global-static-ip-name" | string | `"dev-light-public"` | | +| ingress.annotations."nginx.ingress.kubernetes.io/rewrite-target" | string | `"/$2"` | | +| ingress.enabled | bool | `true` | | +| ingress.frontendDomain | string | `"gaiax.vereign.com"` | | +| ingress.frontendTlsSecretName | string | `"cert-manager-tls"` | | +| ingress.tlsEnabled | bool | `true` | | +| log.encoding | string | `"json"` | | +| log.level | string | `"INFO"` | | +| metrics.enabled | bool | `true` | Enable prometheus metrics | +| metrics.port | int | `2112` | Port for prometheus metrics | +| name | string | `"proof-manager"` | Application name | +| nameOverride | string | `""` | Overwrites application name | +| podAnnotations | object | `{}` | | +| proofManager.acceptPresentationConfig | string | `"AUTO"` | | +| proofManager.agent.host | string | `"ssi-abstraction"` | | +| proofManager.agent.port | int | `3010` | | +| proofManager.agent.protocol | string | `"http"` | | +| proofManager.database.db | string | `"ocm_proof_manager"` | | +| proofManager.database.host | string | `"postgresql-postgresql-ha-postgresql.infra"` | | +| proofManager.database.password | string | `"ocm_proof_manager"` | | +| proofManager.database.port | int | `5432` | | +| proofManager.database.schema | string | `"proof"` | | +| proofManager.database.user | string | `"ocm_proof_manager"` | | +| proofManager.elastic.port | int | `9200` | | +| proofManager.elastic.protocol | string | `"http"` | | +| proofManager.elastic.url | string | `"elasticsearch"` | | +| proofManager.nats.port | int | `4222` | | +| proofManager.nats.protocol | string | `"nats"` | | +| proofManager.nats.url | string | `"nats"` | | +| replicaCount | int | `1` | Default number of instances to start | +| resources.limits.cpu | string | `"150m"` | | +| resources.limits.memory | string | `"128Mi"` | | +| resources.requests.cpu | string | `"25m"` | | +| resources.requests.memory | string | `"64Mi"` | | +| security.runAsGid | int | `0` | Group used by the apps | +| security.runAsNonRoot | bool | `false` | by default, apps run as non-root | +| security.runAsUid | int | `0` | User used by the apps | +| service.port | int | `3007` | | + +--- ----------------------------------------------- Autogenerated from chart metadata using [helm-docs v1.10.0](https://github.com/norwoodj/helm-docs/releases/v1.10.0) ## License + <hr/> [Apache 2.0 license](LICENSE) diff --git a/apps/proof-manager/deployment/helm/templates/service.yaml b/apps/proof-manager/deployment/helm/templates/service.yaml index 21c57ac87992e185f824c0c8c9fbf8ab19b289d2..387c8d480b51f5312086a6510081bdac85c6b0c9 100644 --- a/apps/proof-manager/deployment/helm/templates/service.yaml +++ b/apps/proof-manager/deployment/helm/templates/service.yaml @@ -1,16 +1,13 @@ apiVersion: v1 kind: Service metadata: - name: {{ template "app.name" . }} - namespace: {{ .Release.Namespace }} - labels: - {{- include "app.labels" . | nindent 4 }} + name: { { template "app.name" . } } + namespace: { { .Release.Namespace } } + labels: { { - include "app.labels" . | nindent 4 } } spec: clusterIP: None ports: - - name: http - port: {{ .Values.service.port }} - targetPort: {{ .Values.service.port }} - selector: - {{- include "app.selectorLabels" . | nindent 4 }} - + - name: http + port: { { .Values.service.port } } + targetPort: { { .Values.service.port } } + selector: { { - include "app.selectorLabels" . | nindent 4 } } diff --git a/apps/proof-manager/deployment/helm/values-override.yaml b/apps/proof-manager/deployment/helm/values-override.yaml index f0f4c9d22df23646d8085662d5a708a4e6525c54..90147298ba9a137ebdd3bcb970eae8a39a362a8d 100644 --- a/apps/proof-manager/deployment/helm/values-override.yaml +++ b/apps/proof-manager/deployment/helm/values-override.yaml @@ -1,33 +1,33 @@ image: - repository: registry.gitlab.com/gaia-x/data-infrastructure-federation-services/ocm - # -- Image name - name: proof-manager + repository: registry.gitlab.com/gaia-x/data-infrastructure-federation-services/ocm + # -- Image name + name: proof-manager proofManager: - database: - host: vereign-database1-postgres.gxfs-vereign - user: ENC[AES256_GCM,data:q5NhZmWp8Xo=,iv:1Fvhv+sMhPHIAqAb20ebf9W31KWUnFSCHB6YFEweZrc=,tag:TmVXG72ctypICUzuQjXI7w==,type:str] - password: ENC[AES256_GCM,data:7yYeSGu4A+kS/dzt4cqDF0ugQZVTBVwX0wS6SnInO0x5mFhuEIEoZA6posVXMXtxFOpMCK0/XK6DRiUkOmaH1A==,iv:h2AUH2bqWPT79gBqiOdrVTX7Jg32vnOcILyWxBLN0mk=,tag:JpVkcxLryfnww3t2yi32WA==,type:str] - db: vereign-database1-postgres + database: + host: vereign-database1-postgres.gxfs-vereign + user: ENC[AES256_GCM,data:q5NhZmWp8Xo=,iv:1Fvhv+sMhPHIAqAb20ebf9W31KWUnFSCHB6YFEweZrc=,tag:TmVXG72ctypICUzuQjXI7w==,type:str] + password: ENC[AES256_GCM,data:7yYeSGu4A+kS/dzt4cqDF0ugQZVTBVwX0wS6SnInO0x5mFhuEIEoZA6posVXMXtxFOpMCK0/XK6DRiUkOmaH1A==,iv:h2AUH2bqWPT79gBqiOdrVTX7Jg32vnOcILyWxBLN0mk=,tag:JpVkcxLryfnww3t2yi32WA==,type:str] + db: vereign-database1-postgres ingress: - frontendDomain: ocm.gxfs.dev - frontendTlsSecretName: wildcard-gxfs-dev + frontendDomain: ocm.gxfs.dev + frontendTlsSecretName: wildcard-gxfs-dev sops: - kms: [] - gcp_kms: [] - azure_kv: [] - hc_vault: [] - age: - - recipient: age1nrk70nevtmrcgzjunsed43ar6dk3e06qt7tryqqprj9axv4e0djqa0n0cg - enc: | - -----BEGIN AGE ENCRYPTED FILE----- - YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlYzFzaHpjL3M2SlVsaXcy - QXFuay9BWC8yWE9tSzhFUmpHYlRtdG1sbndZCldmNGV4SVJBUTJ0T0RKR3h2MU9P - bG5HNWZmQTB5UzZlSElTRnRJNlF0NFkKLS0tIEJKQVZmSVQ4aThMSDFoMURvL25L - bUZrbUpoK3R1VXZGb1htM0MzWlJPdHcKxU1fcH+Lg8bJgkyL0u/DwFuiRtQfipqH - d5ktsg3YUtmDEko9a3IwA+EPbrg0bHlojEYMuUlLmcJtOV20FzQDrA== - -----END AGE ENCRYPTED FILE----- - lastmodified: "2022-08-04T11:11:23Z" - mac: ENC[AES256_GCM,data:RB2WXSa5CG1o2boDuJj9zSRSLa/9jzM3UDp9bu8vWy4wBs7W4LvtxUyyee7O/+Au9/xNtv/tjK56mpYRQViClGSkydrYjtILaAJ1wEFtANy2CyPs8xrqNb1jKrBhWGj1+5N5GH8OkPQ4gu/udavnyNIRALjhNE1aklhk4Oqv3h0=,iv:1Ykz7eiuRQNwv7r7HQZmJPAaAJBBJUKdjykLzzynxCk=,tag:ts4IHFLSFUabI3983qM9zQ==,type:str] - pgp: [] - encrypted_regex: ^(password|user)$ - version: 3.7.3 + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1nrk70nevtmrcgzjunsed43ar6dk3e06qt7tryqqprj9axv4e0djqa0n0cg + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlYzFzaHpjL3M2SlVsaXcy + QXFuay9BWC8yWE9tSzhFUmpHYlRtdG1sbndZCldmNGV4SVJBUTJ0T0RKR3h2MU9P + bG5HNWZmQTB5UzZlSElTRnRJNlF0NFkKLS0tIEJKQVZmSVQ4aThMSDFoMURvL25L + bUZrbUpoK3R1VXZGb1htM0MzWlJPdHcKxU1fcH+Lg8bJgkyL0u/DwFuiRtQfipqH + d5ktsg3YUtmDEko9a3IwA+EPbrg0bHlojEYMuUlLmcJtOV20FzQDrA== + -----END AGE ENCRYPTED FILE----- + lastmodified: '2022-08-04T11:11:23Z' + mac: ENC[AES256_GCM,data:RB2WXSa5CG1o2boDuJj9zSRSLa/9jzM3UDp9bu8vWy4wBs7W4LvtxUyyee7O/+Au9/xNtv/tjK56mpYRQViClGSkydrYjtILaAJ1wEFtANy2CyPs8xrqNb1jKrBhWGj1+5N5GH8OkPQ4gu/udavnyNIRALjhNE1aklhk4Oqv3h0=,iv:1Ykz7eiuRQNwv7r7HQZmJPAaAJBBJUKdjykLzzynxCk=,tag:ts4IHFLSFUabI3983qM9zQ==,type:str] + pgp: [] + encrypted_regex: ^(password|user)$ + version: 3.7.3 diff --git a/apps/proof-manager/deployment/helm/values.yaml b/apps/proof-manager/deployment/helm/values.yaml index 434fa40aa79812dcd2150013635bb92c9236e108..d595c4b661109a6ed7bea588967186dac91d9eb2 100644 --- a/apps/proof-manager/deployment/helm/values.yaml +++ b/apps/proof-manager/deployment/helm/values.yaml @@ -1,9 +1,9 @@ -# -- Default number of instances to start +# -- Default number of instances to start replicaCount: 1 # -- Application name name: proof-manager # -- Overwrites application name -nameOverride: "" +nameOverride: '' image: repository: eu.gcr.io/vrgn-infra-prj @@ -11,16 +11,15 @@ image: name: gaiax/proof-manager # -- Image tag # Uses .Chart.AppVersion if empty - tag: "" + tag: '' # -- Image sha, usually generated by the CI # Uses image.tag if empty - sha: "" + sha: '' # -- Image pull policy pullPolicy: IfNotPresent # -- Image pull secret when internal image is used pullSecrets: deployment-key-light - podAnnotations: {} ## ## Pass extra environment variables to the container. @@ -67,7 +66,7 @@ metrics: port: 2112 log: - level: "INFO" + level: 'INFO' encoding: json ## @@ -114,4 +113,4 @@ ingress: nginx.ingress.kubernetes.io/rewrite-target: /$2 tlsEnabled: true frontendDomain: gaiax.vereign.com - frontendTlsSecretName: cert-manager-tls \ No newline at end of file + frontendTlsSecretName: cert-manager-tls diff --git a/apps/proof-manager/swagger.json b/apps/proof-manager/swagger.json index 2e4faaff64fefb89767a88f78b5d276cfedd84d6..d43658b72a4baf6fd0e0239215b5a918446771af 100644 --- a/apps/proof-manager/swagger.json +++ b/apps/proof-manager/swagger.json @@ -156,9 +156,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/find-by-presentation-id": { @@ -238,9 +236,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/send-presentation-request": { @@ -305,9 +301,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/send-out-of-band-presentation-request": { @@ -373,9 +367,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/out-of-band-proof": { @@ -438,9 +430,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/accept-presentation/{proofRecordId}": { @@ -506,9 +496,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/accept-proof-request/{proofRecordId}": { @@ -612,9 +600,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/delete-proof-request/{proofRecordId}": { @@ -676,9 +662,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/decline-proof-request/{proofRecordId}": { @@ -782,9 +766,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/agent-proofs": { @@ -891,9 +873,7 @@ } } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } }, "/v1/url/{id}": { @@ -916,9 +896,7 @@ "description": "" } }, - "tags": [ - "Proofs" - ] + "tags": ["Proofs"] } } }, @@ -957,11 +935,7 @@ } } }, - "required": [ - "comment", - "connectionId", - "attributes" - ] + "required": ["comment", "connectionId", "attributes"] }, "SendProofRequestBody": { "type": "object", @@ -982,21 +956,14 @@ } }, "attributes": { - "example": [ - "attributeName" - ], + "example": ["attributeName"], "type": "array", "items": { "type": "string" } } }, - "required": [ - "comment", - "schemaId", - "options", - "attributes" - ] + "required": ["comment", "schemaId", "options", "attributes"] } } } diff --git a/apps/ssi-abstraction/package.json b/apps/ssi-abstraction/package.json index a889ae70c83c7f132ee8afa920ede055ce398c82..5ec76770c919f0dc9b952ba4e2cbc420c843c78f 100644 --- a/apps/ssi-abstraction/package.json +++ b/apps/ssi-abstraction/package.json @@ -30,44 +30,39 @@ "@hyperledger/anoncreds-nodejs": "^0.1.0", "@hyperledger/aries-askar-nodejs": "^0.1.0", "@hyperledger/indy-vdr-nodejs": "^0.1.0", + "@nestjs/axios": "^3.0.1", "@nestjs/common": "^10.2.10", "@nestjs/config": "^3.1.1", "@nestjs/core": "^10.2.10", - "@nestjs/mapped-types": "*", "@nestjs/microservices": "^10.2.10", - "@nestjs/platform-express": "^10.2.10", - "@nestjs/swagger": "^7.1.16", "@nestjs/terminus": "^10.1.1", - "axios": "^0.27.2", - "class-validator": "^0.13.2", + "axios": "^1.6.2", "express": "^4.17.3", "joi": "^17.6.0", - "moment": "^2.29.1", - "nats": "^2.6.1", - "pg": "^8.7.3", - "reflect-metadata": "^0.1.13", - "rxjs": "^7.8.1", - "shelljs": "^0.8.5", - "swagger-ui-express": "^4.3.0", - "winston": "^3.6.0", - "winston-elasticsearch": "^0.16.1" + "nats": "^2.18.0", + "rxjs": "^7.2.0", + "winston": "^3.11.0" }, "devDependencies": { + "@types/express": "^4.17.21", + "@types/jest": "^29.5.9", + "@types/node": "^20.9.3", + "@types/supertest": "^2.0.16", "@nestjs/cli": "^10.2.1", "@nestjs/schematics": "^10.0.3", "@nestjs/testing": "^10.2.10", - "@swc/cli": "^0.1.62", - "@swc/core": "^1.3.96", - "@types/express": "^4.17.13", - "@types/jest": "27.0.2", - "@types/node": "^20.9.4", - "@types/shelljs": "^0.8.11", - "@types/supertest": "^2.0.11", - "dotenv-cli": "^4.1.1", - "jest": "^27.2.5", - "rimraf": "^3.0.2", + "@typescript-eslint/eslint-plugin": "^6.12.0", + "@typescript-eslint/parser": "^6.12.0", + "eslint": "^8.54.0", + "eslint-config-prettier": "^9.0.0", + "eslint-plugin-prettier": "^5.0.1", + "jest": "^29.7.0", + "prettier": "^3.1.0", + "rimraf": "^5.0.5", "supertest": "^6.1.3", + "ts-jest": "^29.1.1", "ts-node": "^10.0.0", - "typescript": "^5.3.2" + "tsconfig-paths": "^4.2.0", + "typescript": "~5.3.2" } } diff --git a/apps/ssi-abstraction/src/globalUtils/logger.ts b/apps/ssi-abstraction/src/globalUtils/logger.ts index f59176442ec764ec0e43324bc3ebb729f9cde94b..73c79a3e80f97ca2342f6df064719b032635ec2f 100644 --- a/apps/ssi-abstraction/src/globalUtils/logger.ts +++ b/apps/ssi-abstraction/src/globalUtils/logger.ts @@ -1,4 +1,4 @@ -import type { Logger} from 'winston'; +import type { Logger } from 'winston'; import { ecsFormat } from '@elastic/ecs-winston-format'; import { createLogger, transports } from 'winston'; diff --git a/compose/aries-mediator-service/README.md b/compose/aries-mediator-service/README.md index 7608478df495c2d29a928928804a0a0cd30f4331..f64afa1ae43da8516e5206e0d3181b70a4f9a6e3 100644 --- a/compose/aries-mediator-service/README.md +++ b/compose/aries-mediator-service/README.md @@ -4,7 +4,7 @@ This repository provides a simple process for a developer to run an Aries mediator agent. You should be able to bring the stack on-line by copying `.env.stample` to `.env` and running `docker-compose up`. For more information, keep reading. -## Build & Run +## Build & Run This is setup to be run as is with a simple `docker-compose up`. When run it will fire up the following containers: @@ -14,7 +14,7 @@ You need to accept inbound connections. Most of us are behind firewalls or have If you have a paid ngrok account you can provide your access token as one of the parameters (via the .env file). If not, leave it blank and it'll assume your on the free plan. -Pro Tip 🤓 +Pro Tip 🤓 - Free plans can only keep a connection open for 60 minutes. After this, you will need to restart the stack. If this gets annoying, use a paid plan for a long lived tunnel :) @@ -42,7 +42,7 @@ In the `.env` file override the mediator config environment variable by adding ` MEDIATOR_ARG_FILE=./configs/mediator-with-controller.yml ``` -2. Enable the mediator service in the docker stack +2. Enable the mediator service in the docker stack Remove these two lines from the [docker-compose.yml](./docker-compose.yml) file in the `mediator-controller` service: @@ -107,19 +107,25 @@ mediator_1 | https://ed49-70-67-240-52.ngrok.io?c_i=eyJAdHlwZSI6ICJk The `c_i` parameter is your reusable invitation encoded as base64. Let's decode it and see what's inside: ```json -{"@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation", "@id": "ff02936f-763d-47bc-a6ff-2fcfb66ec55f", "label": "Mediator", "recipientKeys": ["ArW7u6H1B4GLgrEzfPLPdDMQyghHWdBSoGyjdBcE3KJD"], "serviceEndpoint": "https://ed49-70-67-240-52.ngrok.io"} +{ + "@type": "did:sov:BzCbsNYhMrjHiqZDTUASHg;spec/connections/1.0/invitation", + "@id": "ff02936f-763d-47bc-a6ff-2fcfb66ec55f", + "label": "Mediator", + "recipientKeys": ["ArW7u6H1B4GLgrEzfPLPdDMQyghHWdBSoGyjdBcE3KJD"], + "serviceEndpoint": "https://ed49-70-67-240-52.ngrok.io" +} ``` Pro Tip 🤓 The invitation will be regenerated every time you restart the docker stack for two important reason: -1. The `ngrok` URL changes with restarts; and +1. The `ngrok` URL changes with restarts; and 2. The database is not persistent. This is where wallet initialization data, like [verkey](https://hyperledger.github.io/indy-did-method/) is stored. This will cause the `@id` and `recipientKeys` properties to change in the invitation (`c_i` payload above). -The general workaround steps are: +The general workaround steps are: -- expose the caddy ports outside of the container; +- expose the caddy ports outside of the container; - start `ngrok` outside of a container and update the MEDIATOR_URL in [start.sh](./acapy/start.sh); - give postgres a persistent volume; @@ -137,7 +143,7 @@ MEDIATOR_URL=https://ed49-70-67-240-52.ngrok.io?c_i=eyJAdHlwZSI6ICJkaWQ6c292OkJ6 I struggled quite a bit with how HTTP/s and WSS are managed internally. The key, for me, was the `--endpoint` argument in ACA-py. To run a mediator, and maybe other agents, it takes two params for this argument. The first is the HTTP/s endpoint and the second is the `WSS` endpoint. -The HTTP/s endpoints, as per the docs on this param, will be used for invitations. Its going to be how your wallet finds and opens a dialogue with the mediator. Once a connection is established the WSS endpoint will be how the mediator and your wallet primarily communicated; they will message over the WebSocket. +The HTTP/s endpoints, as per the docs on this param, will be used for invitations. Its going to be how your wallet finds and opens a dialogue with the mediator. Once a connection is established the WSS endpoint will be how the mediator and your wallet primarily communicated; they will message over the WebSocket. ### Can I use two URLs rather than one? diff --git a/compose/aries-mediator-service/acapy/controller/.eslintrc.json b/compose/aries-mediator-service/acapy/controller/.eslintrc.json index 2c4a51ac13c2b2cf74776a8a612702d2132a8c83..5154dc7495af1c138099de091bf777c3c6044d19 100644 --- a/compose/aries-mediator-service/acapy/controller/.eslintrc.json +++ b/compose/aries-mediator-service/acapy/controller/.eslintrc.json @@ -9,31 +9,13 @@ "ecmaVersion": 2018, "sourceType": "module" }, - "plugins": [ - "@typescript-eslint" - ], - "extends": [ - "plugin:@typescript-eslint/recommended" - ], + "plugins": ["@typescript-eslint"], + "extends": ["plugin:@typescript-eslint/recommended"], "rules": { - "indent": [ - "error", - 2, - { "SwitchCase": 1 } - ], - "linebreak-style": [ - "error", - "unix" - ], - "quotes": [ - "error", - "single", - {"avoidEscape": true} - ], - "semi": [ - "error", - "always" - ], + "indent": ["error", 2, { "SwitchCase": 1 }], + "linebreak-style": ["error", "unix"], + "quotes": ["error", "single", { "avoidEscape": true }], + "semi": ["error", "always"], "@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-empty-interface": "off" } diff --git a/compose/aries-mediator-service/acapy/controller/README.md b/compose/aries-mediator-service/acapy/controller/README.md index 9edeaa41760d10b81d6e3d155236a8e973011df6..3d7b2e44d9b6fc054310f844e8d11ef9bceae9b6 100644 --- a/compose/aries-mediator-service/acapy/controller/README.md +++ b/compose/aries-mediator-service/acapy/controller/README.md @@ -15,16 +15,16 @@ Getting up and running is as easy as 1, 2, 3. 1. Make sure you have [NodeJS](https://nodejs.org/) and [npm](https://www.npmjs.com/) installed. 2. Install your dependencies - ``` - cd path/to/mediator-controller - npm install - ``` + ``` + cd path/to/mediator-controller + npm install + ``` 3. Start your app - ``` - npm start - ``` + ``` + npm start + ``` ## Testing diff --git a/compose/aries-mediator-service/acapy/controller/jest.config.js b/compose/aries-mediator-service/acapy/controller/jest.config.js index 570708985649ff28fcb5dce1419a2ca19b434bba..ebe914b195cd46dbf4f32c959a2e7a8763f3da27 100644 --- a/compose/aries-mediator-service/acapy/controller/jest.config.js +++ b/compose/aries-mediator-service/acapy/controller/jest.config.js @@ -3,7 +3,7 @@ module.exports = { testEnvironment: 'node', globals: { 'ts-jest': { - diagnostics: false - } - } + diagnostics: false, + }, + }, }; diff --git a/compose/aries-mediator-service/acapy/controller/src/app.hooks.ts b/compose/aries-mediator-service/acapy/controller/src/app.hooks.ts index 1be533832d0cdc2d23fc412089d56c4cdf65bbfe..fa7fe02279c41772b1e6917c7f1ddff8ca34f07f 100644 --- a/compose/aries-mediator-service/acapy/controller/src/app.hooks.ts +++ b/compose/aries-mediator-service/acapy/controller/src/app.hooks.ts @@ -9,7 +9,7 @@ export default { create: [], update: [], patch: [], - remove: [] + remove: [], }, after: { @@ -19,7 +19,7 @@ export default { create: [], update: [], patch: [], - remove: [] + remove: [], }, error: { @@ -29,6 +29,6 @@ export default { create: [], update: [], patch: [], - remove: [] - } + remove: [], + }, }; diff --git a/compose/aries-mediator-service/acapy/controller/src/app.ts b/compose/aries-mediator-service/acapy/controller/src/app.ts index a6733d99fb0cad797b34ebc9ac1d09c2e92f92db..e297458e468f77a28d015a6ce7fde58154262286 100644 --- a/compose/aries-mediator-service/acapy/controller/src/app.ts +++ b/compose/aries-mediator-service/acapy/controller/src/app.ts @@ -20,14 +20,18 @@ import { HookContext as FeathersHookContext } from '@feathersjs/feathers'; // Don't remove this comment. It's needed to format import lines nicely. const app: Application = express(feathers()); -export type HookContext<T = any> = { app: Application } & FeathersHookContext<T>; +export type HookContext<T = any> = { + app: Application; +} & FeathersHookContext<T>; // Load app configuration app.configure(configuration()); // Enable security, CORS, compression, favicon and body parsing -app.use(helmet({ - contentSecurityPolicy: false -})); +app.use( + helmet({ + contentSecurityPolicy: false, + }), +); app.use(cors()); app.use(compress()); app.use(express.json()); diff --git a/compose/aries-mediator-service/acapy/controller/src/channels.ts b/compose/aries-mediator-service/acapy/controller/src/channels.ts index 9ac5e3aff9646990f84350955b4637af773d1f51..fcee5e35d7dc8a228f4f44951a53c8ded7897f0e 100644 --- a/compose/aries-mediator-service/acapy/controller/src/channels.ts +++ b/compose/aries-mediator-service/acapy/controller/src/channels.ts @@ -2,8 +2,8 @@ import '@feathersjs/transport-commons'; import { HookContext } from '@feathersjs/feathers'; import { Application } from './declarations'; -export default function(app: Application): void { - if(typeof app.channel !== 'function') { +export default function (app: Application): void { + if (typeof app.channel !== 'function') { // If no real-time functionality has been configured just return return; } @@ -16,7 +16,7 @@ export default function(app: Application): void { app.on('login', (authResult: any, { connection }: any): void => { // connection can be undefined if there is no // real-time connection, e.g. when logging in via REST - if(connection) { + if (connection) { // Obtain the logged in user from the connection // const user = connection.user; diff --git a/compose/aries-mediator-service/acapy/controller/src/index.ts b/compose/aries-mediator-service/acapy/controller/src/index.ts index f75fc445ce8e6a4a826f049261e0f827cad080cd..8c0e7ef8828de1d08ade6a46d352fe8124d90605 100644 --- a/compose/aries-mediator-service/acapy/controller/src/index.ts +++ b/compose/aries-mediator-service/acapy/controller/src/index.ts @@ -5,7 +5,7 @@ const port = app.get('port'); const server = app.listen(port); process.on('unhandledRejection', (reason, p) => - logger.error('Unhandled Rejection at: Promise ', p, reason) + logger.error('Unhandled Rejection at: Promise ', p, reason), ); process.on('SIGTERM', () => { @@ -20,6 +20,6 @@ server.on('listening', () => logger.info( 'Feathers application started on http://%s:%d', app.get('host'), - port - ) + port, + ), ); diff --git a/compose/aries-mediator-service/acapy/controller/src/logger.ts b/compose/aries-mediator-service/acapy/controller/src/logger.ts index 8fb21876a5e681926897080d19877c86c1eed236..2fe5469704ecebba224b38b39de8a0535f20c112 100644 --- a/compose/aries-mediator-service/acapy/controller/src/logger.ts +++ b/compose/aries-mediator-service/acapy/controller/src/logger.ts @@ -4,13 +4,8 @@ import { createLogger, format, transports } from 'winston'; const logger = createLogger({ // To see more detailed errors, change this to 'debug' level: (process.env.LOG_LEVEL || 'info').toLowerCase(), - format: format.combine( - format.splat(), - format.simple() - ), - transports: [ - new transports.Console() - ], + format: format.combine(format.splat(), format.simple()), + transports: [new transports.Console()], }); export default logger; diff --git a/compose/aries-mediator-service/acapy/controller/src/middleware/index.ts b/compose/aries-mediator-service/acapy/controller/src/middleware/index.ts index e78268375c040ff482811457250584563916b613..0bad39e08b80f58b7bb133290bef344dccab743c 100644 --- a/compose/aries-mediator-service/acapy/controller/src/middleware/index.ts +++ b/compose/aries-mediator-service/acapy/controller/src/middleware/index.ts @@ -2,5 +2,4 @@ import { Application } from '../declarations'; // Don't remove this comment. It's needed to format import lines nicely. // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function -export default function (app: Application): void { -} +export default function (app: Application): void {} diff --git a/compose/aries-mediator-service/acapy/controller/src/models/enums.ts b/compose/aries-mediator-service/acapy/controller/src/models/enums.ts index c1189b913bf190f586ea9f36202c3711c66421ed..8dce6687df4f0a02f2dbbcd55d4b333ada79ceec 100644 --- a/compose/aries-mediator-service/acapy/controller/src/models/enums.ts +++ b/compose/aries-mediator-service/acapy/controller/src/models/enums.ts @@ -16,5 +16,5 @@ export enum ConnectionState { export enum ConnectionServiceAction { Accept_Connection_Request = 'Accept-Request', - Send_Connection_Ping = 'Send-Ping' + Send_Connection_Ping = 'Send-Ping', } diff --git a/compose/aries-mediator-service/acapy/controller/src/models/errors.ts b/compose/aries-mediator-service/acapy/controller/src/models/errors.ts index 98f482b911cbb7687ee55d3e75893f05e7676e4c..e1e199b8155be9378880855a368de857e1eb3bc5 100644 --- a/compose/aries-mediator-service/acapy/controller/src/models/errors.ts +++ b/compose/aries-mediator-service/acapy/controller/src/models/errors.ts @@ -5,7 +5,11 @@ export class UndefinedAppError extends Error {} export class DuplicatedProfileError extends Error {} export class AriesAgentError extends FeathersError { - constructor(message: string | Error, code: number | undefined, data?: unknown) { + constructor( + message: string | Error, + code: number | undefined, + data?: unknown, + ) { super(message, 'aries-agent-error', code || 500, 'AriesAgentError', data); } } diff --git a/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.class.ts b/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.class.ts index 11ead18afcb7a87f9f77a35caf44b031e9173e2a..ecdf3499715a742c17d784970917bb15a06fd506 100644 --- a/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.class.ts +++ b/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.class.ts @@ -38,26 +38,30 @@ export class AriesAgent { case ServiceType.Connection: if (data.action === ConnectionServiceAction.Accept_Connection_Request) { return this.acceptConnectionRequest(data.data.connection_id); - } else if (data.action === ConnectionServiceAction.Send_Connection_Ping) { + } else if ( + data.action === ConnectionServiceAction.Send_Connection_Ping + ) { return this.sendConnectionPing(data.data.connection_id); } default: return new NotImplemented( - `The operation ${data.service}/${data.action} is not supported` + `The operation ${data.service}/${data.action} is not supported`, ); } } - private async acceptConnectionRequest(connection_id: string): Promise<boolean> { + private async acceptConnectionRequest( + connection_id: string, + ): Promise<boolean> { try { const url = `${this.acaPyUtils.getAdminUrl()}/connections/${connection_id}/accept-request`; logger.debug( - `Accept connection request for connection with id ${connection_id}` + `Accept connection request for connection with id ${connection_id}`, ); const response = await Axios.post( url, {}, - this.acaPyUtils.getRequestConfig() + this.acaPyUtils.getRequestConfig(), ); return response.status === 200 ? true : false; } catch (e) { @@ -65,23 +69,21 @@ export class AriesAgent { throw new AriesAgentError( error.response?.statusText || error.message, error.response?.status, - error.response?.data + error.response?.data, ); } } private async sendConnectionPing(connection_id: string): Promise<boolean> { try { - logger.debug( - `Ping connection with id ${connection_id}` - ); + logger.debug(`Ping connection with id ${connection_id}`); const url = `${this.acaPyUtils.getAdminUrl()}/connections/${connection_id}/send-ping`; const response = await Axios.post( url, {}, - this.acaPyUtils.getRequestConfig() + this.acaPyUtils.getRequestConfig(), ); return response.status === 200 ? true : false; } catch (e) { @@ -89,7 +91,7 @@ export class AriesAgent { throw new AriesAgentError( error.response?.statusText || error.message, error.response?.status, - error.response?.data + error.response?.data, ); } } diff --git a/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.hooks.ts b/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.hooks.ts index b93c468e65c0eabebd8c44e4509ec0ed81e90678..b6ac9edd129a0ef0b3f2204b7927ac36efb3f5a9 100644 --- a/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.hooks.ts +++ b/compose/aries-mediator-service/acapy/controller/src/services/aries-agent/aries-agent.hooks.ts @@ -28,7 +28,7 @@ export default { async (context: HookContext): Promise<HookContext> => { console.error( `Error in ${context.path} calling ${context.method} method`, - context.error + context.error, ); return context; }, diff --git a/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.class.ts b/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.class.ts index b34dcc0714310ba91b96b89013296f9dd1f3362c..5b35a64fa95d90fcc66a659b9f6bbbb57c373425 100644 --- a/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.class.ts +++ b/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.class.ts @@ -5,7 +5,7 @@ import { ConnectionState, ConnectionServiceAction, ServiceType, - WebhookTopic + WebhookTopic, } from '../../models/enums'; import { AriesAgentData } from '../aries-agent/aries-agent.class'; @@ -30,7 +30,7 @@ export class Webhooks implements Partial<ServiceMethods<Data>> { async create(data: Data, params?: Params): Promise<any> { const topic = params?.route?.topic; const state = data?.state; - console.log("Received webhook:", topic, state); + console.log('Received webhook:', topic, state); switch (topic) { case WebhookTopic.Connections: if (state === ConnectionState.Request) { diff --git a/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.service.ts b/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.service.ts index 2edeb8e655f77bb934ec8e5e4d1bc020f9dff1dd..85e87698905293816f6e15db8c95a1334cd78ad0 100644 --- a/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.service.ts +++ b/compose/aries-mediator-service/acapy/controller/src/services/webhooks/webhooks.service.ts @@ -13,7 +13,7 @@ declare module '../../declarations' { export default function (app: Application): void { const options = { - paginate: app.get('paginate') + paginate: app.get('paginate'), }; // Initialize our service with any options it requires diff --git a/compose/aries-mediator-service/acapy/controller/src/utils/aca-py.ts b/compose/aries-mediator-service/acapy/controller/src/utils/aca-py.ts index 99f1bb8d7a303fc6aaa534468079504adc5bae66..054ee5ea31f3b56df34a77bc6cd6e280f1050f23 100644 --- a/compose/aries-mediator-service/acapy/controller/src/utils/aca-py.ts +++ b/compose/aries-mediator-service/acapy/controller/src/utils/aca-py.ts @@ -16,7 +16,7 @@ export class AcaPyUtils { if (!this.instance) { if (!app) { throw new UndefinedAppError( - 'Error creating a new instance of [AcaPyUtils]: no app was provided' + 'Error creating a new instance of [AcaPyUtils]: no app was provided', ); } this.instance = new AcaPyUtils(app); diff --git a/compose/aries-mediator-service/acapy/controller/test/app.test.ts b/compose/aries-mediator-service/acapy/controller/test/app.test.ts index 5493622dc7502ee0182f14b65a2bc323f2909276..d14c96d4fac8722686e332f0cd1d26266e729f36 100644 --- a/compose/aries-mediator-service/acapy/controller/test/app.test.ts +++ b/compose/aries-mediator-service/acapy/controller/test/app.test.ts @@ -6,22 +6,23 @@ import axios from 'axios'; import app from '../src/app'; const port = app.get('port') || 8998; -const getUrl = (pathname?: string): string => url.format({ - hostname: app.get('host') || 'localhost', - protocol: 'http', - port, - pathname -}); +const getUrl = (pathname?: string): string => + url.format({ + hostname: app.get('host') || 'localhost', + protocol: 'http', + port, + pathname, + }); describe('Feathers application tests (with jest)', () => { let server: Server; - beforeAll(done => { + beforeAll((done) => { server = app.listen(port); server.once('listening', () => done()); }); - afterAll(done => { + afterAll((done) => { server.close(done); }); @@ -40,8 +41,8 @@ describe('Feathers application tests (with jest)', () => { try { await axios.get(getUrl('path/to/nowhere'), { headers: { - 'Accept': 'text/html' - } + Accept: 'text/html', + }, }); } catch (error) { const { response } = error; @@ -53,7 +54,7 @@ describe('Feathers application tests (with jest)', () => { it('shows a 404 JSON error without stack trace', async () => { expect.assertions(4); - + try { await axios.get(getUrl('path/to/nowhere')); } catch (error) { diff --git a/compose/aries-mediator-service/acapy/controller/test/services/webhooks.test.ts b/compose/aries-mediator-service/acapy/controller/test/services/webhooks.test.ts index 2587ecbb2c62268b6416c5abb3621d3723b7688b..62f45b1cf413bb2d46f9138baf6a3b7f77fee007 100644 --- a/compose/aries-mediator-service/acapy/controller/test/services/webhooks.test.ts +++ b/compose/aries-mediator-service/acapy/controller/test/services/webhooks.test.ts @@ -1,6 +1,6 @@ import app from '../../src/app'; -describe('\'webhooks\' service', () => { +describe("'webhooks' service", () => { it('registered the service', () => { const service = app.service('webhooks/topic/:topic'); expect(service).toBeTruthy(); diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml index affd2e5e369fd0c948deab35a3c58ca64d0a7ad9..9f3530f4061e469d1f981ec4b6d1f2ebf73521dc 100644 --- a/compose/docker-compose.yml +++ b/compose/docker-compose.yml @@ -9,8 +9,7 @@ services: init: true ports: - "3003:3003" - env_file: - ./env/connection-manager.env + env_file: ./env/connection-manager.env depends_on: - db - nats @@ -24,8 +23,7 @@ services: init: true ports: - "3005:3005" - env_file: - ./env/attestation-manager.env + env_file: ./env/attestation-manager.env depends_on: - db - nats @@ -39,8 +37,7 @@ services: init: true ports: - "3007:3007" - env_file: - ./env/proof-manager.env + env_file: ./env/proof-manager.env depends_on: - db - nats @@ -56,8 +53,7 @@ services: - "3009:3009" - "3010:3010" - "4000:4000" - env_file: - ./env/ssi-abstraction.env + env_file: ./env/ssi-abstraction.env depends_on: - db - nats @@ -69,7 +65,7 @@ services: ports: - 5432:5432 healthcheck: - test: [ "CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root" ] + test: ["CMD", "pg_isready", "-q", "-d", "postgres", "-U", "root"] timeout: 45s interval: 10s retries: 10 diff --git a/documentation/Attestation_Manager_Complete.postman_collection.json b/documentation/Attestation_Manager_Complete.postman_collection.json index 4e194026f38b16d6d90b25838d0cf95c897b7208..97596a08e47b9a62abb2d938e0994f1c107146b7 100644 --- a/documentation/Attestation_Manager_Complete.postman_collection.json +++ b/documentation/Attestation_Manager_Complete.postman_collection.json @@ -1,619 +1,528 @@ { - "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 + "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": [] + } + ] +} diff --git a/documentation/Connection_Manager.postman_collection.json b/documentation/Connection_Manager.postman_collection.json index 8d4d53a0813dd1a454719ac6c68455e1fd25b0aa..0d4e21c8177d4747cb9e38b0b2c10117006c1525 100644 --- a/documentation/Connection_Manager.postman_collection.json +++ b/documentation/Connection_Manager.postman_collection.json @@ -1,507 +1,457 @@ { - "info": { - "_postman_id": "2409bab2-cd0d-4956-8f46-bb9919b46ae7", - "name": "Connection Manager", - "description": "StartFragment\n\nThe Connection Manager is a collection of requests which can be used to create the connection invitation URL, to get all connections and their information.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "17714957" - }, - "item": [ - { - "name": "Create-Invitation-URL", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "if (res.statusCode == 200) {\r", - "\tpm.environment.set(\"conn-id\", res.data.connection.id);\r", - "\r", - "\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div>Scan the QR code below for connetion with id {{data.connection.id}}</div>\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", - "\tpm.visualizer.set(template, res);\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{Con_man_baseURL}}/v1/invitation-url?alias=member", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "invitation-url" - ], - "query": [ - { - "key": "alias", - "value": "member" - }, - { - "key": "alias", - "value": "subscriber", - "disabled": true - } - ] - }, - "description": "#### **Description** **:**\n\nIt is used to create the connection invitation URL to establish the peer to peer connection between two aeries agents or the participant user and the principal user.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| alias | required | \"member\" or \"subscriber\" |\n\n> for this request, the request parameter needs to be provided as \"alias\" which is required and only accepts \"member\" or \"subscriber\".\n> \n> **\"member\" as alias** : the connection invitation is created for the member.\n> \n> **\"subscriber\" as alias** : the connection invitation is created for the subscriber.\n\n> **Connecting as a member :**\n> \n> A member is someone who is enrolling for first time in GaiaX ecosystem. The principal user will receive membership credential once connected as member and the connection will move to \"trusted\" state.\n\n> **Connecting as subscriber :**\n> \n> A subscriber is someone who is already connected with some participant in GaiaX ecosystem and is willing to connect (subscribe) with some other participants in ecosystem. The principal user need to present proof against membership credential. The proof presentation will be requested upon successful connection.\n> \n> And once the proof is presented successfully, the connection will move to \"trusted\" state.\n\n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → invitationUrl` | It returns the invitation URL to receive connection on principal end. |\n| `data → invitation` | It returns the invitation object to receive connection on principal end. |\n| `data → connection` | It returns connection object which contains the information about the connection. |\n| `data → connection → id` | It returns the connection unique identifier. |\n| `data → connection → createdAt` | It returns the created date and time. |\n| `data → connection → did` | It returns the connection DID. |\n| `data → connection → state` | It returns the connection state. |\n| `data → connection → role` | It returns the agent role. |\n| `data → connection → alias` | It returns the alias which we set at time of creating or receiving the connection. |\n| `data → connection → multiUseInvitation` | It returns the boolean which indicates whether the connection is multi-use or not. |" - }, - "response": [ - { - "name": "Create-Invitation-URL", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{Con_man_baseURL}}/v1/invitation-url?alias=member", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "invitation-url" - ], - "query": [ - { - "key": "alias", - "value": "member" - }, - { - "key": "alias", - "value": "subscriber", - "disabled": true - } - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:18:04 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "1989" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"7c5-cp94PvE2DNowIosoNk1tOsH7jDY\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection created successfully\",\n \"data\": {\n \"invitationUrl\": \"https://gaiax.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJkOTMzOTk5Mi02ZjZmLTQxYzEtYjQ0Yy1lMjNkMjUwMGMzNWIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiREFnNEhrNzkyRXh6SFpRNjhHdktoY3ZrQzVYV3VqUHdiRlpmaWhTVlQyOFUiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9nYWlheC52ZXJlaWduLmNvbTo0NDMvb2NtL2RpZGNvbW0iLCJyb3V0aW5nS2V5cyI6W119\",\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"d9339992-6f6f-41c1-b44c-e23d2500c35b\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"connection\": {\n \"_tags\": {},\n \"metadata\": {},\n \"id\": \"ffc4cd40-ae18-42f7-87c2-fe4d45b6e300\",\n \"createdAt\": \"2022-06-15T09:18:04.978Z\",\n \"did\": \"PKjWC17JFYBPLAjdeaZoaK\",\n \"didDoc\": {\n \"@context\": \"https://w3id.org/did/v1\",\n \"publicKey\": [\n {\n \"id\": \"PKjWC17JFYBPLAjdeaZoaK#1\",\n \"controller\": \"PKjWC17JFYBPLAjdeaZoaK\",\n \"type\": \"Ed25519VerificationKey2018\",\n \"publicKeyBase58\": \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n }\n ],\n \"service\": [\n {\n \"id\": \"PKjWC17JFYBPLAjdeaZoaK#IndyAgentService\",\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\",\n \"type\": \"IndyAgent\",\n \"priority\": 0,\n \"recipientKeys\": [\n \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n ],\n \"routingKeys\": []\n }\n ],\n \"authentication\": [\n {\n \"publicKey\": \"PKjWC17JFYBPLAjdeaZoaK#1\",\n \"type\": \"Ed25519SignatureAuthentication2018\"\n }\n ],\n \"id\": \"PKjWC17JFYBPLAjdeaZoaK\"\n },\n \"verkey\": \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\",\n \"state\": \"invited\",\n \"role\": \"inviter\",\n \"alias\": \"member\",\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"d9339992-6f6f-41c1-b44c-e23d2500c35b\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"multiUseInvitation\": false\n }\n }\n}" - } - ] - }, - { - "name": "Get-Connection-by-ConnectionID", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "let template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:green; text-transform: capitalize;\">\r", - " <h2>{{data.records.status}}</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "pm.visualizer.set(template, res);" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{Con_man_baseURL}}/v1/connections/{{conn-id}}", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "connections", - "{{conn-id}}" - ] - }, - "description": "#### **Description** **:**\n\nThis request is used to fetch connection information for the connection id provided in URL.\n\n> It also provides state of the connection established.\n\n \n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → records → id` | It returns the unique identifier for connection table. |\n| `data → records → connectionId` | It returns the connection unique identifier. |\n| `data → records → participantDid` | It returns the participant DID. |\n| `data → records → theirDid` | It returns the principal DID. |\n| `data → records → theirLabel` | It returns the email of the principal. |\n| `data → records → createdDate` | It returns the created date. |\n| `data → records → updatedDate` | It returns the updated date. |\n| `data → records → isActive` | It returns the boolean value which indicates record is active. |" - }, - "response": [ - { - "name": "Get-Connection-by-ConnectionID", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{Con_man_baseURL}}/v1/connections/{{conn-id}}", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "connections", - "{{conn-id}}" - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:25:00 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "411" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"19b-TySvMVsRlQAW5a6BNN0k6i1Lo50\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"records\": {\n \"id\": \"0f8a7f07-f064-45af-ae0a-a98c5b721d04\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"status\": \"trusted\",\n \"participantDid\": \"R5LHJTmiuP8PRtH74SVHXb\",\n \"theirDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"theirLabel\": \"test_corp@vomoto.com\",\n \"createdDate\": \"2022-06-15T09:24:15.248Z\",\n \"updatedDate\": \"2022-06-15T09:24:56.988Z\",\n \"isActive\": true\n }\n }\n}" - } - ] - }, - { - "name": "Get-Connections", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "let template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:green; text-transform: capitalize;\">\r", - " <h2>{{data.records.status}}</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "pm.visualizer.set(template, res);" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{Con_man_baseURL}}/v1/connections", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "connections" - ], - "query": [ - { - "key": "participantDID", - "value": "Jv5JtLcLuEeByKazGBtfSC", - "disabled": true - }, - { - "key": "status", - "value": "trusted", - "disabled": true - }, - { - "key": "pageSize", - "value": "5", - "disabled": true - }, - { - "key": "page", - "value": "2", - "disabled": true - } - ] - }, - "description": "#### **Description** **:**\n\nThis request fetches the connection information against the provided participantDID otherwise all the connections are fetched.\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| participantDID | required | `participantDID` <br>should be provided in query parameter. |\n| status | no | `status` <br>should be provided in query parameter. It filters the connections list according the provided status 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. |\n\n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → count` | It returns the total number of records available in the table for matching query. |\n| `data → records → id` | It returns the unique identifier for connection table. |\n| `data → records → connectionId` | It returns the connection unique identifier. |\n| `data → records → participantDid` | It returns the participant DID. |\n| `data → records → theirDid` | It returns the principal DID. |\n| `data → records → theirLabel` | It returns the email of the principal. |\n| `data → records → createdDate` | It returns the created date. |\n| `data → records → updatedDate` | It returns the updated date. |\n| `data → records → isActive` | It returns the boolean value which indicates record is active. |" - }, - "response": [ - { - "name": "Get-Connections", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{Con_man_baseURL}}/v1/connections", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "connections" - ], - "query": [ - { - "key": "participantDID", - "value": "3zrMzUB6fur6snh5u4eiaQ", - "disabled": true - }, - { - "key": "status", - "value": "", - "disabled": true - }, - { - "key": "pageSize", - "value": "", - "disabled": true - }, - { - "key": "page", - "value": "", - "disabled": true - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:25:28 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "3180" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"c6c-VFB0g130QAnHpy+JUr0Gx7WAWmM\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"count\": 111,\n \"records\": [\n {\n \"id\": \"02f41110-18b7-4d1f-89d4-b418cf2d603a\",\n \"connectionId\": \"24402e32-234b-453f-a4cf-9f3e94ed85ab\",\n \"status\": \"complete\",\n \"participantDid\": \"BbiM3ypCFV49iqwVKnQ3Pt\",\n \"theirDid\": \"6XYGkoJanFdNfQCF7yy8rx\",\n \"theirLabel\": \"emilie@vomoto.com\",\n \"createdDate\": \"2022-06-09T14:53:40.457Z\",\n \"updatedDate\": \"2022-06-09T14:54:40.301Z\",\n \"isActive\": false\n },\n {\n \"id\": \"049ec6ed-8645-465b-8f3a-fdd438aed36b\",\n \"connectionId\": \"fd96855b-c979-4125-95ba-d2535e63dfe6\",\n \"status\": \"invited\",\n \"participantDid\": \"Jv5JtLcLuEeByKazGBtfSC\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-08T13:26:16.708Z\",\n \"updatedDate\": \"2022-06-08T13:26:16.708Z\",\n \"isActive\": false\n },\n {\n \"id\": \"092b1789-2522-44e1-9de7-de00c8e4e601\",\n \"connectionId\": \"719ddbe9-7dce-43df-b4be-4714bcca20a7\",\n \"status\": \"complete\",\n \"participantDid\": \"9DJSEsZpu6Neh2zypBGJoA\",\n \"theirDid\": \"SMrr5oVvxW1xWCfetQdYUn\",\n \"theirLabel\": \"rangoon@vomoto.com\",\n \"createdDate\": \"2022-06-08T14:40:13.868Z\",\n \"updatedDate\": \"2022-06-08T14:40:23.967Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0af9b87d-50ad-4faa-ad97-4ba1ea74af73\",\n \"connectionId\": \"2b092454-05e6-4687-85e7-61c9ec4be97c\",\n \"status\": \"invited\",\n \"participantDid\": \"2j7hMxDhLwR6ya8Ptz5ewv\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-06T12:09:07.844Z\",\n \"updatedDate\": \"2022-06-06T12:09:07.844Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0b1eb233-0fdc-43ba-887e-01ca49f0984a\",\n \"connectionId\": \"1279a5c1-c7f1-4abe-bece-816f5e710050\",\n \"status\": \"invited\",\n \"participantDid\": \"4WZPvgYQoiiyKEwePV2th1\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-07T12:39:18.101Z\",\n \"updatedDate\": \"2022-06-07T12:39:18.101Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0b369941-5648-4475-aff3-4b12f6d8f3c2\",\n \"connectionId\": \"48afe258-dc0a-4c8b-a0f1-4b346e20f13c\",\n \"status\": \"invited\",\n \"participantDid\": \"NdDAdo5Kg2RvKCNZp62ehS\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-08T14:14:37.972Z\",\n \"updatedDate\": \"2022-06-08T14:14:37.972Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0e6c6705-9b8f-4cdb-a5ea-ab7651512e6a\",\n \"connectionId\": \"e0eb278f-3283-419c-95ae-85ed0b4007de\",\n \"status\": \"responded\",\n \"participantDid\": \"P7jc1nckvYDu4aVxGQeS1z\",\n \"theirDid\": \"NEfdsLk7xnxCui4RbNJj5S\",\n \"theirLabel\": \"alena@vomoto.com\",\n \"createdDate\": \"2022-06-09T13:44:50.029Z\",\n \"updatedDate\": \"2022-06-09T13:45:01.246Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0ea21690-9127-47cf-aad6-5c55721dbae2\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"status\": \"trusted\",\n \"participantDid\": \"TaojhXfMbbKgoiE8FjMDUG\",\n \"theirDid\": \"JmQBgTUpfu8A7egsv1ib4s\",\n \"theirLabel\": \"sam\",\n \"createdDate\": \"2022-06-14T10:35:42.300Z\",\n \"updatedDate\": \"2022-06-14T10:43:59.067Z\",\n \"isActive\": true\n },\n {\n \"id\": \"0f8a7f07-f064-45af-ae0a-a98c5b721d04\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"status\": \"trusted\",\n \"participantDid\": \"R5LHJTmiuP8PRtH74SVHXb\",\n \"theirDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"theirLabel\": \"test_corp@vomoto.com\",\n \"createdDate\": \"2022-06-15T09:24:15.248Z\",\n \"updatedDate\": \"2022-06-15T09:24:56.988Z\",\n \"isActive\": true\n },\n {\n \"id\": \"12870002-9220-4e3b-810f-369ef4351e51\",\n \"connectionId\": \"c559ed17-cbce-4992-8d36-4ffb3550988b\",\n \"status\": \"invited\",\n \"participantDid\": \"AeB43tLJgwCLPR3CsjwcSU\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-06T11:42:52.186Z\",\n \"updatedDate\": \"2022-06-06T11:42:52.186Z\",\n \"isActive\": false\n }\n ]\n }\n}" - } - ] - }, - { - "name": "Accept-Connection", - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\r\n \"invitationUrl\": \"http://3.111.77.38:4021?c_i=eyJAdHlwZSI6ImRpZDpzb3Y6QnpDYnNOWWhNcmpIaXFaRFRVQVNIZztzcGVjL2Nvbm5lY3Rpb25zLzEuMC9pbnZpdGF0aW9uIiwiQGlkIjoiNTY0ZTM3NzQtZGViNy00ZTU2LWEyNTUtZWE3MmUyOWFlZmY4IiwibGFiZWwiOiJkZW1vNyIsInJlY2lwaWVudEtleXMiOlsiSHhVeVl4N1pIQnQ4ZHBCbk1MOVA4d0NqSm1jTmFFVGUzR2EzQjdHZ3l4VWoiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cDovLzMuMTExLjc3LjM4OjQwMjEiLCJyb3V0aW5nS2V5cyI6W119\",\r\n \"autoAcceptConnection\": true\r\n}\r\n", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "http://3.111.77.38:3003/v1/accept-connection-invitation", - "protocol": "http", - "host": [ - "3", - "111", - "77", - "38" - ], - "port": "3003", - "path": [ - "v1", - "accept-connection-invitation" - ] - } - }, - "response": [] - }, - { - "name": "Get-Connection-Information", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{Con_man_baseURL}}/v1/connection-information?connectionId={{conn-id}}", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "connection-information" - ], - "query": [ - { - "key": "did", - "value": "MJys9zJZ1m2S6dFccFJQJs", - "disabled": true - }, - { - "key": "connectionId", - "value": "{{conn-id}}" - } - ] - }, - "description": "#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → records → issueCredentials` | It returns the array of issued credentials against connection id. |\n| `data → records → issueCredentials → id` | It returns the unique identifier for issued credentials record in table. |\n| `data → records → issueCredentials → credentialId` | It returns the unique identifier for issued credentials. |\n| `data → records → issueCredentials → state` | It returns the state of the issued credentials. |\n| `data → records → issueCredentials → principalDid` | It returns the principal DID. |\n| `data → records → issueCredentials → connectionId` | It returns the connection ID. |\n| `data → records → issueCredentials → createdDate` | It returns the created date. |\n| `data → records → issueCredentials → updatedDate` | It returns the updated date. |\n| `data → records → issueCredentials → expirationDate` | It returns the expiration date of issued credentials. |\n| `data → records → presenProofs` | It returns the list of proofs presentation. |\n| `data → records → presenProofs → id` | It returns the unique identifier for proofs record in table. |\n| `data → records → presenProofs → presentation_id` | It returns the unique identifier for proof presentation. |\n| `data → records → presenProofs → connectionId` | It returns the connection ID. |\n| `data → records → presenProofs → credential_def_id` | It returns the credential def id. |\n| `data → records → presenProofs → schemaId` | It returns the schema id. |\n| `data → records → presenProofs → their_did` | It returns the principal DID. |\n| `data → records → presenProofs → status` | It returns the status of proof presentation. |\n| `data → records → presenProofs → created_date` | It returns the created date. |\n| `data → records → presenProofs → updated_date` | It returns the updated date. |" - }, - "response": [ - { - "name": "Get-Connection-Information", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{Con_man_baseURL}}/v1/connection-information?did&connectionId={{conn-id}}", - "host": [ - "{{Con_man_baseURL}}" - ], - "path": [ - "v1", - "connection-information" - ], - "query": [ - { - "key": "did", - "value": null - }, - { - "key": "connectionId", - "value": "{{conn-id}}" - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:28:39 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "1320" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"528-EZqt2BArtofGni3d7fvQseXpEg8\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection information fetch successfully\",\n \"data\": {\n \"records\": {\n \"issueCredentials\": [\n {\n \"id\": \"8bf0c9bf-c008-4324-b462-74ce2d0948ad\",\n \"credentialId\": \"1b7e0718-0eb0-4899-89b9-3fd04b95b148\",\n \"credDefId\": \"7KuDTpQh3GJ7Gp6kErpWvM:3:CL:322876:test_test_cred-def_140622-07\",\n \"state\": \"done\",\n \"principalDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"createdDate\": \"2022-06-15T09:25:59.053Z\",\n \"updatedDate\": \"2022-06-15T09:26:57.810Z\",\n \"expirationDate\": \"2022-07-15T09:25:59.052Z\"\n },\n {\n \"id\": \"04d6d4c9-0230-4441-a1de-9aec69ed2ff2\",\n \"credentialId\": \"12b0640c-99f7-4413-a27c-5b34b0ecfb0a\",\n \"credDefId\": \"7KuDTpQh3GJ7Gp6kErpWvM:3:CL:321508:princi_cred_def130622\",\n \"state\": \"done\",\n \"principalDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"createdDate\": \"2022-06-15T09:24:27.429Z\",\n \"updatedDate\": \"2022-06-15T09:24:56.976Z\",\n \"expirationDate\": \"2022-12-12T09:24:27.339Z\"\n }\n ],\n \"presenProofs\": [\n {\n \"id\": \"48b2b61d-a5d9-4c1d-a745-ed5cd018c5bd\",\n \"presentation_id\": \"07f27a99-4ff2-4d3c-82f9-0f49cd6d8203\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-15T09:27:07.302Z\",\n \"updated_date\": \"2022-06-15T09:27:26.804Z\"\n }\n ]\n }\n }\n}" - } - ] - } - ] -} \ No newline at end of file + "info": { + "_postman_id": "2409bab2-cd0d-4956-8f46-bb9919b46ae7", + "name": "Connection Manager", + "description": "StartFragment\n\nThe Connection Manager is a collection of requests which can be used to create the connection invitation URL, to get all connections and their information.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "17714957" + }, + "item": [ + { + "name": "Create-Invitation-URL", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "if (res.statusCode == 200) {\r", + "\tpm.environment.set(\"conn-id\", res.data.connection.id);\r", + "\r", + "\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div>Scan the QR code below for connetion with id {{data.connection.id}}</div>\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", + "\tpm.visualizer.set(template, res);\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Con_man_baseURL}}/v1/invitation-url?alias=member", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "invitation-url"], + "query": [ + { + "key": "alias", + "value": "member" + }, + { + "key": "alias", + "value": "subscriber", + "disabled": true + } + ] + }, + "description": "#### **Description** **:**\n\nIt is used to create the connection invitation URL to establish the peer to peer connection between two aeries agents or the participant user and the principal user.\n\n#### **Query Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| alias | required | \"member\" or \"subscriber\" |\n\n> for this request, the request parameter needs to be provided as \"alias\" which is required and only accepts \"member\" or \"subscriber\".\n> \n> **\"member\" as alias** : the connection invitation is created for the member.\n> \n> **\"subscriber\" as alias** : the connection invitation is created for the subscriber.\n\n> **Connecting as a member :**\n> \n> A member is someone who is enrolling for first time in GaiaX ecosystem. The principal user will receive membership credential once connected as member and the connection will move to \"trusted\" state.\n\n> **Connecting as subscriber :**\n> \n> A subscriber is someone who is already connected with some participant in GaiaX ecosystem and is willing to connect (subscribe) with some other participants in ecosystem. The principal user need to present proof against membership credential. The proof presentation will be requested upon successful connection.\n> \n> And once the proof is presented successfully, the connection will move to \"trusted\" state.\n\n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → invitationUrl` | It returns the invitation URL to receive connection on principal end. |\n| `data → invitation` | It returns the invitation object to receive connection on principal end. |\n| `data → connection` | It returns connection object which contains the information about the connection. |\n| `data → connection → id` | It returns the connection unique identifier. |\n| `data → connection → createdAt` | It returns the created date and time. |\n| `data → connection → did` | It returns the connection DID. |\n| `data → connection → state` | It returns the connection state. |\n| `data → connection → role` | It returns the agent role. |\n| `data → connection → alias` | It returns the alias which we set at time of creating or receiving the connection. |\n| `data → connection → multiUseInvitation` | It returns the boolean which indicates whether the connection is multi-use or not. |" + }, + "response": [ + { + "name": "Create-Invitation-URL", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{Con_man_baseURL}}/v1/invitation-url?alias=member", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "invitation-url"], + "query": [ + { + "key": "alias", + "value": "member" + }, + { + "key": "alias", + "value": "subscriber", + "disabled": true + } + ] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:18:04 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "1989" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"7c5-cp94PvE2DNowIosoNk1tOsH7jDY\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection created successfully\",\n \"data\": {\n \"invitationUrl\": \"https://gaiax.vereign.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJkOTMzOTk5Mi02ZjZmLTQxYzEtYjQ0Yy1lMjNkMjUwMGMzNWIiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiREFnNEhrNzkyRXh6SFpRNjhHdktoY3ZrQzVYV3VqUHdiRlpmaWhTVlQyOFUiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9nYWlheC52ZXJlaWduLmNvbTo0NDMvb2NtL2RpZGNvbW0iLCJyb3V0aW5nS2V5cyI6W119\",\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"d9339992-6f6f-41c1-b44c-e23d2500c35b\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"connection\": {\n \"_tags\": {},\n \"metadata\": {},\n \"id\": \"ffc4cd40-ae18-42f7-87c2-fe4d45b6e300\",\n \"createdAt\": \"2022-06-15T09:18:04.978Z\",\n \"did\": \"PKjWC17JFYBPLAjdeaZoaK\",\n \"didDoc\": {\n \"@context\": \"https://w3id.org/did/v1\",\n \"publicKey\": [\n {\n \"id\": \"PKjWC17JFYBPLAjdeaZoaK#1\",\n \"controller\": \"PKjWC17JFYBPLAjdeaZoaK\",\n \"type\": \"Ed25519VerificationKey2018\",\n \"publicKeyBase58\": \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n }\n ],\n \"service\": [\n {\n \"id\": \"PKjWC17JFYBPLAjdeaZoaK#IndyAgentService\",\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\",\n \"type\": \"IndyAgent\",\n \"priority\": 0,\n \"recipientKeys\": [\n \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n ],\n \"routingKeys\": []\n }\n ],\n \"authentication\": [\n {\n \"publicKey\": \"PKjWC17JFYBPLAjdeaZoaK#1\",\n \"type\": \"Ed25519SignatureAuthentication2018\"\n }\n ],\n \"id\": \"PKjWC17JFYBPLAjdeaZoaK\"\n },\n \"verkey\": \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\",\n \"state\": \"invited\",\n \"role\": \"inviter\",\n \"alias\": \"member\",\n \"invitation\": {\n \"@type\": \"https://didcomm.org/connections/1.0/invitation\",\n \"@id\": \"d9339992-6f6f-41c1-b44c-e23d2500c35b\",\n \"label\": \"ssi-abstraction-agent\",\n \"recipientKeys\": [\n \"DAg4Hk792ExzHZQ68GvKhcvkC5XWujPwbFZfihSVT28U\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\",\n \"routingKeys\": []\n },\n \"multiUseInvitation\": false\n }\n }\n}" + } + ] + }, + { + "name": "Get-Connection-by-ConnectionID", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "let template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:green; text-transform: capitalize;\">\r", + " <h2>{{data.records.status}}</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "pm.visualizer.set(template, res);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Con_man_baseURL}}/v1/connections/{{conn-id}}", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "connections", "{{conn-id}}"] + }, + "description": "#### **Description** **:**\n\nThis request is used to fetch connection information for the connection id provided in URL.\n\n> It also provides state of the connection established.\n\n \n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → records → id` | It returns the unique identifier for connection table. |\n| `data → records → connectionId` | It returns the connection unique identifier. |\n| `data → records → participantDid` | It returns the participant DID. |\n| `data → records → theirDid` | It returns the principal DID. |\n| `data → records → theirLabel` | It returns the email of the principal. |\n| `data → records → createdDate` | It returns the created date. |\n| `data → records → updatedDate` | It returns the updated date. |\n| `data → records → isActive` | It returns the boolean value which indicates record is active. |" + }, + "response": [ + { + "name": "Get-Connection-by-ConnectionID", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Con_man_baseURL}}/v1/connections/{{conn-id}}", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "connections", "{{conn-id}}"] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:25:00 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "411" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"19b-TySvMVsRlQAW5a6BNN0k6i1Lo50\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"records\": {\n \"id\": \"0f8a7f07-f064-45af-ae0a-a98c5b721d04\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"status\": \"trusted\",\n \"participantDid\": \"R5LHJTmiuP8PRtH74SVHXb\",\n \"theirDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"theirLabel\": \"test_corp@vomoto.com\",\n \"createdDate\": \"2022-06-15T09:24:15.248Z\",\n \"updatedDate\": \"2022-06-15T09:24:56.988Z\",\n \"isActive\": true\n }\n }\n}" + } + ] + }, + { + "name": "Get-Connections", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "let template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:green; text-transform: capitalize;\">\r", + " <h2>{{data.records.status}}</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "pm.visualizer.set(template, res);" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Con_man_baseURL}}/v1/connections", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "connections"], + "query": [ + { + "key": "participantDID", + "value": "Jv5JtLcLuEeByKazGBtfSC", + "disabled": true + }, + { + "key": "status", + "value": "trusted", + "disabled": true + }, + { + "key": "pageSize", + "value": "5", + "disabled": true + }, + { + "key": "page", + "value": "2", + "disabled": true + } + ] + }, + "description": "#### **Description** **:**\n\nThis request fetches the connection information against the provided participantDID otherwise all the connections are fetched.\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| participantDID | required | `participantDID` <br>should be provided in query parameter. |\n| status | no | `status` <br>should be provided in query parameter. It filters the connections list according the provided status 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. |\n\n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → count` | It returns the total number of records available in the table for matching query. |\n| `data → records → id` | It returns the unique identifier for connection table. |\n| `data → records → connectionId` | It returns the connection unique identifier. |\n| `data → records → participantDid` | It returns the participant DID. |\n| `data → records → theirDid` | It returns the principal DID. |\n| `data → records → theirLabel` | It returns the email of the principal. |\n| `data → records → createdDate` | It returns the created date. |\n| `data → records → updatedDate` | It returns the updated date. |\n| `data → records → isActive` | It returns the boolean value which indicates record is active. |" + }, + "response": [ + { + "name": "Get-Connections", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Con_man_baseURL}}/v1/connections", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "connections"], + "query": [ + { + "key": "participantDID", + "value": "3zrMzUB6fur6snh5u4eiaQ", + "disabled": true + }, + { + "key": "status", + "value": "", + "disabled": true + }, + { + "key": "pageSize", + "value": "", + "disabled": true + }, + { + "key": "page", + "value": "", + "disabled": true + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:25:28 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "3180" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"c6c-VFB0g130QAnHpy+JUr0Gx7WAWmM\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connections fetch successfully\",\n \"data\": {\n \"count\": 111,\n \"records\": [\n {\n \"id\": \"02f41110-18b7-4d1f-89d4-b418cf2d603a\",\n \"connectionId\": \"24402e32-234b-453f-a4cf-9f3e94ed85ab\",\n \"status\": \"complete\",\n \"participantDid\": \"BbiM3ypCFV49iqwVKnQ3Pt\",\n \"theirDid\": \"6XYGkoJanFdNfQCF7yy8rx\",\n \"theirLabel\": \"emilie@vomoto.com\",\n \"createdDate\": \"2022-06-09T14:53:40.457Z\",\n \"updatedDate\": \"2022-06-09T14:54:40.301Z\",\n \"isActive\": false\n },\n {\n \"id\": \"049ec6ed-8645-465b-8f3a-fdd438aed36b\",\n \"connectionId\": \"fd96855b-c979-4125-95ba-d2535e63dfe6\",\n \"status\": \"invited\",\n \"participantDid\": \"Jv5JtLcLuEeByKazGBtfSC\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-08T13:26:16.708Z\",\n \"updatedDate\": \"2022-06-08T13:26:16.708Z\",\n \"isActive\": false\n },\n {\n \"id\": \"092b1789-2522-44e1-9de7-de00c8e4e601\",\n \"connectionId\": \"719ddbe9-7dce-43df-b4be-4714bcca20a7\",\n \"status\": \"complete\",\n \"participantDid\": \"9DJSEsZpu6Neh2zypBGJoA\",\n \"theirDid\": \"SMrr5oVvxW1xWCfetQdYUn\",\n \"theirLabel\": \"rangoon@vomoto.com\",\n \"createdDate\": \"2022-06-08T14:40:13.868Z\",\n \"updatedDate\": \"2022-06-08T14:40:23.967Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0af9b87d-50ad-4faa-ad97-4ba1ea74af73\",\n \"connectionId\": \"2b092454-05e6-4687-85e7-61c9ec4be97c\",\n \"status\": \"invited\",\n \"participantDid\": \"2j7hMxDhLwR6ya8Ptz5ewv\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-06T12:09:07.844Z\",\n \"updatedDate\": \"2022-06-06T12:09:07.844Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0b1eb233-0fdc-43ba-887e-01ca49f0984a\",\n \"connectionId\": \"1279a5c1-c7f1-4abe-bece-816f5e710050\",\n \"status\": \"invited\",\n \"participantDid\": \"4WZPvgYQoiiyKEwePV2th1\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-07T12:39:18.101Z\",\n \"updatedDate\": \"2022-06-07T12:39:18.101Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0b369941-5648-4475-aff3-4b12f6d8f3c2\",\n \"connectionId\": \"48afe258-dc0a-4c8b-a0f1-4b346e20f13c\",\n \"status\": \"invited\",\n \"participantDid\": \"NdDAdo5Kg2RvKCNZp62ehS\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-08T14:14:37.972Z\",\n \"updatedDate\": \"2022-06-08T14:14:37.972Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0e6c6705-9b8f-4cdb-a5ea-ab7651512e6a\",\n \"connectionId\": \"e0eb278f-3283-419c-95ae-85ed0b4007de\",\n \"status\": \"responded\",\n \"participantDid\": \"P7jc1nckvYDu4aVxGQeS1z\",\n \"theirDid\": \"NEfdsLk7xnxCui4RbNJj5S\",\n \"theirLabel\": \"alena@vomoto.com\",\n \"createdDate\": \"2022-06-09T13:44:50.029Z\",\n \"updatedDate\": \"2022-06-09T13:45:01.246Z\",\n \"isActive\": false\n },\n {\n \"id\": \"0ea21690-9127-47cf-aad6-5c55721dbae2\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"status\": \"trusted\",\n \"participantDid\": \"TaojhXfMbbKgoiE8FjMDUG\",\n \"theirDid\": \"JmQBgTUpfu8A7egsv1ib4s\",\n \"theirLabel\": \"sam\",\n \"createdDate\": \"2022-06-14T10:35:42.300Z\",\n \"updatedDate\": \"2022-06-14T10:43:59.067Z\",\n \"isActive\": true\n },\n {\n \"id\": \"0f8a7f07-f064-45af-ae0a-a98c5b721d04\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"status\": \"trusted\",\n \"participantDid\": \"R5LHJTmiuP8PRtH74SVHXb\",\n \"theirDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"theirLabel\": \"test_corp@vomoto.com\",\n \"createdDate\": \"2022-06-15T09:24:15.248Z\",\n \"updatedDate\": \"2022-06-15T09:24:56.988Z\",\n \"isActive\": true\n },\n {\n \"id\": \"12870002-9220-4e3b-810f-369ef4351e51\",\n \"connectionId\": \"c559ed17-cbce-4992-8d36-4ffb3550988b\",\n \"status\": \"invited\",\n \"participantDid\": \"AeB43tLJgwCLPR3CsjwcSU\",\n \"theirDid\": \"\",\n \"theirLabel\": \"\",\n \"createdDate\": \"2022-06-06T11:42:52.186Z\",\n \"updatedDate\": \"2022-06-06T11:42:52.186Z\",\n \"isActive\": false\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Accept-Connection", + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"invitationUrl\": \"http://3.111.77.38:4021?c_i=eyJAdHlwZSI6ImRpZDpzb3Y6QnpDYnNOWWhNcmpIaXFaRFRVQVNIZztzcGVjL2Nvbm5lY3Rpb25zLzEuMC9pbnZpdGF0aW9uIiwiQGlkIjoiNTY0ZTM3NzQtZGViNy00ZTU2LWEyNTUtZWE3MmUyOWFlZmY4IiwibGFiZWwiOiJkZW1vNyIsInJlY2lwaWVudEtleXMiOlsiSHhVeVl4N1pIQnQ4ZHBCbk1MOVA4d0NqSm1jTmFFVGUzR2EzQjdHZ3l4VWoiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cDovLzMuMTExLjc3LjM4OjQwMjEiLCJyb3V0aW5nS2V5cyI6W119\",\r\n \"autoAcceptConnection\": true\r\n}\r\n", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "http://3.111.77.38:3003/v1/accept-connection-invitation", + "protocol": "http", + "host": ["3", "111", "77", "38"], + "port": "3003", + "path": ["v1", "accept-connection-invitation"] + } + }, + "response": [] + }, + { + "name": "Get-Connection-Information", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Con_man_baseURL}}/v1/connection-information?connectionId={{conn-id}}", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "connection-information"], + "query": [ + { + "key": "did", + "value": "MJys9zJZ1m2S6dFccFJQJs", + "disabled": true + }, + { + "key": "connectionId", + "value": "{{conn-id}}" + } + ] + }, + "description": "#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| **Key** | **Description** |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → records → issueCredentials` | It returns the array of issued credentials against connection id. |\n| `data → records → issueCredentials → id` | It returns the unique identifier for issued credentials record in table. |\n| `data → records → issueCredentials → credentialId` | It returns the unique identifier for issued credentials. |\n| `data → records → issueCredentials → state` | It returns the state of the issued credentials. |\n| `data → records → issueCredentials → principalDid` | It returns the principal DID. |\n| `data → records → issueCredentials → connectionId` | It returns the connection ID. |\n| `data → records → issueCredentials → createdDate` | It returns the created date. |\n| `data → records → issueCredentials → updatedDate` | It returns the updated date. |\n| `data → records → issueCredentials → expirationDate` | It returns the expiration date of issued credentials. |\n| `data → records → presenProofs` | It returns the list of proofs presentation. |\n| `data → records → presenProofs → id` | It returns the unique identifier for proofs record in table. |\n| `data → records → presenProofs → presentation_id` | It returns the unique identifier for proof presentation. |\n| `data → records → presenProofs → connectionId` | It returns the connection ID. |\n| `data → records → presenProofs → credential_def_id` | It returns the credential def id. |\n| `data → records → presenProofs → schemaId` | It returns the schema id. |\n| `data → records → presenProofs → their_did` | It returns the principal DID. |\n| `data → records → presenProofs → status` | It returns the status of proof presentation. |\n| `data → records → presenProofs → created_date` | It returns the created date. |\n| `data → records → presenProofs → updated_date` | It returns the updated date. |" + }, + "response": [ + { + "name": "Get-Connection-Information", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{Con_man_baseURL}}/v1/connection-information?did&connectionId={{conn-id}}", + "host": ["{{Con_man_baseURL}}"], + "path": ["v1", "connection-information"], + "query": [ + { + "key": "did", + "value": null + }, + { + "key": "connectionId", + "value": "{{conn-id}}" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:28:39 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "1320" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"528-EZqt2BArtofGni3d7fvQseXpEg8\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Connection information fetch successfully\",\n \"data\": {\n \"records\": {\n \"issueCredentials\": [\n {\n \"id\": \"8bf0c9bf-c008-4324-b462-74ce2d0948ad\",\n \"credentialId\": \"1b7e0718-0eb0-4899-89b9-3fd04b95b148\",\n \"credDefId\": \"7KuDTpQh3GJ7Gp6kErpWvM:3:CL:322876:test_test_cred-def_140622-07\",\n \"state\": \"done\",\n \"principalDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"createdDate\": \"2022-06-15T09:25:59.053Z\",\n \"updatedDate\": \"2022-06-15T09:26:57.810Z\",\n \"expirationDate\": \"2022-07-15T09:25:59.052Z\"\n },\n {\n \"id\": \"04d6d4c9-0230-4441-a1de-9aec69ed2ff2\",\n \"credentialId\": \"12b0640c-99f7-4413-a27c-5b34b0ecfb0a\",\n \"credDefId\": \"7KuDTpQh3GJ7Gp6kErpWvM:3:CL:321508:princi_cred_def130622\",\n \"state\": \"done\",\n \"principalDid\": \"XpaT7i3hYHHHSMrw1rY3EB\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"createdDate\": \"2022-06-15T09:24:27.429Z\",\n \"updatedDate\": \"2022-06-15T09:24:56.976Z\",\n \"expirationDate\": \"2022-12-12T09:24:27.339Z\"\n }\n ],\n \"presenProofs\": [\n {\n \"id\": \"48b2b61d-a5d9-4c1d-a745-ed5cd018c5bd\",\n \"presentation_id\": \"07f27a99-4ff2-4d3c-82f9-0f49cd6d8203\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-15T09:27:07.302Z\",\n \"updated_date\": \"2022-06-15T09:27:26.804Z\"\n }\n ]\n }\n }\n}" + } + ] + } + ] +} diff --git a/documentation/GAIAX-Complete-Flow-GX.postman_environment.json b/documentation/GAIAX-Complete-Flow-GX.postman_environment.json index ae6ccd5b2feb587ff6401ed2a324b52f13504de6..9d5003b7ce017e825ff45ca8e2d102c33bedbaed 100644 --- a/documentation/GAIAX-Complete-Flow-GX.postman_environment.json +++ b/documentation/GAIAX-Complete-Flow-GX.postman_environment.json @@ -1,163 +1,163 @@ { - "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 + "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" +} diff --git a/documentation/Proof_Manager.postman_collection.json b/documentation/Proof_Manager.postman_collection.json index c5ce55deb99088e65939a000c67d6c4e1ed8b59f..22f7ef5b3e68b302a3cc25bf586690d35fa791d6 100644 --- a/documentation/Proof_Manager.postman_collection.json +++ b/documentation/Proof_Manager.postman_collection.json @@ -1,812 +1,737 @@ { - "info": { - "_postman_id": "fc2cf79c-4e29-4101-a833-3fd2a9243c9e", - "name": "Proof Manager", - "description": "#### **Description** **:**\n\nThe Proof Manager is the collection of request which can be used to request proof presentation to connections and for out of band verifications. Also it returns all the proof presentation requests and their status.", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", - "_exporter_id": "17714957" - }, - "item": [ - { - "name": "Find-proof-presentation", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-proof-presentation?pageSize=&page", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-proof-presentation" - ], - "query": [ - { - "key": "pageSize", - "value": "" - }, - { - "key": "page", - "value": null - } - ] - }, - "description": "#### **Description** **:**\n\nThis request fetches the all the proof presentation requests for the participant. The records can be filtered using provided query parameters.\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. |\n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| Key | Description |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → count` | It returns the total number of records available in the response. |\n| `data → records` | It returns the actual information that was requested in the form of JSON object array. |\n| `data → records → id` | It returns the id for the corresponding record in the database. |\n| `data → records → presentation_id` | It returns the presentation id for the corresponding record in the database. |\n| `data → records → connectionId` | It returns the connection id for the corresponding record in the database. |\n| `data → records → credential_def_id` | It returns the credential defination id for the corresponding record in the database. |\n| `data → records → schemaId` | It returns the corresponding unique id for schema on the ledger. |\n| `data → records → their_did` | It returns the their did for the corresponding record in the database. |\n| `data → records → status` | It returns the status for the corresponding record in the database. |\n| `data → records → created_date` | It returns the date the proof was created. |\n| `data → records → updated_date` | It returns the last proof updation date. |" - }, - "response": [ - { - "name": "Find-proof-presentation", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-proof-presentation?pageSize=&page", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-proof-presentation" - ], - "query": [ - { - "key": "pageSize", - "value": "" - }, - { - "key": "page", - "value": null - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:28:21 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "3672" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"e58-XnEVMyMw0qXfuwsZQNiDlSRBjyQ\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"count\": 36,\n \"records\": [\n {\n \"id\": \"051bdceb-07df-419b-98f4-3c0dd92c4b68\",\n \"presentation_id\": \"a033c848-7d9c-448e-9336-8237882d4418\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema130622:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-13T13:56:09.864Z\",\n \"updated_date\": \"2022-06-13T13:56:09.864Z\"\n },\n {\n \"id\": \"095e6ea8-f580-4269-993a-8eef6758ba74\",\n \"presentation_id\": \"b0784df1-14a6-4f5d-b038-43c296bf715f\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_13-06-22:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-14T10:39:49.377Z\",\n \"updated_date\": \"2022-06-14T10:40:59.510Z\"\n },\n {\n \"id\": \"15107aeb-3a77-4b62-a3b6-0710cdc64225\",\n \"presentation_id\": \"bfbd97a8-efd9-4aa0-bdc4-b2fa1d342148\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema130622:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-13T14:11:14.955Z\",\n \"updated_date\": \"2022-06-13T14:11:29.769Z\"\n },\n {\n \"id\": \"1b459690-849b-4f3d-b6a4-0316933590a4\",\n \"presentation_id\": \"bcda614b-bac8-41f7-9680-f95ff67f6382\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-14T11:58:39.846Z\",\n \"updated_date\": \"2022-06-14T12:01:07.841Z\"\n },\n {\n \"id\": \"1f8df45a-0e53-461b-b90b-cfe40042e629\",\n \"presentation_id\": \"b00113d8-4aa7-4c6f-9bfa-90be89834355\",\n \"connectionId\": \"493f3aee-448d-4fc7-9698-e3d8aa6f862c\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_06_09:1.0.4\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-09T12:16:23.157Z\",\n \"updated_date\": \"2022-06-09T12:16:23.157Z\"\n },\n {\n \"id\": \"1fe91ebc-c086-43ef-8cac-ebb56f32e14d\",\n \"presentation_id\": \"f3c137d7-c945-4e1b-8c00-55c3dbc94cf4\",\n \"connectionId\": \"f4f39f80-3f9f-45b3-a6f9-e7eb3946353c\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_13-06-22:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-14T10:20:54.732Z\",\n \"updated_date\": \"2022-06-14T10:21:06.573Z\"\n },\n {\n \"id\": \"2bf3377e-4d84-46c9-851a-98d8ab0244ec\",\n \"presentation_id\": \"0b3e2ec9-d5f7-4c34-8fba-d2b4120c0866\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-04:14.06.2204\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-14T10:36:51.670Z\",\n \"updated_date\": \"2022-06-14T10:36:51.670Z\"\n },\n {\n \"id\": \"2d725225-acfd-4aa3-96b0-2564aa2a71a3\",\n \"presentation_id\": \"0f65c623-f130-4895-8154-fb229b2484f8\",\n \"connectionId\": \"30df956f-e9f2-4421-9d5b-73d259106667\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_13-06-22:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-13T13:54:43.312Z\",\n \"updated_date\": \"2022-06-13T13:55:13.701Z\"\n },\n {\n \"id\": \"377cbfc2-7055-48f1-8d69-ccb994e4dc0f\",\n \"presentation_id\": \"5732be89-cb54-40fc-81e6-7b9fe7676769\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-06:14.06.2206\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-14T10:46:12.010Z\",\n \"updated_date\": \"2022-06-14T10:46:12.010Z\"\n },\n {\n \"id\": \"3a2eae7d-1021-4ee8-8cfb-41ec7789d03e\",\n \"presentation_id\": \"62257855-af83-46dc-9f18-ea223db7e663\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-04:14.06.2204\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-14T10:26:57.734Z\",\n \"updated_date\": \"2022-06-14T10:26:57.734Z\"\n }\n ]\n }\n}" - } - ] - }, - { - "name": "Send-presentation-request", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json()\r", - "\r", - "if(res.statusCode == 201){\r", - " pm.environment.set(\"presentation-id\", res.data.presentationId);\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\r\n \"comment\": \"Tested participant\",\r\n \"attributes\": [\r\n {\r\n \"attribute_name\": \"{{array0}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n }\r\n ],\r\n \"schemaId\": \"\",\r\n \"credentialDefId\": \"{{cred-def-id}}\",\r\n \"connectionId\": \"{{conn-id}}\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{proof_man_baseURL}}/v1/send-presentation-request", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "send-presentation-request" - ] - }, - "description": "#### **Description** **:**\n\nFrom a verifier to a prover, the presentation request message describes values that need to be revealed and predicates that need to be fulfilled.\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| credential_def_id | required | `\"cred_def_id\"` <br>key maps to the credential definition identifier of the credential with the current attribute. It should be provided in \"STRING\" format. Mandatory if schema_id is not provided. |\n| schemaId | required | `\"schema_name\"` <br>Should be valid existing schema and should be provided as \"STRING\". Mandatory if cred_def_id is not provided. |\n| attributes | required | `[{ \"`attribute_name`\" : \"attr_name\" }]` <br>should be provided JSON array. |\n\n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| Key | Description |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → id` | It returns the id for the corresponding record in the database. |\n| `data → presentation_id` | It returns the presentation id for the corresponding record in the database. |\n| `data → connectionId` | It returns the connection id for the corresponding record in the database. |\n| `data → credential_def_id` | It returns the credential defination id for the corresponding record in the database. |\n| `data → schemaId` | It returns the corresponding unique id for schema on the ledger. |\n| `data → their_did` | It returns the their did for the corresponding record in the database. |\n| `data → status` | It returns the status for the corresponding record in the database. |\n| `data → created_date` | It returns the date the proof was created. |\n| `data → updated_date` | It returns the last proof updation date. |" - }, - "response": [ - { - "name": "Send-presentation-request", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\r\n \"comment\": \"Tested participant\",\r\n \"attributes\": [\r\n {\r\n \"attribute_name\": \"{{array0}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n },\r\n {\r\n \"attribute_name\": \"{{array1}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n }\r\n ],\r\n \"schemaId\": \"{{schema-id}}\",\r\n \"credential_def_id\": \"\",\r\n \"connectionId\": \"{{conn-id}}\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{proof_man_baseURL}}/v1/send-presentation-request", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "send-presentation-request" - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:27:07 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "454" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"1c6-E7pFwPlnxfbEOOkPcsFYYpmaWW8\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 201,\n \"message\": \"Presentation request send successfully\",\n \"data\": {\n \"id\": \"48b2b61d-a5d9-4c1d-a745-ed5cd018c5bd\",\n \"presentation_id\": \"07f27a99-4ff2-4d3c-82f9-0f49cd6d8203\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-15T09:27:07.302Z\",\n \"updated_date\": \"2022-06-15T09:27:07.302Z\"\n }\n}" - } - ] - }, - { - "name": "Check-Verification", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "if (res.statusCode == 200) {\r", - "\tif (res.data.isVerified == true && res.data.state == \"done\") {\r", - "\t\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:green;\">\r", - " <h2>Proof verified successfully</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "\t\tpm.visualizer.set(template, res);\r", - "\t} else {\r", - "\t\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:red;\">\r", - " <h2>Proof not presented yet.</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "\t\tpm.visualizer.set(template, res);\r", - "\t}\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "protocolProfileBehavior": { - "disableBodyPruning": true - }, - "request": { - "method": "GET", - "header": [], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentationId={{presentation-id}}", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "presentationId", - "value": "{{presentation-id}}" - } - ] - }, - "description": "#### **Description** **:**\n\nThis request is used to fetch proof presentation request information for the presentation id provided in query parameter.\n\n> It also provides state of the proof presentation request.\n\n#### **Query Parameter** **:**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| presentationId | required | `\"presentation_id\"` <br>presentation_id is fetched from the proof request. It provides the state of the request. |" - }, - "response": [ - { - "name": "Check-Verification", - "originalRequest": { - "method": "GET", - "header": [], - "body": { - "mode": "raw", - "raw": "", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentation_id={{presentation-id}}", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "presentation_id", - "value": "{{presentation-id}}" - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:27:28 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "7040" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"1b80-KzH+KoJHRvjoAbq0eUEVKSnHnbc\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"_tags\": {\n \"threadId\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\",\n \"state\": \"done\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\"\n },\n \"metadata\": {},\n \"id\": \"07f27a99-4ff2-4d3c-82f9-0f49cd6d8203\",\n \"createdAt\": \"2022-06-15T09:27:07.209Z\",\n \"requestMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/request-presentation\",\n \"@id\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\",\n \"comment\": \"Tested participant\",\n \"request_presentations~attach\": [\n {\n \"@id\": \"libindy-request-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJuYW1lIjoiUHJvb2YgUmVxdWVzdCIsInZlcnNpb24iOiJQcm9vZiBSZXF1ZXN0Iiwibm9uY2UiOiIxMTMzMjE0Mzg2ODU3IiwicmVxdWVzdGVkX2F0dHJpYnV0ZXMiOnsiYWRkaXRpb25hbFByb3AxIjp7Im5hbWVzIjpbImZOYW1lIiwibE5hbWUiXSwicmVzdHJpY3Rpb25zIjpbeyJzY2hlbWFfaWQiOiI3S3VEVHBRaDNHSjdHcDZrRXJwV3ZNOjI6dGVzdF90ZXN0X3NjaGVtYTE0MDYyMi0wNzoxNC4wNi4yMjA3In1dfX0sInJlcXVlc3RlZF9wcmVkaWNhdGVzIjp7fX0=\"\n }\n }\n ]\n },\n \"state\": \"done\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"threadId\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\",\n \"isVerified\": true,\n \"presentationMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/presentation\",\n \"@id\": \"7396b6fd-cde1-454f-b620-1014e363b723\",\n \"presentations~attach\": [\n {\n \"@id\": \"libindy-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJwcm9vZiI6eyJwcm9vZnMiOlt7InByaW1hcnlfcHJvb2YiOnsiZXFfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnsiZm5hbWUiOiI0MjkzNDcxNDc0OTY3NTMwMzk1ODI1OTA0NDczMTAyOTQ2NDcxODMwODcxMjkzOTE0ODc5NjcyODk2ODQxNzI3MzY2NjYyMjUwNTA1MSIsImxuYW1lIjoiMjgxMzAxMTU0OTE5NzQ0MTU0MjQyNDA4MDgzMTA1NDczMTE5MzE1MDg4NzA1NzkzMTY4Njg4ODc2MjA3MzYwMTI2NzE2NTkyOTA4MjMifSwiYV9wcmltZSI6IjU0ODA1NjExMjEwMzgxMDA1MTgxNjc3Njg0OTU2Mjg3ODYzMjkwODMyODI0MjEzNzM2NjQwNDE2MjA2MTAzMDQ0ODQxNzkyMTMyMzc3MTA4ODE4NTg3MzgyOTEyNTE2ODU2NTc0NzA4NjI2Nzc4NDgzMDU4NzI3ODc1MjAzNTkzOTUxMDgxODMxNzMyMDg2MzEzMDM1MzQxODY0NTkzMDk2Nzk5ODYxMTE5NjQ1MTAwMzc0ODAxODM3NzU3ODU0MDI4OTMxMzYxMDA4NTk4NTgxNDU2MDI1OTAxNzM1NTc5MzkxNDc0MDE4Mzg1NDUxNjY2MjY1MzUyNjM3OTcwMTUxMTA0NDQzNDI3NzQ0MDI4MjYyNTg0ODU1MDQ4ODQzMzg1NTQ4MTYyNjA5NzU2NzM4NzA1OTcyNjExNDg0ODgzOTkwODM3OTE5MDI1NzI0NDExODg4MTkyMTI3NDUzMTIwMDI2MzY0NTU1NzAzMjcxNjYxNTUwNTMxMTk1NTIwNzk3OTU1ODI4MTcwODcxNzMwNjQ4MzYyMDE2MTc3MjU5Njk2NDQyNzE2NTAyNDY2MDcxMzgwNzk4Mjc4OTM0NTc5Nzg0NDIxMTg3NjYzMjU5MjU1MDk5Mzg2ODgxNDc4NDM5MDkyMTA3MDE2MzgwMTYxNzYwMDg5MTUzMDUzNjMwNzY2ODQzMDQwNDY0MTY3ODE3NTgxMjc4NTEwOTA4MjIxNjY2OTUwNjgxMTEwMDI4NzU2OTMwNDIxNjkxNjE3MDcxNzgxODcwNzU0NDI5NDk3NzQyMzYwMTI1MjEwNjg4MzM0NTI1NjkxIiwiZSI6IjM5ODgzMDc4NDcyMjI5MTg1ODQzMTE2NjkxNDM1ODc2MzA0MTUzMDQwMzI5MTQ0MTY1MzY3MTU4ODY1MDY5MzExOTQ5MzY2NTM2NDg0NTgxMjU0NDc3NTUwNzYwODgzNzEzNjc0NTQ4ODI0MzQ1ODU1MTczMDgxNDI5MDc0MTY0OTE1ODkzOTA5IiwidiI6IjExMTI0Njg4MDYyMTE5MDgwNTg3MTYwOTgwMDI5MjIzNTc3MjIwNzAyMjQzNzY5MTIyMzkyMTg1OTA5NDE5Nzg5MjExODg4NjUzMjg1NTAwNTYwNDQ5MzcxODY2MTA1NTkzMzMyNDMwOTE4Mzg1MTQ5NTQ5NTAwMzI5NTMwNDY3NTkyMzc4Mjg0OTg1ODk1MTM0NDExMDY2NTUyNDg2ODMxNzA0NzM1MzY1MTYyMzM5MjI5NTMxNjA2MDYzMzk4OTk3MjQzMDE4OTU5NDE0NzE2ODkyNDY2NjM0MDEzOTE0MzM5MTQzODI4NDk0NDYwODQ3NTAyNjIxMzI4MDM3OTc2MDE3OTQyMjM0NDEwNzAzNzgyMzgxNDYxNjYwNTc1NzQyMjk5NDYwMDM1NDczNjI4MzE1MjAxOTUzMjI0MDkyNDgwMTgyNzk3NDg2MjU0MDY4MTExMzQ3MjkxMDM2NDA4MDE3OTgwNjU4NTg3OTE0MTA1NTM4MDU5MDgxMzU3MTI3MjU1OTc3MjU1MzM5Mzg2MTIyMjQwMjM3ODA5Nzg4Mzk3MDQyMzYwMTY0OTI3NDIyNjI4NDA4OTE5OTc3ODMxMzIxNDA1NDY0MjQxNzgzNzU5MTYxNDEzODYyNTY0OTQzNjE1MjA3MTk4NDk4MzUxNjA5OTk1OTE3MTY4MzY1NjA1MTc3MDM4MDA2NTMwNzA4MjA3OTk5MTY0NjQ3MjcwNDYzNDY1NDA5NDU0MzA4MDA0NjU0Nzg1OTI2NjEzMDYwNDk5NDY2NzIxMjI5NzQwOTk5NDM2NDMxMzM4MTAxMTY5NjY3Nzk1ODk4Nzk0NjQ3MjkxOTI2OTk5MTUxMjgxNDY1MDQyMDgwMjQ1NzM4MzA3MTM1NjAyNDgzNDg0OTQwOTU4NTUwNjMzMTAxMjE5MTkxNjYwMDExNjQ5MjY3MzI3ODIzMzk0MzY4NTk5MDE3Njk1NTEwNTk1NjU2MTU4MDI3NjUyMjEyODQ1MTUyNTQ0MzE1Njk1NjE2NDU1MzI1NTI2NzE1NTA3MzQ2NjA0NDIxMjc5NTA1OTQ0MjY5NzQ2OTg4NjIwNTUzNjI2OTk3NjkzNjY3MzUxMTIyNTQ0MDMwNTg4NjE2MDQxNDc0MDMyNDQzNTY0MTcwMDI4NzIyOTQxMzk1NDYyNDk3ODM4MDY1NjY1MTU4NDAyODgxNTI5MzEwOTYwNjU3ODIwNDYzNDkwMDU0OTUiLCJtIjp7ImdlbmRlciI6IjcyMjk0MzA2MDk1NjU2OTQ1OTY2NzgxMDAwNzY1NDg0OTA0Mjg4MjUyMDU1MjE0OTU1MjEzNzE3NzU4MTc0MTE4ODY3OTEzODI5MzAwMzk2MjA3OTU5MzA2MzU5MTI3MTEzMzYzMDA0MDUzNTc5NzE3OTQ2MTUyMzQyODAxNjUzOTUwNDY0MzgwMzExNTU4NDEwOTUzODc3MjMxMTEyMzQ3OTY2NTQ2MjQyNTc1NjY3MDIiLCJtYXN0ZXJfc2VjcmV0IjoiNjM5MDE0ODgzMjE3NTY0ODA4Njk3MTAxOTMyNjgyODg3Mzc4MjE1Njk4MzkwNDAxNDYzMzY2OTkwMzgyNzQ1MzQwMTM1Mjk2Njc3ODI2MTY5NDEwNjA3MTEyODAwNjc1OTk0NTU3ODgwNDI1NTUxMzAwNjg4MDA5NzU5NDkwOTYwMTY1NTY2OTI4MzUyMjM3NDE5OTY4NTQ1MjY0NDkzNzgxNjkzNzMyOTE1Nzg1OTE3NyJ9LCJtMiI6IjgwNjYxMzg5NDY1MDcwMDU5NjkwMTkxNzU2Mzk5NjUzOTUxNTgzNTc1Mjk3NjQ1MjQ3NzIyNjgyNTA1MDM4MDcyMzc4NzA5Nzg4MTc0MTc4MzgyNjMzMTI1MjY4OTU3OTE2Njg1NTYzNTU1NTg2MDQ2OTM1NzAxNTI1NDg5MDc5MjI2NDA3MDMwMDM4MjU2MTkzNzA3MTM0NzcxMzA0NDk0MTAyNzM5MzcwNzAwOTM1NDAifSwiZ2VfcHJvb2ZzIjpbXX0sIm5vbl9yZXZvY19wcm9vZiI6bnVsbH1dLCJhZ2dyZWdhdGVkX3Byb29mIjp7ImNfaGFzaCI6IjExMjI1Nzc2Njc5MDE1NzAxODY5NjgwNTAzMzcxMDg2NzI4NjY4OTMwMDIwOTc5NjEyOTgwMTA2MDk3Mzk0Nzk0OTI1OTg3OTc2MDM1MCIsImNfbGlzdCI6W1sxLDE3OCwzNiwyMjUsMTU3LDI0OSwyNCwyMDgsMTMsNTAsODIsMTYsMjE0LDY3LDQ0LDI0NywyMTMsNjgsMTg1LDI1NSwxMDUsMTM4LDIzMywxNDksMTI4LDEyMiwxODAsMjE3LDE3NSwyMywzMyw2NywxMzIsMjA4LDUxLDQ2LDExOCwyMzMsMjIsMjMyLDExMSwxMTcsMjEwLDk3LDEzMCw1LDIwNSwzOCwyOCwzMCwxMjQsMjE3LDE0NSwyMTgsOTMsMTYwLDEyNiw2MywyMTQsMjAwLDUsNDcsNjksODEsMjI1LDM5LDU4LDEwNywxOCwxMjcsMTcyLDIwLDI1Myw1MCw3Nyw5NiwyMjMsMTc3LDQzLDYxLDU1LDIxNSwyMSw1NSw2MCwyMTIsMTc5LDEwNywzNiwyNTUsNjksMTQ5LDE5MSwyNDQsNjAsMjA4LDIwMiwxODQsMjAzLDE0OSwxNTcsMTU0LDE0MywxMDUsMTcwLDE2NSwxMSwzLDkzLDk0LDIzMiwxNjQsMTc4LDI0MSwyMzUsNTgsOTMsMjQyLDIxOCw2MSw3NSw2Niw5MywxNTcsMjQ2LDE5OCwxNzIsMTY2LDEwMCwxOCwxMTgsMTk2LDU2LDU4LDEzNywyMjksMTMyLDIyNSwyMiw1MSwxNTksMTcxLDYsNTUsMjM1LDE2OCwxMiw0NiwxMjIsNDAsMTcsMTU4LDE4NywxNzksMTkwLDEyMCwyNDcsMTk3LDY2LDE0NSwxNDcsNzcsNTksMTg3LDI1NCw3MCwyMjYsOSwxNzgsMjIyLDEwMiwyMzcsMTYsMTMwLDEwLDI0MywyNiwxNzQsMTIwLDEwNCwxMDQsMTA3LDc1LDE4NiwzMCwyMTksNzYsMTAxLDIzOCwxMiw3Niw2OCwzMyw2LDE4MSwxMzEsMjU0LDI1MCwxNjIsMTAyLDE4OSw4LDU3LDE1MywxMTIsOSwyNSwxOTYsMjA5LDAsMTk4LDE5MiwxOTgsMTcwLDIxOCwxMiw1Nyw3MiwzNCwzLDExOCwxMzAsMTU4LDIyNyw0NCwxODcsMTA5LDE4MSwyMzAsMjE3LDIwNyw0Myw3NSwxNjIsMjQzLDIxMiwyMSwxNjcsMTU3LDIwNiwxMzksMTM3LDI1MCwxNzksMzAsODIsNzAsNzMsMTQsNjMsMjA2LDI0Myw2MiwxNjksMTYyLDI0NCwyNTFdXX19LCJyZXF1ZXN0ZWRfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnt9LCJyZXZlYWxlZF9hdHRyX2dyb3VwcyI6eyJhZGRpdGlvbmFsUHJvcDEiOnsic3ViX3Byb29mX2luZGV4IjowLCJ2YWx1ZXMiOnsiZk5hbWUiOnsicmF3IjoidGVzdF9mbmFtZV8zIiwiZW5jb2RlZCI6IjQyOTM0NzE0NzQ5Njc1MzAzOTU4MjU5MDQ0NzMxMDI5NDY0NzE4MzA4NzEyOTM5MTQ4Nzk2NzI4OTY4NDE3MjczNjY2NjIyNTA1MDUxIn0sImxOYW1lIjp7InJhdyI6InRlc3RfbG5hbWVfMyIsImVuY29kZWQiOiIyODEzMDExNTQ5MTk3NDQxNTQyNDI0MDgwODMxMDU0NzMxMTkzMTUwODg3MDU3OTMxNjg2ODg4NzYyMDczNjAxMjY3MTY1OTI5MDgyMyJ9fX19LCJzZWxmX2F0dGVzdGVkX2F0dHJzIjp7fSwidW5yZXZlYWxlZF9hdHRycyI6e30sInByZWRpY2F0ZXMiOnt9fSwiaWRlbnRpZmllcnMiOlt7InNjaGVtYV9pZCI6IjdLdURUcFFoM0dKN0dwNmtFcnBXdk06Mjp0ZXN0X3Rlc3Rfc2NoZW1hMTQwNjIyLTA3OjE0LjA2LjIyMDciLCJjcmVkX2RlZl9pZCI6IjdLdURUcFFoM0dKN0dwNmtFcnBXdk06MzpDTDozMjI4NzY6dGVzdF90ZXN0X2NyZWQtZGVmXzE0MDYyMi0wNyIsInJldl9yZWdfaWQiOm51bGwsInRpbWVzdGFtcCI6bnVsbH1dfQ==\"\n }\n }\n ],\n \"~thread\": {\n \"thid\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\"\n }\n }\n }\n}" - } - ] - }, - { - "name": "Out-of-band-proof-presentation", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "let template = `\r", - "<html>\r", - " <body> \r", - " <div>Scan the QR code below for out of band proof presentation</div>\r", - " <br>\r", - " <div style=\"text-align:center;\">\r", - " <img src='https://api.qrserver.com/v1/create-qr-code/?size=350x350&data=+{{data.presentationMessage}}'></img>\r", - " </div>\r", - " </body>\r", - "</html>`;\r", - "pm.visualizer.set(template, res);\r", - "\r", - "if(res.statusCode == 201){\r", - " pm.environment.set(\"oob-presentation-id\", res.data.presentationId);\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\r\n \"schemaName\":\"\",\r\n \"attributes\":[\"{{array0}}\",\"{{array1}}\"],\r\n \"options\": { \r\n \"type\":\"Aries1.0\",\r\n \"credentialDefinationName\":\"{{cred-def-id}}\"\r\n }\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{proof_man_baseURL}}/v1/send-out-of-band-presentation-request", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "send-out-of-band-presentation-request" - ] - }, - "description": "#### **Description** **:**\n\nFrom a verifier to a prover, the out of band presentation request message describes values that need to be revealed and predicates that need to be fulfilled.\n\n> The Out-of-band protocol is used when you wish to engage with another agent and you don't have a DIDComm connection to use for the interaction.\n\n#### **Body Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| credential_def_id | required | `\"cred_def_id\"` <br>key maps to the credential definition identifier of the credential with the current attribute. It should be provided in \"STRING\" format. Mandatory if schema_id is not provided. |\n| schemaId | required | `\"schema_name\"` <br>Should be valid existing schema and should be provided as \"STRING\". Mandatory if cred_def_id is not provided. |\n| attributes | required | `[{ \"`attribute_name`\" : \"attr_name\" }]` <br>should be provided JSON array. |\n\n \n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| Key | Description |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → id` | It returns the id for the corresponding record in the database. |\n| `data → presentation_id` | It returns the presentation id for the corresponding record in the database. |\n| `data → connectionId` | It returns the connection id for the corresponding record in the database. |\n| `data → credential_def_id` | It returns the credential defination id for the corresponding record in the database. |\n| `data → schemaId` | It returns the corresponding unique id for schema on the ledger. |\n| `data → their_did` | It returns the their did for the corresponding record in the database. |\n| `data → status` | It returns the status for the corresponding record in the database. |\n| `data → created_date` | It returns the date the presentation proof was created. |\n| `data → updated_date` | It returns the last presentation proof updation date. |\n| `data → presentationMessage` | It returns the presentation message for the corresponding record return by the mediator. |" - }, - "response": [ - { - "name": "Out-of-band-proof-presentation", - "originalRequest": { - "method": "POST", - "header": [], - "body": { - "mode": "raw", - "raw": "{\r\n \"comment\": \"Out of Band\",\r\n \"attributes\": [\r\n {\r\n \"attribute_name\": \"{{array0}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n },\r\n {\r\n \"attribute_name\": \"{{array1}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n }\r\n ],\r\n \"credential_def_id\": \"\",\r\n \"schemaId\": \"{{schema-id}}\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "url": { - "raw": "{{proof_man_baseURL}}/v1/send-out-of-band-presentation-request", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "send-out-of-band-presentation-request" - ] - } - }, - "status": "Created", - "code": 201, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:27:47 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "1570" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"622-ZaUMbvDBDS5ELn3jeaSKeedxEIQ\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 201,\n \"message\": \"Presentation request send successfully\",\n \"data\": {\n \"id\": \"853d92b2-0260-41a7-a9af-3c026be8fe35\",\n \"presentation_id\": \"7fa03531-74f4-49a0-a94f-6feb30041c13\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-15T09:27:47.562Z\",\n \"updated_date\": \"2022-06-15T09:27:47.562Z\",\n \"presentationMessage\": \"https://gaiax.vereign.com:443/ocm/didcomm/?d_m=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvcHJlc2VudC1wcm9vZi8xLjAvcmVxdWVzdC1wcmVzZW50YXRpb24iLCJAaWQiOiJlOGViZGQyZS0xOGM2LTRkY2EtOWFmMy05ZjZjNWYyNzk0YzYiLCJjb21tZW50IjoiT3V0IG9mIEJhbmQiLCJyZXF1ZXN0X3ByZXNlbnRhdGlvbnN-YXR0YWNoIjpbeyJAaWQiOiJsaWJpbmR5LXJlcXVlc3QtcHJlc2VudGF0aW9uLTAiLCJtaW1lLXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiZGF0YSI6eyJiYXNlNjQiOiJleUp1WVcxbElqb2lUM1YwSUU5bUlFSmhibVFnVUhKdmIyWWdVbVZ4ZFdWemRDSXNJblpsY25OcGIyNGlPaUpQZFhRZ1QyWWdRbUZ1WkNCUWNtOXZaaUJTWlhGMVpYTjBJaXdpYm05dVkyVWlPaUk1TmprMk5qTTBNalkyTkRZMElpd2ljbVZ4ZFdWemRHVmtYMkYwZEhKcFluVjBaWE1pT25zaVlXUmthWFJwYjI1aGJGQnliM0F4SWpwN0ltNWhiV1Z6SWpwYkltWk9ZVzFsSWl3aWJFNWhiV1VpWFN3aWNtVnpkSEpwWTNScGIyNXpJanBiZXlKelkyaGxiV0ZmYVdRaU9pSTNTM1ZFVkhCUmFETkhTamRIY0RaclJYSndWM1pOT2pJNmRHVnpkRjkwWlhOMFgzTmphR1Z0WVRFME1EWXlNaTB3TnpveE5DNHdOaTR5TWpBM0luMWRmWDBzSW5KbGNYVmxjM1JsWkY5d2NtVmthV05oZEdWeklqcDdmWDA9In19XSwifnNlcnZpY2UiOnsicmVjaXBpZW50S2V5cyI6WyJCdWpMMnlmYTNYTkFXTHJ6dmVyc216OXpZdkpKTmRZaHBMa0tCNXpnM0JpTCJdLCJyb3V0aW5nS2V5cyI6W10sInNlcnZpY2VFbmRwb2ludCI6Imh0dHBzOi8vZ2FpYXgudmVyZWlnbi5jb206NDQzL29jbS9kaWRjb21tIn19\"\n }\n}" - } - ] - }, - { - "name": "Check-OOB-Verification", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "if (res.statusCode == 200) {\r", - "\tif (res.data.isVerified == true && res.data.state == \"done\") {\r", - "\t\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:green;\">\r", - " <h2>Proof verified successfully</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "\t\tpm.visualizer.set(template, res);\r", - "\t} else {\r", - "\t\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:red;\">\r", - " <h2>Proof not presented yet.</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "\t\tpm.visualizer.set(template, res);\r", - "\t}\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentationId={{oob-presentation-id}}", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "presentationId", - "value": "{{oob-presentation-id}}" - } - ] - }, - "description": "#### **Description** **:**\n\nThis request is used to fetch proof presentation request information for the presentation id provided in query parameter.\n\n> It also provides state of the proof presentation request.\n\n#### **Query Parameter** **:**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| presentationId | required | `\"presentation_id\"` <br>presentation_id is fetched from the proof request. It provides the state of the request. |" - }, - "response": [ - { - "name": "Check-OOB-Verification", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentation_id={{oob-presentation-id}}", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "presentation_id", - "value": "{{oob-presentation-id}}" - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:28:08 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "7384" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"1cd8-GlvND2hpBaJd1J2NNqI0bQBluQU\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"_tags\": {\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"metadata\": {},\n \"id\": \"7fa03531-74f4-49a0-a94f-6feb30041c13\",\n \"createdAt\": \"2022-06-15T09:27:47.528Z\",\n \"requestMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/request-presentation\",\n \"@id\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"comment\": \"Out of Band\",\n \"request_presentations~attach\": [\n {\n \"@id\": \"libindy-request-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJuYW1lIjoiT3V0IE9mIEJhbmQgUHJvb2YgUmVxdWVzdCIsInZlcnNpb24iOiJPdXQgT2YgQmFuZCBQcm9vZiBSZXF1ZXN0Iiwibm9uY2UiOiI5Njk2NjM0MjY2NDY0IiwicmVxdWVzdGVkX2F0dHJpYnV0ZXMiOnsiYWRkaXRpb25hbFByb3AxIjp7Im5hbWVzIjpbImZOYW1lIiwibE5hbWUiXSwicmVzdHJpY3Rpb25zIjpbeyJzY2hlbWFfaWQiOiI3S3VEVHBRaDNHSjdHcDZrRXJwV3ZNOjI6dGVzdF90ZXN0X3NjaGVtYTE0MDYyMi0wNzoxNC4wNi4yMjA3In1dfX0sInJlcXVlc3RlZF9wcmVkaWNhdGVzIjp7fX0=\"\n }\n }\n ],\n \"~service\": {\n \"recipientKeys\": [\n \"BujL2yfa3XNAWLrzversmz9zYvJJNdYhpLkKB5zg3BiL\"\n ],\n \"routingKeys\": [],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\"\n }\n },\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"autoAcceptProof\": \"always\",\n \"isVerified\": true,\n \"presentationMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/presentation\",\n \"@id\": \"8e2ce5d1-2f04-4edd-935e-75e6b5fed752\",\n \"presentations~attach\": [\n {\n \"@id\": \"libindy-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJwcm9vZiI6eyJwcm9vZnMiOlt7InByaW1hcnlfcHJvb2YiOnsiZXFfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnsiZm5hbWUiOiI0MjkzNDcxNDc0OTY3NTMwMzk1ODI1OTA0NDczMTAyOTQ2NDcxODMwODcxMjkzOTE0ODc5NjcyODk2ODQxNzI3MzY2NjYyMjUwNTA1MSIsImxuYW1lIjoiMjgxMzAxMTU0OTE5NzQ0MTU0MjQyNDA4MDgzMTA1NDczMTE5MzE1MDg4NzA1NzkzMTY4Njg4ODc2MjA3MzYwMTI2NzE2NTkyOTA4MjMifSwiYV9wcmltZSI6IjIzNzk0MTQ0MDAyNjU3Nzk2ODUxNzA2MTE2NTU1MDkyMTI4ODg3MzA0ODc1NzMwODQ3OTMyNDczODI5NzQ4MjE3MzQwMTE5ODQ4Nzg4OTY1OTg3NDIzNDAyOTg1OTUyMzIxMDYwOTk2MDkxNzIwMzgzMzQzNTk2Mjg1MjY5ODA4NjM5NzIxMjM1Njc2MjM5ODk3MjczNDY0NDQyMzkwMDI5ODMyNDk5Mzg3NDg3NTI1MjQyODA0ODI2ODI4OTE1ODcyMjUzNTI3NTI2Nzk2OTg3NzQ0NDc5Njc4MDY3NTMyMTI4ODU4NzczNDA4NDI0NDYwNDIyMjI4MzEwNTg0OTY5MzU3MzIzNTAzNzM0OTc0OTA0MjAzNzc3MzE1Nzc2ODk3NjkwOTk0OTA1ODk0OTA1NzM2MzY0NDY1MzU4NDY0ODkxNDExOTI2MzI5OTcyNTQ5MjM0NjU4ODk2Mzg0Njk4NDMyMDUzMjQ2NDIzNjI0NjY1MTE0MTA5NDk4MTY5NjAyNjgwMDQ4NTI5MTI5NTQxMzA2NzQ5MjQ2MDQ5MjIzMjMwOTU3NzI3Mzk3MTY4Njc4OTkyNDcxMDczMjYzNjQ3MTYxNzg1ODY0NzExNzIyMTA5NTUzMDA5MjQwOTAxODE1NTU3NzEwNTMwNzM2NjA4MDE5MzQ3NDExMzgxMDE1OTM2MTU4ODIxMTQ1MzEzOTk5MzU2NjAzNjQ5MTc1NTU2MDU5NzQwMTA1ODA0OTgyMjI3Njk1OTI3ODcyMzIzOTE5ODMyOTMxODI4MjUwNjAzNTg1Nzg4OTgzOTk1NTk5Mjk1MjUzNjc1IiwiZSI6IjE0NDU5NDA4Nzg4MjMwNTI5ODYxODg2Mzg2NjEwMzY2MjcxMjY3NzgwMjQxOTI4MjY1MzU5Njg5MzQ0MzAwMDUyOTcyMDIzMDI3OTE4NzIwODk0NzI0OTgyNDE2NDYyMzUxOTY1OTA4MDc0Njc1MzgwMDA2NTM3NjQ1MDI5MTg1MzkyNjcyMTQyMyIsInYiOiIxMTE4MTE2MzM1MjY4MTU5NzgzMDA4MzM4ODQ3ODY3NzkxNjk3MTQ3NTAxOTk4ODMwMzIwMDYwNzQ0NjYwOTM2NjU1NDk1Mjc2OTg3NDUzODUyNzUzNzU5MjUzMzYyNDQxNjIyMjMzNTc5Mzc5MDUwMTE1NDI4MjkwMzY5ODg3OTI4MjY2MDQ3NDk0NzYwNzczODc1NjM1MDM0MjYwNjIwMDUxNzEyNTQzOTkzODc5MjQ2NTgxNjE5NDAyMzQ4OTE1MTUyOTA4OTMyNzQ4NzIyOTIwMzU2NDgxMTkzODkwODcwNjEyOTc1NzQyNTk2ODc4MDk4MzkxMDM0NTY5MjgxOTMwMTcwMjQ4NjY5Njc3ODQ4NzU4MTg1NDA0MzY3MTk2OTgwOTQ1NDgxMDkyOTkzOTg2MzQzNzc5MDI4MzI3MTIyMjk1OTkyODQ1NjY5NzIxOTU4Njk1Mzg0MjA1MzU1MTI4ODU3Mzc0NDIyMzk3NTA1MTI5MDYzMzU1MjMxNDIzMzA5OTQwMzk5MjE3NTk4NjgwNDUzNjkxODU1MzE5NzAzMzUxNTczODI2NDk5NDQ3OTg5NTU5MTY1NjgxMzcyNjM3NzYwOTg3MjE4MjMxMjA0NTczNzA1NTg3NDc0MTQ0MTQxMDY0NTY0ODc4OTgxMjEwOTI2ODAxNTY1MjQyOTg3ODMzMTYxMjMxNTQ0NTQ0OTUyODI1MDk5ODM3MDY1Mjg1OTExOTE4OTkyOTcyODA0NDExMzcxODk5MDg1ODc2MTU3OTAxODI1OTU4NzE0NDIzMTA5OTg0ODkwNjc0NTQ2MTMyMjczMTc2Mzg5MjQ1NzU5NjA4MDg3MjU4MDMxNzYwOTU1NTI1MDM4Mjc1MzcyNTQ1NDMyODQwMTA5MDI1NjI3NzU2ODMzMzI5MjMzNzQxNDQ3MDI2NTg0OTUzNTI4NjM3MDM0NzUxNzIzMjE4MTY4OTMxNDM1MDg4MjMyMTc2OTM2MjkxMTIzMjY0ODEyNzg5MTY2MTA3NTk3NTg1NzMzMjQxMDM0MDUzODMxNzA5MjU4MjUyMTU4OTY3MjcyMTkzMTkxODYxNzk1NjMzMjMyODE0ODEzNjE2NTA2MjE2MTU4NDU3MDI1NDQwMDAzMTc0MDEzNTg5ODk2OTg3MDcxMDIwMzA0Mjk2NTUzNDkxNzg0NDE3MDM2MDQxMzI0NTcxNzk4ODExNTczODY2NDI0NTkwNjgxIiwibSI6eyJtYXN0ZXJfc2VjcmV0IjoiMTAxMTQ4NTA2NDgxNjEyOTM4NzI3NTgzNzYxMjQxODQwMzYxODcyMTU1NzU3NDE3MDg1Nzk2MjQzMjY5Nzg0MTg3NTk2NzE0OTA2MTc4MTIxNTk3MDM4NTM0MTk5MDExMTc2NjMxNjY3ODk4NzQ3ODQzNjE2MDE0MzU2OTQ4MDUzMDUzMTcxNjQzODQwOTY1MDE3NTk0MDA0Mjk3ODU2Mjk4OTcwNDI0Mzg2ODY1NjU2OTYiLCJnZW5kZXIiOiIzMjc1MzEzNTkxNDkyMDMyNzUwNDcxMTI4MDA3NTc0NTc3MDkyNDQxODYyMzM1NDg0NDg2MTUzNTM3Njc1OTY4MjUzNjcwMDI2Mjg4NzA0OTg1Nzc4ODc4NDM4ODQ0MTIwODQ0MjU4ODc3NDEyMjAwNzI0MTI2NjAxNzkyOTY0ODA2NzU5NzI4NDA4ODA0MTEwOTk4NzUwOTMzMjQ0MTI2NDQ0NDQyMDA3NDU5MzgxNDA2In0sIm0yIjoiMTI2ODM1NDM0OTk2NTkzNjUyNzU3MTQ2MzY1MTA2NjQzNTYxOTA3NDM0MTY3Njg1ODc2NjU5NzUwMTU2Njg4MDM1MDQ1NDg4MjM1MjA0MjU0MjI4NTk2MTcyOTI2MTgwMjc3NzU4MjYzMTU1MDY1ODE4MjAyNTE2OTc3NTIzOTYwOTQ1MDIzMDkzOTk2Nzc2MjM1MDQyNTk0NzIxMjc5NDIzMzk5ODI3MjE0MzE1OTI4OTgifSwiZ2VfcHJvb2ZzIjpbXX0sIm5vbl9yZXZvY19wcm9vZiI6bnVsbH1dLCJhZ2dyZWdhdGVkX3Byb29mIjp7ImNfaGFzaCI6IjQ1OTgzMTQzOTkwNDU4NDM2NjYzNzIwODcyNDkwNzA0NTIxMjYxODI2NjUzMDA0MjE1ODE0OTAzODA1MzAxMzE4NDIwMjQyNTgyNTA3IiwiY19saXN0IjpbWzE4OCwxMjQsMTAxLDE5MSw3OCw4MiwyMjgsMjE4LDI1MCwxOTQsODgsMTk0LDEyMywzOCw2LDEsMjA0LDIyMSw3MywyMDIsMTQ5LDkwLDE3NiwyNTEsMTExLDU0LDIxMSwxOCwxNCwyNDgsMzEsNzMsNjQsMTU2LDIxNywzMywxMDcsNTcsOTgsMjExLDI0MiwyMzQsMTksMTE5LDc2LDE5LDYzLDM1LDI0OCw4Myw2NywyMjgsMjE5LDE1MiwyOCw0Nyw4NywxMjYsMTk5LDI0MiwxNDYsMTQsMTM3LDk2LDE4NSwyNDMsNDUsMzgsMTA3LDE2NSwyMDksMjA0LDczLDE0MywxMCwxMjEsMTU2LDE0MywyMDQsMjM0LDY3LDI0Miw3MiwxNDQsMTg4LDI1MCwyMTMsMTM2LDE3NiwxMDUsMjA2LDU5LDExMywyMzYsMjQyLDEyMywyMTcsMTEsMjE1LDE2MSwxNTEsMjM1LDgxLDI0NiwyMDEsMTgyLDE4OSw1MSwyMDEsMjI4LDc1LDE3MCwyMjgsMTgyLDM4LDUxLDExNiwxODgsMjM1LDE4NiwyMjIsMTI2LDEyNSwxOSwxNTgsMTQsNTYsNDYsODgsMTc4LDU0LDIxMCwxMDUsMjE2LDEyOSwyMzEsNTAsMTExLDg3LDE1OSwyNDUsMjQsNzksMjQxLDkzLDI1NCwxMjYsMTg1LDEyOCwyMjgsMTExLDg3LDc1LDE0MSwyMjAsMjI5LDQ2LDEwLDI0LDYwLDIxNSwxMDIsMTY3LDE0MCw1NCw3NywyMzIsMjUxLDE0MSw3NiwyNSwyLDE1NSw1NSwyNTEsMjQyLDE4NiwxNTQsMjM1LDI5LDgxLDExMiwxNjMsNjgsNSwyMCwxNzEsNiwyMTYsMTgwLDUwLDExOCwyMDIsNjgsNTYsNzQsMjMxLDIyNSw4OSwxMTYsMTYxLDU2LDE1Miw1MSwxNzEsOTksMjI4LDcyLDE0MCw0MCwyMTAsNjMsODEsMjUyLDIyLDEwLDIwOSwxNTAsMjMyLDE0NSw1MiwxNDcsMTIyLDI0NCwxOCwxMDQsNTIsMjI0LDI1NSwxNiwxMzcsMTA4LDI0NSwyNDAsMTIwLDE1NCwxOTYsMjAwLDIxMiw1Myw2MywxMDQsMjAwLDIzLDE2MiwxMDQsMTA5LDE1OSwyMzgsMTc5LDAsMTcxLDEzMCwyNTAsMTQwLDE3MV1dfX0sInJlcXVlc3RlZF9wcm9vZiI6eyJyZXZlYWxlZF9hdHRycyI6e30sInJldmVhbGVkX2F0dHJfZ3JvdXBzIjp7ImFkZGl0aW9uYWxQcm9wMSI6eyJzdWJfcHJvb2ZfaW5kZXgiOjAsInZhbHVlcyI6eyJmTmFtZSI6eyJyYXciOiJ0ZXN0X2ZuYW1lXzMiLCJlbmNvZGVkIjoiNDI5MzQ3MTQ3NDk2NzUzMDM5NTgyNTkwNDQ3MzEwMjk0NjQ3MTgzMDg3MTI5MzkxNDg3OTY3Mjg5Njg0MTcyNzM2NjY2MjI1MDUwNTEifSwibE5hbWUiOnsicmF3IjoidGVzdF9sbmFtZV8zIiwiZW5jb2RlZCI6IjI4MTMwMTE1NDkxOTc0NDE1NDI0MjQwODA4MzEwNTQ3MzExOTMxNTA4ODcwNTc5MzE2ODY4ODg3NjIwNzM2MDEyNjcxNjU5MjkwODIzIn19fX0sInNlbGZfYXR0ZXN0ZWRfYXR0cnMiOnt9LCJ1bnJldmVhbGVkX2F0dHJzIjp7fSwicHJlZGljYXRlcyI6e319LCJpZGVudGlmaWVycyI6W3sic2NoZW1hX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TToyOnRlc3RfdGVzdF9zY2hlbWExNDA2MjItMDc6MTQuMDYuMjIwNyIsImNyZWRfZGVmX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TTozOkNMOjMyMjg3Njp0ZXN0X3Rlc3RfY3JlZC1kZWZfMTQwNjIyLTA3IiwicmV2X3JlZ19pZCI6bnVsbCwidGltZXN0YW1wIjpudWxsfV19\"\n }\n }\n ],\n \"~thread\": {\n \"thid\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"~service\": {\n \"recipientKeys\": [\n \"evCcbASAsuvWGB4y2Z3tVeXKQLsgnF6MZ1NPWcPteiH\"\n ],\n \"routingKeys\": [\n \"3uq8CaLCKcP1Q2JW8KLyDQu9ZrHPbZw4Kix9oZqeY7Tf\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com/mediator\"\n },\n \"~transport\": {\n \"return_route\": \"all\"\n }\n }\n }\n}" - } - ] - }, - { - "name": "Out-of-band-proof-for-type", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "let template = `\r", - "<html>\r", - " <body> \r", - " <div>Scan the QR code below for out of band proof presentation</div>\r", - " <br>\r", - " <div style=\"text-align:center;\">\r", - " <img src='https://api.qrserver.com/v1/create-qr-code/?size=350x350&data=+{{data.presentationMessage}}'></img>\r", - " </div>\r", - " </body>\r", - "</html>`;\r", - "pm.visualizer.set(template, res);\r", - "\r", - "if(res.statusCode == 201){\r", - " pm.environment.set(\"oob_type-presentation-id\", res.data.presentationId);\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "POST", - "header": [ - { - "key": "accept", - "value": "*/*" - } - ], - "url": { - "raw": "{{proof_man_baseURL}}/v1/out-of-band-proof?type=principalMemberCredential", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "out-of-band-proof" - ], - "query": [ - { - "key": "type", - "value": "principalMemberCredential" - } - ] - } - }, - "response": [] - }, - { - "name": "Check-OOB-Type-Verification", - "event": [ - { - "listen": "test", - "script": { - "exec": [ - "const res = pm.response.json();\r", - "\r", - "if (res.statusCode == 200) {\r", - "\tif (res.data.isVerified == true && res.data.state == \"done\") {\r", - "\t\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:green;\">\r", - " <h2>Proof verified successfully</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "\t\tpm.visualizer.set(template, res);\r", - "\t} else {\r", - "\t\tlet template = `\r", - " <html>\r", - " <body> \r", - " <div style=\"text-align:center; color:red;\">\r", - " <h2>Proof not presented yet.</h2>\r", - " </div>\r", - " </body>\r", - " </html>`;\r", - "\t\tpm.visualizer.set(template, res);\r", - "\t}\r", - "}" - ], - "type": "text/javascript" - } - } - ], - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentationId={{oob_type-presentation-id}}", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "presentationId", - "value": "{{oob_type-presentation-id}}" - } - ] - }, - "description": "#### **Description** **:**\n\nThis request is used to fetch proof presentation request information for the presentation id provided in query parameter.\n\n> It also provides state of the proof presentation request.\n\n#### **Query Parameter** **:**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| presentationId | required | `\"presentation_id\"` <br>presentation_id is fetched from the proof request. It provides the state of the request. |" - }, - "response": [ - { - "name": "Check-OOB-Verification", - "originalRequest": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentation_id={{oob-presentation-id}}", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "find-by-presentation-id" - ], - "query": [ - { - "key": "presentation_id", - "value": "{{oob-presentation-id}}" - } - ] - } - }, - "status": "OK", - "code": 200, - "_postman_previewlanguage": "json", - "header": [ - { - "key": "date", - "value": "Wed, 15 Jun 2022 09:28:08 GMT" - }, - { - "key": "content-type", - "value": "application/json; charset=utf-8" - }, - { - "key": "content-length", - "value": "7384" - }, - { - "key": "x-powered-by", - "value": "Express" - }, - { - "key": "access-control-allow-origin", - "value": "*" - }, - { - "key": "etag", - "value": "W/\"1cd8-GlvND2hpBaJd1J2NNqI0bQBluQU\"" - }, - { - "key": "strict-transport-security", - "value": "max-age=15724800; includeSubDomains" - } - ], - "cookie": [], - "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"_tags\": {\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"metadata\": {},\n \"id\": \"7fa03531-74f4-49a0-a94f-6feb30041c13\",\n \"createdAt\": \"2022-06-15T09:27:47.528Z\",\n \"requestMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/request-presentation\",\n \"@id\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"comment\": \"Out of Band\",\n \"request_presentations~attach\": [\n {\n \"@id\": \"libindy-request-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJuYW1lIjoiT3V0IE9mIEJhbmQgUHJvb2YgUmVxdWVzdCIsInZlcnNpb24iOiJPdXQgT2YgQmFuZCBQcm9vZiBSZXF1ZXN0Iiwibm9uY2UiOiI5Njk2NjM0MjY2NDY0IiwicmVxdWVzdGVkX2F0dHJpYnV0ZXMiOnsiYWRkaXRpb25hbFByb3AxIjp7Im5hbWVzIjpbImZOYW1lIiwibE5hbWUiXSwicmVzdHJpY3Rpb25zIjpbeyJzY2hlbWFfaWQiOiI3S3VEVHBRaDNHSjdHcDZrRXJwV3ZNOjI6dGVzdF90ZXN0X3NjaGVtYTE0MDYyMi0wNzoxNC4wNi4yMjA3In1dfX0sInJlcXVlc3RlZF9wcmVkaWNhdGVzIjp7fX0=\"\n }\n }\n ],\n \"~service\": {\n \"recipientKeys\": [\n \"BujL2yfa3XNAWLrzversmz9zYvJJNdYhpLkKB5zg3BiL\"\n ],\n \"routingKeys\": [],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\"\n }\n },\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"autoAcceptProof\": \"always\",\n \"isVerified\": true,\n \"presentationMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/presentation\",\n \"@id\": \"8e2ce5d1-2f04-4edd-935e-75e6b5fed752\",\n \"presentations~attach\": [\n {\n \"@id\": \"libindy-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJwcm9vZiI6eyJwcm9vZnMiOlt7InByaW1hcnlfcHJvb2YiOnsiZXFfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnsiZm5hbWUiOiI0MjkzNDcxNDc0OTY3NTMwMzk1ODI1OTA0NDczMTAyOTQ2NDcxODMwODcxMjkzOTE0ODc5NjcyODk2ODQxNzI3MzY2NjYyMjUwNTA1MSIsImxuYW1lIjoiMjgxMzAxMTU0OTE5NzQ0MTU0MjQyNDA4MDgzMTA1NDczMTE5MzE1MDg4NzA1NzkzMTY4Njg4ODc2MjA3MzYwMTI2NzE2NTkyOTA4MjMifSwiYV9wcmltZSI6IjIzNzk0MTQ0MDAyNjU3Nzk2ODUxNzA2MTE2NTU1MDkyMTI4ODg3MzA0ODc1NzMwODQ3OTMyNDczODI5NzQ4MjE3MzQwMTE5ODQ4Nzg4OTY1OTg3NDIzNDAyOTg1OTUyMzIxMDYwOTk2MDkxNzIwMzgzMzQzNTk2Mjg1MjY5ODA4NjM5NzIxMjM1Njc2MjM5ODk3MjczNDY0NDQyMzkwMDI5ODMyNDk5Mzg3NDg3NTI1MjQyODA0ODI2ODI4OTE1ODcyMjUzNTI3NTI2Nzk2OTg3NzQ0NDc5Njc4MDY3NTMyMTI4ODU4NzczNDA4NDI0NDYwNDIyMjI4MzEwNTg0OTY5MzU3MzIzNTAzNzM0OTc0OTA0MjAzNzc3MzE1Nzc2ODk3NjkwOTk0OTA1ODk0OTA1NzM2MzY0NDY1MzU4NDY0ODkxNDExOTI2MzI5OTcyNTQ5MjM0NjU4ODk2Mzg0Njk4NDMyMDUzMjQ2NDIzNjI0NjY1MTE0MTA5NDk4MTY5NjAyNjgwMDQ4NTI5MTI5NTQxMzA2NzQ5MjQ2MDQ5MjIzMjMwOTU3NzI3Mzk3MTY4Njc4OTkyNDcxMDczMjYzNjQ3MTYxNzg1ODY0NzExNzIyMTA5NTUzMDA5MjQwOTAxODE1NTU3NzEwNTMwNzM2NjA4MDE5MzQ3NDExMzgxMDE1OTM2MTU4ODIxMTQ1MzEzOTk5MzU2NjAzNjQ5MTc1NTU2MDU5NzQwMTA1ODA0OTgyMjI3Njk1OTI3ODcyMzIzOTE5ODMyOTMxODI4MjUwNjAzNTg1Nzg4OTgzOTk1NTk5Mjk1MjUzNjc1IiwiZSI6IjE0NDU5NDA4Nzg4MjMwNTI5ODYxODg2Mzg2NjEwMzY2MjcxMjY3NzgwMjQxOTI4MjY1MzU5Njg5MzQ0MzAwMDUyOTcyMDIzMDI3OTE4NzIwODk0NzI0OTgyNDE2NDYyMzUxOTY1OTA4MDc0Njc1MzgwMDA2NTM3NjQ1MDI5MTg1MzkyNjcyMTQyMyIsInYiOiIxMTE4MTE2MzM1MjY4MTU5NzgzMDA4MzM4ODQ3ODY3NzkxNjk3MTQ3NTAxOTk4ODMwMzIwMDYwNzQ0NjYwOTM2NjU1NDk1Mjc2OTg3NDUzODUyNzUzNzU5MjUzMzYyNDQxNjIyMjMzNTc5Mzc5MDUwMTE1NDI4MjkwMzY5ODg3OTI4MjY2MDQ3NDk0NzYwNzczODc1NjM1MDM0MjYwNjIwMDUxNzEyNTQzOTkzODc5MjQ2NTgxNjE5NDAyMzQ4OTE1MTUyOTA4OTMyNzQ4NzIyOTIwMzU2NDgxMTkzODkwODcwNjEyOTc1NzQyNTk2ODc4MDk4MzkxMDM0NTY5MjgxOTMwMTcwMjQ4NjY5Njc3ODQ4NzU4MTg1NDA0MzY3MTk2OTgwOTQ1NDgxMDkyOTkzOTg2MzQzNzc5MDI4MzI3MTIyMjk1OTkyODQ1NjY5NzIxOTU4Njk1Mzg0MjA1MzU1MTI4ODU3Mzc0NDIyMzk3NTA1MTI5MDYzMzU1MjMxNDIzMzA5OTQwMzk5MjE3NTk4NjgwNDUzNjkxODU1MzE5NzAzMzUxNTczODI2NDk5NDQ3OTg5NTU5MTY1NjgxMzcyNjM3NzYwOTg3MjE4MjMxMjA0NTczNzA1NTg3NDc0MTQ0MTQxMDY0NTY0ODc4OTgxMjEwOTI2ODAxNTY1MjQyOTg3ODMzMTYxMjMxNTQ0NTQ0OTUyODI1MDk5ODM3MDY1Mjg1OTExOTE4OTkyOTcyODA0NDExMzcxODk5MDg1ODc2MTU3OTAxODI1OTU4NzE0NDIzMTA5OTg0ODkwNjc0NTQ2MTMyMjczMTc2Mzg5MjQ1NzU5NjA4MDg3MjU4MDMxNzYwOTU1NTI1MDM4Mjc1MzcyNTQ1NDMyODQwMTA5MDI1NjI3NzU2ODMzMzI5MjMzNzQxNDQ3MDI2NTg0OTUzNTI4NjM3MDM0NzUxNzIzMjE4MTY4OTMxNDM1MDg4MjMyMTc2OTM2MjkxMTIzMjY0ODEyNzg5MTY2MTA3NTk3NTg1NzMzMjQxMDM0MDUzODMxNzA5MjU4MjUyMTU4OTY3MjcyMTkzMTkxODYxNzk1NjMzMjMyODE0ODEzNjE2NTA2MjE2MTU4NDU3MDI1NDQwMDAzMTc0MDEzNTg5ODk2OTg3MDcxMDIwMzA0Mjk2NTUzNDkxNzg0NDE3MDM2MDQxMzI0NTcxNzk4ODExNTczODY2NDI0NTkwNjgxIiwibSI6eyJtYXN0ZXJfc2VjcmV0IjoiMTAxMTQ4NTA2NDgxNjEyOTM4NzI3NTgzNzYxMjQxODQwMzYxODcyMTU1NzU3NDE3MDg1Nzk2MjQzMjY5Nzg0MTg3NTk2NzE0OTA2MTc4MTIxNTk3MDM4NTM0MTk5MDExMTc2NjMxNjY3ODk4NzQ3ODQzNjE2MDE0MzU2OTQ4MDUzMDUzMTcxNjQzODQwOTY1MDE3NTk0MDA0Mjk3ODU2Mjk4OTcwNDI0Mzg2ODY1NjU2OTYiLCJnZW5kZXIiOiIzMjc1MzEzNTkxNDkyMDMyNzUwNDcxMTI4MDA3NTc0NTc3MDkyNDQxODYyMzM1NDg0NDg2MTUzNTM3Njc1OTY4MjUzNjcwMDI2Mjg4NzA0OTg1Nzc4ODc4NDM4ODQ0MTIwODQ0MjU4ODc3NDEyMjAwNzI0MTI2NjAxNzkyOTY0ODA2NzU5NzI4NDA4ODA0MTEwOTk4NzUwOTMzMjQ0MTI2NDQ0NDQyMDA3NDU5MzgxNDA2In0sIm0yIjoiMTI2ODM1NDM0OTk2NTkzNjUyNzU3MTQ2MzY1MTA2NjQzNTYxOTA3NDM0MTY3Njg1ODc2NjU5NzUwMTU2Njg4MDM1MDQ1NDg4MjM1MjA0MjU0MjI4NTk2MTcyOTI2MTgwMjc3NzU4MjYzMTU1MDY1ODE4MjAyNTE2OTc3NTIzOTYwOTQ1MDIzMDkzOTk2Nzc2MjM1MDQyNTk0NzIxMjc5NDIzMzk5ODI3MjE0MzE1OTI4OTgifSwiZ2VfcHJvb2ZzIjpbXX0sIm5vbl9yZXZvY19wcm9vZiI6bnVsbH1dLCJhZ2dyZWdhdGVkX3Byb29mIjp7ImNfaGFzaCI6IjQ1OTgzMTQzOTkwNDU4NDM2NjYzNzIwODcyNDkwNzA0NTIxMjYxODI2NjUzMDA0MjE1ODE0OTAzODA1MzAxMzE4NDIwMjQyNTgyNTA3IiwiY19saXN0IjpbWzE4OCwxMjQsMTAxLDE5MSw3OCw4MiwyMjgsMjE4LDI1MCwxOTQsODgsMTk0LDEyMywzOCw2LDEsMjA0LDIyMSw3MywyMDIsMTQ5LDkwLDE3NiwyNTEsMTExLDU0LDIxMSwxOCwxNCwyNDgsMzEsNzMsNjQsMTU2LDIxNywzMywxMDcsNTcsOTgsMjExLDI0MiwyMzQsMTksMTE5LDc2LDE5LDYzLDM1LDI0OCw4Myw2NywyMjgsMjE5LDE1MiwyOCw0Nyw4NywxMjYsMTk5LDI0MiwxNDYsMTQsMTM3LDk2LDE4NSwyNDMsNDUsMzgsMTA3LDE2NSwyMDksMjA0LDczLDE0MywxMCwxMjEsMTU2LDE0MywyMDQsMjM0LDY3LDI0Miw3MiwxNDQsMTg4LDI1MCwyMTMsMTM2LDE3NiwxMDUsMjA2LDU5LDExMywyMzYsMjQyLDEyMywyMTcsMTEsMjE1LDE2MSwxNTEsMjM1LDgxLDI0NiwyMDEsMTgyLDE4OSw1MSwyMDEsMjI4LDc1LDE3MCwyMjgsMTgyLDM4LDUxLDExNiwxODgsMjM1LDE4NiwyMjIsMTI2LDEyNSwxOSwxNTgsMTQsNTYsNDYsODgsMTc4LDU0LDIxMCwxMDUsMjE2LDEyOSwyMzEsNTAsMTExLDg3LDE1OSwyNDUsMjQsNzksMjQxLDkzLDI1NCwxMjYsMTg1LDEyOCwyMjgsMTExLDg3LDc1LDE0MSwyMjAsMjI5LDQ2LDEwLDI0LDYwLDIxNSwxMDIsMTY3LDE0MCw1NCw3NywyMzIsMjUxLDE0MSw3NiwyNSwyLDE1NSw1NSwyNTEsMjQyLDE4NiwxNTQsMjM1LDI5LDgxLDExMiwxNjMsNjgsNSwyMCwxNzEsNiwyMTYsMTgwLDUwLDExOCwyMDIsNjgsNTYsNzQsMjMxLDIyNSw4OSwxMTYsMTYxLDU2LDE1Miw1MSwxNzEsOTksMjI4LDcyLDE0MCw0MCwyMTAsNjMsODEsMjUyLDIyLDEwLDIwOSwxNTAsMjMyLDE0NSw1MiwxNDcsMTIyLDI0NCwxOCwxMDQsNTIsMjI0LDI1NSwxNiwxMzcsMTA4LDI0NSwyNDAsMTIwLDE1NCwxOTYsMjAwLDIxMiw1Myw2MywxMDQsMjAwLDIzLDE2MiwxMDQsMTA5LDE1OSwyMzgsMTc5LDAsMTcxLDEzMCwyNTAsMTQwLDE3MV1dfX0sInJlcXVlc3RlZF9wcm9vZiI6eyJyZXZlYWxlZF9hdHRycyI6e30sInJldmVhbGVkX2F0dHJfZ3JvdXBzIjp7ImFkZGl0aW9uYWxQcm9wMSI6eyJzdWJfcHJvb2ZfaW5kZXgiOjAsInZhbHVlcyI6eyJmTmFtZSI6eyJyYXciOiJ0ZXN0X2ZuYW1lXzMiLCJlbmNvZGVkIjoiNDI5MzQ3MTQ3NDk2NzUzMDM5NTgyNTkwNDQ3MzEwMjk0NjQ3MTgzMDg3MTI5MzkxNDg3OTY3Mjg5Njg0MTcyNzM2NjY2MjI1MDUwNTEifSwibE5hbWUiOnsicmF3IjoidGVzdF9sbmFtZV8zIiwiZW5jb2RlZCI6IjI4MTMwMTE1NDkxOTc0NDE1NDI0MjQwODA4MzEwNTQ3MzExOTMxNTA4ODcwNTc5MzE2ODY4ODg3NjIwNzM2MDEyNjcxNjU5MjkwODIzIn19fX0sInNlbGZfYXR0ZXN0ZWRfYXR0cnMiOnt9LCJ1bnJldmVhbGVkX2F0dHJzIjp7fSwicHJlZGljYXRlcyI6e319LCJpZGVudGlmaWVycyI6W3sic2NoZW1hX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TToyOnRlc3RfdGVzdF9zY2hlbWExNDA2MjItMDc6MTQuMDYuMjIwNyIsImNyZWRfZGVmX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TTozOkNMOjMyMjg3Njp0ZXN0X3Rlc3RfY3JlZC1kZWZfMTQwNjIyLTA3IiwicmV2X3JlZ19pZCI6bnVsbCwidGltZXN0YW1wIjpudWxsfV19\"\n }\n }\n ],\n \"~thread\": {\n \"thid\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"~service\": {\n \"recipientKeys\": [\n \"evCcbASAsuvWGB4y2Z3tVeXKQLsgnF6MZ1NPWcPteiH\"\n ],\n \"routingKeys\": [\n \"3uq8CaLCKcP1Q2JW8KLyDQu9ZrHPbZw4Kix9oZqeY7Tf\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com/mediator\"\n },\n \"~transport\": {\n \"return_route\": \"all\"\n }\n }\n }\n}" - } - ] - }, - { - "name": "http://3.111.77.38:3007/v1/accept-presentation?presentation_id=5eceaa96-d08a-42a3-a083-98672ce55188", - "request": { - "method": "POST", - "header": [ - { - "key": "accept", - "value": "*/*" - } - ], - "url": { - "raw": "{{proof_man_baseURL}}/v1/accept-presentation?presentation_id=5eceaa96-d08a-42a3-a083-98672ce55188", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "accept-presentation" - ], - "query": [ - { - "key": "presentation_id", - "value": "5eceaa96-d08a-42a3-a083-98672ce55188" - } - ] - } - }, - "response": [] - }, - { - "name": "Get-agent-proofs-proposal", - "request": { - "method": "GET", - "header": [], - "url": { - "raw": "{{proof_man_baseURL}}/v1/agent-proofs?threadId=85054e0d-2c21-4711-88d0-0c66ad1959f5", - "host": [ - "{{proof_man_baseURL}}" - ], - "path": [ - "v1", - "agent-proofs" - ], - "query": [ - { - "key": "threadId", - "value": "85054e0d-2c21-4711-88d0-0c66ad1959f5" - } - ] - } - }, - "response": [] - } - ] -} \ No newline at end of file + "info": { + "_postman_id": "fc2cf79c-4e29-4101-a833-3fd2a9243c9e", + "name": "Proof Manager", + "description": "#### **Description** **:**\n\nThe Proof Manager is the collection of request which can be used to request proof presentation to connections and for out of band verifications. Also it returns all the proof presentation requests and their status.", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", + "_exporter_id": "17714957" + }, + "item": [ + { + "name": "Find-proof-presentation", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-proof-presentation?pageSize=&page", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-proof-presentation"], + "query": [ + { + "key": "pageSize", + "value": "" + }, + { + "key": "page", + "value": null + } + ] + }, + "description": "#### **Description** **:**\n\nThis request fetches the all the proof presentation requests for the participant. The records can be filtered using provided query parameters.\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. |\n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| Key | Description |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → count` | It returns the total number of records available in the response. |\n| `data → records` | It returns the actual information that was requested in the form of JSON object array. |\n| `data → records → id` | It returns the id for the corresponding record in the database. |\n| `data → records → presentation_id` | It returns the presentation id for the corresponding record in the database. |\n| `data → records → connectionId` | It returns the connection id for the corresponding record in the database. |\n| `data → records → credential_def_id` | It returns the credential defination id for the corresponding record in the database. |\n| `data → records → schemaId` | It returns the corresponding unique id for schema on the ledger. |\n| `data → records → their_did` | It returns the their did for the corresponding record in the database. |\n| `data → records → status` | It returns the status for the corresponding record in the database. |\n| `data → records → created_date` | It returns the date the proof was created. |\n| `data → records → updated_date` | It returns the last proof updation date. |" + }, + "response": [ + { + "name": "Find-proof-presentation", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-proof-presentation?pageSize=&page", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-proof-presentation"], + "query": [ + { + "key": "pageSize", + "value": "" + }, + { + "key": "page", + "value": null + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:28:21 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "3672" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"e58-XnEVMyMw0qXfuwsZQNiDlSRBjyQ\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"count\": 36,\n \"records\": [\n {\n \"id\": \"051bdceb-07df-419b-98f4-3c0dd92c4b68\",\n \"presentation_id\": \"a033c848-7d9c-448e-9336-8237882d4418\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema130622:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-13T13:56:09.864Z\",\n \"updated_date\": \"2022-06-13T13:56:09.864Z\"\n },\n {\n \"id\": \"095e6ea8-f580-4269-993a-8eef6758ba74\",\n \"presentation_id\": \"b0784df1-14a6-4f5d-b038-43c296bf715f\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_13-06-22:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-14T10:39:49.377Z\",\n \"updated_date\": \"2022-06-14T10:40:59.510Z\"\n },\n {\n \"id\": \"15107aeb-3a77-4b62-a3b6-0710cdc64225\",\n \"presentation_id\": \"bfbd97a8-efd9-4aa0-bdc4-b2fa1d342148\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema130622:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-13T14:11:14.955Z\",\n \"updated_date\": \"2022-06-13T14:11:29.769Z\"\n },\n {\n \"id\": \"1b459690-849b-4f3d-b6a4-0316933590a4\",\n \"presentation_id\": \"bcda614b-bac8-41f7-9680-f95ff67f6382\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-14T11:58:39.846Z\",\n \"updated_date\": \"2022-06-14T12:01:07.841Z\"\n },\n {\n \"id\": \"1f8df45a-0e53-461b-b90b-cfe40042e629\",\n \"presentation_id\": \"b00113d8-4aa7-4c6f-9bfa-90be89834355\",\n \"connectionId\": \"493f3aee-448d-4fc7-9698-e3d8aa6f862c\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_06_09:1.0.4\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-09T12:16:23.157Z\",\n \"updated_date\": \"2022-06-09T12:16:23.157Z\"\n },\n {\n \"id\": \"1fe91ebc-c086-43ef-8cac-ebb56f32e14d\",\n \"presentation_id\": \"f3c137d7-c945-4e1b-8c00-55c3dbc94cf4\",\n \"connectionId\": \"f4f39f80-3f9f-45b3-a6f9-e7eb3946353c\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_13-06-22:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-14T10:20:54.732Z\",\n \"updated_date\": \"2022-06-14T10:21:06.573Z\"\n },\n {\n \"id\": \"2bf3377e-4d84-46c9-851a-98d8ab0244ec\",\n \"presentation_id\": \"0b3e2ec9-d5f7-4c34-8fba-d2b4120c0866\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-04:14.06.2204\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-14T10:36:51.670Z\",\n \"updated_date\": \"2022-06-14T10:36:51.670Z\"\n },\n {\n \"id\": \"2d725225-acfd-4aa3-96b0-2564aa2a71a3\",\n \"presentation_id\": \"0f65c623-f130-4895-8154-fb229b2484f8\",\n \"connectionId\": \"30df956f-e9f2-4421-9d5b-73d259106667\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:principal_schema_13-06-22:13.06.22\",\n \"their_did\": \"\",\n \"status\": \"done\",\n \"created_date\": \"2022-06-13T13:54:43.312Z\",\n \"updated_date\": \"2022-06-13T13:55:13.701Z\"\n },\n {\n \"id\": \"377cbfc2-7055-48f1-8d69-ccb994e4dc0f\",\n \"presentation_id\": \"5732be89-cb54-40fc-81e6-7b9fe7676769\",\n \"connectionId\": \"9050c647-2931-4fdb-8f65-007c79f0bd33\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-06:14.06.2206\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-14T10:46:12.010Z\",\n \"updated_date\": \"2022-06-14T10:46:12.010Z\"\n },\n {\n \"id\": \"3a2eae7d-1021-4ee8-8cfb-41ec7789d03e\",\n \"presentation_id\": \"62257855-af83-46dc-9f18-ea223db7e663\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-04:14.06.2204\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-14T10:26:57.734Z\",\n \"updated_date\": \"2022-06-14T10:26:57.734Z\"\n }\n ]\n }\n}" + } + ] + }, + { + "name": "Send-presentation-request", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json()\r", + "\r", + "if(res.statusCode == 201){\r", + " pm.environment.set(\"presentation-id\", res.data.presentationId);\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"comment\": \"Tested participant\",\r\n \"attributes\": [\r\n {\r\n \"attribute_name\": \"{{array0}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n }\r\n ],\r\n \"schemaId\": \"\",\r\n \"credentialDefId\": \"{{cred-def-id}}\",\r\n \"connectionId\": \"{{conn-id}}\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{proof_man_baseURL}}/v1/send-presentation-request", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "send-presentation-request"] + }, + "description": "#### **Description** **:**\n\nFrom a verifier to a prover, the presentation request message describes values that need to be revealed and predicates that need to be fulfilled.\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| credential_def_id | required | `\"cred_def_id\"` <br>key maps to the credential definition identifier of the credential with the current attribute. It should be provided in \"STRING\" format. Mandatory if schema_id is not provided. |\n| schemaId | required | `\"schema_name\"` <br>Should be valid existing schema and should be provided as \"STRING\". Mandatory if cred_def_id is not provided. |\n| attributes | required | `[{ \"`attribute_name`\" : \"attr_name\" }]` <br>should be provided JSON array. |\n\n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| Key | Description |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → id` | It returns the id for the corresponding record in the database. |\n| `data → presentation_id` | It returns the presentation id for the corresponding record in the database. |\n| `data → connectionId` | It returns the connection id for the corresponding record in the database. |\n| `data → credential_def_id` | It returns the credential defination id for the corresponding record in the database. |\n| `data → schemaId` | It returns the corresponding unique id for schema on the ledger. |\n| `data → their_did` | It returns the their did for the corresponding record in the database. |\n| `data → status` | It returns the status for the corresponding record in the database. |\n| `data → created_date` | It returns the date the proof was created. |\n| `data → updated_date` | It returns the last proof updation date. |" + }, + "response": [ + { + "name": "Send-presentation-request", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"comment\": \"Tested participant\",\r\n \"attributes\": [\r\n {\r\n \"attribute_name\": \"{{array0}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n },\r\n {\r\n \"attribute_name\": \"{{array1}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n }\r\n ],\r\n \"schemaId\": \"{{schema-id}}\",\r\n \"credential_def_id\": \"\",\r\n \"connectionId\": \"{{conn-id}}\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{proof_man_baseURL}}/v1/send-presentation-request", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "send-presentation-request"] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:27:07 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "454" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"1c6-E7pFwPlnxfbEOOkPcsFYYpmaWW8\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 201,\n \"message\": \"Presentation request send successfully\",\n \"data\": {\n \"id\": \"48b2b61d-a5d9-4c1d-a745-ed5cd018c5bd\",\n \"presentation_id\": \"07f27a99-4ff2-4d3c-82f9-0f49cd6d8203\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-15T09:27:07.302Z\",\n \"updated_date\": \"2022-06-15T09:27:07.302Z\"\n }\n}" + } + ] + }, + { + "name": "Check-Verification", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "if (res.statusCode == 200) {\r", + "\tif (res.data.isVerified == true && res.data.state == \"done\") {\r", + "\t\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:green;\">\r", + " <h2>Proof verified successfully</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "\t\tpm.visualizer.set(template, res);\r", + "\t} else {\r", + "\t\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:red;\">\r", + " <h2>Proof not presented yet.</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "\t\tpm.visualizer.set(template, res);\r", + "\t}\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + }, + "request": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentationId={{presentation-id}}", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "presentationId", + "value": "{{presentation-id}}" + } + ] + }, + "description": "#### **Description** **:**\n\nThis request is used to fetch proof presentation request information for the presentation id provided in query parameter.\n\n> It also provides state of the proof presentation request.\n\n#### **Query Parameter** **:**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| presentationId | required | `\"presentation_id\"` <br>presentation_id is fetched from the proof request. It provides the state of the request. |" + }, + "response": [ + { + "name": "Check-Verification", + "originalRequest": { + "method": "GET", + "header": [], + "body": { + "mode": "raw", + "raw": "", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentation_id={{presentation-id}}", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "presentation_id", + "value": "{{presentation-id}}" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:27:28 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "7040" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"1b80-KzH+KoJHRvjoAbq0eUEVKSnHnbc\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"_tags\": {\n \"threadId\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\",\n \"state\": \"done\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\"\n },\n \"metadata\": {},\n \"id\": \"07f27a99-4ff2-4d3c-82f9-0f49cd6d8203\",\n \"createdAt\": \"2022-06-15T09:27:07.209Z\",\n \"requestMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/request-presentation\",\n \"@id\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\",\n \"comment\": \"Tested participant\",\n \"request_presentations~attach\": [\n {\n \"@id\": \"libindy-request-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJuYW1lIjoiUHJvb2YgUmVxdWVzdCIsInZlcnNpb24iOiJQcm9vZiBSZXF1ZXN0Iiwibm9uY2UiOiIxMTMzMjE0Mzg2ODU3IiwicmVxdWVzdGVkX2F0dHJpYnV0ZXMiOnsiYWRkaXRpb25hbFByb3AxIjp7Im5hbWVzIjpbImZOYW1lIiwibE5hbWUiXSwicmVzdHJpY3Rpb25zIjpbeyJzY2hlbWFfaWQiOiI3S3VEVHBRaDNHSjdHcDZrRXJwV3ZNOjI6dGVzdF90ZXN0X3NjaGVtYTE0MDYyMi0wNzoxNC4wNi4yMjA3In1dfX0sInJlcXVlc3RlZF9wcmVkaWNhdGVzIjp7fX0=\"\n }\n }\n ]\n },\n \"state\": \"done\",\n \"connectionId\": \"3d14a056-8e4d-4336-9a48-541ce7ec7a80\",\n \"threadId\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\",\n \"isVerified\": true,\n \"presentationMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/presentation\",\n \"@id\": \"7396b6fd-cde1-454f-b620-1014e363b723\",\n \"presentations~attach\": [\n {\n \"@id\": \"libindy-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJwcm9vZiI6eyJwcm9vZnMiOlt7InByaW1hcnlfcHJvb2YiOnsiZXFfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnsiZm5hbWUiOiI0MjkzNDcxNDc0OTY3NTMwMzk1ODI1OTA0NDczMTAyOTQ2NDcxODMwODcxMjkzOTE0ODc5NjcyODk2ODQxNzI3MzY2NjYyMjUwNTA1MSIsImxuYW1lIjoiMjgxMzAxMTU0OTE5NzQ0MTU0MjQyNDA4MDgzMTA1NDczMTE5MzE1MDg4NzA1NzkzMTY4Njg4ODc2MjA3MzYwMTI2NzE2NTkyOTA4MjMifSwiYV9wcmltZSI6IjU0ODA1NjExMjEwMzgxMDA1MTgxNjc3Njg0OTU2Mjg3ODYzMjkwODMyODI0MjEzNzM2NjQwNDE2MjA2MTAzMDQ0ODQxNzkyMTMyMzc3MTA4ODE4NTg3MzgyOTEyNTE2ODU2NTc0NzA4NjI2Nzc4NDgzMDU4NzI3ODc1MjAzNTkzOTUxMDgxODMxNzMyMDg2MzEzMDM1MzQxODY0NTkzMDk2Nzk5ODYxMTE5NjQ1MTAwMzc0ODAxODM3NzU3ODU0MDI4OTMxMzYxMDA4NTk4NTgxNDU2MDI1OTAxNzM1NTc5MzkxNDc0MDE4Mzg1NDUxNjY2MjY1MzUyNjM3OTcwMTUxMTA0NDQzNDI3NzQ0MDI4MjYyNTg0ODU1MDQ4ODQzMzg1NTQ4MTYyNjA5NzU2NzM4NzA1OTcyNjExNDg0ODgzOTkwODM3OTE5MDI1NzI0NDExODg4MTkyMTI3NDUzMTIwMDI2MzY0NTU1NzAzMjcxNjYxNTUwNTMxMTk1NTIwNzk3OTU1ODI4MTcwODcxNzMwNjQ4MzYyMDE2MTc3MjU5Njk2NDQyNzE2NTAyNDY2MDcxMzgwNzk4Mjc4OTM0NTc5Nzg0NDIxMTg3NjYzMjU5MjU1MDk5Mzg2ODgxNDc4NDM5MDkyMTA3MDE2MzgwMTYxNzYwMDg5MTUzMDUzNjMwNzY2ODQzMDQwNDY0MTY3ODE3NTgxMjc4NTEwOTA4MjIxNjY2OTUwNjgxMTEwMDI4NzU2OTMwNDIxNjkxNjE3MDcxNzgxODcwNzU0NDI5NDk3NzQyMzYwMTI1MjEwNjg4MzM0NTI1NjkxIiwiZSI6IjM5ODgzMDc4NDcyMjI5MTg1ODQzMTE2NjkxNDM1ODc2MzA0MTUzMDQwMzI5MTQ0MTY1MzY3MTU4ODY1MDY5MzExOTQ5MzY2NTM2NDg0NTgxMjU0NDc3NTUwNzYwODgzNzEzNjc0NTQ4ODI0MzQ1ODU1MTczMDgxNDI5MDc0MTY0OTE1ODkzOTA5IiwidiI6IjExMTI0Njg4MDYyMTE5MDgwNTg3MTYwOTgwMDI5MjIzNTc3MjIwNzAyMjQzNzY5MTIyMzkyMTg1OTA5NDE5Nzg5MjExODg4NjUzMjg1NTAwNTYwNDQ5MzcxODY2MTA1NTkzMzMyNDMwOTE4Mzg1MTQ5NTQ5NTAwMzI5NTMwNDY3NTkyMzc4Mjg0OTg1ODk1MTM0NDExMDY2NTUyNDg2ODMxNzA0NzM1MzY1MTYyMzM5MjI5NTMxNjA2MDYzMzk4OTk3MjQzMDE4OTU5NDE0NzE2ODkyNDY2NjM0MDEzOTE0MzM5MTQzODI4NDk0NDYwODQ3NTAyNjIxMzI4MDM3OTc2MDE3OTQyMjM0NDEwNzAzNzgyMzgxNDYxNjYwNTc1NzQyMjk5NDYwMDM1NDczNjI4MzE1MjAxOTUzMjI0MDkyNDgwMTgyNzk3NDg2MjU0MDY4MTExMzQ3MjkxMDM2NDA4MDE3OTgwNjU4NTg3OTE0MTA1NTM4MDU5MDgxMzU3MTI3MjU1OTc3MjU1MzM5Mzg2MTIyMjQwMjM3ODA5Nzg4Mzk3MDQyMzYwMTY0OTI3NDIyNjI4NDA4OTE5OTc3ODMxMzIxNDA1NDY0MjQxNzgzNzU5MTYxNDEzODYyNTY0OTQzNjE1MjA3MTk4NDk4MzUxNjA5OTk1OTE3MTY4MzY1NjA1MTc3MDM4MDA2NTMwNzA4MjA3OTk5MTY0NjQ3MjcwNDYzNDY1NDA5NDU0MzA4MDA0NjU0Nzg1OTI2NjEzMDYwNDk5NDY2NzIxMjI5NzQwOTk5NDM2NDMxMzM4MTAxMTY5NjY3Nzk1ODk4Nzk0NjQ3MjkxOTI2OTk5MTUxMjgxNDY1MDQyMDgwMjQ1NzM4MzA3MTM1NjAyNDgzNDg0OTQwOTU4NTUwNjMzMTAxMjE5MTkxNjYwMDExNjQ5MjY3MzI3ODIzMzk0MzY4NTk5MDE3Njk1NTEwNTk1NjU2MTU4MDI3NjUyMjEyODQ1MTUyNTQ0MzE1Njk1NjE2NDU1MzI1NTI2NzE1NTA3MzQ2NjA0NDIxMjc5NTA1OTQ0MjY5NzQ2OTg4NjIwNTUzNjI2OTk3NjkzNjY3MzUxMTIyNTQ0MDMwNTg4NjE2MDQxNDc0MDMyNDQzNTY0MTcwMDI4NzIyOTQxMzk1NDYyNDk3ODM4MDY1NjY1MTU4NDAyODgxNTI5MzEwOTYwNjU3ODIwNDYzNDkwMDU0OTUiLCJtIjp7ImdlbmRlciI6IjcyMjk0MzA2MDk1NjU2OTQ1OTY2NzgxMDAwNzY1NDg0OTA0Mjg4MjUyMDU1MjE0OTU1MjEzNzE3NzU4MTc0MTE4ODY3OTEzODI5MzAwMzk2MjA3OTU5MzA2MzU5MTI3MTEzMzYzMDA0MDUzNTc5NzE3OTQ2MTUyMzQyODAxNjUzOTUwNDY0MzgwMzExNTU4NDEwOTUzODc3MjMxMTEyMzQ3OTY2NTQ2MjQyNTc1NjY3MDIiLCJtYXN0ZXJfc2VjcmV0IjoiNjM5MDE0ODgzMjE3NTY0ODA4Njk3MTAxOTMyNjgyODg3Mzc4MjE1Njk4MzkwNDAxNDYzMzY2OTkwMzgyNzQ1MzQwMTM1Mjk2Njc3ODI2MTY5NDEwNjA3MTEyODAwNjc1OTk0NTU3ODgwNDI1NTUxMzAwNjg4MDA5NzU5NDkwOTYwMTY1NTY2OTI4MzUyMjM3NDE5OTY4NTQ1MjY0NDkzNzgxNjkzNzMyOTE1Nzg1OTE3NyJ9LCJtMiI6IjgwNjYxMzg5NDY1MDcwMDU5NjkwMTkxNzU2Mzk5NjUzOTUxNTgzNTc1Mjk3NjQ1MjQ3NzIyNjgyNTA1MDM4MDcyMzc4NzA5Nzg4MTc0MTc4MzgyNjMzMTI1MjY4OTU3OTE2Njg1NTYzNTU1NTg2MDQ2OTM1NzAxNTI1NDg5MDc5MjI2NDA3MDMwMDM4MjU2MTkzNzA3MTM0NzcxMzA0NDk0MTAyNzM5MzcwNzAwOTM1NDAifSwiZ2VfcHJvb2ZzIjpbXX0sIm5vbl9yZXZvY19wcm9vZiI6bnVsbH1dLCJhZ2dyZWdhdGVkX3Byb29mIjp7ImNfaGFzaCI6IjExMjI1Nzc2Njc5MDE1NzAxODY5NjgwNTAzMzcxMDg2NzI4NjY4OTMwMDIwOTc5NjEyOTgwMTA2MDk3Mzk0Nzk0OTI1OTg3OTc2MDM1MCIsImNfbGlzdCI6W1sxLDE3OCwzNiwyMjUsMTU3LDI0OSwyNCwyMDgsMTMsNTAsODIsMTYsMjE0LDY3LDQ0LDI0NywyMTMsNjgsMTg1LDI1NSwxMDUsMTM4LDIzMywxNDksMTI4LDEyMiwxODAsMjE3LDE3NSwyMywzMyw2NywxMzIsMjA4LDUxLDQ2LDExOCwyMzMsMjIsMjMyLDExMSwxMTcsMjEwLDk3LDEzMCw1LDIwNSwzOCwyOCwzMCwxMjQsMjE3LDE0NSwyMTgsOTMsMTYwLDEyNiw2MywyMTQsMjAwLDUsNDcsNjksODEsMjI1LDM5LDU4LDEwNywxOCwxMjcsMTcyLDIwLDI1Myw1MCw3Nyw5NiwyMjMsMTc3LDQzLDYxLDU1LDIxNSwyMSw1NSw2MCwyMTIsMTc5LDEwNywzNiwyNTUsNjksMTQ5LDE5MSwyNDQsNjAsMjA4LDIwMiwxODQsMjAzLDE0OSwxNTcsMTU0LDE0MywxMDUsMTcwLDE2NSwxMSwzLDkzLDk0LDIzMiwxNjQsMTc4LDI0MSwyMzUsNTgsOTMsMjQyLDIxOCw2MSw3NSw2Niw5MywxNTcsMjQ2LDE5OCwxNzIsMTY2LDEwMCwxOCwxMTgsMTk2LDU2LDU4LDEzNywyMjksMTMyLDIyNSwyMiw1MSwxNTksMTcxLDYsNTUsMjM1LDE2OCwxMiw0NiwxMjIsNDAsMTcsMTU4LDE4NywxNzksMTkwLDEyMCwyNDcsMTk3LDY2LDE0NSwxNDcsNzcsNTksMTg3LDI1NCw3MCwyMjYsOSwxNzgsMjIyLDEwMiwyMzcsMTYsMTMwLDEwLDI0MywyNiwxNzQsMTIwLDEwNCwxMDQsMTA3LDc1LDE4NiwzMCwyMTksNzYsMTAxLDIzOCwxMiw3Niw2OCwzMyw2LDE4MSwxMzEsMjU0LDI1MCwxNjIsMTAyLDE4OSw4LDU3LDE1MywxMTIsOSwyNSwxOTYsMjA5LDAsMTk4LDE5MiwxOTgsMTcwLDIxOCwxMiw1Nyw3MiwzNCwzLDExOCwxMzAsMTU4LDIyNyw0NCwxODcsMTA5LDE4MSwyMzAsMjE3LDIwNyw0Myw3NSwxNjIsMjQzLDIxMiwyMSwxNjcsMTU3LDIwNiwxMzksMTM3LDI1MCwxNzksMzAsODIsNzAsNzMsMTQsNjMsMjA2LDI0Myw2MiwxNjksMTYyLDI0NCwyNTFdXX19LCJyZXF1ZXN0ZWRfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnt9LCJyZXZlYWxlZF9hdHRyX2dyb3VwcyI6eyJhZGRpdGlvbmFsUHJvcDEiOnsic3ViX3Byb29mX2luZGV4IjowLCJ2YWx1ZXMiOnsiZk5hbWUiOnsicmF3IjoidGVzdF9mbmFtZV8zIiwiZW5jb2RlZCI6IjQyOTM0NzE0NzQ5Njc1MzAzOTU4MjU5MDQ0NzMxMDI5NDY0NzE4MzA4NzEyOTM5MTQ4Nzk2NzI4OTY4NDE3MjczNjY2NjIyNTA1MDUxIn0sImxOYW1lIjp7InJhdyI6InRlc3RfbG5hbWVfMyIsImVuY29kZWQiOiIyODEzMDExNTQ5MTk3NDQxNTQyNDI0MDgwODMxMDU0NzMxMTkzMTUwODg3MDU3OTMxNjg2ODg4NzYyMDczNjAxMjY3MTY1OTI5MDgyMyJ9fX19LCJzZWxmX2F0dGVzdGVkX2F0dHJzIjp7fSwidW5yZXZlYWxlZF9hdHRycyI6e30sInByZWRpY2F0ZXMiOnt9fSwiaWRlbnRpZmllcnMiOlt7InNjaGVtYV9pZCI6IjdLdURUcFFoM0dKN0dwNmtFcnBXdk06Mjp0ZXN0X3Rlc3Rfc2NoZW1hMTQwNjIyLTA3OjE0LjA2LjIyMDciLCJjcmVkX2RlZl9pZCI6IjdLdURUcFFoM0dKN0dwNmtFcnBXdk06MzpDTDozMjI4NzY6dGVzdF90ZXN0X2NyZWQtZGVmXzE0MDYyMi0wNyIsInJldl9yZWdfaWQiOm51bGwsInRpbWVzdGFtcCI6bnVsbH1dfQ==\"\n }\n }\n ],\n \"~thread\": {\n \"thid\": \"2037118f-1e63-4bd7-963b-c0e437f0ddd3\"\n }\n }\n }\n}" + } + ] + }, + { + "name": "Out-of-band-proof-presentation", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "let template = `\r", + "<html>\r", + " <body> \r", + " <div>Scan the QR code below for out of band proof presentation</div>\r", + " <br>\r", + " <div style=\"text-align:center;\">\r", + " <img src='https://api.qrserver.com/v1/create-qr-code/?size=350x350&data=+{{data.presentationMessage}}'></img>\r", + " </div>\r", + " </body>\r", + "</html>`;\r", + "pm.visualizer.set(template, res);\r", + "\r", + "if(res.statusCode == 201){\r", + " pm.environment.set(\"oob-presentation-id\", res.data.presentationId);\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"schemaName\":\"\",\r\n \"attributes\":[\"{{array0}}\",\"{{array1}}\"],\r\n \"options\": { \r\n \"type\":\"Aries1.0\",\r\n \"credentialDefinationName\":\"{{cred-def-id}}\"\r\n }\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{proof_man_baseURL}}/v1/send-out-of-band-presentation-request", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "send-out-of-band-presentation-request"] + }, + "description": "#### **Description** **:**\n\nFrom a verifier to a prover, the out of band presentation request message describes values that need to be revealed and predicates that need to be fulfilled.\n\n> The Out-of-band protocol is used when you wish to engage with another agent and you don't have a DIDComm connection to use for the interaction.\n\n#### **Body Parameters :**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| credential_def_id | required | `\"cred_def_id\"` <br>key maps to the credential definition identifier of the credential with the current attribute. It should be provided in \"STRING\" format. Mandatory if schema_id is not provided. |\n| schemaId | required | `\"schema_name\"` <br>Should be valid existing schema and should be provided as \"STRING\". Mandatory if cred_def_id is not provided. |\n| attributes | required | `[{ \"`attribute_name`\" : \"attr_name\" }]` <br>should be provided JSON array. |\n\n \n \n\n#### **Response :**\n\nThe positive response for this request comprises of following attributes :\n\n| Key | Description |\n| --- | --- |\n| `statusCode` | It return the http response code on the execution of this request. |\n| `message` | It returns the standard response with accordance to the action performed. |\n| `data` | It returns the requested information for the request. |\n| `data → id` | It returns the id for the corresponding record in the database. |\n| `data → presentation_id` | It returns the presentation id for the corresponding record in the database. |\n| `data → connectionId` | It returns the connection id for the corresponding record in the database. |\n| `data → credential_def_id` | It returns the credential defination id for the corresponding record in the database. |\n| `data → schemaId` | It returns the corresponding unique id for schema on the ledger. |\n| `data → their_did` | It returns the their did for the corresponding record in the database. |\n| `data → status` | It returns the status for the corresponding record in the database. |\n| `data → created_date` | It returns the date the presentation proof was created. |\n| `data → updated_date` | It returns the last presentation proof updation date. |\n| `data → presentationMessage` | It returns the presentation message for the corresponding record return by the mediator. |" + }, + "response": [ + { + "name": "Out-of-band-proof-presentation", + "originalRequest": { + "method": "POST", + "header": [], + "body": { + "mode": "raw", + "raw": "{\r\n \"comment\": \"Out of Band\",\r\n \"attributes\": [\r\n {\r\n \"attribute_name\": \"{{array0}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n },\r\n {\r\n \"attribute_name\": \"{{array1}}\",\r\n \"value\": \"\",\r\n \"condition\": \"\"\r\n }\r\n ],\r\n \"credential_def_id\": \"\",\r\n \"schemaId\": \"{{schema-id}}\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "url": { + "raw": "{{proof_man_baseURL}}/v1/send-out-of-band-presentation-request", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "send-out-of-band-presentation-request"] + } + }, + "status": "Created", + "code": 201, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:27:47 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "1570" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"622-ZaUMbvDBDS5ELn3jeaSKeedxEIQ\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 201,\n \"message\": \"Presentation request send successfully\",\n \"data\": {\n \"id\": \"853d92b2-0260-41a7-a9af-3c026be8fe35\",\n \"presentation_id\": \"7fa03531-74f4-49a0-a94f-6feb30041c13\",\n \"connectionId\": \"\",\n \"credential_def_id\": \"\",\n \"schemaId\": \"7KuDTpQh3GJ7Gp6kErpWvM:2:test_test_schema140622-07:14.06.2207\",\n \"their_did\": \"\",\n \"status\": \"request-sent\",\n \"created_date\": \"2022-06-15T09:27:47.562Z\",\n \"updated_date\": \"2022-06-15T09:27:47.562Z\",\n \"presentationMessage\": \"https://gaiax.vereign.com:443/ocm/didcomm/?d_m=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvcHJlc2VudC1wcm9vZi8xLjAvcmVxdWVzdC1wcmVzZW50YXRpb24iLCJAaWQiOiJlOGViZGQyZS0xOGM2LTRkY2EtOWFmMy05ZjZjNWYyNzk0YzYiLCJjb21tZW50IjoiT3V0IG9mIEJhbmQiLCJyZXF1ZXN0X3ByZXNlbnRhdGlvbnN-YXR0YWNoIjpbeyJAaWQiOiJsaWJpbmR5LXJlcXVlc3QtcHJlc2VudGF0aW9uLTAiLCJtaW1lLXR5cGUiOiJhcHBsaWNhdGlvbi9qc29uIiwiZGF0YSI6eyJiYXNlNjQiOiJleUp1WVcxbElqb2lUM1YwSUU5bUlFSmhibVFnVUhKdmIyWWdVbVZ4ZFdWemRDSXNJblpsY25OcGIyNGlPaUpQZFhRZ1QyWWdRbUZ1WkNCUWNtOXZaaUJTWlhGMVpYTjBJaXdpYm05dVkyVWlPaUk1TmprMk5qTTBNalkyTkRZMElpd2ljbVZ4ZFdWemRHVmtYMkYwZEhKcFluVjBaWE1pT25zaVlXUmthWFJwYjI1aGJGQnliM0F4SWpwN0ltNWhiV1Z6SWpwYkltWk9ZVzFsSWl3aWJFNWhiV1VpWFN3aWNtVnpkSEpwWTNScGIyNXpJanBiZXlKelkyaGxiV0ZmYVdRaU9pSTNTM1ZFVkhCUmFETkhTamRIY0RaclJYSndWM1pOT2pJNmRHVnpkRjkwWlhOMFgzTmphR1Z0WVRFME1EWXlNaTB3TnpveE5DNHdOaTR5TWpBM0luMWRmWDBzSW5KbGNYVmxjM1JsWkY5d2NtVmthV05oZEdWeklqcDdmWDA9In19XSwifnNlcnZpY2UiOnsicmVjaXBpZW50S2V5cyI6WyJCdWpMMnlmYTNYTkFXTHJ6dmVyc216OXpZdkpKTmRZaHBMa0tCNXpnM0JpTCJdLCJyb3V0aW5nS2V5cyI6W10sInNlcnZpY2VFbmRwb2ludCI6Imh0dHBzOi8vZ2FpYXgudmVyZWlnbi5jb206NDQzL29jbS9kaWRjb21tIn19\"\n }\n}" + } + ] + }, + { + "name": "Check-OOB-Verification", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "if (res.statusCode == 200) {\r", + "\tif (res.data.isVerified == true && res.data.state == \"done\") {\r", + "\t\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:green;\">\r", + " <h2>Proof verified successfully</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "\t\tpm.visualizer.set(template, res);\r", + "\t} else {\r", + "\t\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:red;\">\r", + " <h2>Proof not presented yet.</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "\t\tpm.visualizer.set(template, res);\r", + "\t}\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentationId={{oob-presentation-id}}", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "presentationId", + "value": "{{oob-presentation-id}}" + } + ] + }, + "description": "#### **Description** **:**\n\nThis request is used to fetch proof presentation request information for the presentation id provided in query parameter.\n\n> It also provides state of the proof presentation request.\n\n#### **Query Parameter** **:**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| presentationId | required | `\"presentation_id\"` <br>presentation_id is fetched from the proof request. It provides the state of the request. |" + }, + "response": [ + { + "name": "Check-OOB-Verification", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentation_id={{oob-presentation-id}}", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "presentation_id", + "value": "{{oob-presentation-id}}" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:28:08 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "7384" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"1cd8-GlvND2hpBaJd1J2NNqI0bQBluQU\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"_tags\": {\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"metadata\": {},\n \"id\": \"7fa03531-74f4-49a0-a94f-6feb30041c13\",\n \"createdAt\": \"2022-06-15T09:27:47.528Z\",\n \"requestMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/request-presentation\",\n \"@id\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"comment\": \"Out of Band\",\n \"request_presentations~attach\": [\n {\n \"@id\": \"libindy-request-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJuYW1lIjoiT3V0IE9mIEJhbmQgUHJvb2YgUmVxdWVzdCIsInZlcnNpb24iOiJPdXQgT2YgQmFuZCBQcm9vZiBSZXF1ZXN0Iiwibm9uY2UiOiI5Njk2NjM0MjY2NDY0IiwicmVxdWVzdGVkX2F0dHJpYnV0ZXMiOnsiYWRkaXRpb25hbFByb3AxIjp7Im5hbWVzIjpbImZOYW1lIiwibE5hbWUiXSwicmVzdHJpY3Rpb25zIjpbeyJzY2hlbWFfaWQiOiI3S3VEVHBRaDNHSjdHcDZrRXJwV3ZNOjI6dGVzdF90ZXN0X3NjaGVtYTE0MDYyMi0wNzoxNC4wNi4yMjA3In1dfX0sInJlcXVlc3RlZF9wcmVkaWNhdGVzIjp7fX0=\"\n }\n }\n ],\n \"~service\": {\n \"recipientKeys\": [\n \"BujL2yfa3XNAWLrzversmz9zYvJJNdYhpLkKB5zg3BiL\"\n ],\n \"routingKeys\": [],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\"\n }\n },\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"autoAcceptProof\": \"always\",\n \"isVerified\": true,\n \"presentationMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/presentation\",\n \"@id\": \"8e2ce5d1-2f04-4edd-935e-75e6b5fed752\",\n \"presentations~attach\": [\n {\n \"@id\": \"libindy-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJwcm9vZiI6eyJwcm9vZnMiOlt7InByaW1hcnlfcHJvb2YiOnsiZXFfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnsiZm5hbWUiOiI0MjkzNDcxNDc0OTY3NTMwMzk1ODI1OTA0NDczMTAyOTQ2NDcxODMwODcxMjkzOTE0ODc5NjcyODk2ODQxNzI3MzY2NjYyMjUwNTA1MSIsImxuYW1lIjoiMjgxMzAxMTU0OTE5NzQ0MTU0MjQyNDA4MDgzMTA1NDczMTE5MzE1MDg4NzA1NzkzMTY4Njg4ODc2MjA3MzYwMTI2NzE2NTkyOTA4MjMifSwiYV9wcmltZSI6IjIzNzk0MTQ0MDAyNjU3Nzk2ODUxNzA2MTE2NTU1MDkyMTI4ODg3MzA0ODc1NzMwODQ3OTMyNDczODI5NzQ4MjE3MzQwMTE5ODQ4Nzg4OTY1OTg3NDIzNDAyOTg1OTUyMzIxMDYwOTk2MDkxNzIwMzgzMzQzNTk2Mjg1MjY5ODA4NjM5NzIxMjM1Njc2MjM5ODk3MjczNDY0NDQyMzkwMDI5ODMyNDk5Mzg3NDg3NTI1MjQyODA0ODI2ODI4OTE1ODcyMjUzNTI3NTI2Nzk2OTg3NzQ0NDc5Njc4MDY3NTMyMTI4ODU4NzczNDA4NDI0NDYwNDIyMjI4MzEwNTg0OTY5MzU3MzIzNTAzNzM0OTc0OTA0MjAzNzc3MzE1Nzc2ODk3NjkwOTk0OTA1ODk0OTA1NzM2MzY0NDY1MzU4NDY0ODkxNDExOTI2MzI5OTcyNTQ5MjM0NjU4ODk2Mzg0Njk4NDMyMDUzMjQ2NDIzNjI0NjY1MTE0MTA5NDk4MTY5NjAyNjgwMDQ4NTI5MTI5NTQxMzA2NzQ5MjQ2MDQ5MjIzMjMwOTU3NzI3Mzk3MTY4Njc4OTkyNDcxMDczMjYzNjQ3MTYxNzg1ODY0NzExNzIyMTA5NTUzMDA5MjQwOTAxODE1NTU3NzEwNTMwNzM2NjA4MDE5MzQ3NDExMzgxMDE1OTM2MTU4ODIxMTQ1MzEzOTk5MzU2NjAzNjQ5MTc1NTU2MDU5NzQwMTA1ODA0OTgyMjI3Njk1OTI3ODcyMzIzOTE5ODMyOTMxODI4MjUwNjAzNTg1Nzg4OTgzOTk1NTk5Mjk1MjUzNjc1IiwiZSI6IjE0NDU5NDA4Nzg4MjMwNTI5ODYxODg2Mzg2NjEwMzY2MjcxMjY3NzgwMjQxOTI4MjY1MzU5Njg5MzQ0MzAwMDUyOTcyMDIzMDI3OTE4NzIwODk0NzI0OTgyNDE2NDYyMzUxOTY1OTA4MDc0Njc1MzgwMDA2NTM3NjQ1MDI5MTg1MzkyNjcyMTQyMyIsInYiOiIxMTE4MTE2MzM1MjY4MTU5NzgzMDA4MzM4ODQ3ODY3NzkxNjk3MTQ3NTAxOTk4ODMwMzIwMDYwNzQ0NjYwOTM2NjU1NDk1Mjc2OTg3NDUzODUyNzUzNzU5MjUzMzYyNDQxNjIyMjMzNTc5Mzc5MDUwMTE1NDI4MjkwMzY5ODg3OTI4MjY2MDQ3NDk0NzYwNzczODc1NjM1MDM0MjYwNjIwMDUxNzEyNTQzOTkzODc5MjQ2NTgxNjE5NDAyMzQ4OTE1MTUyOTA4OTMyNzQ4NzIyOTIwMzU2NDgxMTkzODkwODcwNjEyOTc1NzQyNTk2ODc4MDk4MzkxMDM0NTY5MjgxOTMwMTcwMjQ4NjY5Njc3ODQ4NzU4MTg1NDA0MzY3MTk2OTgwOTQ1NDgxMDkyOTkzOTg2MzQzNzc5MDI4MzI3MTIyMjk1OTkyODQ1NjY5NzIxOTU4Njk1Mzg0MjA1MzU1MTI4ODU3Mzc0NDIyMzk3NTA1MTI5MDYzMzU1MjMxNDIzMzA5OTQwMzk5MjE3NTk4NjgwNDUzNjkxODU1MzE5NzAzMzUxNTczODI2NDk5NDQ3OTg5NTU5MTY1NjgxMzcyNjM3NzYwOTg3MjE4MjMxMjA0NTczNzA1NTg3NDc0MTQ0MTQxMDY0NTY0ODc4OTgxMjEwOTI2ODAxNTY1MjQyOTg3ODMzMTYxMjMxNTQ0NTQ0OTUyODI1MDk5ODM3MDY1Mjg1OTExOTE4OTkyOTcyODA0NDExMzcxODk5MDg1ODc2MTU3OTAxODI1OTU4NzE0NDIzMTA5OTg0ODkwNjc0NTQ2MTMyMjczMTc2Mzg5MjQ1NzU5NjA4MDg3MjU4MDMxNzYwOTU1NTI1MDM4Mjc1MzcyNTQ1NDMyODQwMTA5MDI1NjI3NzU2ODMzMzI5MjMzNzQxNDQ3MDI2NTg0OTUzNTI4NjM3MDM0NzUxNzIzMjE4MTY4OTMxNDM1MDg4MjMyMTc2OTM2MjkxMTIzMjY0ODEyNzg5MTY2MTA3NTk3NTg1NzMzMjQxMDM0MDUzODMxNzA5MjU4MjUyMTU4OTY3MjcyMTkzMTkxODYxNzk1NjMzMjMyODE0ODEzNjE2NTA2MjE2MTU4NDU3MDI1NDQwMDAzMTc0MDEzNTg5ODk2OTg3MDcxMDIwMzA0Mjk2NTUzNDkxNzg0NDE3MDM2MDQxMzI0NTcxNzk4ODExNTczODY2NDI0NTkwNjgxIiwibSI6eyJtYXN0ZXJfc2VjcmV0IjoiMTAxMTQ4NTA2NDgxNjEyOTM4NzI3NTgzNzYxMjQxODQwMzYxODcyMTU1NzU3NDE3MDg1Nzk2MjQzMjY5Nzg0MTg3NTk2NzE0OTA2MTc4MTIxNTk3MDM4NTM0MTk5MDExMTc2NjMxNjY3ODk4NzQ3ODQzNjE2MDE0MzU2OTQ4MDUzMDUzMTcxNjQzODQwOTY1MDE3NTk0MDA0Mjk3ODU2Mjk4OTcwNDI0Mzg2ODY1NjU2OTYiLCJnZW5kZXIiOiIzMjc1MzEzNTkxNDkyMDMyNzUwNDcxMTI4MDA3NTc0NTc3MDkyNDQxODYyMzM1NDg0NDg2MTUzNTM3Njc1OTY4MjUzNjcwMDI2Mjg4NzA0OTg1Nzc4ODc4NDM4ODQ0MTIwODQ0MjU4ODc3NDEyMjAwNzI0MTI2NjAxNzkyOTY0ODA2NzU5NzI4NDA4ODA0MTEwOTk4NzUwOTMzMjQ0MTI2NDQ0NDQyMDA3NDU5MzgxNDA2In0sIm0yIjoiMTI2ODM1NDM0OTk2NTkzNjUyNzU3MTQ2MzY1MTA2NjQzNTYxOTA3NDM0MTY3Njg1ODc2NjU5NzUwMTU2Njg4MDM1MDQ1NDg4MjM1MjA0MjU0MjI4NTk2MTcyOTI2MTgwMjc3NzU4MjYzMTU1MDY1ODE4MjAyNTE2OTc3NTIzOTYwOTQ1MDIzMDkzOTk2Nzc2MjM1MDQyNTk0NzIxMjc5NDIzMzk5ODI3MjE0MzE1OTI4OTgifSwiZ2VfcHJvb2ZzIjpbXX0sIm5vbl9yZXZvY19wcm9vZiI6bnVsbH1dLCJhZ2dyZWdhdGVkX3Byb29mIjp7ImNfaGFzaCI6IjQ1OTgzMTQzOTkwNDU4NDM2NjYzNzIwODcyNDkwNzA0NTIxMjYxODI2NjUzMDA0MjE1ODE0OTAzODA1MzAxMzE4NDIwMjQyNTgyNTA3IiwiY19saXN0IjpbWzE4OCwxMjQsMTAxLDE5MSw3OCw4MiwyMjgsMjE4LDI1MCwxOTQsODgsMTk0LDEyMywzOCw2LDEsMjA0LDIyMSw3MywyMDIsMTQ5LDkwLDE3NiwyNTEsMTExLDU0LDIxMSwxOCwxNCwyNDgsMzEsNzMsNjQsMTU2LDIxNywzMywxMDcsNTcsOTgsMjExLDI0MiwyMzQsMTksMTE5LDc2LDE5LDYzLDM1LDI0OCw4Myw2NywyMjgsMjE5LDE1MiwyOCw0Nyw4NywxMjYsMTk5LDI0MiwxNDYsMTQsMTM3LDk2LDE4NSwyNDMsNDUsMzgsMTA3LDE2NSwyMDksMjA0LDczLDE0MywxMCwxMjEsMTU2LDE0MywyMDQsMjM0LDY3LDI0Miw3MiwxNDQsMTg4LDI1MCwyMTMsMTM2LDE3NiwxMDUsMjA2LDU5LDExMywyMzYsMjQyLDEyMywyMTcsMTEsMjE1LDE2MSwxNTEsMjM1LDgxLDI0NiwyMDEsMTgyLDE4OSw1MSwyMDEsMjI4LDc1LDE3MCwyMjgsMTgyLDM4LDUxLDExNiwxODgsMjM1LDE4NiwyMjIsMTI2LDEyNSwxOSwxNTgsMTQsNTYsNDYsODgsMTc4LDU0LDIxMCwxMDUsMjE2LDEyOSwyMzEsNTAsMTExLDg3LDE1OSwyNDUsMjQsNzksMjQxLDkzLDI1NCwxMjYsMTg1LDEyOCwyMjgsMTExLDg3LDc1LDE0MSwyMjAsMjI5LDQ2LDEwLDI0LDYwLDIxNSwxMDIsMTY3LDE0MCw1NCw3NywyMzIsMjUxLDE0MSw3NiwyNSwyLDE1NSw1NSwyNTEsMjQyLDE4NiwxNTQsMjM1LDI5LDgxLDExMiwxNjMsNjgsNSwyMCwxNzEsNiwyMTYsMTgwLDUwLDExOCwyMDIsNjgsNTYsNzQsMjMxLDIyNSw4OSwxMTYsMTYxLDU2LDE1Miw1MSwxNzEsOTksMjI4LDcyLDE0MCw0MCwyMTAsNjMsODEsMjUyLDIyLDEwLDIwOSwxNTAsMjMyLDE0NSw1MiwxNDcsMTIyLDI0NCwxOCwxMDQsNTIsMjI0LDI1NSwxNiwxMzcsMTA4LDI0NSwyNDAsMTIwLDE1NCwxOTYsMjAwLDIxMiw1Myw2MywxMDQsMjAwLDIzLDE2MiwxMDQsMTA5LDE1OSwyMzgsMTc5LDAsMTcxLDEzMCwyNTAsMTQwLDE3MV1dfX0sInJlcXVlc3RlZF9wcm9vZiI6eyJyZXZlYWxlZF9hdHRycyI6e30sInJldmVhbGVkX2F0dHJfZ3JvdXBzIjp7ImFkZGl0aW9uYWxQcm9wMSI6eyJzdWJfcHJvb2ZfaW5kZXgiOjAsInZhbHVlcyI6eyJmTmFtZSI6eyJyYXciOiJ0ZXN0X2ZuYW1lXzMiLCJlbmNvZGVkIjoiNDI5MzQ3MTQ3NDk2NzUzMDM5NTgyNTkwNDQ3MzEwMjk0NjQ3MTgzMDg3MTI5MzkxNDg3OTY3Mjg5Njg0MTcyNzM2NjY2MjI1MDUwNTEifSwibE5hbWUiOnsicmF3IjoidGVzdF9sbmFtZV8zIiwiZW5jb2RlZCI6IjI4MTMwMTE1NDkxOTc0NDE1NDI0MjQwODA4MzEwNTQ3MzExOTMxNTA4ODcwNTc5MzE2ODY4ODg3NjIwNzM2MDEyNjcxNjU5MjkwODIzIn19fX0sInNlbGZfYXR0ZXN0ZWRfYXR0cnMiOnt9LCJ1bnJldmVhbGVkX2F0dHJzIjp7fSwicHJlZGljYXRlcyI6e319LCJpZGVudGlmaWVycyI6W3sic2NoZW1hX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TToyOnRlc3RfdGVzdF9zY2hlbWExNDA2MjItMDc6MTQuMDYuMjIwNyIsImNyZWRfZGVmX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TTozOkNMOjMyMjg3Njp0ZXN0X3Rlc3RfY3JlZC1kZWZfMTQwNjIyLTA3IiwicmV2X3JlZ19pZCI6bnVsbCwidGltZXN0YW1wIjpudWxsfV19\"\n }\n }\n ],\n \"~thread\": {\n \"thid\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"~service\": {\n \"recipientKeys\": [\n \"evCcbASAsuvWGB4y2Z3tVeXKQLsgnF6MZ1NPWcPteiH\"\n ],\n \"routingKeys\": [\n \"3uq8CaLCKcP1Q2JW8KLyDQu9ZrHPbZw4Kix9oZqeY7Tf\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com/mediator\"\n },\n \"~transport\": {\n \"return_route\": \"all\"\n }\n }\n }\n}" + } + ] + }, + { + "name": "Out-of-band-proof-for-type", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "let template = `\r", + "<html>\r", + " <body> \r", + " <div>Scan the QR code below for out of band proof presentation</div>\r", + " <br>\r", + " <div style=\"text-align:center;\">\r", + " <img src='https://api.qrserver.com/v1/create-qr-code/?size=350x350&data=+{{data.presentationMessage}}'></img>\r", + " </div>\r", + " </body>\r", + "</html>`;\r", + "pm.visualizer.set(template, res);\r", + "\r", + "if(res.statusCode == 201){\r", + " pm.environment.set(\"oob_type-presentation-id\", res.data.presentationId);\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "*/*" + } + ], + "url": { + "raw": "{{proof_man_baseURL}}/v1/out-of-band-proof?type=principalMemberCredential", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "out-of-band-proof"], + "query": [ + { + "key": "type", + "value": "principalMemberCredential" + } + ] + } + }, + "response": [] + }, + { + "name": "Check-OOB-Type-Verification", + "event": [ + { + "listen": "test", + "script": { + "exec": [ + "const res = pm.response.json();\r", + "\r", + "if (res.statusCode == 200) {\r", + "\tif (res.data.isVerified == true && res.data.state == \"done\") {\r", + "\t\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:green;\">\r", + " <h2>Proof verified successfully</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "\t\tpm.visualizer.set(template, res);\r", + "\t} else {\r", + "\t\tlet template = `\r", + " <html>\r", + " <body> \r", + " <div style=\"text-align:center; color:red;\">\r", + " <h2>Proof not presented yet.</h2>\r", + " </div>\r", + " </body>\r", + " </html>`;\r", + "\t\tpm.visualizer.set(template, res);\r", + "\t}\r", + "}" + ], + "type": "text/javascript" + } + } + ], + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentationId={{oob_type-presentation-id}}", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "presentationId", + "value": "{{oob_type-presentation-id}}" + } + ] + }, + "description": "#### **Description** **:**\n\nThis request is used to fetch proof presentation request information for the presentation id provided in query parameter.\n\n> It also provides state of the proof presentation request.\n\n#### **Query Parameter** **:**\n\n| **Key** | **isRequired** | **Value** |\n| --- | --- | --- |\n| presentationId | required | `\"presentation_id\"` <br>presentation_id is fetched from the proof request. It provides the state of the request. |" + }, + "response": [ + { + "name": "Check-OOB-Verification", + "originalRequest": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/find-by-presentation-id?presentation_id={{oob-presentation-id}}", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "find-by-presentation-id"], + "query": [ + { + "key": "presentation_id", + "value": "{{oob-presentation-id}}" + } + ] + } + }, + "status": "OK", + "code": 200, + "_postman_previewlanguage": "json", + "header": [ + { + "key": "date", + "value": "Wed, 15 Jun 2022 09:28:08 GMT" + }, + { + "key": "content-type", + "value": "application/json; charset=utf-8" + }, + { + "key": "content-length", + "value": "7384" + }, + { + "key": "x-powered-by", + "value": "Express" + }, + { + "key": "access-control-allow-origin", + "value": "*" + }, + { + "key": "etag", + "value": "W/\"1cd8-GlvND2hpBaJd1J2NNqI0bQBluQU\"" + }, + { + "key": "strict-transport-security", + "value": "max-age=15724800; includeSubDomains" + } + ], + "cookie": [], + "body": "{\n \"statusCode\": 200,\n \"message\": \"Proof presentation fetch successfully\",\n \"data\": {\n \"_tags\": {\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"metadata\": {},\n \"id\": \"7fa03531-74f4-49a0-a94f-6feb30041c13\",\n \"createdAt\": \"2022-06-15T09:27:47.528Z\",\n \"requestMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/request-presentation\",\n \"@id\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"comment\": \"Out of Band\",\n \"request_presentations~attach\": [\n {\n \"@id\": \"libindy-request-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJuYW1lIjoiT3V0IE9mIEJhbmQgUHJvb2YgUmVxdWVzdCIsInZlcnNpb24iOiJPdXQgT2YgQmFuZCBQcm9vZiBSZXF1ZXN0Iiwibm9uY2UiOiI5Njk2NjM0MjY2NDY0IiwicmVxdWVzdGVkX2F0dHJpYnV0ZXMiOnsiYWRkaXRpb25hbFByb3AxIjp7Im5hbWVzIjpbImZOYW1lIiwibE5hbWUiXSwicmVzdHJpY3Rpb25zIjpbeyJzY2hlbWFfaWQiOiI3S3VEVHBRaDNHSjdHcDZrRXJwV3ZNOjI6dGVzdF90ZXN0X3NjaGVtYTE0MDYyMi0wNzoxNC4wNi4yMjA3In1dfX0sInJlcXVlc3RlZF9wcmVkaWNhdGVzIjp7fX0=\"\n }\n }\n ],\n \"~service\": {\n \"recipientKeys\": [\n \"BujL2yfa3XNAWLrzversmz9zYvJJNdYhpLkKB5zg3BiL\"\n ],\n \"routingKeys\": [],\n \"serviceEndpoint\": \"https://gaiax.vereign.com:443/ocm/didcomm\"\n }\n },\n \"state\": \"done\",\n \"threadId\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\",\n \"autoAcceptProof\": \"always\",\n \"isVerified\": true,\n \"presentationMessage\": {\n \"@type\": \"https://didcomm.org/present-proof/1.0/presentation\",\n \"@id\": \"8e2ce5d1-2f04-4edd-935e-75e6b5fed752\",\n \"presentations~attach\": [\n {\n \"@id\": \"libindy-presentation-0\",\n \"mime-type\": \"application/json\",\n \"data\": {\n \"base64\": \"eyJwcm9vZiI6eyJwcm9vZnMiOlt7InByaW1hcnlfcHJvb2YiOnsiZXFfcHJvb2YiOnsicmV2ZWFsZWRfYXR0cnMiOnsiZm5hbWUiOiI0MjkzNDcxNDc0OTY3NTMwMzk1ODI1OTA0NDczMTAyOTQ2NDcxODMwODcxMjkzOTE0ODc5NjcyODk2ODQxNzI3MzY2NjYyMjUwNTA1MSIsImxuYW1lIjoiMjgxMzAxMTU0OTE5NzQ0MTU0MjQyNDA4MDgzMTA1NDczMTE5MzE1MDg4NzA1NzkzMTY4Njg4ODc2MjA3MzYwMTI2NzE2NTkyOTA4MjMifSwiYV9wcmltZSI6IjIzNzk0MTQ0MDAyNjU3Nzk2ODUxNzA2MTE2NTU1MDkyMTI4ODg3MzA0ODc1NzMwODQ3OTMyNDczODI5NzQ4MjE3MzQwMTE5ODQ4Nzg4OTY1OTg3NDIzNDAyOTg1OTUyMzIxMDYwOTk2MDkxNzIwMzgzMzQzNTk2Mjg1MjY5ODA4NjM5NzIxMjM1Njc2MjM5ODk3MjczNDY0NDQyMzkwMDI5ODMyNDk5Mzg3NDg3NTI1MjQyODA0ODI2ODI4OTE1ODcyMjUzNTI3NTI2Nzk2OTg3NzQ0NDc5Njc4MDY3NTMyMTI4ODU4NzczNDA4NDI0NDYwNDIyMjI4MzEwNTg0OTY5MzU3MzIzNTAzNzM0OTc0OTA0MjAzNzc3MzE1Nzc2ODk3NjkwOTk0OTA1ODk0OTA1NzM2MzY0NDY1MzU4NDY0ODkxNDExOTI2MzI5OTcyNTQ5MjM0NjU4ODk2Mzg0Njk4NDMyMDUzMjQ2NDIzNjI0NjY1MTE0MTA5NDk4MTY5NjAyNjgwMDQ4NTI5MTI5NTQxMzA2NzQ5MjQ2MDQ5MjIzMjMwOTU3NzI3Mzk3MTY4Njc4OTkyNDcxMDczMjYzNjQ3MTYxNzg1ODY0NzExNzIyMTA5NTUzMDA5MjQwOTAxODE1NTU3NzEwNTMwNzM2NjA4MDE5MzQ3NDExMzgxMDE1OTM2MTU4ODIxMTQ1MzEzOTk5MzU2NjAzNjQ5MTc1NTU2MDU5NzQwMTA1ODA0OTgyMjI3Njk1OTI3ODcyMzIzOTE5ODMyOTMxODI4MjUwNjAzNTg1Nzg4OTgzOTk1NTk5Mjk1MjUzNjc1IiwiZSI6IjE0NDU5NDA4Nzg4MjMwNTI5ODYxODg2Mzg2NjEwMzY2MjcxMjY3NzgwMjQxOTI4MjY1MzU5Njg5MzQ0MzAwMDUyOTcyMDIzMDI3OTE4NzIwODk0NzI0OTgyNDE2NDYyMzUxOTY1OTA4MDc0Njc1MzgwMDA2NTM3NjQ1MDI5MTg1MzkyNjcyMTQyMyIsInYiOiIxMTE4MTE2MzM1MjY4MTU5NzgzMDA4MzM4ODQ3ODY3NzkxNjk3MTQ3NTAxOTk4ODMwMzIwMDYwNzQ0NjYwOTM2NjU1NDk1Mjc2OTg3NDUzODUyNzUzNzU5MjUzMzYyNDQxNjIyMjMzNTc5Mzc5MDUwMTE1NDI4MjkwMzY5ODg3OTI4MjY2MDQ3NDk0NzYwNzczODc1NjM1MDM0MjYwNjIwMDUxNzEyNTQzOTkzODc5MjQ2NTgxNjE5NDAyMzQ4OTE1MTUyOTA4OTMyNzQ4NzIyOTIwMzU2NDgxMTkzODkwODcwNjEyOTc1NzQyNTk2ODc4MDk4MzkxMDM0NTY5MjgxOTMwMTcwMjQ4NjY5Njc3ODQ4NzU4MTg1NDA0MzY3MTk2OTgwOTQ1NDgxMDkyOTkzOTg2MzQzNzc5MDI4MzI3MTIyMjk1OTkyODQ1NjY5NzIxOTU4Njk1Mzg0MjA1MzU1MTI4ODU3Mzc0NDIyMzk3NTA1MTI5MDYzMzU1MjMxNDIzMzA5OTQwMzk5MjE3NTk4NjgwNDUzNjkxODU1MzE5NzAzMzUxNTczODI2NDk5NDQ3OTg5NTU5MTY1NjgxMzcyNjM3NzYwOTg3MjE4MjMxMjA0NTczNzA1NTg3NDc0MTQ0MTQxMDY0NTY0ODc4OTgxMjEwOTI2ODAxNTY1MjQyOTg3ODMzMTYxMjMxNTQ0NTQ0OTUyODI1MDk5ODM3MDY1Mjg1OTExOTE4OTkyOTcyODA0NDExMzcxODk5MDg1ODc2MTU3OTAxODI1OTU4NzE0NDIzMTA5OTg0ODkwNjc0NTQ2MTMyMjczMTc2Mzg5MjQ1NzU5NjA4MDg3MjU4MDMxNzYwOTU1NTI1MDM4Mjc1MzcyNTQ1NDMyODQwMTA5MDI1NjI3NzU2ODMzMzI5MjMzNzQxNDQ3MDI2NTg0OTUzNTI4NjM3MDM0NzUxNzIzMjE4MTY4OTMxNDM1MDg4MjMyMTc2OTM2MjkxMTIzMjY0ODEyNzg5MTY2MTA3NTk3NTg1NzMzMjQxMDM0MDUzODMxNzA5MjU4MjUyMTU4OTY3MjcyMTkzMTkxODYxNzk1NjMzMjMyODE0ODEzNjE2NTA2MjE2MTU4NDU3MDI1NDQwMDAzMTc0MDEzNTg5ODk2OTg3MDcxMDIwMzA0Mjk2NTUzNDkxNzg0NDE3MDM2MDQxMzI0NTcxNzk4ODExNTczODY2NDI0NTkwNjgxIiwibSI6eyJtYXN0ZXJfc2VjcmV0IjoiMTAxMTQ4NTA2NDgxNjEyOTM4NzI3NTgzNzYxMjQxODQwMzYxODcyMTU1NzU3NDE3MDg1Nzk2MjQzMjY5Nzg0MTg3NTk2NzE0OTA2MTc4MTIxNTk3MDM4NTM0MTk5MDExMTc2NjMxNjY3ODk4NzQ3ODQzNjE2MDE0MzU2OTQ4MDUzMDUzMTcxNjQzODQwOTY1MDE3NTk0MDA0Mjk3ODU2Mjk4OTcwNDI0Mzg2ODY1NjU2OTYiLCJnZW5kZXIiOiIzMjc1MzEzNTkxNDkyMDMyNzUwNDcxMTI4MDA3NTc0NTc3MDkyNDQxODYyMzM1NDg0NDg2MTUzNTM3Njc1OTY4MjUzNjcwMDI2Mjg4NzA0OTg1Nzc4ODc4NDM4ODQ0MTIwODQ0MjU4ODc3NDEyMjAwNzI0MTI2NjAxNzkyOTY0ODA2NzU5NzI4NDA4ODA0MTEwOTk4NzUwOTMzMjQ0MTI2NDQ0NDQyMDA3NDU5MzgxNDA2In0sIm0yIjoiMTI2ODM1NDM0OTk2NTkzNjUyNzU3MTQ2MzY1MTA2NjQzNTYxOTA3NDM0MTY3Njg1ODc2NjU5NzUwMTU2Njg4MDM1MDQ1NDg4MjM1MjA0MjU0MjI4NTk2MTcyOTI2MTgwMjc3NzU4MjYzMTU1MDY1ODE4MjAyNTE2OTc3NTIzOTYwOTQ1MDIzMDkzOTk2Nzc2MjM1MDQyNTk0NzIxMjc5NDIzMzk5ODI3MjE0MzE1OTI4OTgifSwiZ2VfcHJvb2ZzIjpbXX0sIm5vbl9yZXZvY19wcm9vZiI6bnVsbH1dLCJhZ2dyZWdhdGVkX3Byb29mIjp7ImNfaGFzaCI6IjQ1OTgzMTQzOTkwNDU4NDM2NjYzNzIwODcyNDkwNzA0NTIxMjYxODI2NjUzMDA0MjE1ODE0OTAzODA1MzAxMzE4NDIwMjQyNTgyNTA3IiwiY19saXN0IjpbWzE4OCwxMjQsMTAxLDE5MSw3OCw4MiwyMjgsMjE4LDI1MCwxOTQsODgsMTk0LDEyMywzOCw2LDEsMjA0LDIyMSw3MywyMDIsMTQ5LDkwLDE3NiwyNTEsMTExLDU0LDIxMSwxOCwxNCwyNDgsMzEsNzMsNjQsMTU2LDIxNywzMywxMDcsNTcsOTgsMjExLDI0MiwyMzQsMTksMTE5LDc2LDE5LDYzLDM1LDI0OCw4Myw2NywyMjgsMjE5LDE1MiwyOCw0Nyw4NywxMjYsMTk5LDI0MiwxNDYsMTQsMTM3LDk2LDE4NSwyNDMsNDUsMzgsMTA3LDE2NSwyMDksMjA0LDczLDE0MywxMCwxMjEsMTU2LDE0MywyMDQsMjM0LDY3LDI0Miw3MiwxNDQsMTg4LDI1MCwyMTMsMTM2LDE3NiwxMDUsMjA2LDU5LDExMywyMzYsMjQyLDEyMywyMTcsMTEsMjE1LDE2MSwxNTEsMjM1LDgxLDI0NiwyMDEsMTgyLDE4OSw1MSwyMDEsMjI4LDc1LDE3MCwyMjgsMTgyLDM4LDUxLDExNiwxODgsMjM1LDE4NiwyMjIsMTI2LDEyNSwxOSwxNTgsMTQsNTYsNDYsODgsMTc4LDU0LDIxMCwxMDUsMjE2LDEyOSwyMzEsNTAsMTExLDg3LDE1OSwyNDUsMjQsNzksMjQxLDkzLDI1NCwxMjYsMTg1LDEyOCwyMjgsMTExLDg3LDc1LDE0MSwyMjAsMjI5LDQ2LDEwLDI0LDYwLDIxNSwxMDIsMTY3LDE0MCw1NCw3NywyMzIsMjUxLDE0MSw3NiwyNSwyLDE1NSw1NSwyNTEsMjQyLDE4NiwxNTQsMjM1LDI5LDgxLDExMiwxNjMsNjgsNSwyMCwxNzEsNiwyMTYsMTgwLDUwLDExOCwyMDIsNjgsNTYsNzQsMjMxLDIyNSw4OSwxMTYsMTYxLDU2LDE1Miw1MSwxNzEsOTksMjI4LDcyLDE0MCw0MCwyMTAsNjMsODEsMjUyLDIyLDEwLDIwOSwxNTAsMjMyLDE0NSw1MiwxNDcsMTIyLDI0NCwxOCwxMDQsNTIsMjI0LDI1NSwxNiwxMzcsMTA4LDI0NSwyNDAsMTIwLDE1NCwxOTYsMjAwLDIxMiw1Myw2MywxMDQsMjAwLDIzLDE2MiwxMDQsMTA5LDE1OSwyMzgsMTc5LDAsMTcxLDEzMCwyNTAsMTQwLDE3MV1dfX0sInJlcXVlc3RlZF9wcm9vZiI6eyJyZXZlYWxlZF9hdHRycyI6e30sInJldmVhbGVkX2F0dHJfZ3JvdXBzIjp7ImFkZGl0aW9uYWxQcm9wMSI6eyJzdWJfcHJvb2ZfaW5kZXgiOjAsInZhbHVlcyI6eyJmTmFtZSI6eyJyYXciOiJ0ZXN0X2ZuYW1lXzMiLCJlbmNvZGVkIjoiNDI5MzQ3MTQ3NDk2NzUzMDM5NTgyNTkwNDQ3MzEwMjk0NjQ3MTgzMDg3MTI5MzkxNDg3OTY3Mjg5Njg0MTcyNzM2NjY2MjI1MDUwNTEifSwibE5hbWUiOnsicmF3IjoidGVzdF9sbmFtZV8zIiwiZW5jb2RlZCI6IjI4MTMwMTE1NDkxOTc0NDE1NDI0MjQwODA4MzEwNTQ3MzExOTMxNTA4ODcwNTc5MzE2ODY4ODg3NjIwNzM2MDEyNjcxNjU5MjkwODIzIn19fX0sInNlbGZfYXR0ZXN0ZWRfYXR0cnMiOnt9LCJ1bnJldmVhbGVkX2F0dHJzIjp7fSwicHJlZGljYXRlcyI6e319LCJpZGVudGlmaWVycyI6W3sic2NoZW1hX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TToyOnRlc3RfdGVzdF9zY2hlbWExNDA2MjItMDc6MTQuMDYuMjIwNyIsImNyZWRfZGVmX2lkIjoiN0t1RFRwUWgzR0o3R3A2a0VycFd2TTozOkNMOjMyMjg3Njp0ZXN0X3Rlc3RfY3JlZC1kZWZfMTQwNjIyLTA3IiwicmV2X3JlZ19pZCI6bnVsbCwidGltZXN0YW1wIjpudWxsfV19\"\n }\n }\n ],\n \"~thread\": {\n \"thid\": \"e8ebdd2e-18c6-4dca-9af3-9f6c5f2794c6\"\n },\n \"~service\": {\n \"recipientKeys\": [\n \"evCcbASAsuvWGB4y2Z3tVeXKQLsgnF6MZ1NPWcPteiH\"\n ],\n \"routingKeys\": [\n \"3uq8CaLCKcP1Q2JW8KLyDQu9ZrHPbZw4Kix9oZqeY7Tf\"\n ],\n \"serviceEndpoint\": \"https://gaiax.vereign.com/mediator\"\n },\n \"~transport\": {\n \"return_route\": \"all\"\n }\n }\n }\n}" + } + ] + }, + { + "name": "http://3.111.77.38:3007/v1/accept-presentation?presentation_id=5eceaa96-d08a-42a3-a083-98672ce55188", + "request": { + "method": "POST", + "header": [ + { + "key": "accept", + "value": "*/*" + } + ], + "url": { + "raw": "{{proof_man_baseURL}}/v1/accept-presentation?presentation_id=5eceaa96-d08a-42a3-a083-98672ce55188", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "accept-presentation"], + "query": [ + { + "key": "presentation_id", + "value": "5eceaa96-d08a-42a3-a083-98672ce55188" + } + ] + } + }, + "response": [] + }, + { + "name": "Get-agent-proofs-proposal", + "request": { + "method": "GET", + "header": [], + "url": { + "raw": "{{proof_man_baseURL}}/v1/agent-proofs?threadId=85054e0d-2c21-4711-88d0-0c66ad1959f5", + "host": ["{{proof_man_baseURL}}"], + "path": ["v1", "agent-proofs"], + "query": [ + { + "key": "threadId", + "value": "85054e0d-2c21-4711-88d0-0c66ad1959f5" + } + ] + } + }, + "response": [] + } + ] +} diff --git a/documentation/README.md b/documentation/README.md index 7f9b02bd352394295e1107bad6552610b04b275b..a1014a565e09e5b4be89d5e97502832cbd6485c5 100644 --- a/documentation/README.md +++ b/documentation/README.md @@ -1,9 +1,8 @@ # 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 +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 diff --git a/documentation/create-schema-sequence.md b/documentation/create-schema-sequence.md index fa530f544ccdfef38042cca4247dea3ff0f82f23..b5d9d2e3d29056077d64c90774a4358e5504722b 100644 --- a/documentation/create-schema-sequence.md +++ b/documentation/create-schema-sequence.md @@ -6,4 +6,4 @@ participant OCM Attestation Manager 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 - ``` +``` diff --git a/documentation/issue-credential-sequence.md b/documentation/issue-credential-sequence.md index 86a4d4eaefb1251adf608ddc1c3671b51534621c..562e1b91188e3b712753270de7c0ce39b02dbe0d 100644 --- a/documentation/issue-credential-sequence.md +++ b/documentation/issue-credential-sequence.md @@ -11,4 +11,4 @@ participant OCM Attestation Manager 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 - ``` +``` diff --git a/documentation/ocm-flow-overview.md b/documentation/ocm-flow-overview.md index 0875c08d03a0944e2c31865b8f01f512606a161c..d65446bfdfdf36bd9fc6babbb9f4af3b4bb339f7 100644 --- a/documentation/ocm-flow-overview.md +++ b/documentation/ocm-flow-overview.md @@ -1,20 +1,17 @@ - # OCM API flows - ## Create a connection with a PCM -> under connection-manager 1. Create an invitation url - POST {{baseUrl}}/v1/invitation-url?alias=trust - in the response copy - e.g. -> "invitationUrl": "https://example.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiI0ZDA2N2FlMi1kNTQ5LTRlYzQtYmU2OC00MzFmMzdkMjJlODUiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiNVl6U21xcjY5d0RFSzVvQWpzZFQ3UktjazJuaHdmS0phVVVneUVESEFuNWQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9nYWlheC52ZXJlaWduLmNvbTo0NDMvb2NtL2RpZGNvbW0iLCJyb3V0aW5nS2V5cyI6W119", - or "invitationUrlShort" + e.g. -> "invitationUrl": "https://example.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiI0ZDA2N2FlMi1kNTQ5LTRlYzQtYmU2OC00MzFmMzdkMjJlODUiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiNVl6U21xcjY5d0RFSzVvQWpzZFQ3UktjazJuaHdmS0phVVVneUVESEFuNWQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9nYWlheC52ZXJlaWduLmNvbTo0NDMvb2NtL2RpZGNvbW0iLCJyb3V0aW5nS2V5cyI6W119", + or "invitationUrlShort" 2. Convert the invitation URL to a QR code and scan with the PCM @@ -24,27 +21,23 @@ POST 1. Create an invitation url - POST {{baseUrl}}/v1/invitation-url?alias=trust - in the response copy - e.g. -> "invitationUrl": "https://example.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiI0ZDA2N2FlMi1kNTQ5LTRlYzQtYmU2OC00MzFmMzdkMjJlODUiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiNVl6U21xcjY5d0RFSzVvQWpzZFQ3UktjazJuaHdmS0phVVVneUVESEFuNWQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9nYWlheC52ZXJlaWduLmNvbTo0NDMvb2NtL2RpZGNvbW0iLCJyb3V0aW5nS2V5cyI6W119", - + e.g. -> "invitationUrl": "https://example.com:443/ocm/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiI0ZDA2N2FlMi1kNTQ5LTRlYzQtYmU2OC00MzFmMzdkMjJlODUiLCJsYWJlbCI6InNzaS1hYnN0cmFjdGlvbi1hZ2VudCIsInJlY2lwaWVudEtleXMiOlsiNVl6U21xcjY5d0RFSzVvQWpzZFQ3UktjazJuaHdmS0phVVVneUVESEFuNWQiXSwic2VydmljZUVuZHBvaW50IjoiaHR0cHM6Ly9nYWlheC52ZXJlaWduLmNvbTo0NDMvb2NtL2RpZGNvbW0iLCJyb3V0aW5nS2V5cyI6W119", 2. Accept connection on the other OCM POST {{baseUrl}}/v1/accept-connection-invitation -body: +body: { - "invitationUrl": "https://example.com:443/ocm-provider/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJhNzE1OGFkZS1iMjBkLTQwYmQtODliNy1jM2RhMjg1NWU0ZDAiLCJsYWJlbCI6IkdYRlMtSW50ZWdyYXRpb24iLCJyZWNpcGllbnRLZXlzIjpbIkNYYlViTTNEeEJ3SzNWTFptaXBWOEtDYmQyVmVXM1NDa3BOb01qblRSb1JiIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHBzOi8vaW50ZWdyYXRpb24uZ3hmcy5kZXY6NDQzL29jbS1wcm92aWRlci9kaWRjb21tIiwicm91dGluZ0tleXMiOltdfQ", - "autoAcceptConnection": true +"invitationUrl": "https://example.com:443/ocm-provider/didcomm?c_i=eyJAdHlwZSI6Imh0dHBzOi8vZGlkY29tbS5vcmcvY29ubmVjdGlvbnMvMS4wL2ludml0YXRpb24iLCJAaWQiOiJhNzE1OGFkZS1iMjBkLTQwYmQtODliNy1jM2RhMjg1NWU0ZDAiLCJsYWJlbCI6IkdYRlMtSW50ZWdyYXRpb24iLCJyZWNpcGllbnRLZXlzIjpbIkNYYlViTTNEeEJ3SzNWTFptaXBWOEtDYmQyVmVXM1NDa3BOb01qblRSb1JiIl0sInNlcnZpY2VFbmRwb2ludCI6Imh0dHBzOi8vaW50ZWdyYXRpb24uZ3hmcy5kZXY6NDQzL29jbS1wcm92aWRlci9kaWRjb21tIiwicm91dGluZ0tleXMiOltdfQ", +"autoAcceptConnection": true } - - ## Issue a credential to an already established connection -> under attestation-manager @@ -54,8 +47,9 @@ body: POST {{baseUrl}}/v1/schemas -body: +body: **make sure to create a unique name for it and choose whatever, however many attributes you want** + ``` { "name": "BasicCredential-oct-3-2022", @@ -73,9 +67,9 @@ body: POST {{baseUrl}}/v1/credentialDef - -body: +body: **make sure to use the schemaID from the previous response and create a unique name here as well** + ``` { "schemaID": "the schema id from the response of 1.", @@ -95,6 +89,7 @@ POST body: **make sure to use here the connection id from ## Create a connection 2. response and the credential definition id from the previous response** **make sure the names of the attributes here match the names of the attributes in the schema** + ``` { "connectionId": "12926da1-916f-46d3-8f44-56df4d79c2c3", @@ -114,8 +109,7 @@ body: } ``` - -## Accept a credential (OCM - OCM) +## Accept a credential (OCM - OCM) **on the PCM, it is part of the GUI** @@ -129,6 +123,7 @@ POST {{baseUrl}}/v1/credential response example: + ``` { "statusCode": 200, @@ -165,18 +160,11 @@ response example: } ``` - 2. accept credential offer POST {{baseUrl}}/v1/accept-offer?credentialID={{copy-the-credentialId-from-the-previous-response}} - - - - - - ## To send a proof request to someone in order to present claims for a custom issued credential -> under proof manager @@ -188,6 +176,7 @@ POST **the credential definition id can be found on attestation-manager -> GET {{baseUrl}}/v1/credentialDef** body: + ``` { "comment": "Proof Presenation", @@ -204,11 +193,6 @@ body: } ``` - - - - - ## Accept a proof request **on the PCM it is done through the GUI** @@ -221,14 +205,13 @@ GET The proof request will be in **state: request-received** - 2. Accept the proof request POST {{baseUrl}}/v1/accept-proof-request?proofRecordId={{proofId}} - Response example: + ``` { "statusCode": 200, @@ -279,39 +262,21 @@ Response example: } ``` - - - - - - - - - - - - - - - - - - - ## Credential types can be used for automatically requesting proof on a specific credential during login when OCM and TSA are integrated with AA Services + **with the following type: principalMemberCredential** By default, there will be no credential type on the OCM. An existing schema on the chosen ledger can be linked, or a new schema can be created and linked to this credential type. - ## In order to create a credential type: -> under attestation manager -POST +POST {{baseUrl}}/v1/credentialType body: + ``` { "type": "principalMemberCredential", @@ -319,37 +284,30 @@ body: } ``` - ## In order to update schema type for credential type: -> under attestation manager -PATCH +PATCH /v1/updateSchemaIdByType?type={credentialType} Example: /v1/updateSchemaIdByType?type=principalMemberCredential body: + ``` { "schemaId": "7KuDTpQh3GJ7Gp6kErpWvM:2:test_principalMemberCredential-060722:1.0" } ``` - - - - - - - - ## To check interactions with an existing connection GET {{baseUrl}}/v1/connection-information?connectionId={{the-connectionId-you-are-looking-for}} example response: + ``` { "statusCode": 200, @@ -387,6 +345,3 @@ example response: } } ``` - - - diff --git a/documentation/principal-credential-schema.md b/documentation/principal-credential-schema.md index 27cce9d81a340664def2d4fc2ed861dd5d97207e..163eb5e4203970ff8d9111069fc66928c38d2116 100644 --- a/documentation/principal-credential-schema.md +++ b/documentation/principal-credential-schema.md @@ -1,9 +1,11 @@ ## 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 + 2. issuerDID // issuer OCM organization public DID 3. subjectDID // holder pairwise DID - ``` +``` diff --git a/documentation/principal-user-registration-sequence.md b/documentation/principal-user-registration-sequence.md index e0debe21c49455aa85898ba5714234c5d320f9c2..7b03adebd55dded1d375b5779ce8a36422009255 100644 --- a/documentation/principal-user-registration-sequence.md +++ b/documentation/principal-user-registration-sequence.md @@ -9,7 +9,7 @@ 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 diff --git a/documentation/subscription-sequence.md b/documentation/subscription-sequence.md index 786277b2cf5554f0743deb4a35e9478579da9f58..a91186931fd4a2bd7abba94b9532f74127fca2a3 100644 --- a/documentation/subscription-sequence.md +++ b/documentation/subscription-sequence.md @@ -6,7 +6,7 @@ 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 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index e2b15c6981b33ce3f0780298ad7b096740b3a913..49df92a65ab29df4cd16a0908fccaccf11bbadfb 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -509,117 +509,102 @@ importers: '@hyperledger/indy-vdr-nodejs': specifier: ^0.1.0 version: 0.1.0 + '@nestjs/axios': + specifier: ^3.0.1 + version: 3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/common': specifier: ^10.2.10 - version: 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + version: 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/config': specifier: ^3.1.1 version: 3.1.1(@nestjs/common@10.2.10)(reflect-metadata@0.1.13) '@nestjs/core': specifier: ^10.2.10 - version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/mapped-types': - specifier: '*' - version: 2.0.2(@nestjs/common@10.2.10)(class-validator@0.13.2)(reflect-metadata@0.1.13) + version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/microservices': specifier: ^10.2.10 - version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/platform-express': - specifier: ^10.2.10 - version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10) - '@nestjs/swagger': - specifier: ^7.1.16 - version: 7.1.16(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(class-validator@0.13.2)(reflect-metadata@0.1.13) + version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nestjs/terminus': specifier: ^10.1.1 - version: 10.1.1(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) + version: 10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) axios: - specifier: ^0.27.2 - version: 0.27.2 - class-validator: - specifier: ^0.13.2 - version: 0.13.2 + specifier: ^1.6.2 + version: 1.6.2 express: specifier: ^4.17.3 version: 4.18.2 joi: specifier: ^17.6.0 version: 17.11.0 - moment: - specifier: ^2.29.1 - version: 2.29.4 nats: - specifier: ^2.6.1 - version: 2.17.0 - pg: - specifier: ^8.7.3 - version: 8.11.3 - reflect-metadata: - specifier: ^0.1.13 - version: 0.1.13 + specifier: ^2.18.0 + version: 2.18.0 rxjs: - specifier: ^7.8.1 + specifier: ^7.2.0 version: 7.8.1 - shelljs: - specifier: ^0.8.5 - version: 0.8.5 - swagger-ui-express: - specifier: ^4.3.0 - version: 4.6.3(express@4.18.2) winston: - specifier: ^3.6.0 - version: 3.10.0 - winston-elasticsearch: - specifier: ^0.16.1 - version: 0.16.1 + specifier: ^3.11.0 + version: 3.11.0 devDependencies: '@nestjs/cli': specifier: ^10.2.1 - version: 10.2.1(@swc/cli@0.1.63)(@swc/core@1.3.96) + version: 10.2.1 '@nestjs/schematics': specifier: ^10.0.3 version: 10.0.3(typescript@5.3.2) '@nestjs/testing': specifier: ^10.2.10 - version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10) - '@swc/cli': - specifier: ^0.1.62 - version: 0.1.63(@swc/core@1.3.96) - '@swc/core': - specifier: ^1.3.96 - version: 1.3.96 + version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10) '@types/express': - specifier: ^4.17.13 - version: 4.17.18 + specifier: ^4.17.21 + version: 4.17.21 '@types/jest': - specifier: 27.0.2 - version: 27.0.2 + specifier: ^29.5.9 + version: 29.5.10 '@types/node': - specifier: ^20.9.4 + specifier: ^20.9.3 version: 20.9.4 - '@types/shelljs': - specifier: ^0.8.11 - version: 0.8.13 '@types/supertest': - specifier: ^2.0.11 - version: 2.0.14 - dotenv-cli: - specifier: ^4.1.1 - version: 4.1.1 + specifier: ^2.0.16 + version: 2.0.16 + '@typescript-eslint/eslint-plugin': + specifier: ^6.12.0 + version: 6.12.0(@typescript-eslint/parser@6.12.0)(eslint@8.54.0)(typescript@5.3.2) + '@typescript-eslint/parser': + specifier: ^6.12.0 + version: 6.12.0(eslint@8.54.0)(typescript@5.3.2) + eslint: + specifier: ^8.54.0 + version: 8.54.0 + eslint-config-prettier: + specifier: ^9.0.0 + version: 9.0.0(eslint@8.54.0) + eslint-plugin-prettier: + specifier: ^5.0.1 + version: 5.0.1(eslint-config-prettier@9.0.0)(eslint@8.54.0)(prettier@3.1.0) jest: - specifier: ^27.2.5 - version: 27.5.1(ts-node@10.9.1) + specifier: ^29.7.0 + version: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1) + prettier: + specifier: ^3.1.0 + version: 3.1.0 rimraf: - specifier: ^3.0.2 - version: 3.0.2 + specifier: ^5.0.5 + version: 5.0.5 supertest: specifier: ^6.1.3 version: 6.3.3 + ts-jest: + specifier: ^29.1.1 + version: 29.1.1(@babel/core@7.23.0)(jest@29.7.0)(typescript@5.3.2) ts-node: specifier: ^10.0.0 - version: 10.9.1(@swc/core@1.3.96)(@types/node@20.9.4)(typescript@5.3.2) + version: 10.9.1(@types/node@20.9.4)(typescript@5.3.2) + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 typescript: - specifier: ^5.3.2 + specifier: ~5.3.2 version: 5.3.2 packages: @@ -1472,16 +1457,6 @@ packages: '@babel/core': 7.23.0 '@babel/helper-plugin-utils': 7.22.5 - /@babel/plugin-syntax-typescript@7.22.5(@babel/core@7.23.0): - resolution: {integrity: sha512-1mS2o03i7t1c6VzH6fdQ3OA8tcEIxwG18zIPRp+UY1Ihv6W+XZzBCVxExF9upussPXJ0xE9XRHwMoNs1ep/nRQ==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.23.0 - '@babel/helper-plugin-utils': 7.22.5 - dev: true - /@babel/plugin-syntax-typescript@7.23.3(@babel/core@7.23.0): resolution: {integrity: sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==} engines: {node: '>=6.9.0'} @@ -2678,18 +2653,6 @@ packages: triple-beam: 1.4.1 dev: false - /@elastic/elasticsearch@7.17.13: - resolution: {integrity: sha512-GMXtFVqd3FgUlTtPL/GDc+3GhwvfZ0kSuegCvVVqb58kd+0I6U6u7PL8QFRLHtwzqLEBmYLdwr4PRkBAWKGlzA==} - engines: {node: '>=12'} - dependencies: - debug: 4.3.4 - hpagent: 0.1.2 - ms: 2.1.3 - secure-json-parse: 2.7.0 - transitivePeerDependencies: - - supports-color - dev: false - /@elastic/elasticsearch@8.10.0: resolution: {integrity: sha512-RIEyqz0D18bz/dK+wJltaak+7wKaxDELxuiwOJhuMrvbrBsYDFnEoTdP/TZ0YszHBgnRPGqBDBgH/FHNgHObiQ==} engines: {node: '>=14'} @@ -3240,18 +3203,6 @@ packages: engines: {node: '>=8'} dev: true - /@jest/console@27.5.1: - resolution: {integrity: sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - chalk: 4.1.2 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - dev: true - /@jest/console@29.7.0: resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3264,51 +3215,6 @@ packages: slash: 3.0.0 dev: true - /@jest/core@27.5.1(ts-node@10.9.1): - resolution: {integrity: sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 27.5.1 - '@jest/reporters': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.8.1 - exit: 0.1.2 - graceful-fs: 4.2.11 - jest-changed-files: 27.5.1 - jest-config: 27.5.1(ts-node@10.9.1) - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-resolve-dependencies: 27.5.1 - jest-runner: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - jest-watcher: 27.5.1 - micromatch: 4.0.5 - rimraf: 3.0.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - ts-node - - utf-8-validate - dev: true - /@jest/core@29.7.0(ts-node@10.9.1): resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3367,16 +3273,6 @@ packages: dev: false optional: true - /@jest/environment@27.5.1: - resolution: {integrity: sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - jest-mock: 27.5.1 - dev: true - /@jest/environment@29.7.0: resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3403,18 +3299,6 @@ packages: - supports-color dev: true - /@jest/fake-timers@27.5.1: - resolution: {integrity: sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@sinonjs/fake-timers': 8.1.0 - '@types/node': 20.9.4 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - /@jest/fake-timers@29.7.0: resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3426,15 +3310,6 @@ packages: jest-mock: 29.7.0 jest-util: 29.7.0 - /@jest/globals@27.5.1: - resolution: {integrity: sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/types': 27.5.1 - expect: 27.5.1 - dev: true - /@jest/globals@29.7.0: resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3447,44 +3322,6 @@ packages: - supports-color dev: true - /@jest/reporters@27.5.1: - resolution: {integrity: sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - chalk: 4.1.2 - collect-v8-coverage: 1.0.2 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.11 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.1 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.6 - jest-haste-map: 27.5.1 - jest-resolve: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - slash: 3.0.0 - source-map: 0.6.1 - string-length: 4.0.2 - terminal-link: 2.1.1 - v8-to-istanbul: 8.1.1 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/reporters@29.7.0: resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3528,15 +3365,6 @@ packages: dependencies: '@sinclair/typebox': 0.27.8 - /@jest/source-map@27.5.1: - resolution: {integrity: sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - callsites: 3.1.0 - graceful-fs: 4.2.11 - source-map: 0.6.1 - dev: true - /@jest/source-map@29.6.3: resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3546,16 +3374,6 @@ packages: graceful-fs: 4.2.11 dev: true - /@jest/test-result@27.5.1: - resolution: {integrity: sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/types': 27.5.1 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.2 - dev: true - /@jest/test-result@29.7.0: resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3566,18 +3384,6 @@ packages: collect-v8-coverage: 1.0.2 dev: true - /@jest/test-sequencer@27.5.1: - resolution: {integrity: sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - graceful-fs: 4.2.11 - jest-haste-map: 27.5.1 - jest-runtime: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/test-sequencer@29.7.0: resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3588,29 +3394,6 @@ packages: slash: 3.0.0 dev: true - /@jest/transform@27.5.1: - resolution: {integrity: sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.23.0 - '@jest/types': 27.5.1 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 1.9.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.11 - jest-haste-map: 27.5.1 - jest-regex-util: 27.5.1 - jest-util: 27.5.1 - micromatch: 4.0.5 - pirates: 4.0.6 - slash: 3.0.0 - source-map: 0.6.1 - write-file-atomic: 3.0.3 - transitivePeerDependencies: - - supports-color - dev: true - /@jest/transform@29.7.0: resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -3745,6 +3528,20 @@ packages: resolution: {integrity: sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==} dev: false + /@nestjs/axios@3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1): + resolution: {integrity: sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ==} + peerDependencies: + '@nestjs/common': ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 + axios: ^1.3.1 + reflect-metadata: ^0.1.12 + rxjs: ^6.0.0 || ^7.0.0 + dependencies: + '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) + axios: 1.6.2 + reflect-metadata: 0.1.13 + rxjs: 7.8.1 + dev: false + /@nestjs/axios@3.0.1(@nestjs/common@10.2.8)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-VlOZhAGDmOoFdsmewn8AyClAdGpKXQQaY1+3PGB+g6ceurGIdTxZgRX3VXc1T6Zs60PedWjg3A82TDOB05mrzQ==} peerDependencies: @@ -3759,6 +3556,48 @@ packages: rxjs: 7.8.1 dev: false + /@nestjs/cli@10.2.1: + resolution: {integrity: sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==} + engines: {node: '>= 16.14'} + hasBin: true + peerDependencies: + '@swc/cli': ^0.1.62 + '@swc/core': ^1.3.62 + peerDependenciesMeta: + '@swc/cli': + optional: true + '@swc/core': + optional: true + dependencies: + '@angular-devkit/core': 16.2.8(chokidar@3.5.3) + '@angular-devkit/schematics': 16.2.8(chokidar@3.5.3) + '@angular-devkit/schematics-cli': 16.2.8(chokidar@3.5.3) + '@nestjs/schematics': 10.0.3(chokidar@3.5.3)(typescript@5.2.2) + chalk: 4.1.2 + chokidar: 3.5.3 + cli-table3: 0.6.3 + commander: 4.1.1 + fork-ts-checker-webpack-plugin: 9.0.2(typescript@5.2.2)(webpack@5.89.0) + glob: 10.3.10 + inquirer: 8.2.6 + node-emoji: 1.11.0 + ora: 5.4.1 + os-name: 4.0.1 + rimraf: 4.4.1 + shelljs: 0.8.5 + source-map-support: 0.5.21 + tree-kill: 1.2.2 + tsconfig-paths: 4.2.0 + tsconfig-paths-webpack-plugin: 4.1.0 + typescript: 5.2.2 + webpack: 5.89.0 + webpack-node-externals: 3.0.0 + transitivePeerDependencies: + - esbuild + - uglify-js + - webpack-cli + dev: true + /@nestjs/cli@10.2.1(@swc/cli@0.1.63)(@swc/core@1.3.96): resolution: {integrity: sha512-CAJAQwmxFZfB3RTvqz/eaXXWpyU+mZ4QSqfBYzjneTsPgF+uyOAW3yQpaLNn9Dfcv39R9UxSuAhayv6yuFd+Jg==} engines: {node: '>= 16.14'} @@ -3803,7 +3642,7 @@ packages: - webpack-cli dev: true - /@nestjs/common@10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/common@10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-fwAk931rjW8CNH2Mgwawq/7HWHH1dxkOLdcgs7U52ddLk8CtHXjejm1cbNahewlSbNhvlOl7y1STLHutE6sUqw==} peerDependencies: class-transformer: '*' @@ -3816,7 +3655,6 @@ packages: class-validator: optional: true dependencies: - class-validator: 0.13.2 iterare: 1.2.1 reflect-metadata: 0.1.13 rxjs: 7.8.1 @@ -3850,7 +3688,7 @@ packages: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 reflect-metadata: ^0.1.13 dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) dotenv: 16.3.1 dotenv-expand: 10.0.0 lodash: 4.17.21 @@ -3872,7 +3710,7 @@ packages: uuid: 9.0.0 dev: false - /@nestjs/core@10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/core@10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-+ckOI6BPi2ZMHikT9MCG4ctHDc4OnjhoIytrn7f2AYMMXI4bnutJhqyQKc30VDka5x3Wq6QAD57pgSP7y+JjJg==} requiresBuild: true peerDependencies: @@ -3890,9 +3728,8 @@ packages: '@nestjs/websockets': optional: true dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/platform-express': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10) + '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) '@nuxtjs/opencollective': 0.3.2 fast-safe-stringify: 2.1.1 iterare: 1.2.1 @@ -3936,8 +3773,8 @@ packages: transitivePeerDependencies: - encoding - /@nestjs/mapped-types@2.0.2(@nestjs/common@10.2.10)(class-validator@0.13.2)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-V0izw6tWs6fTp9+KiiPUbGHWALy563Frn8X6Bm87ANLRuE46iuBMD5acKBDP5lKL/75QFvrzSJT7HkCbB0jTpg==} + /@nestjs/mapped-types@2.0.3(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 class-transformer: ^0.4.0 || ^0.5.0 @@ -3949,50 +3786,14 @@ packages: class-validator: optional: true dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - class-validator: 0.13.2 + '@nestjs/common': 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + class-transformer: 0.5.1 + class-validator: 0.14.0 reflect-metadata: 0.1.13 dev: false - /@nestjs/mapped-types@2.0.3(@nestjs/common@10.2.10)(class-validator@0.13.2)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==} - peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - class-transformer: ^0.4.0 || ^0.5.0 - class-validator: ^0.13.0 || ^0.14.0 - reflect-metadata: ^0.1.12 - peerDependenciesMeta: - class-transformer: - optional: true - class-validator: - optional: true - dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - class-validator: 0.13.2 - reflect-metadata: 0.1.13 - dev: false - - /@nestjs/mapped-types@2.0.3(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==} - peerDependencies: - '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 - class-transformer: ^0.4.0 || ^0.5.0 - class-validator: ^0.13.0 || ^0.14.0 - reflect-metadata: ^0.1.12 - peerDependenciesMeta: - class-transformer: - optional: true - class-validator: - optional: true - dependencies: - '@nestjs/common': 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - class-transformer: 0.5.1 - class-validator: 0.14.0 - reflect-metadata: 0.1.13 - dev: false - - /@nestjs/mapped-types@2.0.4(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-xl+gUSp0B+ln1VSNoUftlglk8dfpUes3DHGxKZ5knuBxS5g2H/8p9/DSBOYWUfO5f4u9s6ffBPZ71WO+tbe5SA==} + /@nestjs/mapped-types@2.0.4(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): + resolution: {integrity: sha512-xl+gUSp0B+ln1VSNoUftlglk8dfpUes3DHGxKZ5knuBxS5g2H/8p9/DSBOYWUfO5f4u9s6ffBPZ71WO+tbe5SA==} peerDependencies: '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0 class-transformer: ^0.4.0 || ^0.5.0 @@ -4010,7 +3811,7 @@ packages: reflect-metadata: 0.1.13 dev: false - /@nestjs/microservices@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/microservices@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-vebXc4lF67grtLr3UXc+rPErH5aCzCez1Y2Oec4k2K4ObhjftNug7L2O9W3XiprHlwPhPXc51VQ9nhKn7IFAxw==} peerDependencies: '@grpc/grpc-js': '*' @@ -4046,10 +3847,10 @@ packages: nats: optional: true dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) iterare: 1.2.1 - nats: 2.17.0 + nats: 2.18.0 reflect-metadata: 0.1.13 rxjs: 7.8.1 tslib: 2.6.2 @@ -4098,22 +3899,6 @@ packages: rxjs: 7.8.1 tslib: 2.6.2 - /@nestjs/platform-express@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10): - resolution: {integrity: sha512-U4KDgtMjH8TqEvt0RzC/POP8ABvL9bYoCScvlGtFSKgVGaMLBKkZ4+jHtbQx6qItYSlBBRUuz/dveMZCObfrkQ==} - peerDependencies: - '@nestjs/common': ^10.0.0 - '@nestjs/core': ^10.0.0 - dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) - body-parser: 1.20.2 - cors: 2.8.5 - express: 4.18.2 - multer: 1.4.4-lts.1 - tslib: 2.6.2 - transitivePeerDependencies: - - supports-color - /@nestjs/platform-express@10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8): resolution: {integrity: sha512-WoSSVtwIRc5AdGMHWVzWZK4JZLT0f4o2xW8P9gQvcX+omL8W1kXCfY8GQYXNBG84XmBNYH8r0FtC8oMe/lH5NQ==} peerDependencies: @@ -4174,34 +3959,6 @@ packages: - chokidar dev: true - /@nestjs/swagger@7.1.16(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(class-validator@0.13.2)(reflect-metadata@0.1.13): - resolution: {integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==} - peerDependencies: - '@fastify/static': ^6.0.0 - '@nestjs/common': ^9.0.0 || ^10.0.0 - '@nestjs/core': ^9.0.0 || ^10.0.0 - class-transformer: '*' - class-validator: '*' - reflect-metadata: ^0.1.12 - peerDependenciesMeta: - '@fastify/static': - optional: true - class-transformer: - optional: true - class-validator: - optional: true - dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/mapped-types': 2.0.3(@nestjs/common@10.2.10)(class-validator@0.13.2)(reflect-metadata@0.1.13) - class-validator: 0.13.2 - js-yaml: 4.1.0 - lodash: 4.17.21 - path-to-regexp: 3.2.0 - reflect-metadata: 0.1.13 - swagger-ui-dist: 5.9.1 - dev: false - /@nestjs/swagger@7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13): resolution: {integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==} peerDependencies: @@ -4231,7 +3988,7 @@ packages: swagger-ui-dist: 5.9.1 dev: false - /@nestjs/terminus@10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/microservices@10.2.8)(@prisma/client@5.6.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/terminus@10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-aDoPK/uaR9PHn56xzand6zqpp+S3Ibm+y/OrG3M01F1WnScLfo29hbS6MdnIMqmVRAS11r/8X3xWTSo8TT/Lig==} peerDependencies: '@grpc/grpc-js': '*' @@ -4279,18 +4036,17 @@ packages: typeorm: optional: true dependencies: - '@nestjs/axios': 3.0.1(@nestjs/common@10.2.8)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/common': 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/microservices@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/microservices': 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@prisma/client': 5.6.0(prisma@5.6.0) + '@nestjs/axios': 3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) boxen: 5.1.2 check-disk-space: 3.4.0 reflect-metadata: 0.1.13 rxjs: 7.8.1 dev: false - /@nestjs/terminus@10.1.1(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1): + /@nestjs/terminus@10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(@nestjs/microservices@10.2.8)(@prisma/client@5.6.0)(reflect-metadata@0.1.13)(rxjs@7.8.1): resolution: {integrity: sha512-aDoPK/uaR9PHn56xzand6zqpp+S3Ibm+y/OrG3M01F1WnScLfo29hbS6MdnIMqmVRAS11r/8X3xWTSo8TT/Lig==} peerDependencies: '@grpc/grpc-js': '*' @@ -4338,16 +4094,18 @@ packages: typeorm: optional: true dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/axios': 3.0.1(@nestjs/common@10.2.8)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/common': 10.2.8(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 10.2.8(@nestjs/common@10.2.8)(@nestjs/microservices@10.2.8)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/microservices': 10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@prisma/client': 5.6.0(prisma@5.6.0) boxen: 5.1.2 check-disk-space: 3.4.0 reflect-metadata: 0.1.13 rxjs: 7.8.1 dev: false - /@nestjs/testing@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10): + /@nestjs/testing@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10): resolution: {integrity: sha512-IVLUnPz/+fkBtPATYfqTIP+phN9yjkXejmj+JyhmcfPJZpxBmD1i9VSMqa4u54l37j0xkGPscQ0IXpbhqMYUKw==} peerDependencies: '@nestjs/common': ^10.0.0 @@ -4360,10 +4118,9 @@ packages: '@nestjs/platform-express': optional: true dependencies: - '@nestjs/common': 10.2.10(class-validator@0.13.2)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.17.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) - '@nestjs/platform-express': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10) + '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1) + '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1) tslib: 2.6.2 dev: true @@ -4834,12 +4591,6 @@ packages: engines: {node: '>=10'} dev: true - /@sinonjs/commons@1.8.6: - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} - dependencies: - type-detect: 4.0.8 - dev: true - /@sinonjs/commons@3.0.0: resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} dependencies: @@ -4850,12 +4601,6 @@ packages: dependencies: '@sinonjs/commons': 3.0.0 - /@sinonjs/fake-timers@8.1.0: - resolution: {integrity: sha512-OAPJUAtgeINhh/TAlUID4QTs53Njm7xzddaVlEs/SXwgtiD1tW22zAB/W1wdqfrpmikgaWQ9Fw6Ws+hsiRm5Vg==} - dependencies: - '@sinonjs/commons': 1.8.6 - dev: true - /@sovpro/delimited-stream@1.1.0: resolution: {integrity: sha512-kQpk267uxB19X3X2T1mvNMjyvIEonpNSHrMlK5ZaBU6aZxw7wPbpgKJOjHN3+/GPVpXgAV9soVT2oyHpLkLtyw==} engines: {node: '>= 8'} @@ -5075,11 +4820,6 @@ packages: resolution: {integrity: sha512-OvjF+z51L3ov0OyAU0duzsYuvO01PH7x4t6DJx+guahgTnBHkhJdG7soQeTSFLWN3efnHyibZ4Z8l2EuWwJN3A==} dev: true - /@tootallnate/once@1.1.2: - resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} - engines: {node: '>= 6'} - dev: true - /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} dev: true @@ -5175,15 +4915,6 @@ packages: '@types/range-parser': 1.2.5 '@types/send': 0.17.2 - /@types/express@4.17.18: - resolution: {integrity: sha512-Sxv8BSLLgsBYmcnGdGjjEjqET2U+AKAdCRODmMiq02FgjwuV75Ut85DRpvFjyw/Mk0vgUOliGRU0UUmuuZHByQ==} - dependencies: - '@types/body-parser': 1.19.3 - '@types/express-serve-static-core': 4.17.37 - '@types/qs': 6.9.8 - '@types/serve-static': 1.15.3 - dev: true - /@types/express@4.17.21: resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} dependencies: @@ -5192,13 +4923,6 @@ packages: '@types/qs': 6.9.8 '@types/serve-static': 1.15.3 - /@types/glob@7.2.0: - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 20.9.4 - dev: true - /@types/graceful-fs@4.1.7: resolution: {integrity: sha512-MhzcwU8aUygZroVwL2jeYk6JisJrPl/oov/gsgGCue9mkgl9wjGbzReYQClxiUgFDnib9FuHqTndccKeZKxTRw==} dependencies: @@ -5232,6 +4956,13 @@ packages: pretty-format: 27.5.1 dev: true + /@types/jest@29.5.10: + resolution: {integrity: sha512-tE4yxKEphEyxj9s4inideLHktW/x6DwesIwWZ9NN1FKf9zbJYsnhBoA9vrHA/IuIOKwPa5PcFBNV4lpMIOEzyQ==} + dependencies: + expect: 29.7.0 + pretty-format: 29.7.0 + dev: true + /@types/jest@29.5.8: resolution: {integrity: sha512-fXEFTxMV2Co8ZF5aYFJv+YeA08RTYJfhtN5c9JSv/mFEMe+xxjufCb+PHL+bJcMs/ebPUsBu+UNTEz+ydXrR6g==} dependencies: @@ -5268,10 +4999,6 @@ packages: /@types/mime@3.0.2: resolution: {integrity: sha512-Wj+fqpTLtTbG7c0tH47dkahefpLKEbB+xAZuLq7b4/IDHPl/n6VoXcyUQ2bypFlbSwvCr0y+bD4euTTqTJsPxQ==} - /@types/minimatch@5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - /@types/minimist@1.2.5: resolution: {integrity: sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag==} dev: true @@ -5303,10 +5030,6 @@ packages: resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} dev: true - /@types/prettier@2.7.3: - resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - dev: true - /@types/qs@6.9.8: resolution: {integrity: sha512-u95svzDlTysU5xecFNTgfFG5RUWu1A9P0VzgpcIiGZA9iraHOdSzcxMxQ55DyeRaGCSxQi7LxXDI4rzq/MYfdg==} @@ -5348,13 +5071,6 @@ packages: '@types/mime': 3.0.2 '@types/node': 20.9.4 - /@types/shelljs@0.8.13: - resolution: {integrity: sha512-++uMLOQSLlse1kCfEOwhgmHuaABZwinkylmUKCpvcEGZUov3TtM+gJZloSkW/W+9pEAEg/VBOwiSR05oqJsa5A==} - dependencies: - '@types/glob': 7.2.0 - '@types/node': 20.9.4 - dev: true - /@types/simple-oauth2@5.0.7: resolution: {integrity: sha512-8JbWVJbiTSBQP/7eiyGKyXWAqp3dKQZpaA+pdW16FCi32ujkzRMG8JfjoAzdWt6W8U591ZNdHcPtP2D7ILTKuA==} dev: true @@ -5369,12 +5085,6 @@ packages: '@types/node': 20.9.4 dev: true - /@types/supertest@2.0.14: - resolution: {integrity: sha512-Q900DeeHNFF3ZYYepf/EyJfZDA2JrnWLaSQ0YNV7+2GTo8IlJzauEnDGhya+hauncpBYTYGpVHwGdssJeAQ7eA==} - dependencies: - '@types/superagent': 4.1.19 - dev: true - /@types/supertest@2.0.16: resolution: {integrity: sha512-6c2ogktZ06tr2ENoZivgm7YnprnhYE4ZoXGMY+oA7IuAf17M8FWvujXZGmxLv8y0PTyts4x5A+erSwVUFA8XSg==} dependencies: @@ -5724,10 +5434,6 @@ packages: through: 2.3.8 dev: true - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - dev: true - /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: false @@ -5746,13 +5452,6 @@ packages: mime-types: 2.1.35 negotiator: 0.6.3 - /acorn-globals@6.0.0: - resolution: {integrity: sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==} - dependencies: - acorn: 7.4.1 - acorn-walk: 7.2.0 - dev: true - /acorn-import-assertions@1.9.0(acorn@8.10.0): resolution: {integrity: sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA==} peerDependencies: @@ -5768,22 +5467,11 @@ packages: acorn: 8.10.0 dev: true - /acorn-walk@7.2.0: - resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} - engines: {node: '>=0.4.0'} - dev: true - /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} dev: true - /acorn@7.4.1: - resolution: {integrity: sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==} - engines: {node: '>=0.4.0'} - hasBin: true - dev: true - /acorn@8.10.0: resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} engines: {node: '>=0.4.0'} @@ -5802,6 +5490,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: false /agentkeepalive@4.5.0: resolution: {integrity: sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==} @@ -6161,15 +5850,6 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} - /axios@0.27.2: - resolution: {integrity: sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==} - dependencies: - follow-redirects: 1.15.3 - form-data: 4.0.0 - transitivePeerDependencies: - - debug - dev: false - /axios@1.6.2: resolution: {integrity: sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==} dependencies: @@ -6201,25 +5881,6 @@ packages: dev: false optional: true - /babel-jest@27.5.1(@babel/core@7.23.0): - resolution: {integrity: sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.23.0 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__core': 7.20.2 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 27.5.1(@babel/core@7.23.0) - chalk: 4.1.2 - graceful-fs: 4.2.11 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /babel-jest@29.7.0(@babel/core@7.23.0): resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6251,16 +5912,6 @@ packages: - supports-color dev: true - /babel-plugin-jest-hoist@27.5.1: - resolution: {integrity: sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/template': 7.22.15 - '@babel/types': 7.23.0 - '@types/babel__core': 7.20.2 - '@types/babel__traverse': 7.20.2 - dev: true - /babel-plugin-jest-hoist@29.6.3: resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6414,17 +6065,6 @@ packages: dev: false optional: true - /babel-preset-jest@27.5.1(@babel/core@7.23.0): - resolution: {integrity: sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.23.0 - babel-plugin-jest-hoist: 27.5.1 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) - dev: true - /babel-preset-jest@29.6.3(@babel/core@7.23.0): resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -6645,10 +6285,6 @@ packages: dev: false optional: true - /browser-process-hrtime@1.0.0: - resolution: {integrity: sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==} - dev: true - /browserslist@4.22.1: resolution: {integrity: sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} @@ -6659,6 +6295,13 @@ packages: node-releases: 2.0.13 update-browserslist-db: 1.0.13(browserslist@4.22.1) + /bs-logger@0.2.6: + resolution: {integrity: sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==} + engines: {node: '>= 6'} + dependencies: + fast-json-stable-stringify: 2.1.0 + dev: true + /bser@2.1.1: resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} dependencies: @@ -6916,12 +6559,6 @@ packages: /class-transformer@0.5.1: resolution: {integrity: sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw==} - /class-validator@0.13.2: - resolution: {integrity: sha512-yBUcQy07FPlGzUjoLuUfIOXzgynnQPPruyK1Ge2B74k9ROwnle1E+NxLWnUv5OLU8hA/qL5leAE9XnXq3byaBw==} - dependencies: - libphonenumber-js: 1.10.47 - validator: 13.11.0 - /class-validator@0.14.0: resolution: {integrity: sha512-ct3ltplN8I9fOwUd8GrP8UQixwff129BkEtuWDKL5W45cQuLd19xqmTLu5ge78YDm/fdje6FMt0hGOhl0lii3A==} dependencies: @@ -6996,14 +6633,6 @@ packages: dev: false optional: true - /cliui@7.0.4: - resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} - dependencies: - string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 7.0.0 - dev: true - /cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -7270,10 +6899,6 @@ packages: split2: 4.2.0 dev: true - /convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - dev: true - /convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -7381,6 +7006,25 @@ packages: - ts-node dev: true + /create-jest@29.7.0(@types/node@20.9.4)(ts-node@10.9.1): + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + dev: true + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true @@ -7458,21 +7102,6 @@ packages: dev: false optional: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom@0.4.4: - resolution: {integrity: sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==} - dev: true - - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - /d@1.0.1: resolution: {integrity: sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==} dependencies: @@ -7495,15 +7124,6 @@ packages: engines: {node: '>= 6'} dev: false - /data-urls@2.0.0: - resolution: {integrity: sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==} - engines: {node: '>=10'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - dev: true - /dayjs@1.11.10: resolution: {integrity: sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ==} dev: false @@ -7551,10 +7171,6 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true - /decode-uri-component@0.2.2: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==} engines: {node: '>=0.10'} @@ -7567,10 +7183,6 @@ packages: mimic-response: 3.1.0 dev: true - /dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} - dev: true - /dedent@1.5.1: resolution: {integrity: sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==} peerDependencies: @@ -7771,13 +7383,6 @@ packages: esutils: 2.0.3 dev: true - /domexception@2.0.1: - resolution: {integrity: sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==} - engines: {node: '>=8'} - dependencies: - webidl-conversions: 5.0.0 - dev: true - /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} @@ -7785,16 +7390,6 @@ packages: is-obj: 2.0.0 dev: true - /dotenv-cli@4.1.1: - resolution: {integrity: sha512-XvKv1pa+UBrsr3CtLGBsR6NdsoS7znqaHUf4Knj0eZO+gOI/hjj9KgWDP+KjpfEbj6wAba1UpbhaP9VezNkWhg==} - hasBin: true - dependencies: - cross-spawn: 7.0.3 - dotenv: 8.6.0 - dotenv-expand: 5.1.0 - minimist: 1.2.8 - dev: true - /dotenv-cli@7.3.0: resolution: {integrity: sha512-314CA4TyK34YEJ6ntBf80eUY+t1XaFLyem1k9P0sX1gn30qThZ5qZr/ZwE318gEnzyYP9yj9HJk6SqwE0upkfw==} hasBin: true @@ -7809,10 +7404,6 @@ packages: resolution: {integrity: sha512-GopVGCpVS1UKH75VKHGuQFqS1Gusej0z4FyQkPdwjil2gNIv+LNsqBlboOzpJFZKVT95GkCyWJbBSdFEFUWI2A==} engines: {node: '>=12'} - /dotenv-expand@5.1.0: - resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} - dev: true - /dotenv@16.0.3: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} @@ -7823,11 +7414,6 @@ packages: resolution: {integrity: sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==} engines: {node: '>=12'} - /dotenv@8.6.0: - resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} - engines: {node: '>=10'} - dev: true - /eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} dev: true @@ -7897,11 +7483,6 @@ packages: engines: {node: '>=12'} dev: true - /emittery@0.8.1: - resolution: {integrity: sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg==} - engines: {node: '>=10'} - dev: true - /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -8096,18 +7677,6 @@ packages: engines: {node: '>=12'} dev: true - /escodegen@2.1.0: - resolution: {integrity: sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - /eslint-config-prettier@9.0.0(eslint@8.54.0): resolution: {integrity: sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==} hasBin: true @@ -8473,16 +8042,6 @@ packages: engines: {node: '>= 0.8.0'} dev: true - /expect@27.5.1: - resolution: {integrity: sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-get-type: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - dev: true - /expect@29.7.0: resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -9082,6 +8641,7 @@ packages: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + dev: false /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} @@ -9585,22 +9145,11 @@ packages: lru-cache: 6.0.0 dev: true - /hpagent@0.1.2: - resolution: {integrity: sha512-ePqFXHtSQWAFXYmj+JtOTHr84iNrII4/QRlAAPPE+zqnKy4xJo7Ie1Y4kC7AdB+LxLxSTTzBMASsEcy0q8YyvQ==} - dev: false - /hpagent@1.2.0: resolution: {integrity: sha512-A91dYTeIB6NoXG+PxTQpCCDDnfHsW9kc06Lvpu1TEe9gnd6ZFeiBoRO9JvzEv6xK7EX97/dUE8g/vBMTqTS3CA==} engines: {node: '>=14'} dev: false - /html-encoding-sniffer@2.0.1: - resolution: {integrity: sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==} - engines: {node: '>=10'} - dependencies: - whatwg-encoding: 1.0.5 - dev: true - /html-escaper@2.0.2: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true @@ -9627,17 +9176,6 @@ packages: dev: false optional: true - /http-proxy-agent@4.0.1: - resolution: {integrity: sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==} - engines: {node: '>= 6'} - dependencies: - '@tootallnate/once': 1.1.2 - agent-base: 6.0.2 - debug: 4.3.4 - transitivePeerDependencies: - - supports-color - dev: true - /http2-wrapper@1.0.3: resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} engines: {node: '>=10.19.0'} @@ -9654,6 +9192,7 @@ packages: debug: 4.3.4 transitivePeerDependencies: - supports-color + dev: false /human-signals@1.1.1: resolution: {integrity: sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==} @@ -9834,6 +9373,7 @@ packages: /interpret@1.4.0: resolution: {integrity: sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==} engines: {node: '>= 0.10'} + dev: true /invariant@2.2.4: resolution: {integrity: sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==} @@ -10069,10 +9609,6 @@ packages: dev: false optional: true - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -10123,10 +9659,6 @@ packages: dependencies: which-typed-array: 1.1.11 - /is-typedarray@1.0.0: - resolution: {integrity: sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==} - dev: true - /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} @@ -10268,15 +9800,6 @@ packages: '@pkgjs/parseargs': 0.11.0 dev: true - /jest-changed-files@27.5.1: - resolution: {integrity: sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - execa: 5.1.1 - throat: 6.0.2 - dev: true - /jest-changed-files@29.7.0: resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10286,33 +9809,6 @@ packages: p-limit: 3.1.0 dev: true - /jest-circus@27.5.1: - resolution: {integrity: sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.6 - throat: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true - /jest-circus@29.7.0: resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10342,9 +9838,9 @@ packages: - supports-color dev: true - /jest-cli@27.5.1(ts-node@10.9.1): - resolution: {integrity: sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /jest-cli@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -10352,27 +9848,25 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 27.5.1(ts-node@10.9.1) - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 chalk: 4.1.2 + create-jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) exit: 0.1.2 - graceful-fs: 4.2.11 import-local: 3.1.0 - jest-config: 27.5.1(ts-node@10.9.1) - jest-util: 27.5.1 - jest-validate: 27.5.1 - prompts: 2.4.2 - yargs: 16.2.0 + jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-util: 29.7.0 + jest-validate: 29.7.0 + yargs: 17.7.2 transitivePeerDependencies: - - bufferutil - - canvas + - '@types/node' + - babel-plugin-macros - supports-color - ts-node - - utf-8-validate dev: true - /jest-cli@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + /jest-cli@29.7.0(@types/node@20.9.4)(ts-node@10.9.1): resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -10386,10 +9880,10 @@ packages: '@jest/test-result': 29.7.0 '@jest/types': 29.6.3 chalk: 4.1.2 - create-jest: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + create-jest: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1) exit: 0.1.2 import-local: 3.1.0 - jest-config: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-config: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1) jest-util: 29.7.0 jest-validate: 29.7.0 yargs: 17.7.2 @@ -10400,47 +9894,6 @@ packages: - ts-node dev: true - /jest-config@27.5.1(ts-node@10.9.1): - resolution: {integrity: sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - peerDependencies: - ts-node: '>=9.0.0' - peerDependenciesMeta: - ts-node: - optional: true - dependencies: - '@babel/core': 7.23.0 - '@jest/test-sequencer': 27.5.1 - '@jest/types': 27.5.1 - babel-jest: 27.5.1(@babel/core@7.23.0) - chalk: 4.1.2 - ci-info: 3.9.0 - deepmerge: 4.3.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-circus: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-get-type: 27.5.1 - jest-jasmine2: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runner: 27.5.1 - jest-util: 27.5.1 - jest-validate: 27.5.1 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 27.5.1 - slash: 3.0.0 - strip-json-comments: 3.1.1 - ts-node: 10.9.1(@swc/core@1.3.96)(@types/node@20.9.4)(typescript@5.3.2) - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - /jest-config@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10543,13 +9996,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-docblock@27.5.1: - resolution: {integrity: sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - /jest-docblock@29.7.0: resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10557,17 +10003,6 @@ packages: detect-newline: 3.1.0 dev: true - /jest-each@27.5.1: - resolution: {integrity: sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - jest-get-type: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - dev: true - /jest-each@29.7.0: resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10579,36 +10014,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-environment-jsdom@27.5.1: - resolution: {integrity: sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - jest-mock: 27.5.1 - jest-util: 27.5.1 - jsdom: 16.7.0 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node@27.5.1: - resolution: {integrity: sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - jest-mock: 27.5.1 - jest-util: 27.5.1 - dev: true - /jest-environment-node@29.7.0: resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10629,26 +10034,6 @@ packages: resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - /jest-haste-map@27.5.1: - resolution: {integrity: sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/graceful-fs': 4.1.7 - '@types/node': 20.9.4 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.11 - jest-regex-util: 27.5.1 - jest-serializer: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.3 - dev: true - /jest-haste-map@29.7.0: resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10668,39 +10053,6 @@ packages: fsevents: 2.3.3 dev: true - /jest-jasmine2@27.5.1: - resolution: {integrity: sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - chalk: 4.1.2 - co: 4.6.0 - expect: 27.5.1 - is-generator-fn: 2.1.0 - jest-each: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-runtime: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - pretty-format: 27.5.1 - throat: 6.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-leak-detector@27.5.1: - resolution: {integrity: sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true - /jest-leak-detector@29.7.0: resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10709,16 +10061,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-matcher-utils@27.5.1: - resolution: {integrity: sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - pretty-format: 27.5.1 - dev: true - /jest-matcher-utils@29.7.0: resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10729,21 +10071,6 @@ packages: pretty-format: 29.7.0 dev: true - /jest-message-util@27.5.1: - resolution: {integrity: sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/code-frame': 7.22.13 - '@jest/types': 27.5.1 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.11 - micromatch: 4.0.5 - pretty-format: 27.5.1 - slash: 3.0.0 - stack-utils: 2.0.6 - dev: true - /jest-message-util@29.7.0: resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10758,14 +10085,6 @@ packages: slash: 3.0.0 stack-utils: 2.0.6 - /jest-mock@27.5.1: - resolution: {integrity: sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - dev: true - /jest-mock@29.7.0: resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10774,18 +10093,6 @@ packages: '@types/node': 20.9.4 jest-util: 29.7.0 - /jest-pnp-resolver@1.2.3(jest-resolve@27.5.1): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 27.5.1 - dev: true - /jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} engines: {node: '>=6'} @@ -10801,23 +10108,14 @@ packages: /jest-regex-util@27.5.1: resolution: {integrity: sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + dev: false + optional: true /jest-regex-util@29.6.3: resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true - /jest-resolve-dependencies@27.5.1: - resolution: {integrity: sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - jest-regex-util: 27.5.1 - jest-snapshot: 27.5.1 - transitivePeerDependencies: - - supports-color - dev: true - /jest-resolve-dependencies@29.7.0: resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10828,22 +10126,6 @@ packages: - supports-color dev: true - /jest-resolve@27.5.1: - resolution: {integrity: sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - chalk: 4.1.2 - graceful-fs: 4.2.11 - jest-haste-map: 27.5.1 - jest-pnp-resolver: 1.2.3(jest-resolve@27.5.1) - jest-util: 27.5.1 - jest-validate: 27.5.1 - resolve: 1.22.6 - resolve.exports: 1.1.1 - slash: 3.0.0 - dev: true - /jest-resolve@29.7.0: resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10859,38 +10141,6 @@ packages: slash: 3.0.0 dev: true - /jest-runner@27.5.1: - resolution: {integrity: sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/console': 27.5.1 - '@jest/environment': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - chalk: 4.1.2 - emittery: 0.8.1 - graceful-fs: 4.2.11 - jest-docblock: 27.5.1 - jest-environment-jsdom: 27.5.1 - jest-environment-node: 27.5.1 - jest-haste-map: 27.5.1 - jest-leak-detector: 27.5.1 - jest-message-util: 27.5.1 - jest-resolve: 27.5.1 - jest-runtime: 27.5.1 - jest-util: 27.5.1 - jest-worker: 27.5.1 - source-map-support: 0.5.21 - throat: 6.0.2 - transitivePeerDependencies: - - bufferutil - - canvas - - supports-color - - utf-8-validate - dev: true - /jest-runner@29.7.0: resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10920,36 +10170,6 @@ packages: - supports-color dev: true - /jest-runtime@27.5.1: - resolution: {integrity: sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/environment': 27.5.1 - '@jest/fake-timers': 27.5.1 - '@jest/globals': 27.5.1 - '@jest/source-map': 27.5.1 - '@jest/test-result': 27.5.1 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - chalk: 4.1.2 - cjs-module-lexer: 1.2.3 - collect-v8-coverage: 1.0.2 - execa: 5.1.1 - glob: 7.2.3 - graceful-fs: 4.2.11 - jest-haste-map: 27.5.1 - jest-message-util: 27.5.1 - jest-mock: 27.5.1 - jest-regex-util: 27.5.1 - jest-resolve: 27.5.1 - jest-snapshot: 27.5.1 - jest-util: 27.5.1 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - /jest-runtime@29.7.0: resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -10980,44 +10200,6 @@ packages: - supports-color dev: true - /jest-serializer@27.5.1: - resolution: {integrity: sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/node': 20.9.4 - graceful-fs: 4.2.11 - dev: true - - /jest-snapshot@27.5.1: - resolution: {integrity: sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@babel/core': 7.23.0 - '@babel/generator': 7.23.0 - '@babel/plugin-syntax-typescript': 7.22.5(@babel/core@7.23.0) - '@babel/traverse': 7.23.0 - '@babel/types': 7.23.0 - '@jest/transform': 27.5.1 - '@jest/types': 27.5.1 - '@types/babel__traverse': 7.20.2 - '@types/prettier': 2.7.3 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.0) - chalk: 4.1.2 - expect: 27.5.1 - graceful-fs: 4.2.11 - jest-diff: 27.5.1 - jest-get-type: 27.5.1 - jest-haste-map: 27.5.1 - jest-matcher-utils: 27.5.1 - jest-message-util: 27.5.1 - jest-util: 27.5.1 - natural-compare: 1.4.0 - pretty-format: 27.5.1 - semver: 7.5.4 - transitivePeerDependencies: - - supports-color - dev: true - /jest-snapshot@29.7.0: resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} @@ -11056,6 +10238,8 @@ packages: ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 + dev: false + optional: true /jest-util@29.7.0: resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} @@ -11068,41 +10252,16 @@ packages: graceful-fs: 4.2.11 picomatch: 2.3.1 - /jest-validate@27.5.1: - resolution: {integrity: sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 27.5.1 - leven: 3.1.0 - pretty-format: 27.5.1 - dev: true - /jest-validate@29.7.0: resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: '@jest/types': 29.6.3 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.6.3 - leven: 3.1.0 - pretty-format: 29.7.0 - - /jest-watcher@27.5.1: - resolution: {integrity: sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/test-result': 27.5.1 - '@jest/types': 27.5.1 - '@types/node': 20.9.4 - ansi-escapes: 4.3.2 + camelcase: 6.3.0 chalk: 4.1.2 - jest-util: 27.5.1 - string-length: 4.0.2 - dev: true + jest-get-type: 29.6.3 + leven: 3.1.0 + pretty-format: 29.7.0 /jest-watcher@29.7.0: resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} @@ -11136,9 +10295,9 @@ packages: supports-color: 8.1.1 dev: true - /jest@27.5.1(ts-node@10.9.1): - resolution: {integrity: sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} + /jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -11146,18 +10305,18 @@ packages: node-notifier: optional: true dependencies: - '@jest/core': 27.5.1(ts-node@10.9.1) + '@jest/core': 29.7.0(ts-node@10.9.1) + '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 27.5.1(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) transitivePeerDependencies: - - bufferutil - - canvas + - '@types/node' + - babel-plugin-macros - supports-color - ts-node - - utf-8-validate dev: true - /jest@29.7.0(@types/node@20.9.0)(ts-node@10.9.1): + /jest@29.7.0(@types/node@20.9.4)(ts-node@10.9.1): resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true @@ -11170,7 +10329,7 @@ packages: '@jest/core': 29.7.0(ts-node@10.9.1) '@jest/types': 29.6.3 import-local: 3.1.0 - jest-cli: 29.7.0(@types/node@20.9.0)(ts-node@10.9.1) + jest-cli: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1) transitivePeerDependencies: - '@types/node' - babel-plugin-macros @@ -11268,48 +10427,6 @@ packages: dev: false optional: true - /jsdom@16.7.0: - resolution: {integrity: sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw==} - engines: {node: '>=10'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.10.0 - acorn-globals: 6.0.0 - cssom: 0.4.4 - cssstyle: 2.3.0 - data-urls: 2.0.0 - decimal.js: 10.4.3 - domexception: 2.0.1 - escodegen: 2.1.0 - form-data: 3.0.1 - html-encoding-sniffer: 2.0.1 - http-proxy-agent: 4.0.1 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.7 - parse5: 6.0.1 - saxes: 5.0.1 - symbol-tree: 3.2.4 - tough-cookie: 4.1.3 - w3c-hr-time: 1.0.2 - w3c-xmlserializer: 2.0.0 - webidl-conversions: 6.1.0 - whatwg-encoding: 1.0.5 - whatwg-mimetype: 2.3.0 - whatwg-url: 8.7.0 - ws: 7.5.9 - xml-name-validator: 3.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -11714,6 +10831,10 @@ packages: resolution: {integrity: sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g==} dev: true + /lodash.memoize@4.1.2: + resolution: {integrity: sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==} + dev: true + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} @@ -12607,12 +11728,6 @@ packages: dev: false optional: true - /nats@2.17.0: - resolution: {integrity: sha512-749TtweWL6bc9R9yNra4a+tuk8J0bqurxcPV/9R2D+WPTplY4PPde/LPSXspqR/eCCTxiM80/AjVlfboEafRxA==} - engines: {node: '>= 14.0.0'} - dependencies: - nkeys.js: 1.0.5 - /nats@2.18.0: resolution: {integrity: sha512-zZF004ejzf67Za0Tva+xphxoxBMNc5IMLqbZ7Ho0j9TMuisjpo+qCd1EktXRCLNxmrZ8O6Tbm1dBsZYNF6yR1A==} engines: {node: '>= 14.0.0'} @@ -12836,10 +11951,6 @@ packages: dev: false optional: true - /nwsapi@2.2.7: - resolution: {integrity: sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ==} - dev: true - /ob1@0.76.8: resolution: {integrity: sha512-dlBkJJV5M/msj9KYA9upc+nUWVwuOFFTbu28X6kZeGwcuW+JxaHSBZ70SYQnk5M+j5JbNLR6yKHmgW4M5E7X5g==} engines: {node: '>=16'} @@ -13175,10 +12286,6 @@ packages: dev: false optional: true - /parse5@6.0.1: - resolution: {integrity: sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==} - dev: true - /parseurl@1.3.3: resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==} engines: {node: '>= 0.8'} @@ -13578,10 +12685,6 @@ packages: /pseudomap@1.0.2: resolution: {integrity: sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==} - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true - /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: @@ -13638,6 +12741,8 @@ packages: /querystringify@2.2.0: resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} + dev: false + optional: true /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} @@ -13890,6 +12995,7 @@ packages: engines: {node: '>= 0.10'} dependencies: resolve: 1.22.6 + dev: true /redent@3.0.0: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} @@ -14045,6 +13151,8 @@ packages: /requires-port@1.0.0: resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} + dev: false + optional: true /reselect@4.1.8: resolution: {integrity: sha512-ab9EmR80F/zQTMNeneUr4cv+jSwPJgIlvEmVwLerwrWVbpLlBuls9XHzIeTFy4cegU2NHBp3va0LKOzU5qFEYQ==} @@ -14088,11 +13196,6 @@ packages: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==} dev: true - /resolve.exports@1.1.1: - resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} - engines: {node: '>=10'} - dev: true - /resolve.exports@2.0.2: resolution: {integrity: sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==} engines: {node: '>=10'} @@ -14265,13 +13368,6 @@ packages: dev: false optional: true - /saxes@5.0.1: - resolution: {integrity: sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==} - engines: {node: '>=10'} - dependencies: - xmlchars: 2.2.0 - dev: true - /scheduler@0.24.0-canary-efb381bbf-20230505: resolution: {integrity: sha512-ABvovCDe/k9IluqSh4/ISoq8tIJnW8euVAWYt5j/bg6dRnqwQwiGO1F/V4AyK96NGF/FB04FhOUDuWj8IKfABA==} dependencies: @@ -14460,6 +13556,7 @@ packages: glob: 7.2.3 interpret: 1.4.0 rechoir: 0.6.2 + dev: true /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} @@ -14946,6 +14043,8 @@ packages: dependencies: has-flag: 4.0.0 supports-color: 7.2.0 + dev: false + optional: true /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} @@ -14958,16 +14057,6 @@ packages: resolution: {integrity: sha512-5zAx+hUwJb9T3EAntc7TqYkV716CMqG6sZpNlAAMOMWkNXRYxGkN8ADIvD55dQZ10LxN90ZM/TQmN7y1gpICnw==} dev: false - /swagger-ui-express@4.6.3(express@4.18.2): - resolution: {integrity: sha512-CDje4PndhTD2HkgyKH3pab+LKspDeB/NhPN2OF1j+piYIamQqBYwAXWESOT1Yju2xFg51bRW9sUng2WxDjzArw==} - engines: {node: '>= v0.10.32'} - peerDependencies: - express: '>=4.0.0 || >=5.0.0-beta' - dependencies: - express: 4.18.2 - swagger-ui-dist: 5.9.0 - dev: false - /swagger-ui-express@5.0.0(express@4.18.2): resolution: {integrity: sha512-tsU9tODVvhyfkNSvf03E6FAk+z+5cU3lXAzMy6Pv4av2Gt2xA0++fogwC4qo19XuFf6hdxevPuVCSKFuMHJhFA==} engines: {node: '>= v0.10.32'} @@ -14982,10 +14071,6 @@ packages: engines: {node: '>=0.10'} dev: true - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - /synckit@0.8.5: resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} engines: {node: ^14.18.0 || >=16.0.0} @@ -15059,6 +14144,8 @@ packages: dependencies: ansi-escapes: 4.3.2 supports-hyperlinks: 2.3.0 + dev: false + optional: true /terser-webpack-plugin@5.3.9(@swc/core@1.3.96)(webpack@5.89.0): resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} @@ -15085,6 +14172,30 @@ packages: webpack: 5.89.0(@swc/core@1.3.96) dev: true + /terser-webpack-plugin@5.3.9(webpack@5.89.0): + resolution: {integrity: sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA==} + engines: {node: '>= 10.13.0'} + peerDependencies: + '@swc/core': '*' + esbuild: '*' + uglify-js: '*' + webpack: ^5.1.0 + peerDependenciesMeta: + '@swc/core': + optional: true + esbuild: + optional: true + uglify-js: + optional: true + dependencies: + '@jridgewell/trace-mapping': 0.3.19 + jest-worker: 27.5.1 + schema-utils: 3.3.0 + serialize-javascript: 6.0.1 + terser: 5.21.0 + webpack: 5.89.0 + dev: true + /terser@5.21.0: resolution: {integrity: sha512-WtnFKrxu9kaoXuiZFSGrcAvvBqAdmKx0SFNmVNYdJamMu9yyN3I/QF0FbH4QcqJQ+y1CJnzxGIKH0cSj+FGYRw==} engines: {node: '>=10'} @@ -15136,10 +14247,6 @@ packages: dev: false optional: true - /throat@6.0.2: - resolution: {integrity: sha512-WKexMoJj3vEuK0yFEapj8y64V0A6xcuPuK9Gt1d0R+dzCSJc0lHqQytAbSB4cDAK0dWh4T0E2ETkoLE2WZ41OQ==} - dev: true - /through2@2.0.5: resolution: {integrity: sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==} dependencies: @@ -15201,16 +14308,6 @@ packages: ieee754: 1.2.1 dev: true - /tough-cookie@4.1.3: - resolution: {integrity: sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw==} - engines: {node: '>=6'} - dependencies: - psl: 1.9.0 - punycode: 2.3.0 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: true - /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} @@ -15222,13 +14319,6 @@ packages: dev: false optional: true - /tr46@2.1.0: - resolution: {integrity: sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==} - engines: {node: '>=8'} - dependencies: - punycode: 2.3.0 - dev: true - /traverse@0.6.7: resolution: {integrity: sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg==} dev: false @@ -15270,6 +14360,40 @@ packages: dev: false optional: true + /ts-jest@29.1.1(@babel/core@7.23.0)(jest@29.7.0)(typescript@5.3.2): + resolution: {integrity: sha512-D6xjnnbP17cC85nliwGiL+tpoKN0StpgE0TeOjXQTU6MVCfsB4v7aW05CgQ/1OywGb0x/oy9hHFnN+sczTiRaA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + peerDependencies: + '@babel/core': '>=7.0.0-beta.0 <8' + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 + esbuild: '*' + jest: ^29.0.0 + typescript: '>=4.3 <6' + peerDependenciesMeta: + '@babel/core': + optional: true + '@jest/types': + optional: true + babel-jest: + optional: true + esbuild: + optional: true + dependencies: + '@babel/core': 7.23.0 + bs-logger: 0.2.6 + fast-json-stable-stringify: 2.1.0 + jest: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1) + jest-util: 29.7.0 + json5: 2.2.3 + lodash.memoize: 4.1.2 + make-error: 1.3.6 + semver: 7.5.4 + typescript: 5.3.2 + yargs-parser: 21.1.1 + dev: true + /ts-node@10.9.1(@swc/core@1.3.96)(@types/node@20.9.0)(typescript@5.2.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true @@ -15302,7 +14426,7 @@ packages: yn: 3.1.1 dev: true - /ts-node@10.9.1(@swc/core@1.3.96)(@types/node@20.9.4)(typescript@5.3.2): + /ts-node@10.9.1(@types/node@20.9.4)(typescript@5.3.2): resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: @@ -15317,7 +14441,6 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@swc/core': 1.3.96 '@tsconfig/node10': 1.0.9 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 @@ -15490,12 +14613,6 @@ packages: for-each: 0.3.3 is-typed-array: 1.1.12 - /typedarray-to-buffer@3.1.5: - resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} - dependencies: - is-typedarray: 1.0.0 - dev: true - /typedarray@0.0.6: resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==} @@ -15633,11 +14750,6 @@ packages: dev: false optional: true - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: true - /universalify@1.0.0: resolution: {integrity: sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==} engines: {node: '>= 10.0.0'} @@ -15682,6 +14794,8 @@ packages: dependencies: querystringify: 2.2.0 requires-port: 1.0.0 + dev: false + optional: true /use-sync-external-store@1.2.0(react@18.2.0): resolution: {integrity: sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA==} @@ -15732,15 +14846,6 @@ packages: resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-to-istanbul@8.1.1: - resolution: {integrity: sha512-FGtKtv3xIpR6BYhvgH8MI/y78oT7d8Au3ww4QIxymrCtZEh5b8gCw2siywE+puhEmuWKDtmfrvF5UlB298ut3w==} - engines: {node: '>=10.12.0'} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 - source-map: 0.7.4 - dev: true - /v8-to-istanbul@9.1.3: resolution: {integrity: sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==} engines: {node: '>=10.12.0'} @@ -15786,20 +14891,6 @@ packages: dev: false optional: true - /w3c-hr-time@1.0.2: - resolution: {integrity: sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==} - deprecated: Use your platform's native performance.now() and performance.timeOrigin. - dependencies: - browser-process-hrtime: 1.0.0 - dev: true - - /w3c-xmlserializer@2.0.0: - resolution: {integrity: sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==} - engines: {node: '>=10'} - dependencies: - xml-name-validator: 3.0.0 - dev: true - /walker@1.0.8: resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} dependencies: @@ -15850,16 +14941,6 @@ packages: dev: false optional: true - /webidl-conversions@5.0.0: - resolution: {integrity: sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==} - engines: {node: '>=8'} - dev: true - - /webidl-conversions@6.1.0: - resolution: {integrity: sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==} - engines: {node: '>=10.4'} - dev: true - /webpack-node-externals@3.0.0: resolution: {integrity: sha512-LnL6Z3GGDPht/AigwRh2dvL9PQPFQ8skEpVrWZXLWBYmqcaojHNN0onvHzie6rq7EWKrrBfPYqNEzTJgiwEQDQ==} engines: {node: '>=6'} @@ -15870,7 +14951,7 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.89.0(@swc/core@1.3.96): + /webpack@5.89.0: resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} engines: {node: '>=10.13.0'} hasBin: true @@ -15901,7 +14982,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.3.0 tapable: 2.2.1 - terser-webpack-plugin: 5.3.9(@swc/core@1.3.96)(webpack@5.89.0) + terser-webpack-plugin: 5.3.9(webpack@5.89.0) watchpack: 2.4.0 webpack-sources: 3.2.3 transitivePeerDependencies: @@ -15910,10 +14991,44 @@ packages: - uglify-js dev: true - /whatwg-encoding@1.0.5: - resolution: {integrity: sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==} + /webpack@5.89.0(@swc/core@1.3.96): + resolution: {integrity: sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw==} + engines: {node: '>=10.13.0'} + hasBin: true + peerDependencies: + webpack-cli: '*' + peerDependenciesMeta: + webpack-cli: + optional: true dependencies: - iconv-lite: 0.4.24 + '@types/eslint-scope': 3.7.5 + '@types/estree': 1.0.2 + '@webassemblyjs/ast': 1.11.6 + '@webassemblyjs/wasm-edit': 1.11.6 + '@webassemblyjs/wasm-parser': 1.11.6 + acorn: 8.10.0 + acorn-import-assertions: 1.9.0(acorn@8.10.0) + browserslist: 4.22.1 + chrome-trace-event: 1.0.3 + enhanced-resolve: 5.15.0 + es-module-lexer: 1.3.1 + eslint-scope: 5.1.1 + events: 3.3.0 + glob-to-regexp: 0.4.1 + graceful-fs: 4.2.11 + json-parse-even-better-errors: 2.3.1 + loader-runner: 4.3.0 + mime-types: 2.1.35 + neo-async: 2.6.2 + schema-utils: 3.3.0 + tapable: 2.2.1 + terser-webpack-plugin: 5.3.9(@swc/core@1.3.96)(webpack@5.89.0) + watchpack: 2.4.0 + webpack-sources: 3.2.3 + transitivePeerDependencies: + - '@swc/core' + - esbuild + - uglify-js dev: true /whatwg-fetch@3.6.19: @@ -15921,10 +15036,6 @@ packages: dev: false optional: true - /whatwg-mimetype@2.3.0: - resolution: {integrity: sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==} - dev: true - /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -15941,15 +15052,6 @@ packages: dev: false optional: true - /whatwg-url@8.7.0: - resolution: {integrity: sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==} - engines: {node: '>=10'} - dependencies: - lodash: 4.17.21 - tr46: 2.1.0 - webidl-conversions: 6.1.0 - dev: true - /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: @@ -16007,25 +15109,6 @@ packages: execa: 4.1.0 dev: true - /winston-elasticsearch@0.16.1: - resolution: {integrity: sha512-IZ7NWs+tBYSRf9CKYs0xmS42IIfyKnd+miWrGl58WLfDLBphIhqwol6im5dUcW2xjMCP4hSovaqipAgzC5MCYQ==} - engines: {node: '>= 8.0.0'} - dependencies: - '@elastic/elasticsearch': 7.17.13 - dayjs: 1.11.10 - debug: 4.3.4 - lodash.defaults: 4.2.0 - lodash.omit: 4.5.0 - promise: 8.3.0 - retry: 0.13.1 - winston: 3.11.0 - winston-transport: 4.5.0 - optionalDependencies: - elastic-apm-node: 3.50.0 - transitivePeerDependencies: - - supports-color - dev: false - /winston-elasticsearch@0.17.4: resolution: {integrity: sha512-smPDzR2gtAAQ2LibjoJF5aKOeH2sj8KPK7KKVsAncQRUFWjKpih5B6aAelCMc8svBKeCX+QQjE7DXG8B0VgN2A==} engines: {node: '>= 8.0.0'} @@ -16054,23 +15137,6 @@ packages: triple-beam: 1.4.1 dev: false - /winston@3.10.0: - resolution: {integrity: sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g==} - engines: {node: '>= 12.0.0'} - dependencies: - '@colors/colors': 1.5.0 - '@dabh/diagnostics': 2.0.3 - async: 3.2.4 - is-stream: 2.0.1 - logform: 2.5.1 - one-time: 1.0.0 - readable-stream: 3.6.2 - safe-stable-stringify: 2.4.3 - stack-trace: 0.0.10 - triple-beam: 1.4.1 - winston-transport: 4.5.0 - dev: false - /winston@3.11.0: resolution: {integrity: sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==} engines: {node: '>= 12.0.0'} @@ -16130,15 +15196,6 @@ packages: dev: false optional: true - /write-file-atomic@3.0.3: - resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} - dependencies: - imurmurhash: 0.1.4 - is-typedarray: 1.0.0 - signal-exit: 3.0.7 - typedarray-to-buffer: 3.1.5 - dev: true - /write-file-atomic@4.0.2: resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -16173,6 +15230,8 @@ packages: optional: true utf-8-validate: optional: true + dev: false + optional: true /ws@8.14.2: resolution: {integrity: sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==} @@ -16196,10 +15255,6 @@ packages: dev: false optional: true - /xml-name-validator@3.0.0: - resolution: {integrity: sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==} - dev: true - /xml2js@0.6.0: resolution: {integrity: sha512-eLTh0kA8uHceqesPqSE+VvO1CDDJWMwlQfB6LuN6T8w6MaDJ8Txm8P7s5cHD0miF0V+GGTZrDQfxPZQVsur33w==} engines: {node: '>=4.0.0'} @@ -16227,10 +15282,6 @@ packages: dev: false optional: true - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true - /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -16293,19 +15344,6 @@ packages: dev: false optional: true - /yargs@16.2.0: - resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} - engines: {node: '>=10'} - dependencies: - cliui: 7.0.4 - escalade: 3.1.1 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - string-width: 4.2.3 - y18n: 5.0.8 - yargs-parser: 20.2.9 - dev: true - /yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 855160bd11b2e81bdb37abb69f3f02461412b277..852bf6b8f908011e35fba18ae9027b4fcdfc3429 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,2 @@ packages: - - apps/* \ No newline at end of file + - apps/*