-
Notifications
You must be signed in to change notification settings - Fork 6.5k
Description
Summary
Enhance ArgoCD notifications by adding a "Notifications Event Viewer" to improve debugging and auditing. This viewer will provide a centralized view of recent notification delivery events, payloads, and responses, similar to GitHub webhooks functionality.
Motivation
Currently, troubleshooting issues with ArgoCD notifications can be challenging. While tools like https://smee.io/ can capture outgoing webhook traffic, it is just a suboptimal workaround. Getting inspiration from GitHub Apps, a centralized view of recent notification delivery events could be really handy.
Proposal
GitHub Apps provide a centralized view of recent notification delivery events, payloads, and responses.
Here's how the "Notifications Event Viewer" could work in ArgoCD:
- Display a list of recent notification delivery events with metadata like event trigger, service, timestamp, involved applications/resources, and delivery status.
- When an event is selected, show details including the full request/response payload including headers (access token omitted of course)
- Provide an option to manually redeliver the webhook event, similar to the GitHub webhooks page
- Allow filtering events by
trigger,servicevalue,delivery status, and maybe even a full-text search across payloads. - Maintain a reasonable history of notification events for debugging and auditing purposes, with options to clear or archive old events.
- Optionally integrate with external logging and auditing systems for long-term event retention and centralized monitoring.
It's worth noting that this proposal represents a broader vision for the Notifications Event Viewer feature. To start with, a minimum viable product (MVP) version could focus on implementing just a few core capabilities:
- Display a list of the past 10 notification delivery events with basic metadata (event type, timestamp, involved resources, and delivery status).
- Provide the option to view the complete request payload and response payload for each listed event.
I'd be happy to discuss this idea further and provide any additional information or clarification needed.
