Merge remote-tracking branch 'upstream/1.8.x' into dat-647

This commit is contained in:
ArnabChatterjee20k 2025-11-07 13:48:59 +05:30
commit 4d47bc2ebf
17 changed files with 85 additions and 162 deletions

View file

@ -300,7 +300,7 @@ return [
[
'key' => 'python',
'name' => 'Python',
'version' => '13.6.0',
'version' => '13.6.1',
'url' => 'https://github.com/appwrite/sdk-for-python',
'package' => 'https://pypi.org/project/appwrite/',
'enabled' => true,

View file

@ -31203,7 +31203,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -31224,7 +31224,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -21725,7 +21725,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -21746,7 +21746,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -31203,7 +31203,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -31224,7 +31224,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -21725,7 +21725,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -21746,7 +21746,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -31350,7 +31350,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -31367,7 +31367,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -21920,7 +21920,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -21937,7 +21937,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -31350,7 +31350,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -31367,7 +31367,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -21920,7 +21920,7 @@
"tags": [
"sites"
],
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"description": "Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"responses": {
"202": {
"description": "Deployment",
@ -21937,7 +21937,7 @@
"cookies": false,
"type": "upload",
"demo": "sites\/create-deployment.md",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.",
"edit": "https:\/\/github.com\/appwrite\/appwrite\/edit\/masterCreate a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.",
"rate-limit": 0,
"rate-time": 3600,
"rate-key": "url:{url},ip:{ip}",

View file

@ -37,7 +37,6 @@ App::get('/v1/locale')
$currencies = Config::getParam('locale-currencies');
$output = [];
$ip = $request->getIP();
$time = (60 * 60 * 24 * 45); // 45 days cache
$output['ip'] = $ip;
@ -68,10 +67,6 @@ App::get('/v1/locale')
$output['currency'] = $currency;
}
$response
->addHeader('Cache-Control', 'public, max-age=' . $time)
->addHeader('Cache-Control', 'private, max-age=3888000') // 45 days
;
$response->dynamic(new Document($output), Response::MODEL_LOCALE);
});

View file

@ -107,23 +107,5 @@
"php-http/discovery": true,
"tbachert/spi": true
}
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/utopia-php/migration"
},
{
"type": "vcs",
"url": "https://github.com/utopia-php/emails"
},
{
"type": "vcs",
"url": "https://github.com/utopia-php/validators"
},
{
"type": "vcs",
"url": "https://github.com/utopia-php/database"
}
]
}
}

