- M1-M2: 数据层与核心API(DuckDB, entries/tags/comments/search服务) - M3: SSR页面(EJS模板,接真实数据) - M4: 管理后台(登录/用户/内容源/AI ingest) - M5: 采集层(scheduler+rss/html/eryajf适配器) - M6: MCP只读接口(Streamable HTTP, 4工具) - M7: Docker部署(Dockerfile+docker-compose) - 测试: 10个用例全部通过 - 修复: DuckDB连接参数绑定、状态机迁移、标签树操作
20 lines
526 B
JavaScript
20 lines
526 B
JavaScript
import { all, get, run } from "../db/connection.js";
|
|
|
|
export async function log({ actor, action, target = "", detail = "" }) {
|
|
await run(`INSERT INTO audit_logs (actor, action, target, detail) VALUES (?, ?, ?, ?)`, [
|
|
actor,
|
|
action,
|
|
target,
|
|
detail,
|
|
]);
|
|
}
|
|
|
|
export async function recent(limit = 50) {
|
|
return all(`SELECT * FROM audit_logs ORDER BY id DESC LIMIT ?`, [limit]);
|
|
}
|
|
|
|
export async function count() {
|
|
const row = await get(`SELECT COUNT(*) AS c FROM audit_logs`);
|
|
return Number(row?.c ?? 0);
|
|
}
|