1
0
Fork 0
mirror of synced 2024-09-18 10:29:47 +12:00

detailed error logs if development key is provided

This commit is contained in:
Damodar Lohani 2024-08-12 05:44:52 +00:00
parent 61c5848be4
commit 0a2eee0118
3 changed files with 8 additions and 6 deletions

View file

@ -671,7 +671,8 @@ App::error()
->inject('logger')
->inject('log')
->inject('queueForUsage')
->action(function (Throwable $error, App $utopia, Request $request, Response $response, Document $project, ?Logger $logger, Log $log, Usage $queueForUsage) {
->inject('hasDevelopmentKey')
->action(function (Throwable $error, App $utopia, Request $request, Response $response, Document $project, ?Logger $logger, Log $log, Usage $queueForUsage, bool $hasDevelopmentKey) {
$version = System::getEnv('_APP_VERSION', 'UNKNOWN');
$route = $utopia->getRoute();
$class = \get_class($error);
@ -859,7 +860,7 @@ App::error()
$type = $error->getType();
$output = ((App::isDevelopment())) ? [
$output = ((App::isDevelopment()) || $hasDevelopmentKey) ? [
'message' => $message,
'code' => $code,
'file' => $file,
@ -900,7 +901,7 @@ App::error()
$response->dynamic(
new Document($output),
$utopia->isDevelopment() ? Response::MODEL_ERROR_DEV : Response::MODEL_ERROR
$utopia->isDevelopment() || $hasDevelopmentKey ? Response::MODEL_ERROR_DEV : Response::MODEL_ERROR
);
});

View file

@ -357,7 +357,8 @@ App::init()
->inject('queueForUsage')
->inject('dbForProject')
->inject('mode')
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, Usage $queueForUsage, Database $dbForProject, string $mode) use ($databaseListener) {
->inject('hasDevelopmentKey')
->action(function (App $utopia, Request $request, Response $response, Document $project, Document $user, Event $queueForEvents, Messaging $queueForMessaging, Audit $queueForAudits, Delete $queueForDeletes, EventDatabase $queueForDatabase, Build $queueForBuilds, Usage $queueForUsage, Database $dbForProject, string $mode, bool $hasDevelopmentKey) use ($databaseListener) {
$route = $utopia->getRoute();
@ -424,6 +425,7 @@ App::init()
$enabled // Abuse is enabled
&& !$isAppUser // User is not API key
&& !$isPrivilegedUser // User is not an admin
&& !$hasDevelopmentKey // request doesn't not contain development key
&& $abuse->check() // Route is rate-limited
) {
throw new Exception(Exception::GENERAL_RATE_LIMIT_EXCEEDED);

View file

@ -1752,10 +1752,9 @@ App::setResource('plan', function (array $plan = []) {
App::setResource('hasDevelopmentKey', function ($request, $project, $dbForConsole) {
$developmentKey = $request->getHeader('x-appwrite-development-key', '');
// Check if given key match project Test API keys
// Check if given key match project's development keys
$key = $project->find('secret', $developmentKey, 'developmentKeys');
if ($key) {
$expire = $key->getAttribute('expire');
if (!empty($expire) && $expire < DatabaseDateTime::formatTz(DatabaseDateTime::now())) {
return false;