140
composer.lock generated
View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "c5122fe03bab9e4c6813ec6d9e46b8f4",
"content-hash": "ad28b7155175986191bd19bbcd13d623",
"packages": [
{
"name": "adhocore/jwt",
@ -3840,16 +3840,16 @@
},
{
"name": "utopia-php/database",
"version": "3.1.2",
"version": "3.1.5",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "b6541a9cd9b21786a5020327f582838afdb159aa"
"reference": "76568b81f25d89fc1e0c53f0370f139130eeb939"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/b6541a9cd9b21786a5020327f582838afdb159aa",
"reference": "b6541a9cd9b21786a5020327f582838afdb159aa",
"url": "https://api.github.com/repos/utopia-php/database/zipball/76568b81f25d89fc1e0c53f0370f139130eeb939",
"reference": "76568b81f25d89fc1e0c53f0370f139130eeb939",
"shasum": ""
},
"require": {
@ -3878,38 +3878,7 @@
"Utopia\\Database\\": "src/Database"
}
},
"autoload-dev": {
"psr-4": {
"Tests\\E2E\\": "tests/e2e",
"Tests\\Unit\\": "tests/unit"
}
},
"scripts": {
"build": [
"Composer\\Config::disableProcessTimeout",
"docker compose build"
],
"start": [
"Composer\\Config::disableProcessTimeout",
"docker compose up -d"
],
"test": [
"Composer\\Config::disableProcessTimeout",
"docker compose exec tests vendor/bin/phpunit --configuration phpunit.xml"
],
"lint": [
"php -d memory_limit=2G ./vendor/bin/pint --test"
],
"format": [
"php -d memory_limit=2G ./vendor/bin/pint"
],
"check": [
"./vendor/bin/phpstan analyse --level 7 src tests --memory-limit 2G"
],
"coverage": [
"./vendor/bin/coverage-check ./tmp/clover.xml 90"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@ -3922,10 +3891,10 @@
"utopia"
],
"support": {
"source": "https://github.com/utopia-php/database/tree/3.1.2",
"issues": "https://github.com/utopia-php/database/issues"
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/3.1.5"
},
"time": "2025-10-30T13:10:13+00:00"
"time": "2025-11-05T10:17:55+00:00"
},
{
"name": "utopia-php/detector",
@ -4168,35 +4137,7 @@
"Utopia\\Emails\\": "src/Emails"
}
},
"scripts": {
"test": [
"vendor/bin/phpunit"
],
"lint": [
"./vendor/bin/pint --test"
],
"format": [
"./vendor/bin/pint"
],
"check": [
"./vendor/bin/phpstan analyse"
],
"import": [
"php import.php"
],
"import:all": [
"php import.php all --commit=true"
],
"import:disposable": [
"php import.php disposable --commit=true"
],
"import:free": [
"php import.php free --commit=true"
],
"import:stats": [
"php import.php stats"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@ -4208,19 +4149,19 @@
],
"description": "Utopia Emails library is simple and lite library for parsing and validating email addresses. This library is aiming to be as simple and easy to learn and use.",
"keywords": [
"RFC5322",
"email",
"emails",
"framework",
"parsing",
"php",
"rfc5322",
"upf",
"utopia",
"validation"
],
"support": {
"source": "https://github.com/utopia-php/emails/tree/0.6.2",
"issues": "https://github.com/utopia-php/emails/issues"
"issues": "https://github.com/utopia-php/emails/issues",
"source": "https://github.com/utopia-php/emails/tree/0.6.2"
},
"time": "2025-10-28T16:08:17+00:00"
},
@ -4548,25 +4489,7 @@
"Utopia\\Migration\\": "src/Migration"
}
},
"autoload-dev": {
"psr-4": {
"Utopia\\Tests\\": "tests/Migration"
}
},
"scripts": {
"test": [
"./vendor/bin/phpunit"
],
"lint": [
"./vendor/bin/pint --test"
],
"format": [
"./vendor/bin/pint"
],
"check": [
"./vendor/bin/phpstan analyse --level 3 src tests --memory-limit 2G"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@ -4579,8 +4502,8 @@
"utopia"
],
"support": {
"source": "https://github.com/utopia-php/migration/tree/1.3.3",
"issues": "https://github.com/utopia-php/migration/issues"
"issues": "https://github.com/utopia-php/migration/issues",
"source": "https://github.com/utopia-php/migration/tree/1.3.3"
},
"time": "2025-10-28T04:02:08+00:00"
},
@ -5212,20 +5135,7 @@
"Utopia\\": "src/"
}
},
"scripts": {
"lint": [
"vendor/bin/pint --test"
],
"format": [
"vendor/bin/pint"
],
"check": [
"vendor/bin/phpstan analyse -c phpstan.neon --memory-limit 512M"
],
"test": [
"vendor/bin/phpunit --configuration phpunit.xml"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
@ -5237,8 +5147,8 @@
"validator"
],
"support": {
"source": "https://github.com/utopia-php/validators/tree/0.0.2",
"issues": "https://github.com/utopia-php/validators/issues"
"issues": "https://github.com/utopia-php/validators/issues",
"source": "https://github.com/utopia-php/validators/tree/0.0.2"
},
"time": "2025-10-20T21:52:28+00:00"
},
@ -5467,16 +5377,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "1.5.0",
"version": "1.5.1",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "42df22195d6457e52e4c819678168470b114a816"
"reference": "cd712674e34136f706e9170641ed6f4ce160e772"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/42df22195d6457e52e4c819678168470b114a816",
"reference": "42df22195d6457e52e4c819678168470b114a816",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/cd712674e34136f706e9170641ed6f4ce160e772",
"reference": "cd712674e34136f706e9170641ed6f4ce160e772",
"shasum": ""
},
"require": {
@ -5512,9 +5422,9 @@
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
"support": {
"issues": "https://github.com/appwrite/sdk-generator/issues",
"source": "https://github.com/appwrite/sdk-generator/tree/1.5.0"
"source": "https://github.com/appwrite/sdk-generator/tree/1.5.1"
},
"time": "2025-10-31T10:10:25+00:00"
"time": "2025-11-04T09:55:47+00:00"
},
{
"name": "doctrine/annotations",

View file

@ -1,5 +1,9 @@
# Change Log
## 13.6.1
* Fix passing of `None` to nullable parameters
## 13.6.0
* Add `total` parameter to list queries allowing skipping counting rows in a table for improved performance

View file

@ -53,7 +53,9 @@ class Google extends OAuth2
'redirect_uri' => $this->callback,
'scope' => \implode(' ', $this->getScopes()),
'state' => \json_encode($this->state),
'response_type' => 'code'
'response_type' => 'code',
'access_type' => 'offline',
'prompt' => 'consent'
]);
}

