{"adoption": {"forks": 85, "observed_at": "2026-09-01T02:14:00.192078+00:00", "stars": 1035}, "canonical_url": "https://ross.abutalabs.com/products/cdk-nag", "card": {"archived": false, "artifact_type": "library", "description": "Check CDK applications for best practices using a combination of available rule packs", "domain": ["infrastructure-as-code", "security", "cloud-computing", "developer-tools"], "enriched": true, "function": ["security", "testing", "linter", "developer-tools"], "health_score": 100, "homepage": null, "language": "TypeScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["cdklabs/cdk-nag"], "name": "cdklabs/cdk-nag", "platform": ["python", "jvm", "dotnet", "go", "cli"], "pushed_at": "2026-08-31T23:08:57+00:00", "repo": "cdklabs/cdk-nag", "stars": 1035, "tags": ["aws-cdk", "cloudformation", "compliance", "rule-packs", "static-analysis", "infrastructure-as-code", "devops", "nodejs"], "topics": [], "urls": [], "use_cases": ["check my CDK app for security best practices", "scan CloudFormation templates for compliance violations", "enforce HIPAA or PCI DSS rules on infrastructure code", "suppress known rule violations on specific CDK constructs", "create custom rule packs for organizational standards", "audit IaC against NIST 800-53 controls"], "what_it_is": "cdk-nag is a library that checks AWS CDK applications and CloudFormation templates for best practices using pre-built rule packs such as AWS Solutions, HIPAA Security, NIST 800-53, PCI DSS, and Serverless. It reports rule violations during synthesis and allows developers to acknowledge or suppress specific findings on constructs.", "when_to_avoid": ["you use Terraform, Pulumi, or other non-CDK IaC tools", "you need runtime or dynamic security scanning of deployed resources rather than static template checks", "you need general-purpose linting beyond infrastructure rules"], "when_to_choose": ["you use AWS CDK or CloudFormation and want automated compliance and best-practice checks", "you need to enforce regulatory rule packs like HIPAA, PCI DSS, or NIST on your infrastructure", "you want violations surfaced during CDK synthesis before deployment"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/cdk-nag", "repo": "cdklabs/cdk-nag", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.192078+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:04:53.015484+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1fb0f68ae246c54e46442511cbf92644a6a8466695a65ca783acc62855c8ba28", "fetched_at": "2026-09-01T02:14:00.192078+00:00", "kind": "readme", "missing": false, "url": "https://github.com/cdklabs/cdk-nag"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 84}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1870, "days_push": 2, "days_rel": 29, "gap_med": 1.0, "n_releases_24m": 291}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}