CluPilotCloud/tests/Feature/Provisioning
nexxo 5301ce4309 feat(monitoring): Uptime Kuma support via a REST bridge + resilient monitoring policy
Kuma has no write REST API (monitor CRUD is Socket.IO only), so docker/kuma-bridge
translates the exact generic REST contract HttpMonitoringClient already speaks —
no PHP client change needed. Opt-in compose profile 'monitoring'.

Verified end-to-end against a real Uptime Kuma 1.x:
  create -> id, create again -> same id (idempotent), list, status, delete
  and PHP MonitoringClient -> bridge -> Kuma round-trip.
The e2e run caught a real bug: add_monitor takes 'maxretries', not 'retries'.

Monitoring is now observability, not a delivery gate:
- RegisterMonitoring retries MONITORING_ATTEMPTS times on an outage, then
  continues degraded with a visible 'info' event
- RunAcceptanceChecks no longer fails when monitoring isn't green (a fresh Kuma
  monitor legitimately reports 'pending' — confirmed in the e2e run); it records
  the gap instead. MONITORING_REQUIRED=true restores strict gating.
- docs/monitoring-uptime-kuma.md documents setup, failure behaviour, alternatives

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-25 20:04:58 +02:00
..
CustomerDataModelTest.php fix(engine-b): default-deny firewall, disk-based capacity, synchronous credential mail 2026-07-25 12:39:15 +02:00
CustomerProvisioningEndToEndTest.php fix(engine-b): acceptance gate verifies real health, not just breadcrumbs 2026-07-25 13:00:49 +02:00
CustomerStepBaseTest.php feat(engine-b): CustomerStep base + shared resource trait + config 2026-07-25 11:39:56 +02:00
CustomerStepsTest.php feat(monitoring): Uptime Kuma support via a REST bridge + resilient monitoring policy 2026-07-25 20:04:58 +02:00
DataModelTest.php feat(engine): core provisioning data model + hosts 2026-07-25 09:49:43 +02:00
HostOnboardingEndToEndTest.php fix(engine): honour backoff timing + don't double-count Proxmox storage 2026-07-25 10:32:14 +02:00
HostStepsTest.php fix(engine): drop wg peer on host removal; clear reboot state on deadline fail 2026-07-25 10:46:11 +02:00
LiveProgressTest.php feat(engine-b): live provisioning progress (admin console + customer dashboard) 2026-07-25 11:57:35 +02:00
PipelineRegistryTest.php feat(engine): orchestrator core (state machine + tick + lock) 2026-07-25 09:54:52 +02:00
RunRunnerTest.php fix(engine): don't reset started_at on poll so step deadlines accumulate 2026-07-25 12:15:26 +02:00
ServicesTest.php feat(engine-b): ProxmoxClient VM-lifecycle extension (interface + fake + http) 2026-07-25 11:41:48 +02:00
StripeWebhookTest.php fix(engine-b): async stripe payments, capacity honesty, durable credential mail 2026-07-25 12:29:47 +02:00
TickProvisioningTest.php feat(engine): orchestrator core (state machine + tick + lock) 2026-07-25 09:54:52 +02:00