From 8253bd0dd6fe93b739b7482a04c058f2bed3aff4 Mon Sep 17 00:00:00 2001 From: Albrecht Degering Date: Tue, 8 Sep 2026 12:19:40 +0200 Subject: [PATCH] refactor(reporting): reuse exact principal projection contract Release v0.1.22. Coordinated integrity review: GovOPlaN/govoplan-core#298. --- package.json | 2 +- pyproject.toml | 4 ++-- src/govoplan_reporting/__init__.py | 2 +- src/govoplan_reporting/backend/definitions.py | 17 +---------------- src/govoplan_reporting/backend/manifest.py | 2 +- tests/test_provider_reports.py | 2 +- webui/package.json | 2 +- 7 files changed, 8 insertions(+), 23 deletions(-) diff --git a/package.json b/package.json index c1eebaa..221ff61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/reporting-webui", - "version": "0.1.21", + "version": "0.1.22", "private": true, "type": "module", "main": "webui/src/index.ts", diff --git a/pyproject.toml b/pyproject.toml index 23e3ac5..d677d0e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,14 +4,14 @@ build-backend = "setuptools.build_meta" [project] name = "govoplan-reporting" -version = "0.1.21" +version = "0.1.22" description = "GovOPlaN governed reporting and semantic BI module." readme = "README.md" requires-python = ">=3.12" license = { text = "AGPL-3.0-or-later" } authors = [{ name = "GovOPlaN" }] dependencies = [ - "govoplan-core>=0.1.45", + "govoplan-core>=0.1.46", "govoplan-access>=0.1.18", ] diff --git a/src/govoplan_reporting/__init__.py b/src/govoplan_reporting/__init__.py index 2e35a22..1657c32 100644 --- a/src/govoplan_reporting/__init__.py +++ b/src/govoplan_reporting/__init__.py @@ -1,3 +1,3 @@ """GovOPlaN Reporting module.""" -__version__ = "0.1.21" +__version__ = "0.1.22" diff --git a/src/govoplan_reporting/backend/definitions.py b/src/govoplan_reporting/backend/definitions.py index 41589af..6aa703f 100644 --- a/src/govoplan_reporting/backend/definitions.py +++ b/src/govoplan_reporting/backend/definitions.py @@ -10,6 +10,7 @@ import uuid from sqlalchemy import and_, exists, func, or_ from sqlalchemy.orm import Query, Session +from govoplan_core.core.principal_helpers import principal_actor_ids as _actor_ids from govoplan_core.core.events import ( EventActorRef, EventObjectRef, @@ -884,22 +885,6 @@ def _actor(principal: object) -> str | None: return None -def _actor_ids(principal: object) -> tuple[str, ...]: - user = getattr(principal, "user", None) - return tuple( - dict.fromkeys( - str(value) - for value in ( - getattr(principal, "account_id", None), - getattr(principal, "identity_id", None), - getattr(principal, "membership_id", None), - getattr(user, "id", None), - ) - if str(value or "").strip() - ) - ) - - def _principal_tenant(principal: object) -> str: tenant_id = str(getattr(principal, "tenant_id", "") or "").strip() if not tenant_id: diff --git a/src/govoplan_reporting/backend/manifest.py b/src/govoplan_reporting/backend/manifest.py index 090afd5..34193c4 100644 --- a/src/govoplan_reporting/backend/manifest.py +++ b/src/govoplan_reporting/backend/manifest.py @@ -83,7 +83,7 @@ from govoplan_reporting.backend.search_source import create_reporting_search_sou MODULE_ID = "reporting" MODULE_NAME = "Reporting" -MODULE_VERSION = "0.1.21" +MODULE_VERSION = "0.1.22" def _permission(scope: str, label: str, description: str) -> PermissionDefinition: diff --git a/tests/test_provider_reports.py b/tests/test_provider_reports.py index 647267b..db07131 100644 --- a/tests/test_provider_reports.py +++ b/tests/test_provider_reports.py @@ -92,7 +92,7 @@ class _Provider: del session return ReportProviderResult( report_id=request.report_id, - generated_at=datetime(2026, 8, 2, 10, 0, tzinfo=UTC), + generated_at=datetime.now(UTC), payload={"metric": 12}, source_revisions=( { diff --git a/webui/package.json b/webui/package.json index e7ff031..a73b046 100644 --- a/webui/package.json +++ b/webui/package.json @@ -1,6 +1,6 @@ { "name": "@govoplan/reporting-webui", - "version": "0.1.21", + "version": "0.1.22", "private": true, "type": "module", "main": "src/index.ts",