diff --git a/README.md b/README.md index f874103..e8aaff3 100644 --- a/README.md +++ b/README.md @@ -1,21 +1,45 @@ -# Databasir +## 简介 +**Databasir** 是面向团队的**关系型数据库模型文档管理平台**,旨在通过自动化的方式解决模型文档管理过程中维护成本高、内容更新不及时以及团队协作复杂等问题。 -## 简介 +平台文档:https://doc.databasir.com + +问题反馈:https://github.com/vran-dev/databasir/issues + +平台演示:[https://demo.databasir.com](http://121.4.67.27/) + +| 账号 | 密码 | 角色 | +| ---- | ------- | ---------- | +| demo | demo123 | 系统管理员 | +| dev | dev123 | 普通 | + +## 特性 + +1. 兼容市面多数数据库:支持所有拥有 JDBC 驱动的数据库,mysql、postgresql 开箱即用 +2. 丰富的文档管理功能:支持文档自动同步,版本历史回溯,版本差异对比,文档讨论,UML 生成, 文档导出等,应有尽有 +3. 面向团队的专业能力:扁平化的角色管理,支持 Github \ Github Enterprise \ Gitlab 的 OAuth2 登录,日志审计 + +更多内容请到 https://doc.databasir.com 查看 + +- 文档页面展示 -**Databasir** 是一款集中式的数据库文档管理工具,提供了自动化、版本化、扁平化的数据库文档管理能力,主要功能如下 +![](docs/README/document-diff.gif) -1. 支持所有实现 JDBC 协议的数据库(如 mysql、postgresql、sqlserver等) -2. 支持 Markdown 文档、Excel 文档(TODO)、UML 图片导出 -3. 支持 Github / Github Enterprise / Gitlab 的 OAuth2 登录配置 -4. 支持文档自动同步、历史版本查看、团队讨论、字段描述等 -5. 扁平化的团队管理模式,灵活适应不同团队组织架构 +更多规划功能,敬请期待 -更多内容,请查看[官网](https://blog.cc1234.cc/databasir) +1. 文档导出格式 + - [x] UML 图片 + - [x] Markdown + - [ ] Excel + - [ ] Word +2. 邮件通知 + - [ ] 新增讨论 + - [ ] 版本变更 +## 联系作者 -## 功能展示 +![](docs/qrcode.jpg) -- 文档页面 +## License -![uml](docs/README/document-uml.gif) +Apache License 2.0 \ No newline at end of file diff --git a/databasir-sample-k3s.yaml b/databasir-sample-k3s.yaml index c889bf5..15a5db0 100644 --- a/databasir-sample-k3s.yaml +++ b/databasir-sample-k3s.yaml @@ -85,6 +85,7 @@ spec: containers: - image: vrantt/databasir:latest name: "databasir-sample" + imagePullPolicy: Always env: - name: DATABASIR_DB_URL value: databasir-mysql diff --git a/docs/README.md b/docs/README.md index 1371244..7deccf7 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,61 +1,46 @@ +## 简介 -# 简介 +![](databasir.png) 是面向团队的**关系型数据库模型文档管理平台**,旨在通过自动化的方式解决模型文档管理过程中维护成本高、内容更新不及时以及团队协作复杂等问题。 -**Databasir** 是一款集中式的数据库文档管理工具,提供了自动化、版本化、扁平化的数据库文档管理能力,主要功能如下 +平台文档:https://doc.databasir.com -1. 支持所有实现 JDBC 协议的数据库(如 mysql、postgresql、sqlserver等) -2. 支持 Markdown 文档、Excel 文档(TODO)、UML 图片导出 -3. 支持 Github / Github Enterprise / Gitlab 的 OAuth2 登录配置 -4. 支持文档自动同步、历史版本查看、团队讨论、字段描述等 -5. 扁平化的团队管理模式,灵活适应不同团队组织架构 +问题反馈:https://github.com/vran-dev/databasir/issues +平台演示:[https://demo.databasir.com](http://121.4.67.27/) -## 功能规划 +| 账号 | 密码 | 角色 | +| ---- | ------- | ---------- | +| demo | demo123 | 系统管理员 | +| dev | dev123 | 普通 | -- [x] 用户操作审计日志 -- [x] 文档自动同步日志 -- [ ] Excel 文档导出 -- [x] Markdown 文档导出 -- [x] Github OAuth2 登录模式 -- [x] Gitlab OAuth2 登录模式 -- [x] 模型 UML 生成 -- [x] UML 图片导出 +## 特性 -## 功能展示 +1. 兼容市面多数数据库:支持所有拥有 JDBC 驱动的数据库,mysql、postgresql 开箱即用 +2. 丰富的文档管理功能:支持文档自动同步,版本历史回溯,版本差异对比,文档讨论,UML 生成, 文档导出等,应有尽有 +3. 面向团队的专业能力:扁平化的角色管理,支持 Github \ Github Enterprise \ Gitlab 的 OAuth2 登录,日志审计 -- 文档页面 +- 图片展示 -![uml](README/document-uml.gif) + -- 分组创建 +## 规划 -![](README/group-create.gif) +1. 文档导出格式 + - [x] UML 图片 + - [x] Markdown + - [ ] Excel + - [ ] Word +2. 邮件通知 + - [ ] 文档新增讨论 + - [ ] 文档版本变更 -- 项目创建 +## 更多 -![](README/project-create.gif) +交流群:暂无 -- 项目同步 +邮箱:vran_dev@foxmail.com -![](README/project-sync.gif) +公众号 -- 协作讨论 - -![](README/document-discussion.gif) - -- 分组成员 - -![](README/group-member.gif) - -- 用户创建 - -![](README/user-create.gif) - -- 用户详情 - -![](README/user-detail.gif) - -- 操作日志 - -![](README/log-list.gif) \ No newline at end of file +![](qrcode.jpg) \ No newline at end of file diff --git a/docs/README/database-extension/database-extension.md b/docs/README/database-extension/database-extension.md index fb6cc2f..afc747c 100644 --- a/docs/README/database-extension/database-extension.md +++ b/docs/README/database-extension/database-extension.md @@ -1,4 +1,4 @@ -# 扩展数据库类型 +# 零代码扩展受支持的数据库类型 ## 说明 @@ -13,11 +13,9 @@ 对于其它数据库(有 JDBC 驱动)或者你想切换不同版本的内置数据库驱动,只需要简单的配置就可以实现 - - ## 配置 -由于数据库类型是全系统可用的,所以限制了只有【系统管理员】权限才能新增数据库类型。 +由于数据库类型是全平台可用的,所以限制了只有【系统管理员】权限才能新增数据库类型。 通过菜单我们进入【数据库类型】配置页面 @@ -27,9 +25,10 @@ ![](img/2-database-types.png) +这个表单中我们需要填入一些必要的信息,我们以扩展一个 mariadb 为例 +![](img/3-add.png) -这个表单中我们需要填入一些必要的信息,我们以扩展一个 mariadb 为例 | 属性 | 说明 | 示例数据 | | ----------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | @@ -49,10 +48,7 @@ - {{db.url}} 对应创建项目时填写的 url - -![](img/3-add.png) - - +## 验证 保存完成以后我们就可以在项目创建页面找到我们自定义的数据库示例了 diff --git a/docs/README/deploy/docker-deploy.md b/docs/README/deploy/docker-deploy.md index 84a646a..6abd2e8 100644 --- a/docs/README/deploy/docker-deploy.md +++ b/docs/README/deploy/docker-deploy.md @@ -1,14 +1,12 @@ # Docker 部署 -[Databasir](https://github.com/vran-dev/databasir) 现在已经准备好了开箱即用的 Docker Image,你只需要简单两步就可以完成一个 Databasir 应用的构建 - +[Databasir](https://github.com/vran-dev/databasir) 已经准备好了开箱即用的 Docker Image,你只需要简单两步就可以完成一个 Databasir 应用的构建 ## 环境要求 1. Docker 2. Mysql - ## 部署流程 1. 拉取最新版镜像,当然你也可以将 latest 替换成你想要得版本号,具体有哪些镜像版本可以拉取可以在[这里](https://registry.hub.docker.com/r/vrantt/databasir)查看 @@ -17,16 +15,12 @@ docker pull vrantt/databasir:latest ``` - - 2. 镜像下载完成以后就可以直接启动了 ```shell -docker run --name my-databasir -e DATABASIR_DB_URL=127.0.0.1:3306 -e DATABASIR_DB_USERNAME=root -e DATABASIR_DB_PASSWORD=123456 databasir:latest -p 8888:8080 +docker run --name my-databasir -e DATABASIR_DB_URL=127.0.0.1:3306 -e DATABASIR_DB_USERNAME=root -e DATABASIR_DB_PASSWORD=123456 vrantt/databasir:latest -p 8888:8080 ``` - - 这里解释一下各个命令参数 - `--name` 代表镜像启动后的名称,你可以随意命名 @@ -37,21 +31,9 @@ docker run --name my-databasir -e DATABASIR_DB_URL=127.0.0.1:3306 -e DATABASIR_D - `-p` 暴露端口,databasir 默认在容器内部开放了 8080 端口,这里将宿主机的 8888 端口映射到了容器的 8080 端口 - - 启动后,Databasir 会默认创建一个超级管理员账户 - 用户名:databasir - 密码:databasir -这时候访问 http://localhost:8888 进入登录页,输入上面的账号和密码即可成功登入。 - - -## 登录验证 - -应用启动完成后会默认创建 Databasir 管理员用户 - -- 用户名:databasir -- 密码:databasir - -通过该账号登录应用既可以进行管理 \ No newline at end of file +这时候访问 http://localhost:8888 进入登录页,输入上面的账号和密码即可成功登入,到此就算部署完成。 diff --git a/docs/README/document-diff.gif b/docs/README/document-diff.gif new file mode 100644 index 0000000..5616c28 Binary files /dev/null and b/docs/README/document-diff.gif differ diff --git a/docs/README/github-oauth2/github-oauth2.md b/docs/README/github-oauth2/github-oauth2.md index 52e160e..99f8770 100644 --- a/docs/README/github-oauth2/github-oauth2.md +++ b/docs/README/github-oauth2/github-oauth2.md @@ -1,51 +1,52 @@ -# Databasir 配置 Github OAuth2 登录 +# 启用 Github 第三方认证登录 -1. **创建 Github OAuth Application** +## 一、创建 Github OAuth 应用 +前往 Github 的配置页面创建 Github OAuth Application ![github-app-create](img/1-github-oauth2-app-create.png) -2. **填写 Github 应用资料** - -Homepage URL 填写你部署 databasir 后,可访问的公网域名。 - -Authorization callback URL 你可以先填写 {{ databasir 域名 }}/login/oauth2/{{ registrationId }},这里的 registrationId 你可以任意填写,只需要稍后在 Databasir 中配置时保持一致即可,我这里填写了 vran_github +点击 `New OAuth App` 就会进入应用创建页面 ![github-oauth2](img/2-github-oauth2-create.png) +Homepage URL 填写你部署 databasir 后,可访问的公网域名。 +Authorization callback URL 你可以先填写 {{ databasir 域名 }}/login/oauth2/{{ registrationId }}。 -3. 申请 client secret +这里的 registrationId 你可以任意填写,只需要稍后在 Databasir 中配置时保持一致即可,我这里填写了 `vran_github`。 -点击 `Generate a new client secret`,生成秘钥以后记得复制暂存一下,以后是看不见原始秘钥的了 +填好信息以后点击 `Register application` 就能成功创建一个 OAuth Application 了并跳入下图所示页面 ![oauth2-github](img/3-github-oauth2-create.png) +在点击 `Generate a new client secret`,生成秘钥以后记得复制暂存一下,以后是看不见原始秘钥的了 - -4. 保存 Client Id 和刚刚生成的 Client Secret +记得保存 Client Id 和刚刚生成的 Client Secret。 ![oauth2-github](img/4-github-oauth2-create.png) -5. 进入 Databasir 系统管理 -> 登录设置 +## 二、Databasir 登录设置 + +进入 Databasir 系统管理 -> 登录设置 ![databasir](img/5-github-oauth-create.png) +进入到应用创建页面,填写表单信息。 +![](img/6-github-oauth-create.png) -6. 最后一步,创建并保存登录应用 +还记得前面提到的 `registrationId` 吗?那个就对应 databasir 中的 `应用 ID` ,只要两者保持一致就可以成功接受 github 的回调。 -还记得我在第 2 步时候说的 `registrationId` 吗?那个就对应 databasir 中的 `应用 ID` ,只要两者保持一致就可以成功接受 github 的回调,要是前面配错了也可以在当前页面复制自动生成的 URL 去 github 重新填写 Authorization callback URL 就可以了。 +要是前面配错了也没关系,可以在当前页面复制自动生成的 URL 去 github 重新填写 Authorization callback URL 就可以了。 注意授权地址和资源地址 - 授权地址:获取 access_token 的请求地址 - 资源地址:获取用户信息的请求地址 -这里填写不一样是因为 github 官方将授权和资源地址分开的,如果你使用的时 github enterprise 版本,授权地址和资源地址其实是一样的。 - -![](img/6-github-oauth-create.png) - +这里填写不一样是因为 github 官方将授权和资源地址分开的,**如果你使用的时 github enterprise 版本,授权地址和资源地址其实是一样的**。 +## 三、登录验证 配置完成以后,注销登录后再次进入登录页面就会发现多了一个 github 的小图标,点击就可以使用 github 进行登录 diff --git a/docs/README/gitlab-oauth2/gitlab-oauth2.md b/docs/README/gitlab-oauth2/gitlab-oauth2.md index 2782f80..8fa4634 100644 --- a/docs/README/gitlab-oauth2/gitlab-oauth2.md +++ b/docs/README/gitlab-oauth2/gitlab-oauth2.md @@ -1,6 +1,8 @@ -# Databasir 配置 Github OAuth2 登录 +# 启用 Gitlab 第三方认证登录 -1. 创建 Gitlab 应用,填写应用名称、回调地址等信息,注意下面授权一定记得勾选上 **read_user** +## 一、申请 Gitlab 应用 + +前往 Gitlab 配置页面创建 Gitlab 应用,填写应用名称、回调地址等信息,注意下面授权一定记得勾选上 **read_user** 回调地址填写你访问 databasir 的公网地址 {{ databasir 地址 }}/login/oauth2/{{ 应用ID }} @@ -8,26 +10,27 @@ ![](img/1-gitlab-oauth2.png) - - -2. 保存好应用以后,就可以看见 Application Id 和 Secret,复制这两个值 +保存好应用以后,就可以看见 Application Id 和 Secret,保存下来这两个值 ![](img/2-gitlab-oauth2.png) -3. 进入 Databasir 系统管理 -> 登录设置页面 +## 二、Databasir 登录设置 + +进入 Databasir 系统管理 -> 登录设置页面 ![](img/3-gitlab-oauth2.png) -4. 创建并保存应用信息 +创建并保存应用信息 - client Id 就对应申请到的 Application Id - - client secret 就对应申请到的 Application secret - 应用 id 记得和我们第一步填写 redirect uri 时的应用 id 保持一致 ![image-20220303225811673](img/4-gitlab-oauth2.png) -5. 保存完成以后注销登录,进入登录页面就可以看见多了一个 gitlab 的登录图标,点击就可以使用 gitlab 来登录了 +## 三、登录验证 + +保存完成以后注销登录,进入登录页面就可以看见多了一个 gitlab 的登录图标,点击就可以使用 gitlab 来登录了 ![](img/5-gitlab-oauth2.png) diff --git a/docs/README/group-and-project/img/group-sample.png b/docs/README/group-and-project/img/group-sample.png new file mode 100644 index 0000000..233be0c Binary files /dev/null and b/docs/README/group-and-project/img/group-sample.png differ diff --git a/docs/README/group-and-project/img/group.png b/docs/README/group-and-project/img/group.png new file mode 100644 index 0000000..8e91c90 Binary files /dev/null and b/docs/README/group-and-project/img/group.png differ diff --git a/docs/README/group-and-project/img/project-sample.png b/docs/README/group-and-project/img/project-sample.png new file mode 100644 index 0000000..bad9ba0 Binary files /dev/null and b/docs/README/group-and-project/img/project-sample.png differ diff --git a/docs/README/group-and-project/index.md b/docs/README/group-and-project/index.md new file mode 100644 index 0000000..0def043 --- /dev/null +++ b/docs/README/group-and-project/index.md @@ -0,0 +1,41 @@ +# 分组与项目 + +分组(Group)和项目(Project)是 Databasir 中最基础的概念,它们之间的关系如下图所示 + +![group-and-project](img/group.png) + +## 分组(Group) + +![group-and-project](img/group-sample.png) + +分组是由项目和成员共同组成,它们之间有着非常明确对应关系 + +- 一个分组下有多个成员(用户) +- 一个分组下有多个项目 + +每个成员(用户)在所属分组可以承担两种角色,分别是 + +- 组长:拥有该分组下的所有读写权限 +- 组员:拥有该分组下的部分写权限,全部读权限 + +对于每个用户来说,他可以加入多个分组,在不同的分组承担不同的角色。 + +Databasir 并没有将分组和企业中的组织或开发中的环境做强行的绑定,你可以灵活的使用它,推荐的做法是 + +- 如果你的项目数不多,可以使用分组作为环境管理,比如创建 dev、qa、prod 三个分组 +- 如果你所在团队很大,可以将分组对应到不同的业务线,比如公共设施组、电商平台组、物流平台组等 + +## 项目(Project) + +![img.png](img/project-sample.png) + +`Database per Project` 是 Databasir 中的基本概念,见名知意,也就是一个项目其实对应一个数据库。 + +项目必须建立在某个指定的分组下面,不能独立存在,它是 Databasir 管理的最小单位,主要维护了以下信息 + +- 对应数据库的连接信息 +- 文档同步规则,比如:字段过滤条件、定时同步时间等 +- 数据库模型文档所有历史版本数据 +- 数据库模型文档的讨论 + +项目支持手动和自动同步,每次同步时 Databasir 会与项目当前最新版本文档做对比,如果没有结构变更,则不会生成新的版本。 diff --git a/docs/README/management-email/img/email-menu.png b/docs/README/management-email/img/email-menu.png new file mode 100644 index 0000000..c7a6150 Binary files /dev/null and b/docs/README/management-email/img/email-menu.png differ diff --git a/docs/README/management-email/img/email-setting.png b/docs/README/management-email/img/email-setting.png new file mode 100644 index 0000000..4d1060c Binary files /dev/null and b/docs/README/management-email/img/email-setting.png differ diff --git a/docs/README/management-email/index.md b/docs/README/management-email/index.md new file mode 100644 index 0000000..d1b3956 --- /dev/null +++ b/docs/README/management-email/index.md @@ -0,0 +1,28 @@ +# 邮箱设置 + +Databasir 很多通知会通过邮件的形式进行发送,比如 + +- 项目版本变更 +- 项目新增讨论 +- 重置密码 + +这些通知只有在管理员为系统设置了默认邮箱时才能正常使用。 + +## 新增邮箱 +邮箱的设置入口如下图所示 + +![img.png](img/email-menu.png) + +点击就可以进入邮箱配置页面,目前支持使用 SMTP 协议进行配置。 + +![img.png](img/email-setting.png) + +验证邮箱配置是否成功可以在用户管理列表页中点击**重置密码**,如果邮箱配置正常,那么对应用户的邮箱会收到重置后的新密码 + +## 重置邮箱 + +如果想关闭系统的推送,可以**重置邮箱**,这样系统的邮箱配置就会回到初始状态。 + +重置功能位于邮箱配置页面,点击**重置按钮**即可完成 + +![img.png](img/email-setting.png) \ No newline at end of file diff --git a/docs/README/management-group/img/group-add1.png b/docs/README/management-group/img/group-add1.png new file mode 100644 index 0000000..baed313 Binary files /dev/null and b/docs/README/management-group/img/group-add1.png differ diff --git a/docs/README/management-group/img/group-add2.png b/docs/README/management-group/img/group-add2.png new file mode 100644 index 0000000..697cfde Binary files /dev/null and b/docs/README/management-group/img/group-add2.png differ diff --git a/docs/README/management-group/img/group-add3.png b/docs/README/management-group/img/group-add3.png new file mode 100644 index 0000000..4e3a46e Binary files /dev/null and b/docs/README/management-group/img/group-add3.png differ diff --git a/docs/README/management-group/img/group-delete1.png b/docs/README/management-group/img/group-delete1.png new file mode 100644 index 0000000..cedfa8c Binary files /dev/null and b/docs/README/management-group/img/group-delete1.png differ diff --git a/docs/README/management-group/img/group-delete2.png b/docs/README/management-group/img/group-delete2.png new file mode 100644 index 0000000..863de14 Binary files /dev/null and b/docs/README/management-group/img/group-delete2.png differ diff --git a/docs/README/management-group/img/group-delete3.png b/docs/README/management-group/img/group-delete3.png new file mode 100644 index 0000000..1a00711 Binary files /dev/null and b/docs/README/management-group/img/group-delete3.png differ diff --git a/docs/README/management-group/img/group-member1.png b/docs/README/management-group/img/group-member1.png new file mode 100644 index 0000000..ce58b9a Binary files /dev/null and b/docs/README/management-group/img/group-member1.png differ diff --git a/docs/README/management-group/img/group-member2.png b/docs/README/management-group/img/group-member2.png new file mode 100644 index 0000000..4311e0b Binary files /dev/null and b/docs/README/management-group/img/group-member2.png differ diff --git a/docs/README/management-group/img/group-member3.png b/docs/README/management-group/img/group-member3.png new file mode 100644 index 0000000..1542d57 Binary files /dev/null and b/docs/README/management-group/img/group-member3.png differ diff --git a/docs/README/management-group/img/group-member4.png b/docs/README/management-group/img/group-member4.png new file mode 100644 index 0000000..32b446f Binary files /dev/null and b/docs/README/management-group/img/group-member4.png differ diff --git a/docs/README/management-group/img/group-role1.png b/docs/README/management-group/img/group-role1.png new file mode 100644 index 0000000..f91d0fa Binary files /dev/null and b/docs/README/management-group/img/group-role1.png differ diff --git a/docs/README/management-group/index.md b/docs/README/management-group/index.md new file mode 100644 index 0000000..98445c0 --- /dev/null +++ b/docs/README/management-group/index.md @@ -0,0 +1,95 @@ +# 分组管理 + +如果你还不清楚 Databasir 中分组的概念,可以先阅读[分组与项目](/README/group-and-project/index.md)一节 + +## 创建分组 + +Note:**只有系统管理员才可以创建分组** + +在成功登入 Databasir 后就会默认进入**分组列表页**,该页面将会以卡片的形式展示平台中已创建的所有分组。 + +![](img/group-add1.png) + +点击左上角蓝色的 + 号就可以弹窗分组创建页,需要填写三个信息 + +- 名称:即列表页展示的组名 +- 描述:简要描述分组信息 +- 组长:该分组的负责人,支持通过名称、邮箱搜索 + +![](img/group-add2.png) + +信息填写完成以后点击确定即可创建成功 + +![](img/group-add3.png) + + + +## 删除分组 + +Note:只有系统管理员和组长可以删除分组 + +在分组列表页,将鼠标移到想要删除的分组上面就会在名称左边显现出一个编辑图标 + +![](img/group-delete1.png) + +点击该按钮进入分组编辑页 + +![](img/group-delete2.png) + +点击**确认删除分组**后再次弹出一个警告框,最终确认以后就成功删除该分组了 + +![](img/group-delete3.png) + +## 添加移除成员 + +Note:只有系统管理员和组长可以添加移除成员 + +成员的管理有两种方式 + +**一、在分组编辑页管理** + +在分组的编辑页面上可以添加或删除组长(仅可增删组长) + +添加的过程和前面创建分组时一样,在搜索框搜索用户然后点击即可添加,完成以后记得保存方可生效。 + +删除分组的话只需要点击组长标签右侧的 x 按钮即可,同样,完成以后记得保存方可生效。 + +![](img/group-member1.png) + +**二、在成员管理页管理** + +通过点击分组列表页中的组名可以跳转到分组详情页中,该页面有两个 Tab + +- 项目列表 +- 分组成员 + +![](img/group-member2.png) + + + +点击分组成员即可进入成员管理 Tab 页,在该页面我们可以通过点击**移除**按钮将用户移出该分组 + +![](img/group-member3.png) + + + +通过点击左上角的**添加成员**按钮就可以进入成员选择页面进行添加,可以作为组员添加,也可以作为组长添加,按需选择。 + +在该页面我们可以通过点击**移除**按钮将用户移出该分组。 + +![](img/group-member4.png) + + + +## 修改成员角色 + +Note:只有系统管理员和组长可以修改成员角色 + +如果我们想修改一个用户在分组内的角色,只需要在分组成员 Tab 页进行切换就可以 + +- 如果该用户是组员,则会出现**升为组长**的按钮 +- 如果该用户是组长,则会出现**设为组员**的按钮 + +![](img/group-role1.png) + +组长拥有所属分组的所有读写权限,包括修改其他组长的角色,但是组长无法修改自己的角色 \ No newline at end of file diff --git a/docs/README/management-project/img/doc-diff1.png b/docs/README/management-project/img/doc-diff1.png new file mode 100644 index 0000000..084e1f9 Binary files /dev/null and b/docs/README/management-project/img/doc-diff1.png differ diff --git a/docs/README/management-project/img/doc-diff2.png b/docs/README/management-project/img/doc-diff2.png new file mode 100644 index 0000000..3b60d1f Binary files /dev/null and b/docs/README/management-project/img/doc-diff2.png differ diff --git a/docs/README/management-project/img/doc-diff3.png b/docs/README/management-project/img/doc-diff3.png new file mode 100644 index 0000000..b681f8d Binary files /dev/null and b/docs/README/management-project/img/doc-diff3.png differ diff --git a/docs/README/management-project/img/doc-diff4.png b/docs/README/management-project/img/doc-diff4.png new file mode 100644 index 0000000..23d9188 Binary files /dev/null and b/docs/README/management-project/img/doc-diff4.png differ diff --git a/docs/README/management-project/img/doc-diff5.png b/docs/README/management-project/img/doc-diff5.png new file mode 100644 index 0000000..a429dc5 Binary files /dev/null and b/docs/README/management-project/img/doc-diff5.png differ diff --git a/docs/README/management-project/img/project-create1.png b/docs/README/management-project/img/project-create1.png new file mode 100644 index 0000000..eaa601e Binary files /dev/null and b/docs/README/management-project/img/project-create1.png differ diff --git a/docs/README/management-project/img/project-create2.png b/docs/README/management-project/img/project-create2.png new file mode 100644 index 0000000..0589db0 Binary files /dev/null and b/docs/README/management-project/img/project-create2.png differ diff --git a/docs/README/management-project/img/project-create3.png b/docs/README/management-project/img/project-create3.png new file mode 100644 index 0000000..7bf520f Binary files /dev/null and b/docs/README/management-project/img/project-create3.png differ diff --git a/docs/README/management-project/img/project-create4.png b/docs/README/management-project/img/project-create4.png new file mode 100644 index 0000000..af5f7a9 Binary files /dev/null and b/docs/README/management-project/img/project-create4.png differ diff --git a/docs/README/management-project/img/project-delete1.png b/docs/README/management-project/img/project-delete1.png new file mode 100644 index 0000000..5ed6d6b Binary files /dev/null and b/docs/README/management-project/img/project-delete1.png differ diff --git a/docs/README/management-project/img/project-delete2.png b/docs/README/management-project/img/project-delete2.png new file mode 100644 index 0000000..2f97478 Binary files /dev/null and b/docs/README/management-project/img/project-delete2.png differ diff --git a/docs/README/management-project/img/project-export1.png b/docs/README/management-project/img/project-export1.png new file mode 100644 index 0000000..cefcc23 Binary files /dev/null and b/docs/README/management-project/img/project-export1.png differ diff --git a/docs/README/management-project/img/project-export2.png b/docs/README/management-project/img/project-export2.png new file mode 100644 index 0000000..0023e24 Binary files /dev/null and b/docs/README/management-project/img/project-export2.png differ diff --git a/docs/README/management-project/img/project-fav1.png b/docs/README/management-project/img/project-fav1.png new file mode 100644 index 0000000..32337ce Binary files /dev/null and b/docs/README/management-project/img/project-fav1.png differ diff --git a/docs/README/management-project/img/project-fav2.png b/docs/README/management-project/img/project-fav2.png new file mode 100644 index 0000000..979ab74 Binary files /dev/null and b/docs/README/management-project/img/project-fav2.png differ diff --git a/docs/README/management-project/img/project-fav3.png b/docs/README/management-project/img/project-fav3.png new file mode 100644 index 0000000..b9cece3 Binary files /dev/null and b/docs/README/management-project/img/project-fav3.png differ diff --git a/docs/README/management-project/img/project-fav4.png b/docs/README/management-project/img/project-fav4.png new file mode 100644 index 0000000..89304e0 Binary files /dev/null and b/docs/README/management-project/img/project-fav4.png differ diff --git a/docs/README/management-project/img/project-ignore1.png b/docs/README/management-project/img/project-ignore1.png new file mode 100644 index 0000000..963c82d Binary files /dev/null and b/docs/README/management-project/img/project-ignore1.png differ diff --git a/docs/README/management-project/img/project-ignore2.png b/docs/README/management-project/img/project-ignore2.png new file mode 100644 index 0000000..7351748 Binary files /dev/null and b/docs/README/management-project/img/project-ignore2.png differ diff --git a/docs/README/management-project/img/project-schedule1.png b/docs/README/management-project/img/project-schedule1.png new file mode 100644 index 0000000..ccc8e62 Binary files /dev/null and b/docs/README/management-project/img/project-schedule1.png differ diff --git a/docs/README/management-project/img/project-schedule2.png b/docs/README/management-project/img/project-schedule2.png new file mode 100644 index 0000000..4678fee Binary files /dev/null and b/docs/README/management-project/img/project-schedule2.png differ diff --git a/docs/README/management-project/img/project-schedule3.png b/docs/README/management-project/img/project-schedule3.png new file mode 100644 index 0000000..0c43c15 Binary files /dev/null and b/docs/README/management-project/img/project-schedule3.png differ diff --git a/docs/README/management-project/img/project-sync1.png b/docs/README/management-project/img/project-sync1.png new file mode 100644 index 0000000..b0537f9 Binary files /dev/null and b/docs/README/management-project/img/project-sync1.png differ diff --git a/docs/README/management-project/img/project-sync2.png b/docs/README/management-project/img/project-sync2.png new file mode 100644 index 0000000..f1f5818 Binary files /dev/null and b/docs/README/management-project/img/project-sync2.png differ diff --git a/docs/README/management-project/img/project-sync3.png b/docs/README/management-project/img/project-sync3.png new file mode 100644 index 0000000..866a470 Binary files /dev/null and b/docs/README/management-project/img/project-sync3.png differ diff --git a/docs/README/management-project/index.md b/docs/README/management-project/index.md new file mode 100644 index 0000000..4dba1b7 --- /dev/null +++ b/docs/README/management-project/index.md @@ -0,0 +1,196 @@ +# 项目管理 +如果你还不清楚 Databasir 中分组的概念,可以先阅读[分组与项目](/README/group-and-project/index.md)一节 + +## 创建项目 + +项目必须创建在指定分组下面,所以在创建项目前需要先创建分组。 + +在所属分组中,组员和组长都拥有创建项目的权限,在分组详情页中我们可以点击**新建**按钮开始创建项目 + +![](img/project-create1.png) + +点击以后我们就可以进入项目创建表单页,页面是一个 Tab 页,有**基础配置**和**高级配置**两个 Tab + +- 基础配置 Tab:项目的名称、数据库连接等配置 +- 高级配置 Tab:项目的定时同步规则、忽略表和列配置 + +我们先只关注**基础配置**,这个页面分为两个部分 + +- 基础信息 +- 连接配置 + +![](img/project-create2.png) + +表单大部分内容都不用多说,可能数据库名称和 Schema 名称会让人有点迷惑,我以 mysql、postgresql、sqlserver 为例来说明这两者的区别 + +| | 数据库名称 | Schema 名称 | +| ---------- | --------------------------------------------------- | --------------------------------------------------- | +| Mysql | 创建数据库时指定的名称 | 对于 Mysql 来说,schema 名称和数据库名称是一样的 | +| Postgresql | 创建数据库时指定的名称 | 如果在 DDL 中没有指定,Postgresql 默认使用 `public` | +| Sqlserver | 如果在 DDL 中没有指定,sqlserver 默认使用 `Master` | 创建 Schema 时指定的名称 | + +填完连接信息以后可以通过**测试连接**按钮验证是否能成功连接到数据库,当然,即使连接不成功你也可以先保存下来。 + +![](img/project-create3.png) + +保存完成以后就可以在列表页看见该项目了 + +![](img/project-create4.png) + + + +## 删除项目 + +在所属分组内,组长和组员都用有删除项目的权限。 + +删除项目很简单,只需要在项目列表页的**更多**菜单中点击**删除项目**即可 + +![](img/project-delete1.png) + +删除需要二次确认,请谨慎操作 + +![](img/project-delete2.png) + + + +## 关注项目 + +由于每次查看文档都需要先在分组列表页确定分组,然后在项目列表页确定项目,最后才能查看到文档。 + +对于每个用户来说,80% 的时间可能都只是在查阅 20% 的项目文档,所以缩减浏览路径将会大大的提升用户体验。 + +**关注项目**这个功能就是在这样的背景之下产生,它位于首页 Tab,平台会记住用户最近在项目分组和关注项目这两个 Tab 的选择。 + +比如这次点击了关注项目这个 Tab,下次回到首页以后那么默认选中的就是关注项目 Tab 页 + +![](img/project-fav1.png) + + + +那么如何关注项目呢? + +只需要在项目列表页的**更多**菜单中点击对应项目的**关注项目**按钮即可 + +![](img/project-fav2.png) + +关注完成以后,项目名称前面会多一个 ☆ 标记,回到首页的关注项目 Tab 页,此时也能看到我们的关注项目了。 + +![](img/project-fav3.png) + + + +通过点击关注项目列表中的分组名称可以快速回到该项目所属的分组详情页中去。 + +如果要取消关注,只需要在更多中点击**取消关注**即可 + +![](img/project-fav4.png) + +## 手动同步 + +项目创建完成以后,就可以进入文档页面同步并生成文档了,在更多中点击**查看文档**按钮,或者你也可以直接点击项目名称快捷跳转 + +![](img/project-sync1.png) + +初次进入文档页面时,会显示空内容,这时我们需要手动点击一下 + +![](img/project-sync2.png) + +同步完成以后,系统会自动刷新数据,如下图所示 + +![](img/project-sync3.png) + + + +在该页面仍可以点击同步按钮同步文档,**但 Databasir 会自动与当前最新版本的文档做对比,如果没有结构变更,不会创建新的版本内容。** + +## 定时同步 + +每次手动同步文档需要依赖人做操作,这可能造成文档更新的不及时,定时同步则可以解决这个问题。 + +目前 Databasir 支持按项目配置定时同步规则,时间周期配置使用 cron 表达式。 + +配置页面位于项目编辑页,该页面有**基础配置**和**高级配置**两个 Tab 页,选择高级配置切换页面后就可以看到定时同步的切换按钮,该功能默认是关闭的 + +![image-20220321095725657](img/project-schedule1.png) + +启用以后会要求再输入一个 cron 表达式,比如我这里配置一个每十分钟执行一次的表达式:`0 0/10 * * * ? `,配置完成后点击保存就生效了 + +![](img/project-schedule2.png) + +同步记录可以在项目日志里面查看 + +![](img/project-schedule3.png) + +## 忽略表、列同步 + +模型文档同步中经常需要过滤某些表或字段,在 Databasir 中我们可以通过正则表达式的方式来进行规则配置。 + +配置页面位于项目编辑页,该页面有**基础配置**和**高级配置**两个 Tab 页,选中高级配置即可看见忽略配置项 + +![](img/project-ignore1.png) + +下面我配置了几个忽略规则 + +表忽略规则 + +- `flyway.*` : 忽略以 flyway 开头命名的表 +- `demo.*`:忽略以 demo 开头命名的表 +- `.*[1-9]$`:忽略以数字 1~9 结尾的表名,这种情况常用于分库分表的场景 + +列忽略规则 + +- `create_at.*`:忽略以 create_at 开头命名的列 + +![](img/project-ignore2.png) + +点击保存即可完成配置 + +## 文档导出 + +Databasir 支持多种类型的文档格式导出,该功能位于文档详情页面to,通过项目列表中点击指定项目的**查看文档**进入 + +![](img/project-export1.png) + + + +进入文档页面以后,鼠标指向**导出**按钮即可显示出目前支持的文档导出格式 + +![](img/project-export2.png) + + + +## 版本差异对比 + +如果成功同步了多个版本的文档,你可以随意的选择版本进行差异对比。 + +在文档页面,点击**显示版本差异**按钮 + +![](img/doc-diff1.png) + +启用以后会出现一个对比版本的下拉框,选择我们要对比的版本,默认情况下基础版本是最新的,也就是在对比新版本比老版本有什么变化 + +![](img/doc-diff2.png) + +选中版本以后就自动出现了差异标记 + +- 绿色:标识新增 +- 红色:标识删除 +- 黄色:标识修改 +- 灰色:标识无变化 + +![](img/doc-diff3.png) + +比如下图 + +- 删除了 document_remark 表 +- 修改了 table_column_document、table_document 表 +- 新增了 table_foreign_key_document 表 + +![](img/doc-diff4.png) + +切换到修改表的地方,可以查看具体的修改内容,比如下图就展示了 + +- type 字段的类型由 text 改为了 varchar +- comment 字段的类型由 text 改为了 varchar + +![](img/doc-diff5.png) \ No newline at end of file diff --git a/docs/README/management-user/img/user-create1.png b/docs/README/management-user/img/user-create1.png new file mode 100644 index 0000000..f0b4335 Binary files /dev/null and b/docs/README/management-user/img/user-create1.png differ diff --git a/docs/README/management-user/img/user-create2.png b/docs/README/management-user/img/user-create2.png new file mode 100644 index 0000000..5fa89f4 Binary files /dev/null and b/docs/README/management-user/img/user-create2.png differ diff --git a/docs/README/management-user/img/user-create3.png b/docs/README/management-user/img/user-create3.png new file mode 100644 index 0000000..19f3b23 Binary files /dev/null and b/docs/README/management-user/img/user-create3.png differ diff --git a/docs/README/management-user/img/user-detail1.png b/docs/README/management-user/img/user-detail1.png new file mode 100644 index 0000000..a1c210a Binary files /dev/null and b/docs/README/management-user/img/user-detail1.png differ diff --git a/docs/README/management-user/img/user-detail2.png b/docs/README/management-user/img/user-detail2.png new file mode 100644 index 0000000..7fcf24a Binary files /dev/null and b/docs/README/management-user/img/user-detail2.png differ diff --git a/docs/README/management-user/img/user-management.png b/docs/README/management-user/img/user-management.png new file mode 100644 index 0000000..9425489 Binary files /dev/null and b/docs/README/management-user/img/user-management.png differ diff --git a/docs/README/management-user/img/user-pwd1.png b/docs/README/management-user/img/user-pwd1.png new file mode 100644 index 0000000..b887e61 Binary files /dev/null and b/docs/README/management-user/img/user-pwd1.png differ diff --git a/docs/README/management-user/img/user-pwd2.png b/docs/README/management-user/img/user-pwd2.png new file mode 100644 index 0000000..2b1824c Binary files /dev/null and b/docs/README/management-user/img/user-pwd2.png differ diff --git a/docs/README/management-user/img/user-pwd3.png b/docs/README/management-user/img/user-pwd3.png new file mode 100644 index 0000000..a3862df Binary files /dev/null and b/docs/README/management-user/img/user-pwd3.png differ diff --git a/docs/README/management-user/index.md b/docs/README/management-user/index.md new file mode 100644 index 0000000..cb15b5d --- /dev/null +++ b/docs/README/management-user/index.md @@ -0,0 +1,58 @@ +# 用户管理 + +用户管理模块只有系统管理员有权限执行操作 + +![](img/user-management.png) + + + +## 新增用户 + +在用户中心,点击左上角的 + 号即可创建一个新用户 + +![](img/user-create1.png) + +进入表单页后,需要填写用户的基础信息,并为该用户设置一个密码,默认状态下是未启用状态,需要手动启用。 + +Databasir 目前不会校验邮箱的真实性,请确保邮箱填写正确 + +![](img/user-create2.png) + +点击保存以后就可以在列表页看见刚刚新增的用户了 + +![](img/user-create3.png) + + + +## 用户详情 + +有时候会想查看某个用户加入了哪些分组以及他的一些详细信息,这时候可以通过用户详情查看,该功能位于用户列表页 + +![](img/user-detail1.png) + +点击邮箱即可看到详情页,里面会展示用户的详细信息,包括加入的分组,在所属分组承担的角色等。 + +通过点击分组还可以快捷跳转到分组详情页面 + +![](img/user-detail2.png) + + + +## 修改密码 + +Databasir 目前支持两种修改密码的方式 + +- 第一种:系统管理员为指定用户重置密码,新密码通过邮件下发 +- 第二种:登录用户通过旧密码确认来修改 + +第一种方式位于用户中心页面,只有系统管理员才可以进入并有权限执行**重置密码** + +![](img/user-pwd1.png) + +第二种方式位于个人主页,可以通过右上角的头像进入,也可以通过侧边栏进入 + +![](img/user-pwd2.png) + +进入个人主页以后,点击修改密码,就可以通过旧密码验证的方式修改为新密码了 + +![](img/user-pwd3.png) \ No newline at end of file diff --git a/docs/README/user-role/user-role.md b/docs/README/user-role/user-role.md index 8a06b15..7594680 100644 --- a/docs/README/user-role/user-role.md +++ b/docs/README/user-role/user-role.md @@ -1,18 +1,65 @@ -# 用户角色说明与配置 -## 角色列表 +# 用户角色与权限 -在 Databasir 中拥有四个角色 +## 角色说明 + +Databasir 将用户分为了 4 种角色,它们分别是 - 系统管理员 - 组长 - 组员 - 游客 -为了保持系统的开放性,每一个登录系统的用户,默认就是**游客**角色,该角色拥有分组、项目文档的读取权限。 +每个角色的说明以及可配置数量见下面表格 + +| 角色 | 说明 | 数量 | +| ---------- | ------------------------------------------------ | ------------------ | +| 系统管理员 | 拥有平台所有权限 | 任意 | +| 组长 | 拥有对应分组下所有读写权限 | 一个分组最多 20 个 | +| 组员 | 拥有对应分组下部分写权限,所有读权限 | 任意 | +| 游客 | 登入用户的默认角色,能够看见所有分组以及项目文档 | 任意 | + +## 默认权限 + +由于创建分组、数据库扩展等功能只有系统管理员才有,建议为平台设置多位系统管理员。 + +- 分组模块各角色权限详情 + +| 功能 | 组员 | 组长 | 游客 | 系统管理员 | +|----------| ---- | ---- | ---- | ---------- | +| **分组模块** | 部分 | 全部 | 只读 | 全部 | +| 查看分组 | √ | √ | √ | √ | +| 编辑分组 | x | √ | x | √ | +| 删除分组 | x | √ | x | √ | +| 查看组员 | √ | √ | √ | √ | +| 添加组员 | x | √ | x | √ | +| 删除组员 | x | √ | x | √ | + +- 项目模块各角色权限详情 + +| 功能 | 组员 | 组长 | 游客 | 系统管理员 | +|----------| ---- | ---- | ---- | ---------- | +| **项目模块** | 部分 | 全部 | 只读 | 全部 | +| 查看项目 | √ | √ | √ | √ | +| 创建项目 | √ | √ | x | √ | +| 删除项目 | √ | √ | x | √ | +| 编辑项目 | √ | √ | x | √ | +| 查看讨论 | √ | √ | √ | √ | +| 新增讨论 | √ | √ | x | √ | +| 删除讨论 | x | √ | x | √ | +| 编辑描述 | √ | √ | x | √ | + +- 其余模块只有系统管理员才有 + +| 功能 | 组员 | 组长 | 游客 | 系统管理员 | +|----------| ---- | ---- | ---- | ---------- | +| **用户模块** | x | x | x | √ | +| **数据库管理** | x | x | x | √ | +| **系统邮箱管理** | x | x | x | √ | +| **登录设置** | x | x | x | √ | +| **系统日志** | x | x | x | √ | + + -系统管理员就不多说了,该角色拥有系统的所有读写权限。 -组长的话,拥有所属分组、以及分组下所有项目的读写权限。 -组员拥有所属分组下所有项目的读写权限,相对于组长,组员缺少对分组的管理权限。 diff --git a/docs/_sidebar.md b/docs/_sidebar.md index e563f47..a4a9fe7 100644 --- a/docs/_sidebar.md +++ b/docs/_sidebar.md @@ -1,15 +1,21 @@ -* 项目 - * [简介](README.md) - -* 部署方式 +* 系统部署 * [Jar 包部署](README/deploy/jar-deploy.md) * [Docker 部署](README/deploy/docker-deploy.md) -* 功能指引 - * [Github OAuth2 配置](README/github-oauth2/github-oauth2.md) - * [Gitlab OAuth2 配置](README/gitlab-oauth2/gitlab-oauth2.md) - * [扩展数据库类型](README/database-extension/database-extension.md) - * [用户角色说明与配置](README/user-role/user-role.md) +* 基本概念 + * [角色与权限](README/user-role/user-role.md) + * [分组与项目](README/group-and-project/index.md) + +* 基础操作 + * [分组管理](README/management-group/index.md) + * [项目管理](README/management-project/index.md) + * [用户管理](README/management-user/index.md) + * [邮箱设置](README/management-email/index.md) + +* 进阶操作 + * [启用 Github 第三方认证登录](README/github-oauth2/github-oauth2.md) + * [启用 Gitlab 第三方认证登录](README/gitlab-oauth2/gitlab-oauth2.md) + * [零代码扩展受支持的数据库类型](README/database-extension/database-extension.md) * 参与开发 * [构建指南](README/build.md) diff --git a/docs/databasir.ico b/docs/databasir.ico new file mode 100644 index 0000000..d7e0547 Binary files /dev/null and b/docs/databasir.ico differ diff --git a/docs/databasir.png b/docs/databasir.png new file mode 100644 index 0000000..b7eb5d9 Binary files /dev/null and b/docs/databasir.png differ diff --git a/docs/index.html b/docs/index.html index 4c783ff..a1351d5 100644 --- a/docs/index.html +++ b/docs/index.html @@ -2,27 +2,36 @@
-