diff --git a/apps/attestation-manager/.env.example b/apps/attestation-manager/.env.example
deleted file mode 100644
index 669d3398a2db8460f434a74b35d1c8a70034b4e7..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/.env.example
+++ /dev/null
@@ -1,11 +0,0 @@
-PORT=3005
-DATABASE_URL=postgresql://root:password@localhost:5432/postgres?schema=attestation
-ECSURL=http://localhost:9200/
-ACCEPT_MEMBERSHIP_CREDENTIALS_CONFIG = AUTO
-NATS_URL=nats://localhost:4222
-AGENT_URL=http://localhost:3010
-TSA_URL=https://gaiax.vereign.com/tsa/policy/policy/example
-USE_AUTH=false
-OAUTH_CLIENT_ID=clientid
-OAUTH_CLIENT_SECRET=clientsecret
-OAUTH_TOKEN_URL=https://tokenurl
\ No newline at end of file
diff --git a/apps/attestation-manager/GDPR.md b/apps/attestation-manager/GDPR.md
deleted file mode 100644
index 6b5e37ce488857954e2e5d4857fb822421fa48e8..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/GDPR.md
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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)
-
-- Schema information (public)
-- Credential/credential definition ids and states
-- DID of issuer
-- DID of holder
-- Created/updated dates
-- 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
-
-### 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
deleted file mode 100644
index dc6381c873dbeda3d6cf92a6e873ef3e66cfa24e..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/Gaia-x Attestation Manager API.postman_collection.json	
+++ /dev/null
@@ -1,850 +0,0 @@
-{
-  "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/LICENSE b/apps/attestation-manager/LICENSE
deleted file mode 100644
index 6bc596c6d9ae158f03739f543ee9d26c4fb5e8d6..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/LICENSE
+++ /dev/null
@@ -1,636 +0,0 @@
-GAIA-X "Attestation Manager" 
-
-is the microservice which is responsible for handling the features 
-related to issuance of credentials of the GAIA-X project. It handles REST 
-endpoints for Schemas, Credential Definitions and Verifiable Credentials.
-
-Copyright 2022 Vereign AG
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager incorporates 
-
-"elastic/ecs-winston-format", 
-
-a Node.js package to provide a formatter for the winston logger compatible 
-with Elastic Common Schema (ECS) logging, which is covered by the following copyright
-and permission notice:
-
-Copyright 2020 Elastic and contributors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager also incorporates
-
-"nestjs", 
-
-a progressive Node.js framework for building efficient and scalable server-side applications, 
-which is covered by the following copyright and permission notice:
-
-Copyright (c) 2017-2022 Kamil Mysliwiec <https://kamilmysliwiec.com>
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates 
-
-"nestjs/terminus"
-
-, integrated healthchecks for Nest, which contains the
-following copyright and permission notice:  
-
-Copyright (c) 2018-2021 Livio Brunner, Kamil Myśliwiec
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates
-
-"prisma client"
-
-,an auto-generated query builder that enables type-safe database access and reduces 
-boilerplate, which is covered by the following copyright and permission notice:
-
-Copyright 2019 Johannes Schickling
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager also incorporates 
-
-"types/node"
-
-,type definitions for Node, which is covered by the following copyright and
-permission notice: 
-
-Copyright Microsoft TypeScript, DefinitelyTyped, Alberto Schiabel, 
-Alvis HT Tang, Andrew Makarov, Benjamin Toueg, Chigozirim C., David Junger, Deividas Bakanas, Eugene Y. Q. Shen, 
-Hannes Magnusson, Huw, Kelvin Jin, Klaus Meinhardt, Lishude, Mariusz Wiktorczyk, Mohsen Azimi, Nicolas Even, 
-Nikita Galkin, Parambir Singh, Sebastian Silbermann, Simon Schick, Thomas den Hollander, Wilco Bakker, wwwy3y3, 
-Samuel Ainsworth, Kyle Uehlein, Thanik Bhongbhibhat, Marcin Kopacz, Trivikram Kamat, Junxiao Shi, Ilia Baryshnikov, 
-ExE Boss, Piotr Błażejewicz, Anna Henningsen, Victor Perin, Yongsheng Zhang, NodeJS Contributors, 
-Linus Unnebäck, wafuwafu13, and Matteo Collina. 
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
-
-
-This Attestation Manager also incorporates
-
-"types/express"
-
-,type definitions for Express (http://expressjs.com), which is covered by the following 
-copyright and permission notice: 
-
-Copyright Boris Yankov, China Medical University Hospital, Puneet Arora, and Dylan Frankland.
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
-
-
-This Attestation Manager also incorporates 
-
-"types/jest"
-
-type definitions for Jest, which is covered by the following copyright and permission notice: 
-
-Copyright Asana (https://asana.com)// Ivo Stratev, jwbay, Alexey Svetliakov, Alex Jover Morales, Allan Lukwago, 
-Ika, Waseem Dahman, Jamie Mason, Douglas Duteil, Ahn, Jeff Lau, Andrew Makarov, Martin Hochel, Sebastian Sebald, 
-Andy, Antoine Brault, Gregor Stamać, ExE Boss, Alex Bolenok, Mario Beltrán Alarcón, Tony Hallett, Jason Yu, Pawel Fajfer, 
-Regev Brody, Alexandre Germain, and Adam Jones.
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates 
-
-"class-validator"
-
-, a tool to allow decorator and non-decorator based validation,
-
-and
-
-"class-transformer" 
-
-,a tool to transform plain object to some instance of class and versa, also to serialize / 
-deserialize object based on criteria, both of which are covered by the following copyright 
-and permission notice:
-
-Copyright 2015-2020 TypeStack
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates 
-
-"express"
-
-,a fast, unopinionated, minimalist web framework for node, which is covered by the following copyright
-and permission notice:
-
-Copyright (c) 2009-2014 TJ Holowaychuk <tj@vision-media.ca>
-Copyright (c) 2013-2014 Roman Shtylman <shtylman+expressjs@gmail.com>
-Copyright (c) 2014-2015 Douglas Christopher Wilson <doug@somethingdoug.com>
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-'Software'), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
-IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
-CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
-TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates
-
-"husky"
-
-, modern native Git hooks made easy, which is covered by the following copyright and 
-permission notice:
-
-Copyright (c) 2021 typicode
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE. 
-
-
-This Attestation Manager also incorporates
-
-"joi"
-
-, the most powerful schema description language and data validator for JavaScript, which is 
-covered by the following copyright and permission notice:
-
-Copyright (c) 2012-2020, Sideway. Inc, and project contributors.
-Copyright (c) 2012-2014, Walmart.
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
-- Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or 
-other materials provided with the distribution.
-- The names of any contributors may not be used to endorse or promote products derived from this software without 
-specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
-BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
-OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-
-This Attestation Manager also incorporates
-
-"liquibase"
-
-, liquibase is an open-source database-independent library for tracking, managing and applying database schema change, which is covered
-by the following copyright and permission notice: 
-
-Copyright (c) Taylor Buckner <taylora.buckner@gmail.com>
-
-(The MIT License) 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-This Attestation Manager also incorporates  
-
-"moment"
-
-, a JavaScript date library for parsing, validating, manipulating, and formatting dates,
-which is covered by the following copyright and permission notice: 
-
-Copyright (c) JS Foundation and other contributors
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person
-obtaining a copy of this software and associated documentation
-files (the "Software"), to deal in the Software without
-restriction, including without limitation the rights to use,
-copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following
-conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates 
-
-"nats"
-
-, a Node.js client for the NATS messaging system, which is covered by 
-the following copyright and permission notice:
-
-Copyright 2013-2018 The NATS Authors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager also incorporates 
-
-"pg - node postgres"
-
-, non-blocking PostgreSQL client for Node.js, which is covered by 
-the following copyright and permission notice:
-
-Copyright (c) 2010-2020 Brian Carlson (brian.m.carlson@gmail.com)
-
-(The MIT License) 
-Permission is hereby granted, free of charge, to any person obtaining a copy of 
-this software and associated documentation files (the "Software"), to deal in the 
-Software without restriction, including without limitation the rights to use, copy, 
-modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, 
-and to permit persons to whom the Software is furnished to do so, subject to the 
-following conditions:
-
-The above copyright notice and this permission notice shall be included in all copies 
-or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, 
-INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 
-PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 
-HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 
-SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-This Attestation Manager also incorporates
-
-"prisma"
-
-, next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, 
-SQLite, MongoDB and CockroachDB, which is covered by the following copyright and 
-permission notice:
-
-Copyright 2019 Johannes Schickling
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager also incorporates
-
-"reflect-metadata"
-
-, prototype for a Metadata Reflection API for ECMAScript, which is covered 
-by the following copyright and permission notice:
-
-Copyright 2019 Ron Buckton
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager also incorporates
-
-"rimraf"
-
-, a `rm -rf` util for nodejs, which is covered by the following copyright 
-and permission notice:
-
-Copyright (c) 2011-2022 Isaac Z. Schlueter and Contributors
-
-(The ISC License)
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
-ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
-IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-
-
-This Attestation Manager also incorporates
-
-"rxjs"
-
-, reactive extensions for JavaScript, which is covered by the following copyright 
-and permission notice:
-
-Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-     http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
-
-
-This Attestation Manager also incorporates
-
-"Swagger UI Express"
-
-, allows to serve auto-generated swagger-ui generated API docs from express, 
-based on a swagger.json file, which is covered by the following copyright and 
-permission notice: 
-
-Copyright (c) 2018 Scott IT London
-
-(The MIT License) 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-This Attestation Manager also incorporates
-
-"winston"
-
-, a logger for just about everything, which is covered by the following copyright and
-permission notice: 
-
-Copyright (c) 2010 Charlie Robbins
-
-(The MIT License) 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-
-
-This Attestation Manager also incorporates
-
-"winston-elasticsearch"
-
-, an elasticsearch transport for winston, which is covered by the following copyright and
-permission notice: 
-
-Copyright (c) 2015 - 2018 Thomas Hoppe.
-Copyright (c) 2013 Jacques-Olivier D. Bernier.
-
-(The MIT License)
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/apps/attestation-manager/README.md b/apps/attestation-manager/README.md
deleted file mode 100644
index 33a0265b07cf078c57a725aa79f0d92d304b0c69..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/README.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# 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/OpenAPI](swagger.json)
-
-## Installation
-
-<hr/>
-
-### Pre-requisite
-
-- pnpm
-- docker
-- docker-compose
-- PostgreSQL
-
-### OCM Services Dependencies
-
-- SSI Abstraction
-- Connection Manager
-
-## Running the app
-
-**Each service in the Organizational Credential Manager can be run from the infrastructure repository with Docker.**
-
-**The .env files are in the infrastructure repository under /env**
-
-```bash
-    ## production in:
-      ./deployment/ci
-    ## development in:
-      ./deployment/dev
-```
-
-- (optional) Edit docker-compose.yml in "infrastructure" to use either **/ci/** or **/dev/** Dockerfiles.
-
-- 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
-3. ECSURL
-4. NATS_URL
-5. AGENT_URL
-```
-
-### Outgoing communication services
-
-```
-1. SSI Abstraction
-```
-
-### Incomming communication services
-
-```
-1. Principal Manager
-```
-
-### Features supported
-
-```
-1. Create Schema
-2. Create Credential Definition
-3. Offer Credentials
-4. Propose Credentials
-5. Accept Credential
-```
-
-## Test
-
-<hr/>
-
-```bash
-# unit tests
-$ pnpm test
-
-# e2e tests
-$ pnpm test:e2e
-
-# test coverage
-$ 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
deleted file mode 100644
index 7d96ed7f53ad8dda534eb08bfc90bd94476538de..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/Chart.yaml
+++ /dev/null
@@ -1,6 +0,0 @@
-apiVersion: v1
-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'
diff --git a/apps/attestation-manager/deployment/helm/LICENSE b/apps/attestation-manager/deployment/helm/LICENSE
deleted file mode 100644
index c55d3182e865fd075f9e980bb18f3dbfd3cb8005..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/LICENSE
+++ /dev/null
@@ -1,15 +0,0 @@
-Deployment recipe for OCM attestation manager.
-
-Copyright 2022 Vereign AG
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
diff --git a/apps/attestation-manager/deployment/helm/README.md b/apps/attestation-manager/deployment/helm/README.md
deleted file mode 100644
index 71b02e2087551b21e13161b6a9b6f838c8fdd7e2..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/README.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# attestation-manager
-
-![Version: 1.0.1](https://img.shields.io/badge/Version-1.0.1-informational?style=flat-square) ![AppVersion: v1.0.1-rc](https://img.shields.io/badge/AppVersion-v1.0.1--rc-informational?style=flat-square)
-
-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`                                                  |                                                                |
-
----
-
-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/_helpers.tpl b/apps/attestation-manager/deployment/helm/templates/_helpers.tpl
deleted file mode 100644
index 6cba3ffc4fead9c4924f9788d1fb6c1daf8874e3..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/templates/_helpers.tpl
+++ /dev/null
@@ -1,94 +0,0 @@
-{{/* vim: set filetype=mustache: */}}
-{{/*
-Expand the name of the chart.
-*/}}
-{{- define "app.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create a fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-*/}}
-{{- define "app.fullname" -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- printf "%s-%s" $name .Release.Namespace | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create instance name based on app version and short image sha.
-*/}}
-{{- define "app.revision" -}}
-{{- default .Release.Name .Values.appRel | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "app.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Common labels
-*/}}
-{{- define "app.labels" -}}
-helm.sh/chart: {{ include "app.chart" . }}
-{{ include "app.selectorLabels" . }}
-app.kubernetes.io/version: {{ .Chart.AppVersion }}
-app.kubernetes.io/managed-by: {{ .Release.Service }}
-{{- end -}}
-
-{{/*
-Selector labels
-*/}}
-{{- define "app.selectorLabels" -}}
-app.kubernetes.io/name: {{ include "app.name" . }}
-app.kubernetes.io/component: {{ include "app.fullname" . }}
-{{- end -}}
-
-{{/*
-Metrics Annotations
-*/}}
-{{- define "app.metricsAnnotations" -}}
-{{- if .Values.metrics.enabled -}}
-prometheus.io/scrape: "true"
-prometheus.io/port: "{{ .Values.metrics.port }}"
-prometheus.io/path: {{ .Values.metrics.path | default "/metrics" | quote }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Image string
-*/}}
-{{- define "app.image" -}}
-{{- if .Values.image.sha -}}
-{{ .Values.image.repository }}/{{ .Values.image.name }}@{{ .Values.image.sha }}
-{{- else -}}
-{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ default .Chart.AppVersion .Values.image.tag }}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Security context
-*/}}
-{{- define "app.securitycontext" -}}
-runAsNonRoot: {{ .Values.security.runAsNonRoot | default false }}
-runAsGroup: {{ .Values.security.runAsGid | default 0 }}
-runAsUser: {{ .Values.security.runAsUid | default 0 }}
-fsGroup: {{ .Values.security.runAsGid | default 0 }}
-{{- end -}}
-
-{{/*
-PostgreSQL Connection  string URI
-*/}}
-{{- define "app.postgresql.connectionstring" -}}
-postgresql://{{ .Values.attestationManager.database.user }}:{{ .Values.attestationManager.database.password }}@{{ .Values.attestationManager.database.host }}:{{ .Values.attestationManager.database.port }}/{{ .Release.Namespace }}_{{ include "app.name" . | replace "-" "_" }}?schema={{ .Values.attestationManager.database.schema }}
-{{- end -}}
-
-{{/*
-Ingress custom path.
-*/}}
-{{- define "app.path" -}}
-{{- default .Chart.Name .Values.ingress.pathOverride | replace "-manager" "" | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
diff --git a/apps/attestation-manager/deployment/helm/templates/deployment.yaml b/apps/attestation-manager/deployment/helm/templates/deployment.yaml
deleted file mode 100644
index 23202e0ce5e8fb478536c698347299589121c827..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/templates/deployment.yaml
+++ /dev/null
@@ -1,81 +0,0 @@
-apiVersion: apps/v1
-kind: Deployment
-metadata:
-  name: "{{ template "app.name" . }}"
-  namespace: {{ .Release.Namespace }}
-  labels:
-    {{- include "app.labels" . | nindent 4 }}
-    app.kubernetes.io/instance: {{ include "app.revision" . }}
-    app.kubernetes.io/part-of: rse
-spec:
-  replicas: {{ .Values.replicaCount }}
-  strategy:
-    type: RollingUpdate
-    rollingUpdate:
-      maxSurge: 1
-      maxUnavailable: 0
-  selector:
-    matchLabels:
-      {{- include "app.selectorLabels" . | nindent 6 }}
-  template:
-    metadata:
-      labels:
-        {{- include "app.labels" . | nindent 8 }}
-      annotations:
-        {{- include "app.metricsAnnotations" . | nindent 8 }}
-{{- if .Values.podAnnotations }}
-{{ toYaml .Values.podAnnotations | indent 8 }}
-{{- end }}
-    spec:
-      securityContext:
-{{- include "app.securitycontext" . | nindent 8 }}
-      imagePullSecrets:
-        - name: {{ .Values.image.pullSecrets }}
-      containers:
-      - name: {{ template "app.name" . }}
-        image: "{{ .Values.image.repository }}/{{ .Values.image.name }}:{{ default .Chart.AppVersion .Values.image.tag }}"
-        imagePullPolicy: {{ .Values.image.pullPolicy | quote }}
-        env:
-          - name: PORT
-            value: {{ .Values.service.port | quote }}
-          - name: DATABASE_URL
-            value: {{ template "app.postgresql.connectionstring" (merge (dict "application" "true") .) }}
-          - name: NATS_URL
-            value: "{{ .Values.attestationManager.nats.protocol }}://{{ .Values.attestationManager.nats.url }}:{{ .Values.attestationManager.nats.port }}"
-          - name: ECSURL
-            value: "{{ .Values.attestationManager.elastic.protocol }}://{{ .Values.attestationManager.elastic.url }}:{{ .Values.attestationManager.elastic.port }}/"
-          - name: LOG_LEVEL
-            value: {{ .Values.log.level | default "INFO" }}
-          - name: LOG_ENCODING
-            value: {{ .Values.log.encoding | default "json" }}
-          - name: AGENT_URL
-            value: "{{ .Values.attestationManager.agent.protocol }}://{{ .Values.attestationManager.agent.host }}:{{ .Values.attestationManager.agent.port }}"
-          - name: ACCEPT_MEMBERSHIP_CREDENTIALS_CONFIG
-            value: {{ .Values.attestationManager.acceptMembershipCredentialsConfig }}
-          - name: TSA_URL
-            value: {{ .Values.attestationManager.url.tsa }}
-          - name: CONNECTION_MANAGER_URL
-            value: {{ .Values.attestationManager.url.connectionManager }}
-          - name: ATTESTATION_MANAGER_URL
-            value: {{ .Values.attestationManager.url.attestationManager }}
-{{- if .Values.extraVars }}
-{{ toYaml .Values.extraVars | indent 8 }}
-{{- end }}
-        ports:
-        {{- if .Values.metrics.enabled }}
-        - name: monitoring
-          containerPort: {{ .Values.metrics.port }}
-        {{- end }}
-        - name: http
-          containerPort: {{ .Values.service.port }}
-        readinessProbe:
-          httpGet:
-            path: /v1/health
-            port: {{ .Values.service.port }}
-          initialDelaySeconds: 5
-          periodSeconds: 5
-          successThreshold: 2
-          failureThreshold: 2
-          timeoutSeconds: 5
-        resources:
-{{ toYaml .Values.resources | indent 10 }}
diff --git a/apps/attestation-manager/deployment/helm/templates/hpa.yaml b/apps/attestation-manager/deployment/helm/templates/hpa.yaml
deleted file mode 100644
index fc5c29e7463c24756cfa83754e8ab9336be7b8c2..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/templates/hpa.yaml
+++ /dev/null
@@ -1,27 +0,0 @@
-{{- if .Values.autoscaling.enabled }}
-apiVersion: autoscaling/v2
-kind: HorizontalPodAutoscaler
-metadata:
-  labels:
-    {{- include "app.labels" . | nindent 4 }}
-  name: {{ template "app.name" . }}
-  namespace: {{ .Release.Namespace }}
-spec:
-  scaleTargetRef:
-    apiVersion: apps/v1
-    kind: Deployment
-    name: {{ template "app.name" . }}
-  minReplicas: {{ .Values.autoscaling.minReplicas }}
-  maxReplicas: {{ .Values.autoscaling.maxReplicas }}
-  metrics:
-{{- with .Values.autoscaling.targetCPUUtilizationPercentage }}
-    - type: Resource
-      resource:
-        name: cpu
-{{- end }}
-{{- with .Values.autoscaling.targetMemoryUtilizationPercentage }}
-    - type: Resource
-      resource:
-        name: memory
-{{- end }}
-{{- end }}
\ No newline at end of file
diff --git a/apps/attestation-manager/deployment/helm/templates/ingress.yaml b/apps/attestation-manager/deployment/helm/templates/ingress.yaml
deleted file mode 100644
index 798a8d1e5df4b25a735418ca27602a564972847a..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/templates/ingress.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-{{- if .Values.ingress.enabled }}
-apiVersion: networking.k8s.io/v1
-kind: Ingress
-metadata:
-  name: {{ template "app.path" . }}
-  namespace: {{ .Release.Namespace }}
-  annotations:
-{{ toYaml .Values.ingress.annotations | indent 4 }}
-  labels:
-    {{- include "app.labels" . | nindent 4 }}
-spec:
-{{- if .Values.ingress.tlsEnabled }}
-  tls:
-    - hosts:
-        - {{ .Values.ingress.frontendDomain }}
-      secretName: {{ .Values.ingress.frontendTlsSecretName }}
-{{- end }}
-  rules:
-    - host: {{ .Values.ingress.frontendDomain }}
-      http:
-        paths:
-          - path: /{{ template "app.path" . }}(/|$)(.*)
-            pathType: Prefix
-            backend:
-              service:
-                name: {{ template "app.name" . }}
-                port:
-                  number: {{ .Values.service.port }}
-{{- end }}
\ No newline at end of file
diff --git a/apps/attestation-manager/deployment/helm/templates/service.yaml b/apps/attestation-manager/deployment/helm/templates/service.yaml
deleted file mode 100644
index 387c8d480b51f5312086a6510081bdac85c6b0c9..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/templates/service.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-apiVersion: v1
-kind: Service
-metadata:
-  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 } }
diff --git a/apps/attestation-manager/deployment/helm/values-override.yaml b/apps/attestation-manager/deployment/helm/values-override.yaml
deleted file mode 100644
index 1d88acd66500241979973696ead0e1bcc4e1f85d..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/values-override.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-image:
-  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
-ingress:
-  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
diff --git a/apps/attestation-manager/deployment/helm/values.yaml b/apps/attestation-manager/deployment/helm/values.yaml
deleted file mode 100644
index 43a76bc9a942abd486b7d477adf21f3cf6eb972f..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/deployment/helm/values.yaml
+++ /dev/null
@@ -1,120 +0,0 @@
-# -- Default number of instances to start
-replicaCount: 1
-# -- Application name
-name: ssi-abstraction
-# -- Ovverwrites application name
-nameOverride: ''
-
-image:
-  repository: eu.gcr.io/vrgn-infra-prj
-  # -- Image name
-  name: gaiax/attestation-manager
-  # -- Image tag
-  # Uses .Chart.AppVersion if empty
-  tag: ''
-  # -- Image sha, usually generated by the CI
-  # Uses image.tag if empty
-  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.
-##
-# extraVars:
-# - name: EXTRA_VAR_1
-#   value: extra-var-value-1
-# - name: EXTRA_VAR_2
-#   value: extra-var-value-2
-##
-## Create new service when true, and use the specified uner name when set to the name specified
-##
-
-resources:
-  requests:
-    cpu: 25m
-    memory: 64Mi
-  limits:
-    cpu: 150m
-    memory: 128Mi
-
-## Configure pod autoscaling
-##
-
-autoscaling:
-  # -- Enable autoscaling
-  enabled: false
-  # -- Minimum replicas
-  minReplicas: 1
-  # -- Maximum replicas
-  maxReplicas: 3
-  # -- CPU target for autoscaling trigger
-  targetCPUUtilizationPercentage: 70
-  # -- Memory target for autoscaling trigger
-  targetMemoryUtilizationPercentage: 70
-##
-## Prometheus Exporter / Metrics
-##
-
-metrics:
-  # -- Enable prometheus metrics
-  enabled: true
-  # -- Port for prometheus metrics
-  port: 2112
-
-log:
-  level: 'INFO'
-  encoding: json
-
-##
-## Kubernetes [SecurityContext](https://kubernetes.io/docs/tasks/configure-pod-container/security-context/) object.
-##
-
-security:
-  # -- by default, apps run as non-root
-  runAsNonRoot: false
-  # -- User used by the apps
-  runAsUid: 0
-  # -- Group used by the apps
-  runAsGid: 0
-##
-##
-service:
-  port: 3005
-
-attestationManager:
-  acceptMembershipCredentialsConfig: AUTO
-  agent:
-    host: ssi-abstraction
-    protocol: http
-    port: 3010
-  database:
-    host: postgresql-postgresql-ha-postgresql.infra
-    user: ocm_attestation_manager
-    password: ocm_attestation_manager
-    port: 5432
-    schema: attestation
-    db: ocm_attestation_manager
-  nats:
-    url: nats
-    port: 4222
-    protocol: nats
-  elastic:
-    url: elasticsearch
-    port: 9200
-    protocol: http
-  url:
-    tsa: https://gaiax.vereign.com/tsa/policy/policy/example
-    connectionManager: https://gaiax.vereign.com/ocm/connection
-    attestationManager: https://gaiax.vereign.com/ocm/attestation
-ingress:
-  enabled: true
-  annotations:
-    kubernetes.io/ingress.class: nginx
-    nginx.ingress.kubernetes.io/rewrite-target: /$2
-  tlsEnabled: true
-  frontendDomain: gaiax.vereign.com
-  frontendTlsSecretName: cert-manager-tls
diff --git a/apps/attestation-manager/jest.config.js b/apps/attestation-manager/jest.config.js
deleted file mode 100644
index 5ece9fcccb7e35c47222b8cd0db33663d595c5e9..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/jest.config.js
+++ /dev/null
@@ -1,49 +0,0 @@
-import { readFileSync } from 'node:fs';
-
-const swcConfig = JSON.parse(readFileSync('../../.swcrc', 'utf8'));
-
-/** @type {import('jest').Config} */
-export default {
-  moduleFileExtensions: ['js', 'ts'],
-  testEnvironment: 'node',
-  transform: {
-    '^.+\\.(js|ts)$': [
-      '@swc/jest',
-      {
-        ...swcConfig,
-        sourceMaps: false,
-        exclude: [],
-        swcrc: false,
-      },
-    ],
-  },
-  extensionsToTreatAsEsm: ['.ts'],
-  moduleNameMapper: {
-    // ESM modules require `.js` extension to be specified, but Jest doesn't work with them
-    // Removing `.js` extension from module imports
-    '^uuid$': 'uuid',
-    '^(.*)/(.*)\\.js$': '$1/$2',
-  },
-  collectCoverageFrom: ['src/**/*.(t|j)s'],
-  coverageReporters:
-    process.env.CI === 'true'
-      ? ['text-summary', 'json-summary']
-      : ['text-summary', 'html'],
-  coveragePathIgnorePatterns: [
-    '<rootDir>/node_modules/',
-    '<rootDir>/test/',
-    '<rootDir>/coverage/',
-    '<rootDir>/dist/',
-    '<rootDir>/**/test',
-    '@types',
-    '.dto.(t|j)s',
-    '.enum.ts',
-    '.interface.ts',
-    '.type.ts',
-    '.spec.ts',
-  ],
-  coverageDirectory: './coverage',
-  // With v8 coverage provider it's much faster, but
-  // with this enabled it's not possible to ignore whole files' coverage
-  coverageProvider: 'v8',
-};
diff --git a/apps/attestation-manager/nest-cli.json b/apps/attestation-manager/nest-cli.json
deleted file mode 100644
index b9af737f405bfea055dcb58728c31d912fef06f3..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/nest-cli.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
-  "$schema": "https://json.schemastore.org/nest-cli",
-  "collection": "@nestjs/schematics",
-  "sourceRoot": "src",
-  "compilerOptions": {
-    "typeCheck": true,
-    "builder": {
-      "type": "swc",
-      "options": {
-        "swcrcPath": "../../.swcrc"
-      }
-    }
-  }
-}
diff --git a/apps/attestation-manager/package.json b/apps/attestation-manager/package.json
deleted file mode 100644
index 956f2f5355e32c852849210a067585f5f98a7a84..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/package.json
+++ /dev/null
@@ -1,78 +0,0 @@
-{
-  "name": "@ocm/attestation-manager",
-  "version": "0.0.1",
-  "description": "",
-  "author": "Shirdhar",
-  "private": true,
-  "license": "Apache-2.0",
-  "type": "module",
-  "scripts": {
-    "clean": "rimraf dist coverage *.tsbuildinfo",
-    "prebuild": "pnpm clean",
-    "build": "nest build",
-    "prebuild:production": "pnpm clean",
-    "build:production": "pnpm prisma:generate && nest build -p tsconfig.production.json",
-    "prisma:dbpush": "prisma db push --schema=./src/prisma/schema.prisma",
-    "prisma:generate": "prisma generate --schema=./src/prisma/schema.prisma",
-    "prisma:migrate": "prisma migrate deploy --schema=./src/prisma/schema.prisma",
-    "prisma:studio": "prisma studio",
-    "start": "nest start",
-    "start:dev": "nest start --watch --preserveWatchOutput",
-    "test": "jest",
-    "test:watch": "jest --watch",
-    "test:cov": "jest --coverage",
-    "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
-    "test:e2e": "jest --config ./test/jest.config.js"
-  },
-  "dependencies": {
-    "@elastic/ecs-winston-format": "^1.5.0",
-    "@nestjs/axios": "^3.0.1",
-    "@nestjs/common": "^10.2.8",
-    "@nestjs/config": "^3.1.1",
-    "@nestjs/core": "^10.2.8",
-    "@nestjs/mapped-types": "^2.0.3",
-    "@nestjs/microservices": "^10.2.8",
-    "@nestjs/platform-express": "^10.2.8",
-    "@nestjs/swagger": "^7.1.15",
-    "@nestjs/terminus": "^10.1.1",
-    "@prisma/client": "^5.6.0",
-    "class-transformer": "^0.5.1",
-    "class-validator": "^0.14.0",
-    "express": "^4.17.3",
-    "joi": "^17.11.0",
-    "jsonwebtoken": "^9.0.2",
-    "jwks-rsa": "^3.1.0",
-    "liquibase": "^4.4.0",
-    "moment": "^2.29.4",
-    "nats": "^2.18.0",
-    "pg": "^8.11.3",
-    "reflect-metadata": "^0.1.13",
-    "rxjs": "^7.8.1",
-    "swagger-ui-express": "^5.0.0",
-    "winston": "^3.11.0",
-    "winston-elasticsearch": "^0.17.4"
-  },
-  "devDependencies": {
-    "@nestjs/cli": "^10.2.1",
-    "@nestjs/schematics": "^10.0.3",
-    "@nestjs/testing": "^10.2.8",
-    "@swc/cli": "^0.1.62",
-    "@swc/core": "^1.3.96",
-    "@swc/jest": "^0.2.29",
-    "@types/express": "^4.17.21",
-    "@types/jest": "^29.5.8",
-    "@types/jsonwebtoken": "^9.0.5",
-    "@types/node": "^20.9.0",
-    "@types/supertest": "^2.0.16",
-    "dotenv-cli": "^7.3.0",
-    "eslint": "^8.53.0",
-    "jest": "^29.7.0",
-    "node-mocks-http": "^1.13.0",
-    "prisma": "^5.6.0",
-    "rimraf": "^5.0.5",
-    "source-map-support": "^0.5.21",
-    "supertest": "^6.3.3",
-    "ts-node": "^10.9.1",
-    "typescript": "^5.2.2"
-  }
-}
diff --git a/apps/attestation-manager/src/app.module.ts b/apps/attestation-manager/src/app.module.ts
deleted file mode 100644
index 2ab9898ed6d81bb861d7b87207a1b1d687d1f696..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/app.module.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import {
-  Module,
-  RequestMethod,
-  type MiddlewareConsumer,
-  type NestModule,
-} from '@nestjs/common';
-import { ConfigModule } from '@nestjs/config';
-import { APP_FILTER } from '@nestjs/core';
-import { TerminusModule } from '@nestjs/terminus';
-
-import ExceptionHandler from './common/exception.handler.js';
-import config from './config/config.js';
-import validationSchema from './config/validation.js';
-import CredentialDefModule from './credentialDef/module.js';
-import HealthController from './health/health.controller.js';
-import AttestationModule from './issue-credential/module.js';
-import { AuthMiddleware } from './middleware/auth.middleware.js';
-import SchemasModule from './schemas/module.js';
-import UserInfoModule from './userInfo/module.js';
-
-@Module({
-  imports: [
-    TerminusModule,
-    ConfigModule.forRoot({
-      isGlobal: true,
-      load: [config],
-      validationSchema,
-    }),
-    SchemasModule,
-    AttestationModule,
-    CredentialDefModule,
-    UserInfoModule,
-  ],
-  controllers: [HealthController],
-  providers: [
-    {
-      provide: APP_FILTER,
-      useClass: ExceptionHandler,
-    },
-  ],
-})
-export default class AppModule implements NestModule {
-  public configure(consumer: MiddlewareConsumer) {
-    // eslint-disable-line
-    consumer
-      .apply(AuthMiddleware)
-      .exclude({
-        path: 'v1/health',
-        method: RequestMethod.GET,
-      })
-      .forRoutes('*');
-  }
-}
diff --git a/apps/attestation-manager/src/client/nats.client.ts b/apps/attestation-manager/src/client/nats.client.ts
deleted file mode 100644
index 9946c3bc94b9baabdabf52c85e3169a9c34911c6..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/nats.client.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { ClientProxy } from '@nestjs/microservices';
-import { lastValueFrom } from 'rxjs';
-
-import { Connection, NATSServices } from '../common/constants.js';
-
-@Injectable()
-export default class NatsClientService {
-  public constructor(
-    @Inject(NATSServices.SERVICE_NAME) private natsClient: ClientProxy,
-  ) {}
-
-  public getConnectionById(connectionId: string) {
-    const pattern = {
-      endpoint: `${Connection.NATS_ENDPOINT}/${Connection.GET_CONNECTION_BY_ID}`,
-    };
-    const payload = { connectionId };
-    return lastValueFrom(this.natsClient.send(pattern, payload));
-  }
-
-  public connectionTrusted(connectionId: string) {
-    const pattern = {
-      endpoint: `${Connection.NATS_ENDPOINT}/${Connection.MAKE_CONNECTION_TRUSTED}`,
-    };
-    const payload = { connectionId };
-    return lastValueFrom(this.natsClient.send(pattern, payload));
-  }
-
-  public getReceivedConnections() {
-    const pattern = {
-      endpoint: `${Connection.NATS_ENDPOINT}/${Connection.GET_RECEIVED_CONNECTIONS}`,
-    };
-    const payload = {};
-    return lastValueFrom(this.natsClient.send(pattern, payload));
-  }
-}
diff --git a/apps/attestation-manager/src/client/rest.client.ts b/apps/attestation-manager/src/client/rest.client.ts
deleted file mode 100644
index 6dce06d50491916bc8d7dc723b09016bda385ea5..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/rest.client.ts
+++ /dev/null
@@ -1,28 +0,0 @@
-import { HttpService } from '@nestjs/axios';
-import { Injectable } from '@nestjs/common';
-import { lastValueFrom, map } from 'rxjs';
-
-@Injectable()
-export default class RestClientService {
-  public constructor(private readonly httpService: HttpService) {}
-
-  public async delete(url: string) {
-    return lastValueFrom(
-      this.httpService.delete(url).pipe(map((response) => response.data)),
-    );
-  }
-
-  public async post(url: string, payload: object) {
-    return lastValueFrom(
-      this.httpService
-        .post(url, payload)
-        .pipe(map((response) => response.data)),
-    );
-  }
-
-  public async get(url: string) {
-    return lastValueFrom(
-      this.httpService.get(url).pipe(map((response) => response.data)),
-    );
-  }
-}
diff --git a/apps/attestation-manager/src/client/tests/__mocks__/nats.client.ts b/apps/attestation-manager/src/client/tests/__mocks__/nats.client.ts
deleted file mode 100644
index 1e1c7b9310b217a33e3bacbfb99a99de2ed79f1d..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/tests/__mocks__/nats.client.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import {
-  natsAgentResponse,
-  natsConnectionResponse,
-} from '../stubs/nats-response.js';
-
-const NatsClientServiceMock = jest.fn().mockReturnValue({
-  getAgentByParticipantId: jest.fn().mockReturnValue(natsAgentResponse),
-  getConnectionById: jest.fn().mockReturnValue(natsConnectionResponse),
-});
-
-export default NatsClientServiceMock;
diff --git a/apps/attestation-manager/src/client/tests/__mocks__/rest.client.ts b/apps/attestation-manager/src/client/tests/__mocks__/rest.client.ts
deleted file mode 100644
index d7e68ae4dcbce84a760bcfe0c23c87bf24af592f..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/tests/__mocks__/rest.client.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import schemaAgentDto from '../../../schemas/tests/stubs/schema-from-agent-dto.js';
-
-const RestClientServiceMock = jest.fn().mockReturnValue({
-  post: jest.fn().mockReturnValue({ agent: 'response' }),
-  get: jest.fn().mockImplementation((url: string) => {
-    if (url.includes('schemas')) {
-      return schemaAgentDto;
-    }
-
-    return {};
-  }),
-});
-
-export default RestClientServiceMock;
diff --git a/apps/attestation-manager/src/client/tests/__mocks__/tsa.client.ts b/apps/attestation-manager/src/client/tests/__mocks__/tsa.client.ts
deleted file mode 100644
index eceacefce498491de9cd0a0dd05b93d276d473cf..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/tests/__mocks__/tsa.client.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import type { PolicyReturnType } from '../../tsa.client.js';
-
-import { TSAService } from '../../../common/constants.js';
-
-const TSAClientServiceMock = jest.fn().mockReturnValue({
-  getPolicy: jest.fn().mockImplementation((url: string) => {
-    if (url.includes(TSAService.PRINCIPAL_CREDENTIAL_REQUEST)) {
-      return {
-        success: true,
-        returnData: true,
-      } as PolicyReturnType;
-    }
-
-    return {};
-  }),
-});
-
-export default TSAClientServiceMock;
diff --git a/apps/attestation-manager/src/client/tests/rest.client.spec.ts b/apps/attestation-manager/src/client/tests/rest.client.spec.ts
deleted file mode 100644
index 49f5a82f0e809cb2d65ff6d121949edd55d358e3..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/tests/rest.client.spec.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-
-import { HttpModule, HttpService } from '@nestjs/axios';
-import { Test } from '@nestjs/testing';
-
-import HttpServiceMock from '../../tests/__mocks__/http-service.js';
-import RestClientService from '../rest.client.js';
-
-describe('RestClientService', () => {
-  let restClient: RestClientService;
-
-  const HttpServiceProvider = {
-    provide: HttpService,
-    useFactory: HttpServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [RestClientService, HttpServiceProvider],
-    }).compile();
-
-    restClient = module.get<RestClientService>(RestClientService);
-  });
-
-  it('should be defined', () => {
-    expect(restClient).toBeDefined();
-  });
-
-  describe('post()', () => {
-    let restClientResponse: unknown;
-
-    beforeEach(async () => {
-      restClientResponse = await restClient.post('test_url', {});
-    });
-
-    it('should call post() from HttpService', async () => {
-      expect(HttpServiceMock().post).toHaveBeenCalled();
-    });
-
-    it('should retrieve response', async () => {
-      expect(restClientResponse).not.toBe(null);
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/client/tests/stubs/nats-response.ts b/apps/attestation-manager/src/client/tests/stubs/nats-response.ts
deleted file mode 100644
index 218547f8ef621ea51795666db85a3b73aa0b253e..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/tests/stubs/nats-response.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type { ResponseType } from '../../../common/response.js';
-
-import AttestationService from '../../../issue-credential/services/service.js';
-
-const natsAgentResponse: ResponseType = {
-  statusCode: 200,
-  data: {
-    service_endpoint: 'TEST_AGENT_URL',
-  },
-  message: 'Agent Details',
-};
-
-const natsConnectionResponse = {
-  status: AttestationService.connectionStatus.TRUSTED,
-};
-
-export { natsAgentResponse, natsConnectionResponse };
diff --git a/apps/attestation-manager/src/client/tsa.client.ts b/apps/attestation-manager/src/client/tsa.client.ts
deleted file mode 100644
index 5f7dcf813d9bb6781c811a2b576d2ad98d004430..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/client/tsa.client.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { Injectable } from '@nestjs/common';
-
-import RestClientService from './rest.client.js';
-
-export interface PolicyReturnType {
-  success: boolean;
-  returnData?: unknown; // replace with actual structure when ready
-}
-
-export interface PolicyResult {
-  allow: boolean;
-  data?: unknown;
-}
-
-@Injectable()
-export default class TSAClientService {
-  public constructor(private readonly restClient: RestClientService) {}
-
-  public async getPolicy(policyUrl: string) {
-    try {
-      const policyResponse: PolicyResult = await this.restClient.get(policyUrl);
-
-      if (
-        policyResponse &&
-        policyResponse.allow &&
-        typeof policyResponse.allow === 'boolean'
-      ) {
-        return {
-          success: true,
-          returnData: Boolean(policyResponse?.allow),
-        } as PolicyReturnType;
-      }
-
-      // Add condition when policy returns data other than boolean
-      return {
-        success: false,
-        returnData: 'Unable to fetch policy data.',
-      } as PolicyReturnType;
-    } catch (error: any /* eslint-disable-line @typescript-eslint/no-explicit-any */) {
-      let returnData = 'Something went wrong!';
-
-      if (error?.isAxiosError) {
-        returnData = `${error?.response?.status} ${error?.response?.statusText}`;
-      }
-
-      return {
-        success: false,
-        returnData,
-      } as PolicyReturnType;
-    }
-  }
-}
diff --git a/apps/attestation-manager/src/common/constants.ts b/apps/attestation-manager/src/common/constants.ts
deleted file mode 100644
index 08eeddaa9188bc0f1f0215aac61b50114320008c..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/common/constants.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-export enum LoggerConfig {
-  FILE_PATH = 'logs/log.json',
-  LOG_DIR = './logs',
-}
-
-export enum Connection {
-  BASE_URL = 'http://3.111.77.38:3003', // TODO Hardcoded IP, move to env variables
-  CONNECTION = 'v1/connections',
-  GET_CONNECTION_BY_ID = 'getConnectionById',
-  NATS_ENDPOINT = 'CONNECTION_MANAGER_SERVICE',
-  MAKE_CONNECTION_TRUSTED = 'makeConnectionTrusted',
-  GET_RECEIVED_CONNECTIONS = 'getReceivedConnections',
-}
-
-export enum Abstraction {
-  NATS_ENDPOINT = 'SSI_ABSTRACTION_SERVICE',
-  CREDENTIAL_STATE_CHANGED = 'CredentialStateChanged',
-}
-
-export enum NATSServices {
-  SERVICE_NAME = 'ATTESTATION_MANAGER_SERVICE',
-}
-
-export enum TSAService {
-  PRINCIPAL_CREDENTIAL_REQUEST = 'PrincipalCredentialRequest',
-}
-
-export enum PrismaErrorCode {
-  RECORD_NOT_FOUND = 'P2025',
-}
-
-export const VersionRegex = /^(\d+\.)(\d+\.)?(\d+)$/;
-
-export enum AutoAcceptCredential {
-  ALWAYS = 'always',
-  Content_Approved = 'contentApproved',
-  NEVER = 'never',
-}
diff --git a/apps/attestation-manager/src/common/date.utils.ts b/apps/attestation-manager/src/common/date.utils.ts
deleted file mode 100644
index a6d0cac913ae0a54764db2914951e2432ad6a6ed..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/common/date.utils.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import moment from 'moment';
-
-const getDate = () => moment().format('MM-DD-YYYY, h:mm:ss a');
-
-export default getDate;
diff --git a/apps/attestation-manager/src/common/exception.handler.ts b/apps/attestation-manager/src/common/exception.handler.ts
deleted file mode 100644
index 4e977c87f0c51659c70001274764594f4e729543..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/common/exception.handler.ts
+++ /dev/null
@@ -1,47 +0,0 @@
-import type { ResponseType } from './response.js';
-
-import {
-  Catch,
-  HttpException,
-  HttpStatus,
-  type ArgumentsHost,
-  type ExceptionFilter,
-} from '@nestjs/common';
-import { HttpAdapterHost } from '@nestjs/core';
-
-@Catch()
-export default class ExceptionHandler implements ExceptionFilter {
-  public constructor(private readonly httpAdapterHost: HttpAdapterHost) {}
-
-  // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  public catch(exception: any, host: ArgumentsHost): void {
-    // In certain situations `httpAdapter` might not be available in the
-    // constructor method, thus we should resolve it here.
-    const { httpAdapter } = this.httpAdapterHost;
-
-    const ctx = host.switchToHttp();
-    const response = ctx.getResponse();
-
-    let statusCode = HttpStatus.INTERNAL_SERVER_ERROR;
-    let message =
-      exception.message.error || exception.message || 'Something went wrong!';
-
-    if (exception instanceof HttpException) {
-      const errorResponse: string | object = exception.getResponse();
-
-      statusCode = exception.getStatus();
-      message =
-        (typeof errorResponse === 'object' &&
-          Reflect.get(errorResponse, 'error')) ||
-        message;
-    }
-
-    const responseBody: ResponseType = {
-      statusCode,
-      message,
-      error: exception.message,
-    };
-
-    httpAdapter.reply(response, responseBody, statusCode);
-  }
-}
diff --git a/apps/attestation-manager/src/common/response.ts b/apps/attestation-manager/src/common/response.ts
deleted file mode 100644
index 6fe63e566ee537d340d7372754536b85dda0dd74..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/common/response.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export interface ResponseType {
-  statusCode: number;
-  message: string;
-  data?: unknown;
-  error?: unknown;
-}
diff --git a/apps/attestation-manager/src/config/config.ts b/apps/attestation-manager/src/config/config.ts
deleted file mode 100644
index 8919c2141fe265e0c20be11209b489cc4d1a098d..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/config/config.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { fileURLToPath } from 'node:url';
-
-const parentDirectory = fileURLToPath(new URL('..', import.meta.url));
-
-const config = () => ({
-  PORT: Number(process.env.PORT),
-  nats: {
-    url: process.env.NATS_URL,
-  },
-  auth: {
-    useAuth: process.env.USE_AUTH || 'false',
-    clientId: process.env.OAUTH_CLIENT_ID,
-    clientSecret: process.env.OAUTH_CLIENT_SECRET,
-    tokenUrl: process.env.OAUTH_TOKEN_URL,
-  },
-  agent: {
-    AGENT_URL: process.env.AGENT_URL,
-  },
-  DATABASE: {
-    type: 'postgres',
-    port: 5432,
-    synchronize: false,
-    logging: false,
-    entities: [`${parentDirectory}/**/**.model{.ts,.js}`],
-  },
-  ECSURL: process.env.ECSURL,
-  ACCEPT_MEMBERSHIP_CREDENTIALS_CONFIG:
-    process.env.ACCEPT_MEMBERSHIP_CREDENTIALS_CONFIG,
-  TSA_URL: process.env.TSA_URL,
-});
-export default config;
diff --git a/apps/attestation-manager/src/config/validation.ts b/apps/attestation-manager/src/config/validation.ts
deleted file mode 100644
index 728b26f9be1b2e304f3eff8ac7ffacbb76a656a6..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/config/validation.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import Joi from 'joi';
-
-const validationSchema = Joi.object({
-  DATABASE_URL: Joi.string().required(),
-  AGENT_URL: Joi.string().required(),
-  NATS_URL: Joi.string().required(),
-  PORT: Joi.number().required(),
-  ACCEPT_MEMBERSHIP_CREDENTIALS_CONFIG: Joi.string().required(),
-  USE_AUTH: Joi.string(),
-  OAUTH_CLIENT_ID: Joi.string(),
-  OAUTH_CLIENT_SECRET: Joi.string(),
-  OAUTH_TOKEN_URL: Joi.string(),
-});
-
-export default validationSchema;
diff --git a/apps/attestation-manager/src/credentialDef/controller/controller.ts b/apps/attestation-manager/src/credentialDef/controller/controller.ts
deleted file mode 100644
index d653197d695902a4545b8ddcc9dcae1d4469d6d9..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/controller/controller.ts
+++ /dev/null
@@ -1,482 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-import type CredentialDefLedgerDto from '../entities/credentialDefLedger-entity.js';
-// eslint-disable-next-line @typescript-eslint/consistent-type-imports
-import type { Response } from 'express';
-
-import {
-  Body,
-  Controller,
-  Get,
-  HttpStatus,
-  InternalServerErrorException,
-  Param,
-  Post,
-  Query,
-  Res,
-  Version,
-} from '@nestjs/common';
-import {
-  ApiBody,
-  ApiOperation,
-  ApiParam,
-  ApiQuery,
-  ApiResponse,
-  ApiTags,
-} from '@nestjs/swagger';
-import { Prisma } from '@prisma/client';
-
-import logger from '../../utils/logger.js';
-import CredentialDefDto from '../entities/credentialDef-entity.js';
-import CredentialDefService from '../services/service.js';
-
-@ApiTags('Credential Definitions')
-@Controller('credentialDef')
-export default class CredentialDefController {
-  public constructor(
-    private readonly credentialDefService: CredentialDefService,
-  ) {}
-
-  @Version(['1'])
-  @ApiQuery({ name: 'page', required: false })
-  @ApiQuery({ name: 'pageSize', required: false })
-  @ApiQuery({ name: 'schemaID', required: false })
-  @Get('')
-  @ApiOperation({
-    summary: 'Fetch a list of credential definitions',
-    description:
-      'This call provides the capability to search created credential definitions by using pagination and filter parameter (schemaID) to select credential definitions. This call returns a list of credential definitions and overall count of records. Using a credential definition from that list you can issue credential so some connection',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential definitions fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential definitions fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Credential definitions fetched successfully',
-              data: {
-                count: 2,
-                records: [
-                  {
-                    id: '1234abcd',
-                    schemaID: 'loremipsum:test-01-01:1.0',
-                    name: 'test-01-01',
-                    credDefId: 'test-cred-def123',
-                    isAutoIssue: false,
-                    isRevokable: false,
-                    expiryHours: '24',
-                    createdBy: 'acceptsAnyString',
-                    createdDate: '1970-01-01T00:00:28.343Z',
-                    updatedBy: '',
-                    updatedDate: '1970-01-01T00:00:28.343Z',
-                  },
-                  {
-                    id: '5678abcd',
-                    schemaID: 'loremipsum2:test2-01-01:1.0',
-                    name: 'test2-01-01',
-                    credDefId: 'test2-cred-def123',
-                    isAutoIssue: false,
-                    isRevokable: false,
-                    expiryHours: '24',
-                    createdBy: 'acceptsAnyString',
-                    createdDate: '1970-01-01T00:00:28.343Z',
-                    updatedBy: '',
-                    updatedDate: '1970-01-01T00:00:28.343Z',
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found.': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async findCredentialDef(
-    @Query()
-    query: {
-      pageSize: string;
-      page: string;
-      schemaID: string;
-    },
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-    try {
-      logger.info('Credential definitions fetched successfully');
-      const result = await this.credentialDefService.findCredentialDef(
-        query.pageSize ? parseInt(query.pageSize, 10) : 10,
-        query.page ? parseInt(query.page, 10) : 0,
-        query.schemaID ? query.schemaID : '',
-      );
-      if (Array.isArray(result) && result[0] > 0) {
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Credential definitions fetched successfully',
-          data: {
-            count: result[0],
-            records: result[1],
-          },
-        };
-      } else {
-        response.status(HttpStatus.NOT_FOUND);
-        res = {
-          statusCode: HttpStatus.NOT_FOUND,
-          message: 'No Data found',
-        };
-      }
-      return response.send(res);
-    } catch (error: unknown) {
-      logger.error(error instanceof Error && error.message);
-      throw new InternalServerErrorException(
-        `Error: ${error instanceof Error ? error.message : error}`,
-      );
-    }
-  }
-
-  @ApiParam({ name: 'id', type: 'string', description: 'Pass Cred Def id' })
-  @Version(['1'])
-  @Get('/:id')
-  @ApiOperation({
-    summary: 'Fetch credential definition by id',
-    description:
-      'This call provides the capability to get credential definition data by providing id of credential definition. The credential definition data is the same which is returned from /v1/connections endpoint and contains generic information about credential definition like schemaID, name, credDefId, isAutoIssue, isRevokable, expiryHours, createdBy, createdDate, updatedBy, updatedDate',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential definition fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential definition fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Credential definition fetched successfully',
-              data: {
-                count: 1,
-                records: [
-                  {
-                    id: '1234abcd',
-                    schemaID: 'loremipsum:test-01-01:1.0',
-                    name: 'test-01-01',
-                    credDefId: 'test-cred-def123',
-                    isAutoIssue: false,
-                    isRevokable: false,
-                    expiryHours: '24',
-                    createdBy: 'acceptsAnyString',
-                    createdDate: '1970-01-01T00:00:28.343Z',
-                    updatedBy: '',
-                    updatedDate: '1970-01-01T00:00:28.343Z',
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async findCredentialDefById(
-    @Param('id') id: string,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-    try {
-      logger.info('Credential definition fetched successfully');
-      const result = await this.credentialDefService.findCredentialDefById(id);
-      if (Array.isArray(result) && result[0] > 0) {
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Credential definition fetch successfully',
-          data: {
-            count: result[0],
-            records: result[1],
-          },
-        };
-      } else {
-        response.status(HttpStatus.NOT_FOUND);
-        res = {
-          statusCode: HttpStatus.NOT_FOUND,
-          message: 'No Data found',
-        };
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @Version(['1'])
-  @ApiBody({ type: CredentialDefDto })
-  @Post('')
-  @ApiOperation({
-    summary: 'Create a new credential definition',
-    description:
-      'This call provides the capability to create new credential definition by providing schema id, name, createdBy, auto-issue and other information required by this method. This call returns an object contains information abut this credential definition (type CredentialDefDto). You can use this credential definition to issue credentials to some connection',
-  })
-  @ApiResponse({
-    status: HttpStatus.CREATED,
-    description: 'Credential definition created successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential definition created successfully': {
-            value: {
-              statusCode: 201,
-              message: 'Credential definition created successfully',
-              data: {
-                id: '71b784a3',
-                schemaID: '7KuDTpQh3:test-schema',
-                name: 'test',
-                credDefId: '7KuDTpQh3:test',
-                isAutoIssue: false,
-                isRevokable: false,
-                expiryHours: '23',
-                createdBy: 'vocm',
-                createdDate: '1970-01-01T00:00:28.343Z',
-                updatedBy: '',
-                updatedDate: '1970-01-01T00:00:28.343Z',
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description:
-      'Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )':
-            {
-              value: {
-                statusCode: 400,
-                message:
-                  'Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )',
-              },
-            },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description:
-      'Could not get credential definition details. Please try again.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Could not get credential definition details. Please try again.': {
-            value: {
-              statusCode: 400,
-              message:
-                'Could not get credential definition details. Please try again.',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.CONFLICT,
-    description: 'Credential definition already exists',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential definition already exists': {
-            value: {
-              statusCode: 409,
-              message: 'Credential definition already exists',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async createCredentialDef(
-    @Body() credentialDefDto: CredentialDefDto,
-    @Res() response: Response,
-  ) {
-    try {
-      let res: ResponseType = {
-        statusCode: HttpStatus.OK,
-        message: 'Something went wrong please try again.',
-      };
-      if (
-        !(
-          credentialDefDto.schemaID &&
-          typeof credentialDefDto.schemaID === 'string' &&
-          credentialDefDto.name &&
-          typeof credentialDefDto.name === 'string' &&
-          credentialDefDto.createdBy &&
-          typeof credentialDefDto.createdBy === 'string' &&
-          (credentialDefDto.isRevokable === false ||
-            credentialDefDto.isRevokable === true) &&
-          (credentialDefDto.isAutoIssue === false ||
-            credentialDefDto.isAutoIssue === true) &&
-          credentialDefDto.expiryHours &&
-          typeof credentialDefDto.expiryHours === 'string' &&
-          parseFloat(credentialDefDto.expiryHours) >= -1
-        )
-      ) {
-        res = {
-          statusCode: HttpStatus.BAD_REQUEST,
-          message:
-            'Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )',
-        };
-        return response.status(HttpStatus.BAD_REQUEST).send(res);
-      }
-      const credDefResponse =
-        await this.credentialDefService.checkCredDefByNameAndSchemaID(
-          credentialDefDto,
-        );
-
-      if (credDefResponse[0] === 0) {
-        const credentialDefLedgerDto: CredentialDefLedgerDto = {
-          tag: credentialDefDto.name,
-          supportRevocation: credentialDefDto.isRevokable,
-          schemaId: credentialDefDto.schemaID,
-        };
-        const resp = await this.credentialDefService.createCredDefOnLedger(
-          credentialDefLedgerDto,
-        );
-
-        if (resp?.id) {
-          const credentialDefIDRes: CredentialDefDto = credentialDefDto;
-          credentialDefIDRes.credDefId = resp.id;
-          response.status(HttpStatus.CREATED);
-          res = {
-            statusCode: HttpStatus.CREATED,
-            message: 'Credential definition created successfully',
-            data: await this.credentialDefService.createCredDef(
-              credentialDefIDRes,
-            ),
-          };
-          logger.info('Credential definition created successfully');
-        } else {
-          response.status(HttpStatus.BAD_REQUEST);
-          res = {
-            statusCode: HttpStatus.BAD_REQUEST,
-            message:
-              'Could not get credential definition details. Please try again.',
-          };
-        }
-      } else {
-        response.status(HttpStatus.CONFLICT);
-        res = {
-          statusCode: HttpStatus.CONFLICT,
-          message: 'Credential definition already exists',
-        };
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-}
diff --git a/apps/attestation-manager/src/credentialDef/entities/credentialDef-entity.ts b/apps/attestation-manager/src/credentialDef/entities/credentialDef-entity.ts
deleted file mode 100644
index 1b57a39677932a9904a80e0a5cbf31b45efe1a95..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/entities/credentialDef-entity.ts
+++ /dev/null
@@ -1,56 +0,0 @@
-import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
-import { IsBoolean, IsNotEmpty, IsString } from 'class-validator';
-
-export default class CredentialDefDto {
-  @IsString()
-  public id: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public schemaID: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public name: string;
-
-  @IsString()
-  public credDefId: string;
-
-  @IsBoolean()
-  public supportRevocation?: boolean;
-
-  @IsBoolean()
-  @ApiProperty()
-  public isRevokable: boolean;
-
-  @IsBoolean()
-  @ApiProperty()
-  public isAutoIssue: boolean;
-
-  @IsString()
-  @ApiProperty()
-  // Number of hours of Credential validity
-  public expiryHours: string;
-
-  @IsString()
-  @ApiProperty()
-  public createdBy: string;
-
-  @IsString()
-  public createdDate: Date;
-
-  @IsString()
-  public updatedBy: string;
-
-  @IsString()
-  public updatedDate: Date;
-
-  @IsString()
-  public tag?: string;
-
-  @IsString()
-  @ApiPropertyOptional()
-  public type?: string;
-}
diff --git a/apps/attestation-manager/src/credentialDef/entities/credentialDefLedger-entity.ts b/apps/attestation-manager/src/credentialDef/entities/credentialDefLedger-entity.ts
deleted file mode 100644
index 2eb6767383ef42624f3b4986604729684a6cdd65..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/entities/credentialDefLedger-entity.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { IsString, IsBoolean } from 'class-validator';
-
-export default class CredentialDefLedgerDto {
-  @IsString()
-  public schemaId: string;
-
-  @IsBoolean()
-  public supportRevocation?: boolean;
-
-  @IsString()
-  public tag?: string;
-}
diff --git a/apps/attestation-manager/src/credentialDef/entities/credentialDefReq.dto.ts b/apps/attestation-manager/src/credentialDef/entities/credentialDefReq.dto.ts
deleted file mode 100644
index 0c0aac3deafb1a9a27d95c039fe36f2400031adc..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/entities/credentialDefReq.dto.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsString, IsNotEmpty, IsBoolean } from 'class-validator';
-
-export default class CredentialDefReqDto {
-  @IsString()
-  public id: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public schemaID: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public name: string;
-
-  @IsString()
-  public credDefId: string;
-
-  @IsBoolean()
-  public supportRevocation?: boolean;
-
-  @IsBoolean()
-  @ApiProperty()
-  public isRevokable: boolean;
-
-  @IsBoolean()
-  @ApiProperty()
-  public isAutoIssue: boolean;
-
-  @IsString()
-  @ApiProperty()
-  // Number of hours of Credential validity
-  public expiryHours: string;
-
-  @IsString()
-  @ApiProperty()
-  public createdBy: string;
-
-  @IsString()
-  public createdDate: Date;
-
-  @IsString()
-  public updatedBy: string;
-
-  @IsString()
-  public updatedDate: Date;
-
-  @IsString()
-  public tag?: string;
-}
diff --git a/apps/attestation-manager/src/credentialDef/module.ts b/apps/attestation-manager/src/credentialDef/module.ts
deleted file mode 100644
index 663e839cadae8dc3625229a45c2bbb3aea322435..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/module.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { HttpModule } from '@nestjs/axios';
-import { Module } from '@nestjs/common';
-import { ClientsModule, Transport } from '@nestjs/microservices';
-
-import NatsClientService from '../client/nats.client.js';
-import RestClientService from '../client/rest.client.js';
-import { NATSServices } from '../common/constants.js';
-import config from '../config/config.js';
-import PrismaService from '../prisma/prisma.service.js';
-import SchemasService from '../schemas/services/service.js';
-
-import CredentialDefController from './controller/controller.js';
-import CredentialDefService from './services/service.js';
-
-@Module({
-  imports: [
-    HttpModule,
-    ClientsModule.register([
-      {
-        name: NATSServices.SERVICE_NAME,
-        transport: Transport.NATS,
-        options: {
-          servers: [config().nats.url as string],
-        },
-      },
-    ]),
-  ],
-  controllers: [CredentialDefController],
-  providers: [
-    CredentialDefService,
-    PrismaService,
-    NatsClientService,
-    RestClientService,
-    SchemasService,
-  ],
-})
-export default class CredentialDefModule {}
diff --git a/apps/attestation-manager/src/credentialDef/repository/credentialDef.respository.ts b/apps/attestation-manager/src/credentialDef/repository/credentialDef.respository.ts
deleted file mode 100644
index 2a0b1ae9947885ff29db1666d0b9d4e63136a53f..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/repository/credentialDef.respository.ts
+++ /dev/null
@@ -1,62 +0,0 @@
-import type { Prisma } from '@prisma/client';
-
-import { Injectable } from '@nestjs/common';
-
-import PrismaService from '../../prisma/prisma.service.js';
-
-@Injectable()
-export default class CredentialDefRepository {
-  public constructor(private readonly prismaService: PrismaService) {}
-
-  public async createCredDef(data: Prisma.CredentialDefCreateInput) {
-    const credDef = await this.prismaService.credentialDef.create({
-      data,
-    });
-
-    await this.prismaService.schema.update({
-      where: {
-        schemaID: data.schemaID,
-      },
-      data: {
-        credential_defs: {
-          connect: {
-            id: credDef.id,
-          },
-        },
-      },
-    });
-
-    return credDef;
-  }
-
-  public async findCredentialDef(params: {
-    skip?: number;
-    take?: number;
-    cursor?: Prisma.CredentialDefWhereUniqueInput;
-    where?: Prisma.CredentialDefWhereInput;
-    orderBy?: Prisma.CredentialDefOrderByWithRelationInput;
-  }) {
-    const { skip, take, cursor, where, orderBy } = params;
-    return this.prismaService.$transaction([
-      this.prismaService.credentialDef.count({
-        where,
-      }),
-      this.prismaService.credentialDef.findMany({
-        skip,
-        take,
-        cursor,
-        where,
-        orderBy,
-      }),
-    ]);
-  }
-
-  public async findUniqueCredentialDef(params: {
-    where: Prisma.CredentialDefWhereUniqueInput;
-  }) {
-    const { where } = params;
-    return this.prismaService.credentialDef.findUnique({
-      where,
-    });
-  }
-}
diff --git a/apps/attestation-manager/src/credentialDef/services/service.ts b/apps/attestation-manager/src/credentialDef/services/service.ts
deleted file mode 100644
index 1de9a747e071431534e5e358ffecfcbc27126693..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/services/service.ts
+++ /dev/null
@@ -1,143 +0,0 @@
-import type SchemaDto from '../../schemas/entities/schema-entity.js';
-import type CredentialDefDto from '../entities/credentialDef-entity.js';
-import type CredentialDefLedgerDto from '../entities/credentialDefLedger-entity.js';
-import type { Prisma } from '@prisma/client';
-
-import { Injectable } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-
-import RestClientService from '../../client/rest.client.js';
-import CredentialTypeRepository from '../../issue-credential/repository/credentialType.repository.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import SchemasService from '../../schemas/services/service.js';
-import logger from '../../utils/logger.js';
-import pagination from '../../utils/pagination.js';
-import CredentialDefRepository from '../repository/credentialDef.respository.js';
-
-@Injectable()
-export default class CredentialDefService {
-  private credentialDefRepository: CredentialDefRepository;
-
-  private credentialTypeRepository: CredentialTypeRepository;
-
-  public constructor(
-    private readonly prismaService: PrismaService,
-    private readonly restClient: RestClientService,
-    private readonly configService: ConfigService,
-    private readonly schemaService: SchemasService,
-  ) {
-    this.credentialDefRepository = new CredentialDefRepository(
-      this.prismaService,
-    );
-
-    this.credentialTypeRepository = new CredentialTypeRepository(
-      this.prismaService,
-    );
-  }
-
-  public async createCredDef(credentialDefDtoPar: CredentialDefDto) {
-    const credentialDefDto: CredentialDefDto = credentialDefDtoPar;
-    const schema = await this.schemaService.findBySchemaId(
-      credentialDefDto.schemaID,
-    );
-    logger.info(`is schema already exists ${schema}`);
-    if (!schema) {
-      const schemaLedger =
-        await this.schemaService.getSchemaAndAttributesBySchemaIDFromLedger(
-          credentialDefDto.schemaID,
-        );
-      const schemaObj: SchemaDto = {
-        schemaID: credentialDefDto.schemaID,
-        name: schemaLedger.name,
-        version: schemaLedger.version,
-        attributes: schemaLedger.attrNames,
-        createdBy: '',
-        id: '',
-        type: '',
-        createdDate: new Date(),
-        updatedDate: new Date(),
-      };
-      const createschema = await this.schemaService.createSchemas(schemaObj);
-      logger.info(`Schema created in Database ${JSON.stringify(createschema)}`);
-    }
-
-    if (
-      credentialDefDto.type &&
-      typeof credentialDefDto.type === 'string' &&
-      credentialDefDto.type.trim().length > 0
-    ) {
-      await this.credentialTypeRepository.createOrUpdateCredentialsType({
-        schemaId: credentialDefDto.schemaID,
-        type: credentialDefDto.type.trim(),
-      });
-    }
-    delete credentialDefDto.type;
-    return this.credentialDefRepository.createCredDef(credentialDefDto);
-  }
-
-  public async findCredentialDef(
-    pageSize: number,
-    page: number,
-    getSchemaID: string,
-  ) {
-    let query: {
-      skip?: number;
-      take?: number;
-      cursor?: Prisma.CredentialDefWhereUniqueInput;
-      where?: Prisma.CredentialDefWhereInput;
-      orderBy?: Prisma.CredentialDefOrderByWithRelationInput;
-    } = {};
-    if (getSchemaID) {
-      query.where = {
-        schemaID: getSchemaID,
-      };
-    }
-    query = { ...query, ...pagination(pageSize, page) };
-    return this.credentialDefRepository.findCredentialDef(query);
-  }
-
-  public async findCredentialDefBySchemaIdAndCredDefId(data: {
-    schemaID: string;
-    credDefId: string;
-  }) {
-    return this.credentialDefRepository.findCredentialDef({
-      where: data,
-    });
-  }
-
-  public async findCredentialDefBySchemaIdDesc(data: { schemaID: string }) {
-    return this.credentialDefRepository.findCredentialDef({
-      where: data,
-      orderBy: {
-        createdDate: 'desc',
-      },
-    });
-  }
-
-  public async findCredentialDefById(id: string) {
-    return this.credentialDefRepository.findCredentialDef({
-      where: { credDefId: id },
-    });
-  }
-
-  public async checkCredDefByNameAndSchemaID(createSchema: CredentialDefDto) {
-    return this.credentialDefRepository.findCredentialDef({
-      where: {
-        schemaID: {
-          equals: createSchema.schemaID, // Default value: default
-        },
-        name: {
-          equals: createSchema.name, // Default mode
-        },
-      },
-    });
-  }
-
-  public async createCredDefOnLedger(credentialDefDto: CredentialDefLedgerDto) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    return this.restClient.post(
-      `${agentUrl}/credential-definitions/`,
-      credentialDefDto,
-    );
-  }
-}
diff --git a/apps/attestation-manager/src/credentialDef/tests/__mocks__/service.ts b/apps/attestation-manager/src/credentialDef/tests/__mocks__/service.ts
deleted file mode 100644
index ad4a0298055ccf4650aa8f1beec112a543b78076..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/tests/__mocks__/service.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import credDefStub from '../stubs/credDef.stub.js';
-
-const CredentialDefServiceMock = jest.fn().mockReturnValue({
-  createCredDef: jest.fn().mockReturnValue(credDefStub()),
-  findCredentialDef: jest.fn().mockReturnValue([1, [credDefStub()]]),
-  findCredentialDefById: jest.fn().mockReturnValue([1, [credDefStub()]]),
-  findCredentialDefBySchemaIdDesc: jest
-    .fn()
-    .mockReturnValue([1, [credDefStub()]]),
-  checkCredDefByNameAndSchemaID: jest
-    .fn()
-    .mockImplementation((cd) =>
-      cd.id === credDefStub().id ? [0, []] : [1, [credDefStub()]],
-    ),
-  getAgentByParticipantId: jest.fn().mockReturnValue([1, [credDefStub()]]),
-  createCredDefOnLedger: jest.fn().mockReturnValue({ id: 'new-creddef-id' }),
-});
-
-export default CredentialDefServiceMock;
diff --git a/apps/attestation-manager/src/credentialDef/tests/controller.spec.ts b/apps/attestation-manager/src/credentialDef/tests/controller.spec.ts
deleted file mode 100644
index 0615c1ceaf2c3d061db98d4ed0d82c523b24f50d..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/tests/controller.spec.ts
+++ /dev/null
@@ -1,142 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-import type { Response } from 'express';
-
-import { HttpStatus } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-import { createResponse } from 'node-mocks-http';
-
-import CredentialDefController from '../controller/controller.js';
-import CredentialDefService from '../services/service.js';
-
-import CredentialDefServiceMock from './__mocks__/service.js';
-import credDefStub from './stubs/credDef.stub.js';
-
-describe('CredentialDefController', () => {
-  let credentialDefController: CredentialDefController;
-  let spyService: CredentialDefService;
-
-  beforeEach(async () => {
-    const CredentialDefServiceProvider = {
-      provide: CredentialDefService,
-      useFactory: CredentialDefServiceMock,
-    };
-
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [],
-      controllers: [CredentialDefController],
-      providers: [CredentialDefServiceProvider, ConfigService],
-    }).compile();
-
-    credentialDefController = module.get<CredentialDefController>(
-      CredentialDefController,
-    );
-    spyService = module.get<CredentialDefService>(CredentialDefService);
-    jest.clearAllMocks();
-  });
-
-  it('should be defined', () => {
-    expect(credentialDefController).toBeDefined();
-  });
-
-  describe('findCredentialDef()', () => {
-    let query: {
-      pageSize: string;
-      page: string;
-      schemaID: string;
-    };
-    let credDefResponse: Response<string, Record<string, unknown>>;
-
-    beforeEach(async () => {
-      query = {
-        pageSize: '10',
-        page: '1',
-        schemaID: credDefStub().schemaID,
-      };
-
-      const response = createResponse();
-      credDefResponse = await credentialDefController.findCredentialDef(
-        query,
-        response,
-      );
-    });
-
-    it('should call findCredentialDef() from service', async () => {
-      expect(spyService.findCredentialDef).toHaveBeenCalled();
-    });
-
-    it('should retrieve CredDef for a correct ID', async () => {
-      expect(
-        spyService.findCredentialDef(
-          query.pageSize ? parseInt(query.pageSize, 10) : 10,
-          query.page ? parseInt(query.page, 10) : 0,
-          query.schemaID ? query.schemaID : '',
-        ),
-      ).toEqual([1, [credDefStub()]]);
-    });
-
-    it(`should retrieve HTTP status success(${HttpStatus.OK})`, async () => {
-      expect(credDefResponse?.statusCode).toEqual(HttpStatus.OK);
-    });
-  });
-
-  describe('findCredentialDefById()', () => {
-    let credDefID: string;
-    let credDef: Response<string, Record<string, unknown>>;
-
-    beforeEach(async () => {
-      credDefID = credDefStub().id;
-
-      const response = createResponse();
-      credDef = await credentialDefController.findCredentialDefById(
-        credDefID,
-        response,
-      );
-    });
-
-    it('should call findCredentialDefById() for a CredDef', async () => {
-      expect(spyService.findCredentialDefById).toHaveBeenCalled();
-    });
-
-    it('should retrieve CredDef for a correct ID', async () => {
-      expect(spyService.findCredentialDefById(credDefID)).toEqual([
-        1,
-        [credDefStub()],
-      ]);
-    });
-
-    it(`should retrieve HTTP status success(${HttpStatus.OK})`, async () => {
-      expect(credDef?.statusCode).toEqual(HttpStatus.OK);
-    });
-  });
-
-  describe('createCredDef()', () => {
-    let credDef: Response<string, Record<string, unknown>>;
-
-    beforeEach(async () => {
-      const response = createResponse();
-      credDef = await credentialDefController.createCredentialDef(
-        credDefStub(),
-        response,
-      );
-    });
-
-    it('should call checkCredDefByNameAndSchemaID() from service', async () => {
-      expect(spyService.checkCredDefByNameAndSchemaID).toHaveBeenCalled();
-    });
-
-    it('should not retrieve CredDef for a given credDef', async () => {
-      expect(spyService.checkCredDefByNameAndSchemaID(credDefStub())).toContain(
-        0,
-      );
-    });
-
-    it('should call createCredDefOnLedger() from service', async () => {
-      expect(spyService.createCredDefOnLedger).toHaveBeenCalled();
-    });
-
-    it(`should retrieve HTTP status created(${HttpStatus.CREATED})`, async () => {
-      expect(credDef?.statusCode).toEqual(HttpStatus.CREATED);
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/credentialDef/tests/module.spec.ts b/apps/attestation-manager/src/credentialDef/tests/module.spec.ts
deleted file mode 100644
index 12da65f544598b2434978eef514edadbcb417d5b..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/tests/module.spec.ts
+++ /dev/null
@@ -1,58 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-
-import { HttpModule } from '@nestjs/axios';
-import { Test } from '@nestjs/testing';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import NatsClientServiceMock from '../../client/tests/__mocks__/nats.client.js';
-import RestClientServiceMock from '../../client/tests/__mocks__/rest.client.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import PrismaServiceMock from '../../prisma/tests/__mocks__/prisma.service.js';
-import CredentialDefModule from '../module.js';
-import CredentialDefService from '../services/service.js';
-
-import CredentialDefServiceMock from './__mocks__/service.js';
-
-describe('CredentialDefModule', () => {
-  let credentialDefModule: CredentialDefModule;
-
-  const CredentialDefServiceProvider = {
-    provide: CredentialDefService,
-    useFactory: CredentialDefServiceMock,
-  };
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  const NatsClientServiceProvider = {
-    provide: NatsClientService,
-    useFactory: NatsClientServiceMock,
-  };
-
-  const RestClientServiceProvider = {
-    provide: RestClientService,
-    useFactory: RestClientServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [
-        CredentialDefModule,
-        CredentialDefServiceProvider,
-        PrismaServiceProvider,
-        NatsClientServiceProvider,
-        RestClientServiceProvider,
-      ],
-    }).compile();
-
-    credentialDefModule = module.get<CredentialDefModule>(CredentialDefModule);
-  });
-
-  it('should be defined', () => {
-    expect(credentialDefModule).toBeDefined();
-  });
-});
diff --git a/apps/attestation-manager/src/credentialDef/tests/service.spec.ts b/apps/attestation-manager/src/credentialDef/tests/service.spec.ts
deleted file mode 100644
index eeeb9ac9628ae58db16c7d6949ec4fda4502d5d4..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/tests/service.spec.ts
+++ /dev/null
@@ -1,183 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-import type { CredentialDef } from '@prisma/client';
-
-import { HttpModule } from '@nestjs/axios';
-import { ConfigService } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import NatsClientServiceMock from '../../client/tests/__mocks__/nats.client.js';
-import RestClientServiceMock from '../../client/tests/__mocks__/rest.client.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import PrismaServiceMock from '../../prisma/tests/__mocks__/prisma.service.js';
-import SchemasService from '../../schemas/services/service.js';
-import SchemasServiceMock from '../../schemas/tests/__mocks__/service.js';
-import CredentialDefService from '../services/service.js';
-
-import credDefStub from './stubs/credDef.stub.js';
-
-describe('CredentialDefService', () => {
-  let credDefService: CredentialDefService;
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  const NatsClientServiceProvider = {
-    provide: NatsClientService,
-    useFactory: NatsClientServiceMock,
-  };
-
-  const RestClientServiceProvider = {
-    provide: RestClientService,
-    useFactory: RestClientServiceMock,
-  };
-
-  const SchemasServiceProvider = {
-    provide: SchemasService,
-    useFactory: SchemasServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [
-        CredentialDefService,
-        PrismaServiceProvider,
-        NatsClientServiceProvider,
-        RestClientServiceProvider,
-        ConfigService,
-        SchemasServiceProvider,
-      ],
-    }).compile();
-
-    credDefService = module.get<CredentialDefService>(CredentialDefService);
-  });
-
-  it('should be defined', () => {
-    expect(credDefService).toBeDefined();
-  });
-
-  describe('createCredDef()', () => {
-    let credDefResponse: CredentialDef;
-
-    beforeEach(async () => {
-      credDefResponse = await credDefService.createCredDef(credDefStub());
-    });
-
-    it('should call create() from PrismaService', async () => {
-      expect(PrismaServiceMock().credentialDef.create).toHaveBeenCalled();
-    });
-
-    it('should retrieve credDef by participantId', async () => {
-      expect(credDefResponse).toEqual([credDefStub()]);
-    });
-  });
-
-  describe('findCredentialDef()', () => {
-    let credDefResponse: Array<number | CredentialDef[]>;
-    let id: string;
-
-    beforeEach(async () => {
-      const pageSize = 10;
-      const page = 10;
-      id = credDefStub().credDefId;
-
-      credDefResponse = await credDefService.findCredentialDef(
-        pageSize,
-        page,
-        id,
-      );
-    });
-
-    it('should call findMany() from PrismaService.credentialDef', async () => {
-      expect(PrismaServiceMock().credentialDef.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.credentialDef', async () => {
-      expect(PrismaServiceMock().credentialDef.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema by ID', async () => {
-      expect(credDefResponse).toEqual([1, [credDefStub()]]);
-    });
-  });
-
-  describe('findCredentialDefById()', () => {
-    let credDefResponse: Array<number | CredentialDef[]>;
-    let id: string;
-
-    beforeEach(async () => {
-      id = credDefStub().credDefId;
-
-      credDefResponse = await credDefService.findCredentialDefById(id);
-    });
-
-    it('should call findMany() from PrismaService.credentialDef', async () => {
-      expect(PrismaServiceMock().credentialDef.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.credentialDef', async () => {
-      expect(PrismaServiceMock().credentialDef.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema by ID', async () => {
-      expect(credDefResponse).toEqual([1, [credDefStub()]]);
-    });
-  });
-
-  describe('checkCredDefByNameAndSchemaID()', () => {
-    let credDefResponse: Array<number | CredentialDef[]>;
-
-    beforeEach(async () => {
-      credDefResponse =
-        await credDefService.checkCredDefByNameAndSchemaID(credDefStub());
-    });
-
-    it('should call findMany() from PrismaService.credentialDef', async () => {
-      expect(PrismaServiceMock().credentialDef.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.credentialDef', async () => {
-      expect(PrismaServiceMock().credentialDef.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve credDef by Name and Schema ID', async () => {
-      expect(credDefResponse).toEqual([1, [credDefStub()]]);
-    });
-  });
-
-  describe('createCredDefOnLedger()', () => {
-    let credDefResponse: Array<number | CredentialDef[]>;
-
-    beforeEach(async () => {
-      credDefResponse = await credDefService.createCredDefOnLedger({
-        schemaId: credDefStub().schemaID,
-        supportRevocation: credDefStub().supportRevocation,
-        tag: credDefStub().tag,
-      });
-    });
-
-    it('should call post() from restClient', async () => {
-      expect(RestClientServiceMock().post).toHaveBeenCalled();
-    });
-
-    it('should get a response from AFJ', async () => {
-      expect(credDefResponse).not.toBe(null);
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/credentialDef/tests/stubs/credDef.stub.ts b/apps/attestation-manager/src/credentialDef/tests/stubs/credDef.stub.ts
deleted file mode 100644
index 609a4405ebf00c29f9c020fc77ea751b604a85bd..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/credentialDef/tests/stubs/credDef.stub.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import type CredentialDefDto from '../../entities/credentialDef-entity.js';
-
-const credDefStub = (): CredentialDefDto =>
-  ({
-    id: 'cred-def-stub-id',
-    schemaID: 'cred-def-stub-schema-id',
-    name: 'cred-def-stub-name',
-    credDefId: 'cred-def-stub-cred-def-id',
-    supportRevocation: true,
-    isRevokable: true,
-    isAutoIssue: true,
-    expiryHours: '48',
-    createdBy: 'cred-def-stub-created-by-id',
-    createdDate: new Date(2022),
-    updatedBy: 'cred-def-stub-updated-by-id',
-    updatedDate: new Date(2022),
-    tag: 'cred-def-stub-tag',
-  }) as CredentialDefDto;
-
-export default credDefStub;
diff --git a/apps/attestation-manager/src/health/health.controller.ts b/apps/attestation-manager/src/health/health.controller.ts
deleted file mode 100644
index 95f4367a4086a8e896686245009f5a87e548a337..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/health/health.controller.ts
+++ /dev/null
@@ -1,42 +0,0 @@
-import type { ResponseType } from '../common/response.js';
-
-import { Controller, Get, HttpStatus, Version } from '@nestjs/common';
-import { ApiOperation, ApiResponse } from '@nestjs/swagger';
-
-@Controller('health')
-export default class HealthController {
-  public res: ResponseType;
-
-  @Version(['1'])
-  @Get()
-  @ApiOperation({
-    summary: 'Health check',
-    description:
-      'This call provides the capability to check the service is working and up. The call returns 200 Status Code and current server time in json body',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Service is up and running.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Service is up and running.': {
-            value: {
-              statusCode: 200,
-              message:
-                'Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)',
-            },
-          },
-        },
-      },
-    },
-  })
-  public getHealth() {
-    this.res = {
-      statusCode: HttpStatus.OK,
-      message: `${new Date()}`,
-    };
-    return this.res;
-  }
-}
diff --git a/apps/attestation-manager/src/health/tests/health.controller.spec.ts b/apps/attestation-manager/src/health/tests/health.controller.spec.ts
deleted file mode 100644
index ead02b530399c1debd0892f2773d2c94fe4601d4..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/health/tests/health.controller.spec.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-import type { TestingModule } from '@nestjs/testing';
-
-import { HttpStatus } from '@nestjs/common';
-import { Test } from '@nestjs/testing';
-
-import HealthController from '../health.controller.js';
-
-describe('HealthController', () => {
-  let healthController: HealthController;
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      controllers: [HealthController],
-    }).compile();
-
-    healthController = module.get<HealthController>(HealthController);
-    jest.clearAllMocks();
-  });
-
-  it('should be defined', () => {
-    expect(healthController).toBeDefined();
-  });
-
-  describe('getHealth()', () => {
-    let health: ResponseType;
-
-    beforeEach(async () => {
-      health = healthController.getHealth();
-    });
-
-    it(`should retrieve HTTP status created(${HttpStatus.OK})`, async () => {
-      expect(health.statusCode).toEqual(HttpStatus.OK);
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/issue-credential/controller/controller.ts b/apps/attestation-manager/src/issue-credential/controller/controller.ts
deleted file mode 100644
index a7830f8c95a9f0b2350c507263ce8fc4d9b5c99c..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/controller/controller.ts
+++ /dev/null
@@ -1,1449 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-import type CredentialDto from '../entities/credential.entity.js';
-import type CredentialStateDto from '../entities/credential.state.entity.js';
-// eslint-disable-next-line @typescript-eslint/consistent-type-imports
-import type { Response } from 'express';
-
-import {
-  BadRequestException,
-  Body,
-  Controller,
-  Delete,
-  Get,
-  HttpException,
-  HttpStatus,
-  InternalServerErrorException,
-  NotFoundException,
-  Param,
-  Patch,
-  Post,
-  PreconditionFailedException,
-  Query,
-  Res,
-  Version,
-} from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { EventPattern, MessagePattern } from '@nestjs/microservices';
-import {
-  ApiBody,
-  ApiOperation,
-  ApiQuery,
-  ApiResponse,
-  ApiTags,
-} from '@nestjs/swagger';
-import { Prisma } from '@prisma/client';
-
-import {
-  Abstraction,
-  NATSServices,
-  PrismaErrorCode,
-} from '../../common/constants.js';
-import CredentialDefService from '../../credentialDef/services/service.js';
-import SchemasService from '../../schemas/services/service.js';
-import UserInfoService from '../../userInfo/services/service.js';
-import logger from '../../utils/logger.js';
-import CredentialTypeDto from '../entities/credentialType.entity.js';
-import OfferCredentialDto from '../entities/entity.js';
-import GetIssueCredentialsDto from '../entities/get-issue-credentials.dto.js';
-import GetCredentialParams from '../entities/get.credential.params.js';
-import GetCredentialQuery from '../entities/get.credential.query.js';
-import ProposeCredentialDto from '../entities/propose-credential.dto.js';
-import UpdateSchemaIdByTypeDto from '../entities/updatecredDefIdByType.entity.js';
-import AttestationService from '../services/service.js';
-
-@ApiTags('Credentials')
-@Controller()
-export default class AttestationController {
-  public name: string;
-
-  public constructor(
-    private readonly attestationService: AttestationService,
-    private readonly credentialDefService: CredentialDefService,
-    private readonly userInfoService: UserInfoService,
-    private readonly schemaService: SchemasService,
-    private configService: ConfigService,
-  ) {}
-
-  @Version(['1'])
-  @ApiBody({ type: OfferCredentialDto })
-  @Post('create-offer-credential')
-  @ApiOperation({
-    summary: 'Send credential offer to a connection',
-    description:
-      'This call provides the capability to offer credentials to a connection. You need to provide information about credential definition, connection and attributes which will be send to connection. Initial state of this is offer-sent (workflow is here https://github.com/hyperledger/aries-rfcs/tree/main/features/0036-issue-credential). This call returns information about this credential offer. From user perspective this call means that as organization (e.g. Faber university) I want to start issuing crendentials to student (Alice, holder)',
-  })
-  @ApiResponse({
-    status: HttpStatus.CREATED,
-    description: 'Credential created successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential created successfully': {
-            value: {
-              statusCode: 201,
-              message: 'Credential created successfully',
-              data: {
-                _tags: {},
-                metadata: {
-                  '_internal/indyCredential': {
-                    credentialDefinitionId: '7KuDTpQh3GJ7Gp6',
-                    schemaId: '7KuDTpQash2',
-                  },
-                },
-                id: '61c5df9c',
-                createdAt: '1970-01-01T12:07:57.388Z',
-                state: 'offer-sent',
-                connectionId: '12cd39de',
-                threadId: '195e8ae3',
-                offerMessage: {
-                  '@type':
-                    'https://didcomm.org/issue-credential/1.0/offer-credential',
-                  '@id': '195e8da',
-                  comment: 'asd',
-                  credential_preview: {
-                    '@type':
-                      'https://didcomm.org/issue-credential/1.0/credential-preview',
-                    attributes: [
-                      {
-                        name: 'firstName',
-                        value: 'Lorem',
-                      },
-                      {
-                        name: 'email',
-                        value: 'lorem@example.com',
-                      },
-                      {
-                        name: 'au',
-                        value: 'ipsum',
-                      },
-                      {
-                        name: 'expirationDate',
-                        value:
-                          'Wed Mar 01 2084 11:07:57 GMT+0000 (Coordinated Universal Time)',
-                      },
-                    ],
-                  },
-                  'offers~attach': [
-                    {
-                      '@id': 'libindy-cred-offer-0',
-                      'mime-type': 'application/json',
-                      data: {
-                        base64: 'eyJzY2hlbWFf',
-                      },
-                    },
-                  ],
-                },
-                credentialAttributes: [
-                  {
-                    name: 'attribute1',
-                    value: 'testValue1',
-                  },
-                  {
-                    name: 'attribute2',
-                    value: 'testValue2',
-                  },
-                  {
-                    name: 'attributeN',
-                    value: 'testValueN',
-                  },
-                  {
-                    name: 'expirationDate',
-                    value:
-                      'Wed Mar 01 2023 11:07:57 GMT+0000 (Coordinated Universal Time)',
-                  },
-                ],
-                autoAcceptCredential: 'always',
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description:
-      'offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)':
-            {
-              value: {
-                statusCode: 400,
-                message:
-                  'offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)',
-              },
-            },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description: 'Connection is not trusted',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Connection is not trusted': {
-            value: {
-              statusCode: 400,
-              message: 'Connection is not trusted',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async createOfferCredential(
-    @Body() connectionCreate: OfferCredentialDto,
-    @Res() response: Response,
-  ) {
-    try {
-      let res: ResponseType;
-
-      if (
-        !(
-          connectionCreate.connectionId &&
-          typeof connectionCreate.connectionId === 'string' &&
-          connectionCreate.credentialDefinitionId &&
-          typeof connectionCreate.credentialDefinitionId === 'string' &&
-          Array.isArray(connectionCreate.attributes) &&
-          connectionCreate.attributes.every(
-            (i) =>
-              typeof i.name === 'string' &&
-              i.name.trim().length > 0 &&
-              typeof i.value === 'string' &&
-              i.value.trim().length > 0,
-          ) &&
-          connectionCreate.autoAcceptCredential &&
-          typeof connectionCreate.autoAcceptCredential === 'string'
-        )
-      ) {
-        res = {
-          statusCode: HttpStatus.BAD_REQUEST,
-          message:
-            'Offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)',
-        };
-        return response.status(HttpStatus.BAD_REQUEST).send(res);
-      }
-      const OfferCredentialTemp: OfferCredentialDto = {
-        connectionId: connectionCreate.connectionId,
-        credentialDefinitionId: connectionCreate.credentialDefinitionId,
-        attributes: connectionCreate.attributes,
-        autoAcceptCredential: connectionCreate.autoAcceptCredential,
-        comment: connectionCreate.comment,
-      };
-
-      const offerCredential =
-        await this.attestationService.createOfferCredential(
-          OfferCredentialTemp,
-        );
-
-      if (offerCredential) {
-        res = {
-          statusCode: HttpStatus.CREATED,
-          message: 'Credential created successfully',
-          data: offerCredential,
-        };
-      } else {
-        response.status(HttpStatus.BAD_REQUEST);
-        res = {
-          statusCode: HttpStatus.BAD_REQUEST,
-          message: 'Connection is not trusted',
-        };
-      }
-
-      return response.send(res);
-    } catch (error) {
-      throw new InternalServerErrorException(error);
-    }
-  }
-
-  @Version(['1'])
-  @ApiBody({ type: ProposeCredentialDto })
-  @Post('create-propose-credential')
-  @ApiOperation({
-    summary: 'Send credential proposal to a connection',
-    description:
-      'This call provides the capability to send propose crendential request to a connection. You need to provide information about credential definition, connection and attributes which you want to use for creating credentials. Initial state of this is proposal-sent (workflow is here https://github.com/hyperledger/aries-rfcs/tree/main/features/0036-issue-credential). This call returns information about this credential proposal. From user perspective this call means that as user (e.g. student) I want to ask organization (e.g. Faber university) to initiate issuing credentials for me using provided data',
-  })
-  @ApiResponse({
-    status: HttpStatus.CREATED,
-    description: 'Credential proposed successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential proposed successfully': {
-            value: {
-              statusCode: 201,
-              message: 'Credential proposed successfully',
-              data: {
-                _tags: {},
-                metadata: {
-                  '_internal/indyCredential': {
-                    credentialDefinitionId:
-                      '7KuDTpQh3GJ7Gp6kErpWvM:3:CL:39399:test-13-03',
-                  },
-                },
-                id: 'c566907d',
-                createdAt: '1970-01-01T00:00:09.383Z',
-                state: 'proposal-sent',
-                connectionId: '12cd39de',
-                threadId: 'e271b1a0',
-                proposalMessage: {
-                  '@type':
-                    'https://didcomm.org/issue-credential/1.0/propose-credential',
-                  '@id': 'e271b1a0',
-                  comment: 'asd',
-                  credential_proposal: {
-                    '@type':
-                      'https://didcomm.org/issue-credential/1.0/credential-preview',
-                    attributes: [
-                      {
-                        name: 'firstName',
-                        value: 'TESTING',
-                      },
-                      {
-                        name: 'email',
-                        value: 'asd@asd.asd',
-                      },
-                      {
-                        name: 'au',
-                        value: 'level1',
-                      },
-                    ],
-                  },
-                  cred_def_id: '1234abcd',
-                },
-                credentialAttributes: [
-                  {
-                    name: 'firstName',
-                    value: 'TESTING',
-                  },
-                  {
-                    name: 'email',
-                    value: 'asd@asd.asd',
-                  },
-                  {
-                    name: 'au',
-                    value: 'level1',
-                  },
-                ],
-                autoAcceptCredential: 'never',
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description: 'Connection is not trusted',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Connection is not trusted': {
-            value: {
-              statusCode: 400,
-              message: 'Connection is not trusted',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async createProposeCredential(
-    @Body() connectionCreate: ProposeCredentialDto,
-    @Res() response: Response,
-  ) {
-    try {
-      let res: ResponseType;
-      const proposeCredential =
-        await this.attestationService.proposeCredential(connectionCreate);
-
-      if (proposeCredential) {
-        res = {
-          statusCode: HttpStatus.CREATED,
-          message: 'Credential proposed successfully',
-          data: proposeCredential,
-        };
-      } else {
-        response.status(HttpStatus.BAD_REQUEST);
-        res = {
-          statusCode: HttpStatus.BAD_REQUEST,
-          message: 'Connection is not trusted',
-        };
-      }
-
-      return response.send(res);
-    } catch (error) {
-      throw new InternalServerErrorException(error);
-    }
-  }
-
-  @Version(['1'])
-  @Post('accept-request/:credentialId')
-  @ApiOperation({
-    summary: 'Accept credential request by credential id',
-    description:
-      'Accept a credential request as issuer (by sending a credential message) to the connection associated with the credential record.',
-  })
-  public async acceptOfferCredential(
-    @Param() params: { credentialId: string },
-  ) {
-    try {
-      const res: ResponseType = {
-        statusCode: HttpStatus.ACCEPTED,
-        message: 'Accepted Credential Offer',
-        data: await this.attestationService.acceptRequestCredential(
-          params.credentialId,
-        ),
-      };
-      return res;
-    } catch (error) {
-      throw new InternalServerErrorException(error);
-    }
-  }
-
-  @Version(['1'])
-  @Post('accept-proposal/:credentialId')
-  @ApiOperation({
-    summary: 'Accept credential proposal by credential id',
-    description:
-      'Accept a credential proposal as issuer (by sending a credential offer message) to the connection associated with the credential record.',
-  })
-  public async acceptProposeCredential(
-    @Param() params: { credentialId: string },
-  ) {
-    try {
-      if (!params.credentialId) {
-        throw new BadRequestException('Invalid credential ID');
-      }
-
-      const res: ResponseType = {
-        statusCode: HttpStatus.ACCEPTED,
-        message: 'Accepted Credential proposal',
-        data: await this.attestationService.acceptProposeCredential(
-          params.credentialId,
-        ),
-      };
-      return res;
-    } catch (error: unknown) {
-      throw new HttpException(
-        Reflect.get(error || {}, 'message') || 'Internal server error',
-        Reflect.get(error || {}, 'status') || 500,
-      );
-    }
-  }
-
-  @Version(['1'])
-  @Post('accept-offer/:credentialId')
-  @ApiOperation({
-    summary: 'Accept credential offer by credential id',
-    description:
-      'Accept a credential offer as holder (by sending a credential request message) to the connection associated with the credential record.',
-  })
-  public async acceptCredentialOffer(
-    @Param() params: { credentialId: string },
-  ) {
-    try {
-      if (!params.credentialId) {
-        throw new BadRequestException('Invalid credential ID');
-      }
-
-      const res: ResponseType = {
-        statusCode: HttpStatus.ACCEPTED,
-        message: 'Accepted Credential offer',
-        data: await this.attestationService.acceptCredentialOffer(
-          params.credentialId,
-        ),
-      };
-      return res;
-    } catch (error: unknown) {
-      throw new HttpException(
-        Reflect.get(error || {}, 'message') || 'Internal server error',
-        Reflect.get(error || {}, 'status') || 500,
-      );
-    }
-  }
-
-  @Version(['1'])
-  @Post('accept-credential/:credentialId')
-  @ApiOperation({
-    summary: 'Accept credentials by credential id',
-    description:
-      'Accept a credential as holder (by sending a credential acknowledgement message) to the connection associated with the credential record.',
-  })
-  public async acceptCredential(@Param() params: { credentialId: string }) {
-    try {
-      if (!params.credentialId) {
-        throw new BadRequestException('Invalid credential ID');
-      }
-
-      const res: ResponseType = {
-        statusCode: HttpStatus.ACCEPTED,
-        message: 'Accepted Credential offer',
-        data: await this.attestationService.acceptCredential(
-          params.credentialId,
-        ),
-      };
-      return res;
-    } catch (error: unknown) {
-      throw new HttpException(
-        Reflect.get(error || {}, 'message') || 'Internal server error',
-        Reflect.get(error || {}, 'status') || 500,
-      );
-    }
-  }
-
-  // @Version(['1'])
-  // @Post('credentials')
-  @EventPattern({
-    endpoint: `${Abstraction.NATS_ENDPOINT}/${Abstraction.CREDENTIAL_STATE_CHANGED}`,
-  })
-  public async webHookCredentials(body: {
-    credentialRecord: CredentialStateDto;
-  }) {
-    const credentialsCreate = body.credentialRecord;
-    logger.info(
-      `credentials webhook call data ${JSON.stringify(credentialsCreate)}`,
-    );
-    const credentialObj: CredentialDto = {
-      credentialId: credentialsCreate.id,
-      state: credentialsCreate.state,
-      connectionId: credentialsCreate.connectionId,
-      credDefId:
-        credentialsCreate.metadata['_internal/indyCredential']
-          .credentialDefinitionId,
-      schemaId: credentialsCreate.metadata['_internal/indyCredential'].schemaId,
-      threadId: credentialsCreate.threadId,
-    };
-    let res: ResponseType;
-
-    if (
-      credentialsCreate.state === AttestationService.status.OFFER_SENT ||
-      credentialsCreate.state === AttestationService.status.PROPOSAL_SENT ||
-      credentialsCreate.state === AttestationService.status.OFFER_RECEIVED
-    ) {
-      res = {
-        statusCode: HttpStatus.CREATED,
-        message: 'Credentials Offered',
-        data: await this.attestationService.createCredential(credentialObj),
-      };
-    } else {
-      const result: CredentialDto =
-        await this.attestationService.updateCredential(credentialObj);
-
-      if (
-        credentialsCreate.state === AttestationService.status.REQUEST_RECEIVED
-      ) {
-        res = {
-          statusCode: HttpStatus.ACCEPTED,
-          message: 'Credentials request auto accepted',
-          data: await this.attestationService.acceptRequestCredential(
-            result.credentialId,
-          ),
-        };
-        return res;
-      }
-      const credentialsType =
-        await this.attestationService.getPrincipalMemberShipCredentials({
-          type: AttestationService.principalMemberCredential,
-        });
-      if (
-        credentialsType?.schemaId === credentialObj.schemaId &&
-        credentialsCreate.state === AttestationService.status.DONE
-      ) {
-        await this.attestationService.connectionTrusted(
-          credentialObj.connectionId,
-        );
-      }
-      res = {
-        statusCode: HttpStatus.OK,
-        message: 'Credentials status Updated',
-        data: result,
-      };
-    }
-
-    return res;
-  }
-
-  // TODO: example values
-  @Version(['1'])
-  @Get('credential-info/:id')
-  @ApiOperation({
-    summary: 'Fetch credential information by credential id',
-    description:
-      'This call provides the capability to get credential information by credential id. This call returns a credential record (CredentialRecord type with fields connectionId, threadId, credentialId, state, autoAcceptCredential, errorMessage, proposalMessage, offerMessage, requestMessage, credentialMessage, credentialAttributes, linkedAttachments and others). This request get credential data directly from agent, so you can use this endpoint to get some additional info which is not presented in /v1/credential/{id}',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential information fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential information fetched successfully': {
-            value: {},
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async getCredentialInfo(
-    @Param() params: GetCredentialParams,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-
-    try {
-      const result = await this.attestationService.getCredentialInformation(
-        params.id,
-      );
-
-      res = {
-        statusCode: HttpStatus.OK,
-        message: 'Agent responded',
-        data: result,
-      };
-
-      // if (result) {
-      //   if (result[0]) {
-      //     res = {
-      //       statusCode: HttpStatus.OK,
-      //       message: 'Credential information fetched successfully',
-      //       data: {
-      //         count: result[0],
-      //         records: result[1],
-      //       },
-      //     };
-      //   } else {
-      //     response.status(HttpStatus.NOT_FOUND);
-      //     res = {
-      //       statusCode: HttpStatus.NOT_FOUND,
-      //       message: 'No Data found',
-      //     };
-      //   }
-      // } else {
-      //   response.status(HttpStatus.INTERNAL_SERVER_ERROR);
-      //   res = {
-      //     statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
-      //     message: 'Something went wrong please try again',
-      //   };
-      // }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @Version(['1'])
-  @Delete('delete-credential/:id')
-  @ApiOperation({
-    summary: 'Delete credential by id',
-    description:
-      'This call provides the capability to delete credential (request/offer/proposal) by provided credential id',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential deleted successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential deleted successfully': {
-            value: {
-              statusCode: HttpStatus.OK,
-              message: 'Credential deleted successfully',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async deleteCredential(
-    @Param() params: GetCredentialParams,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-
-    try {
-      const result = await this.attestationService.deleteCredential(params.id);
-
-      if (result.reason || result.message) {
-        res = {
-          statusCode: result.status || HttpStatus.INTERNAL_SERVER_ERROR,
-          message: result.message || result.reason,
-        };
-      } else {
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Credential deleted successfully',
-          data: result,
-        };
-      }
-
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @Version(['1'])
-  @Get('credential')
-  @ApiOperation({
-    summary: 'Fetch a list of credentials',
-    description:
-      'This call provides the capability to search credentials by using pagination and filter parameters to select credentials. This call returns a list of credentials and overall count of records. Filter supports following parameters: page, pageSize, isReceived, threadId, state, credDefId, createdDateStart, createdDateEnd, updatedDateStart, updatedDateEnd, expirationDateStart, expirationDateEnd, connectionId, principalDid',
-  })
-  @ApiQuery({ name: 'page', required: false })
-  @ApiQuery({ name: 'pageSize', required: false })
-  @ApiQuery({ name: 'isReceived', required: false })
-  @ApiQuery({ name: 'threadId', required: false })
-  @ApiQuery({ name: 'state', required: false })
-  @ApiQuery({ name: 'credDefId', required: false })
-  @ApiQuery({ name: 'createdDateStart', required: false })
-  @ApiQuery({ name: 'createdDateEnd', required: false })
-  @ApiQuery({ name: 'updatedDateStart', required: false })
-  @ApiQuery({ name: 'updatedDateEnd', required: false })
-  @ApiQuery({ name: 'expirationDateStart', required: false })
-  @ApiQuery({ name: 'expirationDateEnd', required: false })
-  @ApiQuery({ name: 'connectionId', required: false })
-  @ApiQuery({ name: 'principalDid', required: false })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Credential fetched successfully',
-              data: {
-                count: 87,
-                records: [
-                  {
-                    id: '14875384',
-                    credentialId: 'c566907d',
-                    credDefId: '7KuDTpQh3GJ',
-                    threadId: 'e271b1a0',
-                    state: 'proposal-sent',
-                    principalDid: 'KGaeQVaF',
-                    connectionId: '12cd39de',
-                    createdDate: '1970-01-01T00:00:09.761Z',
-                    updatedDate: '1970-01-01T00:00:09.761Z',
-                    expirationDate: '2070-01-01T00:00:09.756Z',
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async getCredentialList(
-    @Query() query: GetCredentialQuery,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-
-    try {
-      if (query.threadId) {
-        const result = await this.attestationService.findCredentialByThreadId(
-          query.threadId,
-        );
-        if (result) {
-          res = {
-            statusCode: HttpStatus.OK,
-            message: 'Credential fetch successfully',
-            data: {
-              count: 1,
-              results: [result],
-            },
-          };
-        } else {
-          response.status(HttpStatus.NOT_FOUND);
-          res = {
-            statusCode: HttpStatus.NOT_FOUND,
-            message: 'No Data found',
-          };
-        }
-      } else {
-        const result = await this.attestationService.findCredential(
-          query.pageSize ? parseInt(query.pageSize, 10) : 10,
-          query.page ? parseInt(query.page, 10) : 0,
-          query.isReceived === 'true',
-          query.state ? query.state : false,
-          query.credDefId ? query.credDefId : false,
-          query.createdDateStart ? query.createdDateStart : false,
-          query.createdDateEnd ? query.createdDateEnd : false,
-          query.updatedDateStart ? query.updatedDateStart : false,
-          query.updatedDateEnd ? query.updatedDateEnd : false,
-          query.expirationDateStart ? query.expirationDateStart : false,
-          query.expirationDateEnd ? query.expirationDateEnd : false,
-          query.connectionId ? query.connectionId : false,
-          query.principalDid ? query.principalDid : false,
-        );
-
-        if (result) {
-          if (result[0]) {
-            res = {
-              statusCode: HttpStatus.OK,
-              message: 'Credential fetch successfully',
-              data: {
-                count: result[0],
-                records: result[1],
-              },
-            };
-          } else {
-            response.status(HttpStatus.NOT_FOUND);
-            res = {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            };
-          }
-        } else {
-          response.status(HttpStatus.INTERNAL_SERVER_ERROR);
-          res = {
-            statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
-            message: 'Something went wrong please try again',
-          };
-        }
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @Version(['1'])
-  @Get('credential/:id')
-  @ApiOperation({
-    summary: 'Fetch credential by id',
-    description:
-      'This call provides the capability to get credential data by providing credential id. The credential definition data is the same which is returned from /v1/credential endpoint and contains generic information about credential like credentialId, credDefId, threadId, state, principalDid, connectionId, createdDate, updatedDate, expirationDate',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Credential fetched successfully',
-              data: {
-                id: '14875384',
-                credentialId: 'c566907d',
-                credDefId: '7KuDTpQh3GJ',
-                threadId: 'e271b1a0',
-                state: 'proposal-sent',
-                principalDid: 'KGaeQVaF',
-                connectionId: '12cd39de',
-                createdDate: '1970-01-01T00:00:09.761Z',
-                updatedDate: '1970-01-01T00:00:09.761Z',
-                expirationDate: '2070-01-01T00:00:09.756Z',
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async getCredential(
-    @Param() params: GetCredentialParams,
-    @Query() query: GetCredentialQuery,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-
-    try {
-      const result = await this.attestationService.findCredentialById(
-        params.id,
-      );
-      if (result) {
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Credential fetched successfully',
-          data: result,
-        };
-      } else {
-        response.status(HttpStatus.NOT_FOUND);
-        res = {
-          statusCode: HttpStatus.NOT_FOUND,
-          message: 'No Data found',
-        };
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @MessagePattern({
-    endpoint: `${NATSServices.SERVICE_NAME}/offerMemberShipCredentials`,
-  })
-  public async offerMemberShipCredentials(data: {
-    status: string;
-    connectionId: string;
-    theirLabel: string;
-    participantDID: string;
-    theirDid: string;
-  }) {
-    logger.info('Inside OfferMembership Credential');
-    try {
-      const credentialsType =
-        await this.attestationService.getPrincipalMemberShipCredentials({
-          type: AttestationService.principalMemberCredential,
-        });
-      logger.info(JSON.stringify(credentialsType));
-      if (credentialsType) {
-        /* Husky restructure this line every time
-         and lint does not allow more then 100 characters on same line.
-         */
-
-        const [, [credentialDef]] =
-          await this.credentialDefService.findCredentialDefBySchemaIdDesc({
-            schemaID: credentialsType?.schemaId,
-          });
-        logger.info(`credentialDef ${JSON.stringify(credentialDef)}`);
-
-        const schemaDetails = await this.schemaService.findBySchemaId(
-          credentialDef.schemaID,
-        );
-
-        const attributes: { name: string; value: string }[] = [];
-
-        const schemaAttributes = schemaDetails?.attribute;
-
-        const userDetails = await this.userInfoService.getUserInfo(
-          data.connectionId,
-        );
-
-        const userInfo = userDetails
-          ? JSON.parse(JSON.stringify(userDetails.userInfo))
-          : {
-              issuerDID: data.participantDID,
-              subjectDID: data.theirDid,
-              email: data.theirLabel,
-            };
-
-        if (userInfo && schemaAttributes && schemaAttributes.length > 0) {
-          userInfo.issuerDID = data.participantDID;
-          userInfo.subjectDID = data.theirDid;
-
-          for (let i = 0; i < schemaAttributes.length; i += 1) {
-            const attribute: Record<string, string> = schemaAttributes[i];
-
-            if (attribute.name in userInfo) {
-              attributes.push({
-                name: attribute.name,
-                value: userInfo[attribute.name],
-              });
-            } else if (attribute.name !== 'expirationDate') {
-              attributes.push({
-                name: attribute.name,
-                value: attribute.name === 'email' ? data.theirLabel : 'NA',
-              });
-            }
-          }
-        }
-
-        await this.userInfoService.updateUserInfo({
-          connectionId: data.connectionId,
-          credentialDefinitionId: credentialDef.credDefId,
-          status: 'issued',
-          userInfo: {},
-        });
-
-        const res: ResponseType = {
-          statusCode: HttpStatus.OK,
-          message: 'Membership Credentials issued.',
-          data: await this.attestationService.issueMemberCredentials({
-            ...data,
-            credDefId: credentialDef.credDefId,
-            attributes,
-            autoAcceptCredential: userDetails?.autoAcceptCredential as string,
-          }),
-        };
-        logger.info(JSON.stringify(res));
-        return res;
-      }
-      const res: ResponseType = {
-        statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
-        message: 'Schema Id Not defined please connect admin.',
-      };
-      return res;
-    } catch (error) {
-      logger.error(error);
-      let res: ResponseType;
-
-      if (error instanceof PreconditionFailedException) {
-        res = {
-          statusCode: error.getStatus(),
-          message: error?.message || 'Something went wrong. Please try again',
-        };
-      } else {
-        res = {
-          statusCode: HttpStatus.INTERNAL_SERVER_ERROR,
-          message: 'Something went wrong. Please try again',
-        };
-      }
-      return res;
-    }
-  }
-
-  @Patch('updateSchemaIdByType')
-  @ApiQuery({ name: 'type', required: true })
-  @ApiBody({ type: UpdateSchemaIdByTypeDto })
-  @ApiOperation({
-    summary: 'Update schemaId in CredentialsType',
-    description:
-      'This call provides the capability to update mapping between schema and type.',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'schemaId updated in CredentialsType',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'schemaId updated in CredentialsType': {
-            value: {
-              statusCode: 200,
-              message: 'schemaId updated in CredentialsType',
-              data: {
-                id: 'd6ef2d010',
-                type: 'principalMemberCredential',
-                schemaId: '7KuDTpQh3GJ7Gp6kErpWvM:2:principalTestSchema:1.0',
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'Not Found',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Not Found': {
-            value: {
-              status: HttpStatus.NOT_FOUND,
-              message: 'Not Found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async updateSchemaIdByType(
-    @Body() body: { schemaId: string },
-    @Query() query: { type: string },
-  ) {
-    try {
-      const res: ResponseType = {
-        statusCode: HttpStatus.OK,
-        message: 'schemaId updated in CredentialsType',
-        data: await this.attestationService.updateSchemaByType(
-          query.type,
-          body,
-        ),
-      };
-      return res;
-    } catch (error: unknown) {
-      if (
-        error instanceof Prisma.PrismaClientKnownRequestError &&
-        error.code === PrismaErrorCode.RECORD_NOT_FOUND
-      ) {
-        throw new NotFoundException(error.message);
-      }
-      throw new InternalServerErrorException(error);
-    }
-  }
-
-  @Post('credentialType')
-  @ApiOperation({
-    summary: 'Create new CredentialType',
-    description:
-      'This call provides the capability to create mapping between schema and type.',
-  })
-  @ApiBody({ type: CredentialTypeDto })
-  @ApiResponse({
-    status: HttpStatus.CREATED,
-    description: 'schemaId added in CredentialsType of membership credentials.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'schemaId added in CredentialsType of membership credentials.': {
-            value: {
-              statusCode: 201,
-              message:
-                'schemaId added in CredentialsType of membership credentials.',
-              data: {
-                id: 'd6ef2d01',
-                type: 'principalMemberCredential',
-                schemaId: '7KuDTpQh3GJ7Gp6kErpWvM:2:principalTestSchema:1.0',
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async createCredentialType(@Body() body: CredentialTypeDto) {
-    try {
-      const res: ResponseType = {
-        statusCode: HttpStatus.CREATED,
-        message: 'schemaId added in CredentialsType of membership credentials.',
-        data: await this.attestationService.createCredentialsType(body),
-      };
-      return res;
-    } catch (error) {
-      throw new InternalServerErrorException(error);
-    }
-  }
-
-  @MessagePattern({
-    endpoint: `${NATSServices.SERVICE_NAME}/getIssueCredentials`,
-  })
-  public async getIssueCredentials(data: GetIssueCredentialsDto) {
-    return this.attestationService.getIssueCredentials(data);
-  }
-
-  @MessagePattern({
-    endpoint: `${NATSServices.SERVICE_NAME}/getCredentialsTypeDetails`,
-  })
-  public async getCredentialsTypeDetails(data: { type: string }) {
-    let res;
-
-    const credentialsType =
-      await this.attestationService.getPrincipalMemberShipCredentials(data);
-
-    if (credentialsType?.schemaId) {
-      const getSchema =
-        await this.attestationService.getSchemaAndAttributesBySchemaIDFromLedger(
-          credentialsType.schemaId,
-        );
-      const attributes: Array<{ name: string }> = [];
-      getSchema.attrNames.forEach((attr: string) => {
-        attributes.push({ name: attr });
-      });
-
-      res = {
-        schema: {
-          schemaID: credentialsType?.schemaId,
-          attribute: attributes,
-        },
-      };
-    }
-    return res;
-  }
-
-  @Get('credentialType')
-  @ApiOperation({
-    summary: 'Fetch CredentialType contains schemaId and attributes by type',
-    description:
-      'This call provides the capability to get schema id and its attributes by provided type',
-  })
-  @ApiQuery({ name: 'type', required: true })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Credential type retrieved successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential type retrieved successfully': {
-            value: {
-              schema: {
-                schemaID: '7KuDTpQh3GJ7Gp6kErpWvM:2:principalTestSchema:1.0',
-                attribute: [
-                  'prcPreferredUsername',
-                  'issuerDID',
-                  'prcGender',
-                  'prcBirthdate',
-                  'expirationDate',
-                  'prcLastName',
-                  'prcFirstName',
-                  'email',
-                  'prcMiddleName',
-                  'subjectDID',
-                  'auth_time',
-                  'email_verified',
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'Credential type not found',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Credential type not found': {
-            value: undefined,
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async getCredentialTypeAttributes(@Query() query: { type: string }) {
-    let res;
-
-    const credentialsType =
-      await this.attestationService.getPrincipalMemberShipCredentials(query);
-    if (credentialsType?.schemaId) {
-      const schemaDetails: {
-        ver: string;
-        id: string;
-        name: string;
-        version: string;
-        attrNames: string[];
-        seqNo: number;
-      } =
-        await this.attestationService.getSchemaAndAttributesBySchemaIDFromLedger(
-          credentialsType.schemaId,
-        );
-      res = {
-        schema: {
-          schemaID: credentialsType?.schemaId,
-          attribute: schemaDetails.attrNames,
-        },
-      };
-    }
-    return res;
-  }
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/credential.entity.ts b/apps/attestation-manager/src/issue-credential/entities/credential.entity.ts
deleted file mode 100644
index 86e6f3253ddf8951344d7ab9e42cddbeb079a106..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/credential.entity.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { IsString, IsNotEmpty } from 'class-validator';
-
-export default class CredentialDto {
-  @IsString()
-  @IsNotEmpty()
-  public credentialId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public credDefId: string;
-
-  @IsString()
-  public schemaId?: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public participantId?: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public principalDid?: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public state: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public threadId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public connectionId: string;
-
-  @IsString()
-  public expirationDate?: Date | null;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/credential.state.entity.ts b/apps/attestation-manager/src/issue-credential/entities/credential.state.entity.ts
deleted file mode 100644
index b06cb92c1418b9a96c84b4e3503e0d4dcb4346db..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/credential.state.entity.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { IsString, IsNotEmpty } from 'class-validator';
-
-export default class CredentialStateDto {
-  @IsString()
-  @IsNotEmpty()
-  public id: string;
-
-  @IsNotEmpty()
-  public metadata: {
-    '_internal/indyCredential': {
-      credentialDefinitionId: string;
-      schemaId: string;
-    };
-  };
-
-  @IsString()
-  @IsNotEmpty()
-  public credDefId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public state: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public threadId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public connectionId: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/credentialType.entity.ts b/apps/attestation-manager/src/issue-credential/entities/credentialType.entity.ts
deleted file mode 100644
index 0b1e522467cdb1c329cb0650a068a77c0e35ffa4..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/credentialType.entity.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsNotEmpty, IsString } from 'class-validator';
-
-export default class CredentialTypeDto {
-  @IsString()
-  public id?: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public type: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public schemaId: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/entity.ts b/apps/attestation-manager/src/issue-credential/entities/entity.ts
deleted file mode 100644
index 76ae7baaa09ff78ed67ebf742ab4e865c6aa3307..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/entity.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsString, IsNotEmpty } from 'class-validator';
-
-class CredentialPreviewAttributes {
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public name: string;
-
-  @IsString()
-  @ApiProperty()
-  public value: string;
-}
-export default class OfferCredentialDto {
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public connectionId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public credentialDefinitionId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public comment: string;
-
-  @ApiProperty({ type: [CredentialPreviewAttributes] })
-  public attributes: CredentialPreviewAttributes[];
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public autoAcceptCredential: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/get-issue-credentials.dto.ts b/apps/attestation-manager/src/issue-credential/entities/get-issue-credentials.dto.ts
deleted file mode 100644
index b573e0830f8e66dea8cb54451494d24f6f91a5df..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/get-issue-credentials.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { IsString } from 'class-validator';
-
-export default class GetIssueCredentialsDto {
-  @IsString()
-  public connectionId: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/get.credential.params.ts b/apps/attestation-manager/src/issue-credential/entities/get.credential.params.ts
deleted file mode 100644
index 61be5db1f4f2da32cacc4081cfce7517a82ad504..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/get.credential.params.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { IsString } from 'class-validator';
-
-export default class GetCredentialParams {
-  @IsString()
-  public id: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/get.credential.query.ts b/apps/attestation-manager/src/issue-credential/entities/get.credential.query.ts
deleted file mode 100644
index 47130d5fd98c86f2345b5fc1f975a528803a4cb0..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/get.credential.query.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import { IsBoolean, IsString, IsDateString } from 'class-validator';
-
-export default class GetCredentialQuery {
-  @IsString()
-  public page?: string;
-
-  @IsString()
-  public pageSize?: string;
-
-  @IsString()
-  public threadId?: string;
-
-  @IsBoolean()
-  public isReceived?: boolean | string;
-
-  @IsString()
-  public state?: string;
-
-  @IsString()
-  public credDefId?: string;
-
-  @IsDateString()
-  public createdDateStart?: string;
-
-  @IsDateString()
-  public createdDateEnd?: string;
-
-  @IsDateString()
-  public updatedDateStart?: string;
-
-  @IsDateString()
-  public updatedDateEnd?: string;
-
-  @IsDateString()
-  public expirationDateStart?: string;
-
-  @IsDateString()
-  public expirationDateEnd?: string;
-
-  @IsString()
-  public connectionId?: string;
-
-  @IsString()
-  public principalDid?: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/propose-credential.dto.ts b/apps/attestation-manager/src/issue-credential/entities/propose-credential.dto.ts
deleted file mode 100644
index 1d5e9cb515aa241c48e0725fa0689f836f59fa60..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/propose-credential.dto.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsString, IsNotEmpty } from 'class-validator';
-
-export default class ProposeCredentialDto {
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public connectionId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public credentialDefinitionId: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public comment: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public credentialProposal: {
-    '@type': string;
-    attributes: {
-      name: string;
-      value: string;
-    }[];
-  };
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public autoAcceptCredential: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/entities/updatecredDefIdByType.entity.ts b/apps/attestation-manager/src/issue-credential/entities/updatecredDefIdByType.entity.ts
deleted file mode 100644
index a28aae69d17ab13d9e8a18f82bef3bfb634662d7..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/entities/updatecredDefIdByType.entity.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsString, IsNotEmpty } from 'class-validator';
-
-export default class UpdateSchemaIdByTypeDto {
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public schemaId: string;
-}
diff --git a/apps/attestation-manager/src/issue-credential/module.ts b/apps/attestation-manager/src/issue-credential/module.ts
deleted file mode 100644
index 8a27b1db0c79630034c40f167a864ec78fb638a5..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/module.ts
+++ /dev/null
@@ -1,43 +0,0 @@
-import { HttpModule } from '@nestjs/axios';
-import { Module } from '@nestjs/common';
-import { ClientsModule, Transport } from '@nestjs/microservices';
-
-import NatsClientService from '../client/nats.client.js';
-import RestClientService from '../client/rest.client.js';
-import TSAClientService from '../client/tsa.client.js';
-import { NATSServices } from '../common/constants.js';
-import config from '../config/config.js';
-import CredentialDefService from '../credentialDef/services/service.js';
-import PrismaService from '../prisma/prisma.service.js';
-import SchemasService from '../schemas/services/service.js';
-import UserInfoService from '../userInfo/services/service.js';
-
-import AttestationController from './controller/controller.js';
-import AttestationService from './services/service.js';
-
-@Module({
-  imports: [
-    HttpModule,
-    ClientsModule.register([
-      {
-        name: NATSServices.SERVICE_NAME,
-        transport: Transport.NATS,
-        options: {
-          servers: [config().nats.url as string],
-        },
-      },
-    ]),
-  ],
-  controllers: [AttestationController],
-  providers: [
-    AttestationService,
-    PrismaService,
-    NatsClientService,
-    RestClientService,
-    CredentialDefService,
-    SchemasService,
-    TSAClientService,
-    UserInfoService,
-  ],
-})
-export default class AttestationModule {}
diff --git a/apps/attestation-manager/src/issue-credential/repository/credential.repository.ts b/apps/attestation-manager/src/issue-credential/repository/credential.repository.ts
deleted file mode 100644
index bc4d9f13fe5f011c8ca31e51e0678fe27342a417..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/repository/credential.repository.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import type { Prisma } from '@prisma/client';
-
-import { Injectable } from '@nestjs/common';
-
-import PrismaService from '../../prisma/prisma.service.js';
-
-@Injectable()
-export default class CredentialRepository {
-  public constructor(private readonly prismaService: PrismaService) {}
-
-  public async createCredential(data: Prisma.CredentialCreateInput) {
-    const credential = await this.prismaService.credential.create({ data });
-
-    const credDef = await this.prismaService.credentialDef.findFirst({
-      where: { credDefId: data.credDefId },
-    });
-
-    if (!credDef) {
-      return credential;
-    }
-
-    await this.prismaService.credentialDef.update({
-      where: {
-        credDefId: data.credDefId,
-      },
-      data: {
-        credentials: {
-          connect: {
-            id: credential.id,
-          },
-        },
-      },
-    });
-
-    return credential;
-  }
-
-  public async findUniqueCredential(params: {
-    where: Prisma.CredentialWhereUniqueInput;
-  }) {
-    const { where } = params;
-    return this.prismaService.credential.findUnique({
-      where,
-    });
-  }
-
-  public async updateCredential(params: {
-    where: Prisma.CredentialWhereUniqueInput;
-    data: Prisma.CredentialUpdateInput;
-  }) {
-    const { where, data } = params;
-    return this.prismaService.credential.update({
-      data,
-      where,
-    });
-  }
-
-  public async findCredential(params: {
-    skip?: number;
-    take?: number;
-    cursor?: Prisma.CredentialWhereUniqueInput;
-    where?: Prisma.CredentialWhereInput;
-    orderBy?: Prisma.CredentialOrderByWithRelationInput;
-  }) {
-    const { skip, take, cursor, where, orderBy } = params;
-
-    return this.prismaService.$transaction([
-      this.prismaService.credential.count({
-        where: {
-          ...where,
-        },
-      }),
-      this.prismaService.credential.findMany({
-        skip,
-        take,
-        cursor,
-        where,
-        orderBy,
-      }),
-    ]);
-  }
-
-  public async deleteCredential(params: {
-    where: Prisma.CredentialWhereUniqueInput;
-  }) {
-    const { where } = params;
-
-    return this.prismaService.credential.delete({
-      where,
-    });
-  }
-}
diff --git a/apps/attestation-manager/src/issue-credential/repository/credentialType.repository.ts b/apps/attestation-manager/src/issue-credential/repository/credentialType.repository.ts
deleted file mode 100644
index 4be0ada0ead7fb7bbeb7bf68ac0a90bd18d3d904..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/repository/credentialType.repository.ts
+++ /dev/null
@@ -1,104 +0,0 @@
-import type { Prisma } from '@prisma/client';
-
-import { Injectable } from '@nestjs/common';
-
-import PrismaService from '../../prisma/prisma.service.js';
-
-@Injectable()
-export default class CredentialsTypeRepository {
-  public constructor(private readonly prismaService: PrismaService) {}
-
-  public async createCredentialsType(data: Prisma.CredentialsTypeCreateInput) {
-    return this.prismaService.credentialsType.create({ data });
-  }
-
-  public async createOrUpdateCredentialsType(
-    data: Prisma.CredentialsTypeCreateInput,
-  ) {
-    const credentialType = await this.prismaService.credentialsType.findFirst({
-      where: {
-        type: {
-          equals: data.type,
-          mode: 'insensitive',
-        },
-      },
-    });
-
-    if (credentialType) {
-      return this.prismaService.credentialsType.update({
-        where: {
-          id: credentialType.id,
-        },
-        data,
-      });
-    }
-    const credentialTypeSchemaCheck =
-      await this.prismaService.credentialsType.findFirst({
-        where: {
-          schemaId: {
-            equals: data.schemaId,
-          },
-        },
-      });
-    if (credentialTypeSchemaCheck) {
-      return this.prismaService.credentialsType.update({
-        where: {
-          id: credentialTypeSchemaCheck.id,
-        },
-        data,
-      });
-    }
-
-    return this.prismaService.credentialsType.create({
-      data,
-    });
-  }
-
-  public async findUniqueCredentialsType(data: { type: string }) {
-    return this.prismaService.credentialsType.findFirst({
-      where: {
-        type: {
-          equals: data.type,
-          mode: 'insensitive',
-        },
-      },
-    });
-  }
-
-  // TODO check
-  public async updateCredentialsType(params: {
-    where: Prisma.CredentialsTypeWhereUniqueInput;
-    data: Prisma.CredentialsTypeUpdateInput;
-  }) {
-    const { where, data } = params;
-    return this.prismaService.credentialsType.update({
-      data,
-      where,
-    });
-  }
-
-  public async findCredentialsType(params: {
-    skip?: number;
-    take?: number;
-    cursor?: Prisma.CredentialsTypeWhereUniqueInput;
-    where?: Prisma.CredentialsTypeWhereInput;
-    orderBy?: Prisma.CredentialsTypeOrderByWithRelationInput;
-  }) {
-    const { skip, take, cursor, where, orderBy } = params;
-
-    return this.prismaService.$transaction([
-      this.prismaService.credentialsType.count({
-        where: {
-          ...where,
-        },
-      }),
-      this.prismaService.credentialsType.findMany({
-        skip,
-        take,
-        cursor,
-        where,
-        orderBy,
-      }),
-    ]);
-  }
-}
diff --git a/apps/attestation-manager/src/issue-credential/services/service.ts b/apps/attestation-manager/src/issue-credential/services/service.ts
deleted file mode 100644
index 22d25349cdee5da97aaab18e60a54a1988988c92..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/services/service.ts
+++ /dev/null
@@ -1,483 +0,0 @@
-import type CredentialDto from '../entities/credential.entity.js';
-import type CredentialTypeDto from '../entities/credentialType.entity.js';
-import type OfferCredentialDto from '../entities/entity.js';
-import type GetIssueCredentialsDto from '../entities/get-issue-credentials.dto.js';
-import type ProposeCredentialDto from '../entities/propose-credential.dto.js';
-import type { Credential, Prisma } from '@prisma/client';
-
-import {
-  BadRequestException,
-  Injectable,
-  PreconditionFailedException,
-} from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import TSAClientService from '../../client/tsa.client.js';
-import { TSAService } from '../../common/constants.js';
-import CredentialDefService from '../../credentialDef/services/service.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import Utils from '../../utils/common.js';
-import logger from '../../utils/logger.js';
-import pagination from '../../utils/pagination.js';
-import CredentialRepository from '../repository/credential.repository.js';
-import CredentialsTypeRepository from '../repository/credentialType.repository.js';
-
-@Injectable()
-export default class AttestationService {
-  private credentialRepository: CredentialRepository;
-
-  private credentialRepositoryType: CredentialsTypeRepository;
-
-  public constructor(
-    private readonly credDefService: CredentialDefService,
-    private readonly prismaService: PrismaService,
-    private readonly restClient: RestClientService,
-    private readonly natsClient: NatsClientService,
-    private readonly tsaClient: TSAClientService,
-    private readonly configService: ConfigService,
-  ) {
-    this.credentialRepository = new CredentialRepository(this.prismaService);
-    this.credentialRepositoryType = new CredentialsTypeRepository(
-      this.prismaService,
-    );
-  }
-
-  public static readonly status = {
-    OFFER_SENT: 'offer-sent',
-    PROPOSAL_SENT: 'proposal-sent',
-    REQUEST_RECEIVED: 'request-received',
-    DONE: 'done',
-    OFFER_RECEIVED: 'offer-received',
-  };
-
-  public static readonly principalMemberCredential =
-    'principalMemberCredential';
-
-  public static readonly connectionStatus = {
-    TRUSTED: 'trusted',
-  };
-
-  public async createOfferCredential(
-    credentialRequest: OfferCredentialDto,
-    isTrustedConnectionRequired = false,
-  ) {
-    // TODO is it a correct conditions here? Should not be just isTrustedConnectionRequired?
-    if (!isTrustedConnectionRequired) {
-      const connection = await this.getConnectionByID(
-        credentialRequest.connectionId,
-      );
-
-      logger.info(`connection ${JSON.stringify(connection)}`);
-
-      if (connection?.status !== AttestationService.connectionStatus.TRUSTED) {
-        return null;
-      }
-    }
-
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const credentialRequestObj = { ...credentialRequest };
-
-    const credDef = await this.findCredDef(
-      credentialRequestObj.credentialDefinitionId,
-    );
-
-    const expirationDate = Utils.calculateExpiry(credDef.expiryHours);
-
-    if (expirationDate) {
-      credentialRequestObj.attributes.push({
-        name: 'expirationDate',
-        value: expirationDate.toString(),
-      });
-    }
-
-    const schemaDetails = await this.getSchemaAndAttributesBySchemaIDFromLedger(
-      credDef.schemaID,
-    );
-    logger.info(
-      `schemaDetails?.attrNames?.length ${schemaDetails?.attrNames?.length}`,
-    );
-    logger.info(
-      `credentialRequest.preview.attributes.length ${credentialRequest.attributes.length}`,
-    );
-
-    if (
-      schemaDetails?.attrNames?.length !== credentialRequest.attributes.length
-    ) {
-      throw new BadRequestException('Invalid attributes');
-    }
-
-    logger.info(`offer-credential payload: ${credentialRequestObj}`);
-
-    try {
-      const credentialRequestPayload = {
-        connectionId: credentialRequestObj.connectionId,
-        credentialDefinitionId: credentialRequestObj.credentialDefinitionId,
-        comment: credentialRequestObj.comment,
-        preview: {
-          '@type':
-            'https://didcomm.org/issue-credential/1.0/credential-preview',
-          attributes: credentialRequestObj.attributes,
-        },
-        autoAcceptCredential: credentialRequestObj.autoAcceptCredential,
-      };
-
-      logger.info(
-        `***Offer Credential Payload***    ${JSON.stringify(
-          credentialRequestPayload,
-        )}`,
-      );
-
-      const responseData = await this.restClient.post(
-        `${agentUrl}/credentials/offer-credential`,
-        credentialRequestPayload,
-      );
-      logger.info(responseData);
-      return responseData;
-    } catch (error) {
-      logger.error(JSON.stringify(error));
-      throw new Error(JSON.stringify(error));
-    }
-  }
-
-  public async proposeCredential(connectionCreate: ProposeCredentialDto) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const connectionCreateObj = { ...connectionCreate };
-    try {
-      const responseData = await this.restClient.post(
-        `${agentUrl}/credentials/propose-credential`,
-        connectionCreateObj,
-      );
-      logger.info(responseData);
-      return responseData;
-    } catch (error) {
-      logger.error(JSON.stringify(error));
-      throw new Error(JSON.stringify(error));
-    }
-  }
-
-  public async acceptRequestCredential(credentialId: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-
-    const responseData = await this.restClient.post(
-      `${agentUrl}/credentials/${credentialId}/accept-request`,
-      {},
-    );
-    logger.info(responseData);
-    return responseData;
-  }
-
-  public async acceptProposeCredential(credentialId: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.post(
-      `${agentUrl}/credentials/${credentialId}/accept-proposal`,
-      {},
-    );
-    logger.info(responseData);
-    return responseData;
-  }
-
-  public async acceptCredentialOffer(credentialId: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.post(
-      `${agentUrl}/credentials/${credentialId}/accept-offer`,
-      {},
-    );
-    logger.info(responseData);
-    return responseData;
-  }
-
-  public async acceptCredential(credentialId: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.post(
-      `${agentUrl}/credentials/${credentialId}/accept-credential`,
-      {},
-    );
-    logger.info(responseData);
-    return responseData;
-  }
-
-  public async createCredential(credential: CredentialDto) {
-    const connection = await this.getConnectionByID(credential.connectionId);
-
-    const credDef = await this.findCredDef(credential.credDefId);
-
-    logger.info(`credDef.expiryHours ${credDef.expiryHours}`);
-    const expirationDate = Utils.calculateExpiry(credDef.expiryHours);
-    logger.info(`expirationDate ${expirationDate}`);
-    const tempCredential = credential;
-    delete tempCredential.schemaId;
-
-    return this.credentialRepository.createCredential({
-      ...tempCredential,
-      ...(expirationDate !== 'NA' && { expirationDate }),
-      principalDid: connection.theirDid,
-    });
-  }
-
-  public async getConnectionByID(connectionID: string) {
-    const connection = await this.natsClient.getConnectionById(connectionID);
-    return connection;
-  }
-
-  public async updateCredential(credential: CredentialDto) {
-    return this.credentialRepository.updateCredential({
-      where: { credentialId: credential.credentialId },
-      data: {
-        state: credential.state,
-        updatedDate: new Date(),
-      },
-    });
-  }
-
-  public findCredentialById(credentialId: string) {
-    const where: Prisma.CredentialWhereUniqueInput = { credentialId };
-    return this.credentialRepository.findUniqueCredential({ where });
-  }
-
-  public findCredentialByThreadId(threadId: string) {
-    const where: Prisma.CredentialWhereUniqueInput = { threadId };
-    return this.credentialRepository.findUniqueCredential({ where });
-  }
-
-  public async findCredential(
-    pageSize: number,
-    page: number,
-    isReceived: boolean,
-    state?: string | false,
-    credDefId?: string | false,
-    createdDateStart?: string | false,
-    createdDateEnd?: string | false,
-    updatedDateStart?: string | false,
-    updatedDateEnd?: string | false,
-    expirationDateStart?: string | false,
-    expirationDateEnd?: string | false,
-    connectionId?: string | false,
-    principalDid?: string | false,
-  ) {
-    let query: {
-      skip?: number;
-      take?: number;
-      cursor?: Prisma.CredentialWhereUniqueInput;
-      where: Prisma.CredentialWhereInput;
-      orderBy?: Prisma.CredentialOrderByWithRelationInput;
-    } = {
-      where: {},
-    };
-
-    if (state) {
-      const states: string[] = state.split(',');
-      query.where.state = { in: states };
-    }
-    if (credDefId) {
-      query.where.credDefId = credDefId;
-    }
-    if (createdDateStart) {
-      query.where.createdDate = { gte: createdDateStart };
-    }
-    if (createdDateEnd) {
-      query.where.createdDate = Object.assign({}, query.where.createdDate, {
-        lte: createdDateEnd,
-      });
-    }
-    if (updatedDateStart) {
-      query.where.updatedDate = { gte: updatedDateStart };
-    }
-    if (updatedDateEnd) {
-      query.where.updatedDate = Object.assign({}, query.where.updatedDate, {
-        lte: updatedDateEnd,
-      });
-    }
-    if (expirationDateStart) {
-      query.where.expirationDate = { gte: expirationDateStart };
-    }
-    if (expirationDateEnd) {
-      query.where.expirationDate = Object.assign(
-        {},
-        query.where.expirationDate,
-        { lte: expirationDateEnd },
-      );
-    }
-    if (connectionId) {
-      query.where.connectionId = connectionId;
-    }
-    if (principalDid) {
-      query.where.principalDid = principalDid;
-    }
-
-    if (isReceived) {
-      // TODO we need to check the case when first and second OCMs can re-use the same connection
-      // and can issue credentials to each other. Will this function returns correct results for
-      // every OCM?
-      const receivedConnections =
-        await this.natsClient.getReceivedConnections();
-      if (
-        Array.isArray(receivedConnections) &&
-        receivedConnections.length > 0
-      ) {
-        const receivedConnectionIds = receivedConnections.map(
-          (connection) => connection.connectionId,
-        );
-
-        query.where.connectionId = { in: receivedConnectionIds };
-      }
-    }
-
-    query = { ...query, ...pagination(pageSize, page) };
-
-    return this.credentialRepository.findCredential(query);
-  }
-
-  public async issueMemberCredentials(data: {
-    status: string;
-    connectionId: string;
-    theirLabel: string;
-    participantDID: string;
-    theirDid: string;
-    credDefId: string;
-    attributes: { name: string; value: string }[];
-    autoAcceptCredential: string;
-  }) {
-    logger.info(JSON.stringify(data));
-    const payload: OfferCredentialDto = {
-      connectionId: data.connectionId,
-      credentialDefinitionId: data.credDefId,
-      comment: 'Created',
-      attributes: data.attributes,
-      autoAcceptCredential: data.autoAcceptCredential,
-    };
-    logger.info(JSON.stringify(payload));
-
-    const tsaResponse = await this.tsaClient.getPolicy(
-      `${this.configService.get('TSA_URL')}/${
-        TSAService.PRINCIPAL_CREDENTIAL_REQUEST
-      }/1.0/evaluation`,
-    );
-
-    if (tsaResponse?.success && !tsaResponse.returnData) {
-      throw new PreconditionFailedException('TSA ERROR!');
-    }
-
-    const result = await this.createOfferCredential(payload, true);
-    logger.info(JSON.stringify(result));
-    return result;
-  }
-
-  public getPrincipalMemberShipCredentials(data: { type: string }) {
-    return this.credentialRepositoryType.findUniqueCredentialsType(data);
-  }
-
-  public async getSchemaAndAttributesBySchemaIDFromLedger(schemaID: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.get(
-      `${agentUrl}/schemas/${schemaID}`,
-    );
-
-    if (!responseData?.id) {
-      throw new BadRequestException('Invalid schema ID');
-    }
-
-    return responseData;
-  }
-
-  public updateSchemaByType(type: string, body: { schemaId: string }) {
-    return this.credentialRepositoryType.updateCredentialsType({
-      where: {
-        type,
-      },
-      data: {
-        schemaId: body.schemaId,
-      },
-    });
-  }
-
-  public async getIssueCredentials(data: GetIssueCredentialsDto) {
-    return this.credentialRepository.findCredential({
-      where: {
-        connectionId: data.connectionId,
-      },
-    });
-  }
-
-  public async getCredentialInformation(credentialId: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.get(
-      `${agentUrl}/credentials/${credentialId}`,
-    );
-
-    if (!responseData?.id) {
-      throw new BadRequestException('Invalid credential ID');
-    }
-
-    return responseData;
-  }
-
-  public async deleteCredential(credentialId: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.delete(
-      `${agentUrl}/credentials/${credentialId}`,
-    );
-
-    await this.credentialRepository.deleteCredential({
-      where: {
-        credentialId,
-      },
-    });
-
-    return responseData;
-  }
-
-  public createCredentialsType(credentialType: CredentialTypeDto) {
-    return this.credentialRepositoryType.createCredentialsType({
-      type: credentialType.type,
-      schemaId: credentialType.schemaId,
-    });
-  }
-
-  public connectionTrusted(connectionId: string) {
-    return this.natsClient.connectionTrusted(connectionId);
-  }
-
-  public async findCredDef(credentialDefinitionId: string) {
-    const credDefRes = await this.credDefService.findCredentialDefById(
-      credentialDefinitionId,
-    );
-
-    if (!credDefRes[0]) {
-      return {
-        expiryHours: '-1',
-        schemaID: '',
-      };
-    }
-
-    return credDefRes[1][0];
-  }
-
-  public async findReceivedCredentials() {
-    try {
-      let result: Credential[] = [];
-      const receivedConnections =
-        await this.natsClient.getReceivedConnections();
-
-      if (
-        Array.isArray(receivedConnections) &&
-        receivedConnections.length > 0
-      ) {
-        const receivedConnectionIds = receivedConnections.map(
-          (connection) => connection.connectionId,
-        );
-
-        const credentials = await this.credentialRepository.findCredential({
-          where: { connectionId: { in: receivedConnectionIds } },
-        });
-        [, result] = credentials;
-      }
-
-      return result;
-    } catch (error) {
-      logger.error(JSON.stringify(error));
-      throw new Error(JSON.stringify(error));
-    }
-  }
-}
diff --git a/apps/attestation-manager/src/issue-credential/tests/__mocks__/service.ts b/apps/attestation-manager/src/issue-credential/tests/__mocks__/service.ts
deleted file mode 100644
index c843d44cd2ba405799f1993e14c6130d8bf06307..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/__mocks__/service.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import schemaAgentDto from '../../../schemas/tests/stubs/schema-from-agent-dto.js';
-import credentialDto from '../stubs/credential-dto.js';
-import credentialTypeDto from '../stubs/credential-type-dto.js';
-
-const AttestationServiceMock = jest.fn().mockReturnValue({
-  createOfferCredential: jest.fn().mockReturnValue({}),
-  acceptRequestCredential: jest.fn().mockReturnValue({}),
-  findCredentialById: jest.fn().mockReturnValue(credentialDto()),
-  createCredentialsType: jest.fn().mockReturnValue(credentialTypeDto()),
-  getPrincipalMemberShipCredentials: jest
-    .fn()
-    .mockReturnValue(credentialTypeDto()),
-  createCredential: jest.fn().mockReturnValue(credentialDto()),
-  updateCredential: jest.fn().mockReturnValue(credentialDto()),
-  issueMemberCredentials: jest.fn().mockReturnValue({}),
-  getSchemaAndAttributesBySchemaIDFromLedger: jest
-    .fn()
-    .mockReturnValue(schemaAgentDto),
-});
-
-export default AttestationServiceMock;
diff --git a/apps/attestation-manager/src/issue-credential/tests/controller.spec.ts b/apps/attestation-manager/src/issue-credential/tests/controller.spec.ts
deleted file mode 100644
index 6efe1de27e4c1d96bd1d8aafc2830565d53e756b..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/controller.spec.ts
+++ /dev/null
@@ -1,294 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-import type CredentialDto from '../entities/credential.entity.js';
-import type CredentialStateDto from '../entities/credential.state.entity.js';
-import type CredentialTypeDto from '../entities/credentialType.entity.js';
-import type GetCredentialParams from '../entities/get.credential.params.js';
-import type GetCredentialQuery from '../entities/get.credential.query.js';
-import type { TestingModule } from '@nestjs/testing';
-import type { Response } from 'express';
-
-import { HttpStatus } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { ClientsModule, Transport } from '@nestjs/microservices';
-import { Test } from '@nestjs/testing';
-import { createResponse } from 'node-mocks-http';
-
-import { NATSServices } from '../../common/constants.js';
-import CredentialDefService from '../../credentialDef/services/service.js';
-import CredentialDefServiceMock from '../../credentialDef/tests/__mocks__/service.js';
-import SchemasService from '../../schemas/services/service.js';
-import SchemasServiceMock from '../../schemas/tests/__mocks__/service.js';
-import UserInfoService from '../../userInfo/services/service.js';
-import UserInfoServiceMock from '../../userInfo/tests/__mocks__/service.js';
-import AttestationController from '../controller/controller.js';
-import AttestationService from '../services/service.js';
-
-import AttestationServiceMock from './__mocks__/service.js';
-import credentialDto from './stubs/credential-dto.js';
-import credentialStateDto from './stubs/credential-state-dto.js';
-import credentialTypeDto from './stubs/credential-type-dto.js';
-
-describe('AttestationController', () => {
-  let attestationController: AttestationController;
-  let attestationService: AttestationService;
-
-  beforeEach(async () => {
-    const AttestationServiceProvider = {
-      provide: AttestationService,
-      useFactory: AttestationServiceMock,
-    };
-
-    const CredentialDefServiceProvider = {
-      provide: CredentialDefService,
-      useFactory: CredentialDefServiceMock,
-    };
-
-    const UserInfoServiceProvider = {
-      provide: UserInfoService,
-      useFactory: UserInfoServiceMock,
-    };
-
-    const SchemasServiceProvider = {
-      provide: SchemasService,
-      useFactory: SchemasServiceMock,
-    };
-
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [
-        ClientsModule.register([
-          {
-            name: NATSServices.SERVICE_NAME,
-            transport: Transport.NATS,
-          },
-        ]),
-      ],
-      controllers: [AttestationController],
-      providers: [
-        AttestationServiceProvider,
-        CredentialDefServiceProvider,
-        UserInfoServiceProvider,
-        SchemasServiceProvider,
-        ConfigService,
-      ],
-    }).compile();
-
-    attestationController = module.get<AttestationController>(
-      AttestationController,
-    );
-    attestationService = module.get<AttestationService>(AttestationService);
-    jest.clearAllMocks();
-  });
-
-  it('should be defined', () => {
-    expect(attestationController).toBeDefined();
-  });
-
-  // describe('createOfferCredential()', () => {
-  //   let attestationResponse: Response<string, Record<string, any>>;
-
-  //   beforeEach(async () => {
-  //     const response = httpMocks.createResponse();
-  //     attestationResponse = await attestationController.createOfferCredential(
-  //       offerCredentialDto(),
-  //       response,
-  //     );
-  //   });
-
-  //   it('should call createOfferCredential() from service', async () => {
-  //     expect(attestationService.createOfferCredential).toHaveBeenCalled();
-  //   });
-
-  //   it('should retrieve created credential', async () => {
-  //     expect(
-  //       attestationService.createOfferCredential(offerCredentialDto()),
-  //     ).not.toBe(null);
-  //   });
-
-  //   it(`should retrieve HTTP status created(${HttpStatus.CREATED})`, async () => {
-  //     expect(attestationResponse?.statusCode).toEqual(HttpStatus.CREATED);
-  //   });
-  // });
-
-  describe('acceptOfferCredential()', () => {
-    let attestationResponse: ResponseType;
-    let query: { credentialId: string };
-
-    beforeEach(async () => {
-      query = {
-        credentialId: credentialDto().credentialId,
-      };
-
-      attestationResponse =
-        await attestationController.acceptOfferCredential(query);
-    });
-
-    it('should call acceptRequestCredential() from service', async () => {
-      expect(attestationService.acceptRequestCredential).toHaveBeenCalled();
-    });
-
-    it('should retrieve created credential', async () => {
-      expect(
-        attestationService.acceptRequestCredential(
-          query.credentialId ? query.credentialId : '',
-        ),
-      ).not.toBe(null);
-    });
-
-    it(`should retrieve HTTP status accepted(${HttpStatus.ACCEPTED})`, async () => {
-      expect(attestationResponse?.statusCode).toEqual(HttpStatus.ACCEPTED);
-    });
-  });
-
-  describe('webHookCredentials()', () => {
-    let attestationResponse: ResponseType;
-    let body: { credentialRecord: CredentialStateDto };
-    let credentialObj: CredentialDto;
-
-    beforeEach(async () => {
-      body = { credentialRecord: credentialStateDto() };
-      credentialObj = {
-        credentialId: body.credentialRecord.id,
-        state: body.credentialRecord.state,
-        connectionId: body.credentialRecord.connectionId,
-        credDefId:
-          body.credentialRecord.metadata['_internal/indyCredential']
-            .credentialDefinitionId,
-        threadId: body.credentialRecord.threadId,
-      };
-
-      attestationResponse =
-        await attestationController.webHookCredentials(body);
-    });
-
-    it('should call createCredential() from service', async () => {
-      expect(attestationService.createCredential).toHaveBeenCalled();
-    });
-
-    it('should retrieve created credential', async () => {
-      expect(attestationService.createCredential(credentialObj)).toEqual(
-        credentialDto(),
-      );
-    });
-
-    it(`should retrieve HTTP status accepted(${HttpStatus.CREATED})`, async () => {
-      expect(attestationResponse?.statusCode).toEqual(HttpStatus.CREATED);
-    });
-  });
-
-  describe('getCredential()', () => {
-    let attestationResponse: Response<string, Record<string, unknown>>;
-    let params: GetCredentialParams;
-    let query: GetCredentialQuery;
-
-    beforeEach(async () => {
-      params = { id: credentialDto().credentialId };
-      query = {
-        state: credentialDto().state,
-      };
-
-      const response = createResponse();
-      attestationResponse = await attestationController.getCredential(
-        params,
-        query,
-        response,
-      );
-    });
-
-    it('should call findCredentialById() from service', async () => {
-      expect(attestationService.findCredentialById).toHaveBeenCalled();
-    });
-
-    it('should retrieve credential', async () => {
-      expect(attestationService.findCredentialById(params.id)).toEqual(
-        credentialDto(),
-      );
-    });
-
-    it(`should retrieve HTTP status OK(${HttpStatus.OK})`, async () => {
-      expect(attestationResponse?.statusCode).toEqual(HttpStatus.OK);
-    });
-  });
-
-  // describe('offerMemberShipCredentials()', () => {
-  //   let data: {
-  //     status: string;
-  //     connectionId: string;
-  //     theirLabel: string;
-  //     participantDID: string;
-  //     theirDid: string;
-  //   };
-  //   let attestationResponse: ResponseType;
-
-  //   beforeEach(async () => {
-  //     data = {
-  //       status: 'status',
-  //       connectionId: credentialDto().connectionId,
-  //       theirLabel: credentialDto().principalDid || '',
-  //       participantDID,
-  //       theirDid: credentialDto().principalDid || '',
-  //     };
-
-  //     attestationResponse =
-  //       await attestationController.offerMemberShipCredentials(data);
-  //   });
-
-  //   it('should call issueMemberCredentials() from service', async () => {
-  //     expect(attestationService.issueMemberCredentials).toHaveBeenCalled();
-  //   });
-
-  // it('should retrieve created credential', async () => {
-  //   expect(
-  //     attestationService.issueMemberCredentials({
-  //       ...data,
-  //       credDefId: credentialDto().credDefId,
-  //       attributes: offerCredentialDto().attributes,
-  //       autoAcceptCredential: offerCredentialDto().autoAcceptCredential,
-  //     }),
-  //   ).not.toBe(null);
-  // });
-
-  //   it(`should retrieve HTTP status accepted(${HttpStatus.OK})`, async () => {
-  //     expect(attestationResponse?.statusCode).toEqual(HttpStatus.OK);
-  //   });
-  // });
-
-  describe('createCredentialType()', () => {
-    let attestationResponse: ResponseType;
-    let body: CredentialTypeDto;
-
-    beforeEach(async () => {
-      body = credentialTypeDto();
-
-      attestationResponse =
-        await attestationController.createCredentialType(body);
-    });
-
-    it('should call createCredentialsType() from service', async () => {
-      expect(attestationService.createCredentialsType).toHaveBeenCalled();
-    });
-
-    it('should retrieve created updated credential-type', async () => {
-      expect(attestationService.createCredentialsType(body)).toEqual(
-        credentialTypeDto(),
-      );
-    });
-
-    it(`should retrieve HTTP status created(${HttpStatus.CREATED})`, async () => {
-      expect(attestationResponse?.statusCode).toEqual(HttpStatus.CREATED);
-    });
-  });
-
-  // describe('getCredential()', () => {
-  //   let attestationResponse: Response<string, Record<string, any>>;
-  //   let query: { credentialId: string; participantId: string };
-
-  //   beforeEach(async () => {
-  //     query = {
-  //       credentialId: credentialDto().credentialId,
-  //       participantId: credentialDto().participantId || '',
-  //     };
-
-  //     attestationResponse = await attestationController.acceptOfferCredential(query);
-  //   });
-  // });
-});
diff --git a/apps/attestation-manager/src/issue-credential/tests/module.spec.ts b/apps/attestation-manager/src/issue-credential/tests/module.spec.ts
deleted file mode 100644
index 2a6c80058e425922272bfc8e9f4197ab19d7e8fb..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/module.spec.ts
+++ /dev/null
@@ -1,66 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-
-import { HttpModule } from '@nestjs/axios';
-import { Test } from '@nestjs/testing';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import NatsClientServiceMock from '../../client/tests/__mocks__/nats.client.js';
-import RestClientServiceMock from '../../client/tests/__mocks__/rest.client.js';
-import CredentialDefService from '../../credentialDef/services/service.js';
-import CredentialDefServiceMock from '../../credentialDef/tests/__mocks__/service.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import PrismaServiceMock from '../../prisma/tests/__mocks__/prisma.service.js';
-import AttestationModule from '../module.js';
-import AttestationService from '../services/service.js';
-
-import AttestationServiceMock from './__mocks__/service.js';
-
-describe('AttestationModule', () => {
-  let attestationModule: AttestationModule;
-
-  const AttestationServiceProvider = {
-    provide: AttestationService,
-    useFactory: AttestationServiceMock,
-  };
-
-  const CredentialDefServiceProvider = {
-    provide: CredentialDefService,
-    useFactory: CredentialDefServiceMock,
-  };
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  const NatsClientServiceProvider = {
-    provide: NatsClientService,
-    useFactory: NatsClientServiceMock,
-  };
-
-  const RestClientServiceProvider = {
-    provide: RestClientService,
-    useFactory: RestClientServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [
-        AttestationModule,
-        AttestationServiceProvider,
-        CredentialDefServiceProvider,
-        PrismaServiceProvider,
-        NatsClientServiceProvider,
-        RestClientServiceProvider,
-      ],
-    }).compile();
-
-    attestationModule = module.get<AttestationModule>(AttestationModule);
-  });
-
-  it('should be defined', () => {
-    expect(attestationModule).toBeDefined();
-  });
-});
diff --git a/apps/attestation-manager/src/issue-credential/tests/service.spec.ts b/apps/attestation-manager/src/issue-credential/tests/service.spec.ts
deleted file mode 100644
index eb985da36467ce9af93d1fdf5f7708c2c1d479be..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/service.spec.ts
+++ /dev/null
@@ -1,299 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-import type { TestingModule } from '@nestjs/testing';
-import type { Credential, CredentialsType } from '@prisma/client';
-
-import { HttpModule } from '@nestjs/axios';
-import { ConfigService } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import NatsClientServiceMock from '../../client/tests/__mocks__/nats.client.js';
-import RestClientServiceMock from '../../client/tests/__mocks__/rest.client.js';
-import TSAClientServiceMock from '../../client/tests/__mocks__/tsa.client.js';
-import { natsConnectionResponse } from '../../client/tests/stubs/nats-response.js';
-import TSAClientService from '../../client/tsa.client.js';
-import CredentialDefService from '../../credentialDef/services/service.js';
-import CredentialDefServiceMock from '../../credentialDef/tests/__mocks__/service.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import PrismaServiceMock from '../../prisma/tests/__mocks__/prisma.service.js';
-import AttestationService from '../services/service.js';
-
-import credentialDto from './stubs/credential-dto.js';
-import credentialsTypeDto from './stubs/credential-type-dto.js';
-
-describe('AttestationService', () => {
-  let attestationService: AttestationService;
-  let spyGetConnectionByID: jest.SpyInstance;
-
-  const CredentialDefServiceProvider = {
-    provide: CredentialDefService,
-    useFactory: CredentialDefServiceMock,
-  };
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  const NatsClientServiceProvider = {
-    provide: NatsClientService,
-    useFactory: NatsClientServiceMock,
-  };
-
-  const RestClientServiceProvider = {
-    provide: RestClientService,
-    useFactory: RestClientServiceMock,
-  };
-
-  const TSAClientServiceProvider = {
-    provide: TSAClientService,
-    useFactory: TSAClientServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [
-        AttestationService,
-        CredentialDefServiceProvider,
-        PrismaServiceProvider,
-        RestClientServiceProvider,
-        NatsClientServiceProvider,
-        TSAClientServiceProvider,
-        ConfigService,
-      ],
-    }).compile();
-
-    attestationService = module.get<AttestationService>(AttestationService);
-
-    jest.clearAllMocks();
-  });
-
-  it('should be defined', () => {
-    expect(attestationService).toBeDefined();
-  });
-
-  // describe('createOfferCredential()', () => {
-  //   let attestationResponse: ResponseType;
-
-  //   beforeEach(async () => {
-  //     jest
-  //       .spyOn(attestationService, 'getSchemaAndAttributesBySchemaIDFromLedger')
-  //       .mockImplementation(
-  //         AttestationServiceMock().getSchemaAndAttributesBySchemaIDFromLedger,
-  //       );
-
-  //     attestationResponse = await attestationService.createOfferCredential(
-  //       offerCredentialDto(),
-  //     );
-  //   });
-
-  //   it('should call post() from restClient', async () => {
-  //     expect(RestClientServiceMock().post).toHaveBeenCalled();
-  //   });
-
-  //   it('should get a response from AFJ', async () => {
-  //     expect(attestationResponse).not.toBe(null);
-  //   });
-  // });
-
-  describe('acceptRequestCredential()', () => {
-    let attestationResponse: ResponseType;
-
-    beforeEach(async () => {
-      attestationResponse = await attestationService.acceptRequestCredential(
-        credentialDto().credentialId,
-      );
-    });
-
-    it('should call post() from restClient', async () => {
-      expect(RestClientServiceMock().post).toHaveBeenCalled();
-    });
-
-    it('should get a response from AFJ', async () => {
-      expect(attestationResponse).not.toBe(null);
-    });
-  });
-
-  describe('createCredential()', () => {
-    beforeEach(async () => {
-      spyGetConnectionByID = jest.spyOn(
-        attestationService,
-        'getConnectionByID',
-      );
-
-      await attestationService.createCredential(credentialDto());
-    });
-
-    it('should call getConnectionByID()', async () => {
-      expect(spyGetConnectionByID).toHaveBeenCalled();
-    });
-
-    it('should call create() from PrismaService.credential', async () => {
-      expect(PrismaServiceMock().credential.create).toHaveBeenCalled();
-    });
-  });
-
-  describe('getConnectionByID()', () => {
-    let attestationResponse: ResponseType;
-
-    beforeEach(async () => {
-      attestationResponse = await attestationService.getConnectionByID(
-        credentialDto().connectionId,
-      );
-    });
-
-    it('should call getConnectionById() from NatsClientService', async () => {
-      expect(NatsClientServiceMock().getConnectionById).toHaveBeenCalled();
-    });
-
-    it('should receive connection details from NatsClientService', async () => {
-      expect(attestationResponse).toEqual(natsConnectionResponse);
-    });
-  });
-
-  describe('updateCredential()', () => {
-    let attestationResponse: Credential;
-
-    beforeEach(async () => {
-      attestationResponse =
-        await attestationService.updateCredential(credentialDto());
-    });
-
-    it('should call update() from PrismaService.credential', async () => {
-      expect(PrismaServiceMock().credential.update).toHaveBeenCalled();
-    });
-
-    it('should retreive updated credential', async () => {
-      expect(attestationResponse).toEqual(credentialDto());
-    });
-  });
-
-  describe('findCredentialById()', () => {
-    let attestationResponse: Credential | null;
-    let id: string;
-
-    beforeEach(async () => {
-      id = credentialDto().credDefId;
-
-      attestationResponse = await attestationService.findCredentialById(id);
-    });
-
-    it('should call findUnique() from PrismaService.credential', async () => {
-      expect(PrismaServiceMock().credential.findUnique).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema by ID', async () => {
-      expect(attestationResponse).toEqual(credentialDto());
-    });
-  });
-
-  describe('findCredential()', () => {
-    let attestationResponse: Array<number | Credential[]>;
-
-    beforeEach(async () => {
-      attestationResponse = await attestationService.findCredential(
-        10,
-        10,
-        false,
-        false,
-        false,
-        false,
-        false,
-        false,
-        false,
-        false,
-        false,
-      );
-    });
-
-    it('should call findMany() from PrismaService.credential', async () => {
-      expect(PrismaServiceMock().credential.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.credential', async () => {
-      expect(PrismaServiceMock().credential.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema by ID', async () => {
-      expect(attestationResponse).toEqual([1, [credentialDto()]]);
-    });
-  });
-
-  // describe('issueMemberCredentials()', () => {
-  //   let attestationResponse: any;
-
-  //   beforeEach(async () => {
-  //     spyCreateOfferCredential = jest.spyOn(
-  //       attestationService,
-  //       'createOfferCredential',
-  //     );
-
-  //     attestationResponse = await attestationService.issueMemberCredentials({
-  //       status: credentialDto().state,
-  //       connectionId: credentialDto().connectionId,
-  //       theirLabel: credentialDto().principalDid || '',
-  //       participantDID,
-  //       credDefId: credentialDto().credDefId,
-  //       theirDid: credentialDto().principalDid || '',
-  //       attributes: [
-  //         { name: 'foo', value: 'bar' },
-  //         { name: 'foo', value: 'bar' },
-  //         { name: 'foo', value: 'bar' },
-  //       ],
-  //       autoAcceptCredential: 'never',
-  //     });
-  //   });
-
-  //   it('should call createOfferCredential()', async () => {
-  //     expect(spyCreateOfferCredential).toHaveBeenCalled();
-  //   });
-
-  //   it('should get a response from AFJ', async () => {
-  //     expect(attestationResponse).not.toBe(null);
-  //   });
-  // });
-
-  describe('getPrincipalMemberShipCredentials()', () => {
-    let attestationResponse: CredentialsType | null;
-    let data: {
-      type: string;
-    };
-
-    beforeEach(async () => {
-      data = { type: credentialsTypeDto().type };
-      attestationResponse =
-        await attestationService.getPrincipalMemberShipCredentials(data);
-    });
-
-    it('should call findUnique() from PrismaService.credentialsType', async () => {
-      expect(PrismaServiceMock().credentialsType.findFirst).toHaveBeenCalled();
-    });
-
-    it('should get principal member credentials type', async () => {
-      expect(attestationResponse).toEqual(credentialsTypeDto());
-    });
-  });
-
-  describe('createCredentialsType()', () => {
-    let attestationResponse: CredentialsType;
-
-    beforeEach(async () => {
-      attestationResponse =
-        await attestationService.createCredentialsType(credentialsTypeDto());
-    });
-
-    it('should call create() from PrismaService.credentialsType', async () => {
-      expect(PrismaServiceMock().credentialsType.create).toHaveBeenCalled();
-    });
-
-    it('should retrieve created credetialType', async () => {
-      expect(attestationResponse).toEqual(credentialsTypeDto());
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/issue-credential/tests/stubs/credential-dto.ts b/apps/attestation-manager/src/issue-credential/tests/stubs/credential-dto.ts
deleted file mode 100644
index fab4af572d03281726ec430ec81b51b93c86efd4..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/stubs/credential-dto.ts
+++ /dev/null
@@ -1,15 +0,0 @@
-import type CredentialDto from '../../entities/credential.entity.js';
-
-import credDefStub from '../../../credentialDef/tests/stubs/credDef.stub.js';
-import AttestationService from '../../services/service.js';
-
-const credentialDto = (): CredentialDto => ({
-  credentialId: 'credential-id',
-  credDefId: credDefStub().id,
-  principalDid: 'principal-did',
-  threadId: 'thread-id',
-  state: AttestationService.status.OFFER_SENT,
-  connectionId: 'connection-id',
-});
-
-export default credentialDto;
diff --git a/apps/attestation-manager/src/issue-credential/tests/stubs/credential-state-dto.ts b/apps/attestation-manager/src/issue-credential/tests/stubs/credential-state-dto.ts
deleted file mode 100644
index f0fbf805fbb90f59808ff53c64ab704f8cae3c5b..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/stubs/credential-state-dto.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import type CredentialStateDto from '../../entities/credential.state.entity.js';
-
-import credDefStub from '../../../credentialDef/tests/stubs/credDef.stub.js';
-
-import credentialDto from './credential-dto.js';
-
-const credentialStateDto = (): CredentialStateDto => ({
-  id: 'credential-state-id',
-  metadata: {
-    '_internal/indyCredential': {
-      credentialDefinitionId: credentialDto().credDefId,
-      schemaId: credDefStub().schemaID,
-    },
-  },
-  credDefId: credentialDto().credDefId,
-  state: credentialDto().state,
-  threadId: 'thread-id',
-  connectionId: credentialDto().connectionId,
-});
-
-export default credentialStateDto;
diff --git a/apps/attestation-manager/src/issue-credential/tests/stubs/credential-type-dto.ts b/apps/attestation-manager/src/issue-credential/tests/stubs/credential-type-dto.ts
deleted file mode 100644
index 1a888d009f78f673df815d37a23d8392f2a98a73..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/stubs/credential-type-dto.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import type CredentialTypeDto from '../../entities/credentialType.entity.js';
-
-import schemaDto from '../../../schemas/tests/stubs/schema-dto.js';
-
-const credentialsTypeDto = (): CredentialTypeDto => ({
-  id: 'credential-type-id',
-  schemaId: schemaDto().schemaID,
-  type: 'type',
-});
-
-export default credentialsTypeDto;
diff --git a/apps/attestation-manager/src/issue-credential/tests/stubs/offer-credential-dto.ts b/apps/attestation-manager/src/issue-credential/tests/stubs/offer-credential-dto.ts
deleted file mode 100644
index 4cb587309d084b352e761a67b2f67fb3384e2a20..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/stubs/offer-credential-dto.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import type OfferCredentialDto from '../../entities/entity.js';
-
-import schemaDto from '../../../schemas/tests/stubs/schema-dto.js';
-
-import credentialDto from './credential-dto.js';
-
-const offerCredentialDto = (): OfferCredentialDto => ({
-  connectionId: credentialDto().connectionId,
-  credentialDefinitionId: credentialDto().credDefId,
-  comment: 'Test Comment!!',
-  attributes: schemaDto().attributes.map((attr: string) => ({
-    name: attr,
-    value: attr,
-  })),
-  autoAcceptCredential: 'never',
-});
-
-export default offerCredentialDto;
diff --git a/apps/attestation-manager/src/issue-credential/tests/stubs/participantDID.stub.ts b/apps/attestation-manager/src/issue-credential/tests/stubs/participantDID.stub.ts
deleted file mode 100644
index 3d995de13e4ed79dcd22f447b80489d184005512..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/issue-credential/tests/stubs/participantDID.stub.ts
+++ /dev/null
@@ -1,3 +0,0 @@
-const participantDID = 'participant-did';
-
-export default participantDID;
diff --git a/apps/attestation-manager/src/main.ts b/apps/attestation-manager/src/main.ts
deleted file mode 100644
index 967a1fd4464c47ac570a459f0d796b50469e33b9..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/main.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import type { MicroserviceOptions } from '@nestjs/microservices';
-
-import { VersioningType } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { HttpAdapterHost, NestFactory } from '@nestjs/core';
-import { Transport } from '@nestjs/microservices';
-import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
-
-import AppModule from './app.module.js';
-import AllExceptionsFilter from './utils/exceptionsFilter.js';
-import logger from './utils/logger.js';
-
-const app = await NestFactory.create(AppModule);
-const configService = app.get(ConfigService);
-app.enableCors();
-
-app.connectMicroservice<MicroserviceOptions>({
-  transport: Transport.NATS,
-  options: {
-    servers: [configService.get('nats').url],
-  },
-});
-
-app.enableVersioning({
-  defaultVersion: ['1'],
-  type: VersioningType.URI,
-});
-
-const swaggerConfig = new DocumentBuilder()
-  .setTitle('Gaia-x Attestation Manager API')
-  .setDescription('API documentation for GAIA-X Attestation Manager')
-  .setVersion('1.0')
-  .addServer('localhost:3005')
-  .build();
-
-const document = SwaggerModule.createDocument(app, swaggerConfig);
-
-SwaggerModule.setup('/swagger', app, document);
-await app.startAllMicroservices();
-
-const httpAdapter = app.get(HttpAdapterHost);
-app.useGlobalFilters(new AllExceptionsFilter(httpAdapter));
-
-await app.listen(configService.get('PORT') || 3000, () => {
-  logger.info(`Listening on Port:${configService.get('PORT')}` || 3000);
-});
diff --git a/apps/attestation-manager/src/middleware/auth.middleware.ts b/apps/attestation-manager/src/middleware/auth.middleware.ts
deleted file mode 100644
index fbbe618c91029c3b6b6dc93d8699d5dff49ef4fd..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/middleware/auth.middleware.ts
+++ /dev/null
@@ -1,86 +0,0 @@
-import type { NestMiddleware } from '@nestjs/common';
-import type { NextFunction, Request, Response } from 'express';
-
-import { HttpStatus, Injectable } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import * as jwt from 'jsonwebtoken';
-import jwksClient from 'jwks-rsa';
-
-import logger from '../utils/logger.js';
-
-@Injectable()
-export class AuthMiddleware implements NestMiddleware {
-  public constructor(private readonly configService: ConfigService) {}
-
-  /* eslint-disable */
-  async use(req: Request, res: Response, next: NextFunction) {
-    if (this.configService.get('auth.useAuth') === 'false') {
-      return next();
-    }
-
-    logger.info('Request at middleware');
-
-    const authHeader = req.headers.authorization;
-    const authToken = authHeader && authHeader.split(' ')[1];
-
-    if (!authToken) {
-      logger.error('No access token provided.');
-      res.json({
-        status: HttpStatus.UNAUTHORIZED,
-        message: 'Unauthorized. No Access token provided.',
-        data: undefined,
-      });
-      return;
-    }
-
-    const getKey = (
-      header: jwt.JwtHeader,
-      callback: jwt.SigningKeyCallback,
-    ): void => {
-      const jwksUri = this.configService.get('auth.tokenUrl') || '';
-      const client = jwksClient({ jwksUri, timeout: 30000 });
-
-      client
-        .getSigningKey(header.kid)
-        .then((key) => callback(null, key.getPublicKey()))
-        .catch(callback);
-    };
-
-    function verify(token: string): Promise<any> | undefined {
-      return new Promise(
-        (resolve: (decoded: any) => void, reject: (error: Error) => void) => {
-          const verifyCallback: jwt.VerifyCallback<jwt.JwtPayload | string> = (
-            error: jwt.VerifyErrors | null,
-            decoded: any,
-          ): void => {
-            if (error) {
-              return reject(error);
-            }
-            return resolve(decoded);
-          };
-
-          jwt.verify(token, getKey, verifyCallback);
-        },
-      );
-    }
-
-    const result = await verify(authToken);
-
-    if (!result) {
-      logger.error('Invalid access token provided.');
-      res.json({
-        status: HttpStatus.UNAUTHORIZED,
-        message: 'Unauthorized. Invalid Access token provided.',
-        data: undefined,
-      });
-      return;
-    }
-
-    next();
-  }
-  /* eslint-enable */
-}
-
-export default {
-  AuthMiddleware,
-};
diff --git a/apps/attestation-manager/src/prisma/prisma.module.ts b/apps/attestation-manager/src/prisma/prisma.module.ts
deleted file mode 100644
index 5833b53716d07f07937afdbb7025378941526f62..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/prisma/prisma.module.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { Module } from '@nestjs/common';
-import { ConfigModule } from '@nestjs/config';
-
-import PrismaService from './prisma.service.js';
-
-@Module({
-  imports: [ConfigModule],
-  controllers: [],
-  providers: [PrismaService],
-  exports: [PrismaService],
-})
-export default class PrismaModule {}
diff --git a/apps/attestation-manager/src/prisma/prisma.service.ts b/apps/attestation-manager/src/prisma/prisma.service.ts
deleted file mode 100644
index 07142ad4f30883adcb9fc3eddd5fbbfed44931ff..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/prisma/prisma.service.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import type { OnModuleDestroy, OnModuleInit } from '@nestjs/common';
-
-import { Injectable } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-import { PrismaClient } from '@prisma/client';
-
-@Injectable()
-export default class PrismaService
-  extends PrismaClient
-  implements OnModuleInit, OnModuleDestroy
-{
-  public constructor(private configService: ConfigService) {
-    super();
-  }
-
-  public async onModuleInit() {
-    const prisma = new PrismaClient({
-      datasources: {
-        db: {
-          url: this.configService.get('DATABASE_URL'),
-        },
-      },
-    });
-    await prisma.$connect();
-  }
-
-  public async onModuleDestroy() {
-    await this.$disconnect();
-  }
-}
diff --git a/apps/attestation-manager/src/prisma/schema.prisma b/apps/attestation-manager/src/prisma/schema.prisma
deleted file mode 100644
index 96a4e4144fbc4c7f9e2b1d4c834cf1031def2300..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/prisma/schema.prisma
+++ /dev/null
@@ -1,92 +0,0 @@
-generator client {
-  provider = "prisma-client-js"
-}
-
-datasource db {
-  provider = "postgresql"
-  url      = env("DATABASE_URL")
-}
-
-model Schema {
-  id              String          @id @default(uuid())
-  schemaID        String          @unique @map("schema_id")
-  name            String
-  createdBy       String          @map("created_by")
-  createdDate     DateTime        @default(now()) @map("created_date")
-  updatedBy       String          @default("") @map("updated_by")
-  updatedDate     DateTime        @default(now()) @map("updated_date")
-  attribute       Attributes[]
-  credential_defs CredentialDef[]
-}
-
-model Attributes {
-  id           String    @id @default(uuid())
-  schemaID     String    @map("schema_id")
-  name         String
-  createdBy    String    @map("created_by")
-  createdDate  DateTime  @default(now())  @map("created_date")
-  updatedBy    String    @default("")     @map("updated_by")
-  updatedDate  DateTime  @default(now())  @map("updated_date")
-  schema       Schema[]
-}
-
-model CredentialDef {
-  id            String       @id @default(uuid())
-  schemaID      String       @map("schema_id")
-  name          String
-  credDefId     String       @unique  @map("cred_def_id")
-  isAutoIssue   Boolean      @map("is_auto_issue")
-  isRevokable   Boolean      @map("is_revokable")
-  expiryHours   String       @map("expiry_hours")
-  createdBy     String       @map("created_by")
-  createdDate   DateTime     @default(now())    @map("created_date")
-  updatedBy     String       @default("")       @map("updated_by")
-  updatedDate   DateTime     @default(now())    @map("updated_date")
-  schema        Schema[]
-  credentials   Credential[]
-}
-
-model UserInfo {
-  id                     Int      @id @default(autoincrement())
-  connectionId           String   @map("connection_id")
-  credentialDefinitionId String?  @map("credential_definition_id")
-  autoAcceptCredential   String   @map("auto_accept_credential")
-  status                 String?
-  userInfo               Json?    @map("user_info")
-}
-
-model proposeCredential {
-  id                     Int      @id @default(autoincrement())
-  connectionId           String   @map("connection_id")
-  comment                String
-  credentialProposal     String[] @map("credential_proposal")
-  schemaIssuerDid        String   @map("schema_issuer_id")
-  schemaId               String   @map("schema_id")
-  schemaName             String   @map("schema_name")
-  schemaVersion          String   @map("schema_version")
-  credentialDefinitionId String   @map("credential_definition_id")
-  issuerDid              String   @map("issuer_did")
-  attachments            String
-  linkedAttachments      String   @map("linked_attachments")
-  autoAcceptCredential   String   @map("auto_accept_credential")
-}
-
-model Credential {
-  id             String          @id @default(uuid())
-  credentialId   String          @unique @map("credential_id")
-  credDefId      String          @map("cred_def_id")
-  threadId        String          @default(uuid()) @unique @map("thread_id")
-  state          String
-  principalDid   String          @map("principal_did")
-  connectionId   String          @map("connection_id")
-  createdDate    DateTime        @default(now()) @map("created_date")
-  updatedDate    DateTime        @default(now()) @map("updated_date")
-  expirationDate DateTime?       @map("expiration_date")
-  credentialDef  CredentialDef[]
-}
-
-model CredentialsType {
-  id       String @id @default(uuid())
-  type     String @unique
-  schemaId String @unique @map("schema_id")
-}
diff --git a/apps/attestation-manager/src/prisma/tests/__mocks__/prisma.service.ts b/apps/attestation-manager/src/prisma/tests/__mocks__/prisma.service.ts
deleted file mode 100644
index 08077a3ecca083c2254550f60e3bdfcb9cabfa3b..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/prisma/tests/__mocks__/prisma.service.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import credDefStub from '../../../credentialDef/tests/stubs/credDef.stub.js';
-import credentialDto from '../../../issue-credential/tests/stubs/credential-dto.js';
-import credentialTypeDto from '../../../issue-credential/tests/stubs/credential-type-dto.js';
-import schemaDto from '../../../schemas/tests/stubs/schema-dto.js';
-
-const PrismaServiceMock = jest.fn().mockReturnValue({
-  $transaction: jest.fn().mockImplementation((args: unknown[]) => [...args]),
-  schema: {
-    create: jest.fn().mockReturnValue([schemaDto()]),
-    update: jest.fn().mockReturnValue([schemaDto()]),
-    count: jest.fn().mockReturnValue(1),
-    findMany: jest.fn().mockReturnValue([schemaDto()]),
-  },
-  credentialDef: {
-    create: jest.fn().mockReturnValue([credDefStub()]),
-    update: jest.fn().mockReturnValue([credDefStub()]),
-    count: jest.fn().mockReturnValue(1),
-    findMany: jest.fn().mockReturnValue([credDefStub()]),
-    findFirst: jest.fn().mockReturnValue(credDefStub()),
-  },
-  credential: {
-    create: jest.fn().mockReturnValue(credentialDto()),
-    update: jest.fn().mockReturnValue(credentialDto()),
-    findUnique: jest.fn().mockReturnValue(credentialDto()),
-    count: jest.fn().mockReturnValue(1),
-    findMany: jest.fn().mockReturnValue([credentialDto()]),
-  },
-  credentialsType: {
-    update: jest.fn().mockReturnValue(credentialTypeDto()),
-    create: jest.fn().mockReturnValue(credentialTypeDto()),
-    findUnique: jest.fn().mockReturnValue(credentialTypeDto()),
-    findFirst: jest.fn().mockReturnValue(credentialTypeDto()),
-  },
-});
-
-export default PrismaServiceMock;
diff --git a/apps/attestation-manager/src/prisma/tests/prisma.module.spec.ts b/apps/attestation-manager/src/prisma/tests/prisma.module.spec.ts
deleted file mode 100644
index dc6edda86655c5167eafa49969e76614ef93ac2a..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/prisma/tests/prisma.module.spec.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-
-import { ConfigModule } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-
-import PrismaModule from '../prisma.module.js';
-import PrismaService from '../prisma.service.js';
-
-import PrismaServiceMock from './__mocks__/prisma.service.js';
-
-describe('PrismaModule', () => {
-  let prismaModule: PrismaModule;
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [ConfigModule],
-      providers: [PrismaModule, PrismaServiceProvider],
-      exports: [PrismaService],
-    }).compile();
-
-    prismaModule = module.get<PrismaService>(PrismaService);
-  });
-
-  it('should be defined', () => {
-    expect(prismaModule).toBeDefined();
-  });
-});
diff --git a/apps/attestation-manager/src/prisma/tests/prisma.service.spec.ts b/apps/attestation-manager/src/prisma/tests/prisma.service.spec.ts
deleted file mode 100644
index e0cfff6670f4bc0ee24666f4560919f59f9188c5..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/prisma/tests/prisma.service.spec.ts
+++ /dev/null
@@ -1,46 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-
-import { ConfigService } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-
-import PrismaService from '../prisma.service.js';
-
-describe('PrismaService', () => {
-  let prismaService: PrismaService;
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      providers: [PrismaService, ConfigService],
-    }).compile();
-
-    prismaService = module.get<PrismaService>(PrismaService);
-  });
-
-  it('should be defined', () => {
-    expect(prismaService).toBeDefined();
-  });
-
-  describe('onModuleInit()', () => {
-    let res: unknown;
-
-    beforeEach(async () => {
-      res = await prismaService.onModuleInit();
-    });
-
-    it('should not return anything', async () => {
-      expect(res).toBeUndefined();
-    });
-  });
-
-  describe('onModuleDestroy()', () => {
-    let res: unknown;
-
-    beforeEach(async () => {
-      res = await prismaService.onModuleDestroy();
-    });
-
-    it('should not return anything', async () => {
-      expect(res).toBeUndefined();
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/schemas/controller/controller.ts b/apps/attestation-manager/src/schemas/controller/controller.ts
deleted file mode 100644
index c24f4eeeb2dadd1ba2f9320096af6a5052698383..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/controller/controller.ts
+++ /dev/null
@@ -1,595 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-// eslint-disable-next-line @typescript-eslint/consistent-type-imports
-import type { Response } from 'express';
-
-import {
-  Body,
-  Controller,
-  Get,
-  HttpStatus,
-  InternalServerErrorException,
-  Param,
-  Post,
-  Query,
-  Res,
-  Version,
-} from '@nestjs/common';
-import {
-  ApiBody,
-  ApiOperation,
-  ApiParam,
-  ApiQuery,
-  ApiResponse,
-  ApiTags,
-} from '@nestjs/swagger';
-import { Prisma } from '@prisma/client';
-
-import { VersionRegex } from '../../common/constants.js';
-import logger from '../../utils/logger.js';
-import SchemaDto from '../entities/schema-entity.js';
-import SchemasService from '../services/service.js';
-
-@ApiTags('Schemas')
-@Controller('schemas')
-export default class SchemasController {
-  public constructor(private readonly schemasService: SchemasService) {}
-
-  @Version(['1'])
-  @ApiQuery({ name: 'page', required: false })
-  @ApiQuery({ name: 'pageSize', required: false })
-  @Get('')
-  @ApiOperation({
-    summary: 'Fetch a list of schemas',
-    description:
-      'This call provides capabilities to search schemas (which have been created by this OCM) by using pagination. This call returns a list of schemas and overall count of records. Every record contains schemaId, name, attributes',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Schemas fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Schemas fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Schemas fetched successfully',
-              data: {
-                count: 2,
-                records: [
-                  {
-                    id: '1234abcd',
-                    schemaID: 'loremipsum:test-01-01:1.0',
-                    name: 'test-01-01',
-                    createdBy: 'agentName',
-                    createdDate: '1970-01-01T00:00:28.343Z',
-                    updatedBy: '',
-                    updatedDate: '1970-01-01T00:00:28.343Z',
-                    attribute: [
-                      {
-                        name: 'attribute1',
-                      },
-                      {
-                        name: 'attribute2',
-                      },
-                      {
-                        name: 'attributeN',
-                      },
-                    ],
-                  },
-                  {
-                    id: '5678abcd',
-                    schemaID: 'loremipsum2:test2-01-01:1.0',
-                    name: 'test2-01-01',
-                    createdBy: 'agentName',
-                    createdDate: '1970-01-01T00:00:28.343Z',
-                    updatedBy: '',
-                    updatedDate: '1970-01-01T00:00:28.343Z',
-                    attribute: [
-                      {
-                        name: 'attribute1',
-                      },
-                      {
-                        name: 'attribute2',
-                      },
-                      {
-                        name: 'attributeN',
-                      },
-                    ],
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found.': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async findSchemas(
-    @Query() query: { pageSize: string; page: string },
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-    try {
-      logger.info('Schemas fetch successfully');
-      const result = await this.schemasService.findSchemas(
-        query.pageSize ? parseInt(query.pageSize, 10) : 10,
-        query.page ? parseInt(query.page, 10) : 0,
-      );
-      if (result) {
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Schemas fetched successfully',
-          data: {
-            count: result[0],
-            records: result[1],
-          },
-        };
-      } else {
-        response.status(HttpStatus.NOT_FOUND);
-        res = {
-          statusCode: HttpStatus.NOT_FOUND,
-          message: 'No Data found',
-        };
-      }
-      return response.send(res);
-    } catch (error: unknown) {
-      throw new InternalServerErrorException(
-        `Internal Server Error: ${Reflect.get(error || {}, 'message')}`,
-      );
-    }
-  }
-
-  @ApiParam({ name: 'id', type: 'string', description: 'Pass schema id' })
-  @Version(['1'])
-  @Get('/:id')
-  @ApiOperation({
-    summary: 'Fetch schema by id',
-    description:
-      'This call provides the capability to get schema data by providing schemaId. The schema data is the same which is returned from /v1/schemas endpoint and contains generic information about schema like schemaID, name, createdBy, createdDate, updatedBy, updatedDate, attribute',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Schema fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Schema fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Schema fetched successfully',
-              data: {
-                count: 1,
-                records: [
-                  {
-                    id: '1234abcd',
-                    schemaID: 'loremipsum:test-01-01:1.0',
-                    name: 'test-01-01',
-                    createdBy: 'agentName',
-                    createdDate: '1970-01-01T00:00:28.343Z',
-                    updatedBy: '',
-                    updatedDate: '1970-01-01T00:00:28.343Z',
-                    attribute: [
-                      {
-                        name: 'attribute1',
-                      },
-                      {
-                        name: 'attribute2',
-                      },
-                      {
-                        name: 'attributeN',
-                      },
-                    ],
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found.': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async findSchemasById(
-    @Param('id') id: string,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-    try {
-      logger.info('Schema fetched successfully');
-      const result = await this.schemasService.findSchemasById(id);
-      if (Array.isArray(result) && result[0] > 0) {
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Schema fetch successfully',
-          data: {
-            count: result[0],
-            records: result[1],
-          },
-        };
-      } else {
-        response.status(HttpStatus.NOT_FOUND);
-        res = {
-          statusCode: HttpStatus.NOT_FOUND,
-          message: 'No Data found',
-        };
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @Version(['1'])
-  @ApiBody({ type: SchemaDto })
-  @Post('')
-  @ApiOperation({
-    summary: 'Create a new schema',
-    description:
-      'This call provides the capability to create new schema on ledger by name, author, version, schema attributes and type. Later this schema can be used to issue new credential definition. This call returns an information about created schema.',
-  })
-  @ApiResponse({
-    status: HttpStatus.CREATED,
-    description: 'Schema created successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Schema created successfully': {
-            value: {
-              statusCode: 201,
-              message: 'Schema created successfully',
-              data: {
-                id: '1234qwer',
-                schemaID: 'loremipsum:2:test-02-01:1.0',
-                name: 'test-02-01',
-                createdBy: 'agentName',
-                createdDate: '1970-01-01T00:00:28.343Z',
-                updatedBy: '',
-                updatedDate: '1970-01-01T00:00:28.343Z',
-                attribute: [
-                  {
-                    name: 'attribute1',
-                  },
-                  {
-                    name: 'attribute2',
-                  },
-                  {
-                    name: 'attributeN',
-                  },
-                  {
-                    name: 'attributeN+1',
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description:
-      'Schema required following attributes ( name, createdBy, version, attributes )',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Schema required following attributes ( name, createdBy, version, attributes )':
-            {
-              value: {
-                statusCode: 400,
-                message:
-                  'Schema required following attributes ( name, createdBy, version, attributes )',
-              },
-            },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.BAD_REQUEST,
-    description: 'Could not get agent details. please try again.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Could not get agent details. please try again.': {
-            value: {
-              statusCode: 400,
-              message: 'Could not get agent details. please try again.',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.CONFLICT,
-    description: 'Schema already exists',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Schema already exists': {
-            value: {
-              statusCode: 409,
-              message: 'Schema already exists',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async createSchema(
-    @Body() createSchema: SchemaDto,
-    @Res() response: Response,
-  ) {
-    try {
-      let res: ResponseType;
-      if (
-        !(
-          createSchema.name &&
-          typeof createSchema.name === 'string' &&
-          createSchema.createdBy &&
-          typeof createSchema.createdBy === 'string' &&
-          createSchema.version &&
-          typeof createSchema.version === 'string' &&
-          VersionRegex.test(createSchema.version) &&
-          Array.isArray(createSchema.attributes) &&
-          createSchema.attributes.length > 0 &&
-          createSchema.attributes.every(
-            (i) => typeof i === 'string' && i.trim().length > 0,
-          )
-        )
-      ) {
-        res = {
-          statusCode: HttpStatus.BAD_REQUEST,
-          message:
-            'Schema required following attributes ( name, createdBy, version, attributes )',
-        };
-        return response.status(HttpStatus.BAD_REQUEST).send(res);
-      }
-      createSchema.attributes.push('expirationDate');
-      const schemaResponse =
-        await this.schemasService.checkSchemasByNameAndVersion(createSchema);
-      if (schemaResponse[0] === 0) {
-        const resp =
-          await this.schemasService.createSchemaOnLedger(createSchema);
-        if (resp?.id) {
-          const schemaRes: SchemaDto = createSchema;
-          schemaRes.schemaID = resp.id;
-          response.status(HttpStatus.CREATED);
-          res = {
-            statusCode: HttpStatus.CREATED,
-            message: 'Schema created successfully',
-            data: await this.schemasService.createSchemas(schemaRes),
-          };
-          logger.info('Schema created successfully');
-        } else {
-          response.status(HttpStatus.BAD_REQUEST);
-          res = {
-            statusCode: HttpStatus.BAD_REQUEST,
-            message: 'Could not get agent details. please try again.',
-          };
-        }
-      } else {
-        response.status(HttpStatus.CONFLICT);
-        res = {
-          statusCode: HttpStatus.CONFLICT,
-          message: 'Schema already exists',
-        };
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-
-  @Version(['1'])
-  @Get('/get-dids-for-schema/:id')
-  @ApiOperation({
-    summary: 'Fetch list of dids for schema id',
-    description:
-      'This call provides the capability to get principal dids. The format of the response is shown in the example. To issue credentials, you need to have a credential definition. This is a basic principle of this process. This credential definition is created by using the schema. Using this endpoint gives you all dids of participants to whom OCM issued credentials using specified schema.',
-  })
-  @ApiResponse({
-    status: HttpStatus.OK,
-    description: 'Schema DIDs fetched successfully',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Schema DIDs fetched successfully': {
-            value: {
-              statusCode: 200,
-              message: 'Schema DIDs fetched successfully',
-              data: {
-                total_credential_defs: 1,
-                principalDids: [
-                  {
-                    loremIpsumCredDef: ['1234did'],
-                  },
-                ],
-              },
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.NOT_FOUND,
-    description: 'No Data found.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'No Data found.': {
-            value: {
-              statusCode: HttpStatus.NOT_FOUND,
-              message: 'No Data found',
-            },
-          },
-        },
-      },
-    },
-  })
-  @ApiResponse({
-    status: HttpStatus.INTERNAL_SERVER_ERROR,
-    description: 'Internal Server Error.',
-    content: {
-      'application/json': {
-        schema: {},
-        examples: {
-          'Internal Server Error.': {
-            value: {
-              statusCode: 500,
-              timestamp: '1970-01-01T00:00:27.897Z',
-              message: 'Lorem Ipsum',
-            },
-          },
-        },
-      },
-    },
-  })
-  public async getDidsForSchema(
-    @Param('id') id: string,
-    @Res() response: Response,
-  ) {
-    let res: ResponseType;
-    try {
-      logger.info('Schema DIDs fetched successfully');
-      const result = await this.schemasService.getDidsForSchemasId(id);
-
-      if (result && result.length) {
-        const schema = result[0];
-        const credDefs = schema.credential_defs;
-        const principalDids = credDefs.map((cd) => ({
-          [cd.credDefId]: cd.credentials.map((cred) => cred.principalDid),
-        }));
-
-        const data = {
-          total_credential_defs: credDefs.length,
-          principalDids,
-        };
-
-        res = {
-          statusCode: HttpStatus.OK,
-          message: 'Schema DIDs fetched successfully',
-          data,
-        };
-      } else {
-        response.status(HttpStatus.NOT_FOUND);
-        res = {
-          statusCode: HttpStatus.NOT_FOUND,
-          message: 'No Data found',
-        };
-      }
-      return response.send(res);
-    } catch (error) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new InternalServerErrorException(error);
-      }
-    }
-  }
-}
diff --git a/apps/attestation-manager/src/schemas/entities/schema-entity.ts b/apps/attestation-manager/src/schemas/entities/schema-entity.ts
deleted file mode 100644
index ec6cbf58ae9b9837557f73cdb63a5a0ca2388164..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/entities/schema-entity.ts
+++ /dev/null
@@ -1,48 +0,0 @@
-import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
-import { IsString, IsNotEmpty } from 'class-validator';
-
-export default class SchemaDto {
-  @IsString()
-  @IsNotEmpty()
-  public id: string;
-
-  @IsString()
-  @IsNotEmpty()
-  public schemaID: string;
-
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public name: string;
-
-  @IsString()
-  @ApiProperty()
-  public createdBy: string;
-
-  @IsString()
-  public createdDate: Date;
-
-  @IsString()
-  public updatedBy?: string;
-
-  @IsString()
-  public updatedDate: Date;
-
-  @IsString()
-  @ApiProperty()
-  public version: string;
-
-  @IsString()
-  @ApiProperty()
-  public attributes: string[];
-
-  @IsString()
-  public pageSize?: string;
-
-  @IsString()
-  public page?: string;
-
-  @IsString()
-  @ApiPropertyOptional()
-  public type?: string;
-}
diff --git a/apps/attestation-manager/src/schemas/module.ts b/apps/attestation-manager/src/schemas/module.ts
deleted file mode 100644
index 7ec28d3f573ce6283bd6bfe94d20de502457ef0d..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/module.ts
+++ /dev/null
@@ -1,35 +0,0 @@
-import { HttpModule } from '@nestjs/axios';
-import { Module } from '@nestjs/common';
-import { ClientsModule, Transport } from '@nestjs/microservices';
-
-import NatsClientService from '../client/nats.client.js';
-import RestClientService from '../client/rest.client.js';
-import { NATSServices } from '../common/constants.js';
-import config from '../config/config.js';
-import PrismaService from '../prisma/prisma.service.js';
-
-import SchemasController from './controller/controller.js';
-import SchemasService from './services/service.js';
-
-@Module({
-  imports: [
-    HttpModule,
-    ClientsModule.register([
-      {
-        name: NATSServices.SERVICE_NAME,
-        transport: Transport.NATS,
-        options: {
-          servers: [config().nats.url as string],
-        },
-      },
-    ]),
-  ],
-  controllers: [SchemasController],
-  providers: [
-    SchemasService,
-    PrismaService,
-    NatsClientService,
-    RestClientService,
-  ],
-})
-export default class SchemasModule {}
diff --git a/apps/attestation-manager/src/schemas/repository/schema.respository.ts b/apps/attestation-manager/src/schemas/repository/schema.respository.ts
deleted file mode 100644
index 8b4500f58e4a8016cae2262a138df26dd0142d4b..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/repository/schema.respository.ts
+++ /dev/null
@@ -1,68 +0,0 @@
-import type { Prisma } from '@prisma/client';
-
-import { Injectable } from '@nestjs/common';
-
-import PrismaService from '../../prisma/prisma.service.js';
-
-@Injectable()
-export default class SchemaRepository {
-  public constructor(private readonly prismaService: PrismaService) {}
-
-  public async createSchema(data: Prisma.SchemaCreateInput) {
-    return this.prismaService.schema.create({
-      data,
-      include: {
-        attribute: {
-          select: {
-            name: true,
-          },
-        },
-      },
-    });
-  }
-
-  public async findSchemas(params: {
-    skip?: number;
-    take?: number;
-    cursor?: Prisma.SchemaWhereUniqueInput;
-    where?: Prisma.SchemaWhereInput;
-    orderBy?: Prisma.SchemaOrderByWithRelationInput;
-  }) {
-    const { skip, take, cursor, where, orderBy } = params;
-    return this.prismaService.$transaction([
-      this.prismaService.schema.count({
-        where,
-      }),
-      this.prismaService.schema.findMany({
-        skip,
-        take,
-        cursor,
-        where,
-        orderBy,
-        include: {
-          attribute: {
-            select: {
-              name: true,
-            },
-          },
-        },
-      }),
-    ]);
-  }
-
-  public async findUniqueSchema(params: {
-    where: Prisma.SchemaWhereUniqueInput;
-  }) {
-    const { where } = params;
-    return this.prismaService.schema.findUnique({
-      where,
-      include: {
-        attribute: {
-          select: {
-            name: true,
-          },
-        },
-      },
-    });
-  }
-}
diff --git a/apps/attestation-manager/src/schemas/services/service.ts b/apps/attestation-manager/src/schemas/services/service.ts
deleted file mode 100644
index e0e6ee398b7ed71613f08571c0b47033d7029c27..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/services/service.ts
+++ /dev/null
@@ -1,150 +0,0 @@
-import type SchemaDto from '../entities/schema-entity.js';
-import type { Prisma } from '@prisma/client';
-
-import { BadRequestException, Injectable } from '@nestjs/common';
-import { ConfigService } from '@nestjs/config';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import CredentialTypeRepository from '../../issue-credential/repository/credentialType.repository.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import pagination from '../../utils/pagination.js';
-import SchemaRepository from '../repository/schema.respository.js';
-
-@Injectable()
-export default class SchemasService {
-  private schemaRepository: SchemaRepository;
-
-  private credentialTypeRepository: CredentialTypeRepository;
-
-  public constructor(
-    private readonly prismaService: PrismaService,
-    private readonly restClient: RestClientService,
-    private readonly natsClient: NatsClientService,
-    private readonly configService: ConfigService,
-  ) {
-    this.schemaRepository = new SchemaRepository(this.prismaService);
-    this.credentialTypeRepository = new CredentialTypeRepository(
-      this.prismaService,
-    );
-  }
-
-  public async createSchemas(schema: SchemaDto) {
-    const query: {
-      schemaID: string;
-      name: string;
-      createdBy: string;
-      attribute: {
-        create: {
-          schemaID: string;
-          name: string;
-          createdBy: string;
-        }[];
-      };
-    } = {
-      schemaID: schema.schemaID,
-      name: schema.name,
-      createdBy: schema.createdBy,
-      attribute: {
-        create: [],
-      },
-    };
-    schema.attributes.forEach((element) => {
-      query.attribute.create.push({
-        schemaID: schema.schemaID,
-        name: element,
-        createdBy: schema.createdBy,
-      });
-    });
-
-    if (
-      schema.type &&
-      typeof schema.type === 'string' &&
-      schema.type.trim().length > 0
-    ) {
-      await this.credentialTypeRepository.createOrUpdateCredentialsType({
-        schemaId: query.schemaID,
-        type: schema.type.trim(),
-      });
-    }
-
-    return this.schemaRepository.createSchema(query);
-  }
-
-  public async findSchemas(pageSize: number, page: number) {
-    let query: {
-      skip?: number;
-      take?: number;
-      cursor?: Prisma.SchemaWhereUniqueInput;
-      where?: Prisma.SchemaWhereInput;
-      orderBy?: Prisma.SchemaOrderByWithRelationInput;
-    } = {};
-
-    query = { ...query, ...pagination(pageSize, page) };
-    return this.schemaRepository.findSchemas(query);
-  }
-
-  public async findSchemasById(id: string) {
-    return this.schemaRepository.findSchemas({
-      where: { schemaID: id },
-    });
-  }
-
-  public async getDidsForSchemasId(id: string) {
-    return this.prismaService.schema.findMany({
-      where: { schemaID: id },
-      include: {
-        attribute: true,
-        credential_defs: {
-          include: {
-            credentials: {
-              distinct: 'principalDid',
-            },
-          },
-        },
-      },
-    });
-  }
-
-  public findBySchemaId(schemaID: string) {
-    const query = { where: { schemaID } };
-    return this.schemaRepository.findUniqueSchema(query);
-  }
-
-  public async checkSchemasByNameAndVersion(schemaDto: SchemaDto) {
-    return this.schemaRepository.findSchemas({
-      where: {
-        schemaID: {
-          endsWith: `:${schemaDto.version}`,
-          mode: 'insensitive', // Default value: default
-        },
-        name: {
-          equals: schemaDto.name, // Default mode
-        },
-      },
-    });
-  }
-
-  public async createSchemaOnLedger(schemaDto: SchemaDto) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.post(
-      `${agentUrl}/schemas/`,
-      schemaDto,
-    );
-
-    return responseData;
-  }
-
-  public async getSchemaAndAttributesBySchemaIDFromLedger(schemaID: string) {
-    const agentUrl = this.configService.get('agent.AGENT_URL');
-    const responseData = await this.restClient.get(
-      `${agentUrl}/schemas/${schemaID}`,
-    );
-
-    if (!responseData?.id) {
-      throw new BadRequestException('Invalid schema ID');
-    }
-
-    return responseData;
-  }
-}
diff --git a/apps/attestation-manager/src/schemas/tests/__mocks__/service.ts b/apps/attestation-manager/src/schemas/tests/__mocks__/service.ts
deleted file mode 100644
index 2f05a0896616bbb9d6c3e70489233e44ee4079d0..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/tests/__mocks__/service.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import schemaDto from '../stubs/schema-dto.js';
-
-const SchemasServiceMock = jest.fn().mockReturnValue({
-  findSchemas: jest.fn().mockReturnValue([1, [schemaDto()]]),
-  findSchemasById: jest.fn().mockReturnValue([1, [schemaDto()]]),
-  findBySchemaId: jest.fn().mockReturnValue(schemaDto()),
-  checkSchemasByNameAndVersion: jest.fn().mockReturnValue([0, []]),
-  createSchemaOnLedger: jest.fn().mockReturnValue({ id: schemaDto().schemaID }),
-  createSchemas: jest.fn().mockReturnValue(schemaDto()),
-});
-
-export default SchemasServiceMock;
diff --git a/apps/attestation-manager/src/schemas/tests/controller.spec.ts b/apps/attestation-manager/src/schemas/tests/controller.spec.ts
deleted file mode 100644
index 7093ae8bb37b6bdc06fcf39c0f6f0ba5672167e0..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/tests/controller.spec.ts
+++ /dev/null
@@ -1,141 +0,0 @@
-import type SchemaDto from '../entities/schema-entity.js';
-import type { TestingModule } from '@nestjs/testing';
-import type { Response } from 'express';
-
-import { HttpStatus } from '@nestjs/common';
-import { Test } from '@nestjs/testing';
-import { createResponse } from 'node-mocks-http';
-
-import SchemasController from '../controller/controller.js';
-import SchemasService from '../services/service.js';
-
-import SchemasServiceMock from './__mocks__/service.js';
-import schemaDto from './stubs/schema-dto.js';
-
-describe('SchemasController', () => {
-  let schemasController: SchemasController;
-  let schemasService: SchemasService;
-
-  beforeEach(async () => {
-    const SchemasServiceProvider = {
-      provide: SchemasService,
-      useFactory: SchemasServiceMock,
-    };
-
-    const module: TestingModule = await Test.createTestingModule({
-      controllers: [SchemasController],
-      providers: [SchemasServiceProvider],
-    }).compile();
-
-    schemasController = module.get<SchemasController>(SchemasController);
-    schemasService = module.get<SchemasService>(SchemasService);
-    jest.clearAllMocks();
-  });
-
-  it('should be defined', () => {
-    expect(schemasController).toBeDefined();
-  });
-
-  describe('findSchemas()', () => {
-    let schemasResponse: Response<string, Record<string, unknown>>;
-    let query: SchemaDto;
-    let response: Response<string, Record<string, unknown>>;
-
-    beforeEach(async () => {
-      query = schemaDto();
-      response = createResponse();
-
-      schemasResponse = await schemasController.findSchemas(query, response);
-    });
-
-    it('should call findSchemas() from service', async () => {
-      expect(schemasService.findSchemas).toHaveBeenCalled();
-    });
-
-    it('should retrieve schemas by query', async () => {
-      expect(
-        schemasService.findSchemas(
-          query.pageSize ? parseInt(query.pageSize, 10) : 10,
-          query.page ? parseInt(query.page, 10) : 0,
-        ),
-      ).toEqual([1, [schemaDto()]]);
-    });
-
-    it(`should retrieve HTTP status OK(${HttpStatus.OK})`, async () => {
-      expect(schemasResponse?.statusCode).toEqual(HttpStatus.OK);
-    });
-  });
-
-  describe('findSchemasById()', () => {
-    let schemasResponse: Response<string, Record<string, unknown>>;
-    let id: string;
-    let response: Response<string, Record<string, unknown>>;
-
-    beforeEach(async () => {
-      id = schemaDto().schemaID || '';
-      response = createResponse();
-
-      schemasResponse = await schemasController.findSchemasById(id, response);
-    });
-
-    it('should call findSchemasById() from service', async () => {
-      expect(schemasService.findSchemasById).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema by ID', async () => {
-      expect(schemasService.findSchemasById(id)).toEqual([1, [schemaDto()]]);
-    });
-
-    it(`should retrieve HTTP status OK(${HttpStatus.OK})`, async () => {
-      expect(schemasResponse?.statusCode).toEqual(HttpStatus.OK);
-    });
-  });
-
-  describe('createSchema()', () => {
-    let schemasResponse: Response<string, Record<string, unknown>>;
-    let createSchema: SchemaDto;
-    let response: Response<string, Record<string, unknown>>;
-
-    beforeEach(async () => {
-      createSchema = schemaDto();
-      response = createResponse();
-
-      schemasResponse = await schemasController.createSchema(
-        createSchema,
-        response,
-      );
-    });
-
-    it('should call checkSchemasByNameAndVersion() from service', async () => {
-      expect(schemasService.checkSchemasByNameAndVersion).toHaveBeenCalled();
-    });
-
-    it('should not retrieve any existing schema', async () => {
-      expect(
-        schemasService.checkSchemasByNameAndVersion(createSchema),
-      ).toContain(0);
-    });
-
-    it('should call createSchemaOnLedger() from service', async () => {
-      expect(schemasService.createSchemaOnLedger).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema with ID', async () => {
-      expect(schemasService.createSchemaOnLedger(createSchema)).toEqual({
-        id: schemaDto().schemaID,
-      });
-    });
-
-    it('should call createSchemas() from service', async () => {
-      expect(schemasService.createSchemas).toHaveBeenCalled();
-    });
-
-    it('should retrieve created schema', async () => {
-      expect(schemasService.createSchemas(createSchema)).toEqual(schemaDto());
-    });
-
-    it(`should retrieve HTTP status created(${HttpStatus.CREATED})`, async () => {
-      expect(schemasResponse?.statusCode).toEqual(HttpStatus.CREATED);
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/schemas/tests/module.spec.ts b/apps/attestation-manager/src/schemas/tests/module.spec.ts
deleted file mode 100644
index 277195ce1e85991a979cca6cf8c20b01b8f45d0c..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/tests/module.spec.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import type { TestingModule } from '@nestjs/testing';
-
-import { HttpModule } from '@nestjs/axios';
-import { ConfigService } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import NatsClientServiceMock from '../../client/tests/__mocks__/nats.client.js';
-import RestClientServiceMock from '../../client/tests/__mocks__/rest.client.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import PrismaServiceMock from '../../prisma/tests/__mocks__/prisma.service.js';
-import SchemasModule from '../module.js';
-import SchemasService from '../services/service.js';
-
-import SchemasServiceMock from './__mocks__/service.js';
-
-describe('SchemasModule', () => {
-  let schemasModule: SchemasModule;
-
-  const SchemasServiceProvider = {
-    provide: SchemasService,
-    useFactory: SchemasServiceMock,
-  };
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  const NatsClientServiceProvider = {
-    provide: NatsClientService,
-    useFactory: NatsClientServiceMock,
-  };
-
-  const RestClientServiceProvider = {
-    provide: RestClientService,
-    useFactory: RestClientServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [
-        SchemasModule,
-        SchemasServiceProvider,
-        PrismaServiceProvider,
-        NatsClientServiceProvider,
-        RestClientServiceProvider,
-        ConfigService,
-      ],
-    }).compile();
-
-    schemasModule = module.get<SchemasModule>(SchemasModule);
-  });
-
-  it('should be defined', () => {
-    expect(schemasModule).toBeDefined();
-  });
-});
diff --git a/apps/attestation-manager/src/schemas/tests/service.spec.ts b/apps/attestation-manager/src/schemas/tests/service.spec.ts
deleted file mode 100644
index 79977aa7d9a6714034cc23c1e5dd1ea9d41c32c0..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/tests/service.spec.ts
+++ /dev/null
@@ -1,166 +0,0 @@
-import type { ResponseType } from '../../common/response.js';
-import type { TestingModule } from '@nestjs/testing';
-import type { Schema } from 'joi';
-
-import { HttpModule } from '@nestjs/axios';
-import { ConfigService } from '@nestjs/config';
-import { Test } from '@nestjs/testing';
-
-import NatsClientService from '../../client/nats.client.js';
-import RestClientService from '../../client/rest.client.js';
-import NatsClientServiceMock from '../../client/tests/__mocks__/nats.client.js';
-import RestClientServiceMock from '../../client/tests/__mocks__/rest.client.js';
-import PrismaService from '../../prisma/prisma.service.js';
-import PrismaServiceMock from '../../prisma/tests/__mocks__/prisma.service.js';
-import SchemasService from '../services/service.js';
-
-import schemaDto from './stubs/schema-dto.js';
-
-describe('SchemasService', () => {
-  let schemasService: SchemasService;
-
-  const PrismaServiceProvider = {
-    provide: PrismaService,
-    useFactory: PrismaServiceMock,
-  };
-
-  const NatsClientServiceProvider = {
-    provide: NatsClientService,
-    useFactory: NatsClientServiceMock,
-  };
-
-  const RestClientServiceProvider = {
-    provide: RestClientService,
-    useFactory: RestClientServiceMock,
-  };
-
-  beforeEach(async () => {
-    const module: TestingModule = await Test.createTestingModule({
-      imports: [HttpModule],
-      providers: [
-        SchemasService,
-        PrismaServiceProvider,
-        RestClientServiceProvider,
-        NatsClientServiceProvider,
-        ConfigService,
-      ],
-    }).compile();
-
-    schemasService = module.get<SchemasService>(SchemasService);
-  });
-
-  it('should be defined', () => {
-    expect(schemasService).toBeDefined();
-  });
-
-  describe('createSchemas()', () => {
-    let schemasResponse: Schema;
-
-    beforeEach(async () => {
-      schemasResponse = await schemasService.createSchemas(schemaDto());
-    });
-
-    it('should call create() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.create).toHaveBeenCalled();
-    });
-
-    it('should retrieve created schema', async () => {
-      expect(schemasResponse).toEqual([schemaDto()]);
-    });
-  });
-
-  describe('findSchemas()', () => {
-    let schemasResponse: Array<number | Schema[]>;
-
-    beforeEach(async () => {
-      const pageSize = parseInt(schemaDto().pageSize || '', 10);
-      const page = parseInt(schemaDto().page || '', 10);
-
-      schemasResponse = await schemasService.findSchemas(pageSize, page);
-    });
-
-    it('should call findMany() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve schemas by participantId', async () => {
-      expect(schemasResponse).toEqual([1, [schemaDto()]]);
-    });
-  });
-
-  describe('findSchemasById()', () => {
-    let schemasResponse: Array<number | Schema[]>;
-    let id: string;
-
-    beforeEach(async () => {
-      id = schemaDto().schemaID || '';
-
-      schemasResponse = await schemasService.findSchemasById(id);
-    });
-
-    it('should call findMany() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve schema by Schema ID', async () => {
-      expect(schemasResponse).toEqual([1, [schemaDto()]]);
-    });
-  });
-
-  describe('checkSchemasByNameAndVersion()', () => {
-    let schemasResponse: Array<number | Schema[]>;
-
-    beforeEach(async () => {
-      schemasResponse =
-        await schemasService.checkSchemasByNameAndVersion(schemaDto());
-    });
-
-    it('should call findMany() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.findMany).toHaveBeenCalled();
-    });
-
-    it('should call count() from PrismaService.schema', async () => {
-      expect(PrismaServiceMock().schema.count).toHaveBeenCalled();
-    });
-
-    it('should call $transaction() from PrismaService', async () => {
-      expect(PrismaServiceMock().$transaction).toHaveBeenCalled();
-    });
-
-    it('should retrieve schemas by Name and Version', async () => {
-      expect(schemasResponse).toEqual([1, [schemaDto()]]);
-    });
-  });
-
-  describe('createSchemaOnLedger()', () => {
-    let schemasResponse: ResponseType;
-
-    beforeEach(async () => {
-      schemasResponse = await schemasService.createSchemaOnLedger(schemaDto());
-    });
-
-    it('should call post() from restClient', async () => {
-      expect(RestClientServiceMock().post).toHaveBeenCalled();
-    });
-
-    it('should get a response from AFJ', async () => {
-      expect(schemasResponse).not.toBe(null);
-    });
-  });
-});
diff --git a/apps/attestation-manager/src/schemas/tests/stubs/schema-dto.ts b/apps/attestation-manager/src/schemas/tests/stubs/schema-dto.ts
deleted file mode 100644
index 7494244f0696559076226fa49e75e000a7727335..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/tests/stubs/schema-dto.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import type SchemaDto from '../../entities/schema-entity.js';
-
-const schemaDto = (): SchemaDto => ({
-  id: 'schema-db-id',
-  schemaID: 'schema-ledger-id',
-  name: 'schema-name',
-  createdBy: 'created-by',
-  createdDate: new Date(2022),
-  updatedBy: 'updated-by',
-  updatedDate: new Date(2022),
-  version: '0.0.1',
-  attributes: ['attr1', 'attr2', 'attr3'],
-  pageSize: '3',
-  page: '3',
-  type: 'testing',
-});
-
-export default schemaDto;
diff --git a/apps/attestation-manager/src/schemas/tests/stubs/schema-from-agent-dto.ts b/apps/attestation-manager/src/schemas/tests/stubs/schema-from-agent-dto.ts
deleted file mode 100644
index 450727eee5397967e27e33879c9bbe9a6f755a34..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/schemas/tests/stubs/schema-from-agent-dto.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import schemaDto from './schema-dto.js';
-
-const schemaAgentDto = {
-  ver: '1.0',
-  id: schemaDto().schemaID,
-  name: schemaDto().name,
-  version: schemaDto().version,
-  attrNames: [...schemaDto().attributes, 'expirationDate'],
-  seqNo: 335519,
-};
-
-export default schemaAgentDto;
diff --git a/apps/attestation-manager/src/tests/__mocks__/http-service.ts b/apps/attestation-manager/src/tests/__mocks__/http-service.ts
deleted file mode 100644
index 49016bf06278293c2749e2100387072af3a81f6b..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/tests/__mocks__/http-service.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-import { Observable } from 'rxjs';
-
-const HttpServiceMock = jest.fn().mockReturnValue({
-  post: jest.fn().mockReturnValue(
-    new Observable((subscriber) => {
-      subscriber.next({
-        data: {
-          sample: 'data',
-        },
-      });
-      subscriber.complete();
-    }),
-  ),
-});
-
-export default HttpServiceMock;
diff --git a/apps/attestation-manager/src/tests/app.module.spec.ts b/apps/attestation-manager/src/tests/app.module.spec.ts
deleted file mode 100644
index e52dd78f1869b5aad996bf6f83870dfe86258e5a..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/tests/app.module.spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import type { INestApplication } from '@nestjs/common';
-import type { TestingModule } from '@nestjs/testing';
-
-import { Test } from '@nestjs/testing';
-
-import AppModule from '../app.module.js';
-
-describe('App Module', () => {
-  let app: INestApplication;
-
-  beforeAll(async () => {
-    const moduleFixture: TestingModule = await Test.createTestingModule({
-      imports: [AppModule],
-    }).compile();
-
-    app = moduleFixture.createNestApplication();
-    await app.init();
-  });
-
-  it('should work', () => {
-    expect(true).toBe(true);
-  });
-});
diff --git a/apps/attestation-manager/src/userInfo/controller/controller.ts b/apps/attestation-manager/src/userInfo/controller/controller.ts
deleted file mode 100644
index 7d30099b580a029ff6fc6dad178c583d7982517f..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/controller/controller.ts
+++ /dev/null
@@ -1,78 +0,0 @@
-// eslint-disable-next-line @typescript-eslint/consistent-type-imports
-import type { Response } from 'express';
-
-import {
-  BadRequestException,
-  Body,
-  Controller,
-  HttpException,
-  HttpStatus,
-  InternalServerErrorException,
-  Post,
-  Res,
-  Version,
-} from '@nestjs/common';
-import { ApiBody, ApiOperation, ApiTags } from '@nestjs/swagger';
-import { Prisma } from '@prisma/client';
-import { isUUID } from 'class-validator';
-
-import { AutoAcceptCredential } from '../../common/constants.js';
-import logger from '../../utils/logger.js';
-import UserInfoDto from '../entities/userInfo.entity.js';
-import UserInfoService from '../services/service.js';
-
-@ApiTags('userInfo (to be deprecated)')
-@Controller('userInfo')
-export default class UserInfoController {
-  public constructor(private readonly userInfoService: UserInfoService) {}
-
-  @Version(['1'])
-  @ApiBody({ type: UserInfoDto })
-  @Post('')
-  @ApiOperation({
-    summary: 'Add user information to a connection',
-    description:
-      'This call provides the capability to add any additional information to connection. The format of added data is just a simple json',
-  })
-  public async createUserInfo(
-    @Body() userInfoDto: UserInfoDto,
-    @Res() response: Response,
-  ) {
-    try {
-      logger.info(`UserInfoDto: ${JSON.stringify(UserInfoDto)}`);
-
-      const { autoAcceptCredential, connectionId, userInfo } = userInfoDto;
-
-      if (!connectionId || !isUUID(connectionId)) {
-        throw new BadRequestException('Invalid connection ID');
-      }
-
-      if (
-        autoAcceptCredential &&
-        autoAcceptCredential in AutoAcceptCredential
-      ) {
-        throw new BadRequestException('Invalid autoAcceptCredential');
-      }
-
-      if (!userInfo || Object.values(userInfo).length === 0) {
-        throw new BadRequestException('Invalid userInfo');
-      }
-
-      const res = {
-        statusCode: HttpStatus.CREATED,
-        message: 'User info created successfully',
-        data: await this.userInfoService.createUserInfo(userInfoDto),
-      };
-      return response.send(res);
-    } catch (error: unknown) {
-      if (error instanceof Prisma.PrismaClientUnknownRequestError) {
-        throw new InternalServerErrorException(error.message);
-      } else {
-        throw new HttpException(
-          Reflect.get(error || {}, 'message') || 'Internal server error',
-          Reflect.get(error || {}, 'status') || 500,
-        );
-      }
-    }
-  }
-}
diff --git a/apps/attestation-manager/src/userInfo/entities/update-unserInfo.dto.ts b/apps/attestation-manager/src/userInfo/entities/update-unserInfo.dto.ts
deleted file mode 100644
index 838bb0cd50db390ade0c26fcd7e06e9c75d9fce8..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/entities/update-unserInfo.dto.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-type UserInfo = {
-  [key: string]: unknown;
-};
-
-export default class UpdateUserInfoDto {
-  public connectionId: string;
-
-  public status: string;
-
-  public credentialDefinitionId: string;
-
-  public userInfo: UserInfo;
-}
diff --git a/apps/attestation-manager/src/userInfo/entities/userInfo.entity.ts b/apps/attestation-manager/src/userInfo/entities/userInfo.entity.ts
deleted file mode 100644
index d3aa49b0f5cb4996b5fd0a323ee5acddf4f5def9..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/entities/userInfo.entity.ts
+++ /dev/null
@@ -1,21 +0,0 @@
-import { ApiProperty } from '@nestjs/swagger';
-import { IsEnum, IsNotEmpty, IsString } from 'class-validator';
-
-type UserInfo = {
-  [key: string]: unknown;
-};
-export default class UserInfoDto {
-  @IsString()
-  @IsNotEmpty()
-  @ApiProperty()
-  public connectionId: string;
-
-  @IsEnum(['always', 'contentApproved', 'never'])
-  @IsNotEmpty()
-  @ApiProperty()
-  public autoAcceptCredential: string;
-
-  @IsNotEmpty()
-  @ApiProperty({ type: {} })
-  public userInfo: UserInfo;
-}
diff --git a/apps/attestation-manager/src/userInfo/module.ts b/apps/attestation-manager/src/userInfo/module.ts
deleted file mode 100644
index 2c20ccd4491e8c009a6a7d5848d5090cf17ee2cc..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/module.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { HttpModule } from '@nestjs/axios';
-import { Module } from '@nestjs/common';
-import { ClientsModule, Transport } from '@nestjs/microservices';
-
-import NatsClientService from '../client/nats.client.js';
-import RestClientService from '../client/rest.client.js';
-import { NATSServices } from '../common/constants.js';
-import config from '../config/config.js';
-import PrismaService from '../prisma/prisma.service.js';
-import SchemasService from '../schemas/services/service.js';
-
-import UserInfoController from './controller/controller.js';
-import UserInfoService from './services/service.js';
-
-@Module({
-  imports: [
-    HttpModule,
-    ClientsModule.register([
-      {
-        name: NATSServices.SERVICE_NAME,
-        transport: Transport.NATS,
-        options: {
-          servers: [config().nats.url as string],
-        },
-      },
-    ]),
-  ],
-  controllers: [UserInfoController],
-  providers: [
-    UserInfoService,
-    PrismaService,
-    NatsClientService,
-    RestClientService,
-    SchemasService,
-  ],
-})
-export default class UserInfoModule {}
diff --git a/apps/attestation-manager/src/userInfo/repository/userInfo.respository.ts b/apps/attestation-manager/src/userInfo/repository/userInfo.respository.ts
deleted file mode 100644
index d73d4749125d3589d2f3c80284d189cd3405dc35..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/repository/userInfo.respository.ts
+++ /dev/null
@@ -1,36 +0,0 @@
-import type { Prisma } from '@prisma/client';
-
-import { Injectable } from '@nestjs/common';
-
-import PrismaService from '../../prisma/prisma.service.js';
-
-@Injectable()
-export default class UserInfoRepository {
-  public constructor(private readonly prismaService: PrismaService) {}
-
-  public async createUserInfo(data: Prisma.UserInfoCreateInput) {
-    const userInfo = await this.prismaService.userInfo.create({
-      data,
-    });
-
-    return userInfo;
-  }
-
-  public async updateUserInfo(data: Prisma.UserInfoUncheckedUpdateManyInput) {
-    const userInfo = await this.prismaService.userInfo.updateMany({
-      where: {
-        connectionId: data.connectionId as string,
-      },
-      data,
-    });
-
-    return userInfo;
-  }
-
-  public async getUserInfo(params: { where: Prisma.UserInfoWhereInput }) {
-    const { where } = params;
-    return this.prismaService.userInfo.findFirst({
-      where,
-    });
-  }
-}
diff --git a/apps/attestation-manager/src/userInfo/services/service.ts b/apps/attestation-manager/src/userInfo/services/service.ts
deleted file mode 100644
index 4df6fd255fae1473f07e62f6d430f7a66ab0c336..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/services/service.ts
+++ /dev/null
@@ -1,45 +0,0 @@
-import type UpdateUserInfoDto from '../entities/update-unserInfo.dto.js';
-import type UserInfoDto from '../entities/userInfo.entity.js';
-
-import { Injectable } from '@nestjs/common';
-
-import PrismaService from '../../prisma/prisma.service.js';
-import logger from '../../utils/logger.js';
-import UserInfoRepository from '../repository/userInfo.respository.js';
-
-@Injectable()
-export default class UserInfoService {
-  private userInfoRepository: UserInfoRepository;
-
-  public constructor(private readonly prismaService: PrismaService) {
-    this.userInfoRepository = new UserInfoRepository(this.prismaService);
-  }
-
-  public async createUserInfo(userInfoDto: UserInfoDto) {
-    logger.info(`In user info service, ${JSON.stringify(userInfoDto)}`);
-    return this.userInfoRepository.createUserInfo({
-      autoAcceptCredential: userInfoDto.autoAcceptCredential,
-      connectionId: userInfoDto.connectionId,
-      userInfo: userInfoDto.userInfo as object,
-    });
-  }
-
-  public async updateUserInfo(userInfoDto: UpdateUserInfoDto) {
-    logger.info(`In user info service, ${userInfoDto}`);
-    return this.userInfoRepository.updateUserInfo({
-      connectionId: userInfoDto.connectionId,
-      credentialDefinitionId: userInfoDto.credentialDefinitionId,
-      status: userInfoDto.status,
-      userInfo: userInfoDto.userInfo as object,
-    });
-  }
-
-  public async getUserInfo(connectionId: string) {
-    logger.info(`In get user info service, ${connectionId}`);
-    return this.userInfoRepository.getUserInfo({
-      where: {
-        connectionId,
-      },
-    });
-  }
-}
diff --git a/apps/attestation-manager/src/userInfo/tests/__mocks__/service.ts b/apps/attestation-manager/src/userInfo/tests/__mocks__/service.ts
deleted file mode 100644
index ee3bb212360039cd5a4e7f8302f6b2a90f298e13..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/tests/__mocks__/service.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import userInfo from '../stubs/user-info-dto.stub.js';
-
-const UserInfoServiceMock = jest.fn().mockReturnValue({
-  createUserInfo: jest.fn().mockReturnValue(userInfo),
-  updateUserInfo: jest.fn().mockReturnValue(userInfo()),
-  getUserInfo: jest.fn().mockReturnValue(userInfo()),
-});
-
-export default UserInfoServiceMock;
diff --git a/apps/attestation-manager/src/userInfo/tests/stubs/user-info-dto.stub.ts b/apps/attestation-manager/src/userInfo/tests/stubs/user-info-dto.stub.ts
deleted file mode 100644
index b7cce22bc3c21f194d98d7d0a8b2e3e25a306612..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/userInfo/tests/stubs/user-info-dto.stub.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import type UserInfoDto from '../../entities/userInfo.entity.js';
-
-import credentialDto from '../../../issue-credential/tests/stubs/credential-dto.js';
-import offerCredentialDto from '../../../issue-credential/tests/stubs/offer-credential-dto.js';
-import schemaDto from '../../../schemas/tests/stubs/schema-dto.js';
-
-const userInfo = (): UserInfoDto => ({
-  autoAcceptCredential: offerCredentialDto().autoAcceptCredential,
-  connectionId: credentialDto().connectionId,
-  userInfo: {
-    ...schemaDto().attributes.map((attr: string | symbol | number) => ({
-      [attr]: attr,
-    })),
-  },
-});
-
-export default userInfo;
diff --git a/apps/attestation-manager/src/utils/common.ts b/apps/attestation-manager/src/utils/common.ts
deleted file mode 100644
index 1d2ea566d140549f39e5e8f9ab7bebcb4c90f88e..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/utils/common.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import moment from 'moment';
-
-const calculateExpiry = (expiry: string) => {
-  if (!expiry || expiry === '-1') return 'NA';
-
-  // Adding 'expiryHours' as number of hours to the Credential Definition
-  const expirationDate = moment().add(Number(expiry), 'h').toDate();
-
-  return expirationDate;
-};
-
-export default { calculateExpiry };
diff --git a/apps/attestation-manager/src/utils/exceptionsFilter.ts b/apps/attestation-manager/src/utils/exceptionsFilter.ts
deleted file mode 100644
index b445637c8944d17bb2ddb679f94ab7b846ddd0d4..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/utils/exceptionsFilter.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import type { ArgumentsHost, ExceptionFilter } from '@nestjs/common';
-import type { Request } from 'express';
-
-import { Catch, HttpException, HttpStatus, Logger } from '@nestjs/common';
-import { HttpAdapterHost } from '@nestjs/core';
-import { Prisma } from '@prisma/client';
-
-const { PrismaClientKnownRequestError, PrismaClientValidationError } = Prisma;
-
-@Catch()
-export default class AllExceptionsFilter implements ExceptionFilter {
-  public constructor(private readonly httpAdapterHost: HttpAdapterHost) {}
-
-  // eslint-disable-next-line @typescript-eslint/no-explicit-any
-  public catch(exception: any, host: ArgumentsHost): void {
-    const { httpAdapter } = this.httpAdapterHost;
-
-    const ctx = host.switchToHttp();
-    const request = ctx.getRequest<Request>();
-
-    let httpStatus = HttpStatus.INTERNAL_SERVER_ERROR;
-    let message = '';
-
-    switch (exception.constructor) {
-      case HttpException:
-        httpStatus = (exception as HttpException).getStatus();
-        message = exception?.message || 'Internal server error';
-        break;
-      case PrismaClientKnownRequestError:
-        httpStatus = HttpStatus.BAD_REQUEST;
-        message = exception?.message;
-        break;
-      case PrismaClientValidationError:
-        httpStatus = HttpStatus.BAD_REQUEST;
-        message = exception?.message;
-        break;
-      default:
-        httpStatus = HttpStatus.INTERNAL_SERVER_ERROR;
-        message = exception?.message || 'Internal server error';
-    }
-
-    Logger.error(
-      'Exception Filter :',
-      message,
-      (exception as Error).stack,
-      `${request.method} ${request.url}`,
-    );
-
-    const responseBody = {
-      statusCode: httpStatus,
-      timestamp: new Date().toISOString(),
-      message,
-    };
-
-    httpAdapter.reply(ctx.getResponse(), responseBody, httpStatus);
-  }
-}
diff --git a/apps/attestation-manager/src/utils/logger.ts b/apps/attestation-manager/src/utils/logger.ts
deleted file mode 100644
index d69767a595fc974f0123aec9788e4b62729b6ba0..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/utils/logger.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { ecsFormat } from '@elastic/ecs-winston-format';
-import { createLogger, transports, type Logger } from 'winston';
-
-const logger: Logger = createLogger({
-  format: ecsFormat({ convertReqRes: true }),
-  transports: [new transports.Console()],
-});
-
-logger.on('error', (error) => {
-  // eslint-disable-next-line no-console
-  console.error('Error in logger caught', error);
-});
-
-export default logger;
diff --git a/apps/attestation-manager/src/utils/pagination.ts b/apps/attestation-manager/src/utils/pagination.ts
deleted file mode 100644
index 953e8fc5941366794cf0fafa9cc4f32c8847d781..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/utils/pagination.ts
+++ /dev/null
@@ -1,16 +0,0 @@
-const pagination = (pageSize: number, page: number) => {
-  const query: {
-    skip?: number;
-    take?: number;
-  } = {};
-  if (pageSize && (page || page === 0)) {
-    query.skip = page * pageSize;
-    query.take = pageSize;
-  } else {
-    query.skip = 0;
-    query.take = 10;
-  }
-  return query;
-};
-
-export default pagination;
diff --git a/apps/attestation-manager/src/utils/tests/logger.spec.ts b/apps/attestation-manager/src/utils/tests/logger.spec.ts
deleted file mode 100644
index 8428ba0beb39a65284b603c6b95c986d3e62be4f..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/utils/tests/logger.spec.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import fs from 'fs';
-
-describe('Logger', () => {
-  let logger: unknown;
-
-  jest.spyOn(fs, 'existsSync').mockImplementation(() => false);
-  jest.spyOn(fs, 'mkdirSync').mockImplementation(() => 'mocked');
-
-  beforeEach(async () => {
-    logger = await import('../logger.js');
-  });
-
-  it('should call logger', async () => {
-    expect(logger).toBeDefined();
-  });
-
-  it('should check if directory exists', async () => {
-    expect(fs.existsSync).toHaveBeenCalled();
-  });
-
-  it('should create a directory if not exists', async () => {
-    expect(fs.mkdirSync).toHaveBeenCalled();
-  });
-});
-
-// import pagination from '../pagination';
-
-// describe('Pagination', () => {
-//   let pageSize: number;
-//   let page: number;
-
-//   it('should return skip 0 and take 10', async () => {
-//     pageSize = 0;
-//     page = 0;
-
-//     const res = pagination(pageSize, page);
-
-//     expect(res).toEqual({
-//       skip: 0,
-//       take: 10,
-//     });
-//   });
-
-//   it('should return skip (page * pageSize) and take (pageSize)', async () => {
-//     pageSize = 5;
-//     page = 0;
-
-//     const res = pagination(pageSize, page);
-
-//     expect(res).toEqual({
-//       skip: page * pageSize,
-//       take: pageSize,
-//     });
-//   });
-// });
diff --git a/apps/attestation-manager/src/utils/tests/pagination.spec.ts b/apps/attestation-manager/src/utils/tests/pagination.spec.ts
deleted file mode 100644
index 2fe06f7ef15bc77da47e72b6829cf07f8fd71838..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/src/utils/tests/pagination.spec.ts
+++ /dev/null
@@ -1,30 +0,0 @@
-import pagination from '../pagination.js';
-
-describe('Pagination', () => {
-  let pageSize: number;
-  let page: number;
-
-  it('should return skip 0 and take 10', async () => {
-    pageSize = 0;
-    page = 0;
-
-    const res = pagination(pageSize, page);
-
-    expect(res).toEqual({
-      skip: 0,
-      take: 10,
-    });
-  });
-
-  it('should return skip (page * pageSize) and take (pageSize)', async () => {
-    pageSize = 5;
-    page = 0;
-
-    const res = pagination(pageSize, page);
-
-    expect(res).toEqual({
-      skip: page * pageSize,
-      take: pageSize,
-    });
-  });
-});
diff --git a/apps/attestation-manager/swagger.json b/apps/attestation-manager/swagger.json
deleted file mode 100644
index c821889be10e1685286c641fdfeff2ff69e92190..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/swagger.json
+++ /dev/null
@@ -1,1772 +0,0 @@
-{
-  "openapi": "3.0.0",
-  "paths": {
-    "/v1/health": {
-      "get": {
-        "operationId": "HealthController_getHealth",
-        "summary": "Health check",
-        "description": "This call provides the capability to check the service is working and up. The call returns 200 Status Code and current server time in json body",
-        "parameters": [],
-        "responses": {
-          "200": {
-            "description": "Service is up and running.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Service is up and running.": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Thu Jan 01 1970 00:00:00 GMT+0000 (Coordinated Universal Time)"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        }
-      }
-    },
-    "/v1/schemas": {
-      "get": {
-        "operationId": "SchemasController_findSchemas",
-        "summary": "Fetch a list of schemas",
-        "description": "This call provides capabilities to search schemas (which have been created by this OCM) by using pagination. This call returns a list of schemas and overall count of records. Every record contains schemaId, name, attributes",
-        "parameters": [
-          {
-            "name": "pageSize",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "page",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Schemas fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Schemas fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Schemas fetched successfully",
-                      "data": {
-                        "count": 2,
-                        "records": [
-                          {
-                            "id": "1234abcd",
-                            "schemaID": "loremipsum:test-01-01:1.0",
-                            "name": "test-01-01",
-                            "createdBy": "agentName",
-                            "createdDate": "1970-01-01T00:00:28.343Z",
-                            "updatedBy": "",
-                            "updatedDate": "1970-01-01T00:00:28.343Z",
-                            "attribute": [
-                              {
-                                "name": "attribute1"
-                              },
-                              {
-                                "name": "attribute2"
-                              },
-                              {
-                                "name": "attributeN"
-                              }
-                            ]
-                          },
-                          {
-                            "id": "5678abcd",
-                            "schemaID": "loremipsum2:test2-01-01:1.0",
-                            "name": "test2-01-01",
-                            "createdBy": "agentName",
-                            "createdDate": "1970-01-01T00:00:28.343Z",
-                            "updatedBy": "",
-                            "updatedDate": "1970-01-01T00:00:28.343Z",
-                            "attribute": [
-                              {
-                                "name": "attribute1"
-                              },
-                              {
-                                "name": "attribute2"
-                              },
-                              {
-                                "name": "attributeN"
-                              }
-                            ]
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found.": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Schemas"]
-      },
-      "post": {
-        "operationId": "SchemasController_createSchema",
-        "summary": "Create a new schema",
-        "description": "This call provides the capability to create new schema on ledger by name, author, version, schema attributes and type. Later this schema can be used to issue new credential definition. This call returns an information about created schema.",
-        "parameters": [],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/SchemaDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "201": {
-            "description": "Schema created successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Schema created successfully": {
-                    "value": {
-                      "statusCode": 201,
-                      "message": "Schema created successfully",
-                      "data": {
-                        "id": "1234qwer",
-                        "schemaID": "loremipsum:2:test-02-01:1.0",
-                        "name": "test-02-01",
-                        "createdBy": "agentName",
-                        "createdDate": "1970-01-01T00:00:28.343Z",
-                        "updatedBy": "",
-                        "updatedDate": "1970-01-01T00:00:28.343Z",
-                        "attribute": [
-                          {
-                            "name": "attribute1"
-                          },
-                          {
-                            "name": "attribute2"
-                          },
-                          {
-                            "name": "attributeN"
-                          },
-                          {
-                            "name": "attributeN+1"
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "400": {
-            "description": "Schema required following attributes ( name, createdBy, version, attributes )",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Schema required following attributes ( name, createdBy, version, attributes )": {
-                    "value": {
-                      "statusCode": 400,
-                      "message": "Schema required following attributes ( name, createdBy, version, attributes )"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "409": {
-            "description": "Schema already exists",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Schema already exists": {
-                    "value": {
-                      "statusCode": 409,
-                      "message": "Schema already exists"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Schemas"]
-      }
-    },
-    "/v1/schemas/{id}": {
-      "get": {
-        "operationId": "SchemasController_findSchemasById",
-        "summary": "Fetch schema by id",
-        "description": "This call provides the capability to get schema data by providing schemaId. The schema data is the same which is returned from /v1/schemas endpoint and contains generic information about schema like schemaID, name, createdBy, createdDate, updatedBy, updatedDate, attribute",
-        "parameters": [
-          {
-            "name": "id",
-            "required": true,
-            "in": "path",
-            "description": "Pass schema id",
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Schema fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Schema fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Schema fetched successfully",
-                      "data": {
-                        "count": 1,
-                        "records": [
-                          {
-                            "id": "1234abcd",
-                            "schemaID": "loremipsum:test-01-01:1.0",
-                            "name": "test-01-01",
-                            "createdBy": "agentName",
-                            "createdDate": "1970-01-01T00:00:28.343Z",
-                            "updatedBy": "",
-                            "updatedDate": "1970-01-01T00:00:28.343Z",
-                            "attribute": [
-                              {
-                                "name": "attribute1"
-                              },
-                              {
-                                "name": "attribute2"
-                              },
-                              {
-                                "name": "attributeN"
-                              }
-                            ]
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found.": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Schemas"]
-      }
-    },
-    "/v1/schemas/get-dids-for-schema/{id}": {
-      "get": {
-        "operationId": "SchemasController_getDidsForSchema",
-        "summary": "Fetch list of dids for schema id",
-        "description": "This call provides the capability to get principal dids. The format of the response is shown in the example. To issue credentials, you need to have a credential definition. This is a basic principle of this process. This credential definition is created by using the schema. Using this endpoint gives you all dids of participants to whom OCM issued credentials using specified schema.",
-        "parameters": [
-          {
-            "name": "id",
-            "required": true,
-            "in": "path",
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Schema DIDs fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Schema DIDs fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Schema DIDs fetched successfully",
-                      "data": {
-                        "total_credential_defs": 1,
-                        "principalDids": [
-                          {
-                            "loremIpsumCredDef": ["1234did"]
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found.": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Schemas"]
-      }
-    },
-    "/v1/create-offer-credential": {
-      "post": {
-        "operationId": "AttestationController_createOfferCredential",
-        "summary": "Send credential offer to a connection",
-        "description": "This call provides the capability to offer credentials to a connection. You need to provide information about credential definition, connection and attributes which will be send to connection. Initial state of this is offer-sent (workflow is here https://github.com/hyperledger/aries-rfcs/tree/main/features/0036-issue-credential). This call returns information about this credential offer. From user perspective this call means that as organization (e.g. Faber university) I want to start issuing crendentials to student (Alice, holder)",
-        "parameters": [],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/OfferCredentialDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "201": {
-            "description": "Credential created successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential created successfully": {
-                    "value": {
-                      "statusCode": 201,
-                      "message": "Credential created successfully",
-                      "data": {
-                        "_tags": {},
-                        "metadata": {
-                          "_internal/indyCredential": {
-                            "credentialDefinitionId": "7KuDTpQh3GJ7Gp6",
-                            "schemaId": "7KuDTpQash2"
-                          }
-                        },
-                        "id": "61c5df9c",
-                        "createdAt": "1970-01-01T12:07:57.388Z",
-                        "state": "offer-sent",
-                        "connectionId": "12cd39de",
-                        "threadId": "195e8ae3",
-                        "offerMessage": {
-                          "@type": "https://didcomm.org/issue-credential/1.0/offer-credential",
-                          "@id": "195e8da",
-                          "comment": "asd",
-                          "credential_preview": {
-                            "@type": "https://didcomm.org/issue-credential/1.0/credential-preview",
-                            "attributes": [
-                              {
-                                "name": "firstName",
-                                "value": "Lorem"
-                              },
-                              {
-                                "name": "email",
-                                "value": "lorem@example.com"
-                              },
-                              {
-                                "name": "au",
-                                "value": "ipsum"
-                              },
-                              {
-                                "name": "expirationDate",
-                                "value": "Wed Mar 01 2084 11:07:57 GMT+0000 (Coordinated Universal Time)"
-                              }
-                            ]
-                          },
-                          "offers~attach": [
-                            {
-                              "@id": "libindy-cred-offer-0",
-                              "mime-type": "application/json",
-                              "data": {
-                                "base64": "eyJzY2hlbWFf"
-                              }
-                            }
-                          ]
-                        },
-                        "credentialAttributes": [
-                          {
-                            "name": "attribute1",
-                            "value": "testValue1"
-                          },
-                          {
-                            "name": "attribute2",
-                            "value": "testValue2"
-                          },
-                          {
-                            "name": "attributeN",
-                            "value": "testValueN"
-                          },
-                          {
-                            "name": "expirationDate",
-                            "value": "Wed Mar 01 2023 11:07:57 GMT+0000 (Coordinated Universal Time)"
-                          }
-                        ],
-                        "autoAcceptCredential": "always"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "400": {
-            "description": "offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)": {
-                    "value": {
-                      "statusCode": 400,
-                      "message": "offer credentials required following attributes ( connectionId, credentialDefinitionId, attributes, autoAcceptCredential)"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/create-propose-credential": {
-      "post": {
-        "operationId": "AttestationController_createProposeCredential",
-        "summary": "Send credential proposal to a connection",
-        "description": "This call provides the capability to send propose crendential request to a connection. You need to provide information about credential definition, connection and attributes which you want to use for creating credentials. Initial state of this is proposal-sent (workflow is here https://github.com/hyperledger/aries-rfcs/tree/main/features/0036-issue-credential). This call returns information about this credential proposal. From user perspective this call means that as user (e.g. student) I want to ask organization (e.g. Faber university) to initiate issuing credentials for me using provided data",
-        "parameters": [],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/ProposeCredentialDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "201": {
-            "description": "Credential proposed successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential proposed successfully": {
-                    "value": {
-                      "statusCode": 201,
-                      "message": "Credential proposed successfully",
-                      "data": {
-                        "_tags": {},
-                        "metadata": {
-                          "_internal/indyCredential": {
-                            "credentialDefinitionId": "7KuDTpQh3GJ7Gp6kErpWvM:3:CL:39399:test-13-03"
-                          }
-                        },
-                        "id": "c566907d",
-                        "createdAt": "1970-01-01T00:00:09.383Z",
-                        "state": "proposal-sent",
-                        "connectionId": "12cd39de",
-                        "threadId": "e271b1a0",
-                        "proposalMessage": {
-                          "@type": "https://didcomm.org/issue-credential/1.0/propose-credential",
-                          "@id": "e271b1a0",
-                          "comment": "asd",
-                          "credential_proposal": {
-                            "@type": "https://didcomm.org/issue-credential/1.0/credential-preview",
-                            "attributes": [
-                              {
-                                "name": "firstName",
-                                "value": "TESTING"
-                              },
-                              {
-                                "name": "email",
-                                "value": "asd@asd.asd"
-                              },
-                              {
-                                "name": "au",
-                                "value": "level1"
-                              }
-                            ]
-                          },
-                          "cred_def_id": "1234abcd"
-                        },
-                        "credentialAttributes": [
-                          {
-                            "name": "firstName",
-                            "value": "TESTING"
-                          },
-                          {
-                            "name": "email",
-                            "value": "asd@asd.asd"
-                          },
-                          {
-                            "name": "au",
-                            "value": "level1"
-                          }
-                        ],
-                        "autoAcceptCredential": "never"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "400": {
-            "description": "Connection is not trusted",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Connection is not trusted": {
-                    "value": {
-                      "statusCode": 400,
-                      "message": "Connection is not trusted"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/accept-request/{credentialId}": {
-      "post": {
-        "operationId": "AttestationController_acceptOfferCredential",
-        "summary": "Accept credential request by credential id",
-        "description": "Accept a credential request as issuer (by sending a credential message) to the connection associated with the credential record.",
-        "parameters": [],
-        "responses": {
-          "201": {
-            "description": ""
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/accept-proposal/{credentialId}": {
-      "post": {
-        "operationId": "AttestationController_acceptProposeCredential",
-        "summary": "Accept credential proposal by credential id",
-        "description": "Accept a credential proposal as issuer (by sending a credential offer message) to the connection associated with the credential record.",
-        "parameters": [],
-        "responses": {
-          "201": {
-            "description": ""
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/accept-offer/{credentialId}": {
-      "post": {
-        "operationId": "AttestationController_acceptCredentialOffer",
-        "summary": "Accept credential offer by credential id",
-        "description": "Accept a credential offer as holder (by sending a credential request message) to the connection associated with the credential record.",
-        "parameters": [],
-        "responses": {
-          "201": {
-            "description": ""
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/accept-credential/{credentialId}": {
-      "post": {
-        "operationId": "AttestationController_acceptCredential",
-        "summary": "Accept credentials by credential id",
-        "description": "Accept a credential as holder (by sending a credential acknowledgement message) to the connection associated with the credential record.",
-        "parameters": [],
-        "responses": {
-          "201": {
-            "description": ""
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/credential-info/{id}": {
-      "get": {
-        "operationId": "AttestationController_getCredentialInfo",
-        "summary": "Fetch credential information by credential id",
-        "description": "This call provides the capability to get credential information by credential id. This call returns a credential record (CredentialRecord type with fields connectionId, threadId, credentialId, state, autoAcceptCredential, errorMessage, proposalMessage, offerMessage, requestMessage, credentialMessage, credentialAttributes, linkedAttachments and others). This request get credential data directly from agent, so you can use this endpoint to get some additional info which is not presented in /v1/credential/{id}",
-        "parameters": [],
-        "responses": {
-          "200": {
-            "description": "Credential information fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential information fetched successfully": {
-                    "value": {}
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/delete-credential/{id}": {
-      "delete": {
-        "operationId": "AttestationController_deleteCredential",
-        "summary": "Delete credential by id",
-        "description": "This call provides the capability to delete credential (request/offer/proposal) by provided credential id",
-        "parameters": [],
-        "responses": {
-          "200": {
-            "description": "Credential deleted successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential deleted successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Credential deleted successfully"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/credential": {
-      "get": {
-        "operationId": "AttestationController_getCredentialList",
-        "summary": "Fetch a list of credentials",
-        "description": "This call provides the capability to search credentials by using pagination and filter parameters to select credentials. This call returns a list of credentials and overall count of records. Filter supports following parameters: page, pageSize, isReceived, threadId, state, credDefId, createdDateStart, createdDateEnd, updatedDateStart, updatedDateEnd, expirationDateStart, expirationDateEnd, connectionId, principalDid",
-        "parameters": [
-          {
-            "name": "principalDid",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "connectionId",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "expirationDateEnd",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "expirationDateStart",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "updatedDateEnd",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "updatedDateStart",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "createdDateEnd",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "createdDateStart",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "credDefId",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "state",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "threadId",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "isReceived",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "pageSize",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "page",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Credential fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Credential fetched successfully",
-                      "data": {
-                        "count": 87,
-                        "records": [
-                          {
-                            "id": "14875384",
-                            "credentialId": "c566907d",
-                            "credDefId": "7KuDTpQh3GJ",
-                            "threadId": "e271b1a0",
-                            "state": "proposal-sent",
-                            "principalDid": "KGaeQVaF",
-                            "connectionId": "12cd39de",
-                            "createdDate": "1970-01-01T00:00:09.761Z",
-                            "updatedDate": "1970-01-01T00:00:09.761Z",
-                            "expirationDate": "2070-01-01T00:00:09.756Z"
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/credential/{id}": {
-      "get": {
-        "operationId": "AttestationController_getCredential",
-        "summary": "Fetch credential by id",
-        "description": "This call provides the capability to get credential data by providing credential id. The credential definition data is the same which is returned from /v1/credential endpoint and contains generic information about credential like credentialId, credDefId, threadId, state, principalDid, connectionId, createdDate, updatedDate, expirationDate",
-        "parameters": [],
-        "responses": {
-          "200": {
-            "description": "Credential fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Credential fetched successfully",
-                      "data": {
-                        "id": "14875384",
-                        "credentialId": "c566907d",
-                        "credDefId": "7KuDTpQh3GJ",
-                        "threadId": "e271b1a0",
-                        "state": "proposal-sent",
-                        "principalDid": "KGaeQVaF",
-                        "connectionId": "12cd39de",
-                        "createdDate": "1970-01-01T00:00:09.761Z",
-                        "updatedDate": "1970-01-01T00:00:09.761Z",
-                        "expirationDate": "2070-01-01T00:00:09.756Z"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/updateSchemaIdByType": {
-      "patch": {
-        "operationId": "AttestationController_updateSchemaIdByType",
-        "summary": "Update schemaId in CredentialsType",
-        "description": "This call provides the capability to update mapping between schema and type.",
-        "parameters": [
-          {
-            "name": "type",
-            "required": true,
-            "in": "query",
-            "schema": {}
-          }
-        ],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/UpdateSchemaIdByTypeDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "200": {
-            "description": "schemaId updated in CredentialsType",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "schemaId updated in CredentialsType": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "schemaId updated in CredentialsType",
-                      "data": {
-                        "id": "d6ef2d010",
-                        "type": "principalMemberCredential",
-                        "schemaId": "7KuDTpQh3GJ7Gp6kErpWvM:2:principalTestSchema:1.0"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "Not Found",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Not Found": {
-                    "value": {
-                      "status": 404,
-                      "message": "Not Found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/credentialType": {
-      "post": {
-        "operationId": "AttestationController_createCredentialType",
-        "summary": "Create new CredentialType",
-        "description": "This call provides the capability to create mapping between schema and type.",
-        "parameters": [],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialTypeDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "201": {
-            "description": "schemaId added in CredentialsType of membership credentials.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "schemaId added in CredentialsType of membership credentials.": {
-                    "value": {
-                      "statusCode": 201,
-                      "message": "schemaId added in CredentialsType of membership credentials.",
-                      "data": {
-                        "id": "d6ef2d01",
-                        "type": "principalMemberCredential",
-                        "schemaId": "7KuDTpQh3GJ7Gp6kErpWvM:2:principalTestSchema:1.0"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      },
-      "get": {
-        "operationId": "AttestationController_getCredentialTypeAttributes",
-        "summary": "Fetch CredentialType contains schemaId and attributes by type",
-        "description": "This call provides the capability to get schema id and its attributes by provided type",
-        "parameters": [
-          {
-            "name": "type",
-            "required": true,
-            "in": "query",
-            "schema": {}
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Credential type retrieved successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential type retrieved successfully": {
-                    "value": {
-                      "schema": {
-                        "schemaID": "7KuDTpQh3GJ7Gp6kErpWvM:2:principalTestSchema:1.0",
-                        "attribute": [
-                          "prcPreferredUsername",
-                          "issuerDID",
-                          "prcGender",
-                          "prcBirthdate",
-                          "expirationDate",
-                          "prcLastName",
-                          "prcFirstName",
-                          "email",
-                          "prcMiddleName",
-                          "subjectDID",
-                          "auth_time",
-                          "email_verified"
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "Credential type not found",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential type not found": {}
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credentials"]
-      }
-    },
-    "/v1/credentialDef": {
-      "get": {
-        "operationId": "CredentialDefController_findCredentialDef",
-        "summary": "Fetch a list of credential definitions",
-        "description": "This call provides the capability to search created credential definitions by using pagination and filter parameter (schemaID) to select credential definitions. This call returns a list of credential definitions and overall count of records. Using a credential definition from that list you can issue credential so some connection",
-        "parameters": [
-          {
-            "name": "schemaID",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "pageSize",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          },
-          {
-            "name": "page",
-            "required": false,
-            "in": "query",
-            "schema": {}
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Credential definitions fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential definitions fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Credential definitions fetched successfully",
-                      "data": {
-                        "count": 2,
-                        "records": [
-                          {
-                            "id": "1234abcd",
-                            "schemaID": "loremipsum:test-01-01:1.0",
-                            "name": "test-01-01",
-                            "credDefId": "test-cred-def123",
-                            "isAutoIssue": false,
-                            "isRevokable": false,
-                            "expiryHours": "24",
-                            "createdBy": "acceptsAnyString",
-                            "createdDate": "1970-01-01T00:00:28.343Z",
-                            "updatedBy": "",
-                            "updatedDate": "1970-01-01T00:00:28.343Z"
-                          },
-                          {
-                            "id": "5678abcd",
-                            "schemaID": "loremipsum2:test2-01-01:1.0",
-                            "name": "test2-01-01",
-                            "credDefId": "test2-cred-def123",
-                            "isAutoIssue": false,
-                            "isRevokable": false,
-                            "expiryHours": "24",
-                            "createdBy": "acceptsAnyString",
-                            "createdDate": "1970-01-01T00:00:28.343Z",
-                            "updatedBy": "",
-                            "updatedDate": "1970-01-01T00:00:28.343Z"
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found.": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credential Definitions"]
-      },
-      "post": {
-        "operationId": "CredentialDefController_createCredentialDef",
-        "summary": "Create a new credential definition",
-        "description": "This call provides the capability to create new credential definition by providing schema id, name, createdBy, auto-issue and other information required by this method. This call returns an object contains information abut this credential definition (type CredentialDefDto). You can use this credential definition to issue credentials to some connection",
-        "parameters": [],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/CredentialDefDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "201": {
-            "description": "Credential definition created successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential definition created successfully": {
-                    "value": {
-                      "statusCode": 201,
-                      "message": "Credential definition created successfully",
-                      "data": {
-                        "id": "71b784a3",
-                        "schemaID": "7KuDTpQh3:test-schema",
-                        "name": "test",
-                        "credDefId": "7KuDTpQh3:test",
-                        "isAutoIssue": false,
-                        "isRevokable": false,
-                        "expiryHours": "23",
-                        "createdBy": "vocm",
-                        "createdDate": "1970-01-01T00:00:28.343Z",
-                        "updatedBy": "",
-                        "updatedDate": "1970-01-01T00:00:28.343Z"
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "400": {
-            "description": "Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )": {
-                    "value": {
-                      "statusCode": 400,
-                      "message": "Credential definition required following attributes ( schemaID, name, isRevokable, isAutoIssue, createdBy, expiryHours )"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "409": {
-            "description": "Credential definition already exists",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential definition already exists": {
-                    "value": {
-                      "statusCode": 409,
-                      "message": "Credential definition already exists"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credential Definitions"]
-      }
-    },
-    "/v1/credentialDef/{id}": {
-      "get": {
-        "operationId": "CredentialDefController_findCredentialDefById",
-        "summary": "Fetch credential definition by id",
-        "description": "This call provides the capability to get credential definition data by providing id of credential definition. The credential definition data is the same which is returned from /v1/connections endpoint and contains generic information about credential definition like schemaID, name, credDefId, isAutoIssue, isRevokable, expiryHours, createdBy, createdDate, updatedBy, updatedDate",
-        "parameters": [
-          {
-            "name": "id",
-            "required": true,
-            "in": "path",
-            "description": "Pass Cred Def id",
-            "schema": {
-              "type": "string"
-            }
-          }
-        ],
-        "responses": {
-          "200": {
-            "description": "Credential definition fetched successfully",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Credential definition fetched successfully": {
-                    "value": {
-                      "statusCode": 200,
-                      "message": "Credential definition fetched successfully",
-                      "data": {
-                        "count": 1,
-                        "records": [
-                          {
-                            "id": "1234abcd",
-                            "schemaID": "loremipsum:test-01-01:1.0",
-                            "name": "test-01-01",
-                            "credDefId": "test-cred-def123",
-                            "isAutoIssue": false,
-                            "isRevokable": false,
-                            "expiryHours": "24",
-                            "createdBy": "acceptsAnyString",
-                            "createdDate": "1970-01-01T00:00:28.343Z",
-                            "updatedBy": "",
-                            "updatedDate": "1970-01-01T00:00:28.343Z"
-                          }
-                        ]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "404": {
-            "description": "No Data found",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "No Data found": {
-                    "value": {
-                      "statusCode": 404,
-                      "message": "No Data found"
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "500": {
-            "description": "Internal Server Error.",
-            "content": {
-              "application/json": {
-                "schema": {},
-                "examples": {
-                  "Internal Server Error.": {
-                    "value": {
-                      "statusCode": 500,
-                      "timestamp": "1970-01-01T00:00:27.897Z",
-                      "message": "Lorem Ipsum"
-                    }
-                  }
-                }
-              }
-            }
-          }
-        },
-        "tags": ["Credential Definitions"]
-      }
-    },
-    "/v1/userInfo": {
-      "post": {
-        "operationId": "UserInfoController_createUserInfo",
-        "summary": "Add user information to a connection",
-        "description": "This call provides the capability to add any additional information to connection. The format of added data is just a simple json",
-        "parameters": [],
-        "requestBody": {
-          "required": true,
-          "content": {
-            "application/json": {
-              "schema": {
-                "$ref": "#/components/schemas/UserInfoDto"
-              }
-            }
-          }
-        },
-        "responses": {
-          "201": {
-            "description": ""
-          }
-        },
-        "tags": ["userInfo (to be deprecated)"]
-      }
-    }
-  },
-  "info": {
-    "title": "Gaia-x Attestation Manager API",
-    "description": "API documentation for GAIA-X Attestation Manager",
-    "version": "1.0",
-    "contact": {}
-  },
-  "tags": [],
-  "servers": [],
-  "components": {
-    "schemas": {
-      "SchemaDto": {
-        "type": "object",
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "createdBy": {
-            "type": "string"
-          },
-          "version": {
-            "type": "string"
-          },
-          "attributes": {
-            "type": "array",
-            "items": {
-              "type": "string"
-            }
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "required": ["name", "createdBy", "version", "attributes"]
-      },
-      "CredentialPreviewAttributes": {
-        "type": "object",
-        "properties": {
-          "name": {
-            "type": "string"
-          },
-          "value": {
-            "type": "string"
-          }
-        },
-        "required": ["name", "value"]
-      },
-      "OfferCredentialDto": {
-        "type": "object",
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "attributes": {
-            "type": "array",
-            "items": {
-              "$ref": "#/components/schemas/CredentialPreviewAttributes"
-            }
-          },
-          "autoAcceptCredential": {
-            "type": "string"
-          }
-        },
-        "required": [
-          "connectionId",
-          "credentialDefinitionId",
-          "comment",
-          "attributes",
-          "autoAcceptCredential"
-        ]
-      },
-      "ProposeCredentialDto": {
-        "type": "object",
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "credentialDefinitionId": {
-            "type": "string"
-          },
-          "comment": {
-            "type": "string"
-          },
-          "credentialProposal": {
-            "type": "object"
-          },
-          "autoAcceptCredential": {
-            "type": "string"
-          }
-        },
-        "required": [
-          "connectionId",
-          "credentialDefinitionId",
-          "comment",
-          "credentialProposal",
-          "autoAcceptCredential"
-        ]
-      },
-      "UpdateSchemaIdByTypeDto": {
-        "type": "object",
-        "properties": {
-          "schemaId": {
-            "type": "string"
-          }
-        },
-        "required": ["schemaId"]
-      },
-      "CredentialTypeDto": {
-        "type": "object",
-        "properties": {
-          "type": {
-            "type": "string"
-          },
-          "schemaId": {
-            "type": "string"
-          }
-        },
-        "required": ["type", "schemaId"]
-      },
-      "CredentialDefDto": {
-        "type": "object",
-        "properties": {
-          "schemaID": {
-            "type": "string"
-          },
-          "name": {
-            "type": "string"
-          },
-          "isRevokable": {
-            "type": "boolean"
-          },
-          "isAutoIssue": {
-            "type": "boolean"
-          },
-          "expiryHours": {
-            "type": "string"
-          },
-          "createdBy": {
-            "type": "string"
-          },
-          "type": {
-            "type": "string"
-          }
-        },
-        "required": [
-          "schemaID",
-          "name",
-          "isRevokable",
-          "isAutoIssue",
-          "expiryHours",
-          "createdBy"
-        ]
-      },
-      "UserInfoDto": {
-        "type": "object",
-        "properties": {
-          "connectionId": {
-            "type": "string"
-          },
-          "autoAcceptCredential": {
-            "type": "string"
-          },
-          "userInfo": {
-            "type": "object",
-            "properties": {}
-          }
-        },
-        "required": ["connectionId", "autoAcceptCredential", "userInfo"]
-      }
-    }
-  }
-}
diff --git a/apps/attestation-manager/test/app.e2e-spec.ts b/apps/attestation-manager/test/app.e2e-spec.ts
deleted file mode 100644
index e6000c04c0fd708b442bdfc818c7e3c14e05f43a..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/test/app.e2e-spec.ts
+++ /dev/null
@@ -1,23 +0,0 @@
-import type { INestApplication } from '@nestjs/common';
-import type { TestingModule } from '@nestjs/testing';
-
-import { Test } from '@nestjs/testing';
-import request from 'supertest';
-
-import AppModule from '../src/app.module.js';
-
-describe('AppController (e2e)', () => {
-  let app: INestApplication;
-
-  beforeEach(async () => {
-    const moduleFixture: TestingModule = await Test.createTestingModule({
-      imports: [AppModule],
-    }).compile();
-
-    app = moduleFixture.createNestApplication();
-    await app.init();
-  });
-
-  it('/v1/health (GET)', () =>
-    request(app.getHttpServer()).get('/health').expect(200));
-});
diff --git a/apps/attestation-manager/test/jest.config.js b/apps/attestation-manager/test/jest.config.js
deleted file mode 100644
index c2b3ddf9bf2a2231e63f8b040213ce5ffcbb9412..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/test/jest.config.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/** @type {import('jest').Config} */
-
-import config from '../jest.config.js';
-
-export default {
-  ...config,
-  rootDir: '.',
-  testRegex: '.*\\.e2e-spec\\.ts$',
-};
diff --git a/apps/attestation-manager/tsconfig.build.json b/apps/attestation-manager/tsconfig.build.json
deleted file mode 100644
index 3e5ab438230b6cbd30a5825fc562c485a89ff95d..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/tsconfig.build.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "extends": "../../tsconfig.build.json",
-  "compilerOptions": {
-    "baseUrl": ".",
-    "outDir": "./dist",
-    "rootDir": "./src"
-  },
-  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
-}
diff --git a/apps/attestation-manager/tsconfig.json b/apps/attestation-manager/tsconfig.json
deleted file mode 100644
index 4082f16a5d91ce6f21a9092b14170eeecc8f1d75..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/tsconfig.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
-  "extends": "../../tsconfig.json"
-}
diff --git a/apps/attestation-manager/tsconfig.production.json b/apps/attestation-manager/tsconfig.production.json
deleted file mode 100644
index 45f85dfe5daf11a59e2fac464fa15940a2f50200..0000000000000000000000000000000000000000
--- a/apps/attestation-manager/tsconfig.production.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "extends": "../../tsconfig.production.json",
-  "compilerOptions": {
-    "baseUrl": ".",
-    "outDir": "./dist",
-    "rootDir": "./src"
-  },
-  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
-}