Class BowireCatalogueProviderRegistry

Namespace
Kuestenlogik.Bowire.Sources
Assembly
Kuestenlogik.Bowire.dll

Assembly-scan registry for IBowireCatalogueProvider implementations — mirrors BowireProtocolRegistry and BowireAuthProviderRegistry. At most one provider is active per process; selection happens via Provider.

public static class BowireCatalogueProviderRegistry
Inheritance
BowireCatalogueProviderRegistry
Inherited Members

Remarks

Providers are loaded the same way protocol plugins are: assembly- scan over every loaded Kuestenlogik.Bowire* assembly. The built-in local, http, and consul providers live in the core package; kubernetes and agent providers ship as separate Kuestenlogik.Bowire.Catalogue.* packages so heavyweight dependencies only land in installs that opt-in.

At-most-one is by design: mixing two catalogues on the same UI invites confusion about which provider owns which row. Operators that need to aggregate multiple registries can wire an aggregator provider client-side or in front of Bowire (e.g. a small HTTP service that merges Consul + k8s and exposes the union to Bowire's http provider).

Methods

Discover(ILogger?)

Walk CurrentDomain for IBowireCatalogueProvider implementations and return them keyed by Id.

public static IReadOnlyDictionary<string, IBowireCatalogueProvider> Discover(ILogger? logger = null)

Parameters

logger ILogger

Returns

IReadOnlyDictionary<string, IBowireCatalogueProvider>

Resolve(BowireCatalogueOptions, ILogger?)

Resolve the currently-configured provider, or null when the host hasn't selected one. Throws InvalidOperationException when an unknown id is configured so a typo in appsettings.json surfaces at startup instead of silently disabling the catalogue.

public static IBowireCatalogueProvider? Resolve(BowireCatalogueOptions options, ILogger? logger = null)

Parameters

options BowireCatalogueOptions
logger ILogger

Returns

IBowireCatalogueProvider