# Technology Stack

## Services and Rest Endpoints

eSignet leverages a combination of backend technologies to ensure secure identity management and seamless service delivery.

<table><thead><tr><th width="179">Tool/Technology</th><th width="124">Version</th><th width="252">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://www.java.com/en/">Java SE 11</a></td><td>OpenJDK 11</td><td>Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.</td><td><a href="https://www.oracle.com/in/downloads/licenses/binary-code-license.html">Oracle Binary Code License</a></td></tr><tr><td><a href="https://spring.io/projects/spring-framework">Spring Framework</a></td><td>2.3.6</td><td>Spring Framework provides a comprehensive programming and configuration model for modern Java-based enterprise applications - on any kind of deployment platform.</td><td><a href="https://github.com/spring-projects/spring-framework/blob/main/LICENSE.txt">Apache License 2.0</a></td></tr><tr><td><a href="https://projectlombok.org/">Lombok</a></td><td>1.18.24</td><td>Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.</td><td><a href="https://github.com/projectlombok/lombok/blob/master/LICENSE">Lombok License</a></td></tr><tr><td><a href="https://logback.qos.ch/">Logback</a></td><td>1.2.3</td><td>Logback is a logging framework that provides a fast, reliable, and highly configurable solution for generating logs in Java applications.</td><td><a href="https://github.com/qos-ch/logback/blob/master/LICENSE.txt">Logback License</a></td></tr><tr><td><a href="https://www.openapis.org/">openapi</a></td><td>1.6.9</td><td>The OpenAPI Specification is a specification language for HTTP APIs that provides a standardized means to define your API to others.</td><td><a href="https://github.com/OAI/OpenAPI-Specification/blob/main/LICENSE">Apache License 2.0</a></td></tr><tr><td><a href="https://docs.mosip.io/1.2.0/modules/keymanager">kernel-keymanager-service (MOSIP)</a></td><td>1.2.1.0</td><td>The Key Manager Service provides secure storage, provisioning and management of secret data. It provides all the cryptographic operations like encryption/decryption and digital signature/verification making one trust store for all partner trust path validation.</td><td><a href="https://github.com/mosip/keymanager/blob/master/LICENSE">Mozilla Public License 2.0</a></td></tr><tr><td><a href="https://react.dev/">React JS</a></td><td>18.2v</td><td>React lets you build user interfaces out of individual pieces called components.</td><td><a href="https://github.com/facebook/react/blob/main/LICENSE">MIT License</a></td></tr></tbody></table>

## Storage

eSignet utilizes high-performance storage solutions for managing structured and real-time data.

<table><thead><tr><th width="180">Tool/Technology</th><th width="124">Version</th><th width="251">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://www.postgresql.org/">Postgres</a></td><td>15</td><td>PostgreSQL also known as Postgres, is a free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance.</td><td><a href="https://opensource.org/license/postgresql/">OpenSource License</a></td></tr><tr><td><a href="https://redis.io/">Redis</a></td><td>17.3.14</td><td>Redis is a open source, in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. Redis can be replaced with any cache compatible with spring-cache.</td><td><a href="https://redis.io/docs/about/license/">BSD License</a></td></tr><tr><td><a href="https://kafka.apache.org/">Kafka</a></td><td>18.3.1</td><td>Apache Kafka is an open-source distributed event streaming platform used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.</td><td><a href="https://github.com/apache/kafka/blob/trunk/LICENSE">Apache License 2.0</a></td></tr></tbody></table>

## Deployment

eSignet is designed for containerized and automated deployments, leveraging modern DevOps tools.

<table><thead><tr><th width="183.33333333333331">Tool/Technology</th><th width="124">Version</th><th width="250">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://maven.apache.org/">Maven</a></td><td>3.6</td><td>Apache Maven is a software project management and comprehension tool. Based on the concept of a project object model (POM), Maven can manage a project's build, reporting and documentation from a central piece of information.</td><td><a href="https://apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></td></tr><tr><td><a href="https://www.docker.com/">Docker</a></td><td>20.4 and above</td><td>Docker is a set of platform as a service (PaaS) products that use OS-level virtualization to deliver software in packages called containers.</td><td><a href="https://www.docker.com/community/open-source/">OpenSource License</a></td></tr><tr><td><a href="https://www.npmjs.com/">npm</a></td><td>18-alpine</td><td>npm is the package manager for the Node JavaScript platform. It puts modules in place so that node can find them, and manages dependency conflicts intelligently.</td><td><a href="https://docs.npmjs.com/policies/npm-license">Artistic License 2.0</a></td></tr><tr><td><a href="https://github.com/mosip/kattu">kattu (MOSIP)</a></td><td>master branch</td><td>All workflows necessary to build the project is kept here</td><td></td></tr><tr><td><a href="https://github.com/mosip/mosip-helm">Helm Chart (MOSIP)</a></td><td>depends on eSignet version</td><td>Helm helps you manage Kubernetes applications - helps define, install, and upgrade even the most complex Kubernetes application. Charts are easy to create, version, share, and publish — so start using Helm and stop the copy-and-paste.</td><td></td></tr></tbody></table>

## Testing

eSignet ensures reliability and stability through automated testing frameworks and API testing tools.

<table><thead><tr><th width="184">Tool/Technology</th><th width="125">Version</th><th width="251">Description</th><th>License</th></tr></thead><tbody><tr><td><a href="https://junit.org/junit5/">JUnit</a></td><td></td><td>JUnit is a unit testing framework for the Java programming language.JUnit has been important in the development of test-driven development, and is one of a family of unit testing frameworks which is collectively known as xUnit that originated with SUnit.</td><td><a href="https://junit.org/junit4/license.html">Eclipse Public License 1.0</a></td></tr><tr><td><a href="https://learning.postman.com/docs/collections/using-newman-cli/command-line-integration-with-newman/">Newman</a></td><td></td><td>Newman is a command-line tool that allows you to run Postman collections and automate API tests. It is ideal for integrating API testing into CI/CD pipelines and provides detailed test reports for automated workflows.</td><td><a href="https://apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></td></tr><tr><td><a href="https://www.postman.com/">Postman</a></td><td></td><td>Postman is an API platform that simplifies the API lifecycle and streamlines collaboration. You can browse the largest network of public APIs, create and share your own workspaces, and access governance rules for API quality.</td><td><a href="https://apache.org/licenses/LICENSE-2.0">Apache License 2.0</a></td></tr></tbody></table>
