Preserve extension names in module preflight

This commit is contained in:
2026-07-26 18:06:43 +03:00
parent ad4bd3ec72
commit 00040e5ce4
7 changed files with 440 additions and 17 deletions
+29 -6
View File
@@ -41912,7 +41912,11 @@ def metadata_saved_state_modules_owner_guid_from_selector(
}
def public_saved_state_modules_search_row(row: dict[str, Any]) -> dict[str, Any] | None:
def public_saved_state_modules_search_row(
row: dict[str, Any],
*,
requested_extension: str | None = None,
) -> dict[str, Any] | None:
owner = row.get("owner") if isinstance(row.get("owner"), dict) else {}
form = row.get("form") if isinstance(row.get("form"), dict) else {}
module = row.get("module") if isinstance(row.get("module"), dict) else {}
@@ -41936,6 +41940,7 @@ def public_saved_state_modules_search_row(row: dict[str, Any]) -> dict[str, Any]
}
qualified_name = str(row.get("qualified_name") or row.get("display_name") or "").strip()
selector = {
**({"extension": requested_extension} if requested_extension else {}),
**({"ref": owner_ref} if owner_ref else {}),
**({"form": form_public.get("name")} if form_public.get("name") else {}),
**({"module": module_public.get("name")} if module_public.get("name") else {}),
@@ -41960,6 +41965,7 @@ def public_saved_state_modules_search_row(row: dict[str, Any]) -> dict[str, Any]
stream_qualified_name = str(stream.get("qualified_name") or stream.get("display_name") or qualified_name).strip()
write_plan_target = {
"kind": "module",
**({"extension": requested_extension} if requested_extension else {}),
**({"ref": stream_owner_ref} if stream_owner_ref else {}),
**({"form": stream_form.get("name")} if stream_form.get("name") else {}),
**({"module": stream_module.get("name")} if stream_module.get("name") else {}),
@@ -42173,11 +42179,28 @@ def metadata_saved_state_modules_search(payload: dict[str, Any]) -> dict[str, An
break
if len(modules) >= int(limit or 50):
break
public_modules = modules if include_storage else [
public_row
for row in modules
if (public_row := public_saved_state_modules_search_row(row)) is not None
]
public_modules = modules if include_storage else []
if not include_storage:
extension_names_by_guid: dict[str, str] = {}
if not extension_filter and any(row.get("table") == "ConfigCASSave" for row in modules):
extension_names_by_guid = {
str(guid).strip().lower(): str(item.get("name") or "").strip()
for guid, item in extension_map_by_guid(base_id).items()
if str(item.get("name") or "").strip()
}
for row in modules:
row_extension = extension_filter or None
if not row_extension and row.get("table") == "ConfigCASSave":
row_file_name = str(row.get("file_name") or "")
extension_guid_from_file = row_file_name.split("__", 1)[0].strip().lower() if "__" in row_file_name else ""
if extension_guid_from_file:
row_extension = extension_names_by_guid.get(extension_guid_from_file)
public_row = public_saved_state_modules_search_row(
row,
requested_extension=row_extension,
)
if public_row is not None:
public_modules.append(public_row)
result = {
"schema": "onec_saved_state_module_search.v1",
"status": "ok",