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 進程內。斷線、進程重啓或請求落到其他實例時,不能假定所有事件都已收到。重連後重新查詢列表,合併記錄並避免重復展示,列表結果才是補齊當前記錄的依據。不要把 token 放到查詢參數來遷就 EventSource。

排錯順序

列表與實時流都失敗時先檢查身份和管理權限;列表正常但流中斷時檢查代理是否支持流式連接和超時。心跳不含新通知並不表示系統沒有通知。未讀計數、篩選和分頁也會影響看到的條數。

更多服務檢查見本地開發;敏感日誌處理見部署與恢復