Skip to main content

Status Pages

Overzicht

Status pages in PulseGuard bieden een publieke interface waar u de huidige status van uw services kunt communiceren naar gebruikers, klanten en stakeholders. Ze worden automatisch bijgewerkt tijdens incidenten en bieden historische uptime data.

Status Page Types

Public Status Pages

{
  "type": "public",
  "url": "https://status.company.com",
  "custom_domain": true,
  "branding": {
    "company_name": "Company Inc.",
    "logo_url": "https://company.com/logo.png",
    "primary_color": "#007acc",
    "custom_css": "https://company.com/status-page.css"
  },
  "services": [
    "website",
    "api",
    "mobile-app",
    "email"
  ]
}

Internal Status Pages

{
  "type": "internal",
  "authentication_required": true,
  "allowed_domains": ["company.com", "partner.com"],
  "services": [
    "internal-api",
    "database",
    "development-tools"
  ]
}

Customization Options

Branding & Theming

{
  "theme": {
    "color_scheme": "dark",
    "font_family": "Inter, sans-serif",
    "border_radius": "8px",
    "custom_styles": {
      ".status-indicator": {
        "border-radius": "50%"
      },
      ".incident-banner": {
        "background": "linear-gradient(45deg, #ff6b6b, #ffa500)"
      }
    }
  }
}

Layout Configuration

{
  "layout": {
    "header": {
      "title": "Company Status",
      "description": "Real-time status van al onze services",
      "contact_email": "[email protected]"
    },
    "sections": [
      {
        "type": "services_overview",
        "title": "Service Status"
      },
      {
        "type": "uptime_graphs",
        "periods": ["24h", "7d", "30d", "90d"]
      },
      {
        "type": "active_incidents",
        "show_comments": true
      },
      {
        "type": "incident_history",
        "limit": 10
      }
    ],
    "footer": {
      "links": [
        {"text": "Privacy Policy", "url": "/privacy"},
        {"text": "Terms of Service", "url": "/terms"}
      ]
    }
  }
}

Service Configuration

Service Groups

{
  "service_groups": [
    {
      "name": "Web Services",
      "description": "Alle web-gerelateerde services",
      "services": [
        {
          "name": "Main Website",
          "description": "company.com",
          "status": "operational"
        },
        {
          "name": "Blog",
          "description": "blog.company.com",
          "status": "operational"
        }
      ]
    },
    {
      "name": "API Services",
      "services": [
        {
          "name": "REST API",
          "description": "api.company.com",
          "status": "degraded_performance"
        }
      ]
    }
  ]
}

Status Indicators

{
  "status_definitions": {
    "operational": {
      "label": "Operationeel",
      "color": "#28a745",
      "description": "Service functioneert normaal"
    },
    "degraded_performance": {
      "label": "Verminderde prestaties",
      "color": "#ffc107",
      "description": "Service werkt maar met verminderde prestaties"
    },
    "partial_outage": {
      "label": "Gedeeltelijke uitval",
      "color": "#fd7e14",
      "description": "Sommige functionaliteiten zijn niet beschikbaar"
    },
    "major_outage": {
      "label": "Grote uitval",
      "color": "#dc3545",
      "description": "Service is volledig uitgevallen"
    },
    "maintenance": {
      "label": "Onderhoud",
      "color": "#6c757d",
      "description": "Gepland onderhoud aan de gang"
    }
  }
}

Incident Integration

Automatic Status Updates

{
  "incident_integration": {
    "auto_update_status": true,
    "status_mapping": {
      "investigating": "degraded_performance",
      "identified": "partial_outage",
      "monitoring": "degraded_performance",
      "resolved": "operational"
    },
    "maintenance_mode": {
      "scheduled_maintenance": true,
      "emergency_maintenance": true
    }
  }
}

Public Incident Communication

{
  "incident_communication": {
    "public_updates": true,
    "update_format": {
      "show_technical_details": false,
      "estimated_resolution_time": true,
      "affected_services": true,
      "workaround_instructions": true
    },
    "templates": {
      "investigating": "We onderzoeken momenteel een probleem met {service}. We houden u op de hoogte.",
      "resolved": "Het probleem met {service} is opgelost. Bedankt voor uw geduld."
    }
  }
}

Uptime Graphs & Analytics

Uptime Visualization

{
  "uptime_graphs": {
    "periods": ["1h", "24h", "7d", "30d", "90d"],
    "resolution": {
      "1h": "1m",
      "24h": "5m",
      "7d": "1h",
      "30d": "6h",
      "90d": "1d"
    },
    "display_options": {
      "show_downtime_bars": true,
      "show_incident_markers": true,
      "color_scheme": "status_based"
    }
  }
}

SLA Tracking

{
  "sla_tracking": {
    "monthly_uptime_target": 99.9,
    "current_month": {
      "uptime_percentage": 99.95,
      "downtime_minutes": 36,
      "sla_met": true
    },
    "historical_sla": [
      {
        "month": "2023-12",
        "uptime_percentage": 99.8,
        "sla_met": false,
        "compensation_owed": "$500"
      }
    ]
  }
}

Subscriber Features

Email Subscriptions

{
  "subscriptions": {
    "email": {
      "enabled": true,
      "confirmation_required": true,
      "frequency_options": ["immediate", "daily", "weekly"],
      "incident_alerts": true,
      "maintenance_alerts": true,
      "uptime_reports": true
    }
  }
}

