Fankex

输入关键词搜索已发布文档。

mywebdrive

管理通知

查询和筛选通知、标记已读、创建通知记录,以及实时通知流的可靠性边界。

通知在哪里

管理员打开实例的 /admin/notifications 就能看到通知。这里的通知是 Core 管理的记录,不等于邮箱消息或用户之间的聊天。业务分析、系统健康和通知来自不同来源,一条通知本身不能证明某个指标或故障已经恢复。

查询接口 GET /api/v1/admin/notifications 支持 page、pageSize、service、severity、q、unreadOnly、from 和 to。默认每页 20 条,最大 200 条;severity 可选 critical、warning、info 或 success。如果筛选没有结果,先试试清除筛选条件并检查时间范围。

标记已读

POST /api/v1/admin/notifications/mark-read 请求体里带 ids 数组,使用查询返回的记录 UUID。接口会更新符合条件的记录,之后再读一下列表确认结果。

要注意的是,通知的已读状态是所有管理员共享的,并没有每位管理员独立的收件箱读标记。另一位管理员可能会看到你操作的效果。已读不等于问题已解决,也不会撤销事件或删除日志。

创建通知

POST /api/v1/admin/notifications 需要管理员身份,包含 title、description、severity、service,还可以附带 meta。标题最多 200 字符,说明最多 2000 字符,服务名最多 100 字符;severity 必须是支持的枚举值之一。

只填你确实知道的事实。不要把 access token、数据库连接串、验证码或用户原始资料放到说明或 meta 里——通知可能被其他管理员检索到,也可能被实时推送。创建成功返回 201,参数错误返回 400。

实时通知不是持久消息队列

GET /api/v1/admin/notifications/stream 提供 SSE 实时流,认证仍然使用 Bearer access token;服务大约每 25 秒发送一次心跳。流只是帮你实时看到新通知,并不提供基于 Last-Event-ID 的可靠历史重放。

当前源码版本把流连接保存在单个 Core 进程内。断线、进程重启或请求落到其他实例时,不能假定所有事件都已收到。重连后重新查询一下列表,合并记录并避免重复展示——列表结果才是补齐当前记录的依据。不要为了迁就 EventSource 而把 token 放到查询参数里。

排错顺序

列表和实时流都失败时,先检查身份和管理权限。列表正常但流中断,检查代理是否支持流式连接和超时设置。心跳不包含新通知,并不表示系统没有通知。未读计数、筛选条件和分页也会影响你看到的条数。

更多服务检查见本地开发,敏感日志处理见部署与恢复