Configuration
Detailed configuration options for the de.iterate SDK.
Client Configuration
typescript
interface DeIterateClientConfig {
apiKey: string;
organizationId: string;
baseUrl?: string;
timeout?: number;
retries?: number;
headers?: Record<string, string>;
}Required Options
apiKey
Your de.iterate API key. Get this from your dashboard under Settings → API Tokens.
typescript
const client = new DeIterateClient({
apiKey: 'deit_your_api_key_here',
organizationId: 'your-org-id',
});Security
Never hardcode API keys in your source code. Use environment variables.
organizationId
Your organization/tenancy ID. This determines which organization's data you access.
typescript
const client = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: 'org_abc123', // Your org ID
});Optional Options
baseUrl
Custom API base URL. Defaults to the production API.
typescript
const client = new DeIterateClient({
apiKey: '...',
organizationId: '...',
baseUrl: 'https://api.staging.deiterate.com/v1', // Staging
});| Environment | URL |
|---|---|
| Production | https://api.deiterate.com/v1 |
| Staging | https://api.staging.deiterate.com/v1 |
| Local | http://localhost:3000/v1 |
timeout
Request timeout in milliseconds. Default is 30000 (30 seconds).
typescript
const client = new DeIterateClient({
apiKey: '...',
organizationId: '...',
timeout: 60000, // 60 seconds for slow operations
});retries
Number of automatic retry attempts for failed requests. Default is 3.
typescript
const client = new DeIterateClient({
apiKey: '...',
organizationId: '...',
retries: 5, // More retries for unreliable networks
});Retries apply to:
- Network errors
- 5xx server errors
- 429 rate limit errors (with backoff)
Retries do NOT apply to:
- 4xx client errors (except 429)
- Validation errors
- Authentication errors
headers
Custom headers to include with every request.
typescript
const client = new DeIterateClient({
apiKey: '...',
organizationId: '...',
headers: {
'X-Custom-Header': 'value',
'X-Request-Source': 'my-integration',
},
});Environment Variables
Recommended environment variable names:
bash
# .env
DEITERATE_API_KEY=deit_your_api_key_here
DEITERATE_ORG_ID=your_organization_id
DEITERATE_API_URL=https://api.deiterate.com/v1typescript
import 'dotenv/config';
import { DeIterateClient } from '@deiterate/sdk';
const client = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: process.env.DEITERATE_ORG_ID!,
baseUrl: process.env.DEITERATE_API_URL,
});Configuration Patterns
Development vs Production
typescript
const isDev = process.env.NODE_ENV === 'development';
const client = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: process.env.DEITERATE_ORG_ID!,
baseUrl: isDev
? 'http://localhost:3000/v1'
: 'https://api.deiterate.com/v1',
timeout: isDev ? 60000 : 30000,
retries: isDev ? 1 : 3,
});Multiple Organizations
typescript
// Create clients for different organizations
const orgAClient = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: 'org-a-id',
});
const orgBClient = new DeIterateClient({
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: 'org-b-id',
});Service Account (Cross-Tenancy)
typescript
// Service accounts can access multiple orgs
const serviceClient = new DeIterateClient({
apiKey: 'deit_sa_service_account_token',
organizationId: 'default-org', // Can override per-request
});
// Access different orgs
const orgARisks = await serviceClient.risks.list({
headers: { 'X-Tenancy-Id': 'org-a-id' }
});Validation
The SDK validates configuration on client creation:
typescript
// ❌ Throws: API key is required
const client = new DeIterateClient({
apiKey: '',
organizationId: 'org-id',
});
// ❌ Throws: Organization ID is required
const client = new DeIterateClient({
apiKey: 'deit_key',
organizationId: '',
});TypeScript Support
Full TypeScript support with IntelliSense:
typescript
import { DeIterateClient, DeIterateClientConfig } from '@deiterate/sdk';
// Type-safe configuration
const config: DeIterateClientConfig = {
apiKey: process.env.DEITERATE_API_KEY!,
organizationId: process.env.DEITERATE_ORG_ID!,
};
const client = new DeIterateClient(config);