Skip to content

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 ​

PropertyTypeDescription
risksRisksResourceRisk management
controlsControlsResourceControl definitions
assetsAssetsResourceAsset inventory
tasksTasksResourceTask management
policiesPoliciesResourcePolicy documents
processesProcessesResourceBusiness processes
documentsDocumentsResourceDocument library

Compliance Resources ​

PropertyTypeDescription
complianceComplianceResourceCompliance status
frameworksFrameworksResourceFramework management
soaSOAResourceStatement of Applicability
assuranceAssuranceResourceAssurance activities

User & Organization ​

PropertyTypeDescription
usersUsersResourceUser management
rolesRolesResourceRole definitions
companyCompanyResourceCompany settings
scopeScopeResourceScope definitions

Integration Resources ​

PropertyTypeDescription
webhooksWebhooksResourceWebhook subscriptions
apiTokensAPITokensResourceAPI token management
aiAIResourceAI-powered features

Additional Resources ​

PropertyTypeDescription
objectivesObjectivesResourceISMS objectives
dataRetentionDataRetentionResourceData retention policies
legalObligationsLegalObligationsResourceLegal requirements
vendorScoreVendorScoreResourceVendor assessments
notificationsNotificationsResourceNotifications
onboardingOnboardingResourceOnboarding status
mspMSPResourceMSP 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

Released under the MIT License.