Technology
Explore the tools, components, and architecture powering eSignet.
eSignet's Go implementation is built on a small, deliberately chosen set of open-source tools rather than a sprawling dependency tree: a statically typed, compiled language for its backend services, a relational database and an in-memory store for persistence, and a React-based interface for the screens a user actually sees. Each choice below is meant to keep the platform straightforward to run, secure to operate, and simple to audit, whether the goal is deploying it, extending it, or clearing it for a compliance review.
For eSignet's internal building blocks and how they fit together, see Developer Guide.
Language & Runtime
eSignet's Go implementation is written in Go itself, chosen for its built-in concurrency model, fast compilation, and suitability for network and infrastructure services.
1.26
Go is a statically typed, compiled programming language designed by Google for simplicity, built-in concurrency, and fast compilation, commonly used for building networked and infrastructure services.
API & Service Layer
Rather than building HTTP handling and OIDC/OAuth2 flow logic from scratch, eSignet composes a small set of focused pieces: Go's own standard library for HTTP, an embedded authorization engine for the OIDC/OAuth2 flow itself, structured logging for observability, and a dedicated component for key management and cryptographic operations.
Go 1.26 stdlib
Go's standard library package for building HTTP clients and servers; eSignet's HTTP entrypoint and routing are built directly on it, with no third-party web framework.
pinned via go.mod replace directive
An OIDC/OAuth2 authorization engine providing flow orchestration and a pluggable authenticator/executor model; eSignet embeds it as the core of its authorization-code flow.
Go 1.26 stdlib
Go's standard library package for structured, leveled logging; eSignet emits structured JSON logs through it.
Keymanager (embedded)
part of esignet-service
Provides secure storage, provisioning, and management of cryptographic keys, including encryption/decryption and digital signature/verification operations.
Data & Storage
eSignet separates data by durability need across two stores: a relational database for anything that needs to persist, and an in-memory store for short-lived flow and session state.
15
A free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. eSignet uses it for OIDC client management and for the keymanager's key/certificate store.
6.0 and above (requires KEEPTTL support)
An open-source, in-memory data store used as a database, cache, streaming engine, and message broker. eSignet uses it to hold runtime flow, session, and pushed-authorization-request state.
Frontend
The login and consent screens a user actually interacts with are a separate React application that the OIDC/OAuth2 provider redirects to during an authorization request.
19
Lets you build user interfaces out of individual pieces called components; it powers eSignet's login/consent UI.
Build, Packaging & Deployment
eSignet is packaged as Docker containers and deployed via Helm charts, with dependency management and CI/CD handled by tooling native to each side of the stack — Go modules for the backend, npm for the UI.
Go 1.26
Go's built-in dependency-management system, recording a project's dependencies and their versions in go.mod/go.sum.
20.4 and above
A set of platform-as-a-service products that use OS-level virtualization to deliver software in packages called containers.
Node.js 18 and above, npm 9 and above
The package manager for the Node.js JavaScript platform; it installs and manages the UI's dependencies.
depends on eSignet version
Helps manage Kubernetes applications — defining, installing, and upgrading them via versioned, shareable charts.
reusable CI/CD workflow
Holds the reusable GitHub Actions workflows used to build, test, and gate MOSIP projects' pull requests and releases.
Testing
eSignet's automated tests span two levels: Go's own unit-testing tooling for the backend logic itself, and Postman/Newman-driven tests that exercise its APIs end to end.
Go 1.26 stdlib / v1.11.1
Go's built-in testing package, together with the testify toolkit (assertions and suite-based test structure), used to write and run unit tests via go test.
—
A command-line tool that runs Postman collections and automates API tests; used for CI/CD-integrated API testing.
Last updated
Was this helpful?