You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Open-IM-Server/tools/imctl
Xinwei Xiong b2ea4ce2a3
fix: Fix Bug related issues with OpenIM actions PR (#921)
1 year ago
..
cmd fix: Fix Bug related issues with OpenIM actions PR (#921) 1 year ago
internal/imctl fix: Fix Bug related issues with OpenIM actions PR (#921) 1 year ago
README.md Large refactoring projects: OpenIM automation, scripting, and openimctl refactoring (#825) 1 year ago
go.mod Large refactoring projects: OpenIM automation, scripting, and openimctl refactoring (#825) 1 year ago
go.sum Large refactoring projects: OpenIM automation, scripting, and openimctl refactoring (#825) 1 year ago

README.md

OpenIM CTL 模块

为什么设计这个模块

OpenIM 后期功能扩展,不能总依赖一些单独的模块,而是整合到 Imctl 中。

测试同学做自动化测试或者是 e2e 测试,接口测试等等,每一次调用 API 很麻烦,用 imctl 的方式为 api 的调用提供了方便

和 scripts 深度交互,同样减少了 IM 本身的耦合度,提高了 IM 的可扩展性。

功能设计

  • 用户管理:例如,添加、删除或禁用用户账户。

  • 系统监控:查看在线用户数量、消息传送速率等关键性能指标。

  • 调试:如查看日志、调整日志级别、查看系统状态等。

  • 配置管理:更新系统设置、管理插件或模块等。

  • 数据管理:备份和恢复数据、导入和导出数据等。

  • 系统维护:例如,执行更新、重启服务、进行维护模式等。

设计思路

参考 kubectl, 方便 开发、运维、测试同学使用系统功能,并且实现自动化功能。

自动化设计思路:

  1. 为后面的扩展子模块或者子命令提供自动化的功能,提供子命令 imctl new 自动创建新的子命令
  2. 以通过 imctl 对用户、密钥和策略进行CURD操作
  3. 设置 imctl 自动补全脚本
  4. 版本管理,问题:https://github.com/OpenIMSDK/Open-IM-Server/issues/574 IM 自动化的版本管理,查看 IM 系统版本

一些简单的 IM 解决方案可能不需要这样的工具,而复杂、高度定制的系统可能会从中受益。

所以暂时将这个模块放在 tools/imctl 中,后面迁移到 cmd/imctl 中

目录结构设计

为了方便迁移,将 imctl 工程化设计,命令工具放入到 tools/imctl/cmd 中,其他的模块放入到 tools/imctl/pkg 中