Basic Usage
Simple examples to get you started with the de.iterate SDK.
Setup
typescript
import { DeIterateClient } from '@deiterate/sdk';
const client = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: process.env.DEITERATE_ORG_ID!,
});List Resources
typescript
// List all risks
const risks = await client.risks.list();
console.log(`Found ${risks.data.length} risks`);
for (const risk of risks.data) {
console.log(`• ${risk.name} - ${risk.severity}`);
}Get Single Resource
typescript
const risk = await client.risks.get('risk-123');
console.log('Risk Details:');
console.log(` Name: ${risk.name}`);
console.log(` Severity: ${risk.severity}`);
console.log(` Status: ${risk.status}`);
console.log(` Description: ${risk.description}`);Create Resource
typescript
const newRisk = await client.risks.create({
name: 'Phishing Attack Risk',
description: 'Risk of employees falling victim to phishing attacks',
severity: 'high',
category: 'Security',
owner: 'security@company.com',
});
console.log(`Created risk: ${newRisk.id}`);Update Resource
typescript
const updated = await client.risks.update('risk-123', {
status: 'mitigated',
mitigationNotes: 'Implemented email security training',
});
console.log(`Updated risk status: ${updated.status}`);Delete Resource
typescript
await client.risks.delete('risk-123');
console.log('Risk deleted');Filtering
typescript
// Filter by severity
const highRisks = await client.risks.list({
filter: { severity: 'high' }
});
// Filter by multiple criteria
const criticalOpen = await client.risks.list({
filter: {
severity: { in: ['critical', 'high'] },
status: 'open',
}
});
// Sort by creation date
const recent = await client.risks.list({
sort: '-createdAt'
});Pagination
typescript
// Manual pagination
const page1 = await client.risks.list({ page: { number: 1, size: 25 } });
const page2 = await client.risks.list({ page: { number: 2, size: 25 } });
// Auto-pagination
for await (const risk of client.risks.listAll()) {
console.log(risk.name);
}Error Handling
typescript
import { NotFoundError, ValidationError } from '@deiterate/sdk';
try {
const risk = await client.risks.get('invalid-id');
} catch (error) {
if (error instanceof NotFoundError) {
console.log('Risk not found');
} else if (error instanceof ValidationError) {
console.log('Validation error:', error.message);
} else {
throw error;
}
}Complete Example
typescript
import { DeIterateClient } from '@deiterate/sdk';
import 'dotenv/config';
const client = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: process.env.DEITERATE_ORG_ID!,
});
async function main() {
console.log('🔒 de.iterate SDK Demo\n');
// List risks
const risks = await client.risks.list();
console.log(`📊 Found ${risks.data.length} risks\n`);
// Show high severity risks
const highRisks = risks.data.filter(r => r.severity === 'high');
console.log(`🔴 High Severity Risks (${highRisks.length}):`);
for (const risk of highRisks.slice(0, 5)) {
console.log(` • ${risk.name}`);
}
// List controls
const controls = await client.controls.list();
console.log(`\n🛡️ Found ${controls.data.length} controls`);
// List tasks
const tasks = await client.tasks.list({
filter: { status: { ne: 'completed' } }
});
console.log(`\n📋 Open Tasks: ${tasks.data.length}`);
console.log('\n✅ Demo complete!');
}
main().catch(console.error);Next Steps
- API Reference - Full API documentation