{"adoption": {"forks": 220, "observed_at": "2026-08-28T04:05:35.651401+00:00", "stars": 1782}, "canonical_url": "https://ross.abutalabs.com/products/openaev", "card": {"archived": false, "artifact_type": "application", "description": "Open Adversarial Exposure Validation Platform", "domain": ["security"], "enriched": true, "function": ["security", "monitoring", "testing", "workflow-automation", "self-hosted"], "health_score": 100, "homepage": "https://openaev.io", "language": "Java", "license": "NOASSERTION", "license_family": "other", "maturity": "active", "member_repos": ["OpenAEV-Platform/openaev"], "name": "OpenAEV-Platform/openaev", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2026-08-26T16:24:43+00:00", "repo": "OpenAEV-Platform/openaev", "stars": 1782, "tags": ["adversary-emulation", "breach-and-attack-simulation", "purple-team", "exposure-validation", "cyber-drills", "attack-simulation", "opencti-integration", "devops", "automation", "docker", "web-server"], "topics": ["attack-simulation", "breach-simulator", "purple-team", "cybersecurity", "adversary-emulation", "aev", "adversary-exposure-validation"], "urls": [], "use_cases": ["run breach and attack simulation campaigns against my infrastructure", "validate whether our security controls detect adversary techniques", "schedule purple team exercises with technical and strategic scenarios", "test incident response and crisis communication with tabletop exercises", "measure security gaps against real threat intelligence from OpenCTI", "automate adversarial exposure validation continuously"], "what_it_is": "OpenAEV is an open-source platform for planning, scheduling, and running cyber adversary simulation campaigns and security exercises, from technical attack emulation to strategic tabletop drills. It integrates with OpenCTI for threat context and supports injectors for email, SMS, social media, and other channels.", "when_to_avoid": ["you only need a vulnerability scanner or pentest tool rather than simulation orchestration", "you want a lightweight CLI rather than a full self-hosted platform", "you need enterprise features like advanced reporting without an EE license"], "when_to_choose": ["you need an open-source alternative to commercial BAS/AEV platforms", "your team runs purple team or adversary emulation programs and wants scenario management", "you already use OpenCTI and want threat-informed simulation", "you need to orchestrate injects across email, SMS, and other channels for exercises"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/openaev", "repo": "OpenAEV-Platform/openaev", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "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:35.651401+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:35.651401+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:24:20.615207+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "7f909bf808c799e5019b716630fd9ed29bb3d51bb016b3a42508882c6811a8b3", "fetched_at": "2026-08-28T04:05:35.651401+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenAEV-Platform/openaev"}, {"content_hash": "02eabd3fa9386b74af61a5d2fe0c4d0df620ec2cec201f105ef9d2216e09c8be", "fetched_at": "2026-08-29T11:02:56.000220+00:00", "kind": "homepage", "missing": false, "url": "https://openaev.io"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3642, "days_push": 7, "days_rel": 12, "gap_med": 3, "n_releases_24m": 124}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}