What Pulse is
Docker app for self-hosted QA metrics from Jira Cloud or ClickUp. Supported providers and core capabilities.
Pulse is a Docker application (FastAPI + browser UI) that runs inside your network. It connects to Jira Cloud or ClickUp, reads work items for each configured squad, and computes quality metrics.
Pulse is not a replacement for Jira/ClickUp, a SaaS product that stores your data externally, or a static HTML export.
Pulse is:
- One deployment, one URL for the whole org (all squads as tabs, not one HTML per team)
- Install:
http://localhost:8080, production: your internal hostname + HTTPS in front - Config-driven (
config.ymlonly, no runtime setup UI) - Honest about gaps (Config audit flags missing statuses, changelog issues, ambiguous fields)
- Self-hosted with optional VPN / reverse-proxy / SSO in front
Supported providers
| Provider | Status |
|---|---|
| Jira Cloud | Live, *.atlassian.net only (not Server/Data Center) |
| ClickUp | Live, global fetch, per-squad routing, status-history metrics |
Without credentials and squad mapping, Pulse shows a setup error.
Core capabilities
| Capability | Description |
|---|---|
| Multi-squad dashboard | Up to 10 squads. each teams[].name → team tab |
| Date-range filtering | Custom from/to. presets (YTD, last 30/90 days, etc.). clamped to Jan 1 of prior calendar year → today |
| Period comparison | Optional “Compare to previous period”, same-length window immediately before your range |
| Progressive loading | Shell loads immediately. metrics via API with Loading metrics… N% progress |
| In-memory cache | API responses cached (PULSE_CACHE_TTL_SECONDS, default 300s) |
| Drill-down tickets | List icon on cards/charts. click chart month to filter. searchable/sortable modal |
| Export | Full JSON, flat CSV (all squads), print report, snapshot JSON |
| Share link | Copy URL with team, page, and dates |
| Config audit | Compares tracker data vs config.yml per squad |
| Metric target bands | Color-coded cards and FTPR target line via metrics.targets |
| Per-squad overrides | teams[].metrics.* merges over global metrics.* |
| Per-squad exclusions | Drop tasks from one squad’s metrics without changing routing |
