fix(reboot): mark redacted vmx package display-only
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m15s
CD Pipeline / build-and-deploy (push) Successful in 4m55s
CD Pipeline / post-deploy-checks (push) Successful in 1m48s
All checks were successful
CD Pipeline / workflow-shape (push) Successful in 1s
CD Pipeline / cancel-stale-cd (push) Has been skipped
CD Pipeline / tests (push) Successful in 2m15s
CD Pipeline / build-and-deploy (push) Successful in 4m55s
CD Pipeline / post-deploy-checks (push) Successful in 1m48s
This commit is contained in:
@@ -485,6 +485,7 @@ from src.services.telegram_alert_monitoring_live_receipt_apply import (
|
||||
)
|
||||
from src.services.windows99_vmx_source_repair_package import (
|
||||
load_latest_windows99_vmx_source_repair_package,
|
||||
mark_windows99_vmx_source_repair_public_redaction_boundary,
|
||||
)
|
||||
|
||||
router = APIRouter(prefix="/agents", tags=["Agent Teams"])
|
||||
@@ -1521,7 +1522,10 @@ async def get_reboot_auto_recovery_slo_scorecard() -> dict[str, Any]:
|
||||
load_latest_stockplatform_public_api_runtime_readback
|
||||
)
|
||||
apply_stockplatform_runtime_readback(payload, stockplatform_runtime)
|
||||
return redact_public_lan_topology(payload)
|
||||
redacted_payload = redact_public_lan_topology(payload)
|
||||
return mark_windows99_vmx_source_repair_public_redaction_boundary(
|
||||
redacted_payload
|
||||
)
|
||||
except FileNotFoundError as exc:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
@@ -1552,7 +1556,10 @@ async def get_windows99_vmx_source_repair_package() -> dict[str, Any]:
|
||||
payload = await asyncio.to_thread(
|
||||
load_latest_windows99_vmx_source_repair_package
|
||||
)
|
||||
return redact_public_lan_topology(payload)
|
||||
redacted_payload = redact_public_lan_topology(payload)
|
||||
return mark_windows99_vmx_source_repair_public_redaction_boundary(
|
||||
redacted_payload
|
||||
)
|
||||
except FileNotFoundError as exc:
|
||||
raise HTTPException(
|
||||
status_code=status.HTTP_404_NOT_FOUND,
|
||||
|
||||
@@ -47,6 +47,53 @@ def _with_ui_counts(
|
||||
return payload
|
||||
|
||||
|
||||
def _mark_package_public_redaction_boundary(
|
||||
package: dict[str, Any],
|
||||
) -> dict[str, Any]:
|
||||
payload = dict(package)
|
||||
payload["public_lan_topology_redacted"] = True
|
||||
payload["redacted_public_display_only"] = True
|
||||
payload["check_mode_probe_commands_executable"] = False
|
||||
payload["internal_console_package_required_for_execution"] = True
|
||||
payload["public_execution_note"] = (
|
||||
"public_endpoint_redacts_lan_like_vmx_path_segments_use_authorized_"
|
||||
"internal_console_package_before_executing_probe_commands"
|
||||
)
|
||||
|
||||
vm_rows = payload.get("vm_rows")
|
||||
if isinstance(vm_rows, list):
|
||||
redacted_rows: list[Any] = []
|
||||
for row in vm_rows:
|
||||
if isinstance(row, dict):
|
||||
redacted_row = dict(row)
|
||||
redacted_row["public_lan_topology_redacted"] = True
|
||||
redacted_row["check_mode_probe_commands_executable"] = False
|
||||
redacted_rows.append(redacted_row)
|
||||
else:
|
||||
redacted_rows.append(row)
|
||||
payload["vm_rows"] = redacted_rows
|
||||
return payload
|
||||
|
||||
|
||||
def mark_windows99_vmx_source_repair_public_redaction_boundary(
|
||||
payload: dict[str, Any],
|
||||
) -> dict[str, Any]:
|
||||
"""Mark public-redacted VMX package fields as display-only evidence."""
|
||||
if payload.get("schema_version") == (
|
||||
"windows99_vmx_source_repair_check_mode_package_v1"
|
||||
):
|
||||
return _mark_package_public_redaction_boundary(payload)
|
||||
|
||||
package = payload.get("windows99_vmx_source_repair_package")
|
||||
if isinstance(package, dict):
|
||||
redacted_payload = dict(payload)
|
||||
redacted_payload["windows99_vmx_source_repair_package"] = (
|
||||
_mark_package_public_redaction_boundary(package)
|
||||
)
|
||||
return redacted_payload
|
||||
return payload
|
||||
|
||||
|
||||
def _alias_lists_match(package: dict[str, Any], windows99: dict[str, Any]) -> bool:
|
||||
return _strings(package.get("missing_vmx_aliases")) == _strings(
|
||||
windows99.get("missing_vmx_aliases")
|
||||
|
||||
Reference in New Issue
Block a user