Merge branch '1.8.x' of https://github.com/appwrite/appwrite into joins2

# Conflicts:
#	composer.lock
This commit is contained in:
fogelito
2026-01-26 10:28:43 +02:00
6 changed files with 189 additions and 63 deletions
+21 -1
View File
@@ -227,7 +227,7 @@ return [
[
'key' => 'cli',
'name' => 'Command Line',
'version' => '13.0.1',
'version' => '13.1.0',
'url' => 'https://github.com/appwrite/sdk-for-cli',
'package' => 'https://www.npmjs.com/package/appwrite-cli',
'enabled' => true,
@@ -250,6 +250,26 @@ return [
],
],
],
[
'key' => 'markdown',
'name' => 'Markdown',
'version' => '0.1.0',
'url' => 'https://github.com/appwrite/sdk-for-md.git',
'package' => 'https://www.npmjs.com/package/@appwrite.io/docs',
'enabled' => true,
'beta' => false,
'dev' => false,
'hidden' => false,
'family' => APP_SDK_PLATFORM_CONSOLE,
'prism' => 'markdown',
'source' => \realpath(__DIR__ . '/../sdks/console-md'),
'gitUrl' => 'git@github.com:appwrite/sdk-for-md.git',
'gitRepoName' => 'sdk-for-md',
'gitUserName' => 'appwrite',
'gitBranch' => 'dev',
'repoBranch' => 'main',
'changelog' => \realpath(__DIR__ . '/../../docs/sdks/md/CHANGELOG.md'),
],
],
],
Generated
+109 -62
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": "4d1dd1ade183b74bf68a522c451476b7",
"content-hash": "33da844fdf5648d1d1a027dfb6ae42bc",
"packages": [
{
"name": "adhocore/jwt",
@@ -798,6 +798,68 @@
},
"time": "2026-01-12T17:58:43+00:00"
},
{
"name": "halaxa/json-machine",
"version": "1.2.6",
"source": {
"type": "git",
"url": "https://github.com/halaxa/json-machine.git",
"reference": "8bf0b0ff6ff60ab480778eaa5ad7d505b442c2d4"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/halaxa/json-machine/zipball/8bf0b0ff6ff60ab480778eaa5ad7d505b442c2d4",
"reference": "8bf0b0ff6ff60ab480778eaa5ad7d505b442c2d4",
"shasum": ""
},
"require": {
"php": "7.2 - 8.5"
},
"require-dev": {
"ext-json": "*",
"friendsofphp/php-cs-fixer": "^3.0",
"phpstan/phpstan": "^1.10",
"phpunit/phpunit": "^8.0"
},
"suggest": {
"ext-json": "To run JSON Machine out of the box without custom decoders.",
"guzzlehttp/guzzle": "To run example with GuzzleHttp"
},
"type": "library",
"autoload": {
"files": [
"src/functions.php"
],
"psr-4": {
"JsonMachine\\": "src/"
},
"exclude-from-classmap": [
"src/autoloader.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"Apache-2.0"
],
"authors": [
{
"name": "Filip Halaxa",
"email": "filip@halaxa.cz"
}
],
"description": "Efficient, easy-to-use and fast JSON pull parser",
"support": {
"issues": "https://github.com/halaxa/json-machine/issues",
"source": "https://github.com/halaxa/json-machine/tree/1.2.6"
},
"funding": [
{
"url": "https://ko-fi.com/G2G57KTE4",
"type": "other"
}
],
"time": "2025-12-05T14:53:09+00:00"
},
{
"name": "league/csv",
"version": "9.24.1",
@@ -3899,16 +3961,16 @@
},
{
"name": "utopia-php/database",
"version": "dev-joins8",
"version": "4.6.2",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/database.git",
"reference": "de44f6a679c375ec34226f7539b6a566b28b53e7"
"reference": "53394759c44067e9db4660635765e2056f83788c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/database/zipball/de44f6a679c375ec34226f7539b6a566b28b53e7",
"reference": "de44f6a679c375ec34226f7539b6a566b28b53e7",
"url": "https://api.github.com/repos/utopia-php/database/zipball/53394759c44067e9db4660635765e2056f83788c",
"reference": "53394759c44067e9db4660635765e2056f83788c",
"shasum": ""
},
"require": {
@@ -3951,9 +4013,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/database/issues",
"source": "https://github.com/utopia-php/database/tree/joins8"
"source": "https://github.com/utopia-php/database/tree/4.6.2"
},
"time": "2026-01-21T11:13:21+00:00"
"time": "2026-01-22T07:14:12+00:00"
},
{
"name": "utopia-php/detector",
@@ -4516,25 +4578,26 @@
},
{
"name": "utopia-php/migration",
"version": "dev-joins",
"version": "1.4.6",
"source": {
"type": "git",
"url": "https://github.com/utopia-php/migration.git",
"reference": "805bdb87e3ea8c85c58fc16dc7b56a497da161cf"
"reference": "f358db6fb6a01d855bbed39e283387069e4f277d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/utopia-php/migration/zipball/805bdb87e3ea8c85c58fc16dc7b56a497da161cf",
"reference": "805bdb87e3ea8c85c58fc16dc7b56a497da161cf",
"url": "https://api.github.com/repos/utopia-php/migration/zipball/f358db6fb6a01d855bbed39e283387069e4f277d",
"reference": "f358db6fb6a01d855bbed39e283387069e4f277d",
"shasum": ""
},
"require": {
"appwrite/appwrite": "19.*",
"ext-curl": "*",
"ext-openssl": "*",
"halaxa/json-machine": "^1.2",
"php": ">=8.1",
"utopia-php/console": "0.0.*",
"utopia-php/database": "dev-joins8 as 4.5.2",
"utopia-php/database": "4.*",
"utopia-php/dsn": "0.2.*",
"utopia-php/storage": "0.18.*"
},
@@ -4565,9 +4628,9 @@
],
"support": {
"issues": "https://github.com/utopia-php/migration/issues",
"source": "https://github.com/utopia-php/migration/tree/joins"
"source": "https://github.com/utopia-php/migration/tree/1.4.6"
},
"time": "2026-01-18T13:47:36+00:00"
"time": "2026-01-20T11:07:17+00:00"
},
{
"name": "utopia-php/mongo",
@@ -5482,16 +5545,16 @@
"packages-dev": [
{
"name": "appwrite/sdk-generator",
"version": "1.8.20",
"version": "1.8.21",
"source": {
"type": "git",
"url": "https://github.com/appwrite/sdk-generator.git",
"reference": "b2bb03a83244df933c4d6333215e0d480d9a1b6a"
"reference": "1b47b2c794811c565f8b5e7eeaa19f749bcbeb6b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/b2bb03a83244df933c4d6333215e0d480d9a1b6a",
"reference": "b2bb03a83244df933c4d6333215e0d480d9a1b6a",
"url": "https://api.github.com/repos/appwrite/sdk-generator/zipball/1b47b2c794811c565f8b5e7eeaa19f749bcbeb6b",
"reference": "1b47b2c794811c565f8b5e7eeaa19f749bcbeb6b",
"shasum": ""
},
"require": {
@@ -5527,9 +5590,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.8.20"
"source": "https://github.com/appwrite/sdk-generator/tree/1.8.21"
},
"time": "2026-01-23T08:11:20+00:00"
"time": "2026-01-26T04:42:33+00:00"
},
{
"name": "doctrine/annotations",
@@ -7976,16 +8039,16 @@
},
{
"name": "symfony/console",
"version": "v8.0.3",
"version": "v8.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/console.git",
"reference": "6145b304a5c1ea0bdbd0b04d297a5864f9a7d587"
"reference": "ace03c4cf9805080ff40cbeec69fca180c339a3b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/6145b304a5c1ea0bdbd0b04d297a5864f9a7d587",
"reference": "6145b304a5c1ea0bdbd0b04d297a5864f9a7d587",
"url": "https://api.github.com/repos/symfony/console/zipball/ace03c4cf9805080ff40cbeec69fca180c339a3b",
"reference": "ace03c4cf9805080ff40cbeec69fca180c339a3b",
"shasum": ""
},
"require": {
@@ -8042,7 +8105,7 @@
"terminal"
],
"support": {
"source": "https://github.com/symfony/console/tree/v8.0.3"
"source": "https://github.com/symfony/console/tree/v8.0.4"
},
"funding": [
{
@@ -8062,7 +8125,7 @@
"type": "tidelift"
}
],
"time": "2025-12-23T14:52:06+00:00"
"time": "2026-01-13T13:06:50+00:00"
},
{
"name": "symfony/filesystem",
@@ -8136,16 +8199,16 @@
},
{
"name": "symfony/finder",
"version": "v8.0.3",
"version": "v8.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/finder.git",
"reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12"
"reference": "42e48eb02e07d5f3771d194d67da117eb824c8c1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/dd3a2953570a283a2ba4e17063bb98c734cf5b12",
"reference": "dd3a2953570a283a2ba4e17063bb98c734cf5b12",
"url": "https://api.github.com/repos/symfony/finder/zipball/42e48eb02e07d5f3771d194d67da117eb824c8c1",
"reference": "42e48eb02e07d5f3771d194d67da117eb824c8c1",
"shasum": ""
},
"require": {
@@ -8180,7 +8243,7 @@
"description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/finder/tree/v8.0.3"
"source": "https://github.com/symfony/finder/tree/v8.0.4"
},
"funding": [
{
@@ -8200,7 +8263,7 @@
"type": "tidelift"
}
],
"time": "2025-12-23T14:52:06+00:00"
"time": "2026-01-12T12:37:40+00:00"
},
{
"name": "symfony/options-resolver",
@@ -8605,16 +8668,16 @@
},
{
"name": "symfony/process",
"version": "v8.0.3",
"version": "v8.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/process.git",
"reference": "0cbbd88ec836f8757641c651bb995335846abb78"
"reference": "10df72602d88c0a3fa685b822976a052611dd607"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/0cbbd88ec836f8757641c651bb995335846abb78",
"reference": "0cbbd88ec836f8757641c651bb995335846abb78",
"url": "https://api.github.com/repos/symfony/process/zipball/10df72602d88c0a3fa685b822976a052611dd607",
"reference": "10df72602d88c0a3fa685b822976a052611dd607",
"shasum": ""
},
"require": {
@@ -8646,7 +8709,7 @@
"description": "Executes commands in sub-processes",
"homepage": "https://symfony.com",
"support": {
"source": "https://github.com/symfony/process/tree/v8.0.3"
"source": "https://github.com/symfony/process/tree/v8.0.4"
},
"funding": [
{
@@ -8666,20 +8729,20 @@
"type": "tidelift"
}
],
"time": "2025-12-19T10:01:18+00:00"
"time": "2026-01-23T11:07:10+00:00"
},
{
"name": "symfony/string",
"version": "v8.0.1",
"version": "v8.0.4",
"source": {
"type": "git",
"url": "https://github.com/symfony/string.git",
"reference": "ba65a969ac918ce0cc3edfac6cdde847eba231dc"
"reference": "758b372d6882506821ed666032e43020c4f57194"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/ba65a969ac918ce0cc3edfac6cdde847eba231dc",
"reference": "ba65a969ac918ce0cc3edfac6cdde847eba231dc",
"url": "https://api.github.com/repos/symfony/string/zipball/758b372d6882506821ed666032e43020c4f57194",
"reference": "758b372d6882506821ed666032e43020c4f57194",
"shasum": ""
},
"require": {
@@ -8736,7 +8799,7 @@
"utf8"
],
"support": {
"source": "https://github.com/symfony/string/tree/v8.0.1"
"source": "https://github.com/symfony/string/tree/v8.0.4"
},
"funding": [
{
@@ -8756,7 +8819,7 @@
"type": "tidelift"
}
],
"time": "2025-12-01T09:13:36+00:00"
"time": "2026-01-12T12:37:40+00:00"
},
{
"name": "textalk/websocket",
@@ -8986,25 +9049,9 @@
"time": "2024-03-07T20:33:40+00:00"
}
],
"aliases": [
{
"package": "utopia-php/database",
"version": "dev-joins8",
"alias": "4.5.2",
"alias_normalized": "4.5.2.0"
},
{
"package": "utopia-php/migration",
"version": "dev-joins",
"alias": "1.4.4",
"alias_normalized": "1.4.4.0"
}
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": {
"utopia-php/database": 20,
"utopia-php/migration": 20
},
"stability-flags": {},
"prefer-stable": false,
"prefer-lowest": false,
"platform": {
@@ -0,0 +1 @@
appwrite health get-queue-audits
+24
View File
@@ -1,5 +1,29 @@
# Change Log
## 13.1.0
- Mark `appwrite generate` command as stable
- Improve permissions param to be a typesafe callback
- Fix relationship handling in generated code
- Fix `appwrite client` properly hanlding `--key` parameter
- Fix `init site` not working on Windows
## 13.1.0-rc.3
- Allow generation of server side CRUD operations on databases and tables
- Fix npm distribution failing due to missing template files in bundle
## 13.1.0-rc.2
- Update generated `databases` services to automatically initialize a client instance
- Update generator to use handlebars templates
## 13.1.0-rc.1
- Feat: `appwrite generate` command to create a fully typesafe SDK for your Appwrite project
- Chore: improve creation of columns during table creation by passing them directly instead of creating them one by one
- Improved config validation by adding extra rules in zod schema
## 13.0.1
- Fix `project init` command leading to Cannot convert to BigInt error
+5
View File
@@ -0,0 +1,5 @@
# Change Log
## 0.1.0
* Initial release
+29
View File
@@ -12,6 +12,7 @@ use Appwrite\SDK\Language\Flutter;
use Appwrite\SDK\Language\Go;
use Appwrite\SDK\Language\GraphQL;
use Appwrite\SDK\Language\Kotlin;
use Appwrite\SDK\Language\Markdown;
use Appwrite\SDK\Language\Node;
use Appwrite\SDK\Language\PHP;
use Appwrite\SDK\Language\Python;
@@ -31,6 +32,27 @@ use Utopia\Validator\WhiteList;
class SDKs extends Action
{
protected array $supportedSDKS = [
'web',
'cli',
'php',
'nodejs',
'deno',
'python',
'ruby',
'flutter',
'react-native',
'dart',
'go',
'swift',
'apple',
'dotnet',
'android',
'graphql',
'rest',
'markdown',
];
public static function getName(): string
{
return 'sdks';
@@ -61,6 +83,9 @@ class SDKs extends Action
if (!$sdks) {
$selectedPlatform ??= Console::confirm('Choose Platform ("' . implode('", "', static::getPlatforms()) . '" or "*" for all):');
$selectedSDK ??= \strtolower(Console::confirm('Choose SDK ("*" for all):'));
if ($selectedSDK !== '*' && !\in_array($selectedSDK, $this->supportedSDKS)) {
throw new \Exception('Unknown SDK "' . $selectedSDK . '" given. Options are: ' . implode(', ', $this->supportedSDKS));
}
} else {
$sdks = explode(',', $sdks);
}
@@ -252,6 +277,10 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
case 'rest':
$config = new REST();
break;
case 'markdown':
$config = new Markdown();
$config->setNPMPackage('@appwrite.io/docs');
break;
default:
throw new \Exception('Language "' . $language['key'] . '" not supported');
}