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)
20 lines
522 B
Go
20 lines
522 B
Go
package models
|
|
|
|
import "time"
|
|
|
|
type WAURule struct {
|
|
ID int `json:"id"`
|
|
CustomerID int `json:"customer_id"`
|
|
WingetID string `json:"winget_id"`
|
|
DisplayName string `json:"display_name"`
|
|
RuleType string `json:"rule_type"` // "allow" | "block"
|
|
CreatedAt time.Time `json:"created_at"`
|
|
}
|
|
|
|
type WAUSoftwareEntry struct {
|
|
Name string `json:"name"`
|
|
Publisher string `json:"publisher"`
|
|
DeviceCount int `json:"device_count"`
|
|
Versions []string `json:"versions"`
|
|
}
|