DeIterateClient
The main client class for interacting with the de.iterate API.
Constructor
typescript
import { DeIterateClient } from '@deiterate/sdk';
const client = new DeIterateClient(config);Configuration
typescript
interface DeIterateClientConfig {
/** Your de.iterate API key */
apiKey: string;
/** Your organization/tenancy ID */
organizationId: string;
/** Custom API base URL (optional) */
baseUrl?: string;
/** Request timeout in milliseconds (default: 30000) */
timeout?: number;
/** Number of retry attempts (default: 3) */
retries?: number;
/** Custom headers to include with every request */
headers?: Record<string, string>;
}Example
typescript
const client = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: process.env.DEITERATE_ORG_ID!,
baseUrl: 'https://api.deiterate.com/v1',
timeout: 60000,
retries: 5,
});Resources
The client provides access to all de.iterate resources:
Core GRC Resources
| Property | Type | Description |
|---|---|---|
risks | RisksResource | Risk management |
controls | ControlsResource | Control definitions |
assets | AssetsResource | Asset inventory |
tasks | TasksResource | Task management |
policies | PoliciesResource | Policy documents |
processes | ProcessesResource | Business processes |
documents | DocumentsResource | Document library |
Compliance Resources
| Property | Type | Description |
|---|---|---|
compliance | ComplianceResource | Compliance status |
frameworks | FrameworksResource | Framework management |
soa | SOAResource | Statement of Applicability |
assurance | AssuranceResource | Assurance activities |
User & Organization
| Property | Type | Description |
|---|---|---|
users | UsersResource | User management |
roles | RolesResource | Role definitions |
company | CompanyResource | Company settings |
scope | ScopeResource | Scope definitions |
Integration Resources
| Property | Type | Description |
|---|---|---|
webhooks | WebhooksResource | Webhook subscriptions |
apiTokens | APITokensResource | API token management |
ai | AIResource | AI-powered features |
Additional Resources
| Property | Type | Description |
|---|---|---|
objectives | ObjectivesResource | ISMS objectives |
dataRetention | DataRetentionResource | Data retention policies |
legalObligations | LegalObligationsResource | Legal requirements |
vendorScore | VendorScoreResource | Vendor assessments |
notifications | NotificationsResource | Notifications |
onboarding | OnboardingResource | Onboarding status |
msp | MSPResource | MSP features |
Usage Examples
List Resources
typescript
// List all risks
const risks = await client.risks.list();
// List with options
const filteredRisks = await client.risks.list({
filter: { severity: 'high' },
sort: '-createdAt',
page: { size: 50 },
});Get Single Resource
typescript
const risk = await client.risks.get('risk-123');
console.log(risk.name, risk.severity);Create Resource
typescript
const newRisk = await client.risks.create({
name: 'Data Breach Risk',
description: 'Risk of unauthorized data access',
severity: 'high',
category: 'Security',
});Update Resource
typescript
const updated = await client.risks.update('risk-123', {
status: 'mitigated',
mitigationNotes: 'Controls implemented',
});Delete Resource
typescript
await client.risks.delete('risk-123');Auto-Pagination
typescript
// Iterate over all resources automatically
for await (const risk of client.risks.listAll()) {
console.log(risk.name);
}Error Handling
typescript
import {
DeIterateClient,
AuthenticationError,
NotFoundError,
} 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 AuthenticationError) {
console.log('Authentication failed');
}
}Type Safety
All resources are fully typed:
typescript
import type { Risk, Control, Task } from '@deiterate/sdk';
const risk: Risk = await client.risks.get('risk-123');
// TypeScript knows all available properties
console.log(risk.name); // ✅
console.log(risk.severity); // ✅
console.log(risk.invalid); // ❌ Type error