diff --git a/Dockerfile b/Dockerfile
index b4e6e4b0f2ced2d0d2ac3e43c945cc117592cc1d..407799f7f009a118da826e6b25c60b447f2443db 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -24,14 +24,18 @@ FROM base AS build
 ARG APP_HOME=/home/node/app
 WORKDIR ${APP_HOME}
 
-COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig.json ./
+COPY package.json pnpm-lock.yaml pnpm-workspace.yaml tsconfig*.json .swcrc ./
 COPY apps/${SERVICE}/package.json ./apps/${SERVICE}/
+COPY apps/shared/package.json ./apps/shared/
 
 RUN pnpm install --frozen-lockfile
 
 COPY apps/${SERVICE} ./apps/${SERVICE}
+COPY apps/shared ./apps/shared
+RUN pnpm --filter shared build
 RUN pnpm --filter ${SERVICE} build:production
 RUN pnpm --filter ${SERVICE} --prod deploy build
+RUN pnpm --filter shared --prod deploy shared
 
 # This is a way of keeping the generated prisma client in the build folder
 RUN if [ -d ./apps/${SERVICE}/node_modules/\@prisma/client ]; then \
@@ -55,6 +59,7 @@ CMD ["node", "dist/main.js"]
 
 COPY --chown=node:node ./docker-entrypoint.sh ./docker-entrypoint.sh
 COPY --from=build --chown=node:node ${APP_HOME}/build/dist ./dist
+COPY --from=build --chown=node:node ${APP_HOME}/shared/dist ./shared
 COPY --from=build --chown=node:node ${APP_HOME}/build/node_modules ./node_modules
 COPY --from=build --chown=node:node ${APP_HOME}/build/package.json .
 
@@ -64,4 +69,4 @@ RUN node -e "\
     fs.writeFileSync('./package.json', JSON.stringify({ name, version, type }, null, 2));\
 "
 
