Overview

What the admin-service does, its role in the Arya Banking platform, and the tech stack powering it.

What is the Admin Service?

The arya-banking-admin-service is the administrative backbone of the Arya Banking event-driven microservices platform. It serves a dual purpose:

  • Infrastructure Administration — Manages HashiCorp Vault secrets, AppRole credentials, and HCL policies programmatically via a REST API.
  • Identity Administration — Manages Keycloak realm roles and inter-service OAuth2 clients via the Keycloak Admin Client.

All APIs are protected by JWT-based OAuth2 Resource Server (Keycloak-issued tokens) and role-checked at the method level via a custom RolePermissionValidator backed by the security.api-roles configuration map.


Service Coordinates

PropertyValue
Artifactorg.arya.banking:arya-banking-admin-service
Version1.0.0
Java17
Spring Boot3.5.4
Spring Cloud2025.0.0
Common Libraryarya-banking-common:1.1.9
Server Port8089
Base API Path/api/admin
GitHub RepoEvent-Based-Banking-Application/arya-banking-admin-service

Responsibilities

The admin-service is the only service in the platform that has elevated Vault and Keycloak privileges. Other services receive read-only access; the admin-service provisions, manages, and rotates that access.

Vault Management

  • Create, read, update, and delete KV v2 secrets scoped to individual services under secret/arya-banking/{service}/dev
  • Full CRUD over Vault AppRoles — including generating fresh roleId / secretId credential pairs
  • Upload and delete HCL policy files (stored as classpath resources, versioned in Git)

Keycloak Management

  • Create confidential OAuth2 clients for inter-service communication (service accounts flow)
  • Create, list, and query realm-level roles
  • Assign the INTERNAL_SERVICE realm role to the service account of newly-created clients

Technology Stack

LayerTechnology
FrameworkSpring Boot 3.5.4 + Spring Cloud 2025.0.0
REST APISpring Web MVC
SecuritySpring Security OAuth2 Resource Server (JWT)
SecretsHashiCorp Vault (AppRole auth, KV v2)
IdentityKeycloak Admin Client v26.0.4
Service DiscoveryNetflix Eureka Client
Config ServerSpring Cloud Config
DatabaseMongoDB (via arya-banking-common)
MappingMapStruct 1.5.5
API DocsSpringDoc OpenAPI / Swagger UI
BuildMaven + Spring Boot Buildpacks
CI/CDGitHub Actions
Kafka (spring-kafka + kafka-streams) and Spring Batch are declared as Maven dependencies but are not yet implemented. They are reserved for future event publishing and batch processing features.
admin-serviceoverviewmicroservices