Class BowireLintRailContribution
- Namespace
- Kuestenlogik.Bowire.Plugins
- Assembly
- Kuestenlogik.Bowire.dll
Rail contribution for the design-time Lint surface (#189). Adds a "Lint"
icon to the rail strip in the quality group; the main pane
(registered JS-side as lintMain) runs the discovered services through
the shared BowireSchemaLinter via POST /api/lint
and lists the findings — the browser twin of bowire lint. No sidebar
(the findings live in the main pane), and it works without an active
workspace, so it stays reachable at all times.
public sealed class BowireLintRailContribution : IBowireRailContribution
- Inheritance
-
BowireLintRailContribution
- Implements
- Inherited Members
Constructors
BowireLintRailContribution()
public BowireLintRailContribution()
Properties
DisplayName
Human-readable label shown in the rail tooltip + Settings.
public string DisplayName { get; }
Property Value
Group
Visual group the rail belongs to. Adjacent rails with different
group values get a divider between them. Built-in groups:
"work", "scenarios", "quality",
"hardening". New groups land at the bottom of the rail
by default.
public string Group { get; }
Property Value
IconKey
Icon key from the workbench's SVG-icon catalogue (e.g.
"house", "discover", "shield"). Resolved
JS-side via svgIcon(key). Unknown keys fall back to a
generic square placeholder.
public string IconKey { get; }
Property Value
Id
Stable identifier (e.g. "discover", "recordings",
"security"). Must match the rail-mode id the JS bundle
uses for routing — operators' localStorage.bowire_rail_mode
values + deep links key off this. Case-sensitive (snake-lower).
public string Id { get; }
Property Value
MainPaneRendererKey
Identifier of a JS-side function the rail package's JS fragment
registers on window.__bowireRailRenderers at load time.
The core renderMain dispatcher looks up the renderer by
id and invokes it instead of hard-coding the per-rail branch.
Empty / null means "no rail-owned renderer; fall back to
the core dispatcher arm".
public string? MainPaneRendererKey { get; }
Property Value
Remarks
Convention: railId + 'Main' (e.g. "recordingsMain",
"benchmarksMain"). The hosted JS fragment writes
window.__bowireRailRenderers["recordingsMain"] = function () { ... };
inside the shared IIFE. The renderer takes no arguments and
returns the DOM root for the main pane.
SidebarKind
Sidebar template the rail renders. Recognised values: "none",
"services", "collections", "environments",
"recordings", "mocks", "workspaces",
"sources", "benchmarks", "flows",
"proxy", "security", "library". Adding a
new value requires a matching arm in render-sidebar.js's
dispatcher — see the sidebar.kind comment block in that
file.
public string SidebarKind { get; }
Property Value
SortIndex
Sort priority. Lower values appear higher in the rail strip. The built-in catalogue uses 100-step intervals so third-party rails can wedge between two built-ins without re-numbering everything.
public int SortIndex { get; }