Skip to content

Notification User Preferences #4622

@shepilov

Description

@shepilov

Summary

Allow users to configure notification preferences per category, including the ability to disable specific notification types and set custom delivery intervals.

Context

Currently, notification settings (like MinInterval) are hardcoded globally in the stack. Users have no control over:

  • Which notifications do they receive
  • How frequently they receive them
  • Which channels (email, mobile push) are used

Solution

Store notification preferences in the existing io.cozy.settings.instance document:

 {
   "_id": "io.cozy.settings.instance",
   "public_name": "Alice",
   "notifications": {
     "disk-quota": {
       "enabled": true,
       "min_interval": 604800000000000 // 7 days
     },
     "sharing-file-changed": {
       "enabled": false
     }
   }
 }

Preference Fields:

  • enabled bool // Enable/disable this notification category
  • min_interval int // Minimum time between notifications (nanoseconds)
  • channels []string // Preferred channels: ["mail"], ["mobile"]

Available Categories:

  • disk-quota // Disk usage alerts
  • oauth-clients // Connected devices limit alerts
  • sharing-file-changed // New files in shared folders

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions