Sync GovOPlaN module state

This commit is contained in:
2026-07-10 21:57:21 +02:00
parent 30a0281c66
commit f362f3806b
6 changed files with 340 additions and 0 deletions

View File

@@ -465,6 +465,8 @@ def _catalog_plan_item(module_id: str) -> tuple[ModuleInstallPlanItem, dict[str,
return ModuleInstallPlanItem(
module_id=str(raw_item["module_id"]),
action="install",
source="catalog",
catalog=_catalog_plan_metadata(result),
python_package=raw_item.get("python_package") if isinstance(raw_item.get("python_package"), str) else None,
python_ref=raw_item.get("python_ref") if isinstance(raw_item.get("python_ref"), str) else None,
webui_package=raw_item.get("webui_package") if isinstance(raw_item.get("webui_package"), str) else None,
@@ -474,6 +476,28 @@ def _catalog_plan_item(module_id: str) -> tuple[ModuleInstallPlanItem, dict[str,
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail=f"Catalog install entry not found: {module_id}")
def _catalog_plan_metadata(validation: dict[str, object]) -> dict[str, object]:
metadata: dict[str, object] = {
"source": validation.get("source") or validation.get("path"),
"source_type": validation.get("source_type"),
"cache_used": bool(validation.get("cache_used")),
"cache_path": validation.get("cache_path"),
"channel": validation.get("channel"),
"sequence": validation.get("sequence"),
"generated_at": validation.get("generated_at"),
"not_before": validation.get("not_before"),
"expires_at": validation.get("expires_at"),
"signed": bool(validation.get("signed")),
"trusted": bool(validation.get("trusted")),
"key_id": validation.get("key_id"),
}
return {
key: value
for key, value in metadata.items()
if value is not None and value != ""
}
def _catalog_license_features(raw_item: dict[str, object]) -> list[str]:
value = raw_item.get("license_features")
if not isinstance(value, list):