Skip to content
Oznog

6.7 · operations and agents · after redaction

One record per thing, and a re-seed silently reverts what you just fixed

date
20260906
what happened
NetBox is the fleet's single inventory authority, seeded from YAML manifests that are idempotent by design: create if absent, patch only the fields the manifest carries, never delete. A routine re-seed to add one device type re-applied every field the manifest carried for the objects it touched, reverting a device from failed back to active and overwriting two field notes that had been edited live through the API.
what it cost
A live status correction and two notes silently undone, found because someone happened to notice the reversion, not because anything alerted on it.
what changed
A live edit to any field a manifest also carries, such as status, comments, position or type, now has to be written back into the manifest in the same sitting, or the next seed erases it.
the check now
The nightly inventory export is diffed against the manifest before any reseed that touches the same objects.

Any team treating an inventory or configuration-management system as its single source of truth needs this exact caution. Idempotent and safe are not synonyms. A seed script that only creates and patches, and never deletes, sounds like the conservative choice, and in one sense it is. But if the manifest driving it still carries a stale value for a field that somebody corrected live through the API, the next run of that same conservative script overwrites the correction with no warning. From the script’s point of view nothing unusual happened; it applied what the manifest said, which is exactly its job.

The reversion here was small and the kind that matters. A device that had been marked failed came back as active, and two hardware notes written during real maintenance disappeared. Neither produced an error, a diff, or a log line anyone was reading.

The fix was procedural rather than technical, because the script was not wrong. The manifest and the live system have to agree before the manifest is trusted again, which means a live edit is not finished until it is also a manifest edit. The nightly export exists precisely so that disagreement can be found on purpose, before the next seed resolves it silently in the wrong direction. If you run a seed-driven inventory, diff it against reality before you run it, not after you notice something missing.

Source: node0 lessons v0.1, lesson 6.7. Sanitized: checklist v0.1, 20260921; device names, internal URLs; voice pass 20260921. Part of oznog.com/node0.