Skip to content

feat(datasource): add DingTalk Docs integration - #2313

Open
WHUTcjh-2024 wants to merge 1 commit into
Tencent:mainfrom
WHUTcjh-2024:feat/issue-1707-dingtalk-datasource
Open

feat(datasource): add DingTalk Docs integration#2313
WHUTcjh-2024 wants to merge 1 commit into
Tencent:mainfrom
WHUTcjh-2024:feat/issue-1707-dingtalk-datasource

Conversation

@WHUTcjh-2024

Copy link
Copy Markdown
Contributor

feat(datasource): add DingTalk Docs integration

Fixes #1707.

概要

在现有数据源流程中新增钉钉文档:

  • 使用 Client ID、Client Secret、操作人 Union ID 完成企业应用鉴权
  • 懒加载选择知识库空间、文件夹或单篇文档
  • 通过公开 OpenAPI 读取文档 Block,并将支持的内容转换为 Markdown
  • 支持全量、增量及删除同步
  • 补充前端入口、四种语言文案、配置指引和连接器文档

同步安全

  • 瞬时故障有限重试,401 后仅刷新一次 Token
  • 文档读取失败时保留旧版本,下次同步继续重试
  • 目录遍历不完整时不推断删除,避免误删
  • 去重重叠的资源范围,并校验资源祖先链及空间归属
  • 资源 ID 和游标均带版本,兼容旧版空间游标迁移
  • 错误信息不暴露凭据、Token、请求参数或文档内容

验证

自动化:

  • go test -race ./internal/datasource/connector/dingtalk(20 项测试)
  • go vet ./internal/datasource/connector/dingtalk
  • go test ./internal/container ./internal/datasource ./internal/datasource/connector/dingtalk
  • npm run build-only

真实钉钉企业:

  • 已通过发布生效的企业内部应用完成鉴权和知识库选择
  • 首次同步:新增 9,失败 0
  • 新建文档:新增 1,失败 0
  • 修改文档:更新 1,失败 0
  • 无改动重复同步:变化 0
  • 删除源文档:检测删除 1,失败 0
  • 删除后重复同步:变化 0

验收文档已移入钉钉回收站。按照 WeKnora 现有安全策略,删除同步只检测并计数,不自动移除知识库记录。

范围

当前仅导入 ALIDOC/adoc 在线文档,其他节点类型会跳过。实现只使用公开 OpenAPI,不依赖灰度权限、异步导出或回调服务。

@WHUTcjh-2024
WHUTcjh-2024 marked this pull request as ready for review July 25, 2026 19:03
@WHUTcjh-2024

Copy link
Copy Markdown
Contributor Author

Ready for review. Validated against a real DingTalk enterprise for authentication, resource selection, create, update, idempotent re-sync, and source-deletion detection. The implementation uses documented OpenAPI only and requires no gray permissions.

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.

[Feature]: 知识库数据源管理页,请添加钉钉文档数据源

1 participant