CSA CAIQ-Lite responses live in spreadsheets that go stale, never get diffed between versions, and break formatting on every export. This library lets you author CAIQ as YAML, and validate it as such.

Every B2B SaaS company eventually has to fill out a CAIQ. If you sell to enterprise, you've probably filled out a dozen.
The current state of the art: someone copies last quarter's .xlsx into a new sheet, edits the cells that changed, and emails it to the prospect. Nobody knows what changed between v3 and v4. The schema drifts from the official CSA version. The export breaks Excel formatting in subtle ways that make security reviewers raise eyebrows.
@hailbytes/caiq-lite lets you treat your CAIQ as code instead.
# responses.yaml
provider:
name: Acme Inc
contact: [email protected]
responses:
AIS-01.1:
answer: yes
notes: |
Application security training is required annually for all engineers.
Completion is tracked in our LMS and audited each quarter.
AIS-01.2:
answer: yes
notes: SAST runs on every PR via GitHub Actions.import { loadCAIQ, validate, diff, exportTo } from '@hailbytes/caiq-lite';
const caiq = await loadCAIQ('responses.yaml');
// Validate against the official CAIQ-Lite schema
const result = validate(caiq);
if (!result.valid) console.error(result.errors);
// Diff against last quarter's version
const changes = diff(previousCAIQ, currentCAIQ);
console.log(changes.added, changes.removed, changes.modified);
// Export to whatever the prospect actually wants
const pdf = await exportTo(caiq, { format: 'pdf' });
const xlsx = await exportTo(caiq, { format: 'xlsx' });
const md = await exportTo(caiq, { format: 'markdown' });Because it diffs cleanly in git, your trust center can render it as a static site, your CI can validate it on every PR, and you stop emailing spreadsheets.
npm install @hailbytes/caiq-liteSource: github.com/hailbytes/caiq-lite - MIT licensed.
0
1
0