{"adoption": {"forks": 105, "observed_at": "2026-08-28T04:04:24.372048+00:00", "stars": 1331}, "canonical_url": "https://ross.abutalabs.com/products/smokescreen", "card": {"archived": false, "artifact_type": "service", "description": "A simple HTTP proxy that fogs over naughty URLs    ", "domain": ["security", "networking", "backend", "infrastructure-as-code"], "enriched": true, "function": ["proxy", "security", "networking", "auth", "rate-limiting"], "health_score": 80, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["stripe/smokescreen"], "name": "stripe/smokescreen", "platform": ["go", "self-hosted"], "pushed_at": "2026-08-26T12:29:41+00:00", "repo": "stripe/smokescreen", "stars": 1331, "tags": ["http-proxy", "egress-proxy", "connect-proxy", "ssrf-protection", "mtls", "egress-control", "acl", "linux", "docker", "web-server"], "topics": [], "urls": [], "use_cases": ["prevent SSRF attacks from outbound webhook traffic", "restrict which external hostnames services can connect to", "centralize egress traffic behind stable IP addresses", "authenticate and authorize internal clients making outbound requests", "block requests to internal network IP ranges", "proxy all outbound HTTP traffic from a microservices fleet"], "what_it_is": "Smokescreen is an HTTP CONNECT egress proxy written in Go, developed by Stripe to proxy outbound traffic such as webhooks. It enforces hostname ACLs, blocks requests to internal IP addresses to prevent SSRF, and authenticates clients via mTLS with per-client access control.", "when_to_avoid": ["you need a general-purpose forward proxy for end users or browsers", "you need SOCKS or non-HTTP proxy protocols", "you want a simple proxy without ACL or mTLS configuration overhead"], "when_to_choose": ["you need to control and audit all outbound HTTP(S) traffic from your infrastructure", "you want to prevent SSRF by blocking connections to internal IPs", "you need stable egress IPs for partners or third parties", "you want per-client mTLS authentication for egress"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/smokescreen", "repo": "stripe/smokescreen", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "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:04:24.372048+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:24.372048+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:45:20.934406+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "050b81d7ac4694653776c34f8670e8830827c4e82b73d4b639a60ca39cb99d4f", "fetched_at": "2026-08-28T04:04:24.372048+00:00", "kind": "readme", "missing": false, "url": "https://github.com/stripe/smokescreen"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "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": 3715, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}