From edceb3e0dbcd333910a153c3e2ed08d476e45595 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 30 Jan 2026 13:23:37 +0100 Subject: [PATCH 1/2] move preview domain under platform for future customizability --- app/config/platform.php | 1 + app/controllers/api/vcs.php | 2 +- src/Appwrite/Platform/Modules/Compute/Base.php | 4 ++-- .../Platform/Modules/Functions/Workers/Builds.php | 2 +- .../Platform/Modules/Sites/Http/Deployments/Create.php | 8 +++++--- .../Modules/Sites/Http/Deployments/Duplicate/Create.php | 6 ++++-- .../Modules/Sites/Http/Deployments/Template/Create.php | 7 +++++-- .../Modules/Sites/Http/Deployments/Vcs/Create.php | 7 +++++-- 8 files changed, 24 insertions(+), 13 deletions(-) diff --git a/app/config/platform.php b/app/config/platform.php index e44eaefa89..913390ae5e 100644 --- a/app/config/platform.php +++ b/app/config/platform.php @@ -23,4 +23,5 @@ return [ 'privacyUrl' => APP_EMAIL_PRIVACY_URL, 'websiteUrl' => 'https://' . APP_DOMAIN, 'emailSenderName' => APP_EMAIL_PLATFORM_NAME, + 'sitePreviewDomain' => System::getEnv('_APP_DOMAIN_SITES', ''), ]; diff --git a/app/controllers/api/vcs.php b/app/controllers/api/vcs.php index 2bb9c17fd3..3a67068f1c 100644 --- a/app/controllers/api/vcs.php +++ b/app/controllers/api/vcs.php @@ -341,7 +341,7 @@ $createGitDeployments = function (GitHub $github, string $providerInstallationId $projectId = $project->getId(); // Deployment preview - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['sitePreviewDomain']; $domain = ID::unique() . "." . $sitesDomain; $ruleId = md5($domain); $previewRuleId = $ruleId; diff --git a/src/Appwrite/Platform/Modules/Compute/Base.php b/src/Appwrite/Platform/Modules/Compute/Base.php index 749a9fe87a..7b844200cb 100644 --- a/src/Appwrite/Platform/Modules/Compute/Base.php +++ b/src/Appwrite/Platform/Modules/Compute/Base.php @@ -144,7 +144,7 @@ class Base extends Action return $deployment; } - public function redeployVcsSite(Request $request, Document $site, Document $project, Document $installation, Database $dbForProject, Database $dbForPlatform, Build $queueForBuilds, Document $template, GitHub $github, bool $activate, Authorization $authorization, string $referenceType = 'branch', string $reference = ''): Document + public function redeployVcsSite(Request $request, Document $site, Document $project, Document $installation, Database $dbForProject, Database $dbForPlatform, Build $queueForBuilds, Document $template, GitHub $github, bool $activate, Authorization $authorization, string $referenceType = 'branch', string $reference = '', array $platform): Document { $deploymentId = ID::unique(); $providerInstallationId = $installation->getAttribute('providerInstallationId', ''); @@ -235,7 +235,7 @@ class Base extends Action ->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument('sites', $site->getId(), $site); - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['sitePreviewDomain']; $domain = ID::unique() . "." . $sitesDomain; // TODO: (@Meldiron) Remove after 1.7.x migration diff --git a/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php b/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php index 8f041dd57b..7473d0eb1f 100644 --- a/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php +++ b/src/Appwrite/Platform/Modules/Functions/Workers/Builds.php @@ -1037,7 +1037,7 @@ class Builds extends Action // VCS branch $branchName = $deployment->getAttribute('providerBranch'); if (!empty($branchName)) { - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['sitePreviewDomain']; $branchPrefix = substr($branchName, 0, 16); if (strlen($branchName) > 16) { $remainingChars = substr($branchName, 16); diff --git a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php index e752e97494..c6b00ddce0 100644 --- a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php +++ b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php @@ -88,6 +88,7 @@ class Create extends Action ->inject('queueForBuilds') ->inject('plan') ->inject('authorization') + ->inject('platform') ->callback($this->action(...)); } @@ -108,7 +109,8 @@ class Create extends Action Device $deviceForLocal, Build $queueForBuilds, array $plan, - Authorization $authorization + Authorization $authorization, + array $platform, ) { $activate = \strval($activate) === 'true' || \strval($activate) === '1'; @@ -272,7 +274,7 @@ class Create extends Action ->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument('sites', $site->getId(), $site); - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['siteDomain']; $domain = ID::unique() . "." . $sitesDomain; // TODO: (@Meldiron) Remove after 1.7.x migration @@ -342,7 +344,7 @@ class Create extends Action ->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument('sites', $site->getId(), $site); - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['siteDomain']; $domain = ID::unique() . "." . $sitesDomain; $ruleId = md5($domain); $authorization->skip( diff --git a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Duplicate/Create.php b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Duplicate/Create.php index 5656eb09ab..bb0c007850 100644 --- a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Duplicate/Create.php +++ b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Duplicate/Create.php @@ -66,6 +66,7 @@ class Create extends Action ->inject('queueForBuilds') ->inject('deviceForSites') ->inject('authorization') + ->inject('platform') ->callback($this->action(...)); } @@ -80,7 +81,8 @@ class Create extends Action Event $queueForEvents, Build $queueForBuilds, Device $deviceForSites, - Authorization $authorization + Authorization $authorization, + array $platform ) { $site = $dbForProject->getDocument('sites', $siteId); @@ -143,7 +145,7 @@ class Create extends Action $dbForProject->updateDocument('sites', $site->getId(), $site); // Preview deployments for sites - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['sitePreviewDomain']; $domain = ID::unique() . "." . $sitesDomain; // TODO: (@Meldiron) Remove after 1.7.x migration diff --git a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Template/Create.php b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Template/Create.php index aa78061057..2e079a057b 100644 --- a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Template/Create.php +++ b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Template/Create.php @@ -80,6 +80,7 @@ class Create extends Base ->inject('queueForBuilds') ->inject('gitHub') ->inject('authorization') + ->inject('platform') ->callback($this->action(...)); } @@ -99,7 +100,8 @@ class Create extends Base Event $queueForEvents, Build $queueForBuilds, GitHub $github, - Authorization $authorization + Authorization $authorization, + array $platform ) { $site = $dbForProject->getDocument('sites', $siteId); @@ -133,6 +135,7 @@ class Create extends Base github: $github, activate: $activate, authorization: $authorization, + platform: $platform ); $queueForEvents @@ -186,7 +189,7 @@ class Create extends Base ->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument('sites', $site->getId(), $site); - $sitesDomain = System::getEnv('_APP_DOMAIN_SITES', ''); + $sitesDomain = $platform['sitePreviewDomain']; $domain = ID::unique() . "." . $sitesDomain; // TODO: (@Meldiron) Remove after 1.7.x migration diff --git a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Vcs/Create.php b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Vcs/Create.php index feff28427e..ea883aca23 100644 --- a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Vcs/Create.php +++ b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Vcs/Create.php @@ -74,6 +74,7 @@ class Create extends Base ->inject('queueForBuilds') ->inject('gitHub') ->inject('authorization') + ->inject('platform') ->callback($this->action(...)); } @@ -90,7 +91,8 @@ class Create extends Base Event $queueForEvents, Build $queueForBuilds, GitHub $github, - Authorization $authorization + Authorization $authorization, + array $platform ) { $site = $dbForProject->getDocument('sites', $siteId); @@ -115,7 +117,8 @@ class Create extends Base activate: $activate, authorization: $authorization, reference: $reference, - referenceType: $type + referenceType: $type, + platform: $platform ); $queueForEvents From edbec1ef41d2829a518fecb6274be60708d8da74 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Fri, 30 Jan 2026 13:29:28 +0100 Subject: [PATCH 2/2] AI review fixes --- .../Platform/Modules/Sites/Http/Deployments/Create.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php index c6b00ddce0..c2420aa223 100644 --- a/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php +++ b/src/Appwrite/Platform/Modules/Sites/Http/Deployments/Create.php @@ -274,7 +274,7 @@ class Create extends Action ->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument('sites', $site->getId(), $site); - $sitesDomain = $platform['siteDomain']; + $sitesDomain = $platform['sitePreviewDomain']; $domain = ID::unique() . "." . $sitesDomain; // TODO: (@Meldiron) Remove after 1.7.x migration @@ -344,7 +344,7 @@ class Create extends Action ->setAttribute('latestDeploymentStatus', $deployment->getAttribute('status', '')); $dbForProject->updateDocument('sites', $site->getId(), $site); - $sitesDomain = $platform['siteDomain']; + $sitesDomain = $platform['sitePreviewDomain']; $domain = ID::unique() . "." . $sitesDomain; $ruleId = md5($domain); $authorization->skip(