add Entra device identity to computers and Azure/Thor import sources
PC records now carry Entra/Azure device identity so imported machines keep a durable link back to their directory object instead of matching on hostname alone. Adds azuredeviceid, azureobjectid, and azuredevicecategory to the Computer model with matching migrations, surfaces them read-only in PCDetail as an Entra Device Info card, and lets PCForm edit the device id directly. The computers plugin registers a machineassetnumber import hook that reconciles PC-to-machine links during bulk import and warns on unresolved or conflicting relationships. Adds importsources adapters that normalize Azure device-group and Thor PC inventory exports into canonical ShopDB CSVs via hostname alignment, exposes register_import_hook and RowWarning on the shopdb.api contract surface (contract 0.21.0), and refreshes the Import Site Assets page with clearer source instructions. Includes reconcile_locations maintenance script and coverage for the new import paths.
This commit is contained in:
@@ -95,6 +95,15 @@ from shopdb.core.services.dualpath import (
|
||||
dualpath_single_machine_enabled,
|
||||
)
|
||||
|
||||
# Bulk-import extension point: a plugin registers a virtual column on an
|
||||
# importable CSV table plus a post-write row hook, so a relationship a site
|
||||
# would otherwise hand-build (a PC's machine number -> a controls link) can be
|
||||
# written in the row itself. Core never learns what the column means.
|
||||
from shopdb.core.services.csvimport import (
|
||||
register_import_hook,
|
||||
RowWarning,
|
||||
)
|
||||
|
||||
# Legacy employee directory lookup (read-only) used by notifications
|
||||
from shopdb.utils.employee_db import employee_connection
|
||||
from shopdb.utils.mailer import send_email, send_alert, send_webhook
|
||||
@@ -261,6 +270,9 @@ __all__ = [
|
||||
'resolve_asset_position',
|
||||
'resolve_dualpath_pairs',
|
||||
'dualpath_single_machine_enabled',
|
||||
# Bulk-import extension point
|
||||
'register_import_hook',
|
||||
'RowWarning',
|
||||
# Infrastructure
|
||||
'db',
|
||||
'cache',
|
||||
|
||||
Reference in New Issue
Block a user