diff --git a/tools/security-bootstrap-console/security_bootstrap_console.py b/tools/security-bootstrap-console/security_bootstrap_console.py index cc8be72..e189765 100755 --- a/tools/security-bootstrap-console/security_bootstrap_console.py +++ b/tools/security-bootstrap-console/security_bootstrap_console.py @@ -578,6 +578,7 @@ def merged_approval_metadata( "openbao_preflight_passed", "openbao_init_output_produced", "openbao_initialized", + "openbao_post_unseal_verified", "openbao_trial_material_exposed", "openbao_compromise_response_complete", "openbao_unseal_keys_rotated", @@ -793,6 +794,7 @@ def metadata_template() -> dict[str, Any]: "openbao_preflight_passed": False, "openbao_init_output_produced": False, "openbao_initialized": False, + "openbao_post_unseal_verified": False, "openbao_trial_material_exposed": False, "openbao_compromise_response_complete": False, "openbao_unseal_keys_rotated": False, @@ -1149,10 +1151,10 @@ def command_payloads(data: dict[str, Any]) -> list[dict[str, str]]: custody_approved = custody_mode_approved(data) init_output = yes(data, "openbao_init_output_produced") initialized = yes(data, "openbao_initialized") + post_unseal_verified = yes(data, "openbao_post_unseal_verified") trial_exposed = yes(data, "openbao_trial_material_exposed") keys_rotated = yes(data, "openbao_unseal_keys_rotated") root_disposed = data.get("root_token_disposition") in {"revoked", "offline-sealed"} - restore_done = yes(data, "restore_drill_passed") status_state = "todo" status_reason = "Run any time to inspect the current OpenBao deployment state." @@ -1199,10 +1201,10 @@ def command_payloads(data: dict[str, Any]) -> list[dict[str, str]]: config_state = "blocked" config_reason = "OpenBao must be initialized and unsealed first." - verify_state = "done" if restore_done else "todo" - verify_reason = "Restore proof has been recorded." - if not restore_done: - verify_reason = "Verify post-unseal readiness, snapshot, and isolated restore." + verify_state = "done" if post_unseal_verified else "todo" + verify_reason = "Post-unseal readiness has been verified." + if not post_unseal_verified: + verify_reason = "Verify filesystem and post-unseal readiness before live secrets move in." if not initialized: verify_state = "blocked" verify_reason = "OpenBao must be initialized and unsealed first." @@ -2201,6 +2203,7 @@ def ui_html() -> str: +