{"adoption": {"forks": 93, "observed_at": "2026-08-28T04:04:30.248276+00:00", "stars": 1362}, "canonical_url": "https://ross.abutalabs.com/products/rails-security-checklist", "card": {"archived": false, "artifact_type": "learning-resource", "description": ":key: Community-driven Rails Security Checklist (see our GitHub Issues for the newest checks that aren't yet in the README)", "domain": ["security", "web-development", "developer-tools"], "enriched": true, "function": ["security", "documentation"], "health_score": 20, "homepage": null, "language": "Ruby", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["eliotsykes/rails-security-checklist"], "name": "eliotsykes/rails-security-checklist", "platform": ["ruby"], "pushed_at": "2022-07-17T16:46:46+00:00", "repo": "eliotsykes/rails-security-checklist", "stars": 1362, "tags": ["rails", "security-checklist", "security-audit", "security-hardening", "ruby-on-rails", "checklist"], "topics": ["checklist", "rails-security", "rails", "rails-security-checklist", "ruby-on-rails", "security-audit", "security-hardening", "security"], "urls": [], "use_cases": ["audit a rails app for security issues", "harden ruby on rails application security", "checklist for reviewing rails security before launch", "learn common rails security pitfalls", "verify csrf and authorization protections in rails", "security review checklist for ruby on rails"], "what_it_is": "A community-driven security checklist for Ruby on Rails applications covering controller callbacks, routes, views, and secret token handling. It serves as a reference document for auditing and hardening Rails apps, with newer checks tracked in GitHub issues.", "when_to_avoid": ["you need comprehensive, expert-vetted security guidance - the authors warn it is not exhaustive and was not written by security experts", "you need security tooling for non-Ruby frameworks or infrastructure-level hardening", "you need an actively updated resource - the latest release dates to 2022"], "when_to_choose": ["you are building or auditing a Ruby on Rails application and want a curated list of security precautions", "you want a community-maintained starting point for Rails security reviews"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rails-security-checklist", "repo": "eliotsykes/rails-security-checklist", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "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:30.248276+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:30.248276+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:41:30.261687+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "77f7e3565cdcdad559beed4a6057ec8341f1aa40929003c5c44c9d13d4ad8e82", "fetched_at": "2026-08-28T04:04:30.248276+00:00", "kind": "readme", "missing": false, "url": "https://github.com/eliotsykes/rails-security-checklist"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3532, "days_push": 1508, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}