Skip to content

Releases: GreenmaskIO/greenmask

v0.1.3

07 Feb 14:49
e69af71
Compare
Choose a tag to compare

Greenmask v0.1.3 - PostgreSQL Dump and Obfuscation Tool

This release introduces bug fixes.

Fixes:

  • Fixed Json transformer: now it correctly parses operations fields #4
  • Fixed database connection string builder in pg_restore and pg_dump

Special thanks:

@janmeier

v0.1.2

30 Jan 12:45
ec383ad
Compare
Choose a tag to compare

Greenmask v0.1.2 - PostgreSQL Dump and Obfuscation Tool

This release introduces bug fixes.

Fixes:

  • Fixed bug when raw COPY lines were parsed incorrectly #2
  • Fixed --version parameter behavior
  • Fixed --dbname parameter - now it correctly works with PostgreSQL connection string in URI format postgresql:///

Special thanks:

@jeffsutherland-bluesky

v0.1.1

24 Jan 16:36
a8770cf
Compare
Choose a tag to compare

Greenmask v0.1.1 - PostgreSQL Dump and Obfuscation Tool

This release introduces improvements.

Improvements

  • New Transformers: Expanded the list of available transformers for variety of business domains:

    Transformer Description
    RandomLatitude Generates a random latitude value.
    RandomLongitude Generates a random longitude value.
    RandomUnixTime Generates a random Unix timestamp.
    RandomMonthName Generates the name of a random month.
    RandomYearString Generates a random year as a string.
    RandomDayOfWeek Generates a random day of the week.
    RandomDayOfMonth Generates a random day of the month.
    RandomCentury Generates a random century.
    RandomTimezone Generates a random timezone.
    RandomEmail Generates a random email address.
    RandomMacAddress Generates a random MAC address.
    RandomDomainName Generates a random domain name.
    RandomURL Generates a random URL.
    RandomUsername Generates a random username.
    RandomIPv4 Generates a random IPv4 address.
    RandomIPv6 Generates a random IPv6 address.
    RandomPassword Generates a random password.
    RandomWord Generates a random word.
    RandomSentence Generates a random sentence.
    RandomParagraph Generates a random paragraph.
    RandomCCType Generates a random credit card type.
    RandomCCNumber Generates a random credit card number.
    RandomCurrency Generates a random currency code.
    RandomAmountWithCurrency Generates a random monetary amount with currency.
    RandomTitleMale Generates a random title for males.
    RandomTitleFemale Generates a random title for females.
    RandomFirstName Generates a random first name.
    RandomFirstNameMale Generates a random male first name.
    RandomFirstNameFemale Generates a random female first name.
    RandomLastName Generates a random last name.
    RandomName Generates a full random name.
    RandomPhoneNumber Generates a random phone number.
    RandomTollFreePhoneNumber Generates a random toll-free phone number.
    RandomE164PhoneNumber Generates a random phone number in E.164 format.
    RealAddress Generates a real address

New contributors

v0.1.0

09 Jan 16:21
Compare
Choose a tag to compare

Greenmask v0.1.0 - PostgreSQL Dump and Obfuscation Tool

We are excited to announce the release of Greenmask v0.1.0, marking the first production-ready version. This release addresses various bug fixes, introduces improvements, and includes documentation refactoring for enhanced clarity.

Improvements

  • Improved verbosity in custom transformer interaction, accumulating stderr data and forwarding it in batches instead of writing it one by one.
  • Added positional arguments for the list-transformers command, allowing specific transformer information retrieval (e.g., greenmask list-transformers RandomDate).
  • Added version parameter --version that prints greenmask utility version
  • Added Numeric parameters support for Int and Float transformers, with the caveat that in a few cases, it may lead to out-of-range errors.

