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

pluginId string

Returns

bool

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

pluginId string

The protocol or plugin id.

hidden bool

True to hide, false to show again.

Returns

bool

Snapshot()

The ids the calling identity has hidden. A fresh set, so callers can iterate while somebody else writes.

public static IReadOnlySet<string> Snapshot()

Returns

IReadOnlySet<string>