Skip to content
Giran Moodley edited this page Nov 5, 2021 · 18 revisions

PagerDuty Live

This repository hosts the source code for PagerDuty Live, an open-source, single page application which enables organisations to manage their PagerDuty incidents in real-time through a unified console view.

Application URL: https://giranm.github.io/pd-live-react/

Screenshot 2021-11-05 at 18 35 16

Roadmap

Alpha (Q4 2021)

Functionality
  • OAuth2 Login
  • Escalate Incident
  • Reassign Incident
  • Add Responders to Incident
  • Update Priority of Incident
  • Custom snooze duration for Incident
  • Merge Incidents
  • Run Action (including Custom Incident Actions, Webhooks, and Response Plays)
  • Implement react-table (e.g. multisort, resizeable columns, selectable rows, etc)
  • Global Search against incident data
  • Formatting of cells (e.g. locale date format, status, etc)
  • Add loading modal when fetching data from /incidents endpoint
  • Infinite scrolling using react-window
  • Store settings using session data: Global search, query settings, and table settings
  • "Terms & Conditions" to indicate this is NOT an officially supported product
Code
  • Linting + Formatting (via prettier-eslint)
  • PagerDuty Themeing
  • Tests (including suitable framework)
  • Deployment/Bundling Steps (GitHub Pages)
Bugs (Known)
  • Minor display bugs (incident resolution and creation duplication)
  • Slow query performance for large number of incidents (due to 100 results limit on API)
  • 429 (rate throttling) issues when requests notes for each incident (from large incident query above)
  • Empty Incident component rendered before table (for non-empty incidents list)
  • "Fetching notes" displayed when new incidents are added to the table (i.e. notes have not been fetched)
  • Selected incidents which disappear post-action keeps state (e.g. enablePostActions remains true)
  • External system sync (post-action) button (e.g. disabled correctly, but enabled on incident reselect due to incident store not refreshed)
  • Resolved incidents still appear in the table after a period (most likely memoization of react-table) (think this is resolved with fixing log entries clearing)
  • Updating column order reverts to width defined under src/util/incident-table-column.js
  • Updating columns may occasionally reset back to minWidth
  • state.querySettings.incidentPriority resets on render, thereby losing persisted data
  • react-select within query settings does not render existing selections when not in view (needs re-rendering via hook)
  • Local cache clearing/purging does not clear out state.incidentTable

Beta (H1 2023)

  • Incident Details Modal (e.g. alerts, related incidents, etc)
  • Dark Mode via Theme Provider
  • i18n Support
  • Status / Stakeholder Updates
  • Rundeck Actions
  • Markdown Notes
  • Animated Rows (e.g. render updates)
  • Save and load pre-configured settings (e.g. bounce local cache to disk or remote storage)
Clone this wiki locally