Skip to content

hackIDLE/scf-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SCF API

Static JSON API for the Secure Controls Framework (SCF).

Parses the official SCF Excel workbook and generates a complete static API — every sheet, every column. Hosted on GitHub Pages, automated with GitHub Actions.

Live: https://hackidle.github.io/scf-api/

What's in it

Resource Count Endpoint
Controls 1,468 api/controls/{ID}.json
Families 33 api/families/{CODE}.json
Framework crosswalks 249 api/crosswalks/{FW_ID}.json
Assessment objectives 5,776 api/assessment-objectives/{SCF_ID}.json
Compensating controls 1,305 api/compensating-controls/{SCF_ID}.json
Evidence requests 303 api/evidence-requests/{ERL_ID}.json
Privacy principles 258 api/privacy-principles.json
Threats 41 api/threats/{ID}.json
Risks 39 api/risks/{ID}.json

Each control includes full metadata: description, assessment question, weight, conformity cadence, PPTDF applicability, NIST CSF function, SCRM focus tiers, SCR-CMM maturity levels (0-5), SCF profiles, possible solutions by org size, risk IDs, threat IDs, evidence request refs, and crosswalk mappings to all 249 frameworks.

For agents

Follows the llms.txt standard.

Examples

# All controls
curl https://hackidle.github.io/scf-api/api/controls.json

# Single control with all metadata and crosswalks
curl https://hackidle.github.io/scf-api/api/controls/GOV-01.json

# Framework index (get valid framework IDs)
curl https://hackidle.github.io/scf-api/api/crosswalks.json

# NIST 800-53 crosswalk
curl https://hackidle.github.io/scf-api/api/crosswalks/general-nist-800-53-r5-2.json

# Assessment objectives for a control
curl https://hackidle.github.io/scf-api/api/assessment-objectives/GOV-01.json

# Evidence request
curl https://hackidle.github.io/scf-api/api/evidence-requests/E-GOV-01.json

# Threat catalog
curl https://hackidle.github.io/scf-api/api/threats.json

Rebuilding

npm ci
npm run parse -- --tag 2026.1   # or --file path/to/workbook.xlsx
npm run build

The parser extracts all 10 sheets from the SCF workbook into data/, then npm run build generates the static API in docs/.

Automation

Two GitHub Actions workflows:

  • update-scf.yml — weekly check for new SCF releases. Downloads the workbook, parses, builds, opens a PR.
  • release.yml — when .scf-version changes on main, tags the commit and creates a GitHub release mirroring the SCF version.

CORS

GitHub Pages doesn't set CORS headers. Works for CLI tools, agents, and server-side code. Browser JS on another origin needs a proxy.

License

SCF data is from securecontrolsframework.com, licensed under CC BY-ND.

About

Static JSON API for the Secure Controls Framework (SCF). 1,468 controls, 33 families, 249 framework crosswalks. Automated updates from official SCF releases.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors