-
Notifications
You must be signed in to change notification settings - Fork 12
Home
Giran Moodley edited this page Mar 7, 2022
·
18 revisions
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
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/
- 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
- 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)
- 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
- 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)