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.