diff --git a/app/config/frameworks.php b/app/config/frameworks.php index d224a6e170..6078c53c63 100644 --- a/app/config/frameworks.php +++ b/app/config/frameworks.php @@ -8,20 +8,13 @@ use Utopia\Config\Config; $templateRuntimes = Config::getParam('template-runtimes'); -function getVersions(array $versions, string $prefix) -{ - return array_map(function ($version) use ($prefix) { - return $prefix . '-' . $version; - }, $versions); -} - return [ 'analog' => [ 'key' => 'analog', 'name' => 'Analog', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/analog/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/analog/env.sh', 'adapters' => [ @@ -47,7 +40,7 @@ return [ 'name' => 'Angular', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/angular/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/angular/env.sh', 'adapters' => [ @@ -73,7 +66,7 @@ return [ 'name' => 'Next.js', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/next-js/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/next-js/env.sh', 'adapters' => [ @@ -98,7 +91,7 @@ return [ 'name' => 'React', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'adapters' => [ 'static' => [ 'key' => 'static', @@ -115,7 +108,7 @@ return [ 'name' => 'Nuxt', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/nuxt/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/nuxt/env.sh', 'adapters' => [ @@ -140,7 +133,7 @@ return [ 'name' => 'Vue.js', 'screenshotSleep' => 5000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'adapters' => [ 'static' => [ 'key' => 'static', @@ -157,7 +150,7 @@ return [ 'name' => 'SvelteKit', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/sveltekit/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/sveltekit/env.sh', 'adapters' => [ @@ -182,7 +175,7 @@ return [ 'name' => 'Astro', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/astro/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/astro/env.sh', 'adapters' => [ @@ -207,7 +200,7 @@ return [ 'name' => 'TanStack Start', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/tanstack-start/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/tanstack-start/env.sh', 'adapters' => [ @@ -232,7 +225,7 @@ return [ 'name' => 'Remix', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'bundleCommand' => 'bash /usr/local/server/helpers/remix/bundle.sh', 'envCommand' => 'source /usr/local/server/helpers/remix/env.sh', 'adapters' => [ @@ -257,7 +250,7 @@ return [ 'name' => 'Lynx', 'screenshotSleep' => 5000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'adapters' => [ 'static' => [ 'key' => 'static', @@ -274,7 +267,7 @@ return [ 'name' => 'Flutter', 'screenshotSleep' => 5000, 'buildRuntime' => 'flutter-3.35', - 'runtimes' => getVersions($templateRuntimes['FLUTTER']['versions'], 'flutter'), + 'runtimes' => $templateRuntimes['FLUTTER'], 'adapters' => [ 'static' => [ 'key' => 'static', @@ -291,7 +284,7 @@ return [ 'name' => 'React Native', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'adapters' => [ 'static' => [ 'key' => 'static', @@ -308,7 +301,7 @@ return [ 'name' => 'Vite', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'adapters' => [ 'static' => [ 'key' => 'static', @@ -324,7 +317,7 @@ return [ 'name' => 'Other', 'screenshotSleep' => 3000, 'buildRuntime' => 'node-22', - 'runtimes' => getVersions($templateRuntimes['NODE']['versions'], 'node'), + 'runtimes' => $templateRuntimes['NODE'], 'adapters' => [ 'static' => [ 'key' => 'static', diff --git a/app/config/template-runtimes.php b/app/config/template-runtimes.php index 04eaba2c44..4a58bf00b5 100644 --- a/app/config/template-runtimes.php +++ b/app/config/template-runtimes.php @@ -1,43 +1,12 @@ [ - 'name' => 'node', - 'versions' => ['22', '21.0', '20.0', '19.0', '18.0', '16.0', '14.5'] - ], - 'PYTHON' => [ - 'name' => 'python', - 'versions' => ['3.12', '3.11', '3.10', '3.9', '3.8'] - ], - 'DART' => [ - 'name' => 'dart', - 'versions' => ['3.9', '3.8', '3.5', '3.3', '3.1', '3.0', '2.19', '2.18', '2.17', '2.16'] - ], - 'GO' => [ - 'name' => 'go', - 'versions' => ['1.23'] - ], - 'PHP' => [ - 'name' => 'php', - 'versions' => ['8.3', '8.2', '8.1', '8.0'] - ], - 'DENO' => [ - 'name' => 'deno', - 'versions' => ['2.0', '1.46', '1.40', '1.35', '1.24', '1.21'] - ], - 'BUN' => [ - 'name' => 'bun', - 'versions' => ['1.1', '1.0'] - ], - 'RUBY' => [ - 'name' => 'ruby', - 'versions' => ['3.3', '3.2', '3.1', '3.0'] - ], - 'FLUTTER' => [ - 'name' => 'flutter', - 'versions' => ['3.35', '3.32', '3.24'] - ], -]; +$runtimes = Config::getParam('runtimes'); + +$mappedRuntimes = \array_reduce($runtimes, function ($acc, $runtime) { + $acc[strtoupper($runtime['key'])][] = $runtime['key'] . '-' . $runtime['version']; + return $acc; +}, []); + +return $mappedRuntimes; diff --git a/app/config/templates/function.php b/app/config/templates/function.php index 16838341a9..e10cd4648c 100644 --- a/app/config/templates/function.php +++ b/app/config/templates/function.php @@ -1,20 +1,22 @@ $runtime['name'] . '-' . $version, + 'name' => $runtime, 'commands' => $commands, 'entrypoint' => $entrypoint, 'providerRootDirectory' => $providerRootDirectory ]; - }, array_filter($runtime['versions'], function ($version) use ($versionsDenyList) { - return !in_array($version, $versionsDenyList); + }, array_filter($runtimes, function ($runtime) use ($allowList) { + return in_array($runtime, $allowList); })); } @@ -32,24 +34,26 @@ return [ 'timeout' => 15, 'useCases' => ['starter'], 'runtimes' => [ - ...getRuntimes($templateRuntimes['NODE'], 'npm install', 'src/main.js', 'node/starter'), + ...getRuntimes($templateRuntimes['NODE'], 'npm install', 'src/main.js', 'node/starter', $allowList), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/starter' + 'python/starter', + $allowList ), - ...getRuntimes($templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', 'dart/starter'), - ...getRuntimes($templateRuntimes['GO'], '', 'main.go', 'go/starter'), + ...getRuntimes($templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', 'dart/starter', $allowList), + ...getRuntimes($templateRuntimes['GO'], '', 'main.go', 'go/starter', $allowList), ...getRuntimes( $templateRuntimes['PHP'], 'composer install', 'src/index.php', - 'php/starter' + 'php/starter', + $allowList ), - ...getRuntimes($templateRuntimes['DENO'], 'deno cache src/main.ts', 'src/main.ts', 'deno/starter'), - ...getRuntimes($templateRuntimes['BUN'], 'bun install', 'src/main.ts', 'bun/starter'), - ...getRuntimes($templateRuntimes['RUBY'], 'bundle install', 'lib/main.rb', 'ruby/starter'), + ...getRuntimes($templateRuntimes['DENO'], 'deno cache src/main.ts', 'src/main.ts', 'deno/starter', $allowList), + ...getRuntimes($templateRuntimes['BUN'], 'bun install', 'src/main.ts', 'bun/starter', $allowList), + ...getRuntimes($templateRuntimes['RUBY'], 'bundle install', 'lib/main.rb', 'ruby/starter', $allowList), ], 'instructions' => 'For documentation and instructions check out file.', 'vcsProvider' => 'github', @@ -75,7 +79,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/query-upstash-vector' + 'node/query-upstash-vector', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -120,7 +125,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/query-redis-labs' + 'node/query-redis-labs', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -164,7 +170,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/query-neo4j-auradb' + 'node/query-neo4j-auradb', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -217,7 +224,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/query-mongo-atlas' + 'node/query-mongo-atlas', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -255,7 +263,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/query-neon-postgres' + 'node/query-neon-postgres', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -323,25 +332,29 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/prompt-chatgpt' + 'node/prompt-chatgpt', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/prompt_chatgpt' + 'python/prompt_chatgpt', + $allowList ), ...getRuntimes( $templateRuntimes['PHP'], 'composer install', 'src/index.php', - 'php/prompt-chatgpt' + 'php/prompt-chatgpt', + $allowList ), ...getRuntimes( $templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', - 'dart/prompt_chatgpt' + 'dart/prompt_chatgpt', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -385,19 +398,22 @@ return [ $templateRuntimes['NODE'], 'npm install && npm run setup', 'src/main.js', - 'node/discord-command-bot' + 'node/discord-command-bot', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt && python src/setup.py', 'src/main.py', - 'python/discord_command_bot' + 'python/discord_command_bot', + $allowList ), ...getRuntimes( $templateRuntimes['GO'], '', 'main.go', - 'go/discord-command-bot' + 'go/discord-command-bot', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -449,7 +465,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/analyze-with-perspectiveapi' + 'node/analyze-with-perspectiveapi', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -486,19 +503,22 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/censor-with-redact' + 'node/censor-with-redact', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/censor_with_redact' + 'python/censor_with_redact', + $allowList ), ...getRuntimes( $templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', - 'dart/censor_with_redact' + 'dart/censor_with_redact', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -530,7 +550,7 @@ return [ 'timeout' => 15, 'useCases' => ['utilities'], 'runtimes' => [ - ...getRuntimes($templateRuntimes['NODE'], 'npm install', 'src/main.js', 'node/generate-pdf') + ...getRuntimes($templateRuntimes['NODE'], 'npm install', 'src/main.js', 'node/generate-pdf', $allowList) ], 'instructions' => 'For documentation and instructions check out file.', 'vcsProvider' => 'github', @@ -557,7 +577,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/github-issue-bot' + 'node/github-issue-bot', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -601,7 +622,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/url-shortener' + 'node/url-shortener', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -653,19 +675,22 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/sync-with-algolia' + 'node/sync-with-algolia', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/sync_with_algolia' + 'python/sync_with_algolia', + $allowList ), ...getRuntimes( $templateRuntimes['PHP'], 'composer install', 'src/index.php', - 'php/sync-with-algolia' + 'php/sync-with-algolia', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -735,31 +760,36 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/sync-with-meilisearch' + 'node/sync-with-meilisearch', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/sync-with-meilisearch' + 'python/sync-with-meilisearch', + $allowList ), ...getRuntimes( $templateRuntimes['PHP'], 'composer install', 'src/index.php', - 'php/sync-with-meilisearch' + 'php/sync-with-meilisearch', + $allowList ), ...getRuntimes( $templateRuntimes['BUN'], 'bun install', 'src/main.ts', - 'bun/sync-with-meilisearch' + 'bun/sync-with-meilisearch', + $allowList ), ...getRuntimes( $templateRuntimes['RUBY'], 'bundle install', 'lib/main.rb', - 'ruby/sync-with-meilisearch' + 'ruby/sync-with-meilisearch', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -829,37 +859,43 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/whatsapp-with-vonage' + 'node/whatsapp-with-vonage', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/whatsapp_with_vonage' + 'python/whatsapp_with_vonage', + $allowList ), ...getRuntimes( $templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', - 'dart/whatsapp-with-vonage' + 'dart/whatsapp-with-vonage', + $allowList ), ...getRuntimes( $templateRuntimes['PHP'], 'composer install', 'src/index.php', - 'php/whatsapp-with-vonage' + 'php/whatsapp-with-vonage', + $allowList ), ...getRuntimes( $templateRuntimes['BUN'], 'bun install', 'src/main.ts', - 'bun/whatsapp-with-vonage' + 'bun/whatsapp-with-vonage', + $allowList ), ...getRuntimes( $templateRuntimes['RUBY'], 'bundle install', 'lib/main.rb', - 'ruby/whatsapp-with-vonage' + 'ruby/whatsapp-with-vonage', + $allowList ), ], 'instructions' => 'For documentation and instructions check out file.', @@ -916,7 +952,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/push-notification-with-fcm' + 'node/push-notification-with-fcm', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -973,19 +1010,22 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/email-contact-form' + 'node/email-contact-form', + $allowList ), ...getRuntimes( $templateRuntimes['PYTHON'], 'pip install -r requirements.txt', 'src/main.py', - 'python/email_contact_form' + 'python/email_contact_form', + $allowList ), ...getRuntimes( $templateRuntimes['PHP'], 'composer install', 'src/index.php', - 'php/email-contact-form' + 'php/email-contact-form', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1057,7 +1097,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/subscriptions-with-stripe' + 'node/subscriptions-with-stripe', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1099,7 +1140,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/payments-with-stripe' + 'node/payments-with-stripe', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1157,7 +1199,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/text-generation-with-huggingface' + 'node/text-generation-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1192,7 +1235,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/language-translation-with-huggingface' + 'node/language-translation-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1227,7 +1271,8 @@ return [ $templateRuntimes['NODE'], 'npm install && npm run setup', 'src/main.js', - 'node/image-classification-with-huggingface' + 'node/image-classification-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1286,7 +1331,8 @@ return [ $templateRuntimes['NODE'], 'npm install && npm run setup', 'src/main.js', - 'node/object-detection-with-huggingface' + 'node/object-detection-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1345,7 +1391,8 @@ return [ $templateRuntimes['NODE'], 'npm install && npm run setup', 'src/main.js', - 'node/speech-recognition-with-huggingface' + 'node/speech-recognition-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1407,7 +1454,8 @@ return [ $templateRuntimes['NODE'], 'npm install && npm run setup', 'src/main.js', - 'node/text-to-speech-with-huggingface' + 'node/text-to-speech-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1466,7 +1514,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/generate-with-replicate' + 'node/generate-with-replicate', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1502,7 +1551,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/generate-with-together-ai' + 'node/generate-with-together-ai', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1545,7 +1595,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/chat-with-perplexity-ai' + 'node/chat-with-perplexity-ai', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1587,7 +1638,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/generate-with-replicate' + 'node/generate-with-replicate', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1623,7 +1675,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/sync-with-pinecone' + 'node/sync-with-pinecone', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1687,7 +1740,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/rag-with-langchain' + 'node/rag-with-langchain', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1751,7 +1805,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/speak-with-elevenlabs' + 'node/speak-with-elevenlabs', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1807,7 +1862,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/speak-with-lmnt' + 'node/speak-with-lmnt', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1849,7 +1905,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/chat-with-anyscale' + 'node/chat-with-anyscale', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1891,7 +1948,8 @@ return [ $templateRuntimes['NODE'], 'npm install && npm run setup', 'src/main.js', - 'node/music-generation-with-huggingface' + 'node/music-generation-with-huggingface', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1934,7 +1992,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/generate-with-fal-ai' + 'node/generate-with-fal-ai', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -1970,7 +2029,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/subscriptions-with-lemon-squeezy' + 'node/subscriptions-with-lemon-squeezy', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -2026,7 +2086,8 @@ return [ $templateRuntimes['NODE'], 'npm install', 'src/main.js', - 'node/payments-with-lemon-squeezy' + 'node/payments-with-lemon-squeezy', + $allowList ) ], 'instructions' => 'For documentation and instructions check out file.', @@ -2094,7 +2155,7 @@ return [ 'timeout' => 15, 'useCases' => ['auth'], 'runtimes' => [ - ...getRuntimes($templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', 'dart/sign_in_with_apple') + ...getRuntimes($templateRuntimes['DART'], 'dart pub get', 'lib/main.dart', 'dart/sign_in_with_apple', $allowList) ], 'instructions' => 'For documentation and instructions, check out file.', 'vcsProvider' => 'github', diff --git a/app/init/configs.php b/app/init/configs.php index 51242af578..6fa3b576d5 100644 --- a/app/init/configs.php +++ b/app/init/configs.php @@ -7,6 +7,8 @@ require_once __DIR__ . '/../config/storage/resource_limits.php'; $configAdapter = new PHP(); +Config::load('runtimes', __DIR__ . '/../config/runtimes.php', $configAdapter); +Config::load('runtimes-v2', __DIR__ . '/../config/runtimes-v2.php', $configAdapter); Config::load('template-runtimes', __DIR__ . '/../config/template-runtimes.php', $configAdapter); Config::load('events', __DIR__ . '/../config/events.php', $configAdapter); Config::load('auth', __DIR__ . '/../config/auth.php', $configAdapter); @@ -17,8 +19,6 @@ Config::load('platforms', __DIR__ . '/../config/platforms.php', $configAdapter); Config::load('console', __DIR__ . '/../config/console.php', $configAdapter); Config::load('collections', __DIR__ . '/../config/collections.php', $configAdapter); Config::load('frameworks', __DIR__ . '/../config/frameworks.php', $configAdapter); -Config::load('runtimes', __DIR__ . '/../config/runtimes.php', $configAdapter); -Config::load('runtimes-v2', __DIR__ . '/../config/runtimes-v2.php', $configAdapter); Config::load('usage', __DIR__ . '/../config/usage.php', $configAdapter); Config::load('roles', __DIR__ . '/../config/roles.php', $configAdapter); // User roles and scopes Config::load('scopes', __DIR__ . '/../config/scopes.php', $configAdapter); // User roles and scopes diff --git a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php index cc978a8e38..2f02fd92ba 100644 --- a/tests/e2e/Services/Functions/FunctionsCustomClientTest.php +++ b/tests/e2e/Services/Functions/FunctionsCustomClientTest.php @@ -422,7 +422,7 @@ class FunctionsCustomClientTest extends Scope 'x-appwrite-project' => $this->getProject()['$id'], ], $this->getHeaders()), [ 'useCases' => ['starter', 'ai'], - 'runtimes' => ['bun-1.0', 'dart-2.16'] + 'runtimes' => ['node-22'] ]); $this->assertEquals(200, $templates['headers']['status-code']); $this->assertGreaterThanOrEqual(3, $templates['body']['total']); @@ -436,8 +436,7 @@ class FunctionsCustomClientTest extends Scope $this->assertThat( \array_column($template['runtimes'], 'name'), $this->logicalOr( - $this->containsEqual('bun-1.0'), - $this->containsEqual('dart-2.16'), + $this->containsEqual('node-22'), ), ); }