-USER node
+# USER node
diff --git a/apps/credential-manager/.env.example b/apps/credential-manager/.env.example
new file mode 100644
index 0000000000000000000000000000000000000000..af5dfef84cd7420cadc7d43378a4391c3bf7c20c
--- /dev/null
+++ b/apps/credential-manager/.env.example
@@ -0,0 +1,7 @@
+HTTP_HOST=0.0.0.0
+HTTP_PORT=3011
+
+NATS_URL=nats://nats:4222
+NATS_MONITORING_URL=nats://nats:8222
+
+SSI_AGENT_URL=http://ssi:3010
diff --git a/apps/credential-manager/LICENSE b/apps/credential-manager/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6bc596c6d9ae158f03739f543ee9d26c4fb5e8d6
--- /dev/null
+++ b/apps/credential-manager/LICENSE
@@ -0,0 +1,636 @@
+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/credential-manager/jest.config.js b/apps/credential-manager/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ece9fcccb7e35c47222b8cd0db33663d595c5e9
--- /dev/null
+++ b/apps/credential-manager/jest.config.js
@@ -0,0 +1,49 @@
+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/credential-manager/nest-cli.json b/apps/credential-manager/nest-cli.json
new file mode 100644
index 0000000000000000000000000000000000000000..b9af737f405bfea055dcb58728c31d912fef06f3
--- /dev/null
+++ b/apps/credential-manager/nest-cli.json
@@ -0,0 +1,14 @@
+{
+  "$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/credential-manager/package.json b/apps/credential-manager/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..35e5df570b68ff70a1cba9c3760524baf5f4bac9
--- /dev/null
+++ b/apps/credential-manager/package.json
@@ -0,0 +1,62 @@
+{
+  "name": "@ocm/credential-manager",
+  "version": "1.0.0",
+  "description": "",
+  "author": "Konstantin Tsabolov <konstantin.tsabolov@spherity.com>",
+  "contributors": [
+    "Konstantin Tsabolov <konstantin.tsabolov@spherity.com>"
+  ],
+  "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": "nest build -p tsconfig.production.json",
+    "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": {
+    "@nestjs/axios": "^3.0.1",
+    "@nestjs/common": "^10.2.10",
+    "@nestjs/config": "^3.1.1",
+    "@nestjs/core": "^10.2.10",
+    "@nestjs/microservices": "^10.2.10",
+    "@nestjs/platform-express": "^10.2.8",
+    "@nestjs/swagger": "^7.1.16",
+    "@nestjs/terminus": "^10.1.1",
+    "axios": "^1.6.2",
+    "class-transformer": "^0.5.1",
+    "class-validator": "^0.14.0",
+    "express": "^4.17.3",
+    "joi": "^17.11.0",
+    "nats": "^2.18.0",
+    "reflect-metadata": "^0.1.13",
+    "rxjs": "^7.8.1"
+  },
+  "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",
+    "rimraf": "^5.0.5",
+    "typescript": "^5.3.2"
+  }
+}
diff --git a/apps/credential-manager/src/app.module.ts b/apps/credential-manager/src/app.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2f9297aa61f499f40dae0322601671a7e44b8039
--- /dev/null
+++ b/apps/credential-manager/src/app.module.ts
@@ -0,0 +1,26 @@
+import { Module } from '@nestjs/common';
+import { ConfigModule } from '@nestjs/config';
+
+import { httpConfig } from './config/http.config.js';
+import { natsConfig } from './config/nats.config.js';
+import { ssiConfig } from './config/ssi.config.js';
+import { validationSchema } from './config/validation.js';
+import { HealthModule } from './health/health.module.js';
+
+@Module({
+  imports: [
+    ConfigModule.forRoot({
+      isGlobal: true,
+      load: [httpConfig, natsConfig, ssiConfig],
+      cache: true,
+      expandVariables: true,
+      validationSchema,
+      validationOptions: {
+        allowUnknown: true,
+        abortEarly: true,
+      },
+    }),
+    HealthModule,
+  ],
+})
+export default class AppModule {}
diff --git a/apps/credential-manager/src/common/constants.ts b/apps/credential-manager/src/common/constants.ts
new file mode 100644
index 0000000000000000000000000000000000000000..bad6a5fab788fa4a4f9e2533c6d0ec1ffe93b782
--- /dev/null
+++ b/apps/credential-manager/src/common/constants.ts
@@ -0,0 +1 @@
+export const SERVICE_NAME = 'CREDENTIAL_MANAGER_SERVICE';
diff --git a/apps/credential-manager/src/config/http.config.ts b/apps/credential-manager/src/config/http.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0bb4d4c2df3e791f741f3aac483b6fb3f39a5ba0
--- /dev/null
+++ b/apps/credential-manager/src/config/http.config.ts
@@ -0,0 +1,6 @@
+import { registerAs } from '@nestjs/config';
+
+export const httpConfig = registerAs('http', () => ({
+  host: process.env.HOST,
+  port: Number(process.env.PORT),
+}));
diff --git a/apps/credential-manager/src/config/nats.config.ts b/apps/credential-manager/src/config/nats.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..023e92372adf6be27904aeccd041d125fbb804b9
--- /dev/null
+++ b/apps/credential-manager/src/config/nats.config.ts
@@ -0,0 +1,6 @@
+import { registerAs } from '@nestjs/config';
+
+export const natsConfig = registerAs('nats', () => ({
+  url: process.env.NATS_URL,
+  monitoringUrl: process.env.NATS_MONITORING_URL,
+}));
diff --git a/apps/credential-manager/src/config/ssi.config.ts b/apps/credential-manager/src/config/ssi.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1779919f156e28d94440919221b2c95acda26a10
--- /dev/null
+++ b/apps/credential-manager/src/config/ssi.config.ts
@@ -0,0 +1,5 @@
+import { registerAs } from '@nestjs/config';
+
+export const ssiConfig = registerAs('ssi', () => ({
+  agentUrl: process.env.SSI_AGENT_URL,
+}));
diff --git a/apps/credential-manager/src/config/validation.ts b/apps/credential-manager/src/config/validation.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a7fe2f83c768b702b76f629b790507af6344ff7c
--- /dev/null
+++ b/apps/credential-manager/src/config/validation.ts
@@ -0,0 +1,11 @@
+import Joi from 'joi';
+
+export const validationSchema = Joi.object({
+  HTTP_HOST: Joi.string().default('0.0.0.0'),
+  HTTP_PORT: Joi.number().default(3000),
+
+  NATS_URL: Joi.string().uri().default('nats://localhost:4222'),
+  NATS_MONITORING_URL: Joi.string().uri().default('http://localhost:8222'),
+
+  SSI_AGENT_URL: Joi.string().default('http://localhost:3010'),
+});
diff --git a/apps/credential-manager/src/health/health.controller.ts b/apps/credential-manager/src/health/health.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9f2454eb869df9f7720c6e7bd1caa2ed4caef8d6
--- /dev/null
+++ b/apps/credential-manager/src/health/health.controller.ts
@@ -0,0 +1,35 @@
+import type { HealthIndicatorFunction } from '@nestjs/terminus';
+
+import { Controller, Get } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import {
+  HealthCheck,
+  HealthCheckService,
+  HttpHealthIndicator,
+} from '@nestjs/terminus';
+
+@Controller('health')
+export class HealthController {
+  public constructor(
+    private readonly config: ConfigService,
+    private readonly health: HealthCheckService,
+    private readonly http: HttpHealthIndicator,
+  ) {}
+
+  @Get()
+  @HealthCheck()
+  public check() {
+    const healthIndicators: HealthIndicatorFunction[] = [];
+
+    const natsMonitoringUrl = this.config.get('nats.monitoringUrl');
+    if (typeof natsMonitoringUrl === 'string') {
+      healthIndicators.push(() =>
+        this.http.pingCheck('nats', natsMonitoringUrl),
+      );
+    } else {
+      healthIndicators.push(() => ({ nats: { status: 'down' } }));
+    }
+
+    return this.health.check(healthIndicators);
+  }
+}
diff --git a/apps/credential-manager/src/health/health.module.ts b/apps/credential-manager/src/health/health.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..17ccd14e59cbfcc2c577204b278363bf15be4e7b
--- /dev/null
+++ b/apps/credential-manager/src/health/health.module.ts
@@ -0,0 +1,34 @@
+import type { ConfigType } from '@nestjs/config';
+
+import { HttpModule } from '@nestjs/axios';
+import { Module } from '@nestjs/common';
+import { ClientsModule, Transport } from '@nestjs/microservices';
+import { TerminusModule } from '@nestjs/terminus';
+
+import { SERVICE_NAME } from '../common/constants.js';
+import { natsConfig } from '../config/nats.config.js';
+
+import { HealthController } from './health.controller.js';
+
+@Module({
+  imports: [
+    TerminusModule,
+    HttpModule,
+    ClientsModule.registerAsync({
+      clients: [
+        {
+          name: SERVICE_NAME,
+          inject: [natsConfig.KEY],
+          useFactory: (config: ConfigType<typeof natsConfig>) => ({
+            transport: Transport.NATS,
+            options: {
+              servers: [config.url as string],
+            },
+          }),
+        },
+      ],
+    }),
+  ],
+  controllers: [HealthController],
+})
+export class HealthModule {}
diff --git a/apps/credential-manager/src/main.ts b/apps/credential-manager/src/main.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4936407a8a19d52a4391a73f5f12faf6f76b04d8
--- /dev/null
+++ b/apps/credential-manager/src/main.ts
@@ -0,0 +1,38 @@
+import type { MicroserviceOptions } from '@nestjs/microservices';
+
+import { VersioningType } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import { NestFactory } from '@nestjs/core';
+import { Transport } from '@nestjs/microservices';
+import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
+
+import AppModule from './app.module.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 OCM Credential Manager API')
+  .setDescription('API documentation for Gaia-X OCM Credential Manager')
+  .setVersion('1.0')
+  .build();
+
+const document = SwaggerModule.createDocument(app, swaggerConfig);
+
+SwaggerModule.setup('/swagger', app, document);
+await app.startAllMicroservices();
+
+await app.listen(configService.get('PORT') || 3000);
diff --git a/apps/credential-manager/tsconfig.build.json b/apps/credential-manager/tsconfig.build.json
new file mode 100644
index 0000000000000000000000000000000000000000..3e5ab438230b6cbd30a5825fc562c485a89ff95d
--- /dev/null
+++ b/apps/credential-manager/tsconfig.build.json
@@ -0,0 +1,9 @@
+{
+  "extends": "../../tsconfig.build.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "outDir": "./dist",
+    "rootDir": "./src"
+  },
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
+}
diff --git a/apps/credential-manager/tsconfig.json b/apps/credential-manager/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..4082f16a5d91ce6f21a9092b14170eeecc8f1d75
--- /dev/null
+++ b/apps/credential-manager/tsconfig.json
@@ -0,0 +1,3 @@
+{
+  "extends": "../../tsconfig.json"
+}
diff --git a/apps/credential-manager/tsconfig.production.json b/apps/credential-manager/tsconfig.production.json
new file mode 100644
index 0000000000000000000000000000000000000000..45f85dfe5daf11a59e2fac464fa15940a2f50200
--- /dev/null
+++ b/apps/credential-manager/tsconfig.production.json
@@ -0,0 +1,9 @@
+{
+  "extends": "../../tsconfig.production.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "outDir": "./dist",
+    "rootDir": "./src"
+  },
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
+}
diff --git a/apps/schema-manager/LICENSE b/apps/schema-manager/LICENSE
new file mode 100644
index 0000000000000000000000000000000000000000..6bc596c6d9ae158f03739f543ee9d26c4fb5e8d6
--- /dev/null
+++ b/apps/schema-manager/LICENSE
@@ -0,0 +1,636 @@
+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/schema-manager/jest.config.js b/apps/schema-manager/jest.config.js
new file mode 100644
index 0000000000000000000000000000000000000000..5ece9fcccb7e35c47222b8cd0db33663d595c5e9
--- /dev/null
+++ b/apps/schema-manager/jest.config.js
@@ -0,0 +1,49 @@
+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/schema-manager/nest-cli.json b/apps/schema-manager/nest-cli.json
new file mode 100644
index 0000000000000000000000000000000000000000..b9af737f405bfea055dcb58728c31d912fef06f3
--- /dev/null
+++ b/apps/schema-manager/nest-cli.json
@@ -0,0 +1,14 @@
+{
+  "$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/schema-manager/package.json b/apps/schema-manager/package.json
new file mode 100644
index 0000000000000000000000000000000000000000..7f32d7f285a39aaca70d0199f8b9056f2f117bc8
--- /dev/null
+++ b/apps/schema-manager/package.json
@@ -0,0 +1,62 @@
+{
+  "name": "@ocm/schema-manager",
+  "version": "1.0.0",
+  "description": "",
+  "author": "Konstantin Tsabolov <konstantin.tsabolov@spherity.com>",
+  "contributors": [
+    "Konstantin Tsabolov <konstantin.tsabolov@spherity.com>"
+  ],
+  "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": "nest build -p tsconfig.production.json",
+    "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": {
+    "@nestjs/axios": "^3.0.1",
+    "@nestjs/common": "^10.2.10",
+    "@nestjs/config": "^3.1.1",
+    "@nestjs/core": "^10.2.10",
+    "@nestjs/microservices": "^10.2.10",
+    "@nestjs/platform-express": "^10.2.8",
+    "@nestjs/swagger": "^7.1.16",
+    "@nestjs/terminus": "^10.1.1",
+    "axios": "^1.6.2",
+    "class-transformer": "^0.5.1",
+    "class-validator": "^0.14.0",
+    "express": "^4.17.3",
+    "joi": "^17.11.0",
+    "nats": "^2.18.0",
+    "reflect-metadata": "^0.1.13",
+    "rxjs": "^7.8.1"
+  },
+  "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",
+    "rimraf": "^5.0.5",
+    "typescript": "^5.3.2"
+  }
+}
diff --git a/apps/schema-manager/src/app.module.ts b/apps/schema-manager/src/app.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2f9297aa61f499f40dae0322601671a7e44b8039
--- /dev/null
+++ b/apps/schema-manager/src/app.module.ts
@@ -0,0 +1,26 @@
+import { Module } from '@nestjs/common';
+import { ConfigModule } from '@nestjs/config';
+
+import { httpConfig } from './config/http.config.js';
+import { natsConfig } from './config/nats.config.js';
+import { ssiConfig } from './config/ssi.config.js';
+import { validationSchema } from './config/validation.js';
+import { HealthModule } from './health/health.module.js';
+
+@Module({
+  imports: [
+    ConfigModule.forRoot({
+      isGlobal: true,
+      load: [httpConfig, natsConfig, ssiConfig],
+      cache: true,
+      expandVariables: true,
+      validationSchema,
+      validationOptions: {
+        allowUnknown: true,
+        abortEarly: true,
+      },
+    }),
+    HealthModule,
+  ],
+})
+export default class AppModule {}
diff --git a/apps/schema-manager/src/common/constants.ts b/apps/schema-manager/src/common/constants.ts
new file mode 100644
index 0000000000000000000000000000000000000000..159f0fd587e05c6213c530ed81d43363190f8c97
--- /dev/null
+++ b/apps/schema-manager/src/common/constants.ts
@@ -0,0 +1 @@
+export const SERVICE_NAME = 'SCHEMA_MANAGER_SERVICE';
diff --git a/apps/schema-manager/src/config/http.config.ts b/apps/schema-manager/src/config/http.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..0bb4d4c2df3e791f741f3aac483b6fb3f39a5ba0
--- /dev/null
+++ b/apps/schema-manager/src/config/http.config.ts
@@ -0,0 +1,6 @@
+import { registerAs } from '@nestjs/config';
+
+export const httpConfig = registerAs('http', () => ({
+  host: process.env.HOST,
+  port: Number(process.env.PORT),
+}));
diff --git a/apps/schema-manager/src/config/nats.config.ts b/apps/schema-manager/src/config/nats.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..023e92372adf6be27904aeccd041d125fbb804b9
--- /dev/null
+++ b/apps/schema-manager/src/config/nats.config.ts
@@ -0,0 +1,6 @@
+import { registerAs } from '@nestjs/config';
+
+export const natsConfig = registerAs('nats', () => ({
+  url: process.env.NATS_URL,
+  monitoringUrl: process.env.NATS_MONITORING_URL,
+}));
diff --git a/apps/schema-manager/src/config/ssi.config.ts b/apps/schema-manager/src/config/ssi.config.ts
new file mode 100644
index 0000000000000000000000000000000000000000..1779919f156e28d94440919221b2c95acda26a10
--- /dev/null
+++ b/apps/schema-manager/src/config/ssi.config.ts
@@ -0,0 +1,5 @@
+import { registerAs } from '@nestjs/config';
+
+export const ssiConfig = registerAs('ssi', () => ({
+  agentUrl: process.env.SSI_AGENT_URL,
+}));
diff --git a/apps/schema-manager/src/config/validation.ts b/apps/schema-manager/src/config/validation.ts
new file mode 100644
index 0000000000000000000000000000000000000000..a7fe2f83c768b702b76f629b790507af6344ff7c
--- /dev/null
+++ b/apps/schema-manager/src/config/validation.ts
@@ -0,0 +1,11 @@
+import Joi from 'joi';
+
+export const validationSchema = Joi.object({
+  HTTP_HOST: Joi.string().default('0.0.0.0'),
+  HTTP_PORT: Joi.number().default(3000),
+
+  NATS_URL: Joi.string().uri().default('nats://localhost:4222'),
+  NATS_MONITORING_URL: Joi.string().uri().default('http://localhost:8222'),
+
+  SSI_AGENT_URL: Joi.string().default('http://localhost:3010'),
+});
diff --git a/apps/schema-manager/src/health/health.controller.ts b/apps/schema-manager/src/health/health.controller.ts
new file mode 100644
index 0000000000000000000000000000000000000000..9f2454eb869df9f7720c6e7bd1caa2ed4caef8d6
--- /dev/null
+++ b/apps/schema-manager/src/health/health.controller.ts
@@ -0,0 +1,35 @@
+import type { HealthIndicatorFunction } from '@nestjs/terminus';
+
+import { Controller, Get } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import {
+  HealthCheck,
+  HealthCheckService,
+  HttpHealthIndicator,
+} from '@nestjs/terminus';
+
+@Controller('health')
+export class HealthController {
+  public constructor(
+    private readonly config: ConfigService,
+    private readonly health: HealthCheckService,
+    private readonly http: HttpHealthIndicator,
+  ) {}
+
+  @Get()
+  @HealthCheck()
+  public check() {
+    const healthIndicators: HealthIndicatorFunction[] = [];
+
+    const natsMonitoringUrl = this.config.get('nats.monitoringUrl');
+    if (typeof natsMonitoringUrl === 'string') {
+      healthIndicators.push(() =>
+        this.http.pingCheck('nats', natsMonitoringUrl),
+      );
+    } else {
+      healthIndicators.push(() => ({ nats: { status: 'down' } }));
+    }
+
+    return this.health.check(healthIndicators);
+  }
+}
diff --git a/apps/schema-manager/src/health/health.module.ts b/apps/schema-manager/src/health/health.module.ts
new file mode 100644
index 0000000000000000000000000000000000000000..17ccd14e59cbfcc2c577204b278363bf15be4e7b
--- /dev/null
+++ b/apps/schema-manager/src/health/health.module.ts
@@ -0,0 +1,34 @@
+import type { ConfigType } from '@nestjs/config';
+
+import { HttpModule } from '@nestjs/axios';
+import { Module } from '@nestjs/common';
+import { ClientsModule, Transport } from '@nestjs/microservices';
+import { TerminusModule } from '@nestjs/terminus';
+
+import { SERVICE_NAME } from '../common/constants.js';
+import { natsConfig } from '../config/nats.config.js';
+
+import { HealthController } from './health.controller.js';
+
+@Module({
+  imports: [
+    TerminusModule,
+    HttpModule,
+    ClientsModule.registerAsync({
+      clients: [
+        {
+          name: SERVICE_NAME,
+          inject: [natsConfig.KEY],
+          useFactory: (config: ConfigType<typeof natsConfig>) => ({
+            transport: Transport.NATS,
+            options: {
+              servers: [config.url as string],
+            },
+          }),
+        },
+      ],
+    }),
+  ],
+  controllers: [HealthController],
+})
+export class HealthModule {}
diff --git a/apps/schema-manager/src/main.ts b/apps/schema-manager/src/main.ts
new file mode 100644
index 0000000000000000000000000000000000000000..4936407a8a19d52a4391a73f5f12faf6f76b04d8
--- /dev/null
+++ b/apps/schema-manager/src/main.ts
@@ -0,0 +1,38 @@
+import type { MicroserviceOptions } from '@nestjs/microservices';
+
+import { VersioningType } from '@nestjs/common';
+import { ConfigService } from '@nestjs/config';
+import { NestFactory } from '@nestjs/core';
+import { Transport } from '@nestjs/microservices';
+import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
+
+import AppModule from './app.module.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 OCM Credential Manager API')
+  .setDescription('API documentation for Gaia-X OCM Credential Manager')
+  .setVersion('1.0')
+  .build();
+
+const document = SwaggerModule.createDocument(app, swaggerConfig);
+
+SwaggerModule.setup('/swagger', app, document);
+await app.startAllMicroservices();
+
+await app.listen(configService.get('PORT') || 3000);
diff --git a/apps/schema-manager/tsconfig.build.json b/apps/schema-manager/tsconfig.build.json
new file mode 100644
index 0000000000000000000000000000000000000000..3e5ab438230b6cbd30a5825fc562c485a89ff95d
--- /dev/null
+++ b/apps/schema-manager/tsconfig.build.json
@@ -0,0 +1,9 @@
+{
+  "extends": "../../tsconfig.build.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "outDir": "./dist",
+    "rootDir": "./src"
+  },
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
+}
diff --git a/apps/schema-manager/tsconfig.json b/apps/schema-manager/tsconfig.json
new file mode 100644
index 0000000000000000000000000000000000000000..4082f16a5d91ce6f21a9092b14170eeecc8f1d75
--- /dev/null
+++ b/apps/schema-manager/tsconfig.json
@@ -0,0 +1,3 @@
+{
+  "extends": "../../tsconfig.json"
+}
diff --git a/apps/schema-manager/tsconfig.production.json b/apps/schema-manager/tsconfig.production.json
new file mode 100644
index 0000000000000000000000000000000000000000..45f85dfe5daf11a59e2fac464fa15940a2f50200
--- /dev/null
+++ b/apps/schema-manager/tsconfig.production.json
@@ -0,0 +1,9 @@
+{
+  "extends": "../../tsconfig.production.json",
+  "compilerOptions": {
+    "baseUrl": ".",
+    "outDir": "./dist",
+    "rootDir": "./src"
+  },
+  "exclude": ["node_modules", "**/test", "**/dist", "**/*spec.ts"]
+}
diff --git a/compose/docker-compose.yml b/compose/docker-compose.yml
index befb8e148819ddb0b1e880fd310f69dbf10a7500..fc6c17a802cb56fc2ab1a731b1f93a3dd72d482a 100644
--- a/compose/docker-compose.yml
+++ b/compose/docker-compose.yml
@@ -15,15 +15,29 @@ services:
       - nats
       - ssi
 
-  attestation-manager:
+  credential-manager:
     build:
       context: ..
       args:
-        - SERVICE=attestation-manager
+        - SERVICE=credential-manager
     init: true
     ports:
-      - '3005:3005'
-    env_file: ./env/attestation-manager.env
+      - '3011:3011'
+    env_file: ./env/credential-manager.env
+    depends_on:
+      - db
+      - nats
+      - ssi
+
+  schema-manager:
+    build:
+      context: ..
+      args:
+        - SERVICE=schema-manager
+    init: true
+    ports:
+      - '3013:3013'
+    env_file: ./env/schema-manager.env
     depends_on:
       - db
       - nats
diff --git a/package.json b/package.json
index 2c3442e32c9681b7bafd6e9ba66b17ca409cbe83..623bab701c0da115d284765c0ef5e40a121bdc1e 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
   "private": true,
   "scripts": {
     "prisma:generate": "pnpm -r prisma:generate",
-    "attestation:build": "pnpm -F attestation-manager build",
+    "schema:build": "pnpm -F schema-manager build",
+    "credential:build": "pnpm -F credential-manager build",
     "connection:build": "pnpm -F connection-manager build",
     "principal:build": "pnpm -F principal-manager build",
     "proof:build": "pnpm -F proof-manager build",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 24b76e3ad02cbd45af226803c1dd236fadf87d52..02d4884cc1332c2c51121970d6f8e40f9f6cc942 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -335,6 +335,106 @@ importers:
         specifier: ^5.2.2
         version: 5.2.2
 
+  apps/credential-manager:
+    dependencies:
+      '@nestjs/axios':
+        specifier: ^3.0.1
+        version: 3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common':
+        specifier: ^10.2.10
+        version: 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/config':
+        specifier: ^3.1.1
+        version: 3.1.1(@nestjs/common@10.2.10)(reflect-metadata@0.1.13)
+      '@nestjs/core':
+        specifier: ^10.2.10
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/microservices':
+        specifier: ^10.2.10
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/platform-express':
+        specifier: ^10.2.8
+        version: 10.2.8(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)
+      '@nestjs/swagger':
+        specifier: ^7.1.16
+        version: 7.1.16(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)
+      '@nestjs/terminus':
+        specifier: ^10.1.1
+        version: 10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      axios:
+        specifier: ^1.6.2
+        version: 1.6.2
+      class-transformer:
+        specifier: ^0.5.1
+        version: 0.5.1
+      class-validator:
+        specifier: ^0.14.0
+        version: 0.14.0
+      express:
+        specifier: ^4.17.3
+        version: 4.18.2
+      joi:
+        specifier: ^17.11.0
+        version: 17.11.0
+      nats:
+        specifier: ^2.18.0
+        version: 2.18.0
+      reflect-metadata:
+        specifier: ^0.1.13
+        version: 0.1.13
+      rxjs:
+        specifier: ^7.8.1
+        version: 7.8.1
+    devDependencies:
+      '@nestjs/cli':
+        specifier: ^10.2.1
+        version: 10.2.1(@swc/cli@0.1.63)(@swc/core@1.3.96)
+      '@nestjs/schematics':
+        specifier: ^10.0.3
+        version: 10.0.3(typescript@5.3.2)
+      '@nestjs/testing':
+        specifier: ^10.2.8
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)
+      '@swc/cli':
+        specifier: ^0.1.62
+        version: 0.1.63(@swc/core@1.3.96)
+      '@swc/core':
+        specifier: ^1.3.96
+        version: 1.3.96
+      '@swc/jest':
+        specifier: ^0.2.29
+        version: 0.2.29(@swc/core@1.3.96)
+      '@types/express':
+        specifier: ^4.17.21
+        version: 4.17.21
+      '@types/jest':
+        specifier: ^29.5.8
+        version: 29.5.10
+      '@types/jsonwebtoken':
+        specifier: ^9.0.5
+        version: 9.0.5
+      '@types/node':
+        specifier: ^20.9.0
+        version: 20.9.4
+      '@types/supertest':
+        specifier: ^2.0.16
+        version: 2.0.16
+      dotenv-cli:
+        specifier: ^7.3.0
+        version: 7.3.0
+      eslint:
+        specifier: ^8.53.0
+        version: 8.54.0
+      jest:
+        specifier: ^29.7.0
+        version: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1)
+      rimraf:
+        specifier: ^5.0.5
+        version: 5.0.5
+      typescript:
+        specifier: ^5.3.2
+        version: 5.3.2
+
   apps/proof-manager:
     dependencies:
       '@elastic/ecs-winston-format':
@@ -477,6 +577,106 @@ importers:
         specifier: ^5.2.2
         version: 5.2.2
 
+  apps/schema-manager:
+    dependencies:
+      '@nestjs/axios':
+        specifier: ^3.0.1
+        version: 3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common':
+        specifier: ^10.2.10
+        version: 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/config':
+        specifier: ^3.1.1
+        version: 3.1.1(@nestjs/common@10.2.10)(reflect-metadata@0.1.13)
+      '@nestjs/core':
+        specifier: ^10.2.10
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/microservices':
+        specifier: ^10.2.10
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/platform-express':
+        specifier: ^10.2.8
+        version: 10.2.8(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)
+      '@nestjs/swagger':
+        specifier: ^7.1.16
+        version: 7.1.16(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)
+      '@nestjs/terminus':
+        specifier: ^10.1.1
+        version: 10.1.1(@nestjs/axios@3.0.1)(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      axios:
+        specifier: ^1.6.2
+        version: 1.6.2
+      class-transformer:
+        specifier: ^0.5.1
+        version: 0.5.1
+      class-validator:
+        specifier: ^0.14.0
+        version: 0.14.0
+      express:
+        specifier: ^4.17.3
+        version: 4.18.2
+      joi:
+        specifier: ^17.11.0
+        version: 17.11.0
+      nats:
+        specifier: ^2.18.0
+        version: 2.18.0
+      reflect-metadata:
+        specifier: ^0.1.13
+        version: 0.1.13
+      rxjs:
+        specifier: ^7.8.1
+        version: 7.8.1
+    devDependencies:
+      '@nestjs/cli':
+        specifier: ^10.2.1
+        version: 10.2.1(@swc/cli@0.1.63)(@swc/core@1.3.96)
+      '@nestjs/schematics':
+        specifier: ^10.0.3
+        version: 10.0.3(typescript@5.3.2)
+      '@nestjs/testing':
+        specifier: ^10.2.8
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)
+      '@swc/cli':
+        specifier: ^0.1.62
+        version: 0.1.63(@swc/core@1.3.96)
+      '@swc/core':
+        specifier: ^1.3.96
+        version: 1.3.96
+      '@swc/jest':
+        specifier: ^0.2.29
+        version: 0.2.29(@swc/core@1.3.96)
+      '@types/express':
+        specifier: ^4.17.21
+        version: 4.17.21
+      '@types/jest':
+        specifier: ^29.5.8
+        version: 29.5.10
+      '@types/jsonwebtoken':
+        specifier: ^9.0.5
+        version: 9.0.5
+      '@types/node':
+        specifier: ^20.9.0
+        version: 20.9.4
+      '@types/supertest':
+        specifier: ^2.0.16
+        version: 2.0.16
+      dotenv-cli:
+        specifier: ^7.3.0
+        version: 7.3.0
+      eslint:
+        specifier: ^8.53.0
+        version: 8.54.0
+      jest:
+        specifier: ^29.7.0
+        version: 29.7.0(@types/node@20.9.4)(ts-node@10.9.1)
+      rimraf:
+        specifier: ^5.0.5
+        version: 5.0.5
+      typescript:
+        specifier: ^5.3.2
+        version: 5.3.2
+
   apps/shared:
     dependencies:
       '@aries-framework/core':
