diff --git a/bun.lock b/bun.lock index 114da4418..cdfc71100 100644 --- a/bun.lock +++ b/bun.lock @@ -6,7 +6,7 @@ "name": "@appwrite/console", "dependencies": { "@ai-sdk/svelte": "^1.1.24", - "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@41152f5", + "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@9163640", "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bfe7ce3", "@appwrite.io/pink-legacy": "^1.0.3", @@ -108,7 +108,7 @@ "@analytics/type-utils": ["@analytics/type-utils@0.6.4", "", {}, "sha512-Ou1gQxFakOWLcPnbFVsrPb8g1wLLUZYYJXDPjHkG07+5mustGs5yqACx42UAu4A6NszNN6Z5gGxhyH45zPWRxw=="], - "@appwrite.io/console": ["@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@41152f5", { "dependencies": { "json-bigint": "1.0.0" } }], + "@appwrite.io/console": ["@appwrite.io/console@https://pkg.vc/-/@appwrite/@appwrite.io/console@9163640", { "dependencies": { "json-bigint": "1.0.0" } }], "@appwrite.io/pink-icons": ["@appwrite.io/pink-icons@0.25.0", "", {}, "sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q=="], diff --git a/package.json b/package.json index 8e9a4cdbe..bb403e709 100644 --- a/package.json +++ b/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@ai-sdk/svelte": "^1.1.24", - "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@41152f5", + "@appwrite.io/console": "https://pkg.vc/-/@appwrite/@appwrite.io/console@9163640", "@appwrite.io/pink-icons": "0.25.0", "@appwrite.io/pink-icons-svelte": "https://pkg.vc/-/@appwrite/@appwrite.io/pink-icons-svelte@bfe7ce3", "@appwrite.io/pink-legacy": "^1.0.3", diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/+page.ts b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/+page.ts index 1f8ab2937..113424686 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/+page.ts @@ -5,7 +5,15 @@ export const load = async ({ params, depends, parent }) => { depends(Dependencies.VARIABLES); depends(Dependencies.FUNCTION); - const { runtimesList, specificationsList } = await parent(); + const { runtimesList, specificationsList, function: fn } = await parent(); + + const enabledSpecs = specificationsList?.specifications?.filter((s) => s.enabled) ?? []; + if (!enabledSpecs.some((s) => s.slug === fn.buildSpecification)) { + fn.buildSpecification = enabledSpecs[0]?.slug; + } + if (!enabledSpecs.some((s) => s.slug === fn.runtimeSpecification)) { + fn.runtimeSpecification = enabledSpecs[0]?.slug; + } const [globalVariables, variables] = await Promise.all([ sdk.forProject(params.region, params.project).projectApi.listVariables(), @@ -36,6 +44,7 @@ export const load = async ({ params, depends, parent }) => { variables, globalVariables, runtimesList, - specificationsList + specificationsList, + function: fn }; }; diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/updateResourceLimits.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/updateResourceLimits.svelte index 3fe393723..44b302653 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/updateResourceLimits.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/settings/updateResourceLimits.svelte @@ -9,7 +9,8 @@ import { isValueOfStringEnum } from '$lib/helpers/types'; import { Runtime, type Models, type Scopes } from '@appwrite.io/console'; import Link from '$lib/elements/link.svelte'; - import { Alert } from '@appwrite.io/pink-svelte'; + import { Alert, Icon, Tooltip } from '@appwrite.io/pink-svelte'; + import { IconInfo } from '@appwrite.io/pink-icons-svelte'; import { isStarterPlan, getChangePlanUrl } from '$lib/stores/billing'; import { isCloud } from '$lib/system'; import { organization } from '$lib/stores/organization'; @@ -18,11 +19,19 @@ export let func: Models.Function; export let specs: Models.SpecificationList; - let specification = func.buildSpecification; - let originalSpecification = func.buildSpecification; - $: originalSpecification = func.buildSpecification; + let buildSpecification = func.buildSpecification; + let runtimeSpecification = func.runtimeSpecification; + let originalBuild = func.buildSpecification; + let originalRuntime = func.runtimeSpecification; - async function updateLogging() { + $: { + buildSpecification = func.buildSpecification; + runtimeSpecification = func.runtimeSpecification; + originalBuild = func.buildSpecification; + originalRuntime = func.runtimeSpecification; + } + + async function updateResourceLimits() { try { if (!isValueOfStringEnum(Runtime, func.runtime)) { throw new Error(`Invalid runtime: ${func.runtime}`); @@ -45,13 +54,12 @@ providerBranch: func.providerBranch || undefined, providerSilentMode: func.providerSilentMode || undefined, providerRootDirectory: func.providerRootDirectory || undefined, - buildSpecification: specification || undefined + buildSpecification: buildSpecification || undefined, + runtimeSpecification: runtimeSpecification || undefined }); await invalidate(Dependencies.FUNCTION); - originalSpecification = specification; - addNotification({ type: 'success', message: 'Resource limits have been updated' @@ -73,7 +81,7 @@ })); -
diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/+page.ts index f07f7542f..a4d6060f8 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/+page.ts @@ -42,6 +42,9 @@ export const load = async ({ params, depends, parent }) => { if (!enabledSpecs.some((s) => s.slug === site.buildSpecification)) { site.buildSpecification = enabledSpecs[0]?.slug; } + if (!enabledSpecs.some((s) => s.slug === site.runtimeSpecification)) { + site.runtimeSpecification = enabledSpecs[0]?.slug; + } return { site, diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateBuildSettings.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateBuildSettings.svelte index 74211bc68..a361b2c0c 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateBuildSettings.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateBuildSettings.svelte @@ -115,6 +115,9 @@ if (!specs.specifications.some((s) => s.slug === site.buildSpecification)) { site.buildSpecification = specs.specifications[0].slug; } + if (!specs.specifications.some((s) => s.slug === site.runtimeSpecification)) { + site.runtimeSpecification = specs.specifications[0].slug; + } } } }); @@ -132,6 +135,10 @@ ? site.buildSpecification : enabledSpecs[0]?.slug; site.buildSpecification = specToSend; + let runtimeSpecToSend = enabledSpecs.some((s) => s.slug === site.runtimeSpecification) + ? site.runtimeSpecification + : enabledSpecs[0]?.slug; + site.runtimeSpecification = runtimeSpecToSend; try { await sdk.forProject(page.params.region, page.params.project).sites.update({ siteId: site.$id, @@ -151,7 +158,8 @@ providerBranch: site.providerBranch || undefined, providerSilentMode: site.providerSilentMode || undefined, providerRootDirectory: site.providerRootDirectory || undefined, - buildSpecification: specToSend || undefined + buildSpecification: specToSend || undefined, + runtimeSpecification: runtimeSpecToSend || undefined }); await invalidate(Dependencies.SITE); addNotification({ diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateResourceLimits.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateResourceLimits.svelte index a5379154e..369cbc4fc 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateResourceLimits.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/settings/updateResourceLimits.svelte @@ -8,7 +8,8 @@ import { sdk } from '$lib/stores/sdk'; import { Adapter, BuildRuntime, Framework, type Models } from '@appwrite.io/console'; import Link from '$lib/elements/link.svelte'; - import { Alert } from '@appwrite.io/pink-svelte'; + import { Alert, Icon, Tooltip } from '@appwrite.io/pink-svelte'; + import { IconInfo } from '@appwrite.io/pink-icons-svelte'; import { getChangePlanUrl, isStarterPlan } from '$lib/stores/billing'; import { isCloud } from '$lib/system'; import { organization } from '$lib/stores/organization'; @@ -17,10 +18,19 @@ export let site: Models.Site; export let specs: Models.SpecificationList; - let specification = site.buildSpecification; - let originalSpecification = site.buildSpecification; + let buildSpecification = site.buildSpecification; + let runtimeSpecification = site.runtimeSpecification; + let originalBuild = site.buildSpecification; + let originalRuntime = site.runtimeSpecification; - async function updateLogging() { + $: { + buildSpecification = site.buildSpecification; + runtimeSpecification = site.runtimeSpecification; + originalBuild = site.buildSpecification; + originalRuntime = site.runtimeSpecification; + } + + async function updateResourceLimits() { try { await sdk.forProject(page.params.region, page.params.project).sites.update({ siteId: site.$id, @@ -40,10 +50,10 @@ providerBranch: site?.providerBranch || undefined, providerSilentMode: site?.providerSilentMode || undefined, providerRootDirectory: site?.providerRootDirectory || undefined, - buildSpecification: specification || undefined + buildSpecification: buildSpecification || undefined, + runtimeSpecification: runtimeSpecification || undefined }); await invalidate(Dependencies.SITE); - originalSpecification = specification; addNotification({ type: 'success', @@ -66,23 +76,44 @@ })); -