SDK — Compliance
The rivano.compliance resource generates formal audit reports mapped to compliance frameworks. Use it to produce evidence packets for SOC 2 Type II reviews, GDPR DPIAs, or ISO 27001 audits.
List frameworks
Returns the compliance frameworks supported for your plan:
import Rivano from '@rivano/sdk';
const rivano = new Rivano({ apiKey: 'rv_...' });
const frameworks = await rivano.compliance.frameworks();
for (const fw of frameworks) {
console.log(`${fw.id} — ${fw.name} (${fw.controlCount} controls)`);
} Supported frameworks
| Framework ID | Name | Description |
|---|---|---|
soc2 | SOC 2 Type II | Security, availability, and confidentiality controls |
gdpr | GDPR | Data protection and privacy requirements |
iso27001 | ISO 27001 | Information security management |
hipaa | HIPAA | Healthcare data protection |
ccpa | CCPA | California consumer privacy rights |
Get framework detail
Returns the individual controls within a framework and their current pass/fail status:
import Rivano from '@rivano/sdk';
const rivano = new Rivano({ apiKey: 'rv_...' });
const framework = await rivano.compliance.framework('soc2');
for (const control of framework.controls) {
const status = control.passing ? '✔' : '✗';
console.log(`${status} ${control.id}: ${control.name}`);
}
Create a report
Generates a compliance report for a date range. Report generation is asynchronous — the response returns a report ID that you poll or retrieve later:
import Rivano from '@rivano/sdk';
const rivano = new Rivano({ apiKey: 'rv_...' });
const report = await rivano.compliance.createReport({
framework: 'soc2',
startDate: '2026-01-01',
endDate: '2026-03-31',
});
console.log('Report ID:', report.id);
console.log('Status:', report.status); // "pending" | "ready" | "failed" Report create parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
framework | string | Yes | Framework ID from compliance.frameworks() |
startDate | string | Yes | Report period start (YYYY-MM-DD) |
endDate | string | Yes | Report period end (YYYY-MM-DD) |
List reports
Returns all previously generated reports:
import Rivano from '@rivano/sdk';
const rivano = new Rivano({ apiKey: 'rv_...' });
const reports = await rivano.compliance.reports();
for (const report of reports) {
console.log(`${report.id} [${report.framework}] ${report.status} — ${report.createdAt}`);
}
Get a report
Retrieve a specific report, including the download URL when ready:
import Rivano from '@rivano/sdk';
const rivano = new Rivano({ apiKey: 'rv_...' });
const report = await rivano.compliance.report('report_abc123');
if (report.status === 'ready') {
console.log('Download:', report.downloadUrl);
} else if (report.status === 'pending') {
console.log('Still generating...');
} else {
console.error('Report failed:', report.errorMessage);
}
Reports typically take 30–120 seconds to generate depending on the date range. Poll compliance.report(id) every 10 seconds, or set up a webhook to be notified when the report is ready.
Error handling
| Error | When it occurs |
|---|---|
SdkAuthError | Invalid API key |
SdkForbiddenError | Compliance reports are not available on all plans |
SdkNotFoundError | Framework ID or report ID does not exist |
Related
- SDK Governance — Posture scores and policy change audit trail
- SDK Traces — Raw trace data that feeds into compliance evidence