feat(monitor): add extended monitor statuses, check configuration, status overrides/paused indicators, and incident update templates

This commit is contained in:
2025-12-24 15:29:15 +00:00
parent 87b739e4b6
commit 8827a1ba38
6 changed files with 481 additions and 226 deletions

View File

@@ -1,10 +1,33 @@
// Re-export interfaces from the public catalog for consistency
// Status types
export type TStatusType = 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance' | 'initializing' | 'error' | 'paused';
export type TCheckType = 'assumption' | 'function' | 'pwa' | 'pagerank';
export type TStatusMode = 'auto' | 'manual';
// Check configuration interface
export interface ICheckConfig {
domain: string;
// Assumption check fields
expectedTitle?: string;
expectedStatusCode?: string;
expectedDescription?: string;
// Function check fields
functionDef?: string;
// PageRank check fields
searchTerm?: string;
checkBing?: boolean;
checkGoogle?: boolean;
bingMinRank?: number;
googleMinRank?: number;
}
export interface IServiceStatus {
id: string;
name: string;
displayName: string;
description?: string;
currentStatus: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
currentStatus: TStatusType;
lastChecked: number;
uptime30d: number;
uptime90d: number;
@@ -12,11 +35,19 @@ export interface IServiceStatus {
category?: string;
dependencies?: string[];
selected?: boolean;
// Status management
statusMode?: TStatusMode;
manualStatus?: TStatusType;
paused?: boolean;
// Check configuration
checkType?: TCheckType;
checkConfig?: ICheckConfig;
intervalMs?: number;
}
export interface IStatusHistoryPoint {
timestamp: number;
status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
status: TStatusType;
responseTime?: number;
errorRate?: number;
}
@@ -44,7 +75,7 @@ export interface IIncidentDetails {
}
export interface IOverallStatus {
status: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
status: TStatusType;
message: string;
lastUpdated: number;
affectedServices: number;
@@ -77,7 +108,14 @@ export interface IMonitorFormData {
description?: string;
category?: string;
dependencies?: string[];
currentStatus: 'operational' | 'degraded' | 'partial_outage' | 'major_outage' | 'maintenance';
// Status management
statusMode: TStatusMode;
manualStatus?: TStatusType;
paused: boolean;
// Check configuration
checkType: TCheckType;
checkConfig: ICheckConfig;
intervalMs: number;
}
export interface IIncidentFormData {