Skip to content

Add Feishu / Lark notification channel - #86

Closed
CoooderSan wants to merge 1 commit into
roxy-wi:mainfrom
CoooderSan:feat/lark-notifier
Closed

CoooderSan wants to merge 1 commit into
roxy-wi:mainfrom
CoooderSan:feat/lark-notifier

Conversation

@CoooderSan

@CoooderSan CoooderSan commented Sep 16, 2026 •

Copy link
Copy Markdown
Contributor

Problem

IncidentRelay's generic webhook channel sends a flat payload, while Feishu/Lark custom bots require a msg_type and content envelope. There is no native Feishu/Lark notification channel.

Change

  • Add a dedicated lark notifier for Feishu and Lark custom bot webhooks.
  • Support both open.feishu.cn and open.larksuite.com webhook URLs.
  • Send text messages using the provider-required msg_type: text and content.text format.
  • Support optional Feishu/Lark signing-secret timestamps and HMAC-SHA256 signatures.
  • Validate HTTP errors and both modern and legacy provider application response formats.
  • Register the channel in API schemas, OpenAPI, notifier registry, channel UI, all locale catalogs, README, and integration docs.
  • Mask webhook URLs and signing secrets and preserve masked values during channel updates.
  • Add backend, secret-redaction, UI asset, payload, signing, and provider-error tests.

This PR only adds native Feishu/Lark text notification support. Interactive ACK/Resolve/Shelve cards and message updates are not included.

Tests

  • .venv/bin/pytest -q: 1,818 passed.
  • Feishu/Lark notifier, schema, and UI tests: 20 passed.
  • Ruff passed for the full app and tests trees.
  • Bandit passed.
  • Python compilation passed.
  • JavaScript syntax validation passed for the modified script.
  • Template validation passed with tests/incidentrelay.test.conf.
  • Database schema validation passed.
  • git diff --check passed.

Manual verification

  • Verified the UI exposes a dedicated Feishu / Lark channel with webhook URL and optional signing secret fields.
  • Verified edit responses mask both secrets and update placeholders restore stored values.
  • Verified unsigned payloads, signed payloads, modern code/msg responses, and legacy StatusCode/StatusMessage responses in notifier tests.
  • Verified live unsigned delivery through the native notifier against both open.feishu.cn and open.larksuite.com; both providers returned success.

I have read and agree to the IncidentRelay Contributor License Agreement (CLA.md).

@CoooderSan

Copy link
Copy Markdown
Contributor Author

/sign-cla

@Aidaho12

Copy link
Copy Markdown
Member

Hello,

Why you closed the PL? It looks good

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants