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

UPDATE: THIS WIKI IS DEPRECATED (7th March 2022)

This wiki is now deprecated in favour of GitHub projects, which allow better tracking of roadmap items.
Please use https://github.com/users/giranm/projects/1/views/1


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)