@@ -487,7 +687,7 @@ importers:
         version: 1.5.0
       '@nestjs/common':
         specifier: ^10.2.10
-        version: 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
+        version: 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/microservices':
         specifier: ^10.2.10
         version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
@@ -512,7 +712,7 @@ importers:
         version: 10.2.1
       '@nestjs/testing':
         specifier: ^10.2.10
-        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)
       '@types/jest':
         specifier: ^29.5.9
         version: 29.5.10
@@ -575,13 +775,13 @@ importers:
         version: 3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/common':
         specifier: ^10.2.10
-        version: 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
+        version: 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/config':
         specifier: ^3.1.1
         version: 3.1.1(@nestjs/common@10.2.10)(reflect-metadata@0.1.13)
       '@nestjs/core':
         specifier: ^10.2.10
-        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/microservices':
         specifier: ^10.2.10
         version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
@@ -618,7 +818,7 @@ importers:
         version: 10.0.3(typescript@5.3.2)
       '@nestjs/testing':
         specifier: ^10.2.10
-        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)
+        version: 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)
       '@types/express':
         specifier: ^4.17.21
         version: 4.17.21
@@ -3600,7 +3800,7 @@ packages:
       reflect-metadata: ^0.1.12
       rxjs: ^6.0.0 || ^7.0.0
     dependencies:
