Merge branch '1.8.x' into ser-721

This commit is contained in:
Hemachandar
2025-12-16 12:41:44 +05:30
committed by GitHub
11 changed files with 45 additions and 39 deletions
-1
View File
@@ -628,7 +628,6 @@ App::init()
$queueForFunctions->setPlatform($platform);
$queueForBuilds->setPlatform($platform);
$queueForMails->setPlatform($platform);
$queueForMigrations->setPlatform($platform);
// Clone the queues, to prevent events triggered by the database listener
// from overwriting the events that are supposed to be triggered in the shutdown hook.
+1
View File
@@ -740,6 +740,7 @@ services:
- _APP_MIGRATIONS_FIREBASE_CLIENT_ID
- _APP_MIGRATIONS_FIREBASE_CLIENT_SECRET
- _APP_DATABASE_SHARED_TABLES
- _APP_OPTIONS_FORCE_HTTPS
appwrite-task-maintenance:
entrypoint: maintenance
+1 -1
View File
@@ -161,7 +161,7 @@ class Database extends Event
return $this->document;
}
public function setProject(Document $project): self
public function setProject(Document $project): static
{
$database = $project->getAttribute('database');
if (!empty($database)) {
+14 -14
View File
@@ -92,9 +92,9 @@ class Event
* Set queue used for this event.
*
* @param string $queue
* @return Event
* @return static
*/
public function setQueue(string $queue): self
public function setQueue(string $queue): static
{
$this->queue = $queue;
@@ -114,9 +114,9 @@ class Event
/**
* Set event name used for this event.
* @param string $event
* @return Event
* @return static
*/
public function setEvent(string $event): self
public function setEvent(string $event): static
{
$this->event = $event;
@@ -137,9 +137,9 @@ class Event
* Set project for this event.
*
* @param Document $project
* @return self
* @return static
*/
public function setProject(Document $project): self
public function setProject(Document $project): static
{
$this->project = $project;
return $this;
@@ -159,9 +159,9 @@ class Event
* Set platform for this event.
*
* @param array $platform
* @return self
* @return static
*/
public function setPlatform(array $platform): self
public function setPlatform(array $platform): static
{
$this->platform = $platform;
return $this;
@@ -181,9 +181,9 @@ class Event
* Set user for this event.
*
* @param Document $user
* @return self
* @return static
*/
public function setUser(Document $user): self
public function setUser(Document $user): static
{
$this->user = $user;
@@ -193,9 +193,9 @@ class Event
/**
* Set user ID for this event.
*
* @return self
* @return static
*/
public function setUserId(string $userId): self
public function setUserId(string $userId): static
{
$this->userId = $userId;
@@ -225,9 +225,9 @@ class Event
*
* @param array $payload
* @param array $sensitive
* @return self
* @return static
*/
public function setPayload(array $payload, array $sensitive = []): self
public function setPayload(array $payload, array $sensitive = []): static
{
$this->payload = $payload;
-13
View File
@@ -161,19 +161,6 @@ class Messaging extends Event
return $this->scheduledAt;
}
/**
* Set project for this event.
*
* @param Document $project
* @return self
*/
public function setProject(Document $project): self
{
$this->project = $project;
return $this;
}
/**
* Prepare the payload for the event
*
@@ -177,6 +177,7 @@ class Decrement extends Action
value: $value,
min: $min
);
$document->setAttribute('$' . $this->getCollectionsEventsContext() . 'Id', $collectionId);
} catch (ConflictException) {
throw new Exception($this->getConflictException());
} catch (NotFoundException) {
@@ -177,6 +177,7 @@ class Increment extends Action
value: $value,
max: $max
);
$document->setAttribute('$' . $this->getCollectionsEventsContext() . 'Id', $collectionId);
} catch (ConflictException) {
throw new Exception($this->getConflictException());
} catch (NotFoundException) {
+4 -3
View File
@@ -62,9 +62,6 @@ class Messaging extends Action
*/
public function __construct()
{
$this->adapter = $this->createInternalSMSAdapter();
$this
->desc('Messaging worker')
->inject('message')
@@ -390,6 +387,10 @@ class Messaging extends Action
private function sendInternalSMSMessage(Document $message, Document $project, array $recipients, Log $log): void
{
if ($this->adapter === null) {
$this->adapter = $this->createInternalSMSAdapter();
}
if ($this->adapter === null) {
Console::warning('Skipped SMS processing. SMS adapter is not set.');
return;
+19 -7
View File
@@ -52,8 +52,6 @@ class Migrations extends Action
protected array $plan;
protected array $platform;
/**
* @var array<string, int>
*/
@@ -108,7 +106,6 @@ class Migrations extends Action
$this->deviceForMigrations = $deviceForMigrations;
$this->deviceForFiles = $deviceForFiles;
$this->plan = $plan;
$this->platform = $payload['platform'] ?? [];
if (empty($payload)) {
throw new Exception('Missing payload');
@@ -144,10 +141,15 @@ class Migrations extends Action
$credentials = $migration->getAttribute('credentials');
$migrationOptions = $migration->getAttribute('options');
$dataSource = Appwrite::SOURCE_API;
$endpoint = $this->platform['endpoint'] ?: ($credentials['endpoint'] ?? 'http://appwrite.test/v1');
$database = null;
$queries = [];
if ($credentials['endpoint'] === 'http://localhost/v1') {
$platform = Config::getParam('platform', []);
$protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS') === 'disabled' ? 'http' : 'https';
$credentials['endpoint'] = $protocol . '://' . $platform['apiHostname'] . '/v1';
}
if ($source === Appwrite::getName() && $destination === DestinationCSV::getName()) {
$dataSource = Appwrite::SOURCE_DATABASE;
$database = $this->dbForProject;
@@ -178,7 +180,7 @@ class Migrations extends Action
),
SourceAppwrite::getName() => new SourceAppwrite(
$credentials['projectId'],
$endpoint,
$credentials['endpoint'],
$credentials['apiKey'],
$dataSource,
$database,
@@ -206,10 +208,13 @@ class Migrations extends Action
$destination = $migration->getAttribute('destination');
$options = $migration->getAttribute('options', []);
$protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS') === 'disabled' ? 'http' : 'https';
$platform = Config::getParam('platform', []);
return match ($destination) {
DestinationAppwrite::getName() => new DestinationAppwrite(
$this->project->getId(),
$this->platform['endpoint'],
$protocol . '://' . $platform['apiHostname'] . '/v1',
$apiKey,
$this->dbForProject,
Config::getParam('collections', [])['databases']['collections'],
@@ -306,6 +311,8 @@ class Migrations extends Action
$transfer = $source = $destination = null;
try {
if (
$migration->getAttribute('source') === SourceAppwrite::getName() &&
@@ -313,8 +320,13 @@ class Migrations extends Action
) {
$credentials = $migration->getAttribute('credentials', []);
$credentials['projectId'] = $credentials['projectId'] ?? $project->getId();
$credentials['endpoint'] = $credentials['endpoint'] ?? $this->platform['endpoint'];
$credentials['apiKey'] = $credentials['apiKey'] ?? $tempAPIKey;
if (empty($credentials['endpoint'])) {
$platform = Config::getParam('platform', []);
$protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS') === 'disabled' ? 'http' : 'https';
$credentials['endpoint'] = $protocol . '://' . $platform['apiHostname'] . '/v1';
}
$migration->setAttribute('credentials', $credentials);
}
@@ -6118,6 +6118,7 @@ trait DatabasesBase
]));
$this->assertEquals(200, $inc['headers']['status-code']);
$this->assertEquals(6, $inc['body']['count']);
$this->assertEquals($collectionId, $inc['body']['$collectionId']);
// Verify count = 6
$get = $this->client->call(Client::METHOD_GET, "/databases/$databaseId/collections/$collectionId/documents/$docId", array_merge([
@@ -6229,6 +6230,7 @@ trait DatabasesBase
]));
$this->assertEquals(200, $dec['headers']['status-code']);
$this->assertEquals(9, $dec['body']['count']);
$this->assertEquals($collectionId, $dec['body']['$collectionId']);
$get = $this->client->call(Client::METHOD_GET, '/databases/' . $databaseId . '/collections/' . $collectionId . '/documents/' . $documentId, array_merge([
'content-type' => 'application/json',
@@ -7760,6 +7760,7 @@ trait DatabasesBase
'x-appwrite-project' => $this->getProject()['$id'],
]));
$this->assertEquals(200, $inc['headers']['status-code']);
$this->assertEquals($tableId, $inc['body']['$tableId']);
$this->assertEquals(6, $inc['body']['count']);
// Verify count = 6
@@ -7872,6 +7873,7 @@ trait DatabasesBase
]));
$this->assertEquals(200, $dec['headers']['status-code']);
$this->assertEquals(9, $dec['body']['count']);
$this->assertEquals($tableId, $dec['body']['$tableId']);
$get = $this->client->call(Client::METHOD_GET, '/tablesdb/' . $databaseId . '/tables/' . $tableId . '/rows/' . $rowId, array_merge([
'content-type' => 'application/json',