TramAI - governed AI workflows for Java and Kotlin

tramai-spring-boot-starter-sovereign-ops-rest

Version: 0.6.0
Status: Preview
Role: Opt-in HTTP surface over the sovereign ops services. Disabled by default.

Purpose

This add-on puts a REST control plane in front of the services from tramai-spring-boot-starter-sovereign-ops: read an approval, approve, deny or resume it, and query the approval inbox. Controllers delegate to the ops services — the module contains no persistence logic of its own.

Both the control plane and the reviewer UI are off until you switch them on. Authentication and authorization are explicitly not part of this module: expose these endpoints only behind your own access control.

What it provides

ComponentEndpoint
ApprovalControlPlaneControllerGET {base-path}/{approvalId}, POST {base-path}/{approvalId}/approve, POST …/deny, POST …/resume
ApprovalInboxControllerGET {base-path}, GET {base-path}/{approvalId}/work-item
ApprovalReviewerUiControllerGET /tramai/sovereign/reviewer (HTML)
ApprovalControlPlaneResponse, ApprovalStatusResponse, ApprovalInboxItemResponse, ApprovalInboxListResponse, ApprovalWorkItemResponse, ApproveDenyRequest, ResumeRequestRequest/response DTOs

base-path defaults to /tramai/sovereign/approvals for the approval endpoints and /tramai/sovereign for the reviewer UI, and is configurable through tramai.sovereign.ops.rest.base-path.

Dependencies

dependencies {
    implementation(platform("dev.tramai:tramai-bom:0.6.0"))
    implementation("dev.tramai:tramai-spring-boot-starter")
    implementation("dev.tramai:tramai-spring-boot-starter-sovereign-ops")
    implementation("dev.tramai:tramai-spring-boot-starter-sovereign-ops-rest")
}
tramai:
  profile: sovereign
  sovereign:
    ops:
      enabled: true
      rest-control-plane-enabled: true   # registers the controllers
      reviewer-ui-enabled: true          # registers the HTML reviewer page

When to use this add-on

  • A reviewer or operator needs to inspect the inbox and decide on approvals over HTTP or a browser page.
  • You already have an authentication/authorization layer to put in front of it.

When NOT to use this add-on

  • The application decides approvals programmatically through the ops services — skip the HTTP surface.
  • You cannot terminate with your own authorization: this module ships no authentication.
  • You only need worker visibility: use -ops-actuator instead.