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 必須是支援的列舉值。

請只填入已確認的事實。不要在說明或 meta 裡放入 access token、資料庫連線字串、驗證碼或使用者的原始資料——通知可能會被其他管理員搜尋到,也會透過即時串流送出。建立成功回傳 201,參數錯誤回傳 400。

實時通知不是持久消息隊列

GET /api/v1/admin/notifications/stream 提供 SSE 串流,認證方式同樣是 Bearer access token;伺服器大約每 25 秒發送一次心跳。串流只用來即時顯示新通知,不提供基於 Last-Event-ID 的可靠歷史重播保證。

目前這個版本的原始碼把串流連線保存在單一 Core 程序內。斷線、程序重啟或請求落到其他實例時,不能假設所有事件都已收到。重新連線後請重新查詢列表、合併記錄並避免重複顯示,列表查詢的結果才是補齊記錄的依據。不要為了遷就 EventSource 而把 token 放到查詢參數裡。

排錯順序

如果列表和即時串流同時失敗,先檢查身份和管理權限。列表正常但串流中斷,則檢查代理伺服器是否支援串流連線以及超時設定。心跳裡面不含新通知並不表示系統沒有通知。未讀計數、篩選條件和分頁也都會影響你看到的筆數。

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