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
🧭 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:
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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.