Greenmask v0.1.0 版本发布
由 Greenmask.io 于 2024-01-11 发布
相关开源项目
PostgreSQL 转储和混淆工具
我们很高兴地宣布 Greenmask v0.1.0 版本的发布,这标志着第一个可用于生产的版本。此版本解决了各种错误修复,引入了改进,并包括了文档重构以提高清晰度。
Greenmask 概述
主要特性
- 跨平台支持:Greenmask 使用 Go 开发,不受平台依赖性的限制。
- 类型安全数据库操作:确保数据验证和编码,维护完整性。
- 转换验证:保证数据转换的正确性和可维护性。
- 分区表支持:简化分区表的配置。
- 无状态且向后兼容:与标准的 PostgreSQL 实用程序兼容。
- 并行执行:提高转储和恢复过程的效率。
- 多种存储选项:提供对本地和远程存储解决方案的支持。
用例
- 非常适合日常备份和恢复任务。
- 有助于为暂存环境和分析进行匿名化和数据掩码。
发行说明
改进
- 改进了自定义转换器交互的详细程度,累积 stderr 数据并批量转发,而不是逐个写入。
- 为 list-transformers 命令添加了位置参数,允许检索特定的转换器信息(例如,
greenmask list-transformers RandomDate
)。
- 添加了版本参数 --version,用于打印 greenmask 实用程序的版本
- 为 Int 和 Float 转换器添加了数值参数支持,但需要注意的是,在少数情况下,可能会导致超出范围的错误。
更改
- 将依赖项更新到较新版本。
- 通过利用 stdlib 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 转换器在验证期间正确地编组和解组值的问题。
- 为 SetNull 转换器引入了 Nullable 属性,以增强 NOT NULL 约束验证。
- 解决了 validate 命令的文本换行问题。
- 修复了由于 Linux 平台依赖性导致的 Windows 构建失败问题。
- 更正了与自定义转换器交互期间的 stdout readline 缓冲区读取。
- 修复了集成测试。
生态系统变化
- 为整个项目实施了 CI/CD。
- 在 Docker-compose 中建立了一个用户友好的 playground,包括
- 部署了 Minio 存储容器。
- 包含原始数据库(Adventure Works)和转换后的(空数据库)的 PostgreSQL 容器。
- Greenmask 容器本身。
- 重构了当前的 readme 文件。
社区参与
我们高度重视来自 PostgreSQL 社区的反馈和建议。您的见解和测试对于增强 Greenmask 的健壮性和实用性至关重要。
有用链接