Namespace Kuestenlogik.Bowire.Interceptor

Classes

BowireInterceptRailContribution

Intercept rail contribution (v2.2 rail-IA refactor). Replaces the previous Mocks + Traffic rails (plus the already-hidden Intercepted + Proxy descriptors) with a single rail whose four sub-tabs cover the whole "what do I do with live traffic" surface.

BowireInterceptorApplicationBuilderExtensions

IApplicationBuilder extensions that wire the in-process HTTP interceptor (#153) into an ASP.NET host's pipeline. Pair with AddBowire(IServiceCollection) and MapBowire(IEndpointRouteBuilder, string, Action<BowireOptions>?): register Bowire's services, mount the workbench, then call app.UseBowireInterceptor() as early in the pipeline as you want the interceptor to see the request (typically between UseRouting() and UseEndpoints()).

BowireInterceptorEndpointContribution

#325 (v2.1) — discoverable endpoint-mount entry point for the Interceptor package. Picked up by Core's BowireApiEndpoints scan via the IBowireEndpointContribution seam — splices the /api/intercepted/* (+ /api/traffic/* alias) and /api/tools/reverse- proxy/* endpoints into the auth-gated bowireGroup without Core referencing the endpoint types directly.

BowireInterceptorEndpoints

Workbench-facing endpoints for the in-process interceptor (#153). Pair with app.UseBowireInterceptor(): the middleware captures flows into the singleton InterceptedFlowStore, and these endpoints expose them to the workbench's "Intercepted" rail — listing, live SSE stream, detail fetch, send-to-recording.

BowireInterceptorOptions

Per-host configuration for Kuestenlogik.Bowire.Interceptor.BowireInterceptorMiddleware. The host hands an instance to UseBowireInterceptor(); the middleware honours it for every request that passes through.

BowireInterceptorServiceContribution

#325 (v2.1) — discoverable service-registration entry point for the Interceptor package. Picked up by Core's BowireServiceCollectionExtensions.AddBowire assembly scan via the IBowireServiceContribution seam, so embedded hosts that reference Kuestenlogik.Bowire.Interceptor get the flow store + mock store + reverse-proxy registry registered automatically — without Core taking a compile-time reference on the moved types.

BowireReverseProxyHost

Boots a standalone reverse-proxy host that fronts an upstream service (#307 — Phase C of the #153 interceptor track; YARP migration in #323). Two Kestrel hosts come up side-by-side:

BowireReverseProxyHostOptions

Construction-time configuration for BowireReverseProxyHost.

BowireToolsEndpoints

Workbench Tools surface — endpoints that drive the UI affordances under the topbar's "Tools" menu and Settings → Tools list. Currently the only entry is the reverse-proxy launcher (#153 UI phase), which lets an operator spin up an in-process BowireReverseProxyHost from the workbench without dropping to the standalone bowire proxy CLI.

InterceptedFlow

One request/response pair observed by Kuestenlogik.Bowire.Interceptor.BowireInterceptorMiddleware as it sat between the host's routing and endpoint stages. Shape mirrors CapturedFlow on purpose — the workbench "Intercepted" rail reuses the same detail-pane renderer as the standalone proxy's "Proxy" rail. Only the trigger differs: this surface is filled by every request the host receives, not by a CONNECT-tunnelled MITM session.

InterceptedFlowStore

In-memory ring buffer of InterceptedFlows plus a fan-out channel for live subscribers (Workbench "Intercepted" rail over SSE). Bounded so a long-running host with app.UseBowireInterceptor() doesn't grow unbounded — once Capacity flows are stored the oldest one is evicted before the new one is added.

InterceptorActivation

Process-singleton flag that records whether app.UseBowireInterceptor() ran during the host's startup. The workbench's Intercept rail probes this through GET /api/intercepted/status to decide whether the Captured / Live overrides / Settings sub-tabs render their normal content or the v2.2 "activate the interceptor first" empty state.

InterceptorMockRule

One mock-injection rule (#308, Phase D). When the interceptor sees a request whose path + method match this rule's PathPattern

  • Method, it short-circuits the pipeline and serves the rule's response directly — the host's endpoint never runs.
InterceptorMockStore

In-memory registry of InterceptorMockRules consulted by the interceptor middleware on every request when BowireInterceptorOptions.MocksEnabled is on (#308, Phase D). Rules are matched in insertion order — the first match wins, so the workbench can compose specific overrides before broad catch-alls.

ReverseProxyRegistry

Process-wide registry of BowireReverseProxyHost instances started from the workbench's Tools → Reverse-proxy surface (#153 UI Phase). Hosts started here die when the surrounding Bowire process exits — the registry hooks ApplicationStopping to stop and dispose every entry so a Ctrl-C on the parent doesn't leak Kestrel listeners.

ReverseProxyRegistryEntry

One running reverse-proxy entry — the host instance plus the metadata the workbench renders on the Tools list.