{"adoption": {"forks": 3670, "observed_at": "2026-08-28T04:11:10.007605+00:00", "stars": 15537}, "canonical_url": "https://ross.abutalabs.com/products/awx", "card": {"archived": false, "artifact_type": "application", "description": "AWX provides a web-based user interface, REST API, and task engine built on top of Ansible. It is one of the upstream projects for Red Hat Ansible Automation Platform.", "domain": ["infrastructure-as-code", "self-hosted", "developer-tools"], "enriched": true, "function": ["workflow-automation", "api-framework", "deployment", "configuration-management", "self-hosted"], "health_score": 87, "homepage": null, "language": "Python", "license": "NOASSERTION", "license_family": "other", "maturity": "maintenance", "member_repos": ["ansible/awx"], "name": "ansible/awx", "platform": ["python", "self-hosted"], "pushed_at": "2026-08-27T00:01:54+00:00", "repo": "ansible/awx", "stars": 15537, "tags": ["ansible", "automation-controller", "rest-api", "django", "task-engine", "it-automation", "automation", "devops", "web-server", "docker", "kubernetes"], "topics": ["python", "ansible", "django", "django-rest-framework", "awx", "automation", "reactjs", "hacktoberfest"], "urls": [], "use_cases": ["run ansible playbooks from a web ui", "schedule and manage automation jobs with a rest api", "self-hosted alternative to ansible tower", "centralize it automation for a team", "manage ansible credentials and inventories", "trigger automation via api or webhook"], "what_it_is": "AWX is a web-based UI, REST API, and task engine built on top of Ansible, serving as the upstream project for Red Hat Ansible Automation Platform. It lets teams run, schedule, and manage Ansible playbooks through a centralized interface.", "when_to_avoid": ["you need guaranteed timely releases - the project paused releases in 2024 for a large refactoring", "you want a lightweight CLI-only automation tool without a web stack", "you require commercial support - use Red Hat Ansible Automation Platform instead"], "when_to_choose": ["you want a free, open-source web UI and API on top of Ansible", "you need role-based access, scheduling, and credential management for playbooks", "you are building toward or aligning with Ansible Automation Platform"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/awx", "repo": "ansible/awx", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "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:11:10.007605+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:10.007605+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:05:40.690741+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "3f6c199a1c9466e83d694b3048ebdf64510d5c8235ad459a4bb6ce384cab9488", "fetched_at": "2026-08-28T04:11:10.007605+00:00", "kind": "readme", "missing": false, "url": "https://github.com/ansible/awx"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3395, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}