Skip to content

palpo-im/matrix-bridge-dingtalk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Matrix Bridge DingTalk

A Matrix <-> DingTalk bridge written in Rust.

中文文档

Maintainer: Palpo Team

Status

Usable baseline implemented. Core bidirectional text bridge, admin provisioning API, and dead-letter replay/cleanup are now available.

Implemented

  • Matrix Appservice transaction handling
  • Matrix -> DingTalk text forwarding (by persisted room mapping)
  • Matrix reply/edit/redaction handling (with policy switches)
  • Matrix bot auto-join on invite (m.room.member invite)
  • DingTalk callback -> Matrix text forwarding
  • Per-conversation DingTalk webhook routing (token or full webhook URL)
  • Dedup via processed_events
  • Message mapping persistence via message_mappings
  • Dead-letter recording, listing, replay, and cleanup
  • Admin API: status, mappings, bridge, unbridge, dead-letters/*
  • CLI management commands: status, mappings, replay, dead-letter-cleanup

DingTalk Mode Notes

  • DingTalk has two common robot modes:
    • Group custom webhook robot: outbound webhook send.
    • Enterprise app chatbot: callback/event + session webhook.
  • This project supports webhook-based outbound and callback-based inbound text flow.

Quick Start

  1. Copy config:
cp config/config.example.yaml config.yaml
  1. Edit at least:
  • bridge.domain
  • bridge.homeserver_url
  • database.uri (or database.url)
  • registration.id (or registration.bridge_id)
  • registration.as_token (or registration.appservice_token)
  • registration.hs_token (or registration.homeserver_token)
  1. Optional env overrides:
  • DINGTALK_WEBHOOK_URL
  • DINGTALK_ACCESS_TOKEN
  • DINGTALK_SECRET
  • DINGTALK_CALLBACK_TOKEN
  • MATRIX_BRIDGE_DINGTALK_PROVISIONING_*_TOKEN
  1. Run:
cargo run --release

Admin API

Base URL: http://<bind_address>:<port>/admin

  • GET /status
  • GET /mappings?limit=100&offset=0
  • POST /bridge
  • POST /unbridge
  • GET /dead-letters?status=pending&limit=100
  • POST /dead-letters/<id>/replay
  • POST /dead-letters/replay
  • POST /dead-letters/cleanup

Current Limits

  • Focuses on text path first.
  • Rich media/event types are not fully bridged yet.
  • Callback security currently validates token only (no AES decrypt path yet).

License

Apache-2.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors