cynfo3000
bf51ed8569
feat: WAU-Integration + Windows Software-Inventar (v1.1.0)
...
Windows Agent (v1.1.0):
- Software-Inventar aus Windows-Registry (64-bit + 32-bit)
Sammelt Name, Version, Hersteller, InstallDate aller installierten Apps
Filtert SystemComponent-Einträge heraus, sortiert alphabetisch
Funktioniert unter SYSTEM-Account (kein winget nötig)
- Version auf 1.1.0 gehoben
Backend:
- customer_wau_rules Tabelle (Migration automatisch)
- WAU-Regeln pro Kunde (allow/block, winget-ID + Anzeigename)
- GET/POST/DELETE /api/v1/customers/{id}/wau/rules
- GET /api/v1/customers/{id}/wau/inventory (SQL-Aggregation aus Agenten-Daten)
- GET /api/v1/customers/{id}/wau/included (Plaintext für WAU)
- GET /api/v1/customers/{id}/wau/excluded (Plaintext für WAU)
Frontend:
- Kunden-Seite: Tab-Navigation (Agents | API-Keys | WAU)
- WAU-Tab pro Kunde: Allowlist + Blocklist mit Inline-Assign aus Inventar
Allow/Block-Buttons direkt in Inventar-Zeile, winget-ID vorgeschlagen
Installationsbefehl mit externer Backend-URL aus Systemeinstellungen
- Windows-Panel Software-Tab: Installiert-Liste aus Registry-Daten
- Windows-Panel WAU-Tab: Status (installiert/Task/letzter Lauf)
WAU installieren via MSI-Download + msiexec (synchron)
Jetzt ausführen, Log anzeigen
Gewünschten Zustand herstellen (Allowlist auf Client installieren)
2026-03-10 08:46:00 +01:00
cynfo3000
0e6154a0dd
fix: system_data als RawJSON durchreichen — Windows-Daten nicht mehr weggeworfen
2026-03-10 01:56:09 +01:00
cynfo3000
2fe83e261a
fix: heartbeat system_data als RawMessage — Windows/beliebige Plattformen ohne Datenverlust
2026-03-10 01:49:24 +01:00
cynfo3000
67e15040fb
feat: ProxmoxPanel mit verschachtelter Navigation wie AgentPanel
...
Haupt-Tabs: Uebersicht / Virtualisierung / Speicher / System
Sub-Tabs: VMs+Container | Storage+ZFS+Backups+PBS | Dienste+Updates+Aufgaben+Tunnel+Agent
2026-03-10 00:53:37 +01:00
cynfo3000
4023a14fe1
feat: Agent zeigt Warnung wenn er nicht den Kunden-Key nutzt
...
- last_api_key Spalte in agents, wird bei Heartbeat gesetzt
- GetAgentsByCustomer liefert last_api_key mit
- Frontend: rot + Warnsymbol wenn Key abweicht vom Kunden-Agent-Key
- Grau wenn noch kein Heartbeat mit Key-Info
2026-03-10 00:23:59 +01:00
cynfo3000
20a976767b
fix: getCustomerAgents liefert status + agent_version
2026-03-10 00:21:58 +01:00
cynfo3000
5cc3476479
feat: Kunden-Seite zeigt API-Keys beim Aufklappen
...
- Klick auf Kundenzeile klappt Key-Panel auf
- Zeigt Agent + Read-only Keys mit Permission-Badge
- Key teilweise maskiert, Kopier-Button vorhanden
- Backend: GET /api/v1/customers/{id}/apikeys
- DB: ListCustomerAPIKeys() nach customer_id gefiltert
2026-03-10 00:06:16 +01:00
cynfo3000
ec30be7246
security: API-Key Permissions + Customer-Scoping
...
- DB Migration: api_keys bekommt 'permissions' + 'customer_id' Spalten
- Permissions: agent | read | write | admin
- agent: nur /api/v1/agent/ws + /api/v1/agent/heartbeat
- read: GET-Endpoints (optional customer-scoped)
- write: alles ausser Terminal
- admin: voll (Terminal bleibt JWT-only)
- Bestehende Keys werden auf 'admin' migriert (Abwaertskompatibilitaet)
- Frontend: API-Key Verwaltung zeigt Permissions-Badge + Kunden-Scope
- API-Client: createAPIKey nimmt jetzt permissions + customer_id
2026-03-09 23:52:26 +01:00
cynfo3000
10684dfc0a
feat: TOTP 2FA + diverse Verbesserungen
...
2FA (TOTP):
- backend/api/auth.go: zweistufiger Login-Flow mit Pending-Token (5min),
Endpunkte /2fa/validate, /2fa/setup, /2fa/confirm, /2fa/disable
- backend/db/users.go: GetUserByID, SetTOTPSecret, EnableTOTP, DisableTOTP
- backend/db/postgres.go: Migration totp_secret + totp_enabled Spalten
- backend/models/user.go: TOTPEnabled/TOTPSecret Felder, neue Request-Typen
- backend/main.go: neue Routen registriert (/2fa/validate ohne Auth, rest geschuetzt)
- backend/go.mod+sum: github.com/pquerna/otp hinzugefuegt
- frontend/src/pages/Login.jsx: zweistufiger Login (Passwort -> TOTP)
- frontend/src/pages/SettingsPage.jsx: TwoFactorSection mit Setup/Deaktivieren
- frontend/src/stores/auth.js: validateTOTP Action
- frontend/src/api/client.js: setupTOTP, confirmTOTP, disableTOTP, validateTOTP
Weitere Aenderungen (unstaged -> jetzt committed):
- frontend/src/components/ScriptModal.jsx: neu
- frontend/src/components/AgentPanel.jsx: Erweiterungen
- frontend/src/components/ProxmoxPanel.jsx: Erweiterungen
- agent-linux/ws/handler.go: Erweiterungen
- backend/api/scheduler.go + tasks.go: Erweiterungen
- backend/db/tasks.go + models/task.go: Erweiterungen
2026-03-08 19:17:43 +01:00
cynfo3000
c76868e806
feat: Updates-Tab, Aufgaben-Tab ProxmoxPanel, security_only Tasks, 3x Netzwerk-Charts, Updates-Spalte Übersicht, dist-upgrade, DeleteAgent cascades metrics
2026-03-07 14:30:12 +01:00
cynfo3000
9cb504fea1
feat: Interface-Durchsatz-Chart — Backend berechnet RX/TX-Rate (bps), Frontend zeigt Dual-Sparkline per Klick auf Interface
2026-03-06 22:00:33 +01:00
cynfo3000
aca013b848
feat: PF States Chart (Sparkline letzte 8h) — Backend schreibt pf_states in TimescaleDB, Frontend zeigt SVG-Sparkline
2026-03-06 21:47:47 +01:00
cynfo3000
721fd5008f
Feature: Recurring jobs with professional scheduling dialog
2026-03-05 09:39:41 +01:00
cynfo3000
7908ae26a0
Feature: Task Scheduler - planned tasks with webhook support
2026-03-05 08:59:53 +01:00
cynfo3000
5b503e6dba
Feature: System settings in DB - configurable backend URLs and API key
2026-03-04 23:57:14 +01:00
cynfo3000
70b10a4291
Feature: Audit-Log - tracks all user actions with timestamps
2026-03-04 23:45:01 +01:00
cynfo3000
25a6cc2a1a
Installer-Paket System: Backend speichert/served ZIP, Frontend Upload+Download, install.sh auto-download von Backend statt Git
2026-03-03 23:37:31 +01:00
cynfo3000
eb52507c08
install.sh + frontend: use external URL dsbmueller.spdns.org:8443, configurable via RMM_BACKEND env
2026-03-03 23:17:58 +01:00
cynfo3000
7f9fbd257f
Linux/Proxmox Agent + Plattform-Updater + Proxmox Frontend
...
- agent-linux/: Kompletter Linux/Proxmox RMM Agent
- Collectors: CPU, Memory, Disk, Network, Services, Updates, Proxmox (VMs, Container, Storage, ZFS), Backups
- Backup Collector: Jobs nach Node gefiltert (Cluster-aware)
- WebSocket: Tunnel-Support, writeMux fuer stabile Verbindungen
- Systemd Service Template
- updater/: Plattform-unabhaengiger Updater (FreeBSD + Linux)
- runtime.GOOS erkennt Plattform automatisch
- FreeBSD: /usr/local/rmm/, service rmm_agent
- Linux: /usr/local/bin/, /etc/rmm/, systemctl rmm-agent
- Firmware-Download mit ?platform= Parameter
- frontend/: Proxmox-Bereich
- ProxmoxServers.jsx: Eigene Seite fuer PVE Server mit VM/CT Counts
- ProxmoxPanel.jsx: Detail-Panel mit Uebersicht, VMs, Container, Storage, ZFS, Tunnel, Dienste, Updates, Backups
- Agents.jsx: Filtert Linux-Agents raus (nur OPNsense)
- Sidebar: Proxmox Navigationspunkt
- Installationsanleitung mit rmm-agent-linux + rmm-updater-linux
- backend: Platform-Feld fuer Agents, Firmware multi-platform
2026-03-01 22:03:18 +01:00
cynfo3000
c114df215a
Fix: SettingsController in install.sh aktualisiert (rmmagent[general] Parsing)
2026-03-01 01:37:35 +01:00
cynfo3000
e74cdce0ba
Agent-Updater, Multi-Plattform Firmware, Frontend Firmware-Seite, Agent-Tab, Zertifikate-Redesign
...
Updater:
- Separater Go-Daemon (rmm-updater) als eigener rc.d Service
- Pollt alle 60s: Firmware vorhanden + Hash unterschiedlich + Flag gesetzt
- Download -> SHA256 Verify -> Agent Stop -> Replace -> Agent Start
- Automatisches Rollback bei Fehler
- Deployed und getestet auf allen 3 Firewalls (.1, .19, .33)
Backend:
- Firmware-DB multi-plattform (freebsd/linux/windows)
- update_requested Flag pro Agent in agents Tabelle
- Heartbeat-Response liefert update_available wenn Flag gesetzt
- Neue Endpoints: request-update, request-update-all, firmware/download
- Auth: JWT + CombinedAuth Middleware (API-Key OR JWT)
- Customers CRUD + Agent-Zuordnung
- Users CRUD + Passwort-Aenderung
Frontend:
- Firmware-Seite: Multi-Plattform Upload, Agent-Liste mit Update-Trigger
- Agent-Tab im AgentPanel: Update-Button, nuetzliche Befehle, Agent-Info
- Zertifikate-Tab redesigned: Karten-Layout mit Restlaufzeit und Farbbalken
- Sidebar: Firmware-Eintrag hinzugefuegt
Plugin:
- install.sh erweitert: Installiert Agent + Updater + rc.d Services
- rmm_updater rc.d Service
README:
- Architektur-Diagramm erweitert (Frontend + Updater)
- Auth, Customers, Users, Firmware API dokumentiert
- Updater-Flow dokumentiert
- Frontend-Seiten und Deploy beschrieben
- DB-Schema aktualisiert (neue Tabellen)
- Dateistruktur erweitert (updater/, frontend/, firmware.go, auth.go)
2026-02-28 22:43:03 +01:00
cynfo3000
c6c8257cf0
Backend: Customers, Auth (JWT), Agent-Kundenzuordnung, CORS
2026-02-28 15:28:02 +01:00
cynfo3000
c72b791796
Agent-Status und Inaktivitaets-Erkennung implementiert
...
- Status wird aus last_heartbeat berechnet (online/stale/offline/unknown)
- GET /agents und GET /agents/{id} liefern status Feld
- agent_events Tabelle fuer Event-Tracking (Migration automatisch)
- Inaktivitaets-Monitor als Goroutine (prueft alle 60s, schreibt Events bei Statuswechsel)
- WebSocket Connect/Disconnect Events werden automatisch geschrieben
- API-Endpoints: GET /agents/events und GET /agents/{id}/events (?limit=N&type=X)
- DB-Methoden: InsertAgentEvent, GetAgentEvents, GetAllAgentEvents, GetAgentStatus
- README aktualisiert (Status-Doku, Events API, Dateistruktur)
2026-02-28 13:13:13 +01:00
cynfo3000
5d7a3cbcc1
SQLite durch PostgreSQL + TimescaleDB ersetzt
...
- Backend DB komplett auf PostgreSQL 17 + TimescaleDB 2.25.1 umgestellt
- pgx pure-Go Driver (kein CGO), modernc/sqlite entfernt
- Hypertable 'metrics' fuer Time-Series Daten
- Automatische Metrik-Extraktion bei jedem Heartbeat:
CPU, RAM, Uptime, Disk, Network-Traffic, Gateway RTT/Loss
- Retention Policy: 90 Tage, Compression nach 7 Tagen
- Neue API-Endpoints: GET /metrics (raw) + GET /metrics/summary (aggregiert)
- time_bucket() Aggregation (5min, 1h, etc.)
- config.yaml: database-Block statt db_path
- docs/POSTGRES_SETUP.md: Installationsanleitung
- README aktualisiert
2026-02-28 12:48:14 +01:00