Skip to content

feat: add PostgreSQL Anonymizer container image - #346

Open
pchovelon wants to merge 1 commit into
cloudnative-pg:mainfrom
pchovelon:dev/postgresql-anonymizer
Open

pchovelon wants to merge 1 commit into
cloudnative-pg:mainfrom
pchovelon:dev/postgresql-anonymizer

Conversation

@pchovelon

Copy link
Copy Markdown

Extension

PostgreSQL Anonymizer is an extension to mask or replace personally identifiable information (PII) or commercially sensitive data from a Postgres database.

The project has a declarative approach of anonymization. This means you can declare the masking rules using the PostgreSQL Data Definition Language (DDL) and specify your anonymization policy inside the table definition itself.

Closes #345


Contributor checklist

  • My commits are signed off for DCO
    compliance (git commit -s).
  • Experimental commits have been squashed into a single, well-formed commit.
  • This PR targets the main branch of the upstream repository.
  • A New Extension Proposal
    issue exists and is referenced via Closes #345 above.
  • The commit message follows the format:
    feat: add `<extension-name>` container image.
  • The Debian package was verified to exist in the main component on both
    Debian stable (trixie) and oldstable (bookworm) via apt search.
  • The extension was scaffolded with task create-extension NAME=<ext> and all
    TODO comments in the generated files were resolved.
  • metadata.hcl sets the correct package (full Debian version) and, when
    create_extension = true, the matching sql (catalog) version.
  • create_extension is set correctly (false for PostgreSQL modules with
    no .control file, verified with dpkg -L).
  • The renovate: annotations in metadata.hcl and README.md are present
    and intact (suite=, depName=, extractVersion=).
  • Every component in the image is covered by a license on the
    CNCF Allowlist;
    SPDX licenses in metadata.hcl are accurate.
  • task checks:all passes locally.
  • Full E2E passes: task e2e:test:full TARGET="<extension-name>".
  • README.md is complete and includes a working Cluster example (plus a
    Database example with CREATE EXTENSION when create_extension = true).
  • An entry for the new extension folder was added to
    CODEOWNERS
    with the component owner's GitHub handle(s).
  • A distribution-points entry for the new image was added under
    repository.release in
    SECURITY-INSIGHTS.yml.
  • I confirm my commitment to maintain this extension on behalf of the
    CloudNativePG community.

Maintainer review checklist

  • The linked proposal issue is approved (label new-extension) and the
    Closes #<id> reference is correct.
  • CI is green: the bake workflow built the new target for the full
    pgVersions × distributions × {amd64, arm64} matrix.
  • DCO check passes and history is a single clean commit with the required
    feat: add ... message format.
  • License compliance reviewed: all redistributed components (extension +
    transitive/system libs) are on the CNCF Allowlist; SPDX licenses match.
  • metadata.hcl reviewed: package/sql versions, create_extension,
    runtime settings (shared_preload_libraries, *_path, env,
    required_extensions) and behavior flags are correct.
  • renovate: annotations are intact so automated version PRs will track
    the package going forward.
  • Dockerfile reviewed: final stage is FROM scratch and contains only the
    expected artifacts; the USER 65532:65532 directive matches the nonroot
    convention.
  • E2E / Chainsaw tests pass: the extension is registered (when
    create_extension = true), or the Cluster reaches Healthy with the image
    mounted for preload-only modules.
  • README.md is clear and its Cluster example (and Database example
    when create_extension = true) are valid.
  • CODEOWNERS entry is present and the component owner(s) accept the
    long-term maintenance commitment.
  • SECURITY-INSIGHTS.yml has a matching distribution-points entry for
    the new image.
  • PR targets main and is ready to merge.

@pchovelon
pchovelon requested a review from a team as a code owner September 17, 2026 16:26
PostgreSQL Anonymizer is an extension to mask or replace
personally identifiable information (PII) or commercially
sensitive data from a Postgres database

Closes cloudnative-pg#345

Signed-off-by: Pierrick Chovelon <pierrick.chovelon@dalibo.com>
@pchovelon
pchovelon force-pushed the dev/postgresql-anonymizer branch from 048dc68 to 3b5a446 Compare September 17, 2026 16:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[New Extension]: PostgreSQL Anonymizer

1 participant