Skip to main content

Unified DLP scanner for SaaS sources — secret detection (trufflehog, gitleaks, native regex) plus PII detection (pleno-anonymize). Bundles saas-retriever for API-driven content collection: GitHub, GitLab, Bitbucket, Slack, Notion, Confluence, Jira.

Project description

pleno-dlp (Python)

Unified DLP scanner for SaaS content — secrets (trufflehog / gitleaks / native regex) and PII (delegating to pleno-anonymize). The SaaS source layer (formerly the standalone saas-retriever package) is vendored in-tree from 0.7.0: pip install pleno-dlp pulls one wheel that exposes both the pleno-dlp and the saas-retriever console scripts and lets you from saas_retriever import … without any extra dependency.

The Go binary in this repo (cmd/pleno-dlp) remains for filesystem-only scans; the Python package is the path forward for SaaS.

Install

uv tool install pleno-dlp
# or
pipx install pleno-dlp

# Add the PII backend (pulls pleno-anonymize):
uv tool install 'pleno-dlp[pii]'

Usage

# Secret scan over an entire GitHub org (code + issues + PRs across every repo)
GITHUB_TOKEN=ghp_... pleno-dlp scan github --owner plenoai

# Scan a single repo, only code, with trufflehog verification
pleno-dlp scan github --owner plenoai --repo saas-retriever \
    --resource code --backend trufflehog

# Issue + PR conversations only, PII detection (requires pleno-anonymize)
pleno-dlp scan github --owner plenoai \
    --resource issues --resource prs --backend pii

# SARIF output for GitHub code-scanning ingestion
pleno-dlp scan github --owner plenoai \
    --format sarif > findings.sarif

Auth resolution: --tokenGITHUB_TOKEN env var → gh auth token. Anonymous works for public content but is rate-limited to 60 req/h.

Backends

Backend Class Verifies System dep
trufflehog secret yes (per-detector) trufflehog CLI on PATH
gitleaks secret no gitleaks CLI on PATH
native secret no none — bundled regex (AWS, GitHub PAT, Slack bot, OpenAI, Anthropic)
pii PII n/a pleno-anonymize (installed via pleno-dlp[pii] extra)

Connectors

Anything saas-retriever provides. Today: github with org-wide enumeration plus per-repo code / issues / PRs (comments and unified diffs). Slack / Jira / Confluence / Notion / GitLab / Bitbucket land as standalone API connectors in subsequent saas-retriever releases.

Release

Tag py-vX.Y.Z triggers PyPI trusted publishing via GitHub Actions.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pleno_dlp-0.7.0.tar.gz (73.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pleno_dlp-0.7.0-py3-none-any.whl (93.5 kB view details)

Uploaded Python 3

File details

Details for the file pleno_dlp-0.7.0.tar.gz.

File metadata

  • Download URL: pleno_dlp-0.7.0.tar.gz
  • Upload date:
  • Size: 73.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pleno_dlp-0.7.0.tar.gz
Algorithm Hash digest
SHA256 6ec2df6afa86ebc60c1f3ea99b476405e0b95ea3394b69c40a73fbf368666a4a
MD5 dc914ffba7ae061edd7105d3a7ae6fb2
BLAKE2b-256 6c7882d6be8240c1823d4d7fbf4a92fb419a3c4867c535f643f011b396955496

See more details on using hashes here.

Provenance

The following attestation bundles were made for pleno_dlp-0.7.0.tar.gz:

Publisher: release-py.yml on plenoai/pleno-dlp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pleno_dlp-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: pleno_dlp-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 93.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for pleno_dlp-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 08140dc95f18526804e6c72aaa4e4a0623a7b92072899d39c507bae4de01919d
MD5 44a2965644ace65e7928571ae1ae925b
BLAKE2b-256 05177f7ac5935382cc5d560eb9def1b3c3ef4308ae2e660c4b7f8731039b0a99

See more details on using hashes here.

Provenance

The following attestation bundles were made for pleno_dlp-0.7.0-py3-none-any.whl:

Publisher: release-py.yml on plenoai/pleno-dlp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page