Skip to content

Sources rail mode — centralise URL / schema-file management #152

@thomas-stegemann

Description

@thomas-stegemann

Why

URL / schema-file management is scattered across the workbench:

  • Topbar URL bar (quick add / switch the primary URL)
  • Statusbar connection pill (click toggles into the sources sidebar-view)
  • Sources sidebar-view (list of URLs, with main pane rendering basic config)
  • Discover rail-mode (the discovered services are consequences of URLs but the URL config itself isn't here)
  • Future catalogue providers (URL / service catalogue providers (local / http / consul / kubernetes / agent) #136) need a place to plug in

A new operator has to learn five different ways to get to the same data. Per the maintainer's clarification: option B from the conversation — a dedicated Sources rail mode that's a peer of Workspaces / Recordings / etc. — bundles every URL / schema touchpoint into one consistent surface.

Proposal

Rail entry

  • New mode sources in the rail catalogue, with a connector / link icon.
  • Sits in the hardening group (peer of Security + Workspaces) OR the work group (peer of Discover) — Discovery is downstream of Sources, so work is the natural group.
  • sidebar.kind = 'sources' so the existing Sidebar declaration per rail mode + stable toggle location #137 dispatcher picks it up.

Sidebar (renderSourcesSidebar)

  • Header: title 'Sources' + + button to add a new URL.
  • Body: one row per URL, with:
    • Status dot (connected / disconnected / discovering)
    • URL value (truncated to fit; full URL in title tooltip)
    • Service count from the live discovery
    • Activate button (the URL becomes the primary one for new requests)
  • Header overflow for bulk actions: 'Import schema file…', 'Disconnect all', 'Re-run discovery on all'.
  • Per-row delete + multi-select using the Uniform delete affordances on every list sidebar (single / multi-select / all) #143 selection model — already wired for envs/recordings/collections, reuse the same pattern.

Main pane (renderSourcesDetailMain)

When a URL is selected in the sidebar, the right pane shows:

When nothing is selected (empty state): mid-pane empty card "Pick a URL on the left or add one to get started."

Composability

Removed surfaces (post this issue)

  • Settings → no longer hosts URL config (it never really did but the Sources sidebar-view route via the connection pill stays as an additional entry point).
  • The sidebarView === 'sources' shim is folded into the rail mode; the connection-pill click now switches railMode = 'sources'.
  • Topbar URL bar stays — it's the quick-switch path, valuable for daily use. Click "Manage…" on the URL dropdown jumps to the Sources rail mode.

Acceptance

  • Rail catalogue entry sources with the right icon + group.
  • Sidebar lists every URL with status dot + service count + activate button.
  • Sidebar + opens bowirePrompt for new URL.
  • Per-row delete + multi-select + delete-all via Uniform delete affordances on every list sidebar (single / multi-select / all) #143 pattern.
  • Main pane shows discovery / headers / schema / catalogue / danger sections for the selected URL.
  • Connection-pill click switches to railMode = 'sources' instead of sidebarView = 'sources'.
  • Old sidebarView === 'sources' path retired.
  • Topbar URL bar gains a 'Manage…' affordance.
  • Empty state when no URL is selected.

Composes with

Out of scope

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:workbenchUI / workbench surfaceroadmapTracked on the public Project board

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status
    No status

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions