Skip to content

RisksResource

API reference for the Risks resource.

Methods

list

List all risks with optional filtering and pagination.

typescript
async list(params?: {
  page?: { number: number; size: number };
  sort?: string;
  filter?: Record<string, any>;
}): Promise<RisksListResponse>

Parameters:

NameTypeDescription
params.page.numbernumberPage number (1-indexed)
params.page.sizenumberItems per page
params.sortstringSort field (prefix with - for descending)
params.filterRecord<string, any>Filter criteria

Returns: RisksListResponse

typescript
interface RisksListResponse {
  statusCode: number;
  message: string;
  risks: Risk[];
  menu?: any;
  metadata?: any;
}

Example:

typescript
const response = await client.risks.list({
  sort: '-createdAt',
  filter: { status: 'active' }
});

get

Get a single risk by ID.

typescript
async get(id: string): Promise<Risk>

Parameters:

NameTypeDescription
idstringRisk ID or component ID

Returns: Risk

Example:

typescript
const risk = await client.risks.get('RSK-001');

create

Create a new risk.

typescript
async create(data: CreateRiskInput): Promise<Risk>

Parameters:

typescript
interface CreateRiskInput {
  riskID: number;
  risk: string;
  description?: string;
  riskCategory?: string;
  riskOwner?: string;
  businessUnit?: string;
  inherentRisk?: 'Extreme' | 'High' | 'Medium' | 'Low';
  residualRisk?: 'Extreme' | 'High' | 'Medium' | 'Low';
  targetRisk?: 'Extreme' | 'High' | 'Medium' | 'Low';
  response?: string;
  treatmentPlan?: string;
  treatRequired?: 'Yes' | 'No';
  impact?: string;
  cause?: string;
  controls?: string;
  selectedControls?: string[];
}

Returns: Risk

Example:

typescript
const risk = await client.risks.create({
  riskID: 42,
  risk: 'Data breach risk',
  riskCategory: 'Security',
  inherentRisk: 'High',
});

update

Update an existing risk.

typescript
async update(id: string, data: UpdateRiskInput): Promise<Risk>

Parameters:

NameTypeDescription
idstringRisk ID
dataUpdateRiskInputFields to update
typescript
interface UpdateRiskInput extends Partial<CreateRiskInput> {
  changedBy?: string;
  riskIDstatus?: string;
}

Returns: Risk


delete

Delete a risk.

typescript
async delete(id: string): Promise<void>

listAll

Get all risks without pagination.

typescript
async listAll(params?: {
  sort?: string;
  filter?: Record<string, any>;
}): Promise<Risk[]>

archive

Archive a risk (sets status to deleted).

typescript
async archive(id: string): Promise<Risk>

review

Mark a risk as reviewed.

typescript
async review(id: string, reviewNotes?: string): Promise<Risk>

Types

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;
  inherentLike?: string;
  inherentCons?: string;
  response?: string;
  treatmentRequired?: boolean;
  treatRequired?: 'Yes' | 'No';
  treatmentPlan?: string;
  owner?: User;
  riskOwner?: string;
  controls?: Control[] | string[] | string;
  selectedControls?: string[];
  documents?: Document[];
  metadata?: Record<string, unknown>;
  cause?: string;
  reduction?: string;
  controlEffect?: string;
  version?: string;
  nextReviewDate?: Date | null;
  lastReviewDate?: Date | null;
  createdAt?: Date;
  updatedAt?: Date;
}

Released under the MIT License.