monitoring stron www Cyberapis - Changelog #3

Cyberapis v0.10.0 — zrzuty ekranu w alertach i publiczny dashboard monitoringu

Jak Browsershot zamienia stronę w zrzut ekranu — pipeline monitoringu krok po kroku

Gdy Cyberapis wykrywa problem ze stylem CSS na monitorowanej stronie, sam suchy komunikat "style mismatch" nie wystarcza. Potrzebujesz zobaczyć, co dokładnie się zepsuło. Dlatego w wersji v0.10.0 wprowadzamy automatyczne zrzuty ekranu dołączane do alertów e-mail — wykonane w tej samej sesji Chromium, która posłużyła do analizy stylów.

Jak to działa pod spodem? Browsershot — biblioteka PHP autorstwa Spatie — otwiera Chromium przez Puppeteera, renderuje stronę z zadanym viewportem (domyślnie 600×800), i zapisuje zrzut jako JPEG do tymczasowego katalogu storage/app/temp/render-probe-screenshots. Po wysłaniu maila plik jest usuwany, a raz na jakiś czas monitor:prune-render-probe-screenshots czyści pozostałości. System pomija zrzuty podczas cooldownu alertów, żeby nie obciążać serwera niepotrzebnymi renderowaniami.

Pipeline monitoringu w Cyberapis działa teraz warstwowo: HTTP check (kod + fraza) → HTML sanity check (wzorce stron błędów) → render probe (analiza CSS). Każda warstwa może zakończyć się sukcesem lub błędem niezależnie — a alert zawiera precyzyjną informację, która warstwa zawiodła.

Nowe funkcjonalności

Zrzuty ekranu w alertach render probe

Gdy ok=false, system dołącza do maila JPEG (domyślnie 600×800) wygenerowany przez Browsershot w tej samej sesji Chromium co analiza stylów. Pliki tymczasowe w storage/app/temp/render-probe-screenshots są usuwane po każdej próbie wysłania. Konfiguracja przez MONITORING_RENDER_PROBE_SCREENSHOT i MONITORING_RENDER_PROBE_SCREENSHOT_MAX_AGE.

Publiczny dashboard monitoringu z kolumną Page Render

Strona /monitorings (dostępna dla gości jako demo i dla zalogowanych użytkowników) pokazuje teraz kolumnę "Page render" z ikoną statusu ostatniego render probe: zielony check (OK), czerwony alert (błąd), szary zegar (oczekiwanie na pierwszy wynik). Komponent x-monitoring-page-render-status i metoda Monitoring::renderProbeDisplayStatus().

Prawa Shield dla ustawień e-mail monitoringu

Usunięto hardcodowany super_admin-only dostęp do MonitoringEmailSettingsResource. Nawigacja i CRUD podlegają teraz MonitoringEmailSettingsPolicy i Shield permissions — np. panel_user z odpowiednim uprawnieniem może zarządzać ustawieniami SMTP.

Ulepszony UX alertów render probe

Gdy alert nie może być wysłany (wyłączony env, cooldown, brak konfiguracji SMTP lub odbiorcy), Filament pokazuje ostrzeżenie z opcjonalnym linkiem do ustawień — zamiast cicho pomijać wysyłkę po toaście o niezgodności stylów.

Naprawione błędy

SMTP password kasowane przy edycji

Pole smtp_password w Filament jest teraz zapisywane tylko gdy jest wypełnione — pusta wartość przy edycji nie czyści zapisanego hasła. Eliminuje to częstą przyczynę błędu 535 Incorrect authentication data po edycji innych ustawień monitoringu.

Zmiany i ulepszenia

Nowy układ kolumn w tabeli monitoringu Filament

Kolejność: nazwa strony, URL, tekst do sprawdzenia, ostatnie sprawdzenie, treść/sanity, playback, page render, dodany przez, akcje. Kolumna Page render używa teraz ikon statusu zamiast statycznej ikony sparkle — state() ustawione jawnie, bo wirtualne kolumny potrzebują stanu do renderowania ikon.

Header actions dla wstrzymywania/wznawiania

Edycja monitoringu zyskała przyciski nagłówkowe: Pause monitoring (warning) / Resume monitoring (success) — ta sama funkcjonalność is_paused co opcje wiersza na liście.