Skip to content

Core Types

Complete type definitions for de.iterate SDK resources.

Risk

typescript
interface Risk {
  id?: string;
  componentId?: string;
  type: 'risk';
  risk?: string;
  title?: string;
  description?: string;
  riskID?: number | string;
  riskRating?: 'Low' | 'Medium' | 'High' | 'Critical';
  riskCategory?: string;
  businessUnit?: string;
  status?: 'active' | 'archived' | 'deleted' | string;
  riskIDstatus?: string;
  inherentRisk?: 'Extreme' | 'High' | 'Medium' | 'Low';
  residualRisk?: 'Extreme' | 'High' | 'Medium' | 'Low';
  targetRisk?: 'Extreme' | 'High' | 'Medium' | 'Low';
  likelihood?: number;
  impact?: number | string;
  response?: string;
  treatmentRequired?: boolean;
  treatmentPlan?: string;
  owner?: User;
  riskOwner?: string;
  controls?: Control[] | string[];
  selectedControls?: string[];
  nextReviewDate?: Date | null;
  lastReviewDate?: Date | null;
  createdAt?: Date;
  updatedAt?: Date;
}

Asset

typescript
interface Asset {
  id: string;
  type: 'asset';
  assetDesc: string;
  assetCat: string;
  assetOwner?: string;
  assetCriticality?: string;
  assetRisk?: string;
  status: 'Active' | 'Decommissioned' | 'Deleted';
  nextReviewDate?: Date;
  lastReviewDate?: Date;
  createdAt: Date;
  updatedAt: Date;
  metadata?: Record<string, unknown>;
}

AssuranceTask

typescript
interface AssuranceTask {
  id: string;
  type: 'assurance_task';
  description: string;
  controlId?: string;
  assignedTo?: string;
  status: 'pending' | 'in_progress' | 'completed' | 'overdue';
  dueDate?: Date | null;
  completedDate?: Date | null;
  frequency?: 'once' | 'weekly' | 'monthly' | 'quarterly' | 'annually' | string;
  evidence?: string[];
  evidenceRequired?: boolean;
  createdAt: Date;
  updatedAt: Date;
}

Document

typescript
interface Document {
  id: string;
  type: 'document';
  fileName: string;
  docType?: string;
  documentType?: string;
  displayName?: string;
  status: 'Current' | 'Draft' | 'Expired' | 'Published' | 'Active' | 'In Review';
  owner?: string;
  classification?: string;
  nextReviewDate?: Date;
  lastReviewDate?: Date;
  createdAt: Date;
  updatedAt: Date;
  dateUploaded?: Date;
  comments?: string;
  componentId?: string;
  docID?: string;
}

Checklist

typescript
interface Checklist {
  id: string;
  title: string;
  description?: string;
  templateId?: string;
  standard?: string;
  standards?: string[];
  items: ChecklistItem[];
  status: 'draft' | 'in-progress' | 'completed' | string;
  isAssuranceTask?: boolean;
  isReusable?: boolean;
  createdAt?: string;
  updatedAt?: string;
  completedAt?: string | null;
  completedBy?: string | null;
}

interface ChecklistItem {
  id?: string;
  title: string;
  description?: string;
  type?: string;
  required?: boolean;
  options?: string[];
}

Audit

typescript
interface Audit {
  id: string;
  type: string;
  scope?: string;
  owners?: string[];
  auditor?: string;
  scheduledDate?: string;
  status?: string;
  notes?: string;
  createdAt?: string;
  updatedAt?: string;
}

Finding

typescript
interface Finding {
  id: string;
  title?: string;
  description: string;
  severity?: 'low' | 'medium' | 'high' | 'critical';
  status?: string;
  assignee?: string;
  dueDate?: string;
  control?: string;
  linkedDocuments?: string[];
  auditId?: string | null;
  origin?: 'audit' | 'standalone';
  createdAt?: string;
  updatedAt?: string;
}

Incident

typescript
interface Incident {
  id: string;
  summary: string;
  description?: string;
  owner?: string;
  status?: string;
  severity?: string;
  reportedDate?: string;
  resolvedDate?: string | null;
  auditId?: string | null;
  createdAt?: string;
  updatedAt?: string;
}

CorrectiveAction

typescript
interface CorrectiveAction {
  id: string;
  title: string;
  description?: string;
  status?: string;
  assignee?: string;
  dueDate?: string;
  findingId?: string | null;
  auditId?: string | null;
  linkedDocuments?: string[];
  createdAt?: string;
  updatedAt?: string;
}

Policy

typescript
interface Policy {
  id: string;
  type: 'policy';
  title: string;
  content?: string;
  status: 'draft' | 'published' | 'archived';
  version?: string;
  category?: string;
  owner?: string;
  approver?: string;
  effectiveDate?: Date;
  reviewDate?: Date;
  createdAt: Date;
  updatedAt: Date;
}

Control

typescript
interface Control {
  id: string;
  type: 'control';
  controlId: string;
  name: string;
  description?: string;
  standard: string;
  category?: string;
}

SOAControl

typescript
interface SOAControl {
  id: string;
  type: 'soa_control';
  controlId: string;
  applicable: boolean;
  implemented: boolean;
  justification?: string;
  evidence?: string[];
  owner?: string;
  status: 'not_started' | 'in_progress' | 'implemented' | 'not_applicable';
}

User

typescript
interface User {
  id: string;
  type: 'user';
  email: string;
  name: string;
  role?: string;
  status: 'active' | 'inactive' | 'pending';
  createdAt: Date;
  updatedAt: Date;
}

Role

typescript
interface Role {
  id: string;
  type: 'role';
  name: string;
  description?: string;
  permissions: string[];
  userCount?: number;
  createdAt: Date;
  updatedAt: Date;
}

Framework

typescript
interface Framework {
  id: string;
  type: 'framework';
  name: string;
  displayName?: string;
  version?: string;
  description?: string;
  active: boolean;
  controlCount?: number;
}

Company

typescript
interface Company {
  id: string;
  type: 'company';
  name: string;
  industry?: string;
  size?: string;
  website?: string;
  address?: string;
  phone?: string;
  logo?: string;
  settings?: Record<string, unknown>;
  createdAt: Date;
  updatedAt: Date;
}

Released under the MIT License.