Skip to content

Converge into single Spring Boot monolith; add runtime DB-driven scheduler, admin config APIs and audit log#27

Merged
GalaxySciTech merged 1 commit intomasterfrom
codex/refactor-java-wallet-to-monolithic-spring-boot-u25pm1
May 1, 2026
Merged

Converge into single Spring Boot monolith; add runtime DB-driven scheduler, admin config APIs and audit log#27
GalaxySciTech merged 1 commit intomasterfrom
codex/refactor-java-wallet-to-monolithic-spring-boot-u25pm1

Conversation

@GalaxySciTech
Copy link
Copy Markdown
Owner

Motivation

  • Consolidate previously split services into a single Spring Boot wallet service to simplify deployment and runtime flow.
  • Eliminate external dependencies for background jobs and HSM network calls by supporting in-process HSM invocation and DB-driven scheduling.
  • Introduce runtime configuration and admin controls (including audit logging) so operational behavior can be changed without redeploys.

Description

  • Reworked project layout and build: replaced multi-module Gradle setup with a single top-level build.gradle, bumped runtime/deps (e.g. com.github.galaxyscitech:tokencore:2.0.0) and set Java 17/Kotlin targets.
  • Collapsed wallet-webapi/wallet-task/wallet-hsm into one app runtime, removed RabbitMQ/xxl-job/docker artifacts, simplified docker-compose.yml to app + mysql, and updated ports to 8080.
  • Added runtime config model and DB migration updates: new SQL and JPA entities/repositories for wallet_admin_audit_log, wallet_rpc_config, wallet_scheduler_config, wallet_chain_config, wallet_sweep_config, wallet_withdraw_config, wallet_fee_supply_config, and wallet_security_config.
  • Feature additions and code changes: new AdminController exposing CRUD admin/config endpoints with audit logging and masking, DynamicTaskScheduler and RuntimeConfigService for DB-driven scheduled tasks, HsmRequest refactored for in-process HSM xservice usage, and PushComponent changed to HTTP/post push instead of AMQP.

Testing

  • Ran unit tests with ./gradlew test which completed successfully.
  • Built the application with ./gradlew build and validated the Docker Compose startup with docker compose up -d --build for a local smoke check (containers started and healthchecks passed).

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant