Skip to main content

PendragonDI Cloud Audit

Find stale, oversized, or duplicate files in cloud storage — without touching your data.

PendragonDI Cloud Audit is a lightweight command-line tool that helps you uncover hidden cost drivers in your cloud storage buckets:

  • Unused or stale files
  • Duplicate objects
  • Oversized resources
  • Cold data that hasn’t been touched in months

It runs entirely locally using your own credentials. No file content is ever read. No objects are ever modified.


🔍 Why It Exists

Most teams store more than they realize—and rarely clean up:

  • ☁️ Cloud object stores are treated like infinite file systems
  • 💸 Many orgs pay for millions of forgotten or duplicate files
  • 🧱 Native tools are clunky, slow, or deeply integrated with billing

PendragonDI Cloud Audit gives you a fast, metadata-only snapshot of wasteful storage across AWS S3, Google Cloud Storage, and Azure Blob—before it shows up on your invoice.


✅ Features

  • 🔍 Identifies stale files based on last-modified timestamp
  • 🪞 Detects potential duplicates using file size, name, and timestamp
  • 🧾 Outputs clean, readable HTML or CSV reports
  • 💡 Estimates storage cost impact
  • 🧪 Supports limit-based sampling for fast iteration
  • 🔐 Operates with your credentials — no external access required
  • 🔒 Never reads, moves, or deletes content

🛠️ Installation

Core CLI only (no provider):

pip install pendragondi-cloud-audit

With a provider:

pip install pendragondi-cloud-audit[aws]
pip install pendragondi-cloud-audit[gcs]
pip install pendragondi-cloud-audit[azure]
pip install pendragondi-cloud-audit[all]  # for all providers

🚀 Quickstart

1. Run a scan:

pendragondi-cloud-audit scan aws my-bucket --days-stale 90 --output report.html

You can also limit the number of objects scanned:

pendragondi-cloud-audit scan gcs my-bucket --days-stale 60 --limit 10000 --output audit.csv

📄 Example Report

Total Files: 3200 • Stale: 1800 • Duplicates: 400

Results can be opened in any browser or spreadsheet tool.


🧰 Supported Providers

Provider Install Extra Credential Method
AWS S3 aws Boto3 profile / ENV
GCS gcs Application Default / keyfile
Azure azure Connection string or container URL

🔐 Security & Compliance

PendragonDI Cloud Audit was built for zero-risk analysis:

Layer Behavior
Access Uses your own credentials
Data Privacy Never reads file content
Write Behavior Read-only (no writes)
Output Local CSV or HTML report

📜 License

MIT License


🧭 Why PendragonDI?

Cloud billing surprises happen when small inefficiencies scale. PendragonDI Cloud Audit was designed to help teams see storage drift before it gets expensive.

  • No dashboard logins.
  • No waiting on IT.
  • Just insight.

🤝 Contributing

We welcome contributions!

To contribute:

  • Fork this repo and work from main
  • Use type hints and docstrings
  • Submit focused pull requests
  • Report bugs or ideas via Issues

Questions or feedback? Email us: pendragondi@pendragondi.dev


💖 Support the Project

PendragonDI Cloud Audit is free and open-source. If this tool saved you time or money, consider supporting us on GitHub:

Sponsor on GitHub

Metadata

Release files for pendragondi-cloud-audit 0.3.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pendragondi-cloud-audit 0.3.3
File Size Uploaded Provenance Actions
pendragondi_cloud_audit-0.3.3.tar.gz 10.5 kB Without provenance Details for pendragondi_cloud_audit-0.3.3.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pendragondi-cloud-audit 0.3.3
File Interpreter ABI Platform Actions
pendragondi_cloud_audit-0.3.3-py3-none-any.whl Python 3 none any Details for pendragondi_cloud_audit-0.3.3-py3-none-any.whl

Total release size: 22.5 kB

Release files / pendragondi_cloud_audit-0.3.3.tar.gz

Download URL pendragondi_cloud_audit-0.3.3.tar.gz
Size 10.5 kB
Tags Source
SHA-256 checksum
How to use checksums
479d2b9eb0f4fbdbb2701b01b83ed7135f00067ef2a102acbf51fbe873a52422
BLAKE2b-256 checksum
How to use checksums
ee6bbcfc0e19dff111447fb7da904ddb6760c4d47f0e8f2559224d0d81fa94d1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Release files / pendragondi_cloud_audit-0.3.3-py3-none-any.whl

Download URL pendragondi_cloud_audit-0.3.3-py3-none-any.whl
Size 12.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a7ba0244c8e873f0ad2423421baf03b55cd4edcbb39b0a8ca954bf041b776cb7
BLAKE2b-256 checksum
How to use checksums
e476e19440bf1aa6b8553dab7644abe0f7fcea1b5e3e6bbe0a097834b677534e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.11.9

Security for pendragondi-cloud-audit 0.3.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page