Greenmask v0.1.0 版本發布

發布於 2024-01-11,作者 Greenmask.io
相關開源專案

PostgreSQL Dump 和混淆工具

我們很高興地宣布 Greenmask v0.1.0 的發布,標誌著第一個可投入生產的版本。此版本解決了各種錯誤修復,引入了改進,並包括了文件重構以提高清晰度。

Greenmask 概覽

主要功能

  • 跨平台支援:Greenmask 以 Go 開發,不受平台依賴性的限制。
  • 類型安全資料庫操作:確保資料驗證和編碼,保持完整性。
  • 轉換驗證:保證正確且可維護的資料轉換。
  • 分割資料表支援:簡化分割資料表的配置。
  • 無狀態和向後相容:與標準 PostgreSQL 實用程式相容。
  • 平行執行:提高傾印和還原過程的效率。
  • 多種儲存選項:提供對本地和遠端儲存解決方案的支援。

使用案例

  • 非常適合例行備份和還原任務。
  • 有助於用於 staging 環境和分析的匿名化和資料遮罩。

發布說明

改進

  • 改進了自訂轉換器互動的詳細程度,累積 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 轉換器,以便在驗證期間正確地 marshal 和 unmarshal 值。
  • 為 SetNull 轉換器引入了 Nullable 屬性,以增強 NOT NULL 約束驗證。
  • 解決了 validate 命令的文字換行問題。
  • 修復了由於 Linux 平台依賴性導致的 Windows 上的建置失敗。
  • 更正了與自訂轉換器互動期間的 stdout readline 緩衝區讀取。
  • 修復了整合測試。

生態系統變更

  • 為整個專案實作了 CI/CD。
  • 在 Docker-compose 中建立了一個使用者友善的遊樂場,包括
  • 已部署 Minio 儲存容器。
  • PostgreSQL 容器,包含原始資料庫 (Adventure Works) 和轉換後的(空資料庫)。
  • Greenmask 容器本身。
  • 重構了目前的 readme 檔案。

社群參與

我們高度重視 PostgreSQL 社群的回饋和建議。您的見解和測試對於增強 Greenmask 的穩健性和實用性至關重要。

實用連結