-      '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       axios: 1.6.2
       reflect-metadata: 0.1.13
       rxjs: 7.8.1
@@ -3706,7 +3906,7 @@ packages:
       - webpack-cli
     dev: true
 
-  /@nestjs/common@10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1):
+  /@nestjs/common@10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1):
     resolution: {integrity: sha512-fwAk931rjW8CNH2Mgwawq/7HWHH1dxkOLdcgs7U52ddLk8CtHXjejm1cbNahewlSbNhvlOl7y1STLHutE6sUqw==}
     peerDependencies:
       class-transformer: '*'
@@ -3719,6 +3919,8 @@ packages:
       class-validator:
         optional: true
     dependencies:
+      class-transformer: 0.5.1
+      class-validator: 0.14.0
       iterare: 1.2.1
       reflect-metadata: 0.1.13
       rxjs: 7.8.1
@@ -3752,7 +3954,7 @@ packages:
       '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
       reflect-metadata: ^0.1.13
     dependencies:
-      '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       dotenv: 16.3.1
       dotenv-expand: 10.0.0
       lodash: 4.17.21
@@ -3774,7 +3976,7 @@ packages:
       uuid: 9.0.0
     dev: false
 
-  /@nestjs/core@10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1):
+  /@nestjs/core@10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1):
     resolution: {integrity: sha512-+ckOI6BPi2ZMHikT9MCG4ctHDc4OnjhoIytrn7f2AYMMXI4bnutJhqyQKc30VDka5x3Wq6QAD57pgSP7y+JjJg==}
     requiresBuild: true
     peerDependencies:
@@ -3792,8 +3994,9 @@ packages:
       '@nestjs/websockets':
         optional: true
     dependencies:
-      '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/platform-express': 10.2.8(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)
       '@nuxtjs/opencollective': 0.3.2
       fast-safe-stringify: 2.1.1
       iterare: 1.2.1
@@ -3837,6 +4040,25 @@ packages:
     transitivePeerDependencies:
       - encoding
 
+  /@nestjs/mapped-types@2.0.3(@nestjs/common@10.2.10)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13):
+    resolution: {integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==}
+    peerDependencies:
+      '@nestjs/common': ^8.0.0 || ^9.0.0 || ^10.0.0
+      class-transformer: ^0.4.0 || ^0.5.0
+      class-validator: ^0.13.0 || ^0.14.0
+      reflect-metadata: ^0.1.12
+    peerDependenciesMeta:
+      class-transformer:
+        optional: true
+      class-validator:
+        optional: true
+    dependencies:
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      class-transformer: 0.5.1
+      class-validator: 0.14.0
+      reflect-metadata: 0.1.13
+    dev: false
+
   /@nestjs/mapped-types@2.0.3(@nestjs/common@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13):
     resolution: {integrity: sha512-40Zdqg98lqoF0+7ThWIZFStxgzisK6GG22+1ABO4kZiGF/Tu2FE+DYLw+Q9D94vcFWizJ+MSjNN4ns9r6hIGxw==}
     peerDependencies:
@@ -3911,8 +4133,8 @@ packages:
       nats:
         optional: true
     dependencies:
