diff --git a/.changeset/hungry-geckos-tap.md b/.changeset/hungry-geckos-tap.md new file mode 100644 index 000000000..69fc8f111 --- /dev/null +++ b/.changeset/hungry-geckos-tap.md @@ -0,0 +1,5 @@ +--- +'@lagon/dashboard': patch +--- + +Fix domain status when proxied through Cloudflare diff --git a/.changeset/lemon-ducks-learn.md b/.changeset/lemon-ducks-learn.md new file mode 100644 index 000000000..8d71ca263 --- /dev/null +++ b/.changeset/lemon-ducks-learn.md @@ -0,0 +1,5 @@ +--- +'@lagon/cli': patch +--- + +Reduce loading animation ticks diff --git a/.changeset/neat-otters-live.md b/.changeset/neat-otters-live.md new file mode 100644 index 000000000..7ea70c583 --- /dev/null +++ b/.changeset/neat-otters-live.md @@ -0,0 +1,5 @@ +--- +'@lagon/serverless': patch +--- + +Fix logs time-to-live diff --git a/crates/cli/src/utils/console.rs b/crates/cli/src/utils/console.rs index 2a0174b29..9790b5757 100644 --- a/crates/cli/src/utils/console.rs +++ b/crates/cli/src/utils/console.rs @@ -26,7 +26,7 @@ pub fn print_progress(message: &str) -> impl Fn() + '_ { } handle.tick(); - tokio::time::sleep(Duration::from_millis(10)).await; + tokio::time::sleep(Duration::from_millis(50)).await; } }); diff --git a/crates/serverless/src/clickhouse.rs b/crates/serverless/src/clickhouse.rs index 416b2150e..b8e091d23 100644 --- a/crates/serverless/src/clickhouse.rs +++ b/crates/serverless/src/clickhouse.rs @@ -60,7 +60,7 @@ pub async fn run_migrations(client: &Client) -> Result<()> { ) ENGINE = MergeTree() PRIMARY KEY (level, function_id, timestamp) -TTL now() + INTERVAL 1 WEEK", +TTL timestamp + INTERVAL 1 WEEK", ) .execute() .await?; diff --git a/packages/dashboard/lib/pages/function/FunctionSettings.tsx b/packages/dashboard/lib/pages/function/FunctionSettings.tsx index 84e726483..5809128c4 100644 --- a/packages/dashboard/lib/pages/function/FunctionSettings.tsx +++ b/packages/dashboard/lib/pages/function/FunctionSettings.tsx @@ -78,7 +78,7 @@ const FunctionSettings = ({ func, refetch }: FunctionSettingsProps) => { ); const promises = func.domains.map(async domain => { - const response = await fetch(`https://cloudflare-dns.com/dns-query?name=${domain}&type=A`, { + const response = await fetch(`https://cloudflare-dns.com/dns-query?name=${domain}&type=CNAME`, { headers: { accept: 'application/dns-json', }, @@ -97,11 +97,16 @@ const FunctionSettings = ({ func, refetch }: FunctionSettingsProps) => { let domainStatus: DomainStatus; - if (result.Answer?.[0]?.name === domain && result.Answer?.[0]?.data === `${defaultDomain}.`) { + if (result.Answer?.[0]?.data === `${defaultDomain}.`) { domainStatus = { status: 'success', help: t('domains.list.valid'), }; + } else if (result.Authority?.[0].data?.includes('dns.cloudflare.com.')) { + domainStatus = { + status: 'info', + help: t('domains.list.valid.cf'), + }; } else { domainStatus = { status: 'danger', diff --git a/packages/dashboard/locales/en.ts b/packages/dashboard/locales/en.ts index d5462c6d5..7c4d96d43 100644 --- a/packages/dashboard/locales/en.ts +++ b/packages/dashboard/locales/en.ts @@ -219,6 +219,7 @@ export default { 'functions.settings.domains.add.success': 'Domain added successfully.', 'functions.settings.domains.list.default': 'Default domain', 'functions.settings.domains.list.valid': 'Domain is valid', + 'functions.settings.domains.list.valid.cf': 'Domain proxied through Cloudflare', 'functions.settings.domains.list.invalid': 'Domain is pointing to {domain} instead of {target}', 'functions.settings.domains.list.delete': 'Delete', 'functions.settings.domains.list.delete.success': 'Domain deleted successfully.', diff --git a/packages/dashboard/locales/fr.ts b/packages/dashboard/locales/fr.ts index abc984760..cb8e23b04 100644 --- a/packages/dashboard/locales/fr.ts +++ b/packages/dashboard/locales/fr.ts @@ -226,6 +226,7 @@ export default defineLocale({ 'functions.settings.domains.add.success': 'Domaine ajouté avec succès.', 'functions.settings.domains.list.default': 'Domaine par défaut', 'functions.settings.domains.list.valid': 'Domaine valide', + 'functions.settings.domains.list.valid.cf': 'Domaine proxié par Cloudflare', 'functions.settings.domains.list.invalid': 'Le domaine pointe vers {domain} au lieu de {target}', 'functions.settings.domains.list.delete': 'Supprimer', 'functions.settings.domains.list.delete.success': 'Domaine supprimé avec succès.',