System Log
CI / test (push) Successful in 1m4s
Release rolling / release (push) Successful in 6m57s

This commit is contained in:
Raven Scott
2026-07-18 23:05:44 -04:00
parent 7815037737
commit 6ef3afe821
33 changed files with 1360 additions and 32 deletions
+2
View File
@@ -72,6 +72,8 @@ export const MethodRoles = Object.freeze({
listAnomalies: Roles.viewer,
listAlerts: Roles.viewer,
getAlert: Roles.viewer,
/** Anomaly source: viewer; audit/journal enforced admin inside handler */
queryLogs: Roles.viewer,
// alerts / thresholds (write)
setAlertConfig: Roles.operator,
+23
View File
@@ -34,6 +34,29 @@ export function validateMethodArgs(method, args = {}) {
case 'getWeights':
return { ok: true, args }
case 'queryLogs': {
const source = String(args.source || 'anomaly').toLowerCase()
if (!['anomaly', 'audit', 'journal'].includes(source)) {
return { ok: false, error: 'source must be anomaly|audit|journal' }
}
const limit = args.limit == null ? 200 : Number(args.limit)
if (!Number.isFinite(limit) || limit < 1 || limit > 2000) {
return { ok: false, error: 'limit must be 1..2000' }
}
return {
ok: true,
args: {
...args,
source,
limit,
q: args.q != null ? String(args.q) : '',
priority: args.priority != null ? String(args.priority) : '',
unit: args.unit != null ? String(args.unit) : '',
cursor: args.cursor != null ? Number(args.cursor) : 0,
},
}
}
case 'setDisplayName': {
const name = String(args.name ?? '').trim()
if (!name) return { ok: false, error: 'name is required' }