Skip to content
Giran Moodley edited this page Mar 4, 2022 · 18 revisions

Note - 4th March 2022

This wiki will be deprecated in favour of GitHub projects, which allow better tracking of roadmap items.


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
  • react-table implementation: multisort, customizable columns, selectable rows, custom cell renderers, etc.
  • react-window implementation for infinite scrolling (highly performant for large incident set)
  • Global search with Fuse.js against incident data
  • Query filters to limit incident data in view
  • Manage Incidents: Acknowledge, Escalate, Reassign, Add Responders, Update Priority, Snooze, Merge, and Resolve.
  • Run actions, including Custom Incident Actions, Webhooks, and Response Plays
  • Local session storage using redux-persist
Code
  • Disclaimer modal to indicate this is NOT an officially supported product (i.e. use at your own risk)
  • Linting + Formatting (via prettier-eslint)
  • PagerDuty Themeing
  • Tests (including suitable framework)
  • Environment variable overrides
  • CI/CD pipeline (GitHub Actions)
  • 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
  • Resizing column will toggle on sort for that column (unintended)
  • Multi-region OAuth not supported, which causes infinite loops in login

Beta (H1 2023)

  • Add prop-types (type checking) to components
  • 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