View file

@ -589,7 +589,10 @@ class Builds extends Action
// Some runtimes/frameworks can't compile with less memory than this
$minMemory = $resource->getCollection() === 'sites' ? 2048 : 1024;
if ($resource->getAttribute('framework', '') === 'analog') {
if (
$resource->getAttribute('framework', '') === 'analog' ||
$resource->getAttribute('framework', '') === 'tanstack-start'
) {
$minMemory = 4096;
}

View file

@ -57,7 +57,7 @@ class Create extends Action
group: 'deployments',
name: 'createDeployment',
description: <<<EOT
Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the function's deployment to use your new deployment ID.
Create a new site code deployment. Use this endpoint to upload a new version of your site code. To activate your newly uploaded code, you'll need to update the site's deployment to use your new deployment ID.
EOT,
auth: [AuthType::KEY],
responses: [

View file

@ -11,9 +11,36 @@ class Comment
{
// TODO: Add more tips
protected array $tips = [
'Appwrite has a Discord community with over 16 000 members.',
'You can use Avatars API to generate QR code for any text or URLs.',
'Cursor pagination performs better than offset pagination when loading further pages.',
'Appwrite has crossed the 50K GitHub stars milestone with hundreds of active contributors',
'Our Discord community has grown to 24K developers, and counting',
'Sites auto-generate unique domains with the pattern https://randomstring.appwrite.network',
'Every Git commit and branch gets its own deployment URL automatically',
'Custom domains work with both CNAME for subdomains and NS records for apex domains',
'HTTPS and SSL certificates are handled automatically for all your Sites',
'Functions can run for up to 15 minutes before timing out',
'Schedule functions to run as often as every minute with cron expressions',
'Environment variables can be scoped per function or shared across your project',
'Function scopes give you fine-grained control over API permissions',
'Sites support three domain rule types: Active deployment, Git branch, and Redirect',
'Preview deployments create instant URLs for every branch and commit',
'Trigger functions via HTTP, SDKs, events, webhooks, or scheduled cron jobs',
'Each function runs in its own isolated container with custom environment variables',
'Build commands execute in runtime containers during deployment',
'Dynamic API keys are generated automatically for each function execution',
'JWT tokens let functions act on behalf of users while preserving their permissions',
'Storage files get ClamAV malware scanning and encryption by default',
'Roll back Sites deployments instantly by switching between versions',
'Git integration provides automatic deployments with optional PR comments',
'Silent mode disables those chatty PR comments if you prefer peace and quiet',
'Environment variable changes require redeployment to take effect',
'SSR frameworks are fully supported with configurable build runtimes',
'Global CDN and DDoS protection come free with every Sites deployment',
'Deploy functions via zip upload or connect directly to your Git repo',
'Realtime gives you live updates for users, storage, functions, and databases',
'GraphQL API works alongside REST and WebSocket protocols',
'Messaging handles push notifications, emails, and SMS through one unified API',
'Teams feature lets you group users with membership management and role permissions',
'MCP server integration brings LLM superpowers to Claude Desktop and Cursor IDE',
];
protected string $statePrefix = '[appwrite]: #';