Machine claim vs handover; alerts gated off; ntlars empty-value fix

This commit is contained in:
2026-08-10 14:49:17 -04:00
parent 502728c9f6
commit d40be9ca68
3 changed files with 400 additions and 42 deletions

View File

@@ -55,10 +55,23 @@ ADR-007 and ADR-002.
that had been pulled out. The link is a `controls` relationship carrying a
`collector:machine` origin label, so a link made by hand is never touched.
Superseding a PC archives the old link rather than deleting it, keeping the
history of which PC ran a machine and when, and raises an alert by email and
webhook. The retired PC's status is deliberately left alone: the collector
cannot tell whether it was shelved, sent for repair or re-imaged for another
bay, so a person decides.
history of which PC ran a machine and when. The retired PC's status is
deliberately left alone: the collector cannot tell whether it was shelved,
sent for repair or re-imaged for another bay, so a person decides.
A second PC reporting a machine another PC already holds is treated as a
claim, not a handover. A PC imaged for a machine carries that number before
it ever reaches the floor, so the PC actually running the machine keeps the
link while it is still reporting and still In Use, and the challenger is
recorded as a dormant link. The handover completes on its own once the old PC
has been quiet for a day, or immediately when someone moves it off In Use.
Without this the two PCs traded the link back and forth on every collector
cycle.
Alerts for both cases go out by email and webhook, gated on a new
`computers_machinelink_alerts` setting that ships OFF: a site may legitimately
run several PCs on one machine number, and there the alerts fire on correct
data. The collector response warns either way.
- Plugin contract 0.16.0: `get_settings_defaults()` lets a plugin declare the
settings it owns (key, default, type, category, description, and whether an
unauthenticated caller may read it). See `docs/PLUGIN-HOOKS.md`.