Skip to main content
Version: 3.1.0

Source Connection Status

Overview

The workflows page shows a "Connected" / "Disconnected" badge on each source tile, with error details on hover and clickable links from the init report to the source summary page.

How it works

  1. The workflows loader fetches both the config and the init report.
  2. sources.utils.ts cross-references the init report with configured sources to derive a per-source connection status.
  3. WorkflowTile displays a MUI Joy Chip + Tooltip with the status. Disconnected tiles have a red border.
  4. Clicking a tile opens the new read-only WorkflowSummary page (type, URL, projects, triggers, storages, connection status). The Edit button navigates to the editor.
  5. In the init report, source names in error entries are clickable react-router-dom Links that navigate to the source summary.
  6. Init report entries are grouped by source (one accordion per source).

Key files

  • ui/src/pages/workflows/sources.utils.ts — Connection status computation
  • ui/src/pages/workflows/workflows.tsx — Loader + status pass-through
  • ui/src/pages/workflows/WorkflowTile.tsx — Badge + tooltip
  • ui/src/pages/workflows/WorkflowSummary.tsx — Read-only summary page
  • ui/src/pages/settings/report/SourceGroupReport.tsx — Grouped init report
  • ui/src/routes.tsx/workflows/:name (summary) + /workflows/:name/edit (editor)
  • src/protocol/capacities/webhook-capacity/webhook-capacity.service.tsoperation field in error report

Connection states (since 3.1.0)

The badge distinguishes three states instead of a boolean, to stop showing "Disconnected" for sources that simply have not run an init yet:

  • connected: null — never initialized → neutral "Not initialized" badge (hourglass icon)
  • connected: false — init ran and failed → "Disconnected"
  • connected: true — connected

getSourcesConnectionStatus seeds connected: null and sets true only on an ok entry; comparisons use strict === false. This also fixed a related false "Not configured" badge on workflow tiles.

Technical decisions

  • Status is derived client-side from init report data; no additional backend endpoint.
  • The editor breadcrumb is now 3 levels (Workflow / name / Edit).
  • Three-state model (null / false / true) avoids conflating "never initialized" with "init failed".