API Reference
This is the auto-generated reference for the Bowire SDK + every first-party
package that ships from this repo. It is built by DocFX from the XML
doc-comments emitted by each project's Kuestenlogik.Bowire*.xml file at
release time — every public type, property, method, and event lands here
verbatim.
Looking for prose docs? The conceptual guides — what Bowire is, how the workbench is laid out, how the protocols behave, how to embed the SDK — live under Features, the User Guide, the Protocol Guides, and the Architecture section. This page is the index for the reference surface specifically.
How to use this reference
- Browse by namespace. Every namespace is listed below — pick the package you're working in, jump to the namespace page, drill into types.
- Search. The standalone HTML build wires the
_enableSearchflag, so the search box across the top hits both the prose docs and this generated reference. The bowire.io build defers search to Pagefind across the whole site instead. - Cross-references. Type names rendered as links resolve through DocFX's
xref index —
<xref:Kuestenlogik.Bowire.IBowireProtocol>in any doc page becomes a direct link to the interface page.
Core
The flagship package every Bowire host references — workbench shell, plugin
registries, options, the MapBowire() extension, and the public extension
points sibling packages plug into.
- Kuestenlogik.Bowire — host SDK entry point:
IBowireProtocolcontract,BowireOptions,MapBowire(),BowireProtocolRegistry, the plugin-loading host, the rail / module / endpoint / service contribution interfaces. - Kuestenlogik.Bowire.Plugins — rail / module / endpoint / service contribution registries (
BowireRailRegistry,BowireModuleRegistry) and the auto-update check service. - Kuestenlogik.Bowire.Auth — cookie jar, mTLS handler, AWS Sig v4 signer, the auth-provider registry, the user-store SPI.
- Kuestenlogik.Bowire.Mocking — recording / step / frame contracts shared across plugins; HAR import, schema snapshots, the mock-emitter / mock-hosting extension SPIs.
- Kuestenlogik.Bowire.Models — service / method / message / field info DTOs the dispatcher sees (used by every protocol plugin).
- Kuestenlogik.Bowire.PluginLoading —
AssemblyLoadContextplumbing forbowire plugin install(.NET + sidecar manifests). - Kuestenlogik.Bowire.Semantics — semantic annotation store + the detectors that infer kinds (coordinates, timestamps, image bytes, audio bytes, …).
- Kuestenlogik.Bowire.Semantics.Extensions — the workbench's UI-extension contract (
IBowireUiExtension) + the embedded-asset serving helpers. - Kuestenlogik.Bowire.Sources — catalogue / discovery provider contract (
IBowireCatalogueProvider) and the built-inlocal/http/consulproviders. - Kuestenlogik.Bowire.Recording — recording-session state machine + event stream.
- Kuestenlogik.Bowire.Security — fuzzing executor + the attack-predicate DSL the security scanner evaluates against.
Workbench rails (Welle 2 layout)
After the v2.1 #325 cleanup each workbench rail ships as its own NuGet
package and registers itself via IBowireRailContribution. Embedded hosts
opt out by simply not referencing the package — the rail disappears from
the strip.
- Kuestenlogik.Bowire.Compose — the Compose rail (sequenced request scenarios).
- Kuestenlogik.Bowire.Recordings — the Recordings rail (replay-shaped capture).
- Kuestenlogik.Bowire.Flows — the Flows rail (multi-step request chains with assertions).
- <xref:Kuestenlogik.Bowire.Workspaces> — the Workspaces + Environments rails (folder-shaped persistence; folded
Rail.EnvironmentsintoWorkspacesin Welle 2). - Kuestenlogik.Bowire.Benchmarking — the Benchmarking rail (load + latency tests; renamed from
Rail.Benchmarksin Welle 2). - Kuestenlogik.Bowire.Interceptor — the Proxy + Intercepted + Traffic rails consolidated into one package (Welle 2 fold-in of
Rail.Proxy+Rail.Intercepted+Rail.Traffic). - Kuestenlogik.Bowire.Mock — the Mocks rail + the mock-server host (Welle 2 fold-in of
Rail.MocksintoMock). - Kuestenlogik.Bowire.Help — the Help rail + the
IBowireHelpProvidercontract (#324). - Kuestenlogik.Bowire.Security.Scanner — the Security rail + the
bowire scanCLI: vulnerability-template + Nuclei-corpus replay, the always-on passive checks, and the OWASP API Security Top 10 suite (--suite=owasp-api, theIOwaspApiProbeper-entry probes,OwaspApiCatalog, and the/api/security/owasp-catalog+/api/security/owasp-scanworkbench endpoints). - Kuestenlogik.Bowire.Security.Templates.Nuclei — reads the
projectdiscovery/nuclei-templatesYAML corpus and unfolds it into the scanner's template shape. - Kuestenlogik.Bowire.Rails — the Home + Discover rail descriptors (folded into Core in Welle 2 because they're always-on).
First-party protocol plugins
Every protocol Bowire speaks lives in its own Kuestenlogik.Bowire.Protocol.<Name>
package, implementing IBowireProtocol plus any protocol-specific extension
points (mock hosting, schema sources, transport adapters).
- Kuestenlogik.Bowire.Protocol.Grpc — gRPC, gRPC-Web (via
GrpcTransportMode), descriptor-driven mock host. See the gRPC-Web transport section. - Kuestenlogik.Bowire.Protocol.Rest — REST + the OpenAPI adapter seam (
IBowireOpenApiAdapter). - Kuestenlogik.Bowire.Protocol.Rest.OpenApi2 — Microsoft.OpenApi 2.x adapter implementation.
- Kuestenlogik.Bowire.Protocol.Rest.OpenApi3 — Microsoft.OpenApi 3.x adapter implementation.
- Kuestenlogik.Bowire.Protocol.GraphQL — GraphQL, including schema-driven mocks.
- Kuestenlogik.Bowire.Protocol.SignalR
- Kuestenlogik.Bowire.Protocol.WebSocket — includes the per-host endpoint registry + the attribute-discovered endpoint surface.
- Kuestenlogik.Bowire.Protocol.Sse — SSE + the attribute-discovered endpoint surface.
- Kuestenlogik.Bowire.Protocol.Mqtt — MQTT v3 / v5, including proactive emitters + reactive responders for the mock host.
- Kuestenlogik.Bowire.Protocol.Nats
- Kuestenlogik.Bowire.Protocol.Soap
- Kuestenlogik.Bowire.Protocol.JsonRpc
- Kuestenlogik.Bowire.Protocol.Pulsar
- Kuestenlogik.Bowire.Protocol.SocketIo
- Kuestenlogik.Bowire.Protocol.OData
- Kuestenlogik.Bowire.Protocol.Mcp — Model Context Protocol (workbench-as-MCP-client).
- Kuestenlogik.Bowire.Protocol.Otlp — OTLP receiver + envelope store (signals: traces, metrics, logs).
- Kuestenlogik.Bowire.AsyncApi — the AsyncAPI-shaped façade over the message-broker plugins.
Optional infrastructure packages
These ship from the same repo but are reference-only — hosts pull them in when they need the feature, otherwise the surface stays absent.
- Kuestenlogik.Bowire.Ai — assistant runtime + provider-factory contract (
IBowireAiProviderFactory). - Kuestenlogik.Bowire.Ai.Anthropic — Anthropic Claude provider.
- Kuestenlogik.Bowire.Ai.OpenAi — OpenAI / Azure OpenAI provider.
- Kuestenlogik.Bowire.Ai.Mcp — MCP-bridge chat client.
- Kuestenlogik.Bowire.Auth.Oidc — OIDC auth provider implementation.
- Kuestenlogik.Bowire.Catalogue.Agent — Bowire-agent catalogue provider (URLs from a sibling agent hub).
- Kuestenlogik.Bowire.Catalogue.Kubernetes — k8s catalogue provider (URLs from in-cluster service discovery).
- Kuestenlogik.Bowire.Cli —
IBowireCliCommandcontract + the assembly-scan registry; sibling packages contribute subcommands through this surface. - <xref:Kuestenlogik.Bowire.Map> — MapLibre-backed UI extension for
coordinate.wgs84(and friends). - Kuestenlogik.Bowire.Mcp — embed-time MCP server: turns the host's own Bowire endpoints into MCP tools.
- Kuestenlogik.Bowire.Security.Scanner — security scanner driver + the rail contribution.
- Kuestenlogik.Bowire.Security.Templates.Nuclei — Nuclei template → Bowire-attack translator.
- Kuestenlogik.Bowire.Telemetry —
ActivitySource+Meterplumbing for OpenTelemetry consumers of the host. - Kuestenlogik.Bowire.Workspace.Git — git-backed workspace store + the migration helpers.
Public extension points
These are the seams sibling packages (and customer packages) implement to contribute behaviour into a Bowire host. Each one is auto-discovered via assembly scan at host startup — drop the package on the load path and the contribution wires itself.
- IBowireProtocol — wire protocol plugins. Implement to add support for a new protocol (discovery, invoke, streaming, channel open). See Protocol Guides for behavioural conventions.
- IBowireRailContribution — workbench rails. Implement to add a left-strip activity icon + its sidebar / main-pane view. See Plugin Architecture for the rail / module split.
- IBowireModuleContribution — cross-cutting modules (no rail icon — hooks across the shell, e.g. the AI chat pane or variable resolver).
- IBowireServiceContribution — DI service registration at
AddBowire()time. Sibling packages register their own services through this so Core never references them at compile time. - IBowireEndpointContribution — ASP.NET endpoint registration at
MapBowire()time. Sibling packages mount their admin / data endpoints under Core's auth-gated route group. - IBowireHelpProvider — in-app documentation provider. Implement to back the F1 / Help drawer /
/api/help/*endpoint stack. - IBowireCatalogueProvider — where the URL/service list comes from (local file, HTTP, Consul, k8s, agent hub).
- IBowireUiExtension — UI extensions that mount against semantic kinds (
coordinate.wgs84,image.bytes, …) as viewers or editors. - IBowireOpenApiAdapter — version-decoupled OpenAPI parser seam so the REST plugin doesn't pin a specific
Microsoft.OpenApiversion.
Per-extension-point how-to guides land under
docs/extending/in a follow-up stream. Until they ship, the XML-doc remarks blocks on each interface above carry the contract (what to implement, what gets called when, what failure modes the host swallows).
Polyglot sidecar plugins
Bowire also accepts non-.NET plugins via a JSON-RPC 2.0 sidecar bridge
(stdio or HTTP/SSE) — no .NET assembly, no IBowireProtocol implementation
needed. The wire contract, manifest schema, and packaging / install flow
(zip, http(s)://, oci://) are documented in
Sidecar Plugins. The Python SDK lives
in its own repo:
Kuestenlogik/Bowire.Sdk.Python
(pip install bowire-plugin).
Sibling protocol plugins (out-of-repo)
These ship from their own NuGet packages with independent release cadences — see the Protocol Guides for install snippets. Their API surface is not part of this DocFX scope; refer to the sibling repo for its own reference build.
Kuestenlogik.Bowire.Protocol.SurgewaveKuestenlogik.Bowire.Protocol.KafkaKuestenlogik.Bowire.Protocol.AmqpKuestenlogik.Bowire.Protocol.DisKuestenlogik.Bowire.Protocol.UdpKuestenlogik.Bowire.Protocol.Akka
TacticalAPI —
Kuestenlogik.Bowire.Protocol.TacticalApiships from https://github.com/Kuestenlogik/Bowire.Protocol.TacticalApi on its own release cadence (currently v1.0.0 stable); its API surface is not part of this DocFX scope. See the TacticalAPI protocol guide for install + usage, and the sibling repo's README for the proto-fetch licensing rationale.