Openstatus sdk
www.openstatus.dev
Status Report Service#
Manage incident reports with update timelines. The Status Report Service provides 6 RPC methods.
Create Status Report#
import {
createOpenStatusClient,
StatusReportStatus,
} from "@openstatus/sdk-node";
const client = createOpenStatusClient({
apiKey: process.env.OPENSTATUS_API_KEY,
});
const { statusReport } = await client.statusReport.v1.StatusReportService
.createStatusReport({
title: "API Degradation",
status: StatusReportStatus.INVESTIGATING,
message: "We are investigating reports of increased latency.",
date: "2024-01-15T10:30:00Z",
pageId: "page_123",
pageComponentIds: ["comp_456"],
notify: true,
});
console.log(`Status report created: ${statusReport?.id}`);
Add Status Report Update#
Add a new entry to a status report's timeline.
import { StatusReportStatus } from "@openstatus/sdk-node";
const { statusReport } = await client.statusReport.v1.StatusReportService
.addStatusReportUpdate({
statusReportId: "sr_123",
status: StatusReportStatus.IDENTIFIED,
message: "The issue has been identified as a database connection problem.",
date: "2024-01-15T11:00:00Z",
notify: true,
});
List Status Reports#
List status reports with optional status filtering and pagination.
import { StatusReportStatus } from "@openstatus/sdk-node";
const { statusReports, totalSize } = await client.statusReport.v1
.StatusReportService.listStatusReports({
limit: 10,
offset: 0,
statuses: [StatusReportStatus.INVESTIGATING, StatusReportStatus.IDENTIFIED],
});
console.log(`Found ${totalSize} status reports`);
Get / Update / Delete Status Reports#
Get Status Report#
Returns the full report including the updates timeline.
import { StatusReportStatus } from "@openstatus/sdk-node";
const { statusReport } = await client.statusReport.v1.StatusReportService
.getStatusReport({ id: "sr_123" });
console.log(`Title: ${statusReport?.title}`);
console.log(`Status: ${StatusReportStatus[statusReport?.status ?? 0]}`);
for (const update of statusReport?.updates ?? []) {
console.log(
` ${update.date}: [${
StatusReportStatus[update.status]
}] ${update.message}`,
);
}
Update Status Report#
const { statusReport } = await client.statusReport.v1.StatusReportService
.updateStatusReport({
id: "sr_123",
title: "Updated Title",
pageComponentIds: ["comp_456", "comp_789"],
});
Delete Status Report#
const { success } = await client.statusReport.v1.StatusReportService
.deleteStatusReport({ id: "sr_123" });