Engine Application
Controllers
All controllers are reactive WebFlux @RestController`s in `engine/controller/, annotated with a
Springdoc @Tag so they group in the generated OpenAPI document. Authorization is applied per
method with @PreAuthorize — the security filter chain itself permits every exchange, see
Security Implementation.
The request and response semantics of the externally consumed endpoints are documented for integrators in the public integration documentation; this page is the map from endpoint groups to the classes that serve them, plus the endpoints that are internal only.
Consumer-Facing Controllers
| Controller | Paths | Notes |
|---|---|---|
|
Project and agent discovery. Delegates the visibility and permission rules to |
|
|
Session and turn history, and the LLM log of a session. |
|
|
Current user, user erasure and push token registration. |
|
|
Memory snapshot, restore and deletion. |
|
|
The caller’s own coaching profile for a project — see Codebook and Development Profile. The user id comes from the authenticated principal, never from the request. An absent profile is a normal state and returns 200 with an empty body. |
|
|
Evaluation status, insights and aggregations. The status endpoints are explicitly
|
|
|
Whether a navigation hint is active for the user. |
|
|
Feedback specifications, the answers to them, and skipping or postponing a form without answers. The caller is the authenticated user or,
failing that, the user of the |
|
|
Agent, project and live-avatar images, composed and cached in resource storage and re-encoded to the requested format. |
|
|
Streams session recordings from resource storage, remuxing to MP4 on the fly through |
|
|
Client technical reports, bug reports and conversation issues. |
|
|
The HTTP conversation channel: a streamed |
|
|
Instance metadata and the platform-dependent redirect to the client application. |
|
|
Authorization code flow with PKCE for third-party service connections. |
|
|
MCP connector management. Loading tools requires the |
|
|
Outbound telephony. Only present when a |
|
|
Slack Events API webhook: runs a conversation turn per message and posts the streamed response back through the Slack Web API. Also runs a scheduled cleanup of stale state. |
Internal Controllers
These are not part of the public integration surface.
| Controller | Paths | Purpose |
|---|---|---|
|
Probes the pluggable providers — all of them or one by name — and reports per-component results.
Requires the |
|
|
Sends a push message to a user, to all users of an agent or to all users of a project. Requires
the |
|
|
Session debugger: the turn and component timeline of a session, and replaying a recorded invocation against a model. Requires an authenticated user, additionally authorized against the session’s project ACL. |
|
|
Opening a project, its tool call statistics, the turns behind them, on-demand relevance classification and the classification criteria with their draft and publish workflow. Requires an authenticated project or account owner — see Tool Call Analysis. |
|
|
Bootstrap configuration (issuer, client ID, scopes) for the debugger front end. |
|
|
Renders the SPA host page, injecting version, commit and public URL. |
Cross-Cutting
| Class | Behaviour |
|---|---|
|
|
A |
|
Adds the bearer security scheme and the |
CORS is enabled for /api/ for all origins, methods and headers; static resources and the
/client/ SPA fallback are served by the router function declared in EngineConfiguration.