From 8d1f442dafdecfcb8071d11c3d8c1697e5d30a5f Mon Sep 17 00:00:00 2001 From: Cam Proudlock Date: Wed, 12 Aug 2026 16:41:16 -0400 Subject: [PATCH] Enforcement reports with asset context; contract 0.17.0 --- plugins/geenforce/api/routes.py | 5 +---- shopdb/__init__.py | 2 +- shopdb/api/__init__.py | 4 ++++ 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/geenforce/api/routes.py b/plugins/geenforce/api/routes.py index 547d85d7..48966f83 100644 --- a/plugins/geenforce/api/routes.py +++ b/plugins/geenforce/api/routes.py @@ -1014,10 +1014,7 @@ def _attach_display_roles(facts, hostnames): ShopDB's mirror of the display-type.txt each kiosk reads at startup. """ - try: - from shopdb.core.models.dashboarddefault import DashboardDefault - except ImportError: - return + from shopdb.api import DashboardDefault lowered = {name.lower() for name in hostnames} for default in DashboardDefault.query.filter_by(isactive=True).all(): host = (default.fqdn or '').split('.')[0].lower() diff --git a/shopdb/__init__.py b/shopdb/__init__.py index 547de78b..ead6e8e0 100644 --- a/shopdb/__init__.py +++ b/shopdb/__init__.py @@ -42,7 +42,7 @@ from .plugins import plugin_manager # first-time write under the declared category, and lets a plugin mark a key # readable without auth for pages that run logged out. Additive optional hook, # minor bump. -__contract_version__ = '0.16.0' +__contract_version__ = '0.17.0' # Product release version (see ADR-007). The product version and the # plugin-contract version above are distinct series with independent diff --git a/shopdb/api/__init__.py b/shopdb/api/__init__.py index 056b25a2..20459f67 100644 --- a/shopdb/api/__init__.py +++ b/shopdb/api/__init__.py @@ -48,6 +48,10 @@ from shopdb.core.models import ( Role, SupportTeam, ) +# Display-role mapping (which kiosk shows which surface). On the surface +# because a plugin reporting on displays has no other way to name what a +# display IS - the role lives in core, not in any plugin. +from shopdb.core.models.dashboarddefault import DashboardDefault # Response + pagination helpers for plugin API blueprints from shopdb.utils.responses import (