码桶

发现社区成员的开源项目

_audit.js630 B
const MAX_AUDIT_ENTRIES = 500;

export async function logAudit(kv, username, action, detail) {
    if (!kv) return;
    try {
        const raw = await kv.get('AUDIT_LOG');
        const log = raw ? JSON.parse(raw) : [];
        log.unshift({
            timestamp: new Date().toISOString(),
            username,
            action,
            detail
        });
        // Cap at MAX_AUDIT_ENTRIES
        if (log.length > MAX_AUDIT_ENTRIES) log.length = MAX_AUDIT_ENTRIES;
        await kv.put('AUDIT_LOG', JSON.stringify(log));
    } catch (e) {
        // Silently fail — audit logging should not break operations
    }
}