Greenmask v0.1.0 发布
发布于 2024-01-11,作者 Greenmask.io
相关开源项目
PostgreSQL 备份和混淆工具
我们很高兴地宣布 Greenmask v0.1.0 的发布,这是我们首个生产就绪的版本。本次发布解决了各种 bug,进行了改进,并重构了文档以增强清晰度。
Greenmask 概述
主要功能
- 跨平台支持:Greenmask 使用 Go 开发,没有平台依赖。
- 类型安全的数据库操作:确保数据验证和编码,维护数据完整性。
- 转换验证:保证数据转换的准确性和可维护性。
- 分区表支持:简化分区表的配置。
- 无状态且向后兼容:兼容标准的 PostgreSQL 工具。
- 并行执行:提高备份和恢复过程的效率。
- 多种存储选项:支持本地和远程存储解决方案。
用例
- 非常适合例行备份和恢复任务。
- 有助于在暂存环境和分析中使用数据匿名化和数据屏蔽。
发布说明
改进
- 提高了自定义转换器交互的详细程度,累积 stderr 数据并分批转发,而不是逐条写入。
- 为 list-transformers 命令添加了位置参数,允许检索特定的转换器信息(例如,
greenmask list-transformers RandomDate
)。
- 添加了 --version 参数,用于打印 greenmask 工具的版本。
- 为 Int 和 Float 转换器添加了 Numeric 参数支持,但需要注意,在少数情况下可能导致超出范围的错误。
更新内容
- 将依赖项更新到新版本。
- 通过使用标准库的 JSON 编码器/解码器,增强了 JSON 行交互协议的稳定性。
- 修改了向自定义转换器发送表元数据的方法;现在,它通过 stdin 在第一行以 JSON 格式发送,而不是通过命令行参数提供。
- 重构了模板函数命名。
- 重写了 NoiseDate 转换器的实现,以提高稳定性和可预测性。
- 将 Dict 转换器的 fail_not_matched 参数的默认值更改为 true。
- 重写了 Hash 转换器,现在提供 salt 参数并接收 base64 编码的 salt。如果未提供 salt,则会随机生成一个。
- 为 NoiseDate 和 RandomDate 转换器的 truncate 参数添加了验证器,如果提供的值无效,则发出警告。
- 增加了参数验证警告的详细程度,现在已将警告正确转发到 stdout。
修复
- 解决了 pgx 驱动程序连接泄露问题。
- 修复了 S3 存储的备份删除失败问题。
- 修正了 Greenmask 工具的 cobra 自动完成功能。
- 修复了 NOT NULL 约束验证。
- 解决了 JSON API 交互问题,这些问题之前曾导致死锁和超时。
- 修复了二进制参数的编码-解码,确保值能被正确转发到自定义转换器。
- 修复了 RandomChoice 转换器在验证期间正确地 marshaling 和 unmarshaling 值。
- 为 SetNull 转换器引入了 Nullable 属性,以增强 NOT NULL 约束验证。
- 解决了 validate 命令的文本换行问题。
- 修复了由于 Linux 平台依赖项导致的 Windows 构建失败问题。
- 修正了与自定义转换器交互期间 stdout readline 缓冲区读取的问题。
- 修复了集成测试。
生态系统变更
- 为整个项目实现了 CI/CD。
- 在 Docker-compose 中建立了一个用户友好的 Playground,包括:
- 部署的 Minio 存储容器。
- 包含原始数据库(Adventure Works)和转换后的数据库(空数据库)的 PostgreSQL 容器。
- Greenmask 容器本身。
- 重构了当前的 readme 文件。
社区参与
我们非常重视 PostgreSQL 社区的反馈和建议。您的见解和测试对于增强 Greenmask 的健壮性和实用性至关重要。
有用链接