mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Add headers for event triggered executions
This commit is contained in:
@@ -70,8 +70,11 @@ $eventDatabaseListener = function (Document $project, Document $document, Respon
|
||||
->setParam('userId', $document->getId())
|
||||
->setPayload($response->output($document, Response::MODEL_USER));
|
||||
|
||||
$scheduledAt = new \DateTime();
|
||||
|
||||
// Trigger functions, webhooks, and realtime events
|
||||
$queueForFunctions
|
||||
->setHeaders(['x-appwrite-scheduled-at' => $scheduledAt->format('Y-m-d\TH:i:s.v\Z')])
|
||||
->from($queueForEvents)
|
||||
->trigger();
|
||||
|
||||
@@ -713,10 +716,7 @@ App::shutdown()
|
||||
$queueForEvents->setPayload($responsePayload);
|
||||
}
|
||||
|
||||
$scheduledAt = new \DateTime();
|
||||
|
||||
$queueForFunctions
|
||||
->setHeaders(['x-appwrite-scheduled-at' => $scheduledAt->format('Y-m-d\TH:i:s.v\Z')])
|
||||
->from($queueForEvents)
|
||||
->trigger();
|
||||
|
||||
|
||||
@@ -142,7 +142,7 @@ const APP_AUTH_TYPE_ADMIN = 'Admin';
|
||||
// Response related
|
||||
const MAX_OUTPUT_CHUNK_SIZE = 10 * 1024 * 1024; // 10MB
|
||||
// Function headers
|
||||
const FUNCTION_ALLOWLIST_HEADERS_REQUEST = ['content-type', 'agent', 'content-length', 'host', 'x-appwrite-scheduled-at'];
|
||||
const FUNCTION_ALLOWLIST_HEADERS_REQUEST = ['content-type', 'agent', 'content-length', 'host', 'x-appwrite-scheduled-at', 'x-appwrite-execution-delay', 'x-appwrite-executed-at'];
|
||||
const FUNCTION_ALLOWLIST_HEADERS_RESPONSE = ['content-type', 'content-length'];
|
||||
// Message types
|
||||
const MESSAGE_TYPE_EMAIL = 'email';
|
||||
|
||||
@@ -164,7 +164,8 @@ class Functions extends Action
|
||||
method: 'POST',
|
||||
headers: [
|
||||
'user-agent' => 'Appwrite/' . APP_VERSION_STABLE,
|
||||
'content-type' => 'application/json'
|
||||
'content-type' => 'application/json',
|
||||
'x-appwrite-scheduled-at' => $headers['x-appwrite-scheduled-at'] ?? '',
|
||||
],
|
||||
data: null,
|
||||
user: $user,
|
||||
|
||||
@@ -1508,6 +1508,14 @@ class FunctionsCustomServerTest extends Scope
|
||||
$this->assertEquals(204, $lastExecution['responseStatusCode']);
|
||||
$this->assertStringContainsString($userId, $lastExecution['logs']);
|
||||
$this->assertStringContainsString('Event User', $lastExecution['logs']);
|
||||
|
||||
$requestHeaders = array_column($lastExecution['requestHeaders'], 'value', 'name');
|
||||
$this->assertArrayHasKey('x-appwrite-scheduled-at', $requestHeaders);
|
||||
$this->assertArrayHasKey('x-appwrite-executed-at', $requestHeaders);
|
||||
$this->assertArrayHasKey('x-appwrite-execution-delay', $requestHeaders);
|
||||
$this->assertIsNumeric($requestHeaders['x-appwrite-execution-delay']);
|
||||
$this->assertGreaterThan($requestHeaders['x-appwrite-scheduled-at'], $requestHeaders['x-appwrite-executed-at']);
|
||||
|
||||
}, 10000, 500);
|
||||
|
||||
$this->cleanupFunction($functionId);
|
||||
|
||||
Reference in New Issue
Block a user