RSS Feeds

{
  "rss_feeds": {
    "enabled": true,
    "feeds": [
      {
        "name": "All Incidents",
        "url": "/feed/incidents.xml",
        "includes": ["investigating", "resolved"]
      },
      {
        "name": "Maintenance",
        "url": "/feed/maintenance.xml",
        "includes": ["scheduled", "completed"]
      }
    ]
  }
}

Webhooks for Subscribers

{
  "webhooks": {
    "subscriber_webhooks": {
      "enabled": true,
      "events": ["incident_created", "incident_updated", "incident_resolved"],
      "payload_format": "json",
      "authentication": "none"
    }
  }
}

Maintenance Windows

Scheduled Maintenance

{
  "maintenance": {
    "scheduled_maintenance": [
      {
        "title": "Database Upgrade",
        "description": "Upgrading database to improve performance",
        "start_time": "2024-01-20T02:00:00Z",
        "end_time": "2024-01-20T04:00:00Z",
        "affected_services": ["api", "database"],
        "auto_status_update": true,
        "notification_lead_time": 24
      }
    ],
    "recurring_maintenance": {
      "weekly_backup": {
        "day_of_week": "sunday",
        "start_time": "03:00",
        "duration_hours": 2,
        "affected_services": ["backup-system"]
      }
    }
  }
}

Emergency Maintenance

{
  "emergency_maintenance": {
    "allow_emergency_mode": true,
    "approval_required": true,
    "max_duration_hours": 4,
    "notification_channels": ["email", "slack"],
    "post_maintenance_report": true
  }
}

Advanced Features

Multi-language Support

{
  "internationalization": {
    "enabled": true,
    "default_language": "nl",
    "supported_languages": ["nl", "en", "de", "fr"],
    "translations": {
      "operational": {
        "nl": "Operationeel",
        "en": "Operational",
        "de": "Betriebsbereit"
      }
    }
  }
}

Custom Components

{
  "custom_components": [
    {
      "type": "metric_display",
      "title": "API Response Time",
      "metric_source": "prometheus",
      "query": "histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))",
      "unit": "ms",
      "thresholds": {
        "warning": 1000,
        "critical": 5000
      }
    }
  ]
}

API Integration

Status Page Management

# Status page lijst
GET /api/status-pages

# Status page aanmaken
POST /api/status-pages

# Status page bijwerken
PUT /api/status-pages/{id}

# Status page verwijderen
DELETE /api/status-pages/{id}

Real-time Updates

# Live status updates (WebSocket)
ws://api.ipulse.one/status-pages/{id}/live

# Incident updates voor status page
POST /api/status-pages/{id}/incidents/{incident_id}/updates

Subscriber Management

# Subscribers lijst
GET /api/status-pages/{id}/subscribers

# Subscriber toevoegen
POST /api/status-pages/{id}/subscribers

# Subscriber verwijderen
DELETE /api/status-pages/{id}/subscribers/{subscriber_id}

Security & Access Control

Authentication

{
  "security": {
    "authentication": {
      "required_for_internal": true,
      "allowed_domains": ["company.com"],
      "oauth_providers": ["google", "microsoft"],
      "session_timeout": 7200
    },
    "rate_limiting": {
      "requests_per_minute": 60,
      "burst_limit": 100
    }
  }
}

Content Security

{
  "content_security": {
    "allowed_html_tags": ["p", "br", "strong", "em", "a"],
    "sanitize_input": true,
    "prevent_xss": true,
    "csp_headers": {
      "default-src": "'self'",
      "script-src": "'self' 'unsafe-inline'",
      "style-src": "'self' 'unsafe-inline'"
    }
  }
}

Analytics & Insights

Usage Analytics

{
  "analytics": {
    "page_views": {
      "total_views": 125000,
      "unique_visitors": 45000,
      "popular_pages": ["/", "/incidents", "/history"]
    },
    "subscriber_engagement": {
      "total_subscribers": 1200,
      "email_open_rate": 0.75,
      "unsubscribe_rate": 0.02
    }
  }
}

Performance Metrics

{
  "performance": {
    "page_load_time": 1.2,
    "uptime_percentage": 99.98,
    "incident_response_time": 4.5,
    "customer_satisfaction": 4.3
  }
}

Best Practices

Communication Strategy

  1. Be Transparent: Deel zoveel mogelijk informatie
  2. Update Regularly: Houd subscribers op de hoogte
  3. Use Clear Language: Vermijd technische jargon
  4. Provide Timelines: Geef estimated resolution times

Maintenance Planning

  1. Schedule Wisely: Kies tijden met minste impact
  2. Communicate Early: Stuur notificaties ruim van tevoren
  3. Provide Alternatives: Bied workarounds aan
  4. Follow Through: Update status na onderhoud

Incident Management

  1. Quick Acknowledgment: Bevestig incidenten snel
  2. Clear Status Updates: Houd status up-to-date
  3. Post-mortem Sharing: Deel lessons learned
  4. Continuous Improvement: Leer van elke incident

User Experience

  1. Mobile Friendly: Zorg voor goede mobile experience
  2. Fast Loading: Optimaliseer page speed
  3. Clear Status: Maak status duidelijk zichtbaar
  4. Easy Subscription: Maak aanmelden eenvoudig