Changes

  • Updated dependencies to newer versions.
  • Enhanced the stability of the JSON line interaction protocol by utilizing the stdlib JSON encoder/decoder.
  • Modified the method for sending table metadata to custom transformers; now, it is sent via stdin in the first line in JSON format instead of providing it via command arguments.
  • Refactored template functions naming.
  • Rewritten NoiseDate transformer implementation for improved stability and predictability.
  • Changed the default value for the Dict transformer fail_not_matched parameter to true.
  • Rewritten Hash transformer, now providing a salt parameter and receiving a base64 encoded salt. If a salt is not provided, it generates one randomly.
  • Added validator for NoiseDate and RandomDate transformers for the truncate parameter, issuing a warning if the provided value is invalid.
  • Increased verbosity of parameter validation warnings, now properly forwarding warnings to stdout.

Fixes

  • Resolved pgx driver connection leakage issue.
  • Fixed deletion failure of dumps for S3 storage.
  • Corrected cobra autocompletion for the Greenmask utility.
  • Fixed NOT NULL constraint validation.
  • Addressed JSON API interaction issues that previously caused deadlocks and timeouts.
  • Fixed encode-decoding for binary parameters, ensuring accurate forwarding of values to custom transformers.
  • Fixed the RandomChoice transformer to correctly marshal and unmarshal values during validation.
  • Introduced the Nullable property for the SetNull transformer to enhance NOT NULL constraint validation.
  • Resolved text wrapping issues for the validate command.
  • Fixed build failures on Windows due to Linux platform dependencies.
  • Corrected stdout readline buffer reading during interaction with custom transformers.
  • Fixed integration tests.

Ecosystem Changes

  • Implemented CI/CD for the entire project.
  • Established a user-friendly playground in Docker-compose, including:
    • Deployed Minio storage container.
    • PostgreSQL container containing both the original database (Adventure Works) and the transformed (empty DB).
    • Greenmask container itself.
  • Refactored current readme files.

New contributors

Greenmask Beta Release v0.1.0-beta

01 Dec 23:21
Compare
Choose a tag to compare
Pre-release

Greenmask Beta Release v0.1.0-beta - PostgreSQL Dump and Obfuscation Tool

We are excited to announce the first beta release of Greenmask, a versatile and open-source utility for PostgreSQL logical backup dumping, obfuscation, and restoration. This release introduces a range of features aimed at enhancing database management and security:

  • Key Features:

    • Cross-Platform Support: Fully written in Go without platform dependencies.
    • Type-Safe Database Operations: Validates and encodes data, maintaining integrity.
    • Transformation Validation: Ensures data transformations are correct and maintainable.
    • Partitioned Table Support: Simplifies configuration for partitioned tables.
    • Stateless and Backward Compatible: Works alongside standard PostgreSQL utilities.
    • Parallel Execution: Enhances efficiency in dumping and restoration processes.
    • Multiple Storage Options: Supports both local (directory) and remote (S3-like) storage solutions.
  • Use Cases:

    • Ideal for routine backup and restoration tasks.
    • Facilitates anonymization and data masking for staging environments and analytics.
  • Our Vision:

    • Aiming to become a core component in the Greenmask environment for managing obfuscation processes with a future UI-based solution.
  • Compatibility:

    • Fully compatible with PostgreSQL version 11 and higher.
  • Links:

As this is a beta release, we encourage feedback and suggestions to improve and refine Greenmask. Your contribution and testing will be invaluable in making Greenmask a robust tool for PostgreSQL users.


Additional Instructions for macOS Users:

For those downloading greenmask-macos-amd64 or greenmask-macos-arm64, please follow these steps to ensure proper execution:

  1. Change File Permissions: After downloading, modify the file permissions to make it executable using the command:

    chmod 777 greenmask-macos-[version]
    

    Replace [version] with amd64 or arm64 as per your download.

  2. Remove Quarantine Attribute: macOS may apply a quarantine attribute to downloaded files. Remove it by executing:

    xattr -d com.apple.quarantine greenmask-macos-[version]
    

Please execute these steps in your Terminal. Note that using chmod 777 gives full read, write, and execute permissions, which is necessary for operation but should be done cautiously. Ensure you trust the source of the file before proceeding.