-- Issue #70: Welche Hosts der Ping-Check ueberwacht, stand bisher ausschliesslich in der -- hosts.conf neben check_fds.sh - aenderbar nur per Login auf dem Rechner mit dem Check. -- Die Liste wird jetzt hier gefuehrt und ueber ein Modal im Frontend (Zahnrad am Wandmonitor -- "Systeme") gepflegt; check_fds.sh holt sie bei jedem Lauf ab und schreibt daraus seine -- lokale hosts.conf. -- -- agent_id bindet jede Zeile an den OPs-Agenten (Issue #66), der diesen Host anpingt: Der -- Check laeuft nicht zwangslaeufig auf einem einzigen Rechner, und jeder Ping-Host darf nur -- die Liste bekommen, die er auch erreichen kann. Die Zuordnung ergibt sich beim Abruf aus -- dem Agenten-Key, es gibt also keine Liste "fuer alle". -- -- Kein ON DELETE CASCADE: Agenten werden derzeit nirgends geloescht (AgentRepository kennt -- kein delete()), ein Cascade waere also toter Code mit Ueberraschungspotenzial. CREATE TABLE IF NOT EXISTS host_configs ( id INTEGER PRIMARY KEY AUTOINCREMENT, agent_id INTEGER NOT NULL, hostname TEXT NOT NULL, address TEXT NOT NULL, sort_order INTEGER NOT NULL DEFAULT 0, created_at TEXT NOT NULL, updated_at TEXT NOT NULL, FOREIGN KEY (agent_id) REFERENCES agents (id) ); -- Derselbe Hostname zweimal in einer hosts.conf waere ein doppelter Ping und eine doppelte -- Kachel (die System-Id leitet sich aus dem Namen ab). Ueber verschiedene Ping-Hosts hinweg -- ist er dagegen erlaubt - zwei Standorte duerfen denselben Namen ueberwachen. CREATE UNIQUE INDEX IF NOT EXISTS idx_host_configs_agent_hostname ON host_configs (agent_id, hostname); -- Merkt, dass ein Ping-Rechner seine bestehende hosts.conf einmal hochgeladen hat -- (HostConfigRepository::importForAgent). Ohne diesen Marker waere "die API kennt keine -- Hosts fuer dich" zweideutig: einmal "noch nie konfiguriert" (dann soll die lokale Datei -- uebernommen werden) und einmal "im Frontend wurden alle Hosts entfernt" - im zweiten Fall -- wuerde der naechste Lauf die geloeschten Hosts aus der lokalen Datei wieder anlegen. CREATE TABLE IF NOT EXISTS host_config_imports ( agent_id INTEGER PRIMARY KEY, imported_at TEXT NOT NULL, FOREIGN KEY (agent_id) REFERENCES agents (id) );