You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Allow one-time or configurable cadence for expiration alerts #19677
Expiration alerts currently behave like a daily digest of everything inside the configured alert window.
For example, with an expiration threshold of 30 days, an asset whose warranty expires in 7 days is included in the email today, then again tomorrow, then again the next day, and so on until it expires.
This creates a lot of duplicate email for the same asset and can lead to alert fatigue.
The current behavior appears to come from:
snipeit:expiring-alerts using alert_interval as a look-ahead window
the command being scheduled daily
no per-asset/per-expiration-event state indicating that a notification was already sent
Desired behavior
Please make the notification cadence configurable.
At minimum, it would be useful to support a one-time alert exactly N days before expiration, for example:
notify once 30 days before
notify once 7 days before
notify once 1 day before
Alternatively, allow a configurable set of reminder points such as 30,14,7,1 days before expiration.
Another option would be a setting such as:
Once per expiration event
Daily digest
Weekly digest
Custom reminder days
Why this would help
The current daily behavior makes a 30-day threshold potentially generate 30 emails containing the same asset. For small installations this is noisy; for larger installations it can make expiration notifications much easier to ignore.
A one-time or milestone-based reminder option would preserve the usefulness of the feature without repeated duplicate notifications.
Current implementation references
The current implementation in app/Console/Commands/SendExpirationAlerts.php selects assets using the configured alert_interval, and app/Console/Kernel.php schedules snipeit:expiring-alerts daily.
Activity