{"adoption": {"forks": 1226, "observed_at": "2026-08-28T04:09:09.606681+00:00", "stars": 5087}, "canonical_url": "https://ross.abutalabs.com/products/oauth2_proxy", "card": {"archived": true, "artifact_type": "service", "description": "A reverse proxy that provides authentication with Google, Github or other provider", "domain": ["security", "web-development", "self-hosted", "backend"], "enriched": true, "function": ["auth", "proxy", "http-server", "security"], "health_score": 10, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["bitly/oauth2_proxy"], "name": "bitly/oauth2_proxy", "platform": ["cross-platform", "go"], "pushed_at": "2019-02-04T22:22:35+00:00", "repo": "bitly/oauth2_proxy", "stars": 5087, "tags": ["oauth2", "reverse-proxy", "authentication", "sso", "archived", "single-sign-on", "linux", "macos", "docker"], "topics": [], "urls": [], "use_cases": ["add google login in front of an internal web app", "protect a service behind github oauth authentication", "require sso for self-hosted dashboards", "restrict access to apps by email domain", "put an auth layer in front of kubernetes ingress services"], "what_it_is": "A Go reverse proxy and static file server that adds OAuth2 authentication (Google, GitHub, Azure, GitLab, and others) in front of web applications, validating users by email, domain, or group. The original Bitly project was officially archived in September 2018; active development continues in forks such as pusher/oauth2_proxy.", "when_to_avoid": ["you want maintained software - use pusher/oauth2_proxy (now oauth2-proxy/oauth2-proxy) instead", "you need modern oauth/oidc features or new provider support", "you need security patches or bug fixes"], "when_to_choose": ["you need a battle-tested oauth2 reverse proxy and are happy pinning an old release", "you want to study the original design before evaluating its forks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/oauth2_proxy", "repo": "bitly/oauth2_proxy", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "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:09:09.606681+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:09.606681+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:02:33.234089+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bff8437afd50d591c0c93009ec816e82cf3aec4fe63e361b83da3c4c9fc6013e", "fetched_at": "2026-08-28T04:09:09.606681+00:00", "kind": "readme", "missing": false, "url": "https://github.com/bitly/oauth2_proxy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["archived"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5007, "days_push": 2767, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 10, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}