Files
shopdb-flask/plugins/computers/client
cproudlock 9947a477b8
Some checks failed
CI / naming (push) Successful in 3s
CI / frontend (push) Successful in 12s
CI / migrations-mysql (push) Successful in 43s
CI / backend (push) Failing after 5m6s
Seed DeviceId in the registry from the identity a bay already carries
Phase 3 of the device-identity proposal moves device identity to
HKLM:\SOFTWARE\GE\ShopDB\DeviceId, which survives the profile cleanup and disk
hygiene that eats C:\Enrollment and needs no new key: the collector already
opens that path for BaseUrl and ApiToken. This is the backfill that gets a
value in there without re-imaging anything.

The source depends on the pc-type, and that is the whole point. DeviceId names
the DEVICE, while a machine number answers "which bay is this" - a different
fact that coincides for exactly one family:

  CMM           the machine number IS the instrument id (CMM4), which is why
                cmmid.txt has always doubled as identity. Copied.
  part marker   the machine number is the OPERATION, and several markers serve
                one operation. Copying it would name the operation as the
                device, which the collector refuses as the wrong kind of asset
                because a machine filed under a device label reads as a marker
                everywhere downstream. Never copied.
  Keyence,      no per-bay id has ever existed; asset-id.txt is the only
  Genspect,     identity these have.
  wax-trace
  anything else not a device bay, so nothing is written. DeviceId is not
                consumed for those pc-types and a value left there is a
                landmine for the day one gains a device spec.

Resolution per family mirrors Report-AssetToShopDB.ps1, including the 9999
placeholder skip and reading WOW6432Node before the native eDNC key.

Refuses to overwrite a DeviceId that disagrees, unless -Force. asset-id.txt is
written once at imaging and nothing updates it on a device swap, so a stale
file clobbering a corrected registry value would reintroduce the exact defect
this move exists to fix. GE-Enforce already reached the same conclusion for
machine-number.txt.

Verified in the win11 VM across ten cases: not-a-device bay, part marker,
CMM precedence, idempotent re-run, machine-number exclusion, eDNC fallback,
9999 skip, stale-file refusal (exit 2), -Force, and -WhatIf. The part-marker
guard was then planted - flipping it to treat the machine number as identity
writes operation 0613 into DeviceId, so the passing test is not vacuous.

Scope: product
2026-09-04 09:24:15 -04:00
..