---
{
  "id": "platform.webhook.secret-rotation",
  "topic": "webhook",
  "title": "輪替 Webhook Signing Secret",
  "locale": "zh-TW",
  "version": "2026-08-09",
  "summary": "輪替沒有 grace period，舊 secret 立即失效；確認後取得的新 secret 也只顯示一次。",
  "content": "`arinova.webhook.rotate_secret` 會立刻影響整個 webhook。系統沒有 grace period，也沒有新舊雙 secret 並存時間；rotation 一提交，所有仍使用舊 secret 的 sender 都會立即簽章失敗。\n\n這個 action 要求此 Agent 的 per-Webhook `write` grant、使用者明確確認與 strict drift，避免一份確認被套用到不同 webhook；不存在與未授權都回 `resource_not_found`。新的 `signingSecret` 只在當次 live response 顯示，寫入 action replay 前會被移除，之後也無法透過 get 或 list 找回。\n\n在 Office > Incoming Webhooks 或 confirmed Action 輪替前，應先盤點所有 sender deployment，準備協調更新流程，並確認操作者能立刻把新值存入 secret manager。確認後只執行一次 rotation，依既定部署路徑更新 sender，再用新簽章送測試事件。除非所有 sender 能立即同步更新，否則不可承諾零中斷，因為 Arinova 不會在 rollout 期間繼續接受舊 credential。\n\n若新明文遺失，只能再次確認並重新輪替。不可要求使用者把正式 signing secret 貼進聊天，也不可把它寫入 Platform Knowledge。\n",
  "aliases": [
    "輪替 webhook secret",
    "簽章金鑰輪替",
    "更換密鑰",
    "舊 secret",
    "grace period",
    "compromised secret"
  ],
  "tags": [
    "confirmation",
    "display-once",
    "lifecycle",
    "security"
  ],
  "relatedActions": [
    "arinova.webhook.rotate_secret",
    "arinova.webhook.get_webhook"
  ],
  "relatedActionPrefixes": [],
  "url": "https://docs.arinova.ai/zh-tw/kb/webhook/secret-rotation/"
}
---

`arinova.webhook.rotate_secret` 會立刻影響整個 webhook。系統沒有 grace period，也沒有新舊雙 secret 並存時間；rotation 一提交，所有仍使用舊 secret 的 sender 都會立即簽章失敗。

這個 action 要求此 Agent 的 per-Webhook `write` grant、使用者明確確認與 strict drift，避免一份確認被套用到不同 webhook；不存在與未授權都回 `resource_not_found`。新的 `signingSecret` 只在當次 live response 顯示，寫入 action replay 前會被移除，之後也無法透過 get 或 list 找回。

在 Office > Incoming Webhooks 或 confirmed Action 輪替前，應先盤點所有 sender deployment，準備協調更新流程，並確認操作者能立刻把新值存入 secret manager。確認後只執行一次 rotation，依既定部署路徑更新 sender，再用新簽章送測試事件。除非所有 sender 能立即同步更新，否則不可承諾零中斷，因為 Arinova 不會在 rollout 期間繼續接受舊 credential。

若新明文遺失，只能再次確認並重新輪替。不可要求使用者把正式 signing secret 貼進聊天，也不可把它寫入 Platform Knowledge。
