mirror of
https://github.com/appwrite/appwrite.git
synced 2026-05-26 13:51:13 +00:00
Merge branch '0.7.x' into feat-redis-connection-password
This commit is contained in:
@@ -37,6 +37,8 @@
|
||||
- Added new environment variables for ClamAV hostname and port ([#780](https://github.com/appwrite/appwrite/pull/780))
|
||||
- New OAuth adapter for Box.com (@armino-dev - [#420](https://github.com/appwrite/appwrite/issues/410))
|
||||
- New OAuth adapter for PayPal sandbox (@armino-dev - [#420](https://github.com/appwrite/appwrite/issues/410))
|
||||
- New OAuth adapter for Tradeshift (@armino-dev - [#855](https://github.com/appwrite/appwrite/pull/855))
|
||||
- New OAuth adapter for Tradeshift sandbox (@armino-dev - [#855](https://github.com/appwrite/appwrite/pull/855))
|
||||
- Introducing new permssion types: role:guest, role:member, role:app
|
||||
- Disabled rate-limits on server side integrations
|
||||
- Refactored migration script
|
||||
|
||||
@@ -53,7 +53,7 @@ docker run -it --rm \
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock \
|
||||
--volume "$(pwd)"/appwrite:/usr/src/code/appwrite:rw \
|
||||
--entrypoint="install" \
|
||||
appwrite/appwrite:0.7.0 --version 0.7.0
|
||||
appwrite/appwrite:0.7.0
|
||||
```
|
||||
|
||||
### Windows
|
||||
@@ -65,7 +65,7 @@ docker run -it --rm ^
|
||||
--volume //var/run/docker.sock:/var/run/docker.sock ^
|
||||
--volume "%cd%"/appwrite:/usr/src/code/appwrite:rw ^
|
||||
--entrypoint="install" ^
|
||||
appwrite/appwrite:0.7.0 --version 0.7.0
|
||||
appwrite/appwrite:0.7.0
|
||||
```
|
||||
|
||||
#### PowerShell
|
||||
@@ -75,7 +75,7 @@ docker run -it --rm ,
|
||||
--volume /var/run/docker.sock:/var/run/docker.sock ,
|
||||
--volume ${pwd}/appwrite:/usr/src/code/appwrite:rw ,
|
||||
--entrypoint="install" ,
|
||||
appwrite/appwrite:0.7.0 --version 0.7.0
|
||||
appwrite/appwrite:0.7.0
|
||||
```
|
||||
|
||||
Once the Docker installation completes, go to http://localhost to access the Appwrite console from your browser. Please note that on non-linux native hosts, the server might take a few minutes to start after installation completes.
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -181,7 +181,7 @@ return [
|
||||
],
|
||||
[
|
||||
'name' => '_APP_DB_USER',
|
||||
'description' => 'MariaDB server user name. Default value is: \'root\'.',
|
||||
'description' => 'MariaDB server user name. Default value is: \'user\'.',
|
||||
'introduction' => '',
|
||||
'default' => 'user',
|
||||
'required' => false,
|
||||
@@ -357,7 +357,7 @@ return [
|
||||
'name' => '_APP_FUNCTIONS_MEMORY',
|
||||
'description' => 'The maximum amount of memory a single cloud function is allowed to use in megabytes. The default value is 128.',
|
||||
'introduction' => '0.7.0',
|
||||
'default' => '128',
|
||||
'default' => '256',
|
||||
'required' => false,
|
||||
'question' => '',
|
||||
],
|
||||
|
||||
@@ -429,19 +429,19 @@ App::post('/v1/functions/:functionId/tags')
|
||||
->label('sdk.namespace', 'functions')
|
||||
->label('sdk.method', 'createTag')
|
||||
->label('sdk.description', '/docs/references/functions/create-tag.md')
|
||||
->label('sdk.packaging', true)
|
||||
->label('sdk.request.type', 'multipart/form-data')
|
||||
->label('sdk.response.code', Response::STATUS_CODE_CREATED)
|
||||
->label('sdk.response.type', Response::CONTENT_TYPE_JSON)
|
||||
->label('sdk.response.model', Response::MODEL_TAG)
|
||||
->param('functionId', '', new UID(), 'Function unique ID.')
|
||||
->param('command', '', new Text('1028'), 'Code execution command.')
|
||||
->param('code', [], new File(), 'Gzip file containing your code.', false)
|
||||
// ->param('code', '', new Text(128), 'Code package. Use the '.APP_NAME.' code packager to create a deployable package file.')
|
||||
->param('file', null, new File(), 'Gzip file with your code package.', false)
|
||||
->inject('request')
|
||||
->inject('response')
|
||||
->inject('projectDB')
|
||||
->inject('usage')
|
||||
->action(function ($functionId, $command, $code, $request, $response, $projectDB, $usage) {
|
||||
->action(function ($functionId, $command, $file, $request, $response, $projectDB, $usage) {
|
||||
/** @var Utopia\Swoole\Request $request */
|
||||
/** @var Appwrite\Utopia\Response $response */
|
||||
/** @var Appwrite\Database\Database $projectDB */
|
||||
@@ -453,7 +453,7 @@ App::post('/v1/functions/:functionId/tags')
|
||||
throw new Exception('Function not found', 404);
|
||||
}
|
||||
|
||||
$file = $request->getFiles('code');
|
||||
$file = $request->getFiles('file');
|
||||
$device = Storage::getDevice('functions');
|
||||
$fileExt = new FileExt([FileExt::TYPE_GZIP]);
|
||||
$fileSize = new FileSize(App::getEnv('_APP_STORAGE_LIMIT', 0));
|
||||
|
||||
+14
-9
@@ -6,14 +6,12 @@ use Appwrite\Docker\Compose;
|
||||
use Appwrite\Docker\Env;
|
||||
use Utopia\CLI\Console;
|
||||
use Utopia\Config\Config;
|
||||
use Utopia\Validator\Mock;
|
||||
use Utopia\View;
|
||||
|
||||
$cli
|
||||
->task('install')
|
||||
->desc('Install Appwrite')
|
||||
->param('version', APP_VERSION_STABLE, new Mock(), 'Appwrite version', true)
|
||||
->action(function ($version) {
|
||||
->action(function () {
|
||||
/**
|
||||
* 1. Start - DONE
|
||||
* 2. Check for older setup and get older version - DONE
|
||||
@@ -48,7 +46,7 @@ $cli
|
||||
if (null !== $path && !\file_exists(\dirname($path))) {
|
||||
if (!@\mkdir(\dirname($path), 0755, true)) {
|
||||
Console::error('Can\'t create directory '.\dirname($path));
|
||||
exit(1);
|
||||
Console::exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -130,7 +128,7 @@ $cli
|
||||
$templateForCompose
|
||||
->setParam('httpPort', $httpPort)
|
||||
->setParam('httpsPort', $httpsPort)
|
||||
->setParam('version', $version)
|
||||
->setParam('version', APP_VERSION_STABLE)
|
||||
;
|
||||
|
||||
$templateForEnv
|
||||
@@ -139,25 +137,32 @@ $cli
|
||||
|
||||
if(!file_put_contents($path.'/docker-compose.yml', $templateForCompose->render(false))) {
|
||||
Console::error('Failed to save Docker Compose file');
|
||||
exit(1);
|
||||
Console::exit(1);
|
||||
}
|
||||
|
||||
if(!file_put_contents($path.'/.env', $templateForEnv->render(false))) {
|
||||
Console::error('Failed to save environment variables file');
|
||||
exit(1);
|
||||
Console::exit(1);
|
||||
}
|
||||
|
||||
$env = '';
|
||||
$stdout = '';
|
||||
$stderr = '';
|
||||
|
||||
foreach ($input as $key => $value) {
|
||||
if($value) {
|
||||
$env .= $key.'='.$value.' ';
|
||||
}
|
||||
}
|
||||
|
||||
Console::log("Running \"docker-compose -f {$path}/docker-compose.yml up -d --remove-orphans --renew-anon-volumes\"");
|
||||
|
||||
$exit = Console::execute("docker-compose -f {$path}/docker-compose.yml up -d --remove-orphans --renew-anon-volumes", '', $stdout, $stderr);
|
||||
$exit = Console::execute("${env} docker-compose -f {$path}/docker-compose.yml up -d --remove-orphans --renew-anon-volumes", '', $stdout, $stderr);
|
||||
|
||||
if ($exit !== 0) {
|
||||
Console::error("Failed to install Appwrite dockers");
|
||||
Console::error($stderr);
|
||||
exit($exit);
|
||||
Console::exit($exit);
|
||||
} else {
|
||||
Console::success("Appwrite installed successfully");
|
||||
}
|
||||
|
||||
+5
-1
@@ -100,6 +100,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
$config = new Node();
|
||||
$config->setNPMPackage('node-appwrite');
|
||||
$config->setBowerPackage('appwrite');
|
||||
$warning = $warning."\n\n > This is the Node.js SDK for integrating with Appwrite from your Node.js server-side code.
|
||||
If you're looking to integrate from the browser, you should check [appwrite/sdk-for-web](https://github.com/appwrite/sdk-for-web)";
|
||||
break;
|
||||
case 'deno':
|
||||
$config = new Deno();
|
||||
@@ -124,6 +126,8 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
case 'dart':
|
||||
$config = new Dart();
|
||||
$config->setPackageName('dart_appwrite');
|
||||
$warning = $warning."\n\n > This is the Dart SDK for integrating with Appwrite from your Dart server-side code.
|
||||
If you're looking for the Flutter SDK you should check [appwrite/sdk-for-flutter](https://github.com/appwrite/sdk-for-flutter)";
|
||||
break;
|
||||
case 'go':
|
||||
$config = new Go();
|
||||
@@ -215,5 +219,5 @@ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
}
|
||||
}
|
||||
|
||||
exit();
|
||||
Console::exit();
|
||||
});
|
||||
|
||||
@@ -284,10 +284,9 @@ services:
|
||||
- _APP_SMTP_PASSWORD
|
||||
|
||||
appwrite-maintenance:
|
||||
image: appwrite/appwrite:<?php echo $version."\n"; ?>
|
||||
entrypoint: maintenance
|
||||
container_name: appwrite-maintenance
|
||||
build:
|
||||
context: .
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- appwrite
|
||||
@@ -329,8 +328,6 @@ services:
|
||||
- appwrite
|
||||
volumes:
|
||||
- appwrite-mariadb:/var/lib/mysql:rw
|
||||
ports:
|
||||
- "3306:3306"
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=rootsecretpassword
|
||||
- MYSQL_DATABASE=${_APP_DB_SCHEMA}
|
||||
|
||||
+1
-1
@@ -59,7 +59,7 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"swoole/ide-helper": "4.5.5",
|
||||
"appwrite/sdk-generator": "0.4.4",
|
||||
"appwrite/sdk-generator": "0.4.5",
|
||||
"phpunit/phpunit": "9.4.2",
|
||||
"vimeo/psalm": "4.1.1"
|
||||
},
|
||||
|
||||
Generated
+12
-13
@@ -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": "f83cd9bbcc8c8361622aba6313f81e28",
|
||||
"content-hash": "be6adbd12397d629ee420d11eed43b1f",
|
||||
"packages": [
|
||||
{
|
||||
"name": "adhocore/jwt",
|
||||
@@ -2030,11 +2030,11 @@
|
||||
},
|
||||
{
|
||||
"name": "appwrite/sdk-generator",
|
||||
"version": "0.4.4",
|
||||
"version": "0.4.5",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/appwrite/sdk-generator",
|
||||
"reference": "ebb51e404a4e5b89f74428296b81ea347362dd33"
|
||||
"reference": "9c04ed7ff34a723c3c226941b9f9a844738c595e"
|
||||
},
|
||||
"require": {
|
||||
"ext-curl": "*",
|
||||
@@ -2064,7 +2064,7 @@
|
||||
}
|
||||
],
|
||||
"description": "Appwrite PHP library for generating API SDKs for multiple programming languages and platforms",
|
||||
"time": "2021-01-11T09:34:56+00:00"
|
||||
"time": "2021-01-28T08:03:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "composer/package-versions-deprecated",
|
||||
@@ -3837,12 +3837,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/sebastianbergmann/comparator.git",
|
||||
"reference": "66776aea976481264dbaeef1b80c72845711473c"
|
||||
"reference": "5a39e6c8994048403e326298f0b1bda7eb1ea127"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/66776aea976481264dbaeef1b80c72845711473c",
|
||||
"reference": "66776aea976481264dbaeef1b80c72845711473c",
|
||||
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5a39e6c8994048403e326298f0b1bda7eb1ea127",
|
||||
"reference": "5a39e6c8994048403e326298f0b1bda7eb1ea127",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3904,7 +3904,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-27T12:55:14+00:00"
|
||||
"time": "2021-01-27T14:14:42+00:00"
|
||||
},
|
||||
{
|
||||
"name": "sebastian/complexity",
|
||||
@@ -5275,12 +5275,12 @@
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/service-contracts.git",
|
||||
"reference": "cea83947622b432b60b809d14c7b42df9f0f5823"
|
||||
"reference": "bf99754c6182a126968b1c2709d18548489f27eb"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/cea83947622b432b60b809d14c7b42df9f0f5823",
|
||||
"reference": "cea83947622b432b60b809d14c7b42df9f0f5823",
|
||||
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/bf99754c6182a126968b1c2709d18548489f27eb",
|
||||
"reference": "bf99754c6182a126968b1c2709d18548489f27eb",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5293,7 +5293,6 @@
|
||||
"default-branch": true,
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-version": "2.3",
|
||||
"branch-alias": {
|
||||
"dev-main": "2.3-dev"
|
||||
},
|
||||
@@ -5348,7 +5347,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2021-01-11T09:51:46+00:00"
|
||||
"time": "2021-01-27T16:27:53+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/string",
|
||||
|
||||
+1
-1
@@ -532,5 +532,5 @@ volumes:
|
||||
appwrite-certificates:
|
||||
appwrite-functions:
|
||||
appwrite-influxdb:
|
||||
appwrite-chronograf:
|
||||
appwrite-config:
|
||||
# appwrite-chronograf:
|
||||
|
||||
Vendored
+2
-2
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
@@ -370,7 +370,7 @@ code.innerHTML=value;Prism.highlightElement(code);div.scrollTop=0;};element.addE
|
||||
function syncA(){element.value=picker.value;update();}
|
||||
function syncB(){picker.value=element.value;}
|
||||
element.parentNode.insertBefore(preview,element);update();syncB();}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-copy",controller:function(element,alerts,document,window){var button=window.document.createElement("i");button.type="button";button.className="icon-docs note copy";button.style.cursor="pointer";element.parentNode.insertBefore(button,element.nextSibling);var copy=function(event){let disabled=element.disabled;element.disabled=false;element.focus();element.select();document.execCommand("Copy");if(document.selection){document.selection.empty();}else if(window.getSelection){window.getSelection().removeAllRanges();}
|
||||
element.disabled=disabled;element.blur();alerts.add({text:"Copied to clipboard",class:""});};button.addEventListener("click",copy);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document",controller:function(element,container,search){var formsDocument=(element.dataset["formsDocument"]||'');var searchButton=(element.dataset["search"]||0);let path=container.scope(searchButton);element.addEventListener('click',function(){search.selected=element.value;search.path=path;document.dispatchEvent(new CustomEvent(formsDocument,{bubbles:false,cancelable:true}));});}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document-preview",controller:function(element,container,search){element.addEventListener('change',function(){console.log(element.value);});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-forms-filter",controller:function(document,container,expression,element,form,di){let name=element.dataset["formsFilter"]||"";let events=element.dataset["event"]||"";let serialize=function(obj,prefix){let str=[],p;for(p in obj){if(obj.hasOwnProperty(p)){let k=prefix?prefix+"["+p+"]":p,v=obj[p];if(v===""){continue;}
|
||||
element.disabled=disabled;element.blur();alerts.add({text:"Copied to clipboard",class:""},3000);};button.addEventListener("click",copy);}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document",controller:function(element,container,search){var formsDocument=(element.dataset["formsDocument"]||'');var searchButton=(element.dataset["search"]||0);let path=container.scope(searchButton);element.addEventListener('click',function(){search.selected=element.value;search.path=path;document.dispatchEvent(new CustomEvent(formsDocument,{bubbles:false,cancelable:true}));});}});})(window);(function(window){"use strict";window.ls.container.get("view").add({selector:"data-forms-document-preview",controller:function(element,container,search){element.addEventListener('change',function(){console.log(element.value);});}});})(window);(function(window){window.ls.container.get("view").add({selector:"data-forms-filter",controller:function(document,container,expression,element,form,di){let name=element.dataset["formsFilter"]||"";let events=element.dataset["event"]||"";let serialize=function(obj,prefix){let str=[],p;for(p in obj){if(obj.hasOwnProperty(p)){let k=prefix?prefix+"["+p+"]":p,v=obj[p];if(v===""){continue;}
|
||||
str.push(v!==null&&typeof v==="object"?serialize(v,k):encodeURIComponent(k)+"="+encodeURIComponent(v));}}
|
||||
return str.join("&");};let parse=function(filter){if(filter===""){return null;}
|
||||
let operatorsMap=["!=",">=","<=","=",">","<"];let operator=null;for(let key=0;key<operatorsMap.length;key++){if(filter.indexOf(operatorsMap[key])>-1){operator=operatorsMap[key];}}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -90,7 +90,8 @@ abstract class Migration
|
||||
if (empty($new->getId())) {
|
||||
throw new Exception('Missing ID');
|
||||
}
|
||||
if (!array_diff($new->getArrayCopy(), $old)) {
|
||||
|
||||
if (!array_diff_assoc($new->getArrayCopy(), $old)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ class V06 extends Migration
|
||||
{
|
||||
switch ($document->getAttribute('$collection')) {
|
||||
case Database::SYSTEM_COLLECTION_USERS:
|
||||
if ($document->getAttribute('password-update', null)) {
|
||||
if ($document->isSet('password-update')) {
|
||||
$document
|
||||
->setAttribute('passwordUpdate', $document->getAttribute('password-update', $document->getAttribute('passwordUpdate', '')))
|
||||
->removeAttribute('password-update');
|
||||
|
||||
@@ -118,6 +118,7 @@ class OpenAPI3 extends Format
|
||||
'rate-key' => $route->getLabel('abuse-key', 'url:{url},ip:{ip}'),
|
||||
'scope' => $route->getLabel('scope', ''),
|
||||
'platforms' => $route->getLabel('sdk.platform', []),
|
||||
'packaging' => $route->getLabel('sdk.packaging', false),
|
||||
],
|
||||
];
|
||||
|
||||
@@ -369,7 +370,8 @@ class OpenAPI3 extends Format
|
||||
'description' => $rule['description'] ?? '',
|
||||
'items' => [
|
||||
'type' => $type,
|
||||
]
|
||||
],
|
||||
'x-example' => $rule['example'] ?? null,
|
||||
];
|
||||
|
||||
if($format) {
|
||||
|
||||
@@ -116,6 +116,7 @@ class Swagger2 extends Format
|
||||
'rate-key' => $route->getLabel('abuse-key', 'url:{url},ip:{ip}'),
|
||||
'scope' => $route->getLabel('scope', ''),
|
||||
'platforms' => $route->getLabel('sdk.platform', []),
|
||||
'packaging' => $route->getLabel('sdk.packaging', false),
|
||||
],
|
||||
];
|
||||
|
||||
@@ -367,7 +368,8 @@ class Swagger2 extends Format
|
||||
'description' => $rule['description'] ?? '',
|
||||
'items' => [
|
||||
'type' => $type,
|
||||
]
|
||||
],
|
||||
'x-example' => $rule['example'] ?? null,
|
||||
];
|
||||
|
||||
if($format) {
|
||||
|
||||
@@ -76,7 +76,7 @@ class FunctionsCustomClientTest extends Scope
|
||||
'x-appwrite-key' => $this->getProject()['apiKey'],
|
||||
], [
|
||||
'command' => 'php function.php',
|
||||
'code' => new CURLFile(realpath(__DIR__ . '/../../../resources/functions/php.tar.gz'), 'application/x-gzip', 'php-fx.tar.gz'),
|
||||
'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/functions/php.tar.gz'), 'application/x-gzip', 'php-fx.tar.gz'),
|
||||
]);
|
||||
|
||||
$tagId = $tag['body']['$id'] ?? '';
|
||||
|
||||
@@ -184,7 +184,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'command' => 'php function.php',
|
||||
'code' => new CURLFile(realpath(__DIR__ . '/../../../resources/functions/php.tar.gz'), 'application/x-gzip', 'php-fx.tar.gz'),
|
||||
'file' => new CURLFile(realpath(__DIR__ . '/../../../resources/functions/php.tar.gz'), 'application/x-gzip', 'php-fx.tar.gz'),
|
||||
]);
|
||||
|
||||
$tagId = $tag['body']['$id'] ?? '';
|
||||
@@ -467,7 +467,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'PHP',
|
||||
'version' => '7.4',
|
||||
'name' => 'php-7.4',
|
||||
'code' => $functions.'/php.tar.gz',
|
||||
'file' => $functions.'/php.tar.gz',
|
||||
'command' => 'php index.php',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -475,7 +475,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'PHP',
|
||||
'version' => '8.0',
|
||||
'name' => 'php-8.0',
|
||||
'code' => $functions.'/php.tar.gz',
|
||||
'file' => $functions.'/php.tar.gz',
|
||||
'command' => 'php index.php',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -483,7 +483,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Python',
|
||||
'version' => '3.8',
|
||||
'name' => 'python-3.8',
|
||||
'code' => $functions.'/python.tar.gz',
|
||||
'file' => $functions.'/python.tar.gz',
|
||||
'command' => 'python main.py',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -491,7 +491,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Node.js',
|
||||
'version' => '14.5',
|
||||
'name' => 'node-14.5',
|
||||
'code' => $functions.'/node.tar.gz',
|
||||
'file' => $functions.'/node.tar.gz',
|
||||
'command' => 'node index.js',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -499,7 +499,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Node.js',
|
||||
'version' => '15.5',
|
||||
'name' => 'node-15.5',
|
||||
'code' => $functions.'/node.tar.gz',
|
||||
'file' => $functions.'/node.tar.gz',
|
||||
'command' => 'node index.js',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -507,7 +507,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Ruby',
|
||||
'version' => '2.7',
|
||||
'name' => 'ruby-2.7',
|
||||
'code' => $functions.'/ruby.tar.gz',
|
||||
'file' => $functions.'/ruby.tar.gz',
|
||||
'command' => 'ruby app.rb',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -515,7 +515,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Ruby',
|
||||
'version' => '3.0',
|
||||
'name' => 'ruby-3.0',
|
||||
'code' => $functions.'/ruby.tar.gz',
|
||||
'file' => $functions.'/ruby.tar.gz',
|
||||
'command' => 'ruby app.rb',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -523,7 +523,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Deno',
|
||||
'version' => '1.5',
|
||||
'name' => 'deno-1.5',
|
||||
'code' => $functions.'/deno.tar.gz',
|
||||
'file' => $functions.'/deno.tar.gz',
|
||||
'command' => 'deno run --allow-env index.ts',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -531,7 +531,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Deno',
|
||||
'version' => '1.6',
|
||||
'name' => 'deno-1.6',
|
||||
'code' => $functions.'/deno.tar.gz',
|
||||
'file' => $functions.'/deno.tar.gz',
|
||||
'command' => 'deno run --allow-env index.ts',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -539,7 +539,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => 'Dart',
|
||||
'version' => '2.10',
|
||||
'name' => 'dart-2.10',
|
||||
'code' => $functions.'/dart.tar.gz',
|
||||
'file' => $functions.'/dart.tar.gz',
|
||||
'command' => 'dart main.dart',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -547,7 +547,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => '.NET',
|
||||
'version' => '3.1',
|
||||
'name' => 'dotnet-3.1',
|
||||
'code' => $functions.'/dotnet-3.1.tar.gz',
|
||||
'file' => $functions.'/dotnet-3.1.tar.gz',
|
||||
'command' => 'dotnet dotnet.dll',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -555,7 +555,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'language' => '.NET',
|
||||
'version' => '5.0',
|
||||
'name' => 'dotnet-5.0',
|
||||
'code' => $functions.'/dotnet-5.0.tar.gz',
|
||||
'file' => $functions.'/dotnet-5.0.tar.gz',
|
||||
'command' => 'dotnet dotnet.dll',
|
||||
'timeout' => 15,
|
||||
],
|
||||
@@ -586,7 +586,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
$language = $env['language'] ?? '';
|
||||
$version = $env['version'] ?? '';
|
||||
$name = $env['name'] ?? '';
|
||||
$code = $env['code'] ?? '';
|
||||
$code = $env['file'] ?? '';
|
||||
$command = $env['command'] ?? '';
|
||||
$timeout = $env['timeout'] ?? 15;
|
||||
|
||||
@@ -618,7 +618,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'command' => $command,
|
||||
'code' => new CURLFile($code, 'application/x-gzip', basename($code)),
|
||||
'file' => new CURLFile($code, 'application/x-gzip', basename($code)),
|
||||
]);
|
||||
|
||||
$tagId = $tag['body']['$id'] ?? '';
|
||||
@@ -716,7 +716,7 @@ class FunctionsCustomServerTest extends Scope
|
||||
'x-appwrite-project' => $this->getProject()['$id'],
|
||||
], $this->getHeaders()), [
|
||||
'command' => $command,
|
||||
'code' => new CURLFile($code, 'application/x-gzip', basename($code)),
|
||||
'file' => new CURLFile($code, 'application/x-gzip', basename($code)),
|
||||
]);
|
||||
|
||||
$tagId = $tag['body']['$id'] ?? '';
|
||||
|
||||
Reference in New Issue
Block a user