update
This commit is contained in:
95
ts_web/interfaces/index.ts
Normal file
95
ts_web/interfaces/index.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
export interface IServiceStatus {
|
||||
id: string;
|
||||
name: string;
|
||||
displayName: string;
|
||||
description?: string;
|
||||
currentStatus: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
|
||||
lastChecked: number; // timestamp
|
||||
uptime30d: number; // percentage
|
||||
uptime90d: number; // percentage
|
||||
responseTime: number; // milliseconds
|
||||
category?: string;
|
||||
dependencies?: string[];
|
||||
selected?: boolean;
|
||||
}
|
||||
|
||||
export interface IStatusHistoryPoint {
|
||||
timestamp: number;
|
||||
status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
|
||||
responseTime?: number;
|
||||
errorRate?: number;
|
||||
}
|
||||
|
||||
export interface IIncidentUpdate {
|
||||
id: string;
|
||||
timestamp: number;
|
||||
status: 'investigating' | 'identified' | 'monitoring' | 'resolved' | 'postmortem';
|
||||
message: string;
|
||||
author?: string;
|
||||
}
|
||||
|
||||
export interface IIncidentDetails {
|
||||
id: string;
|
||||
title: string;
|
||||
status: 'investigating' | 'identified' | 'monitoring' | 'resolved' | 'postmortem';
|
||||
severity: 'critical' | 'major' | 'minor' | 'maintenance';
|
||||
affectedServices: string[];
|
||||
startTime: number;
|
||||
endTime?: number;
|
||||
updates: IIncidentUpdate[];
|
||||
impact: string;
|
||||
rootCause?: string;
|
||||
resolution?: string;
|
||||
}
|
||||
|
||||
export interface IUptimeDay {
|
||||
date: string; // YYYY-MM-DD
|
||||
uptime: number; // percentage
|
||||
incidents: number;
|
||||
totalDowntime: number; // minutes
|
||||
status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage';
|
||||
}
|
||||
|
||||
export interface IMonthlyUptime {
|
||||
month: string; // YYYY-MM
|
||||
days: IUptimeDay[];
|
||||
overallUptime: number; // percentage
|
||||
totalIncidents: number;
|
||||
}
|
||||
|
||||
export interface IOverallStatus {
|
||||
status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
|
||||
message: string;
|
||||
lastUpdated: number;
|
||||
affectedServices: number;
|
||||
totalServices: number;
|
||||
}
|
||||
|
||||
export interface IStatusPageConfig {
|
||||
apiEndpoint?: string;
|
||||
refreshInterval?: number; // milliseconds
|
||||
timeZone?: string;
|
||||
dateFormat?: string;
|
||||
enableWebSocket?: boolean;
|
||||
enableNotifications?: boolean;
|
||||
theme?: 'light' | 'dark' | 'auto';
|
||||
language?: string;
|
||||
showHistoricalDays?: number;
|
||||
whitelabel?: boolean;
|
||||
companyName?: string;
|
||||
companyLogo?: string;
|
||||
supportEmail?: string;
|
||||
statusPageUrl?: string;
|
||||
legalUrl?: string;
|
||||
}
|
||||
|
||||
export interface ISubscription {
|
||||
email?: string;
|
||||
phone?: string;
|
||||
webhook?: string;
|
||||
services: string[];
|
||||
severityFilter: ('critical' | 'major' | 'minor' | 'maintenance')[];
|
||||
}
|
||||
|
||||
// Re-export the incident interface from @uptime.link/interfaces if needed
|
||||
// Note: The IIncident interface is imported in the incidents component directly from plugins
|
||||
Reference in New Issue
Block a user