Reciprocal controls links, dead chip links, and a resumable legacy import
The machine page now shows the PC that controls it. The endpoint was correct all along and returned both directions; AssetTriageBand discarded every peer whose type was not 'machine' and was mounted only on the PC page. The counterpart type, label and relationship types are now props. Fixed while adopting it more widely: every band chip linked to /assets/<id>, and there is no such route. The resolver that AssetRelationships.vue kept privately is now frontend/src/utils/assetRoute.js, used by both - and its type lookup is case-insensitive, because seed data capitalises the type names while this site's database does not. The legacy import is now safe to resume. The 409-resolve asked for per_page=10000 against a server that clamps to 100, so it silently searched the first 100 rows and dropped links past that on every re-run. The crosswalk is now bound to the database it describes, so one carried across a rebuild is refused rather than attaching rows to the wrong assets. Source database names are resolved from the environment, so the loader can be aimed without editing it. Full suite 2178 passed, frontend 280 passed.
This commit is contained in:
@@ -33,16 +33,34 @@ resolved decisions, and remaining stages.
|
||||
|
||||
## Status
|
||||
|
||||
Complete - all 15 stages built and verified end-to-end against a fresh scratch
|
||||
target (zero endpoint errors): `reference`, `employees`, `catalog`, `assets`
|
||||
(the hub + machineid->assetid crosswalk), `locations`, `printers`,
|
||||
All 17 stages built: `reference`, `employees`, `catalog`, `assets` (the hub +
|
||||
machineid->assetid crosswalk), `locations`, `printers`, `metrology`,
|
||||
`communications`, `applications` (+ installs), `warranties`, `notifications`,
|
||||
`knowledgebase`, `relationships`, `subnets`, `usb`, `verify`.
|
||||
`knowledgebase`, `relationships`, `defaultprinters`, `subnets`, `usb`, `verify`.
|
||||
|
||||
Last full run: 983 assets (computer 663, machine 76, network 58, measuring-tool
|
||||
136, printer 50), 24 locations, 415 employees, 850 installs, 461 primary IPs,
|
||||
464 warranties, 261 notifications, 341 KB, 93 relationships, 37 subnets, 18 USB
|
||||
devices + 232 events. UI spot-check passed (computer list + shop-floor map).
|
||||
**The counts below are from the 2026-07-13 run and are STALE.** Two routing
|
||||
changes landed after them - the `isactive=1` filter and the metrology routing
|
||||
rework - so the asset mix has moved substantially. They are kept only as a
|
||||
shape, not as a checklist: re-measure from the next full run before quoting
|
||||
them anywhere, and do not verify a fresh import against them.
|
||||
|
||||
Last full run (2026-07-13, superseded): 983 assets (computer 663, machine 76,
|
||||
network 58, measuring-tool 136, printer 50), 24 locations, 415 employees, 850
|
||||
installs, 461 primary IPs, 464 warranties, 261 notifications, 341 KB, 93
|
||||
relationships, 37 subnets, 18 USB devices + 232 events.
|
||||
|
||||
Known gaps, none of them blocking a scratch run:
|
||||
|
||||
- `warranties`, `notifications` and `knowledgebase` POST without a duplicate
|
||||
check on the API side, so resuming ACROSS one of those stages doubles its
|
||||
rows. Resuming at or after them is safe. Re-run into a clean target when in
|
||||
doubt.
|
||||
- There is no `--dry-run` and no guard on the target: the harness mints an
|
||||
admin PAT and sets `setup_complete` in whatever `DATABASE_URL` points at.
|
||||
Check the target before running.
|
||||
- The `verify` stage counts target `assets` against source `machines`, which is
|
||||
apples to oranges - the target also holds printers and synthesized metrology
|
||||
tools.
|
||||
|
||||
Known follow-ups: general asset `locationid` is null (no source column outside
|
||||
printers); the ~146 duplicate machinenumbers are first-wins-skipped by decision.
|
||||
|
||||
Reference in New Issue
Block a user