-      '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
-      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       iterare: 1.2.1
       nats: 2.18.0
       reflect-metadata: 0.1.13
@@ -3963,6 +4185,22 @@ packages:
       rxjs: 7.8.1
       tslib: 2.6.2
 
+  /@nestjs/platform-express@10.2.8(@nestjs/common@10.2.10)(@nestjs/core@10.2.10):
+    resolution: {integrity: sha512-WoSSVtwIRc5AdGMHWVzWZK4JZLT0f4o2xW8P9gQvcX+omL8W1kXCfY8GQYXNBG84XmBNYH8r0FtC8oMe/lH5NQ==}
+    peerDependencies:
+      '@nestjs/common': ^10.0.0
+      '@nestjs/core': ^10.0.0
+    dependencies:
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      body-parser: 1.20.2
+      cors: 2.8.5
+      express: 4.18.2
+      multer: 1.4.4-lts.1
+      tslib: 2.6.2
+    transitivePeerDependencies:
+      - supports-color
+
   /@nestjs/platform-express@10.2.8(@nestjs/common@10.2.8)(@nestjs/core@10.2.8):
     resolution: {integrity: sha512-WoSSVtwIRc5AdGMHWVzWZK4JZLT0f4o2xW8P9gQvcX+omL8W1kXCfY8GQYXNBG84XmBNYH8r0FtC8oMe/lH5NQ==}
     peerDependencies:
@@ -4023,6 +4261,35 @@ packages:
       - chokidar
     dev: true
 
+  /@nestjs/swagger@7.1.16(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13):
+    resolution: {integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==}
+    peerDependencies:
+      '@fastify/static': ^6.0.0
+      '@nestjs/common': ^9.0.0 || ^10.0.0
+      '@nestjs/core': ^9.0.0 || ^10.0.0
+      class-transformer: '*'
+      class-validator: '*'
+      reflect-metadata: ^0.1.12
+    peerDependenciesMeta:
+      '@fastify/static':
+        optional: true
+      class-transformer:
+        optional: true
+      class-validator:
+        optional: true
+    dependencies:
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/mapped-types': 2.0.3(@nestjs/common@10.2.10)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)
+      class-transformer: 0.5.1
+      class-validator: 0.14.0
+      js-yaml: 4.1.0
+      lodash: 4.17.21
+      path-to-regexp: 3.2.0
+      reflect-metadata: 0.1.13
+      swagger-ui-dist: 5.9.1
+    dev: false
+
   /@nestjs/swagger@7.1.16(@nestjs/common@10.2.8)(@nestjs/core@10.2.8)(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13):
     resolution: {integrity: sha512-f9KBk/BX9MUKPTj7tQNYJ124wV/jP5W2lwWHLGwe/4qQXixuDOo39zP55HIJ44LE7S04B7BOeUOo9GBJD/vRcw==}
     peerDependencies:
@@ -4101,8 +4368,8 @@ packages:
         optional: true
     dependencies:
       '@nestjs/axios': 3.0.1(@nestjs/common@10.2.10)(axios@1.6.2)(reflect-metadata@0.1.13)(rxjs@7.8.1)
-      '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
-      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       boxen: 5.1.2
       check-disk-space: 3.4.0
@@ -4169,7 +4436,7 @@ packages:
       rxjs: 7.8.1
     dev: false
 
-  /@nestjs/testing@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10):
+  /@nestjs/testing@10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8):
     resolution: {integrity: sha512-IVLUnPz/+fkBtPATYfqTIP+phN9yjkXejmj+JyhmcfPJZpxBmD1i9VSMqa4u54l37j0xkGPscQ0IXpbhqMYUKw==}
     peerDependencies:
       '@nestjs/common': ^10.0.0
@@ -4182,9 +4449,10 @@ packages:
       '@nestjs/platform-express':
         optional: true
     dependencies:
-      '@nestjs/common': 10.2.10(reflect-metadata@0.1.13)(rxjs@7.8.1)
-      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/common': 10.2.10(class-transformer@0.5.1)(class-validator@0.14.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/core': 10.2.10(@nestjs/common@10.2.10)(@nestjs/microservices@10.2.10)(@nestjs/platform-express@10.2.8)(reflect-metadata@0.1.13)(rxjs@7.8.1)
       '@nestjs/microservices': 10.2.10(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)(nats@2.18.0)(reflect-metadata@0.1.13)(rxjs@7.8.1)
+      '@nestjs/platform-express': 10.2.8(@nestjs/common@10.2.10)(@nestjs/core@10.2.10)
       tslib: 2.6.2
     dev: true
 
@@ -4346,7 +4614,7 @@ packages:
     engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0}
     dependencies:
       cross-spawn: 7.0.3
-      fast-glob: 3.3.1
+      fast-glob: 3.3.2
       is-glob: 4.0.3
       open: 9.1.0
       picocolors: 1.0.0
@@ -8349,6 +8617,7 @@ packages:
       glob-parent: 5.1.2
       merge2: 1.4.1
       micromatch: 4.0.5
+    dev: true
 
   /fast-glob@3.3.2:
     resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==}
@@ -9070,7 +9339,7 @@ packages:
     dependencies:
       array-union: 2.1.0
       dir-glob: 3.0.1
-      fast-glob: 3.3.1
+      fast-glob: 3.3.2
       ignore: 5.2.4
       merge2: 1.4.1
       slash: 3.0.0