From a40d0cc081c9af0863ada402f39a65bfa480ae2b Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:19:45 +0530 Subject: [PATCH 01/12] add: region based console variables on functions. --- src/lib/stores/sdk.ts | 52 +++++++++++++------ .../project-[region]-[project]/+layout.ts | 4 +- .../functions/create-function/+page.svelte | 4 +- .../create-function/manual/+page.svelte | 4 +- .../repository-[repository]/+page.svelte | 4 +- .../template-[template]/+page.svelte | 4 +- .../add-domain/verify-[domain]/+page.svelte | 14 ++--- .../domains/recordsCard.svelte | 4 +- .../project-[region]-[project]/store.ts | 8 +++ 9 files changed, 63 insertions(+), 35 deletions(-) diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index 9b46263cf8..92fc36e9ff 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -64,14 +64,39 @@ const getSubdomain = (region?: string) => { } }; +function createConsoleSdk(client: Client) { + return { + client, + account: new Account(client), + avatars: new Avatars(client), + functions: new Functions(client), + health: new Health(client), + locale: new Locale(client), + projects: new Projects(client), + teams: new Teams(client), + users: new Users(client), + migrations: new Migrations(client), + console: new Console(client), + assistant: new Assistant(client), + billing: new Billing(client), + sources: new Sources(client), + sites: new Sites(client), + domains: new Domains(client) + }; +} + const endpoint = getApiEndpoint(); const clientConsole = new Client(); +const scopedConsoleClient = new Client(); + const clientProject = new Client(); const clientRealtime = new Client(); if (!building) { clientConsole.setEndpoint(endpoint).setProject('console'); + scopedConsoleClient.setMode(endpoint).setProject('console'); + clientRealtime.setEndpoint(endpoint).setProject('console'); clientProject.setEndpoint(endpoint).setMode('admin'); clientRealtime.setEndpoint(endpoint).setProject('console'); @@ -110,24 +135,17 @@ export const realtime = { }; export const sdk = { - forConsole: { - client: clientConsole, - account: new Account(clientConsole), - avatars: new Avatars(clientConsole), - functions: new Functions(clientConsole), - health: new Health(clientConsole), - locale: new Locale(clientConsole), - projects: new Projects(clientConsole), - teams: new Teams(clientConsole), - users: new Users(clientConsole), - migrations: new Migrations(clientConsole), - console: new Console(clientConsole), - assistant: new Assistant(clientConsole), - billing: new Billing(clientConsole), - sources: new Sources(clientConsole), - sites: new Sites(clientConsole), - domains: new Domains(clientConsole) + forConsole: createConsoleSdk(clientConsole), + + forScopedConsole(region: string) { + const regionAwareEndpoint = getApiEndpoint(region); + if (regionAwareEndpoint !== scopedConsoleClient.config.endpoint) { + scopedConsoleClient.setEndpoint(regionAwareEndpoint); + } + + return createConsoleSdk(scopedConsoleClient); }, + forProject(region: string, projectId: string) { const endpoint = getApiEndpoint(region); if (endpoint !== clientProject.config.endpoint) { diff --git a/src/routes/(console)/project-[region]-[project]/+layout.ts b/src/routes/(console)/project-[region]-[project]/+layout.ts index f90abed153..c65c3d97c6 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.ts +++ b/src/routes/(console)/project-[region]-[project]/+layout.ts @@ -19,9 +19,10 @@ export const load: LayoutLoad = async ({ params, depends }) => { try { const project = await sdk.forConsole.projects.get(params.project); - const [organization, prefs, _] = await Promise.all([ + const [organization, prefs, regionalConsoleVariables, _] = await Promise.all([ sdk.forConsole.teams.get(project.teamId) as Promise, sdk.forConsole.account.getPrefs(), + sdk.forScopedConsole(project.region).console.variables(), loadAvailableRegions(project.teamId) ]); if (prefs?.organization !== project.teamId) { @@ -54,6 +55,7 @@ export const load: LayoutLoad = async ({ params, depends }) => { return { project, organization, + regionalConsoleVariables, roles, scopes, currentPlan diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/+page.svelte index cb80520e30..ca729294f6 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/+page.svelte @@ -5,7 +5,6 @@ import { Click, trackEvent } from '$lib/actions/analytics'; import type { Models } from '@appwrite.io/console'; import { isSelfHosted } from '$lib/system'; - import { consoleVariables } from '$routes/(console)/store'; import { afterNavigate, goto } from '$app/navigation'; import { installation, repository } from '$lib/stores/vcs'; import { Repositories } from '$lib/components/git'; @@ -23,10 +22,11 @@ import Wizard from '$lib/layout/wizard.svelte'; import { Link } from '$lib/elements'; import { Button } from '$lib/elements/forms'; + import { regionalConsoleVariables } from '../../store'; export let data; - const isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true; + const isVcsEnabled = $regionalConsoleVariables?._APP_VCS_ENABLED === true; const wizardBase = `${base}/project-${page.params.region}-${page.params.project}/functions`; let previousPage: string = wizardBase; afterNavigate(({ from }) => { diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte index c7ce6fc565..96dfc5d2ad 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/manual/+page.svelte @@ -11,7 +11,6 @@ import { writable } from 'svelte/store'; import { ID, Runtime } from '@appwrite.io/console'; import type { Models } from '@appwrite.io/console'; - import { consoleVariables } from '$routes/(console)/store'; import Details from '../(components)/details.svelte'; import Aside from '../(components)/aside.svelte'; import { iconPath } from '$lib/stores/app'; @@ -20,6 +19,7 @@ import Configuration from './configuration.svelte'; import { getIconFromRuntime } from '$lib/stores/runtimes'; import { removeFile } from '$lib/helpers/files'; + import { regionalConsoleVariables } from '../../../store'; export let data; @@ -82,7 +82,7 @@ await sdk .forProject(page.params.region, page.params.project) .proxy.createFunctionRule( - `${ID.unique()}.${$consoleVariables._APP_DOMAIN_FUNCTIONS}`, + `${ID.unique()}.${$regionalConsoleVariables._APP_DOMAIN_FUNCTIONS}`, func.$id ); diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte index d6c729b3e2..4414e0ddcf 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/repository-[repository]/+page.svelte @@ -13,7 +13,6 @@ import { ID, Runtime, VCSDeploymentType } from '@appwrite.io/console'; import type { Models } from '@appwrite.io/console'; import { onMount } from 'svelte'; - import { consoleVariables } from '$routes/(console)/store'; import Details from '../(components)/details.svelte'; import ProductionBranchFieldset from '$lib/components/git/productionBranchFieldset.svelte'; import Configuration from './configuration.svelte'; @@ -22,6 +21,7 @@ import { Dependencies } from '$lib/constants'; import RepoCard from './repoCard.svelte'; import { getIconFromRuntime } from '$lib/stores/runtimes'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let data; @@ -92,7 +92,7 @@ await sdk .forProject(page.params.region, page.params.project) .proxy.createFunctionRule( - `${ID.unique()}.${$consoleVariables._APP_DOMAIN_FUNCTIONS}`, + `${ID.unique()}.${$regionalConsoleVariables._APP_DOMAIN_FUNCTIONS}`, func.$id ); diff --git a/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte index 2f1f6224ea..5938236238 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/create-function/template-[template]/+page.svelte @@ -22,7 +22,6 @@ Repositories, RepositoryBehaviour } from '$lib/components/git'; - import { consoleVariables } from '$routes/(console)/store'; import Details from '../(components)/details.svelte'; import Aside from '../(components)/aside.svelte'; import { iconPath } from '$lib/stores/app'; @@ -31,6 +30,7 @@ import RepoCard from './repoCard.svelte'; import { Dependencies } from '$lib/constants'; import { getIconFromRuntime } from '$lib/stores/runtimes'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let data; @@ -148,7 +148,7 @@ await sdk .forProject(page.params.region, page.params.project) .proxy.createFunctionRule( - `${ID.unique()}.${$consoleVariables._APP_DOMAIN_FUNCTIONS}`, + `${ID.unique()}.${$regionalConsoleVariables._APP_DOMAIN_FUNCTIONS}`, func.$id ); diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index f8b03eb861..969ef52287 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,9 +20,9 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; - import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; let { data } = $props(); @@ -31,11 +31,11 @@ let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { - if ($consoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { + if ($regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { selectedTab = 'cname'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_A) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_A) { selectedTab = 'a'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_AAAA) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA) { selectedTab = 'aaaa'; } }); @@ -110,7 +110,7 @@
- {#if isSubDomain && !!$consoleVariables._APP_DOMAIN_TARGET_CNAME && $consoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} + {#if isSubDomain && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} (selectedTab = 'cname')} @@ -126,7 +126,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -134,7 +134,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/recordsCard.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/recordsCard.svelte index 9559a74d3a..417659e980 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/recordsCard.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/recordsCard.svelte @@ -12,7 +12,7 @@ InteractiveText } from '@appwrite.io/pink-svelte'; import type { Models } from '@appwrite.io/console'; - import { consoleVariables } from '$routes/(console)/store'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let domain: Domain | Models.ProxyRule; @@ -44,7 +44,7 @@ + text={$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME} /> diff --git a/src/routes/(console)/project-[region]-[project]/store.ts b/src/routes/(console)/project-[region]-[project]/store.ts index e2836f1a51..5688b1f0ab 100644 --- a/src/routes/(console)/project-[region]-[project]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/store.ts @@ -25,6 +25,14 @@ export const onboarding = derived( ($project) => $project?.platforms?.length === 0 && $project?.keys?.length === 0 ); +/** + * Same as the `consoleVariables` but from project's respective region! + */ +export const regionalConsoleVariables = derived( + page, + ($page) => $page.data.scopedConsoleVariables as Models.ConsoleVariables +); + function createStats() { const { subscribe, set, update } = writable>(new Map()); From f4f793cc63da27cd0630f4feaef8c890a824f5bb Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:21:25 +0530 Subject: [PATCH 02/12] fix: var reference name. --- src/routes/(console)/project-[region]-[project]/store.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/store.ts b/src/routes/(console)/project-[region]-[project]/store.ts index 5688b1f0ab..cc772a1110 100644 --- a/src/routes/(console)/project-[region]-[project]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/store.ts @@ -30,7 +30,7 @@ export const onboarding = derived( */ export const regionalConsoleVariables = derived( page, - ($page) => $page.data.scopedConsoleVariables as Models.ConsoleVariables + ($page) => $page.data.regionalConsoleVariables as Models.ConsoleVariables ); function createStats() { From c758a584028cbdd734466e032a06500a15833bd6 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:32:19 +0530 Subject: [PATCH 03/12] update: console variables on sites. --- .../sites/create-site/aside.svelte | 4 ++-- .../sites/create-site/domain.svelte | 6 +++--- .../sites/create-site/manual/+page.svelte | 11 ++++++++--- .../repository-[repository]/+page.svelte | 7 +++++-- .../repository-[repository]/+page.ts | 5 +++-- .../templates/template-[template]/+page.svelte | 6 +++--- .../templates/template-[template]/+page.ts | 7 ++++--- .../add-domain/verify-[domain]/+page.svelte | 16 ++++++++-------- .../domains/createPreviewDomainModal.svelte | 8 ++++---- .../site-[site]/domains/retryDomainModal.svelte | 14 +++++++------- 10 files changed, 47 insertions(+), 37 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/aside.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/aside.svelte index 3e3d329783..96294b630b 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/aside.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/aside.svelte @@ -2,9 +2,9 @@ import { Card, SvgIcon, Trim } from '$lib/components'; import { Icon, Layout, Typography } from '@appwrite.io/pink-svelte'; import { IconGithub, IconGitBranch } from '@appwrite.io/pink-icons-svelte'; - import { consoleVariables } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { getFrameworkIcon } from '$lib/stores/sites'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let framework: Partial; export let repositoryName: string; @@ -71,7 +71,7 @@ {#key domain} - {$consoleVariables._APP_OPTIONS_FORCE_HTTPS + {$regionalConsoleVariables._APP_OPTIONS_FORCE_HTTPS ? 'https://' : 'http://'}{domain} diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/domain.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/domain.svelte index 397fdeeb1c..0a6bcf5eda 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/domain.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/domain.svelte @@ -3,10 +3,10 @@ import Button from '$lib/elements/forms/button.svelte'; import { debounce } from '$lib/helpers/debounce'; import { sdk } from '$lib/stores/sdk'; - import { consoleVariables } from '$routes/(console)/store'; import { ConsoleResourceType } from '@appwrite.io/console'; import { Fieldset, Layout, Status, Typography } from '@appwrite.io/pink-svelte'; import { onMount } from 'svelte'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let domain: string; export let domainIsValid = true; @@ -35,7 +35,7 @@ } try { await sdk.forConsole.console.getResource( - `${value}.${$consoleVariables._APP_DOMAIN_SITES}`, + `${value}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`, ConsoleResourceType.Rules ); domainStatus = 'complete'; @@ -60,7 +60,7 @@ - .{$consoleVariables._APP_DOMAIN_SITES} + .{$regionalConsoleVariables._APP_DOMAIN_SITES} diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte index 42e806fedb..f95c1b8304 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte @@ -15,9 +15,11 @@ import type { Models } from '@appwrite.io/console'; import Configuration from '../configuration.svelte'; import { buildVerboseDomain } from '../store'; - import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { + project, + regionalConsoleVariables + } from '$routes/(console)/project-[region]-[project]/store'; import { organization } from '$lib/stores/organization'; - import { consoleVariables } from '$routes/(console)/store'; import { IconInfo } from '@appwrite.io/pink-icons-svelte'; import { removeFile } from '$lib/helpers/files'; @@ -73,7 +75,10 @@ // Add domain await sdk .forProject(page.params.region, page.params.project) - .proxy.createSiteRule(`${domain}.${$consoleVariables._APP_DOMAIN_SITES}`, site.$id); + .proxy.createSiteRule( + `${domain}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`, + site.$id + ); //Add variables const promises = variables.map((variable) => diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte index 1def9713b6..a061a490f8 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.svelte @@ -25,8 +25,8 @@ import type { Models } from '@appwrite.io/console'; import { onMount } from 'svelte'; import Configuration from '../../configuration.svelte'; - import { consoleVariables } from '$routes/(console)/store'; import Domain from '../../domain.svelte'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let data; let showExitModal = false; @@ -119,7 +119,10 @@ // Add domain await sdk .forProject(page.params.region, page.params.project) - .proxy.createSiteRule(`${domain}.${$consoleVariables._APP_DOMAIN_SITES}`, site.$id); + .proxy.createSiteRule( + `${domain}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`, + site.$id + ); //Add variables const promises = variables.map((variable) => diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.ts index 4287ee29fc..f5607d1223 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/repositories/repository-[repository]/+page.ts @@ -3,7 +3,8 @@ import { ID } from '@appwrite.io/console'; import { buildVerboseDomain } from '../../store'; export const load = async ({ parent, params, url }) => { - const { installations, frameworks, project, organization, consoleVariables } = await parent(); + const { installations, frameworks, project, organization, regionalConsoleVariables } = + await parent(); const [repository] = await Promise.all([ sdk .forProject(params.region, params.project) @@ -11,7 +12,7 @@ export const load = async ({ parent, params, url }) => { ]); const domain = await buildVerboseDomain( - consoleVariables._APP_DOMAIN_SITES, + regionalConsoleVariables._APP_DOMAIN_SITES, repository.name, organization.name, project.name, diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte index 294fdce16a..4ad7bd9988 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.svelte @@ -32,11 +32,11 @@ Repositories, RepositoryBehaviour } from '$lib/components/git'; + import Domain from '../../domain.svelte'; import { app, iconPath } from '$lib/stores/app'; - import { consoleVariables } from '$routes/(console)/store'; import { connectGitHub } from '$lib/stores/git'; - import Domain from '../../domain.svelte'; import { getFrameworkIcon } from '$lib/stores/sites'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let data; @@ -137,7 +137,7 @@ await sdk .forProject(page.params.region, page.params.project) .proxy.createSiteRule( - `${domain}.${$consoleVariables._APP_DOMAIN_SITES}`, + `${domain}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`, site.$id ); diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.ts index 2f22a6337e..d8fd8c41a1 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/templates/template-[template]/+page.ts @@ -1,14 +1,15 @@ import { sdk } from '$lib/stores/sdk'; -import { buildVerboseDomain } from '../../store.js'; import { ID } from '@appwrite.io/console'; +import { buildVerboseDomain } from '../../store.js'; export const load = async ({ parent, params }) => { - const { installations, frameworks, project, organization, consoleVariables } = await parent(); + const { installations, frameworks, project, organization, regionalConsoleVariables } = + await parent(); const template = await sdk .forProject(params.region, params.project) .sites.getTemplate(params.template); const domain = await buildVerboseDomain( - consoleVariables._APP_DOMAIN_SITES, + regionalConsoleVariables._APP_DOMAIN_SITES, template.name, organization.name, project.name, diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index d19eb28f20..447af69f2a 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -20,9 +20,9 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; - import { consoleVariables } from '$routes/(console)/store'; - import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; + import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; let { data } = $props(); @@ -31,11 +31,11 @@ let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { - if ($consoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { + if ($regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { selectedTab = 'cname'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_A) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_A) { selectedTab = 'a'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_AAAA) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA) { selectedTab = 'aaaa'; } }); @@ -111,7 +111,7 @@
- {#if isSubDomain && !!$consoleVariables._APP_DOMAIN_TARGET_CNAME && $consoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} + {#if isSubDomain && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} (selectedTab = 'cname')} @@ -127,7 +127,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -135,7 +135,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte index 3cfc0d6ad8..33db2cceee 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/createPreviewDomainModal.svelte @@ -6,11 +6,11 @@ import { invalidate } from '$app/navigation'; import { Submit, trackEvent, trackError } from '$lib/actions/analytics'; import { Dependencies } from '$lib/constants'; - import { consoleVariables } from '$routes/(console)/store'; import { page } from '$app/state'; import { Layout, Status, Typography } from '@appwrite.io/pink-svelte'; import { ConsoleResourceType, ID } from '@appwrite.io/console'; import { debounce } from '$lib/helpers/debounce'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; export let show = false; @@ -24,7 +24,7 @@ await sdk .forProject(page.params.region, page.params.project) .proxy.createSiteRule( - `${domain}.${$consoleVariables._APP_DOMAIN_SITES}`, + `${domain}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`, page.params.site ); @@ -59,7 +59,7 @@ } try { await sdk.forConsole.console.getResource( - `${value}.${$consoleVariables._APP_DOMAIN_SITES}`, + `${value}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`, ConsoleResourceType.Rules ); domainStatus = 'complete'; @@ -91,7 +91,7 @@ - .{$consoleVariables._APP_DOMAIN_SITES} + .{$regionalConsoleVariables._APP_DOMAIN_SITES} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte index e07402b8ec..fbe3125fcd 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/retryDomainModal.svelte @@ -8,11 +8,11 @@ import { Dependencies } from '$lib/constants'; import type { Models } from '@appwrite.io/console'; import { Divider, Tabs } from '@appwrite.io/pink-svelte'; - import { consoleVariables } from '$routes/(console)/store'; import { isCloud } from '$lib/system'; import { page } from '$app/state'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; let { show = $bindable(false), @@ -28,11 +28,11 @@ let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { - if ($consoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { + if ($regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { selectedTab = 'cname'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_A) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_A) { selectedTab = 'a'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_AAAA) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA) { selectedTab = 'aaaa'; } }); @@ -69,7 +69,7 @@
- {#if isSubDomain && !!$consoleVariables._APP_DOMAIN_TARGET_CNAME && $consoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} + {#if isSubDomain && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} (selectedTab = 'cname')} @@ -85,7 +85,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -93,7 +93,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} From bd60b56c86e5ceaa4cc4332d3589af62aa7c0eb4 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:33:18 +0530 Subject: [PATCH 04/12] add: a fallback anyways. --- src/routes/(console)/project-[region]-[project]/store.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/(console)/project-[region]-[project]/store.ts b/src/routes/(console)/project-[region]-[project]/store.ts index cc772a1110..87652945b5 100644 --- a/src/routes/(console)/project-[region]-[project]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/store.ts @@ -30,7 +30,9 @@ export const onboarding = derived( */ export const regionalConsoleVariables = derived( page, - ($page) => $page.data.regionalConsoleVariables as Models.ConsoleVariables + ($page) => ( + $page.data.regionalConsoleVariables ?? $page.data.consoleVariables + ) as Models.ConsoleVariables ); function createStats() { From 75e24ed8f2dc073742ae300eedc59d8ada4a4d2e Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:33:46 +0530 Subject: [PATCH 05/12] lint. --- src/routes/(console)/project-[region]-[project]/store.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/store.ts b/src/routes/(console)/project-[region]-[project]/store.ts index 87652945b5..c042d22a96 100644 --- a/src/routes/(console)/project-[region]-[project]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/store.ts @@ -30,9 +30,9 @@ export const onboarding = derived( */ export const regionalConsoleVariables = derived( page, - ($page) => ( - $page.data.regionalConsoleVariables ?? $page.data.consoleVariables - ) as Models.ConsoleVariables + ($page) => + ($page.data.regionalConsoleVariables ?? + $page.data.consoleVariables) as Models.ConsoleVariables ); function createStats() { From 3eb5d75aed34447429859014983c0599d8df47ef Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:42:33 +0530 Subject: [PATCH 06/12] update: console variables in settings. --- .../add-domain/verify-[domain]/+page.svelte | 14 +++++++------- .../settings/updateInstallations.svelte | 4 ++-- .../(console)/project-[region]-[project]/store.ts | 4 +++- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index ac027c30b8..01d65c94c6 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -20,9 +20,9 @@ import Wizard from '$lib/layout/wizard.svelte'; import { base } from '$app/paths'; import { writable } from 'svelte/store'; - import { consoleVariables } from '$routes/(console)/store'; import NameserverTable from '$lib/components/domains/nameserverTable.svelte'; import RecordTable from '$lib/components/domains/recordTable.svelte'; + import { regionalConsoleVariables } from '$routes/(console)/project-[region]-[project]/store'; let { data } = $props(); @@ -31,11 +31,11 @@ let selectedTab = $state<'cname' | 'nameserver' | 'a' | 'aaaa'>('nameserver'); $effect(() => { - if ($consoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { + if ($regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && isSubDomain) { selectedTab = 'cname'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_A) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_A) { selectedTab = 'a'; - } else if ($consoleVariables._APP_DOMAIN_TARGET_AAAA) { + } else if ($regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA) { selectedTab = 'aaaa'; } }); @@ -109,7 +109,7 @@
- {#if isSubDomain && !!$consoleVariables._APP_DOMAIN_TARGET_CNAME && $consoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} + {#if isSubDomain && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME && $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME !== 'localhost'} (selectedTab = 'cname')} @@ -125,7 +125,7 @@ Nameservers {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_A && $consoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -133,7 +133,7 @@ A {/if} - {#if !!$consoleVariables._APP_DOMAIN_TARGET_AAAA && $consoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/settings/updateInstallations.svelte b/src/routes/(console)/project-[region]-[project]/settings/updateInstallations.svelte index aadcb6a026..62aa81c077 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/updateInstallations.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/updateInstallations.svelte @@ -7,7 +7,6 @@ import type { Models } from '@appwrite.io/console'; import GitDisconnectModal from './GitDisconnectModal.svelte'; import { isSelfHosted } from '$lib/system'; - import { consoleVariables } from '$routes/(console)/store'; import { ActionMenu, Alert, @@ -28,6 +27,7 @@ import { Click, trackEvent } from '$lib/actions/analytics'; import type { ComponentType } from 'svelte'; import { Link } from '$lib/elements'; + import { regionalConsoleVariables } from '../store'; export let total: number; export let limit: number; @@ -37,7 +37,7 @@ let showGitDisconnect = false; let showInstallationDropdown: boolean[] = []; let selectedInstallation: Models.Installation; - const isVcsEnabled = $consoleVariables?._APP_VCS_ENABLED === true; + const isVcsEnabled = $regionalConsoleVariables?._APP_VCS_ENABLED === true; function getInstallationLink(installation: Models.Installation) { switch (installation.provider) { diff --git a/src/routes/(console)/project-[region]-[project]/store.ts b/src/routes/(console)/project-[region]-[project]/store.ts index c042d22a96..6fe0a07ccb 100644 --- a/src/routes/(console)/project-[region]-[project]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/store.ts @@ -26,7 +26,9 @@ export const onboarding = derived( ); /** - * Same as the `consoleVariables` but from project's respective region! + * Region-aware version of `consoleVariables`, scoped to the project's assigned region. + * + * Falls back to the default `consoleVariables` if regional data is unavailable, just `edge-case` things. */ export const regionalConsoleVariables = derived( page, From d335905c2781da7031d95b27f141b0b266cf4ccd Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 15:55:09 +0530 Subject: [PATCH 07/12] update: console variables in components. --- src/lib/components/domains/cnameTable.svelte | 4 ++-- src/lib/components/domains/nameserverTable.svelte | 6 +++--- src/lib/components/domains/recordTable.svelte | 8 ++++---- src/lib/components/git/connectBehaviour.svelte | 4 ++-- src/lib/components/git/connectGit.svelte | 8 ++++---- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/lib/components/domains/cnameTable.svelte b/src/lib/components/domains/cnameTable.svelte index 9880f5ebfe..ed7c8bd5ed 100644 --- a/src/lib/components/domains/cnameTable.svelte +++ b/src/lib/components/domains/cnameTable.svelte @@ -1,6 +1,5 @@ diff --git a/src/lib/components/domains/recordTable.svelte b/src/lib/components/domains/recordTable.svelte index c2254fb016..d631700fc6 100644 --- a/src/lib/components/domains/recordTable.svelte +++ b/src/lib/components/domains/recordTable.svelte @@ -1,6 +1,5 @@ diff --git a/src/lib/components/git/connectBehaviour.svelte b/src/lib/components/git/connectBehaviour.svelte index ae0da51eb7..5a1ad56cd4 100644 --- a/src/lib/components/git/connectBehaviour.svelte +++ b/src/lib/components/git/connectBehaviour.svelte @@ -1,9 +1,9 @@ diff --git a/src/lib/components/git/connectGit.svelte b/src/lib/components/git/connectGit.svelte index 9dbca0fc7b..26eb68e18b 100644 --- a/src/lib/components/git/connectGit.svelte +++ b/src/lib/components/git/connectGit.svelte @@ -1,14 +1,14 @@ From a3ebd6731dd8ec691d7985c9e2551177695664da Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 16:06:35 +0530 Subject: [PATCH 08/12] update: protocols in project route. --- src/lib/components/git/connectGit.svelte | 2 +- src/lib/components/git/deploymentDomains.svelte | 6 +++--- .../function-[function]/domains/add-domain/+page.svelte | 5 ++--- .../functions/function-[function]/domains/table.svelte | 8 ++++++-- .../settings/domains/table.svelte | 8 ++++++-- .../sites/(components)/openOnMobileModal.svelte | 6 +++--- .../sites/create-site/finish/+page.svelte | 4 ++-- .../sites/site-[site]/+page.svelte | 4 ++-- .../deployments/deployment-[deployment]/+page.svelte | 6 ++++-- .../sites/site-[site]/domains/add-domain/+page.svelte | 5 ++--- .../sites/site-[site]/domains/table.svelte | 8 ++++++-- .../sites/site-[site]/domainsOverview.svelte | 4 ++-- src/routes/(console)/project-[region]-[project]/store.ts | 7 +++++++ 13 files changed, 46 insertions(+), 27 deletions(-) diff --git a/src/lib/components/git/connectGit.svelte b/src/lib/components/git/connectGit.svelte index 26eb68e18b..a44fe5dab2 100644 --- a/src/lib/components/git/connectGit.svelte +++ b/src/lib/components/git/connectGit.svelte @@ -8,7 +8,7 @@ export let callbackState: Record = null; - let isVcsEnabled = regionalConsoleVariables?._APP_VCS_ENABLED === true; + let isVcsEnabled = $regionalConsoleVariables?._APP_VCS_ENABLED === true; diff --git a/src/lib/components/git/deploymentDomains.svelte b/src/lib/components/git/deploymentDomains.svelte index f588cc57c4..cae9f098a6 100644 --- a/src/lib/components/git/deploymentDomains.svelte +++ b/src/lib/components/git/deploymentDomains.svelte @@ -2,10 +2,10 @@ import { Trim } from '$lib/components'; import { Link } from '$lib/elements'; import { Button } from '$lib/elements/forms'; - import { protocol } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { IconExternalLink, IconQrcode } from '@appwrite.io/pink-icons-svelte'; import { ActionMenu, Icon, Layout, Popover, Tag, Typography } from '@appwrite.io/pink-svelte'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; let { domains, @@ -31,7 +31,7 @@ {#if domains?.total} - + @@ -51,7 +51,7 @@ {#each sortedDomains as rule, i} {#if i !== 0} diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte index 284afdd20c..ae0dd6ca4f 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/+page.svelte @@ -9,7 +9,6 @@ import { goto, invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { sortBranches } from '$lib/stores/vcs'; - import { protocol } from '$routes/(console)/store'; import { IconInfo } from '@appwrite.io/pink-icons-svelte'; import { LabelCard } from '$lib/components'; import { Runtime, StatusCode, type Models } from '@appwrite.io/console'; @@ -19,7 +18,7 @@ import { ConnectRepoModal } from '$lib/components/git/index.js'; import { isValueOfStringEnum } from '$lib/helpers/types.js'; import { isCloud } from '$lib/system'; - import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { project, regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/functions/function-${page.params.function}/domains`; @@ -71,7 +70,7 @@ } else if (behaviour === 'REDIRECT') { rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createRedirectRule(domainName, $protocol + redirect, statusCode); + .proxy.createRedirectRule(domainName, $regionalProtocol + redirect, statusCode); } else if (behaviour === 'ACTIVE') { rule = await sdk .forProject(page.params.region, page.params.project) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte index 4fe75d81a5..ce5048f328 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte @@ -2,7 +2,6 @@ import { Click, trackEvent } from '$lib/actions/analytics'; import { Link } from '$lib/elements'; import { Button } from '$lib/elements/forms'; - import { protocol } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { IconDotsHorizontal, IconRefresh, IconTrash } from '@appwrite.io/pink-icons-svelte'; import { @@ -17,6 +16,7 @@ import DeleteDomainModal from './deleteDomainModal.svelte'; import RetryDomainModal from './retryDomainModal.svelte'; import { columns } from './store'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; let { domains @@ -43,7 +43,11 @@ {#each $columns as column} {#if column.id === 'domain'} - + {domain.domain} {#if domain.status !== 'verified'} diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte index 8529c72dce..4451800d8f 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte @@ -2,7 +2,6 @@ import { Click, trackEvent } from '$lib/actions/analytics'; import { Link } from '$lib/elements'; import { Button } from '$lib/elements/forms'; - import { protocol } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { IconDotsHorizontal, IconRefresh, IconTrash } from '@appwrite.io/pink-icons-svelte'; import { @@ -17,6 +16,7 @@ import DeleteDomainModal from './deleteDomainModal.svelte'; import RetryDomainModal from './retryDomainModal.svelte'; import { columns } from './store'; + import { regionalProtocol } from '../../store'; let { domains @@ -43,7 +43,11 @@ {#each $columns as column} {#if column.id === 'domain'} - + {domain.domain} {#if domain.status !== 'verified'} diff --git a/src/routes/(console)/project-[region]-[project]/sites/(components)/openOnMobileModal.svelte b/src/routes/(console)/project-[region]-[project]/sites/(components)/openOnMobileModal.svelte index 97021ef429..928694053c 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/(components)/openOnMobileModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/(components)/openOnMobileModal.svelte @@ -5,10 +5,10 @@ import { Button, InputSelect } from '$lib/elements/forms'; import { copy } from '$lib/helpers/copy'; import { sdk } from '$lib/stores/sdk'; - import { protocol } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { IconDuplicate } from '@appwrite.io/pink-icons-svelte'; import { Icon, Image, Layout, Tooltip } from '@appwrite.io/pink-svelte'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; let { show = $bindable(), @@ -24,12 +24,12 @@ ? proxyRuleList.rules.map((rule) => { return { label: rule.domain, - value: $protocol + rule.domain + value: $regionalProtocol + rule.domain }; }) : []; - let url = $state(selectedUrl ? $protocol + selectedUrl : (options[0]?.value ?? '')); + let url = $state(selectedUrl ? $regionalProtocol + selectedUrl : (options[0]?.value ?? '')); let tooltipMessage = $state('Copy'); function getImage(url: string) { diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/finish/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/finish/+page.svelte index 152a41aa29..a93295a9e6 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/finish/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/finish/+page.svelte @@ -10,13 +10,13 @@ import SiteCard from '../../(components)/siteCard.svelte'; import { onMount } from 'svelte'; import AddCollaboratorModal from '../../(components)/addCollaboratorModal.svelte'; - import { protocol } from '$routes/(console)/store'; import { Click, trackEvent } from '$lib/actions/analytics'; import { invalidate } from '$app/navigation'; import { sdk } from '$lib/stores/sdk'; import type { Adapter, BuildRuntime, Framework } from '@appwrite.io/console'; import { Dependencies } from '$lib/constants'; import { ConnectRepoModal } from '$lib/components/git'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; export let data; @@ -89,7 +89,7 @@ proxyRuleList={data.proxyRuleList} hideQRCode> - + diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.svelte index 46894e8d4d..97ea0bf4cf 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/+page.svelte @@ -5,7 +5,6 @@ import DomainsOverview from './domainsOverview.svelte'; import DeploymentsOverview from './deploymentsOverview.svelte'; import { Button } from '$lib/elements/forms'; - import { protocol } from '$routes/(console)/store'; import InstantRollbackDomain from './instantRollbackModal.svelte'; import { app } from '$lib/stores/app'; import { sdk } from '$lib/stores/sdk'; @@ -14,6 +13,7 @@ import { onMount } from 'svelte'; import { page } from '$app/state'; import { base } from '$app/paths'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; export let data; let showRollback = false; @@ -35,7 +35,7 @@ {#if data.proxyRuleList.total} {/if} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte index dc50e9d1f4..eba287de94 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte @@ -12,13 +12,13 @@ import CancelDeploymentModal from '../cancelDeploymentModal.svelte'; import RedeployModal from '../../../redeployModal.svelte'; import ActivateDeploymentModal from '../../../activateDeploymentModal.svelte'; - import { protocol } from '$routes/(console)/store'; import { Accordion } from '@appwrite.io/pink-svelte'; import { capitalize } from '$lib/helpers/string'; import LogsTimer from '../../../(components)/logsTimer.svelte'; import { invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { page } from '$app/state'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; let { data } = $props(); @@ -49,7 +49,9 @@ {#if deployment?.status === 'ready' && data.proxyRuleList?.total} - {/if} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte index 582e6fe1d0..513fb1c615 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/+page.svelte @@ -9,7 +9,6 @@ import { goto, invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { sortBranches } from '$lib/stores/vcs'; - import { protocol } from '$routes/(console)/store'; import { IconInfo } from '@appwrite.io/pink-icons-svelte'; import { LabelCard } from '$lib/components'; import { @@ -23,7 +22,7 @@ import { writable } from 'svelte/store'; import { onMount } from 'svelte'; import { ConnectRepoModal } from '$lib/components/git/index.js'; - import { project } from '$routes/(console)/project-[region]-[project]/store'; + import { project, regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; import { isCloud } from '$lib/system'; const routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; @@ -76,7 +75,7 @@ } else if (behaviour === 'REDIRECT') { rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createRedirectRule(domainName, $protocol + redirect, statusCode); + .proxy.createRedirectRule(domainName, $regionalProtocol + redirect, statusCode); } else if (behaviour === 'ACTIVE') { rule = await sdk .forProject(page.params.region, page.params.project) diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte index 0f80c03e9b..01dee28e36 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte @@ -2,7 +2,6 @@ import { Click, trackEvent } from '$lib/actions/analytics'; import { Link } from '$lib/elements'; import { Button } from '$lib/elements/forms'; - import { protocol } from '$routes/(console)/store'; import type { Models } from '@appwrite.io/console'; import { IconDotsHorizontal, IconRefresh, IconTrash } from '@appwrite.io/pink-icons-svelte'; import { @@ -17,6 +16,7 @@ import DeleteDomainModal from './deleteDomainModal.svelte'; import RetryDomainModal from './retryDomainModal.svelte'; import { columns } from './store'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; let { domains @@ -43,7 +43,11 @@ {#each $columns as column} {#if column.id === 'domain'} - + {domain.domain} {#if domain.status === 'verifying'} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domainsOverview.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domainsOverview.svelte index 7cca035062..550052aa35 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domainsOverview.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domainsOverview.svelte @@ -5,13 +5,13 @@ import OpenOnMobileModal from '../(components)/openOnMobileModal.svelte'; import { timeFromNow } from '$lib/helpers/date'; import { IconQrcode } from '@appwrite.io/pink-icons-svelte'; - import { protocol } from '$routes/(console)/store'; import { type Models } from '@appwrite.io/console'; import { Link } from '$lib/elements'; import { Button } from '$lib/elements/forms'; import { Card, Trim } from '$lib/components'; import { Click, trackEvent } from '$lib/actions/analytics'; import { RuleTrigger } from '$lib/stores/sdk'; + import { regionalProtocol } from '$routes/(console)/project-[region]-[project]/store'; export let proxyRuleList: Models.ProxyRuleList; @@ -75,7 +75,7 @@ diff --git a/src/routes/(console)/project-[region]-[project]/store.ts b/src/routes/(console)/project-[region]-[project]/store.ts index 6fe0a07ccb..ce2f876e98 100644 --- a/src/routes/(console)/project-[region]-[project]/store.ts +++ b/src/routes/(console)/project-[region]-[project]/store.ts @@ -37,6 +37,13 @@ export const regionalConsoleVariables = derived( $page.data.consoleVariables) as Models.ConsoleVariables ); +/** + * Protocol based on regional console variables. + */ +export const regionalProtocol = derived(regionalConsoleVariables, ($vars) => + $vars?._APP_OPTIONS_FORCE_HTTPS === 'enabled' ? 'https://' : 'http://' +); + function createStats() { const { subscribe, set, update } = writable>(new Map()); From a1046cebd32ee91f2190141bfa72491389975a78 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 16:15:13 +0530 Subject: [PATCH 09/12] fix: lint. --- .../functions/function-[function]/domains/table.svelte | 5 ++++- .../project-[region]-[project]/settings/domains/table.svelte | 5 ++++- .../sites/site-[site]/domains/table.svelte | 5 ++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte index 740b7dbe4a..1dcb2baee9 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/table.svelte @@ -52,7 +52,10 @@ {#if column.id === 'domain'} - + {proxyRule.domain} diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte index e7837f195f..0584a19610 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/table.svelte @@ -44,7 +44,10 @@ {#if column.id === 'domain'} - + {domain.domain} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte index 9a010e0c2c..b98cf258c9 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/table.svelte @@ -52,7 +52,10 @@ {#if column.id === 'domain'} - + {rule.domain} From 63941a07d9bc54a4a8609ddef6b559748ca4e1f7 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 16:17:44 +0530 Subject: [PATCH 10/12] misc: fixes. --- src/lib/components/domains/recordTable.svelte | 4 +++- .../sites/create-site/manual/+page.svelte | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/lib/components/domains/recordTable.svelte b/src/lib/components/domains/recordTable.svelte index c5778a81e3..bf7fa7abfb 100644 --- a/src/lib/components/domains/recordTable.svelte +++ b/src/lib/components/domains/recordTable.svelte @@ -20,7 +20,9 @@ function setTarget() { switch (variant) { case 'cname': - return $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME; + return service === 'general' + ? $regionalConsoleVariables._APP_DOMAIN_TARGET_CNAME + : $regionalConsoleVariables._APP_DOMAIN_SITES; case 'a': return $regionalConsoleVariables._APP_DOMAIN_TARGET_A; case 'aaaa': diff --git a/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte index 2a475df0e2..0d9f1b58b1 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/create-site/manual/+page.svelte @@ -34,7 +34,7 @@ let name = 'My website'; let id = ID.unique(); - let domain = `${id}.${$consoleVariables._APP_DOMAIN_SITES}`; + let domain = `${id}.${$regionalConsoleVariables._APP_DOMAIN_SITES}`; let framework: Models.Framework = data.frameworks.frameworks?.find((f) => f.key === 'other') ?? data.frameworks.frameworks?.[0]; @@ -48,14 +48,14 @@ $: maxSize = isCloud && $currentPlan ? $currentPlan.deploymentSize * 1000000 - : $consoleVariables._APP_COMPUTE_SIZE_LIMIT; // already in MB + : $regionalConsoleVariables._APP_COMPUTE_SIZE_LIMIT; // already in MB $: readableMaxSize = humanFileSize(maxSize); async function create() { try { domain = await buildVerboseDomain( - $consoleVariables._APP_DOMAIN_SITES, + $regionalConsoleVariables._APP_DOMAIN_SITES, name, $organization.name, $project.name, From 6bce222764a008d59aa1c73d1109588ce97d9a89 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 16:25:19 +0530 Subject: [PATCH 11/12] misc: fixes. --- .../domains/add-domain/verify-[domain]/+page.svelte | 4 ++-- .../settings/domains/add-domain/verify-[domain]/+page.svelte | 4 ++-- .../deployments/deployment-[deployment]/+page.svelte | 4 ++-- .../domains/add-domain/verify-[domain]/+page.svelte | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte index 7d08c92913..1bedec8d81 100644 --- a/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/functions/function-[function]/domains/add-domain/verify-[domain]/+page.svelte @@ -127,7 +127,7 @@ Nameservers {/if} - {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -135,7 +135,7 @@ A {/if} - {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte index 606ccd9f0b..a54d7e8d29 100644 --- a/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/settings/domains/add-domain/verify-[domain]/+page.svelte @@ -126,7 +126,7 @@ Nameservers {/if} - {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -134,7 +134,7 @@ A {/if} - {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte index d8df98c19f..82db52688a 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/deployments/deployment-[deployment]/+page.svelte @@ -50,8 +50,8 @@ {#if deployment?.status === 'ready' && data.proxyRuleList?.total} {/if} diff --git a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte index 1f69357b2d..846a5290a1 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain/verify-[domain]/+page.svelte @@ -129,7 +129,7 @@ Nameservers {/if} - {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} + {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_A && $regionalConsoleVariables._APP_DOMAIN_TARGET_A !== '127.0.0.1'} (selectedTab = 'a')} @@ -137,7 +137,7 @@ A {/if} - {#if !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} + {#if !isCloud && !!$regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA && $regionalConsoleVariables._APP_DOMAIN_TARGET_AAAA !== '::1'} (selectedTab = 'aaaa')} From 99fea9b0211346ccd839453abaa6ec9d92890240 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 29 May 2025 18:02:55 +0530 Subject: [PATCH 12/12] update: method name :wink :wink: --- src/lib/stores/sdk.ts | 2 +- src/routes/(console)/project-[region]-[project]/+layout.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/stores/sdk.ts b/src/lib/stores/sdk.ts index 4453062ae6..7daa433771 100644 --- a/src/lib/stores/sdk.ts +++ b/src/lib/stores/sdk.ts @@ -137,7 +137,7 @@ export const realtime = { export const sdk = { forConsole: createConsoleSdk(clientConsole), - forScopedConsole(region: string) { + forConsoleIn(region: string) { const regionAwareEndpoint = getApiEndpoint(region); if (regionAwareEndpoint !== scopedConsoleClient.config.endpoint) { scopedConsoleClient.setEndpoint(regionAwareEndpoint); diff --git a/src/routes/(console)/project-[region]-[project]/+layout.ts b/src/routes/(console)/project-[region]-[project]/+layout.ts index c65c3d97c6..d9a79cbc1e 100644 --- a/src/routes/(console)/project-[region]-[project]/+layout.ts +++ b/src/routes/(console)/project-[region]-[project]/+layout.ts @@ -22,7 +22,7 @@ export const load: LayoutLoad = async ({ params, depends }) => { const [organization, prefs, regionalConsoleVariables, _] = await Promise.all([ sdk.forConsole.teams.get(project.teamId) as Promise, sdk.forConsole.account.getPrefs(), - sdk.forScopedConsole(project.region).console.variables(), + sdk.forConsoleIn(project.region).console.variables(), loadAvailableRegions(project.teamId) ]); if (prefs?.organization !== project.teamId) {