busola icon indicating copy to clipboard operation
busola copied to clipboard

Notification Center in Busola

Open pbochynski opened this issue 8 months ago • 0 comments

Description

Implement a Notification Center within Busola to enhance user experience by providing timely updates and alerts regarding various events and states. This feature will help users stay informed about critical information without needing to navigate away from their current tasks.

Notification Types

The Notification Center will handle the following types of notifications:

  1. Healthiness of modules and standard K8s resources
  2. New modules available
  3. New releases of enabled modules
  4. New content: blog posts, documentation
  5. Scheduled maintenance windows e.g. Kubernetes updates (out of scope now)
  6. High Availability Alerts (out of scope for now - should come from a dedicated module)

Features

  • Notification Icon:

    • Displays the number of unread notifications.
    • Clicking the icon opens a view similar to GitHub notifications.
  • Notification Management:

    • Users can mute or close individual notifications.
    • Muted notification data is stored in the browser's local storage.
    • When a muted notification disappears, it is automatically removed from the muted notifications list in local storage.
    • Permanent mute option for specific resources, preventing any future notifications for those resources.

User Experience

  • Clicking on the notification icon will open a view displaying all current notifications.
  • Users can interact with each notification to mute, close, or permanently mute it.
  • Muted notifications will not reappear unless new data is received.
  • Permanent mute ensures no further notifications from the specified resource.

Implementation Considerations

  • Ensure the notification system is performant and does not degrade the user experience.
  • Provide clear instructions or tooltips to help users understand the notification controls.
  • Implement a robust mechanism to manage local storage for muted and permanently muted notifications.
  • Provide a predefined list of notification sources that contain resources, and json path expression
    • resources: /apis/apps/v1/deployments, jsonpath: {.status.conditions[?(@.type=="Available")].status}, expression: !=True
    • resource: /apis/operator.kyma-project.io/v1alpha2/namespaces/kyma-system/istios/default, jsonpath: {.status.state}, expression: !="Ready"
  • Read additional notification sources defined by modules (extensibility config-map)

Reasons

  • Keeps users informed about critical events and updates.
  • Reduces the need for users to constantly check different parts of the application for updates.
  • Enhances user control over notification preferences.

This feature will significantly improve user engagement and satisfaction by providing a centralized, user-friendly notification system within Busola.

pbochynski avatar Jun 14 '24 14:06 pbochynski