Findings
Manage standalone findings (non-conformities) with the de.iterate SDK.
Overview
The findings resource provides operations for managing standalone findings that are not associated with a specific audit. For audit-related findings, see the Audits resource.
List Findings
typescript
const findings = await client.findings.list();
console.log(`Found ${findings.length} standalone findings`);
for (const finding of findings) {
console.log(` • ${finding.title} (${finding.severity})`);
}Create Finding
typescript
const finding = await client.findings.create({
title: 'Security Configuration Issue',
description: 'Default credentials found on network device',
severity: 'high',
assignee: 'network-team@company.com',
dueDate: '2025-02-15',
control: 'A.9.4.3',
linkedDocuments: ['DOC-001', 'DOC-002'],
});
console.log(`Created finding: ${finding.id}`);CreateFindingInput
| Field | Type | Required | Description |
|---|---|---|---|
title | string | ❌ | Finding title |
description | string | ✅ | Detailed description |
severity | 'low' | 'medium' | 'high' | 'critical' | ❌ | Severity level |
status | string | ❌ | Finding status |
assignee | string | ❌ | Assigned to |
dueDate | string | ❌ | Due date for remediation |
control | string | ❌ | Related control ID |
linkedDocuments | string[] | ❌ | Related document IDs |
auditId | string | null | ❌ | Associated audit (null for standalone) |
Update Finding
typescript
const updated = await client.findings.update('FND-001', {
status: 'remediated',
assignee: 'security-team@company.com',
});Delete Finding
typescript
await client.findings.delete('FND-001');Finding Type
typescript
interface Finding {
id: string;
title?: string;
description: string;
severity?: 'low' | 'medium' | 'high' | 'critical';
status?: string;
assignee?: string;
dueDate?: string;
control?: string;
linkedDocuments?: string[];
auditId?: string | null;
origin?: 'audit' | 'standalone';
tenantId?: string;
createdBy?: string;
createdAt?: string;
updatedAt?: string;
}Examples
Finding Summary
typescript
async function findingSummary() {
const findings = await client.findings.list();
const bySeverity = { low: 0, medium: 0, high: 0, critical: 0 };
for (const finding of findings) {
const sev = finding.severity || 'low';
if (sev in bySeverity) {
bySeverity[sev as keyof typeof bySeverity]++;
}
}
console.log('Finding Summary');
console.log('===============');
console.log(`🔴 Critical: ${bySeverity.critical}`);
console.log(`🟠 High: ${bySeverity.high}`);
console.log(`🟡 Medium: ${bySeverity.medium}`);
console.log(`🟢 Low: ${bySeverity.low}`);
}Next Steps
- Corrective Actions - Link findings to remediation
- Audits - Audit-linked findings