From 262be06b0d693f8a8d33c0e001255edc803bad7f Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Fri, 29 Aug 2025 18:37:44 +0530 Subject: [PATCH 1/9] chore: improve deprecation warning --- app/controllers/general.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 22954afd965..91ba1477bd7 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1065,7 +1065,6 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw */ /** @var \Appwrite\SDK\Method $sdk */ $sdk = $route->getLabel('sdk', false); - $deprecationWarning = 'This route is deprecated. See the updated documentation for improved compatibility and migration details.'; $sdkItems = is_array($sdk) ? $sdk : (!empty($sdk) ? [$sdk] : []); if (!empty($sdkItems) && count($sdkItems) > 0) { $allDeprecated = true; @@ -1076,6 +1075,13 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw } } if ($allDeprecated) { + $deprecatedMethod = $sdkItems[0]->getDeprecated(); + $replaceWith = $deprecatedMethod->getReplaceWith(); + if ($replaceWith) { + $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); + } + $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/server-rest/' . $replaceWith; + $deprecationWarning = 'Route ' . $route->getPath() . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use ' . $deprecatedMethod->getReplaceWith() . ' instead. See: ' . $deprecatedReplaceWithLink; $warnings[] = $deprecationWarning; } } From 4ef6c23a67009407b4a664cdb7537319ffc04a8c Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Fri, 29 Aug 2025 18:41:46 +0530 Subject: [PATCH 2/9] add quotes --- app/controllers/general.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 91ba1477bd7..2138bad97bf 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1081,7 +1081,7 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); } $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/server-rest/' . $replaceWith; - $deprecationWarning = 'Route ' . $route->getPath() . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use ' . $deprecatedMethod->getReplaceWith() . ' instead. See: ' . $deprecatedReplaceWithLink; + $deprecationWarning = 'Route ' . $route->getPath() . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; $warnings[] = $deprecationWarning; } } From 674d928ce24826d4bef3edc7f4e4e186fc907ac0 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Fri, 29 Aug 2025 21:33:53 +0530 Subject: [PATCH 3/9] show method is x-sdk-name is present --- app/controllers/general.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 2138bad97bf..4561c78554f 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1081,7 +1081,8 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); } $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/server-rest/' . $replaceWith; - $deprecationWarning = 'Route ' . $route->getPath() . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; + $isSdkUsed = !empty($request->getHeader('x-sdk-name')) || !empty($request->getHeader('x-sdk-version')); + $deprecationWarning = (!$isSdkUsed ? 'Route ' . $route->getPath() : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`') . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; $warnings[] = $deprecationWarning; } } From 2710282216001a239f9fc2d9b0590f272fa8bfe5 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Sat, 30 Aug 2025 12:25:47 +0530 Subject: [PATCH 4/9] chore: use correct sdk name and platform in link --- app/controllers/general.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 4561c78554f..57e1728a1b6 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1076,13 +1076,16 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw } if ($allDeprecated) { $deprecatedMethod = $sdkItems[0]->getDeprecated(); + $replaceWith = $deprecatedMethod->getReplaceWith(); if ($replaceWith) { $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); } - $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/server-rest/' . $replaceWith; - $isSdkUsed = !empty($request->getHeader('x-sdk-name')) || !empty($request->getHeader('x-sdk-version')); - $deprecationWarning = (!$isSdkUsed ? 'Route ' . $route->getPath() : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`') . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; + $sdkName = $request->getHeader('x-sdk-name', 'rest'); + $sdkPlatform = $request->getHeader('x-sdk-platform', 'server'); + $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . strtolower($sdkName) . '/' . $replaceWith; + + $deprecationWarning = (!empty($sdkName) ? 'Route ' . $route->getPath() : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`') . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; $warnings[] = $deprecationWarning; } } From 4ee0c12cb16685c065caf6c9c6cf9f41de3826e4 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Sat, 30 Aug 2025 12:27:50 +0530 Subject: [PATCH 5/9] chore: fix --- app/controllers/general.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 57e1728a1b6..f1f6c523544 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1082,10 +1082,10 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); } $sdkName = $request->getHeader('x-sdk-name', 'rest'); - $sdkPlatform = $request->getHeader('x-sdk-platform', 'server'); + $sdkPlatform = !empty($sdkName) ? $request->getHeader('x-sdk-platform', 'server') : 'server'; $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . strtolower($sdkName) . '/' . $replaceWith; - $deprecationWarning = (!empty($sdkName) ? 'Route ' . $route->getPath() : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`') . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; + $deprecationWarning = (empty($sdkName) ? 'Route ' . $route->getPath() : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`') . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; $warnings[] = $deprecationWarning; } } From c6fb4687a29545d4bffee65f8e8eb87de4a684ea Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Sat, 30 Aug 2025 12:32:57 +0530 Subject: [PATCH 6/9] readability --- app/controllers/general.php | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index f1f6c523544..a38e9c95912 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1081,11 +1081,22 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw if ($replaceWith) { $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); } - $sdkName = $request->getHeader('x-sdk-name', 'rest'); - $sdkPlatform = !empty($sdkName) ? $request->getHeader('x-sdk-platform', 'server') : 'server'; + + $sdkNameHeader = $request->getHeader('x-sdk-name', ''); + $sdkPlatformHeader = $request->getHeader('x-sdk-platform', ''); + + $sdkExists = !empty($sdkNameHeader); + $sdkName = $sdkExists ? $sdkNameHeader : 'rest'; + $sdkPlatform = !empty($sdkPlatformHeader) ? $sdkPlatformHeader : 'server'; + $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . strtolower($sdkName) . '/' . $replaceWith; - $deprecationWarning = (empty($sdkName) ? 'Route ' . $route->getPath() : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`') . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; + $deprecationWarning = ( + !$sdkExists + ? 'Route ' . $route->getPath() + : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`' + ) . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; + $warnings[] = $deprecationWarning; } } From 16d731b748a63ca196aab6325b65b1148fa938f2 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Sat, 30 Aug 2025 12:34:27 +0530 Subject: [PATCH 7/9] lower --- app/controllers/general.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index a38e9c95912..dfa682d33db 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1082,14 +1082,14 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); } - $sdkNameHeader = $request->getHeader('x-sdk-name', ''); - $sdkPlatformHeader = $request->getHeader('x-sdk-platform', ''); + $sdkNameHeader = strtolower($request->getHeader('x-sdk-name', '')); + $sdkPlatformHeader = strtolower($request->getHeader('x-sdk-platform', '')); $sdkExists = !empty($sdkNameHeader); $sdkName = $sdkExists ? $sdkNameHeader : 'rest'; $sdkPlatform = !empty($sdkPlatformHeader) ? $sdkPlatformHeader : 'server'; - $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . strtolower($sdkName) . '/' . $replaceWith; + $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . $sdkName . '/' . $replaceWith; $deprecationWarning = ( !$sdkExists From bc18f9d8c7e9e46c3a1624e1e49b258f6c60d0fe Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 1 Sep 2025 12:29:08 +0530 Subject: [PATCH 8/9] temporary remove warnings --- app/controllers/general.php | 72 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index dfa682d33db..4f97183dfec 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1064,42 +1064,42 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw * Deprecation Warning */ /** @var \Appwrite\SDK\Method $sdk */ - $sdk = $route->getLabel('sdk', false); - $sdkItems = is_array($sdk) ? $sdk : (!empty($sdk) ? [$sdk] : []); - if (!empty($sdkItems) && count($sdkItems) > 0) { - $allDeprecated = true; - foreach ($sdkItems as $sdkItem) { - if (!$sdkItem->isDeprecated()) { - $allDeprecated = false; - break; - } - } - if ($allDeprecated) { - $deprecatedMethod = $sdkItems[0]->getDeprecated(); - - $replaceWith = $deprecatedMethod->getReplaceWith(); - if ($replaceWith) { - $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); - } - - $sdkNameHeader = strtolower($request->getHeader('x-sdk-name', '')); - $sdkPlatformHeader = strtolower($request->getHeader('x-sdk-platform', '')); - - $sdkExists = !empty($sdkNameHeader); - $sdkName = $sdkExists ? $sdkNameHeader : 'rest'; - $sdkPlatform = !empty($sdkPlatformHeader) ? $sdkPlatformHeader : 'server'; - - $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . $sdkName . '/' . $replaceWith; - - $deprecationWarning = ( - !$sdkExists - ? 'Route ' . $route->getPath() - : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`' - ) . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; - - $warnings[] = $deprecationWarning; - } - } + // $sdk = $route->getLabel('sdk', false); + // $sdkItems = is_array($sdk) ? $sdk : (!empty($sdk) ? [$sdk] : []); + // if (!empty($sdkItems) && count($sdkItems) > 0) { + // $allDeprecated = true; + // foreach ($sdkItems as $sdkItem) { + // if (!$sdkItem->isDeprecated()) { + // $allDeprecated = false; + // break; + // } + // } + // if ($allDeprecated) { + // $deprecatedMethod = $sdkItems[0]->getDeprecated(); + + // $replaceWith = $deprecatedMethod->getReplaceWith(); + // if ($replaceWith) { + // $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); + // } + + // $sdkNameHeader = strtolower($request->getHeader('x-sdk-name', '')); + // $sdkPlatformHeader = strtolower($request->getHeader('x-sdk-platform', '')); + + // $sdkExists = !empty($sdkNameHeader); + // $sdkName = $sdkExists ? $sdkNameHeader : 'rest'; + // $sdkPlatform = !empty($sdkPlatformHeader) ? $sdkPlatformHeader : 'server'; + + // $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . $sdkName . '/' . $replaceWith; + + // $deprecationWarning = ( + // !$sdkExists + // ? 'Route ' . $route->getPath() + // : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`' + // ) . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; + + // $warnings[] = $deprecationWarning; + // } + // } if (!empty($warnings)) { $response->addHeader('X-Appwrite-Warning', implode(';', $warnings)); From 7600edb102d51ca7e2856e5ac29bea66acff5b45 Mon Sep 17 00:00:00 2001 From: Chirag Aggarwal Date: Mon, 1 Sep 2025 13:03:41 +0530 Subject: [PATCH 9/9] remove --- app/controllers/general.php | 41 ------------------------------------- 1 file changed, 41 deletions(-) diff --git a/app/controllers/general.php b/app/controllers/general.php index 4f97183dfec..40ce66b574e 100644 --- a/app/controllers/general.php +++ b/app/controllers/general.php @@ -1060,47 +1060,6 @@ function router(App $utopia, Database $dbForPlatform, callable $getProjectDB, Sw $response->addHeader('Access-Control-Allow-Origin', '*'); } - /** - * Deprecation Warning - */ - /** @var \Appwrite\SDK\Method $sdk */ - // $sdk = $route->getLabel('sdk', false); - // $sdkItems = is_array($sdk) ? $sdk : (!empty($sdk) ? [$sdk] : []); - // if (!empty($sdkItems) && count($sdkItems) > 0) { - // $allDeprecated = true; - // foreach ($sdkItems as $sdkItem) { - // if (!$sdkItem->isDeprecated()) { - // $allDeprecated = false; - // break; - // } - // } - // if ($allDeprecated) { - // $deprecatedMethod = $sdkItems[0]->getDeprecated(); - - // $replaceWith = $deprecatedMethod->getReplaceWith(); - // if ($replaceWith) { - // $replaceWith = preg_replace('/\./', '#', $replaceWith, 1); - // } - - // $sdkNameHeader = strtolower($request->getHeader('x-sdk-name', '')); - // $sdkPlatformHeader = strtolower($request->getHeader('x-sdk-platform', '')); - - // $sdkExists = !empty($sdkNameHeader); - // $sdkName = $sdkExists ? $sdkNameHeader : 'rest'; - // $sdkPlatform = !empty($sdkPlatformHeader) ? $sdkPlatformHeader : 'server'; - - // $deprecatedReplaceWithLink = 'https://appwrite.io/docs/references/cloud/' . $sdkPlatform . '-' . $sdkName . '/' . $replaceWith; - - // $deprecationWarning = ( - // !$sdkExists - // ? 'Route ' . $route->getPath() - // : 'Method `' . $sdkItems[0]->getNamespace() . '.' . $sdkItems[0]->getMethodName() . '`' - // ) . ' is deprecated since ' . $deprecatedMethod->getSince() . '. Please use `' . $deprecatedMethod->getReplaceWith() . '` instead. See: ' . $deprecatedReplaceWithLink; - - // $warnings[] = $deprecationWarning; - // } - // } - if (!empty($warnings)) { $response->addHeader('X-Appwrite-Warning', implode(';', $warnings)); }