Corsair
PluginsPagerDuty

PagerDuty Database Schema

Database entities and querying synced PagerDuty data

The PagerDuty plugin syncs incident and user data to your database for fast queries.

New to Corsair? Learn about database operations, data synchronization, and multi-tenancy.

Full Implementation: See the PagerDuty plugin source code.

Synced Entities

  • incidents - Incident records and their status
  • users - PagerDuty user profiles

Database API

const incidents = await corsair.pagerduty.db.incidents.search({
    data: { status: "triggered" },
});

Incidents

Schema

{
    id: string;            // PagerDuty incident ID
    incident_number: number;
    title: string;
    status: string;        // triggered | acknowledged | resolved
    urgency: string;       // high | low
    service_id: string;
    created_at: string;
    resolved_at?: string;
    html_url: string;
}

Querying Incidents

Search by status:

const open = await corsair.pagerduty.db.incidents.search({
    data: { status: "triggered" }, 
});

Search by service:

const serviceIncidents = await corsair.pagerduty.db.incidents.search({
    data: { service_id: "SERVICE123" },
});

Example: Multi-Tenancy Incident Query

const tenant = corsair.withTenant("org-123");

const incidents = await tenant.pagerduty.db.incidents.search({
    data: { urgency: "high", status: "triggered" }, 
    limit: 10,
});

Users

Schema

{
    id: string;
    name: string;
    email: string;
    role: string;
    time_zone?: string;
    html_url: string;
}

Querying Users

Search by email:

const users = await corsair.pagerduty.db.users.search({
    data: { email: "engineer@example.com" }, 
});