Class BowireHiddenProtocolsStore
- Namespace
- Kuestenlogik.Bowire.Plugins
- Assembly
- Kuestenlogik.Bowire.dll
What each identity has chosen not to look at (#638).
public static class BowireHiddenProtocolsStore
- Inheritance
-
BowireHiddenProtocolsStore
- Inherited Members
Remarks
The counterpart to BowireDisabledPluginsStore, and the distinction between them is the whole point. Disabling unloads a plugin from the process, so it is one decision for everybody and its file lives in the storage root. Hiding is a preference — "I don't use MQTT; stop showing it to me" — so it lives in the identity's own slot and changes nothing anyone else sees.
Nothing on an execution path reads this. Invoke, channel, discovery and the MCP adapter all ignore it. Someone who hides a protocol and then calls a method on it gets their result: hiding is tidying, not a permission, and a preference that quietly breaks a request is a trap. Only the listings the workbench renders carry it.
Cached per resolved path, not per process. One host serves many identities, so a single static set would make the first person's choice everybody's — which is exactly the defect #284 Phase D removed from the disabled list. The path is resolved through BowireUserContext on every call, so the entry a caller reads is the one in their own slot.
Methods
IsHidden(string)
Whether the calling identity has hidden pluginId.
public static bool IsHidden(string pluginId)
Parameters
pluginIdstring
Returns
SetHidden(string, bool)
Hide or show pluginId for the calling identity.
Returns whether the set changed.
public static bool SetHidden(string pluginId, bool hidden)
Parameters
Returns
Snapshot()
The ids the calling identity has hidden. A fresh set, so callers can iterate while somebody else writes.
public static IReadOnlySet<string> Snapshot()