Extended healthcheck debug in debug mode

This commit is contained in:
Constantin Graf
2024-11-15 13:17:33 +01:00
parent 2cf9b3aa8f
commit 9e77500d94
3 changed files with 73 additions and 20 deletions

View File

@@ -45,8 +45,7 @@ class HealthCheckController extends Controller
$dbTimezone = DB::select('show timezone;'); $dbTimezone = DB::select('show timezone;');
return response() $response = [
->json([
'ip_address' => $ipAddress, 'ip_address' => $ipAddress,
'url' => $request->url(), 'url' => $request->url(),
'path' => $request->path(), 'path' => $request->path(),
@@ -57,6 +56,23 @@ class HealthCheckController extends Controller
'timezone' => $dbTimezone[0]->TimeZone, 'timezone' => $dbTimezone[0]->TimeZone,
'secure' => $secure, 'secure' => $secure,
'is_trusted_proxy' => $isTrustedProxy, 'is_trusted_proxy' => $isTrustedProxy,
]); ];
if (app()->hasDebugModeEnabled()) {
$response['app_debug'] = true;
$response['app_url'] = config('app.url');
$response['app_env'] = app()->environment();
$response['app_timezone'] = config('app.timezone');
$response['app_force_https'] = config('app.force_https');
$response['trusted_proxies'] = config('trustedproxy.proxies');
$headers = $request->headers->all();
if (isset($headers['cookie'])) {
$headers['cookie'] = '***';
}
$response['headers'] = $headers;
}
return response()
->json($response);
} }
} }

View File

@@ -65,7 +65,7 @@ return [
'asset_url' => env('ASSET_URL'), 'asset_url' => env('ASSET_URL'),
'force_https' => env('APP_FORCE_HTTPS', false), 'force_https' => (bool) env('APP_FORCE_HTTPS', false),
/* /*
|-------------------------------------------------------------------------- |--------------------------------------------------------------------------

View File

@@ -33,20 +33,57 @@ class HealthCheckEndpointTest extends EndpointTestAbstract
public function test_debug_endpoint_returns_ok(): void public function test_debug_endpoint_returns_ok(): void
{ {
// Arrange
config(['app.debug' => false]);
// Act // Act
$response = $this->get('health-check/debug'); $response = $this->get('health-check/debug');
// Assert // Assert
$response->assertSuccessful(); $response->assertSuccessful();
$response->assertJsonStructure([ $response->assertExactJsonStructure([
'ip_address',
'hostname',
'timestamp',
'date_time_utc',
'date_time_app', 'date_time_app',
'timezone', 'date_time_utc',
'secure', 'hostname',
'ip_address',
'is_trusted_proxy', 'is_trusted_proxy',
'path',
'secure',
'timestamp',
'timezone',
'url',
]);
config(['app.debug' => true]);
}
public function test_debug_endpoint_returns_more_information_if_debug_mode_is_enabled(): void
{
// Arrange
config(['app.debug' => true]);
// Act
$response = $this->get('health-check/debug');
// Assert
$response->assertSuccessful();
$response->assertExactJsonStructure([
'app_debug',
'app_env',
'app_force_https',
'app_timezone',
'app_url',
'date_time_app',
'date_time_utc',
'headers',
'hostname',
'ip_address',
'is_trusted_proxy',
'path',
'secure',
'timestamp',
'timezone',
'trusted_proxies',
'url',
]); ]);
} }
} }