Class BowireRecordingSessionEndpoints
- Namespace
- Kuestenlogik.Bowire.Recordings
- Assembly
- Kuestenlogik.Bowire.Recordings.dll
REST + SSE surface for the server-side BowireRecordingSession
(#285). The workbench's recorder UI observes session-state transitions
via the SSE channel and drives lifecycle changes through the REST
endpoints; the MCP bowire.record.start / stop / replay tools
drive the same session directly (no HTTP hop — they take a DI
dependency on the singleton).
Routes:
POST {basePath}/api/recording/session/start— body:{ workspaceId, mode, name?, recordingId? }POST {basePath}/api/recording/session/stop— flushes the buffer into the recording store, returns the persistedrecordingId+ step count.POST {basePath}/api/recording/session/replay— switches the active session into replay mode.GET {basePath}/api/recording/session/status— returns the current session snapshot (or null).GET {basePath}/api/recording/session/events— SSE stream of BowireRecordingSessionEvent transitions for the workbench's badge updates.
public sealed class BowireRecordingSessionEndpoints : IBowireEndpointContribution
- Inheritance
-
BowireRecordingSessionEndpoints
- Implements
- Inherited Members
Remarks
#311 - moved out of core beside the rail's JS. The session object and RecordingStore stay in core: the CLI and the replay pipeline reach them directly and must keep working without this package. What moves is the HTTP surface, which only recording.js calls.
Constructors
BowireRecordingSessionEndpoints()
public BowireRecordingSessionEndpoints()
Methods
MapEndpoints(IEndpointRouteBuilder, string)
Map this contribution's endpoints. Called once per host startup
from BowireApiEndpoints.MapBowire.
public void MapEndpoints(IEndpointRouteBuilder endpoints, string basePath)
Parameters
endpointsIEndpointRouteBuilderThe auth-gated IEndpointRouteBuilder group every workbench feature endpoint lives under.
basePathstringThe URL fragment every route is anchored under (e.g.
/bowirefor embedded hosts, empty for the standalone CLI).