{"adoption": {"forks": 313, "observed_at": "2026-08-28T04:06:19.115739+00:00", "stars": 2148}, "canonical_url": "https://ross.abutalabs.com/products/go-oauth2-server", "card": {"archived": false, "artifact_type": "service", "description": "A standalone, specification-compliant,  OAuth2 server written in Golang.", "domain": ["security", "backend", "apis", "web-development"], "enriched": true, "function": ["auth", "http-server", "api-framework"], "health_score": 54, "homepage": null, "language": "Go", "license": "MPL-2.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["RichardKnop/go-oauth2-server"], "name": "RichardKnop/go-oauth2-server", "platform": ["go", "self-hosted", "windows"], "pushed_at": "2025-12-09T23:14:11+00:00", "repo": "RichardKnop/go-oauth2-server", "stars": 2148, "tags": ["oauth2", "authorization-server", "access-tokens", "grant-types", "token-introspection", "postgres", "etcd", "consul", "docker", "linux", "macos"], "topics": ["go", "golang", "oauth2-server", "oauth2", "etcd", "consul", "postgres", "docker", "docker-compose"], "urls": [], "use_cases": ["run my own oauth2 authorization server", "issue access and refresh tokens for my api", "implement authorization code grant flow", "add client credentials authentication to services", "self-host an rfc 6749 compliant oauth server", "introspect oauth tokens from a resource server"], "what_it_is": "A standalone, specification-compliant OAuth 2.0 authorization server written in Go. It implements the standard grant types (authorization code, implicit, password credentials, client credentials), token refresh, and token introspection, with session storage in PostgreSQL and service discovery via etcd/consul.", "when_to_avoid": ["you only need simple session-based login without OAuth2", "you want an all-in-one identity provider with OIDC, SSO, and user management UI", "your stack is not Go-friendly or you need a managed identity service"], "when_to_choose": ["you need a dedicated, spec-compliant OAuth 2.0 authorization server in Go", "you want support for all four standard grant types plus token introspection", "you prefer a standalone service deployable with Docker Compose"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-oauth2-server", "repo": "RichardKnop/go-oauth2-server", "role": "main", "score": 48}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "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:06:19.115739+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:19.115739+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:51:00.519572+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "55b08ef68dfe1c06db1086c1bd11216b69f59ab64e8c3854296e091d58eecbab", "fetched_at": "2026-08-28T04:06:19.115739+00:00", "kind": "readme", "missing": false, "url": "https://github.com/RichardKnop/go-oauth2-server"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 56, "longevity": 100, "rhythm": 8}, "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": 3958, "days_push": 267, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 48, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}