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:
| Name | Type | Description |
|---|---|---|
params.page.number | number | Page number (1-indexed) |
params.page.size | number | Items per page |
params.sort | string | Sort field (prefix with - for descending) |
params.filter | Record<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:
| Name | Type | Description |
|---|---|---|
id | string | Risk 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:
| Name | Type | Description |
|---|---|---|
id | string | Risk ID |
data | UpdateRiskInput | Fields 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;
}