{"adoption": {"forks": 213, "observed_at": "2026-08-28T04:07:05.183585+00:00", "stars": 2623}, "canonical_url": "https://ross.abutalabs.com/products/keywhiz", "card": {"archived": true, "artifact_type": "service", "description": "A system for distributing and managing secrets", "domain": ["security", "backend", "self-hosted"], "enriched": true, "function": ["secrets-management", "auth", "security", "api-framework", "cli"], "health_score": 10, "homepage": "https://square.github.io/keywhiz/", "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "abandoned", "member_repos": ["square/keywhiz"], "name": "square/keywhiz", "platform": ["jvm", "self-hosted", "cli"], "pushed_at": "2023-09-18T18:01:03+00:00", "repo": "square/keywhiz", "stars": 2623, "tags": ["secrets-distribution", "mtls", "deprecated", "dropwizard", "enterprise", "devops", "linux"], "topics": ["keywhiz", "secret-management", "secret-distribution", "enterprise-software", "manage-secrets", "secrets", "secrets-management", "crypto"], "urls": [], "use_cases": ["distribute api tokens and database credentials to services securely", "manage tls certificates and keys across a server fleet", "replace secrets in config files with a central secret store", "deliver secrets as files to applications via tmpfs", "automate secret retrieval in a service-oriented architecture", "self-host a secrets management server with mTLS client auth"], "what_it_is": "Keywhiz is a Java-based system for centrally storing, managing, and distributing secrets such as TLS keys, API tokens, and database credentials. Clients retrieve secrets over mutually authenticated TLS and expose them as files in tmpfs, while administrators manage secrets via a CLI and automation APIs.", "when_to_avoid": ["starting a new project - it is deprecated since September 2023", "you want an actively maintained tool - use HashiCorp Vault instead", "you need cloud-native secret management or dynamic secrets", "you cannot operate Java 11 and MySQL infrastructure"], "when_to_choose": ["you need secrets delivered as files on disk/tmpfs to existing applications", "you want mTLS-based client authentication for secret distribution", "you are already invested in the Java/JVM ecosystem and MySQL", "you need a self-hosted alternative compatible with SOA workflows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/keywhiz", "repo": "square/keywhiz", "role": "main", "score": 10}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "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:05.183585+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:05.183585+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:19:58.609586+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "46d255109d4c70401f8f66868d53cfda53f9c3fe83d4daf137527de1a8cda32f", "fetched_at": "2026-08-28T04:07:05.183585+00:00", "kind": "readme", "missing": false, "url": "https://github.com/square/keywhiz"}, {"content_hash": "92000c162fb65e77850ccd87164515e07bf3caf5f9e09694c6b6656be566e23c", "fetched_at": "2026-08-29T10:02:54.755663+00:00", "kind": "homepage", "missing": false, "url": "https://square.github.io/keywhiz/"}], "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": 4179, "days_push": 1080, "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}}