{"adoption": {"forks": 1010, "observed_at": "2026-08-28T04:07:50.388417+00:00", "stars": 3238}, "canonical_url": "https://ross.abutalabs.com/products/appauth-android", "card": {"archived": false, "artifact_type": "library", "description": "Android client SDK for communicating with OAuth 2.0 and OpenID Connect providers.", "domain": ["security", "mobile-development", "apis"], "enriched": true, "function": ["auth", "sdk"], "health_score": 64, "homepage": "https://openid.github.io/AppAuth-Android", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["openid/AppAuth-Android"], "name": "openid/AppAuth-Android", "platform": ["jvm"], "pushed_at": "2026-03-22T20:54:07+00:00", "repo": "openid/AppAuth-Android", "stars": 3238, "tags": ["oauth2", "openid-connect", "pkce", "custom-tabs", "native-apps", "sso", "android", "mobile"], "topics": ["oauth2", "openid-connect", "android-sdk"], "urls": [], "use_cases": ["add oauth2 login to an android app", "implement openid connect authentication on android", "secure native app authorization with pkce", "perform enterprise single sign-on on android", "refresh access tokens in an android client", "integrate with any oauth2 authorization server from a mobile app"], "what_it_is": "AppAuth for Android is a client SDK for communicating with OAuth 2.0 and OpenID Connect providers from Android apps. It follows RFC 8252 best practices for native apps, using Custom Tabs for authorization and supporting PKCE.", "when_to_avoid": ["your authorization server assumes web-based confidential clients with client secrets", "you need authentication on non-Android platforms", "you want embedded WebView-based login, which this library deliberately does not support"], "when_to_choose": ["you are building an Android app that needs OAuth 2.0 or OpenID Connect sign-in", "you want RFC 8252-compliant native app auth with Custom Tabs and PKCE", "you need a well-maintained, spec-faithful client SDK rather than hand-rolling protocol flows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/appauth-android", "repo": "openid/AppAuth-Android", "role": "main", "score": 65}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "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:07:50.388417+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:50.388417+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:24:33.154762+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "326e3e177f0d1528fbebcc2ee8609b3865ae8945bc5bf93e03ce49800d956abb", "fetched_at": "2026-08-28T04:07:50.388417+00:00", "kind": "readme", "missing": false, "url": "https://github.com/openid/AppAuth-Android"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 73, "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": 3848, "days_push": 164, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 65, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}