{"adoption": {"forks": 302, "observed_at": "2026-08-28T04:05:27.989561+00:00", "stars": 1724}, "canonical_url": "https://ross.abutalabs.com/products/python-tuf", "card": {"archived": false, "artifact_type": "library", "description": "Python reference implementation of The Update Framework (TUF)", "domain": ["security", "developer-tools"], "enriched": true, "function": ["security", "cryptography", "sdk", "serialization"], "health_score": 99, "homepage": "https://theupdateframework.com/", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "stable", "member_repos": ["theupdateframework/python-tuf"], "name": "theupdateframework/python-tuf", "platform": ["python", "cross-platform"], "pushed_at": "2026-08-25T13:30:46+00:00", "repo": "theupdateframework/python-tuf", "stars": 1724, "tags": ["tuf", "software-updates", "supply-chain-security", "key-rotation", "metadata-signing", "cncf", "secure-content-delivery", "cryptography", "automation"], "topics": ["software", "security", "python", "update", "revocation", "key", "compromise", "repository", "cncf"], "urls": [], "use_cases": ["secure software update system against key compromise", "add TUF metadata signing to a package repository", "implement a TUF-compliant update client in Python", "protect against supply chain attacks on content delivery", "rotate signing keys and revoke compromised keys safely", "verify downloaded artifacts before installing updates"], "what_it_is": "Python reference implementation of The Update Framework (TUF), a CNCF-graduated specification for securing software update systems against repository and key compromise. It provides a low-level metadata API, a client updater library, and a repository library for creating and verifying signed TUF metadata.", "when_to_avoid": ["you need a turnkey update server or signing service rather than a library", "your updater has no threat model beyond simple HTTPS downloads", "you need a TUF implementation in Go, Rust, or JavaScript instead"], "when_to_choose": ["you need a battle-tested, spec-conformant TUF implementation in Python", "you are building an application updater or package manager that must resist repository or key compromise", "you want a readable reference for implementing TUF in another language"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/python-tuf", "repo": "theupdateframework/python-tuf", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "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:05:27.989561+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:27.989561+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:33:55.864616+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d5ae426b9a1bb9f452f313b66fab24428deaa765654b7ca171d81a7145768eca", "fetched_at": "2026-08-28T04:05:27.989561+00:00", "kind": "readme", "missing": false, "url": "https://github.com/theupdateframework/python-tuf"}, {"content_hash": "bec5a6fce30621e7474bded289a1638bdb3477cff601d8e35dbc830b45ddeeea", "fetched_at": "2026-08-29T11:09:28.446674+00:00", "kind": "homepage", "missing": false, "url": "https://theupdateframework.com/"}, {"content_hash": "bd28c4fe6d74aa5a6a31e0a6361abfcc88301142c802d128bce2ca1375670e96", "fetched_at": "2026-08-29T11:09:28.462294+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/contributing"}, {"content_hash": "8dca18961249b02ebe569dbddf3ffa2c710a1bd4602c226230b7ea94c2be7f20", "fetched_at": "2026-08-29T11:09:28.460684+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/getting-started"}, {"content_hash": "cf8d963ce2a8880c2620f4f560162b1c611496d24472d7f3cd8f3856afc22ff1", "fetched_at": "2026-08-29T11:09:28.455639+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/about"}, {"content_hash": "341f99d0e49114281fe526989015e746ba5213100a3de6e75aaf2055dac09528", "fetched_at": "2026-08-29T11:09:28.457212+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs"}, {"content_hash": "378eb6c81f81f9ee4c549694d91da202cfc73e9c01f7b2338111df59aa497289", "fetched_at": "2026-08-29T11:09:28.458692+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/overview"}, {"content_hash": "a72149300475efd5c70d2791bfe2733f672f779de11aa1f08622a05195b73dfe", "fetched_at": "2026-08-29T11:09:28.463979+00:00", "kind": "site_page", "missing": false, "url": "https://theupdateframework.com/docs/project/funding"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 52}, "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": 4962, "days_push": 8, "days_rel": 107, "gap_med": 293.0, "n_releases_24m": 3}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}