Roadmap & Known Issues

Planned features, GitHub issue backlog, and known bugs or technical debt in the current v1.0.0 release.

Planned Features

The following items are defined in .github/issues.json and will be auto-created as GitHub Issues via the auto-create-issues workflow.

#FeatureDescriptionLabels
1List all usersPaginated admin API to fetch list of usersadmin, api
2Block / unblock usersAdmin API to block or unblock user accountsadmin, user-management
3Update rolesModify user roles using Keycloak RBACadmin, keycloak
4View audit logsAccess audit logs for compliance and investigationadmin, audit
5Trigger user notificationsManually trigger notifications to usersadmin, notification
6View system-wide statsDashboard for system statistics such as total user countadmin, analytics

Known Issues & Technical Debt

Security

{{% alert icon="๐Ÿšจ" context="danger" %}} Missing @PreAuthorize on DELETE /api/admin/vault-secrets

The deleteVaultSecret method in VaultOperationsController is not annotated with @PreAuthorize. Any authenticated user โ€” regardless of role โ€” can delete a Vault secret path. This is a critical gap and should be patched immediately:

Java code-highlight
@PreAuthorize("@rolePermissionValidator.hasAnyRole(authentication, 'vault-ops')")
@DeleteMapping("/vault-secrets")
public ResponseEntity<?> deleteVaultSecret(@RequestParam String service) { ... }

{{% /alert %}}

Configuration

The bootstrap.yml currently has role-id and secret-id hardcoded. These credentials expire and must be rotated manually. Externalise them into the vault-param.yml local config file or inject via environment variables before any shared deployment.

Code Consistency

ClientCreationController does not use @AdminRestController โ€” it declares @RequestMapping("/api/admin") directly. This inconsistency should be corrected to match all other controllers.
The @AllowedRoles annotation is defined but unused. All controllers use inline @PreAuthorize expressions instead. Either adopt @AllowedRoles consistently or remove it to avoid confusion.

Unused Dependencies

DependencyStatusNotes
spring-kafka + kafka-streamsDeclared, not usedAvro schemas and topic constants exist; producers/consumers not yet implemented
spring-boot-starter-batchDeclared, not usedNo batch jobs implemented

Test Coverage

Only a context-load stub test exists (AryaBankingAdminServiceApplication). No unit or integration tests have been written. JaCoCo is configured but will report near-zero coverage until tests are added.

Code Quality

VaultPolicyServiceImpl has an unused import: org.apache.kafka.common.protocol.types.Field.Field. This should be cleaned up to avoid SpotBugs warnings.

Dependency Versions Reference

DependencyVersion
Spring Boot3.5.4
Spring Cloud2025.0.0
Keycloak Admin Client26.0.4
SpringDoc OpenAPI2.8.9
MapStruct1.5.5.Final
Lombok1.18.36
Avro1.11.4
arya-banking-common1.1.9
JaCoCo0.8.13
SpotBugs Plugin4.8.6.1
roadmapissuestechnical-debt