最后更新时间:2026-09-22 18:43:41
title、column_id、id,栏目工具是 name、slug、id。create_column、create_article 以及外部 API 的创建接口成功后会返回新建记录的 id,可以直接用它继续调用 get_* / update_* / delete_*。批量导入时按这个 id 建立本地映射即可,不必再查一次列表。list_articles 的筛选字段全部可选,只传 current 和 size 即可分页;size 超过 100 时按 100 处理。update_article 未提供的字段保持原值,不会因部分更新清空正文。multipart/form-data;MCP 文件上传使用 Base64 JSON。delete_theme_file 只删普通文件,delete_theme_directory 只删空目录,两者都不做递归删除。为避免外部 Token 接口被暴力尝试,后台「安全配置」提供按来源 IP 的失败锁定,同时作用于外部 API、MCP 与后台管理接口。
配置接口(后台 VToken,仅管理员):
GET /api/admin/option/security/get
POST /api/admin/option/security/update
Content-Type: application/json
VToken: YOUR_VTOKEN{
"auth_guard_enabled": true,
"auth_guard_max_failures": 10,
"auth_guard_block_seconds": 600,
"auth_guard_trust_proxy": false
}VToken、凭证有效但越权访问管理接口)。未携带凭证的请求不计数,避免未登录状态的正常访问被误锁。auth_guard_max_failures 后,该来源 IP 被锁定 auth_guard_block_seconds 秒;锁定期间所有需要认证的接口返回 HTTP 429,并带 Retry-After 头。403,不会中断中间件链),这类请求同样计入失败,否则刚记录的失败会被立刻清零、越权请求永远攒不满阈值。/api/public/ 前缀的接口(登录、验证码等)不参与计数,也不会被锁定拦截,避免锁定后无法自愈。注意:这条规则也意味着 /api/public/login 的密码尝试不受本机制限制(目前只依赖验证码等业务手段),如需覆盖需按接口粒度单独接入计数。auth_guard_trust_proxy 决定是否采信 X-Forwarded-For / X-Real-IP:部署在 Nginx 等反向代理后必须开启,否则所有请求都会被识别为代理机来源;直连部署应保持关闭,避免伪造该头部绕过锁定。栏目、内容、文件的关键写操作(新增 / 编辑 / 删除)都会写入事件日志表,可在后台「系统管理 → 系统日志 → 事件日志」中查看。
记录的 model 字段区分来源:
| model | 说明 |
|---|---|
admin | 管理端后台操作(/api/admin/*) |
api | 外部开放接口(/api/api_*,Bearer Token 鉴权) |
mcp | MCP 工具调用 |
其余字段:type(add / edit / delete / query / option / login)、op(操作名,如 content_update、upload_file)、objId、objName、uid、uname、ip、state(1 成功、2 失败),以及 changeName / changeBefore / changeAfer。
upload_filemodel 记为 admin;外部接口记为 api。state 为 2。反复失败的删除或上传尝试往往比成功更有排查价值。update_article 在标题发生变化时记录 changeBefore / changeAfer,标题未变化时不写变更字段。事件日志(MCP / API / 管理端操作审计)与发送日志按保留天数自动清理,避免日志表无限增长。
配置项(option key log):
{
"keep_days": 90,
"auto_cleanup_enabled": true
}| 字段 | 说明 |
|---|---|
keep_days | 保留天数,只保留最近 N 天。0 表示不清理、永久保留;取值上限 3650 天(10 年)。默认 90。 |
auto_cleanup_enabled | 是否开启每日自动清理,默认 true。 |
GET /api/admin/option/log/get 获取配置POST /api/admin/option/log/update 保存配置POST /api/admin/log/cleanup 立即清理一次,返回 {keep_days, event_deleted, send_deleted, before, skipped}DELETE 会产生超大事务、长时间锁表;分批既能控制单批规模,也避开 SQLite 默认编译选项不支持 DELETE ... LIMIT 的问题。keep_days 为 0 或关闭自动清理时,清理任务会跳过,不删除任何数据;改配置无需重启。