Merge branch '1.6.x' into chore-allow-more-deployment-attributes

This commit is contained in:
Khushboo Verma
2024-08-12 15:21:21 +05:30
5 changed files with 42 additions and 4 deletions
+4 -4
View File
@@ -431,13 +431,13 @@ App::get('/v1/functions/runtimes')
$allowList = \array_filter(\explode(',', System::getEnv('_APP_FUNCTIONS_RUNTIMES', '')));
$allowed = [];
foreach ($runtimes as $key => $runtime) {
if (!empty($allowList) && !\in_array($key, $allowList)) {
foreach ($runtimes as $id => $runtime) {
if (!empty($allowList) && !\in_array($id, $allowList)) {
continue;
}
$runtimes[$key]['$id'] = $key;
$allowed[] = $runtimes[$key];
$runtime['$id'] = $id;
$allowed[] = $runtime;
}
$response->dynamic(new Document([
+14
View File
@@ -2,6 +2,7 @@
namespace Appwrite\Platform\Workers;
use Ahc\Jwt\JWT;
use Appwrite\Event\Event;
use Appwrite\Event\Func;
use Appwrite\Event\Usage;
@@ -393,8 +394,21 @@ class Builds extends Action
$vars[$var->getAttribute('key')] = $var->getAttribute('value', '');
}
$jwtExpiry = (int) System::getEnv('_APP_FUNCTIONS_BUILD_TIMEOUT', 900);
$jwtObj = new JWT(System::getEnv('_APP_OPENSSL_KEY_V1'), 'HS256', $jwtExpiry, 0);
$apiKey = $jwtObj->encode([
'projectId' => $project->getId(),
'scopes' => $function->getAttribute('scopes', [])
]);
$protocol = System::getEnv('_APP_OPTIONS_FORCE_HTTPS') == 'disabled' ? 'http' : 'https';
$hostname = System::getEnv('_APP_DOMAIN');
$endpoint = $protocol . '://' . $hostname . "/v1";
// Appwrite vars
$vars = \array_merge($vars, [
'APPWRITE_FUNCTION_API_ENDPOINT' => $endpoint,
'APPWRITE_FUNCTION_API_KEY' => API_KEY_DYNAMIC . '_' . $apiKey,
'APPWRITE_FUNCTION_ID' => $function->getId(),
'APPWRITE_FUNCTION_NAME' => $function->getAttribute('name'),
'APPWRITE_FUNCTION_DEPLOYMENT' => $deployment->getId(),
@@ -16,6 +16,12 @@ class Runtime extends Model
'default' => '',
'example' => 'python-3.8',
])
->addRule('key', [
'type' => self::TYPE_STRING,
'description' => 'Parent runtime key.',
'default' => '',
'example' => 'python',
])
->addRule('name', [
'type' => self::TYPE_STRING,
'description' => 'Runtime Name.',
@@ -1480,6 +1480,7 @@ class FunctionsCustomServerTest extends Scope
$this->assertArrayHasKey('$id', $runtime);
$this->assertArrayHasKey('name', $runtime);
$this->assertArrayHasKey('key', $runtime);
$this->assertArrayHasKey('version', $runtime);
$this->assertArrayHasKey('logo', $runtime);
$this->assertArrayHasKey('image', $runtime);
@@ -1612,6 +1613,7 @@ class FunctionsCustomServerTest extends Scope
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), [
'entrypoint' => 'index.php',
'commands' => 'sh setup.sh && composer install',
'code' => new CURLFile($code, 'application/x-gzip', basename($code)),
'activate' => true
]);
@@ -1621,6 +1623,16 @@ class FunctionsCustomServerTest extends Scope
$this->awaitDeploymentIsBuilt($function['body']['$id'], $deploymentId, checkForSuccess: false);
$deployment = $this->client->call(Client::METHOD_GET, '/functions/' . $functionId . '/deployments/' . $deploymentId, array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
], $this->getHeaders()), []);
$this->assertEquals(200, $deployment['headers']['status-code']);
$this->assertStringContainsStringIgnoringCase("200 OK", $deployment['body']['buildLogs']);
$this->assertStringContainsStringIgnoringCase('"total":', $deployment['body']['buildLogs']);
$this->assertStringContainsStringIgnoringCase('"users":', $deployment['body']['buildLogs']);
$deployment = $this->client->call(Client::METHOD_PATCH, '/functions/' . $functionId . '/deployments/' . $deploymentId, array_merge([
'content-type' => 'application/json',
'x-appwrite-project' => $this->getProject()['$id'],
@@ -0,0 +1,6 @@
ENDPOINT="$APPWRITE_FUNCTION_API_ENDPOINT/users"
PROJECT_ID="$APPWRITE_FUNCTION_PROJECT_ID"
API_KEY="$APPWRITE_FUNCTION_API_KEY"
curl -v -X GET $ENDPOINT -H "x-appwrite-project: $PROJECT_ID" -H "x-appwrite-key: $API_KEY"