From 727a6f3ac9c5256f7d27eb035a8b495eb3e0bb9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Ba=C4=8Do?= Date: Mon, 2 Jun 2025 13:13:02 +0200 Subject: [PATCH] Fix missing rules (redirect); remove double protocol; improve placeholders for dns records; fix www subdomain rules --- src/lib/helpers/tlds.ts | 1 - .../domain-[domain]/createRecordModal.svelte | 16 +++++++++++++++- .../domain-[domain]/updateRecordModal.svelte | 17 ++++++++++++++++- .../domains/add-domain/+page.svelte | 2 +- .../sites/site-[site]/domains/+page.ts | 15 ++++++++++----- .../site-[site]/domains/add-domain/+page.svelte | 2 +- 6 files changed, 43 insertions(+), 10 deletions(-) diff --git a/src/lib/helpers/tlds.ts b/src/lib/helpers/tlds.ts index 23adffb4c..6de3c3888 100644 --- a/src/lib/helpers/tlds.ts +++ b/src/lib/helpers/tlds.ts @@ -15,7 +15,6 @@ export function isASubdomain(domain: string | null): boolean { const { domain: apex, subdomain } = parse(domain); if (!apex) return false; - if (subdomain === 'www') return false; return !!subdomain; } diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/createRecordModal.svelte b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/createRecordModal.svelte index 644732c58..e1f1205d6 100644 --- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/createRecordModal.svelte +++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/createRecordModal.svelte @@ -30,6 +30,20 @@ let weight: number; let port: number; + const placeholders: Record = { + 'A': '76.75.21.21', + 'AAAA': '2001:0db8:85a3:0000:0000:8a2e:0370:7334', + 'CNAME': 'stage.example.com', + 'MX': 'mail.example.com', + 'TXT': 'v=spf1 include:_spf.example.com ~all', + 'NS': 'ns1.example.com', + 'SRV': '10 5 8080 example.com', + 'CAA': '0 issue "letsencrypt.org"', + 'HTTPS': 'https://example.com', + 'ALIAS': 'www.example.com' + }; + $: placeholder = placeholders[type] ?? 'Enter value'; + async function handleSubmit() { const record = { name, @@ -77,7 +91,7 @@ - + diff --git a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/updateRecordModal.svelte b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/updateRecordModal.svelte index 9155339ca..0102fb376 100644 --- a/src/routes/(console)/organization-[organization]/domains/domain-[domain]/updateRecordModal.svelte +++ b/src/routes/(console)/organization-[organization]/domains/domain-[domain]/updateRecordModal.svelte @@ -19,12 +19,27 @@ import { invalidate } from '$app/navigation'; import { Dependencies } from '$lib/constants'; import type { Models } from '@appwrite.io/console'; + import type { RecordType } from '$lib/stores/domains'; export let show = false; export let selectedRecord: Models.DnsRecord; let record = deepClone(selectedRecord); let error = ''; + + const placeholders: Record = { + 'A': '76.75.21.21', + 'AAAA': '2001:0db8:85a3:0000:0000:8a2e:0370:7334', + 'CNAME': 'stage.example.com', + 'MX': 'mail.example.com', + 'TXT': 'v=spf1 include:_spf.example.com ~all', + 'NS': 'ns1.example.com', + 'SRV': '10 5 8080 example.com', + 'CAA': '0 issue "letsencrypt.org"', + 'HTTPS': 'https://example.com', + 'ALIAS': 'www.example.com' + }; + $: placeholder = placeholders[record.type] ?? 'Enter value'; async function handleSubmit() { try { @@ -173,7 +188,7 @@ - + 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 2c931b0a9..a303f4477 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 @@ -72,7 +72,7 @@ } else if (behaviour === 'REDIRECT') { rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createRedirectRule(domainName, $regionalProtocol + redirect, statusCode); + .proxy.createRedirectRule(domainName, 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/+page.ts b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.ts index 88ec63f09..126e1ced7 100644 --- a/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.ts +++ b/src/routes/(console)/project-[region]-[project]/sites/site-[site]/domains/+page.ts @@ -27,12 +27,17 @@ export const load = async ({ params, depends, url, route }) => { .proxy.listRules( [ Query.or([ - Query.equal('type', RuleType.DEPLOYMENT), - Query.equal('type', RuleType.REDIRECT) + Query.and([ + Query.equal('type', RuleType.REDIRECT), + Query.equal('trigger', RuleTrigger.MANUAL), + ]), + Query.and([ + Query.equal('type', RuleType.DEPLOYMENT), + Query.equal('trigger', RuleTrigger.MANUAL), + Query.equal('deploymentResourceType', DeploymentResourceType.SITE), + Query.equal('deploymentResourceId', params.site), + ]), ]), - Query.equal('deploymentResourceType', DeploymentResourceType.SITE), - Query.equal('deploymentResourceId', params.site), - Query.equal('trigger', RuleTrigger.MANUAL), Query.limit(limit), Query.offset(offset), Query.orderDesc(''), 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 0bb99fee4..cc1a89b99 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 @@ -76,7 +76,7 @@ } else if (behaviour === 'REDIRECT') { rule = await sdk .forProject(page.params.region, page.params.project) - .proxy.createRedirectRule(domainName, $regionalProtocol + redirect, statusCode); + .proxy.createRedirectRule(domainName, redirect, statusCode); } else if (behaviour === 'ACTIVE') { rule = await sdk .forProject(page.params.region, page.params.project)