Add request logging, simplify queue output, bump to v1.0.0
Each request logs timestamp, method, path and user. Queue entries log a single line on enqueue and on resolve. Drop the verbose approve/deny curl instructions from queue output. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
import { randomUUID } from "crypto";
|
||||
import { randomUUID } from 'crypto';
|
||||
|
||||
const pending = new Map();
|
||||
|
||||
function ts() {
|
||||
return new Date().toLocaleTimeString();
|
||||
}
|
||||
|
||||
export function enqueue(action, params, submitted_by) {
|
||||
const id = randomUUID();
|
||||
const entry = {
|
||||
@@ -9,16 +13,11 @@ export function enqueue(action, params, submitted_by) {
|
||||
action,
|
||||
params,
|
||||
submitted_by,
|
||||
status: "pending",
|
||||
status: 'pending',
|
||||
created_at: new Date().toISOString(),
|
||||
};
|
||||
pending.set(id, entry);
|
||||
console.log(`\n[QUEUE] New request #${id.slice(0, 8)}`);
|
||||
console.log(` Action: ${action}`);
|
||||
console.log(` Params: ${JSON.stringify(params)}`);
|
||||
console.log(` Submitted by: ${submitted_by}`);
|
||||
console.log(` Approve: POST /queue/${id}/approve`);
|
||||
console.log(` Deny: POST /queue/${id}/deny\n`);
|
||||
console.log(`[${ts()}] [QUEUE] ${submitted_by} requested '${action}' (${id.slice(0, 8)}) — params: ${JSON.stringify(params)}`);
|
||||
return id;
|
||||
}
|
||||
|
||||
@@ -27,7 +26,7 @@ export function get_entry(id) {
|
||||
}
|
||||
|
||||
export function list_pending() {
|
||||
return [...pending.values()].filter((e) => e.status === "pending");
|
||||
return [...pending.values()].filter((e) => e.status === 'pending');
|
||||
}
|
||||
|
||||
export function resolve(id, decision) {
|
||||
@@ -35,7 +34,8 @@ export function resolve(id, decision) {
|
||||
if (!entry) {
|
||||
return null;
|
||||
}
|
||||
entry.status = decision; // "approved" | "denied"
|
||||
entry.status = decision; // 'approved' | 'denied'
|
||||
entry.resolved_at = new Date().toISOString();
|
||||
console.log(`[${ts()}] [QUEUE] ${id.slice(0, 8)} ${decision} by ${entry.resolved_by ?? 'unknown'}`);
|
||||
return entry;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user