Compare commits

...

2 Commits

Author SHA1 Message Date
cafa6476ca 0.52.1 2026-07-13 19:53:15 +02:00
3007150aeb Fixed parameter binding in alert purge, added log. 2026-07-13 19:53:13 +02:00
3 changed files with 9 additions and 7 deletions

4
package-lock.json generated
View File

@@ -1,11 +1,11 @@
{ {
"name": "traxxx-web", "name": "traxxx-web",
"version": "0.52.0", "version": "0.52.1",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"version": "0.52.0", "version": "0.52.1",
"dependencies": { "dependencies": {
"@brillout/json-serializer": "^0.5.25", "@brillout/json-serializer": "^0.5.25",
"@dicebear/collection": "7.0.5", "@dicebear/collection": "7.0.5",

View File

@@ -87,7 +87,7 @@
"overrides": { "overrides": {
"vite": "$vite" "vite": "$vite"
}, },
"version": "0.52.0", "version": "0.52.1",
"imports": { "imports": {
"#/*": "./*.js" "#/*": "./*.js"
}, },

View File

@@ -436,20 +436,20 @@ async function alertSceneReleases() {
} }
async function purgeExpiredAlerts() { async function purgeExpiredAlerts() {
await knex('notifications') const purgedNotifications = await knex('notifications')
.where((builder) => { .where((builder) => {
builder builder
.where('seen', true) .where('seen', true)
.where((seenBuilder) => { .where((seenBuilder) => {
seenBuilder seenBuilder
.whereNull('seen_at') // marked seen before seen_at was added .whereNull('seen_at') // marked seen before seen_at was added
.orWhereRaw('seen_at < now() - interval \'? days\'', [config.alerts.seenExpiry]); .orWhereRaw('seen_at < now() - (?::int * interval \'1 day\')', [config.alerts.seenExpiry]); // '? day' would be interpreted literally
}); });
}) })
.orWhereRaw('created_at < now() - interval \'? days\'', [config.alerts.finalExpiry]) // don't accumulate notifications indefinitely .orWhereRaw('created_at < now() - (?::int * interval \'1 day\')', [config.alerts.finalExpiry]) // don't accumulate notifications indefinitely
.delete(); .delete();
await knex('alerts') const purgedAlerts = await knex('alerts')
.where('is_expired', true) .where('is_expired', true)
.whereNotExists( .whereNotExists(
knex('notifications') knex('notifications')
@@ -458,6 +458,8 @@ async function purgeExpiredAlerts() {
.delete(); .delete();
await knex.schema.refreshMaterializedView('alerts_users_scenes'); await knex.schema.refreshMaterializedView('alerts_users_scenes');
logger.info(`Purged ${purgedNotifications} notifications and ${purgedAlerts} alerts`);
} }
export function initAlertCron() { export function initAlertCron() {