Skip to content

Accounts Component -- common-module 6.x Migration

Status: Completed Repository: accounts-component Branch: jmpicnic/adopt-common-6x Version: accounts-component 1.11.0 (from 1.10.x)

Migrate accounts-component from common-module 5.4.1 to 6.7.0, adopting the ComponentBuilder / ModuleRegistry DSL and adding the OAM configuration endpoint.

The migration covered four module files and the component runtime entry point, plus infrastructure changes:

  • Updated gradle/libs.versions.toml to arda-common-version = "6.7.0".
  • Rewrote Main.kt to use Component.build() and the builder.module { } DSL. Removed the Configurations data class and getConfigurations() function.
  • Updated all 4 module files (TenantModule, AgentForModule, UserAccountModule, InvitationModule) to add a ModuleRegistry parameter and call configureServer(this, registry).
  • Updated ComponentStartUpConfigurationTest.kt to use the new ComponentBuilder pattern.
  • Verified and fixed testcontainers 1.x to 2.x import changes where needed.
  • Added OamRoute to post-install.cfn.yml for API Gateway path /accounts/oam/{proxy+}.
  • Added OAM path conditional block to ingress.yaml for Nginx ingress rule /accounts/oam.
  • Added configuration.bru to the api-test collection for accounts-component verifying the /accounts/oam/configuration endpoint.
  • Added parallel test for operations-component at /operations/oam/configuration.

GET /accounts/oam/configuration returns a JSON response describing the component and its registered modules:

{
"component": "accounts",
"version": "1.11.0",
"modules": [
{ "name": "tenant", ... },
{ "name": "user-account", ... },
{ "name": "agent-for", ... },
{ "name": "invitation", ... }
]
}

This endpoint is provided by common-module’s ModuleRegistry and requires no implementation in accounts-component beyond calling configureServer(this, registry).