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
loggerILogger
Returns
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
optionsBowireCatalogueOptionsloggerILogger