From 042287166dc3c0d73d73f35c12b813969e7dd873 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 11 Nov 2025 15:18:58 +0530 Subject: [PATCH 1/5] add: add domain flow from studio to console > sites. --- package.json | 2 +- pnpm-lock.yaml | 10 +- src/lib/stores/domains.ts | 3 + src/lib/studio/studio-widget.ts | 9 +- src/lib/studio/studio.svelte | 40 +++- .../domains/add-domain/+page.svelte | 197 ++++++++++-------- .../add-domain/verify-[domain]/+page.svelte | 9 +- 7 files changed, 168 insertions(+), 102 deletions(-) diff --git a/package.json b/package.json index 3268a42cd6..4a24133884 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "devDependencies": { "@eslint/compat": "^1.4.0", "@eslint/js": "^9.37.0", - "@imagine.dev/web-components": "^0.0.34", + "@imagine.dev/web-components": "file:/Users/itznotabug/Appwrite/imagineCloud/packages/web-components", "@melt-ui/pp": "^0.3.2", "@melt-ui/svelte": "^0.86.6", "@playwright/test": "^1.56.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5b068324ba..32e740d20e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,8 +100,8 @@ importers: specifier: ^9.37.0 version: 9.37.0 '@imagine.dev/web-components': - specifier: ^0.0.34 - version: 0.0.34(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: file:/Users/itznotabug/Appwrite/imagineCloud/packages/web-components + version: file:../imagineCloud/packages/web-components(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@melt-ui/pp': specifier: ^0.3.2 version: 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.39.11))(svelte@5.39.11) @@ -636,8 +636,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@imagine.dev/web-components@0.0.34': - resolution: {integrity: sha512-BHQwrvfKcjxFZVZ+Ozv6nJSLJe0kEjH55zUTjdTtLQhNPxum+InEv3Siwbzb25hJcf/U+/koxWGLIkMA74U5NA==} + '@imagine.dev/web-components@file:../imagineCloud/packages/web-components': + resolution: {directory: ../imagineCloud/packages/web-components, type: directory} peerDependencies: react: 19.1.0 react-dom: 19.1.0 @@ -4029,7 +4029,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@imagine.dev/web-components@0.0.34(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@imagine.dev/web-components@file:../imagineCloud/packages/web-components(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) diff --git a/src/lib/stores/domains.ts b/src/lib/stores/domains.ts index 348e10c9b7..3c776b486a 100644 --- a/src/lib/stores/domains.ts +++ b/src/lib/stores/domains.ts @@ -1,5 +1,8 @@ +import { writable } from 'svelte/store'; import { StatusCode } from '@appwrite.io/console'; +export const hideTypes = writable(false); + export const statusCodeOptions = [ { label: '301 Moved permanently', diff --git a/src/lib/studio/studio-widget.ts b/src/lib/studio/studio-widget.ts index 16359c7508..6ad2384753 100644 --- a/src/lib/studio/studio-widget.ts +++ b/src/lib/studio/studio-widget.ts @@ -273,7 +273,11 @@ export function hideStudio() { export async function initImagine( region: string, projectId: string, - callbacks?: { onProjectNameChange?: (name: string) => void } + callbacks?: { + onProjectNameChange: () => void; + onAddDomain: () => void | Promise; + onManageDomains: () => void | Promise; + } ) { try { const { initImagineConfig, initImagineRouting } = await getWebComponents(); @@ -282,7 +286,8 @@ export async function initImagine( initImagineConfig( { AI_SERVICE_ENDPOINT: PUBLIC_AI_SERVICE_BASE_URL, - APPWRITE_ENDPOINT: PUBLIC_APPWRITE_ENDPOINT + APPWRITE_ENDPOINT: PUBLIC_APPWRITE_ENDPOINT, + APPWRITE_SITES_BASE_URL: 'https://stage.appwrite.network' }, { initialTheme: get(app).themeInUse, diff --git a/src/lib/studio/studio.svelte b/src/lib/studio/studio.svelte index ddc65d5c88..09e40f02d6 100644 --- a/src/lib/studio/studio.svelte +++ b/src/lib/studio/studio.svelte @@ -5,12 +5,23 @@ + + + + Primary domain + + + + 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 f0b6df34a3..819ed7fd34 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 @@ -6,7 +6,7 @@ import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { Fieldset, Layout, Tooltip, Icon, Input, Alert } from '@appwrite.io/pink-svelte'; - import { goto, invalidate } from '$app/navigation'; + import { afterNavigate, goto, invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { sortBranches } from '$lib/stores/vcs'; import { IconInfo } from '@appwrite.io/pink-icons-svelte'; @@ -19,7 +19,7 @@ ProxyResourceType, StatusCode } from '@appwrite.io/console'; - import { statusCodeOptions } from '$lib/stores/domains'; + import { statusCodeOptions, hideTypes } from '$lib/stores/domains'; import { writable } from 'svelte/store'; import { onMount } from 'svelte'; import { ConnectRepoModal } from '$lib/components/git/index.js'; @@ -29,10 +29,9 @@ } from '$routes/(console)/project-[region]-[project]/store'; import { isCloud } from '$lib/system'; import { getApexDomain } from '$lib/helpers/tlds'; + import type { PageProps } from './$types'; - const routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; - - let { data } = $props(); + let { data }: PageProps = $props(); let formComponent: Form; let isSubmitting = $state(writable(false)); @@ -43,7 +42,18 @@ let branch: string = $state(null); let statusCode = $state(StatusCode.TemporaryRedirect307); + let routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; + let previousPage = routeBase; + + afterNavigate(({ from }) => { + if ($hideTypes) { + previousPage = from?.url?.pathname || routeBase; + } + }); + onMount(() => { + hideTypes.set(page.url.searchParams.get('types') === 'false'); + if ( page.url.searchParams.has('connectRepo') && page.url.searchParams.get('connectRepo') === 'true' @@ -109,6 +119,8 @@ }); } if (rule?.status === 'verified') { + hideTypes.set(false); + await goto(routeBase); await invalidate(Dependencies.SITES_DOMAINS); } else { @@ -143,14 +155,14 @@ providerBranch: 'main' }); - invalidate(Dependencies.SITE); + await invalidate(Dependencies.SITE); } catch { return; } } - +
@@ -173,93 +185,98 @@ placeholder="appwrite.example.com" />
- - - Point this domain to the latest deployed version. - - - Point this domain to a specific branch in your repository. - - - Forward all traffic from this domain to another URL. - - + {#if !$hideTypes} + + + Point this domain to the latest deployed version. + + + Point this domain to a specific branch in your repository. + + + Forward all traffic from this domain to another URL. + + - {#if behaviour === 'BRANCH'} -
- - {#if data.site?.providerRepositoryId} - {@const sortedBranches = sortBranches(data.branches.branches)} - {@const options = sortedBranches.map((branch) => ({ - label: branch.name, - value: branch.name - }))} - - + + {#if data.site?.providerRepositoryId} + {@const sortedBranches = sortBranches(data.branches.branches)} + {@const options = sortedBranches.map((branch) => ({ + label: branch.name, + value: branch.name + }))} + + { + branch = event.detail.value; + }} + {options} /> + {#if !data.branches?.total} + + No branches found in the selected repository. Create a + branch to see it here. + + {/if} + + {:else} + { - branch = event.detail.value; - }} - {options} /> - {#if !data.branches?.total} - - No branches found in the selected repository. Create a - branch to see it here. - - {/if} - - {:else} + id="branch" + required + value="main" + placeholder="Select branch" /> + + +

+ The domain will be connected to your active deployment. + Connect your Git repository to link a production branch. +

+
+ +
+
+
+ {/if} +
+
+ {:else if behaviour === 'REDIRECT'} +
+ + + + + Redirect your domain to this URL. + + - - -

- The domain will be connected to your active deployment. - Connect your Git repository to link a production branch. -

-
- -
-
-
- {/if} -
-
- {:else if behaviour === 'REDIRECT'} -
- - - - - Redirect your domain to this URL. - - - - -
+ bind:value={statusCode} + placeholder="Select status code" /> +
+ + {/if} {/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 8422d783a0..41e6dfad42 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 @@ -13,6 +13,7 @@ import { sdk } from '$lib/stores/sdk'; import { organization } from '$lib/stores/organization'; import { addNotification } from '$lib/stores/notifications'; + import { hideTypes } from '$lib/stores/domains'; import { goto, invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import { isCloud } from '$lib/system'; @@ -24,6 +25,7 @@ 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'; + import { onDestroy } from 'svelte'; let { data } = $props(); @@ -76,6 +78,7 @@ type: 'success', message: 'Domain added successfully' }); + await goto(routeBase); await invalidate(Dependencies.DOMAINS); await invalidate(Dependencies.SITES_DOMAINS); @@ -95,8 +98,12 @@ .forProject(page.params.region, page.params.project) .proxy.deleteRule({ ruleId }); } - await goto(`${routeBase}/add-domain?domain=${page.params.domain}`); + + const typesParam = $hideTypes ? '&types=false' : ''; + await goto(`${routeBase}/add-domain?domain=${page.params.domain}${typesParam}`); } + + onDestroy(() => hideTypes.set(false)); From 8c0b034d5de4bc243ae500f8c5ab6e9476794ce2 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 11 Nov 2025 19:34:56 +0530 Subject: [PATCH 2/5] add: add domain flow from studio to console > sites. --- src/lib/studio/domainsTable.svelte | 230 +++++++++++++++++++++++++++++ src/lib/studio/studio-widget.ts | 2 +- src/lib/studio/studio.svelte | 36 ++++- 3 files changed, 261 insertions(+), 7 deletions(-) create mode 100644 src/lib/studio/domainsTable.svelte diff --git a/src/lib/studio/domainsTable.svelte b/src/lib/studio/domainsTable.svelte new file mode 100644 index 0000000000..62018834dd --- /dev/null +++ b/src/lib/studio/domainsTable.svelte @@ -0,0 +1,230 @@ + + + + + Domain + + + {#if loading} + {#each Array(2) as _} + + + + + + + + + + + + + {/each} + {:else if proxyRules && proxyRules.total > 0} + {#each proxyRules.rules as rule} + + + + + + + {rule.domain} + + + + + + {#if rule.status === 'verifying'} + + {:else if rule.status !== 'verified'} + + {/if} + + + + + + + + {@render domainActions(rule, toggle)} + + + + + {/each} + {/if} + + + + + + +{#if showDelete} + +{/if} + +{#if showRetry} + +{/if} + +{#snippet domainActions(rule: Models.ProxyRule, toggle: (e: Event) => void)} + + + Open domain + + {#if rule.status !== 'verified' && rule.status !== 'verifying'} + { + selectedProxyRule = rule; + showRetry = true; + toggle(); + }}> + Retry + + +
+ +
+ {/if} + + { + selectedProxyRule = rule; + showDelete = true; + toggle(); + trackEvent(Click.DomainDeleteClick, { + source: 'studio_manage_domains' + }); + }}> + Delete + +
+{/snippet} + + diff --git a/src/lib/studio/studio-widget.ts b/src/lib/studio/studio-widget.ts index 6ad2384753..82c3464d06 100644 --- a/src/lib/studio/studio-widget.ts +++ b/src/lib/studio/studio-widget.ts @@ -276,7 +276,7 @@ export async function initImagine( callbacks?: { onProjectNameChange: () => void; onAddDomain: () => void | Promise; - onManageDomains: () => void | Promise; + onManageDomains: (primaryDomain?: string) => void | Promise; } ) { try { diff --git a/src/lib/studio/studio.svelte b/src/lib/studio/studio.svelte index 09e40f02d6..a33d44399d 100644 --- a/src/lib/studio/studio.svelte +++ b/src/lib/studio/studio.svelte @@ -6,11 +6,14 @@ import './shim.css'; import { onMount } from 'svelte'; import { resolve } from '$app/paths'; + import { Link } from '$lib/elements'; import { app } from '$lib/stores/app'; import { Dependencies } from '$lib/constants'; import { goto, invalidate } from '$app/navigation'; - import { Layout, Typography } from '@appwrite.io/pink-svelte'; + import { IconExternalLink } from '@appwrite.io/pink-icons-svelte'; + import { Button, Layout, Typography, Icon } from '@appwrite.io/pink-svelte'; import { ensureStudioComponent, initImagine, getWebComponents } from './studio-widget'; + import DomainsTable from './domainsTable.svelte'; import SideSheet from '$routes/(console)/project-[region]-[project]/databases/database-[database]/table-[table]/layout/sidesheet.svelte'; const { @@ -21,7 +24,9 @@ projectId: string; } = $props(); + const siteId = `project-${projectId}`; let showManageDomainsSheet = $state(false); + let primaryDomainForSite = $state(`imagine-${projectId}.stage.appwrite.network`); onMount(() => { ensureStudioComponent(); @@ -37,12 +42,15 @@ { region, project: projectId, - site: `project-${projectId}` + site: siteId } ) ); }, - onManageDomains: () => { + onManageDomains: (primaryDomain) => { + if (primaryDomain) { + primaryDomainForSite = primaryDomain; + } showManageDomainsSheet = true; } }); @@ -63,9 +71,25 @@ - - Primary domain + + + Active domain + + + + + {primaryDomainForSite} + + + + + + - + From f5fd38eb046cd2a12b6a0320dbb0ae5b1bbb1e61 Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 11 Nov 2025 19:38:43 +0530 Subject: [PATCH 3/5] format, bump deps. --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- src/lib/studio/domainsTable.svelte | 8 ++------ 3 files changed, 8 insertions(+), 12 deletions(-) diff --git a/package.json b/package.json index 4a24133884..3268a42cd6 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "devDependencies": { "@eslint/compat": "^1.4.0", "@eslint/js": "^9.37.0", - "@imagine.dev/web-components": "file:/Users/itznotabug/Appwrite/imagineCloud/packages/web-components", + "@imagine.dev/web-components": "^0.0.34", "@melt-ui/pp": "^0.3.2", "@melt-ui/svelte": "^0.86.6", "@playwright/test": "^1.56.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 32e740d20e..5b068324ba 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -100,8 +100,8 @@ importers: specifier: ^9.37.0 version: 9.37.0 '@imagine.dev/web-components': - specifier: file:/Users/itznotabug/Appwrite/imagineCloud/packages/web-components - version: file:../imagineCloud/packages/web-components(react-dom@19.2.0(react@19.2.0))(react@19.2.0) + specifier: ^0.0.34 + version: 0.0.34(react-dom@19.2.0(react@19.2.0))(react@19.2.0) '@melt-ui/pp': specifier: ^0.3.2 version: 0.3.2(@melt-ui/svelte@0.86.6(svelte@5.39.11))(svelte@5.39.11) @@ -636,8 +636,8 @@ packages: resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==} engines: {node: '>=18.18'} - '@imagine.dev/web-components@file:../imagineCloud/packages/web-components': - resolution: {directory: ../imagineCloud/packages/web-components, type: directory} + '@imagine.dev/web-components@0.0.34': + resolution: {integrity: sha512-BHQwrvfKcjxFZVZ+Ozv6nJSLJe0kEjH55zUTjdTtLQhNPxum+InEv3Siwbzb25hJcf/U+/koxWGLIkMA74U5NA==} peerDependencies: react: 19.1.0 react-dom: 19.1.0 @@ -4029,7 +4029,7 @@ snapshots: '@humanwhocodes/retry@0.4.3': {} - '@imagine.dev/web-components@file:../imagineCloud/packages/web-components(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': + '@imagine.dev/web-components@0.0.34(react-dom@19.2.0(react@19.2.0))(react@19.2.0)': dependencies: react: 19.2.0 react-dom: 19.2.0(react@19.2.0) diff --git a/src/lib/studio/domainsTable.svelte b/src/lib/studio/domainsTable.svelte index 62018834dd..1529c86c45 100644 --- a/src/lib/studio/domainsTable.svelte +++ b/src/lib/studio/domainsTable.svelte @@ -126,16 +126,12 @@ size="s" type="warning" variant="secondary" - content="Verification failed" - /> + content="Verification failed" /> {/if} - + @@ -180,11 +178,11 @@ {/if} -{#snippet domainActions(rule: Models.ProxyRule, toggle: (e: Event) => void)} +{#snippet domainActions(rule: Models.ProxyRule, toggle: () => void)} - + Open domain - + {#if rule.status !== 'verified' && rule.status !== 'verifying'} { + const baseUrl = resolve( + '/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain', + { + region, + project: projectId, + site: siteId + } + ); + return `${baseUrl}?types=false`; + }); + onMount(() => { ensureStudioComponent(); @@ -36,16 +48,7 @@ invalidate(Dependencies.PROJECT); }, onAddDomain: async () => { - await goto( - resolve( - '/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain?types=false', - { - region, - project: projectId, - site: siteId - } - ) - ); + await goto(addDomainUrl); }, onManageDomains: (primaryDomain) => { if (primaryDomain) { 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 819ed7fd34..694699f30b 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 @@ -43,7 +43,7 @@ let statusCode = $state(StatusCode.TemporaryRedirect307); let routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; - let previousPage = routeBase; + let previousPage = $state(routeBase); afterNavigate(({ from }) => { if ($hideTypes) { From 7cdcba94ffa756500bfcb1ebc80605131c54a0ff Mon Sep 17 00:00:00 2001 From: Darshan Date: Tue, 11 Nov 2025 19:59:34 +0530 Subject: [PATCH 5/5] address comments. --- src/lib/studio/studio.svelte | 22 ++++++------- .../domains/add-domain/+page.svelte | 32 ++++++++----------- 2 files changed, 23 insertions(+), 31 deletions(-) diff --git a/src/lib/studio/studio.svelte b/src/lib/studio/studio.svelte index 3edb0e9fe7..69b891bb5b 100644 --- a/src/lib/studio/studio.svelte +++ b/src/lib/studio/studio.svelte @@ -28,18 +28,6 @@ let showManageDomainsSheet = $state(false); let primaryDomainForSite = $state(`imagine-${projectId}.stage.appwrite.network`); - const addDomainUrl = $derived.by(() => { - const baseUrl = resolve( - '/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain', - { - region, - project: projectId, - site: siteId - } - ); - return `${baseUrl}?types=false`; - }); - onMount(() => { ensureStudioComponent(); @@ -48,7 +36,15 @@ invalidate(Dependencies.PROJECT); }, onAddDomain: async () => { - await goto(addDomainUrl); + const baseUrl = resolve( + '/(console)/project-[region]-[project]/sites/site-[site]/domains/add-domain', + { + region, + project: projectId, + site: siteId + } + ); + await goto(`${baseUrl}?types=false`); }, onManageDomains: (primaryDomain) => { if (primaryDomain) { 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 694699f30b..ed408f97dd 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 @@ -31,7 +31,7 @@ import { getApexDomain } from '$lib/helpers/tlds'; import type { PageProps } from './$types'; - let { data }: PageProps = $props(); + let { data, params }: PageProps = $props(); let formComponent: Form; let isSubmitting = $state(writable(false)); @@ -42,7 +42,7 @@ let branch: string = $state(null); let statusCode = $state(StatusCode.TemporaryRedirect307); - let routeBase = `${base}/project-${page.params.region}-${page.params.project}/sites/site-${page.params.site}/domains`; + let routeBase = `${base}/project-${params.region}-${params.project}/sites/site-${params.site}/domains`; let previousPage = $state(routeBase); afterNavigate(({ from }) => { @@ -93,30 +93,26 @@ try { let rule: Models.ProxyRule; if (behaviour === 'BRANCH') { - rule = await sdk - .forProject(page.params.region, page.params.project) - .proxy.createSiteRule({ - domain: domainName, - siteId: page.params.site, - branch - }); + rule = await sdk.forProject(params.region, params.project).proxy.createSiteRule({ + domain: domainName, + siteId: params.site, + branch + }); } else if (behaviour === 'REDIRECT') { rule = await sdk - .forProject(page.params.region, page.params.project) + .forProject(params.region, params.project) .proxy.createRedirectRule({ domain: domainName, url: redirect, statusCode, - resourceId: page.params.site, + resourceId: params.site, resourceType: ProxyResourceType.Site }); } else if (behaviour === 'ACTIVE') { - rule = await sdk - .forProject(page.params.region, page.params.project) - .proxy.createSiteRule({ - domain: domainName, - siteId: page.params.site - }); + rule = await sdk.forProject(params.region, params.project).proxy.createSiteRule({ + domain: domainName, + siteId: params.site + }); } if (rule?.status === 'verified') { hideTypes.set(false); @@ -137,7 +133,7 @@ async function connect(selectedInstallationId: string, selectedRepository: string) { try { - await sdk.forProject(page.params.region, page.params.project).sites.update({ + await sdk.forProject(params.region, params.project).sites.update({ siteId: data.site.$id, name: data.site.name, framework: data.site.framework as Framework,