{"adoption": {"forks": 207, "observed_at": "2026-08-28T04:05:39.268088+00:00", "stars": 1808}, "canonical_url": "https://ross.abutalabs.com/products/bucket-stream", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Find interesting Amazon S3 Buckets by watching certificate transparency logs.", "domain": ["security", "osint", "cloud-computing", "developer-tools"], "enriched": true, "function": ["osint", "security", "web-scraping", "cli"], "health_score": 25, "homepage": "https://www.darkport.co.uk", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["eth0izzle/bucket-stream"], "name": "eth0izzle/bucket-stream", "platform": ["python", "cli", "windows"], "pushed_at": "2025-02-28T15:44:26+00:00", "repo": "eth0izzle/bucket-stream", "stars": 1808, "tags": ["s3-buckets", "certificate-transparency", "certstream", "red-team", "reconnaissance", "aws", "cybersecurity", "linux", "macos"], "topics": ["cyber", "cyint", "amazon-s3", "certificate-transparency", "certstream"], "urls": [], "use_cases": ["find public s3 buckets from certificate transparency logs", "osint reconnaissance for exposed aws s3 storage", "discover misconfigured cloud storage buckets in real time", "red team tooling for finding open s3 buckets", "audit whether company domains have publicly accessible s3 buckets", "monitor certstream for newly registered domains and check bucket permutations"], "what_it_is": "A Python CLI tool that monitors certificate transparency logs via certstream and discovers public Amazon S3 buckets by generating permutations of domains from newly issued certificates. It was created to demonstrate the risks of misconfigured public S3 buckets.", "when_to_avoid": ["you need a maintained tool - the project is explicitly no longer maintained", "you need broad cloud storage scanning beyond Amazon S3", "you need authenticated, large-scale bucket enumeration without rate limits", "you need a GUI or managed service rather than a CLI"], "when_to_choose": ["you want to demonstrate or test exposure of public S3 buckets during authorized security assessments", "you need real-time discovery of buckets tied to newly issued TLS certificates", "you want a lightweight Python tool for S3-focused OSINT"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/bucket-stream", "repo": "eth0izzle/bucket-stream", "role": "main", "score": 36}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:39.268088+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:21:22.586315+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "f31c85166e96b92f3aadf6fbda9bba46b5a811d87f67c9160422bdca275588fa", "fetched_at": "2026-08-28T04:05:39.268088+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eth0izzle/bucket-stream"}, {"content_hash": "25170f71b6bf6f63227cca07455c5e4e6c6be1d3696bb1c5ebf6f19c2d9f14e8", "fetched_at": "2026-08-29T11:00:23.331743+00:00", "kind": "homepage", "missing": false, "url": "https://www.darkport.co.uk"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 9, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3199, "days_push": 551, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 36, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}