Skip to Content
CLIWeb Dashboard

Web Dashboard

sfdt ui starts a local Express server and opens a Salesforce Lightning Design System dashboard in your browser. It reads log/result files from your project’s logDir (default logs/) and can run several commands live.

sfdt ui # opens http://localhost:7654 sfdt ui --port 8080 # custom port sfdt ui --no-open # start without opening the browser

When installing from source, build the dashboard once with npm run build:gui. The published npm package already includes a pre-built gui/dist/, so end users don’t need to build it. If gui/dist/ is missing, sfdt ui shows a build-instructions page instead.

Pages

PageWhat it showsData source
DashboardSummary stat cards: last test run, preflight, driftpreflight-latest.json, drift-latest.json, test-results/
Test RunsApex test history with coverage bands; run tests inlinetest-results/*.json
PreflightPer-check pass/warn/fail; run preflight inlinepreflight-latest.json
Drift DetectionFilterable component table (All / Clean / Drift); run inlinedrift-latest.json
CompareSource-only / target-only / both; side-by-side XML diff; export package.xmlcompare-latest.json
ReviewAI code-review results across five categoriesreview-latest.json
ExplainAI deployment-log analysisexplain-latest.json
Release HubManifest picker, changelog & release-note editing, deploymanifest/release/, release-notes/, CHANGELOG.md
PullSmart-delta / preview / full retrieve with live streaming/api/pull (SSE)
QualityCode/test quality results; stub generator with dry-run previewquality-latest.json
ScanFull metadata inventory with search & filter/api/scan
AuditOrg health: audit trail, licenses, MFA, unused Apex, API versionsaudit-latest.json
MonitorLimits, errors, health score, backup historymonitor-latest.json
FlowsFlow health scores, trigger conflicts, subflow graph/api/flow/quality
ManifestsGenerated package.xml artifacts — preview & downloadmanifest/release/*.xml
LogsSearchable log viewer with pagination and raw outputlogs/*
DependenciesD3 force-directed component dependency graph/api/dependencies
SettingsView/edit config; initialize a project from the GUI.sfdt/config.json
CoverageApex coverage trend across runstest-results/
Dependency CheckPreflight dependency validation (missing/broken refs)/api/dependencies/preflight

Data appears automatically after running the corresponding CLI commands (sfdt test, sfdt preflight, sfdt drift, …) that write JSON result files.

Live command runners

The Test Runs, Preflight, Drift, Compare, and Pull pages have Run buttons that trigger the underlying command over a Server-Sent Events stream — output appears line-by-line in real time, exactly like running the CLI.

AI chat drawer

The toolbar’s Ask AI button opens a sliding chat panel. Pages with relevant output (Review, Explain, Drift, Preflight) pre-fill the chat with that context so you can ask follow-ups without copy-pasting.

Security

The dashboard is local-only and hardened against page-driven attacks:

  • Binds to 127.0.0.1 — never exposed to the network.
  • Per-launch auth token prevents unauthorized access to a running process.
  • CSRF protection — all mutating routes require an X-SFDT-CSRF header.
  • Read-only AI sandbox — the AI chat’s tool access is restricted to Read,Grep,Glob (no Bash/Write/Edit), so a prompt injection in page context can’t drive tool execution.
  • Log redaction at ingest — secrets are redacted before reaching the in-memory buffer or the live SSE stream.

The same bridge endpoints the dashboard exposes are what the Chrome extension talks to — see The Bridge.

Last updated on