Add README files for the four dc3-db-postgres-* modules, state the artifactId in the r2dbc module READMEs, list the new modules in the dc3-db README, and document the CallTool RPC in dc3-api-auth. Co-Authored-By: Claude Code <noreply@anthropic.com>
DC3 API Auth
dc3-api-auth defines the authentication and authorization gRPC contracts. Generated Java types use the
io.github.pnoker.api.center.auth package; proto sources live under src/main/protobuf/api/common/auth/.
Services
| Service | RPCs | Purpose |
|---|---|---|
TenantApi |
GetByCode |
resolve tenant metadata |
UserApi |
GetById, GetByPrincipalId |
resolve user identity |
TokenApi |
CheckValid |
validate login/token material |
LocalCredentialApi |
GetByLoginName |
resolve local credentials |
PermissionApi |
ListPermissionCodes |
resolve effective permission codes |
ResourceRegistryApi |
Sync |
synchronize annotated API/menu resources |
McpRuntimeApi |
Introspect, ListTools, ResolveTool, AuthorizeToolCall, CallTool, Audit |
authorize and audit MCP tools |
Every RPC returns its typed payload directly. Failures use standard gRPC status codes and metadata; callers never inspect an application-level response envelope.
Consumers and implementation
dc3-common-authimplements the servers as Spring@Servicebeans extending generated*ImplBaseclasses.dc3-common-facade-grpccreates shared blocking stubs and exposes transport-independent auth facades.dc3-gatewayuses auth facades for ingress authentication and authorization.
Business code should depend on facade interfaces instead of generated stubs unless it is itself a transport adapter.
Build and Verification
Run from the repository root:
mvn -s .mvn/settings.xml -q -pl dc3-api/dc3-api-auth -am compile
This module has no handwritten runtime code or module-specific tests. A successful compile verifies proto syntax and generated Java sources; server/facade behaviour is tested in the implementing modules.
When changing the contract, update implementations and clients together, and verify that tenant and authorization context remain explicit.