{"adoption": {"forks": 768, "observed_at": "2026-08-28T04:08:15.130069+00:00", "stars": 3708}, "canonical_url": "https://ross.abutalabs.com/products/cloudgoat", "card": {"archived": false, "artifact_type": "cli-tool", "description": "CloudGoat is Rhino Security Labs' \"Vulnerable by Design\" AWS deployment tool", "domain": ["security", "penetration-testing", "cloud-computing", "developer-tools"], "enriched": true, "function": ["security", "penetration-testing", "infrastructure-as-code", "cli"], "health_score": 86, "homepage": null, "language": "Python", "license": "BSD-3-Clause", "license_family": "permissive", "maturity": "active", "member_repos": ["RhinoSecurityLabs/cloudgoat"], "name": "RhinoSecurityLabs/cloudgoat", "platform": ["python", "cli", "cross-platform"], "pushed_at": "2026-04-28T13:43:43+00:00", "repo": "RhinoSecurityLabs/cloudgoat", "stars": 3708, "tags": ["aws", "vulnerable-by-design", "cloud-security", "security-training", "pentest-lab", "terraform", "devops"], "topics": [], "urls": [], "use_cases": ["practice aws penetration testing in a safe lab", "learn cloud security misconfigurations hands-on", "deploy vulnerable aws environments for training", "simulate privilege escalation scenarios in aws", "train red and blue teams on cloud attacks", "test cloud detection and response capabilities"], "what_it_is": "CloudGoat is Rhino Security Labs' 'Vulnerable by Design' AWS deployment tool that provisions intentionally vulnerable cloud environments for security training. It lets practitioners deploy realistic AWS misconfigurations and practice offensive and defensive cloud security techniques.", "when_to_avoid": ["you need a production-hardened AWS deployment tool", "you want vulnerability scanning of existing infrastructure rather than deploying vulnerable labs", "you work outside AWS (no Azure/GCP support)"], "when_to_choose": ["you need realistic, intentionally vulnerable AWS environments for security training", "you want to practice cloud pentesting or IAM privilege escalation techniques", "you're building cloud security labs for a team or course"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cloudgoat", "repo": "RhinoSecurityLabs/cloudgoat", "role": "main", "score": 78}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "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:08:15.130069+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.130069+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:30:56.884225+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a0dc36e298a545a1ab8eafe079607ba7c8d9a3836d95cac3fe15686371b25631", "fetched_at": "2026-08-28T04:08:15.130069+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RhinoSecurityLabs/cloudgoat"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 63}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2970, "days_push": 127, "days_rel": 166, "gap_med": 35, "n_releases_24m": 8}, "score": 78, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}