Set project on queueForMails so span logs include project context

The Mails worker span logs were missing project.id, project.sequence,
project.region, and project.database because setProject was never
called on queueForMails. This adds setProject in the shared API
controller and in workers (Webhooks, Migrations) that trigger mails.
Also injects project into the Mails worker action.
This commit is contained in:
Chirag Aggarwal
2026-02-16 18:46:55 +05:30
parent 4e6313e471
commit 79a0b33b92
4 changed files with 6 additions and 1 deletions
+1
View File
@@ -496,6 +496,7 @@ Http::init()
$queueForMessaging->setProject($project);
$queueForFunctions->setProject($project);
$queueForBuilds->setProject($project);
$queueForMails->setProject($project);
/* Auto-set platforms */
$queueForFunctions->setPlatform($platform);
+3 -1
View File
@@ -6,6 +6,7 @@ use Appwrite\Template\Template;
use Exception;
use PHPMailer\PHPMailer\PHPMailer;
use Swoole\Runtime;
use Utopia\Database\Document;
use Utopia\Logger\Log;
use Utopia\Platform\Action;
use Utopia\Queue\Message;
@@ -32,6 +33,7 @@ class Mails extends Action
$this
->desc('Mails worker')
->inject('message')
->inject('project')
->inject('register')
->inject('log')
->callback($this->action(...));
@@ -53,7 +55,7 @@ class Mails extends Action
* @return void
* @throws Exception
*/
public function action(Message $message, Registry $register, Log $log): void
public function action(Message $message, Document $project, Registry $register, Log $log): void
{
Runtime::setHookFlags(SWOOLE_HOOK_ALL ^ SWOOLE_HOOK_TCP);
$payload = $message->getPayload() ?? [];
@@ -735,6 +735,7 @@ class Migrations extends Action
];
$queueForMails
->setProject($project)
->setSubject($subject)
->setPreview($preview)
->setBody($emailBody)
@@ -253,6 +253,7 @@ class Webhooks extends Action
->setParam('{{year}}', date("Y"));
$queueForMails
->setProject($project)
->setSubject($subject)
->setPreview($preview)
->setBody($body->render());