Release v2.11.1
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile, web, pulse-signage-web) (push) Successful in 1m47s
Publish Docker Image / build-and-push-existing-registry (./build/Dockerfile.player, player, pulse-signage-player) (push) Successful in 31s

This commit is contained in:
2026-09-04 15:43:55 +01:00
parent 2c150b5b2e
commit 98f969ca0f
104 changed files with 3559 additions and 447 deletions
+21 -1
View File
@@ -3,7 +3,8 @@ const assert = require('node:assert/strict');
require('../src/common');
const { buildAuditChanges, recordRequestAuditEvent } = require('../src/data/audit-log');
const { AUDIT_CATEGORY_KEYS, AUDIT_CATEGORY_LABELS, buildAuditChanges, recordRequestAuditEvent } = require('../src/data/audit-log');
const { getDefaultAppSettings } = require('../src/data/app-settings');
function createPool(settings) {
const inserts = [];
@@ -14,6 +15,7 @@ function createPool(settings) {
return [[
{ setting_key: 'audit.enabled', setting_value: JSON.stringify(settings.enabled) },
{ setting_key: 'audit.categories', setting_value: JSON.stringify(settings.categories) },
{ setting_key: 'audit.screen_control_commands', setting_value: JSON.stringify(settings.screenControlCommands || []) },
{ setting_key: 'audit.include_request_metadata', setting_value: JSON.stringify(settings.includeMetadata) }
]];
}
@@ -32,6 +34,24 @@ const request = {
}
};
test('audit categories include weather data sources', () => {
assert.ok(AUDIT_CATEGORY_KEYS.includes('weather'));
assert.equal(AUDIT_CATEGORY_LABELS.weather, 'Weather');
});
test('screen control auditing is disabled by default', () => {
assert.equal(getDefaultAppSettings()['audit.categories'].includes('screen-controls'), false);
assert.deepEqual(getDefaultAppSettings()['audit.screen_control_commands'], []);
});
test('screen control auditing filters commands and groups navigation', async () => {
const pool = createPool({ enabled: true, categories: ['screen-controls'], screenControlCommands: ['navigation'], includeMetadata: false });
await recordRequestAuditEvent(pool, request, { category: 'screen-controls', eventType: 'screen-control.previous' });
await recordRequestAuditEvent(pool, request, { category: 'screen-controls', eventType: 'screen-control.pause' });
assert.equal(pool.inserts.length, 1);
assert.equal(pool.inserts[0][1], 'screen-control.previous');
});
test('audit writer skips disabled categories', async () => {
const pool = createPool({ enabled: true, categories: ['security'], includeMetadata: true });
await recordRequestAuditEvent(pool, request, { category: 'authentication', eventType: 'login.success' });