iachat/app/javascript/dashboard/i18n/locale
Shivam Mishra 95463230cb
feat: sign webhooks for API channel and agentbots (#13892)
Account webhooks sign outgoing payloads with HMAC-SHA256, but agent bot
and API inbox webhooks were delivered unsigned. This PR adds the same
signing to both.

Each model gets a dedicated `secret` column rather than reusing the
agent bot's `access_token` (for API auth back into Chatwoot) or the API
inbox's `hmac_token` (for inbound contact identity verification). These
serve different trust boundaries and shouldn't be coupled — rotating a
signing secret shouldn't invalidate API access or contact verification.

The existing `Webhooks::Trigger` already signs when a secret is present,
so the backend change is just passing `secret:` through to the jobs.
Shared token logic is extracted into a `WebhookSecretable` concern
included by `Webhook`, `AgentBot`, and `Channel::Api`. The frontend
reuses the existing `AccessToken` component for secret display. Secrets
are admin-only and excluded from enterprise audit logs.

### How to test

Point an agent bot or API inbox webhook URL at a request inspector. Send
a message and verify `X-Chatwoot-Signature` and `X-Chatwoot-Timestamp`
headers are present. Reset the secret from settings and confirm
subsequent deliveries use the new value.

---------

Co-authored-by: Sojan Jose <sojan@pepalo.com>
2026-04-06 15:28:25 +05:30
..
am chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
ar chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
az chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
bg chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
bn chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
ca chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
cs chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
da chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
de chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
el chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
en feat: sign webhooks for API channel and agentbots (#13892) 2026-04-06 15:28:25 +05:30
es chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
et chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
fa chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
fi chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
fr chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
he chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
hi chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
hr chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
hu chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
hy chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
id chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
is chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
it chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ja chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ka chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
ko chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
lt chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
lv chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ml chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ms chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
ne chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
nl chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
no chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
pl chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
pt chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
pt_BR chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ro chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ru chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
sh chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
sk chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
sl chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
sq chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
sr chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
sv chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ta chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
th chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
tl chore: Update translations (#13884) 2026-03-23 20:06:17 -07:00
tr chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
uk chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ur chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
ur_IN chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
vi chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
zh chore: Update translations (#13832) 2026-03-17 16:02:40 -07:00
zh_CN chore: Update translations (#13845) 2026-03-21 02:20:27 -07:00
zh_TW fix(i18n): add zh_TW snooze parser locale (#13822) 2026-03-25 16:54:18 +05:30