Search by

stackmonitor / agent-laravel

tommy-hasert-dev

Read-only StackMonitor agent for Laravel applications

v1.0.0 2026-09-26 18:38 UTC

This package is auto-updated.

Last update: 2026-09-26 19:05:39 UTC


README

Nur lesender Agent. Er liefert dem StackMonitor-Dashboard Laravel-, PHP- und Paketversionen. Unterstützt Laravel 10–13 und PHP ≥ 8.1.

Installation

  1. composer require stackmonitor/agent-laravel
  2. Im StackMonitor-Dashboard die Site öffnen, dann Bearbeiten → Agent → Secret erzeugen.
  3. Die angezeigte Zeile in die .env der Site eintragen: STACKMONITOR_AGENT_SECRET=…
  4. php artisan config:cache ausführen, falls die Config gecacht wird. Wird die .env später erneut geändert (z. B. neues Secret, anderer Pfad), müssen php artisan config:cache und, falls Routen gecacht sind, php artisan route:cache erneut ausgeführt werden — sonst greift weiterhin die alte, gecachte Konfiguration.

Der Endpunkt ist GET /stackmonitor/status. Der Pfad lässt sich mit STACKMONITOR_AGENT_PATH ändern, dann muss die Agent-URL im Dashboard angepasst werden.

Sicherheit

  • Jede Anfrage muss per HMAC-SHA256 signiert sein. Timestamp (±300 s) und Nonce werden geprüft, eine Nonce ist nur einmal gültig.
  • Ungültige Anfragen beantwortet der Endpunkt mit 404 — demselben generischen 404, das Laravel auch für unbekannte Routen liefert, damit der Endpunkt nach außen nicht auffällt. Die Antwort auf eine gültige Anfrage ist ebenfalls signiert.
  • Der Agent ist nur lesend: keine schreibenden Aktionen, keine Session, keine Cookies.
  • Für den Replay-Schutz nutzt er den Standard-Cache der Anwendung (cache.default). Dieser Cache muss persistent und, bei mehreren Anwendungs-Knoten, geteilt sein (z. B. Redis oder der Datenbank-Treiber) — die Treiber array und null schützen nicht vor Replays: array vergisst genutzte Nonces beim nächsten Request-Prozess, null speichert gar nichts, und bei mehreren Knoten ohne geteilten Cache sieht jeder Knoten nur seine eigenen bereits genutzten Nonces.

Entwicklung

Läuft wie alles lokal im tools-Container (siehe README im Wurzelverzeichnis), aus dem Wurzelverzeichnis:

docker compose run --rm -w /app/agents/laravel tools composer install
docker compose run --rm -w /app/agents/laravel tools composer test   # Pint und Pest

Lizenz

MIT, siehe LICENSE.