Bytebase 是一款数据库 DevOps 和 CI/CD 工具,专为开发者、DBA 和平台工程团队设计。虽然它提供了直观的 GUI 来管理数据库 schema 变更和访问控制,但有些团队可能希望使用 Bytebase API 将 Bytebase 集成到现有的 DevOps 平台中。
在之前的教程中,我们演示了如何使用 Bytebase API:
本教程将重点介绍如何在 Bytebase 中获取和过滤审计日志,如果你没有看过前面的教程也没关系。
(一)准备工作
- 安装好 Docker
- Node.js >= v18
(二)启动 Bytebase
确保 Docker 进程正在运行。通过以下命令启动 Bytebase:
(2.23.0 可替换成当前版本)
docker run --rm --init \
--name bytebase \
--publish 8080:8080 --pull always \
--volume ~/.bytebase/data:/var/opt/bytebase \
bytebase/bytebase:2.23.0
Bytebase 正通过 Docker 运行,可以在localhost:8080
访问。注册第一个管理员账户,它将被授予工作空间管理员
权限。
(三)创建服务账户
以管理员用户身份登录,进入安全与策略 > 用户与组。单击
+
添加用户,输入api-example
,选择本教程所需的DBA
角色,然后单击确认。找到新创建的服务账户,点击复制服务密钥。我们将使用此标记来验证 API 调用。
(四)运行演示
- 进入 Bytebase API Example repo 并克隆它。
将
env-template.local
复制到.env.local
。更新变量。NEXT_PUBLIC_BB_URL
:http://localhost:8080
NEXT_PUBLIC_BB_SERVICE_ACCOUNT
:api-example
NEXT_PUBLIC_BB_SERVICE_KEY
:上一步复制的服务密钥
- 进入子文件夹
audit-log
,运行以下命令启动 demo 程序:
pnpm i && pnpm dev
在浏览器中打开 demo 程序,你将看到以下页面:
为增强 demo 的真实性,访问 Bytebase:
- 进入 SQL 编辑器查询数据库
- 进入特定项目,对数据库进行一些更改,例如创建数据库、创建表格、添加一些数据。
(五)获取和过滤审计日志
让我们深入研究一下代码:
在
page.tsx
中,我们选择任何项目前,都通过调用/v1/projects API
获取所有项目。
Bytebase 有两级审计日志: 工作空间和项目。用户第一次访问 demo 时,我们通过 /v1/auditLogs:search API 获取工作空间级审计日志。默认时间范围为 7 天前至今。你也可以通过过滤器在请求正文中传递 startTime 和 endTime 来调整时间范围。const filter = `create_time >= '${startDate}' && create_time <= '${endDate}'`;
- 在
db-fetch-user-permission.tsx
中,如果用户选择了特定项目,我们将通过 /v1/projects/PROJECT_ID/auditLogs:search API 获取项目级审计日志。时间范围过滤器与工作空间级审计日志相同。
(六)总结
恭喜你使用 Bytebase API 成功创建了数据库审计查看器。同理,你也可以通过调用 /v1/auditLogs:export API 导出日志。
💡 更多资讯,请关注 Bytebase 公号:Bytebase
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。