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.