Repository navigation
Hierarchical Policy Engine
Vitrine RMM features a 4-tier cascading policy inheritance engine (backend/src/services/policy/index.ts) that unifies endpoint security settings, LAPS rotation & offboarding governance, reboot UX, and multi-channel state notifications.
[Tier 1: Global MSP Baseline]
│
▼ (Overridden by non-null tier fields)
[Tier 2: Client / Tenant Level]
│
▼
[Tier 3: Site / Location / Subnet Level]
│
▼
[Tier 4: Device Role (Domain Controller, Database Server, Workstation, POS, Hypervisor)]
Administrators can create, edit, or delete overrides at any tier (GET, POST, PUT, DELETE /api/policies) and inspect the live resolved result for any device via Effective Policy Inspector (GET /api/policies/effective/:deviceId).
| Attribute | Description | Default Baseline |
|---|---|---|
telemetry_interval_sec |
Agent CPU, RAM, and disk heartbeat cadence | 30s |
require_remote_consent |
Prompt logged-in user before interactive KVM screen share |
true (false on Server roles) |
max_reboot_snooze_hours |
Maximum cumulative hours a user may defer a patch reboot | 8h |
forced_reboot_hud_sec |
Bottom-left countdown HUD timer once snooze limit expires | 300s |
laps_enabled / laps_account_name
|
Managed local admin account toggle & customizable username |
Enabled / LocalAdmin
|
laps_rotation_days / laps_password_length
|
Scheduled LAPS rotation cadence & entropy length (deferred when offline!) |
30d / 24 chars
|
laps_rotate_on_reveal_grace_min |
Auto-rotate LAPS password X minutes after a technician reveals it | 120 min |
laps_offboard_*_action |
Contextual local admin action for Explicit Device, Archived Client, or Deleted Client offboarding |
keep_account_rotate_final / remove_account
|
offboard_offline_auto_archive_days |
Days an offline pending_offboard device waits before auto-archiving |
14d |
require_mfa_for_secrets |
Require RFC 6238 Step-Up TOTP before revealing LAPS or BitLocker | true |
self_healing_max_runs_per_hour |
Circuit-breaker threshold before halting flapping watchdogs | 3 runs/hr |
Offline LAPS Safety: Whenever a scheduled LAPS rotation triggers for an offline device, Vitrine defers the rotation (
rotation_pending_online = 1) until the endpoint returns online — or skips it entirely iflifecycle_state = 'pending_offboard'— guaranteeing Vitrine's vaulted password never diverges from the offline OS.
Every policy tier (Global, Client, Site, Role) includes a granular Condition & State Alerting Matrix (alert_rules_json) evaluated continuously by the background scheduler (POST /api/alerts/evaluate & GET /api/alerts/events):
-
Endpoint Offline > X Days (
endpoint_offline_days, e.g.,> 7 daysfor Workstations or> 0.05 daysfor Servers) -
Disk Free Space Critical (
disk_free_percent, e.g.,< 10%) -
Sustained High CPU (
cpu_high_percent, e.g.,> 90%) -
Critical Memory Pressure (
ram_high_percent, e.g.,> 92%) -
Pending Reboot Overdue (
pending_reboot_days, e.g.,> 7 days) -
Disk Encryption / BitLocker Unprotected (
bitlocker_unprotected) -
EDR / Antivirus Inactive or Outdated (
edr_inactive) -
S.M.A.R.T. Disk Health Degraded / Failing (
smart_unhealthy) -
Self-Healing Circuit Breaker Tripped (
watchdog_tripped) -
Specialty / Network Appliance Offline (
appliance_offline) -
WAN SSL / TLS Certificate Expiring < X Days (
ssl_cert_expiring_days, e.g.,< 14 days) -
Hardware Delta or Rogue Network Drift Detected (
drift_detected)
For each condition at each policy tier, administrators independently toggle:
-
Web UI Notification Bell (
notifyUi) — Real-time alert banner & notification center badge. -
SMTP Email Dispatch (
notifyEmail) — Outbound TLS email to configured alert recipients (with optional per-tier override recipient address). -
Direct PSA Ticket Creation (
createTicket) — Opens a structured incident ticket in the local PSA queue and syncs with ITFlow. -
Deduplication Cooldown (
cooldownHours) — Prevents alert storms while an endpoint remains in the same fault state, automatically resolving once telemetry recovers.