Site Health Guard - Source Excerpt 03
Summary
This source excerpt preserves a bounded section of Antichrist.net/wp-content/plugins/uaix-locale-router/includes/site-health-guard.php so readers can inspect the evidence without opening the full source file.
**Source path:** Antichrist.net/wp-content/plugins/uaix-locale-router/includes/site-health-guard.php
if ( jai_site_health_guard_is_frontend_request() ) {
$last_success = jai_site_health_guard_read_state( 'last-success' );
if ( ! is_array( $last_success ) || empty( $last_success['updated_epoch'] ) || time() - (int) $last_success['updated_epoch'] > 60 ) {
jai_site_health_guard_write_state(
'last-success',
array(
'status' => $status,
'duration_ms' => $duration,
'path' => jai_site_health_guard_request_path(),
)
);
}
}
}
function jai_site_health_guard_token_from_request( $request ) {
$token = '';
if ( is_object( $request ) && method_exists( $request, 'get_header' ) ) {
$token = (string) $request->get_header( 'x-site-health-token' );
}
if ( '' === $token && is_object( $request ) && method_exists( $request, 'get_param' ) ) {
$token = (string) $request->get_param( 'token' );
}
return $token;
}
function jai_site_health_guard_expected_token() {
if ( defined( 'JAI_SITE_HEALTH_GUARD_TOKEN' ) && JAI_SITE_HEALTH_GUARD_TOKEN ) {
return (string) JAI_SITE_HEALTH_GUARD_TOKEN;
}
$env = getenv( 'JAI_SITE_HEALTH_GUARD_TOKEN' );
return is_string( $env ) ? $env : '';
}
function jai_site_health_guard_can_read_logs( $request ) {
if ( function_exists( 'current_user_can' ) && current_user_can( 'manage_options' ) ) {
return true;
}
$expected = jai_site_health_guard_expected_token();
$actual = jai_site_health_guard_token_from_request( $request );
return '' !== $expected && '' !== $actual && hash_equals( $expected, $actual );
}
function jai_site_health_guard_recent_events( $limit ) {
$dir = jai_site_health_guard_log_dir();
$files = glob( $dir . '/events-*.php' );
if ( ! is_array( $files ) ) {
return array();
}
rsort( $files );
$events = array();
foreach ( $files as $file ) {
$lines = @file( $file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES );
if ( ! is_array( $lines ) ) {
continue;
}
foreach ( array_reverse( $lines ) as $line ) {
if ( 0 === strpos( $line, '<?php' ) ) {
continue;
}
$decoded = json_decode( $line, true );
if ( is_array( $decoded ) ) {
$events[] = $decoded;
}
if ( count( $events ) >= $limit ) {
break 2;
}
}
}
return $events;
}
function jai_site_health_guard_delete_state( $name ) {
$file = jai_site_health_guard_state_path( $name );
if ( is_file( $file ) ) {
@unlink( $file );
}
}
add_action(
'rest_api_init',
static function () {
register_rest_route(
'site-health-guard/v1',
'/ping',
array(
'methods' => 'GET',
'permission_callback' => '__return_true',
'callback' => static function () {
return array(
'ok' => true,
'timestamp' => gmdate( 'c' ),
'guard_version' => JAI_SITE_HEALTH_GUARD_VERSION,
'loaded_file' => jai_site_health_guard_clean_path( __FILE__ ),
'must_use' => defined( 'WPMU_PLUGIN_DIR' ) && 0 === strpos( str_replace( '\\', '/', __FILE__ ), str_replace( '\\', '/', WPMU_PLUGIN_DIR ) ),
'wp_cache' => defined( 'WP_CACHE' ) ? (bool) WP_CACHE : null,
'recovery_signal' => jai_site_health_guard_recovery_signal(),
'plugin_isolation' => defined( 'JAI_SITE_HEALTH_GUARD_PLUGIN_ISOLATION' ) && JAI_SITE_HEALTH_GUARD_PLUGIN_ISOLATION,
'theme_isolation' => defined( 'JAI_SITE_HEALTH_GUARD_THEME_ISOLATION' ) && JAI_SITE_HEALTH_GUARD_THEME_ISOLATION,
);
},
)
);
register_rest_route(
'site-health-guard/v1',
'/recent',
array(
'methods' => 'GET',
'permission_callback' => 'jai_site_health_guard_can_read_logs',
'callback' => static function ( $request ) {
$limit = is_object( $request ) && method_exists( $request, 'get_param' ) ? (int) $request->get_param( 'limit' ) : 25;
$limit = max( 1, min( 100, $limit ) );
return array(
'ok' => true,
'states' => array(
'last_fatal' => jai_site_health_guard_read_state( 'last-fatal' ),
'last_recovery' => jai_site_health_guard_read_state( 'last-recovery' ),
'last_success' => jai_site_health_guard_read_state( 'last-success' ),
),
'flags' => array(
'frontdoor_recovery' => jai_site_health_guard_read_flag( 'frontdoor-recovery.flag' ),
'disable_plugins' => jai_site_health_guard_read_flag( 'disable-plugins.flag' ),
'disable_theme' => jai_site_health_guard_read_flag( 'disable-theme.flag' ),
),
'events' => jai_site_health_guard_recent_events( $limit ),
'log_path' => 'wp-content/site-health-logs/*.php',
);
},
)
);
register_rest_route(
'site-health-guard/v1',
'/clear',
array(
'methods' => 'POST',
'permission_callback' => 'jai_site_health_guard_can_read_logs',
'callback' => static function () {
jai_site_health_guard_delete_state( 'last-fatal' );
jai_site_health_guard_delete_state( 'last-recovery' );
jai_site_health_guard_log( 'state_cleared', array( 'source' => 'rest_clear' ) );
return array(
'ok' => true,
'timestamp' => gmdate( 'c' ),
);
},
)
);
}
);
jai_site_health_guard_disable_active_plugins_if_needed();
jai_site_health_guard_disable_active_theme_if_needed();
jai_site_health_guard_maybe_recover();
jai_site_health_guard_maybe_serve_recovery_page();
register_shutdown_function( 'jai_site_health_guard_shutdown' );
}