From a6792974f9e6aab81caa578e0f046efcaceacc14 Mon Sep 17 00:00:00 2001 From: Darshan Date: Thu, 23 Jan 2025 20:01:46 +0530 Subject: [PATCH 01/12] add: database read, writes. --- src/lib/charts/bar.svelte | 1 - .../usage/[[period]]/+page.svelte | 30 ++++++++++ .../databases/usage/[[period]]/+page.svelte | 25 +++++++++ .../settings/usage/[[invoice]]/+page.svelte | 55 +++++++++++++++++++ 4 files changed, 110 insertions(+), 1 deletion(-) diff --git a/src/lib/charts/bar.svelte b/src/lib/charts/bar.svelte index a447492d27..9d19e36053 100644 --- a/src/lib/charts/bar.svelte +++ b/src/lib/charts/bar.svelte @@ -13,7 +13,6 @@ {formatted} series={series.map((s) => { s.type = 'bar'; - s.stack = 'total'; s.barMaxWidth = 6; s.itemStyle = { borderRadius: [10, 10, 0, 0] diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index 1ff1c4eb10..23e2ba5309 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -3,11 +3,23 @@ import { page } from '$app/stores'; import { Usage } from '$lib/layout'; import type { PageData } from './$types'; + import { onMount } from 'svelte'; export let data: PageData; $: total = data.collectionsTotal; $: count = data.collections; + + // types need to be added to console sdk. + $: reads = data.databaseReads; + $: readsTotal = data.databaseReadsTotal; + + $: writes = data.databaseWrites; + $: writesTotal = data.databaseWritesTotal; + + onMount(() => { + console.log([readsTotal, writesTotal]); + }); + + + + diff --git a/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte index d261dd5f98..a313f3d56c 100644 --- a/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte @@ -7,6 +7,13 @@ export let data: PageData; $: total = data.databasesTotal; $: count = data.databases; + + // types need to be added to console sdk. + $: reads = data.databasesReads; + $: readsTotal = data.databasesReadsTotal; + + $: writes = data.databasesWrites; + $: writesTotal = data.databasesWritesTotal; + + + + diff --git a/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte b/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte index 49a6215280..8fe58f0c7b 100644 --- a/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte @@ -37,6 +37,12 @@ data.usage.deploymentsStorageTotal + data.usage.buildsStorageTotal; + // types need to be added to console sdk. + $: dbReads = data.usage.databasesReads; + $: dbReadsTotal = data.usage.databasesReadsTotal; + $: dbWrites = data.usage.databasesWrites; + $: dbWritesTotal = data.usage.databasesWritesTotal; + const tier = data?.currentInvoice?.plan ?? $organization?.billingPlan; const plan = tierToPlan(tier).name; @@ -196,6 +202,55 @@ {/if} + + Database reads and writes + +

Total database reads and writes in your project.

+ + + {#if dbReads || dbWrites} + {@const currentReads = formatNum(dbReadsTotal)} + {@const currentWrites = formatNum(dbWritesTotal)} + +
+
+

+ {currentReads}/{currentWrites} + Reads/Writes +

+
+
+ [e.date, e.value])] + }, + { + name: 'Writes', + data: [...dbWrites.map((e) => [e.date, e.value])] + } + ]} /> + {:else} + +
+
+
+ {/if} +
+
Executions From 884c454c55c72dcbbcba6c6982bc81dca40a7e2c Mon Sep 17 00:00:00 2001 From: Darshan Date: Fri, 24 Jan 2025 13:01:08 +0530 Subject: [PATCH 02/12] add: database read, writes in org. usage screen. --- .../usage/[[invoice]]/+page.svelte | 62 +++++++++ .../usage/[[invoice]]/ProjectBreakdown.svelte | 121 ++++++++++++++---- 2 files changed, 160 insertions(+), 23 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte index 3cebea75e6..77096eb10f 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte @@ -193,6 +193,65 @@ + + Databases reads and writes + +

+ The total number of database reads and writes across all projects in your organization. +

+ + + {#if data.organizationUsage.databasesReadsTotal || data.organizationUsage.databasesWritesTotal} +
+ [ + e.date, + e.value + ]) + ] + }, + { + name: 'Writes', + data: [ + ...data.organizationUsage.databasesWrites.map((e) => [ + e.date, + e.value + ]) + ] + } + ]} /> +
+ {#if project?.length > 0} + + {/if} + {:else} + +
+
+
+ {/if} +
+
+ Executions @@ -318,6 +377,7 @@ {/if} + GB hours @@ -378,6 +438,7 @@ {/if} + Phone OTP

@@ -430,6 +491,7 @@ {/if} +

diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte index 8542fe75c5..7bd50227c2 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte @@ -15,14 +15,26 @@ import type { OrganizationUsage } from '$lib/sdk/billing'; import { base } from '$app/paths'; import { canSeeProjects } from '$lib/stores/roles'; + import { onMount } from 'svelte'; + + type Metric = + | 'users' + | 'storage' + | 'bandwidth' + | 'executions' + | 'authPhoneTotal' + | 'databasesReads' + | 'databasesWrites'; - type Metric = 'users' | 'storage' | 'bandwidth' | 'executions' | 'authPhoneTotal'; type Estimate = 'authPhoneEstimate'; + type DatabaseOperationMetric = Extract; + export let data: PageData; export let projects: OrganizationUsage['projects']; - export let metric: Metric; + export let metric: Metric | undefined = undefined; export let estimate: Estimate | undefined = undefined; + export let databaseOperationMetric: DatabaseOperationMetric[] | undefined = undefined; function getMetricTitle(metric: Metric): string { switch (metric) { @@ -38,25 +50,48 @@ } function groupByProject( - metric: Metric, - estimate?: Estimate - ): Array<{ projectId: string; usage: number; estimate?: number }> { + metric: Metric | undefined, + estimate?: Estimate, + databaseOps?: DatabaseOperationMetric[] + ): Array<{ + projectId: string; + databasesReads?: number; + databasesWrites?: number; + usage?: number; + estimate?: number; + }> { const data = []; for (const project of projects) { - const usage = project[metric]; - if (!usage) { - continue; + if (metric) { + const usage = project[metric]; + if (!usage) continue; + + data.push({ + projectId: project.projectId, + usage: usage ?? 0, + estimate: estimate ? project[estimate] : undefined + }); + } else if (databaseOps) { + const reads = project['databasesReads'] ?? 0; + const writes = project['databasesWrites'] ?? 0; + + if (reads || writes) { + data.push({ + projectId: project.projectId, + databasesReads: reads, + databasesWrites: writes + }); + } } - data.push({ - projectId: project.projectId, - usage: usage ?? 0, - estimate: estimate ? project[estimate] : undefined - }); } return data; } function format(value: number): string { + if (databaseOperationMetric) { + return abbreviateNumber(value); + } + switch (metric) { case 'authPhoneTotal': return formatNumberWithCommas(value); @@ -68,6 +103,12 @@ return humanFileSize(value).value + humanFileSize(value).unit; } } + + onMount(() => { + if (metric === undefined && databaseOperationMetric === undefined) { + throw new Error(`metric or database operations must be defined`); + } + }); @@ -76,7 +117,13 @@ Project - {getMetricTitle(metric)} + {#if databaseOperationMetric} + Reads + Writes + {:else} + {getMetricTitle(metric)} + {/if} + {#if estimate} Estimated cost {/if} @@ -85,17 +132,33 @@ {/if} - {#each groupByProject(metric, estimate).sort((a, b) => b.usage - a.usage) as project} + {#each groupByProject(metric, estimate, databaseOperationMetric).sort((a, b) => { + const aValue = a.usage ?? a.databasesReads ?? 0; + const bValue = b.usage ?? b.databasesReads ?? 0; + return bValue - aValue; + }) as project} {#if !$canSeeProjects} {data.projectNames[project.projectId]?.name ?? 'Unknown'} - {format(project.usage)} + {#if databaseOperationMetric} + + {format(project.databasesReads ?? 0)} + + + {format(project.databasesWrites ?? 0)} + + {:else} + + {format(project.usage)} + + {/if} + {#if project.estimate} - {formatCurrency(project.estimate)} + + {formatCurrency(project.estimate)} + {/if} {:else} @@ -103,11 +166,23 @@ {data.projectNames[project.projectId]?.name ?? 'Unknown'} - {format(project.usage)} + {#if databaseOperationMetric} + + {format(project.databasesReads ?? 0)} + + + {format(project.databasesWrites ?? 0)} + + {:else} + + {format(project.usage)} + + {/if} + {#if project.estimate} - {formatCurrency(project.estimate)} + + {formatCurrency(project.estimate)} + {/if} Date: Fri, 24 Jan 2025 13:12:06 +0530 Subject: [PATCH 03/12] remove: leftovers. --- .../usage/[[invoice]]/+page.svelte | 6 +++--- .../database-[database]/usage/[[period]]/+page.svelte | 5 ----- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte index 77096eb10f..bcd97f80d0 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte @@ -201,7 +201,7 @@

- {#if data.organizationUsage.databasesReadsTotal || data.organizationUsage.databasesWritesTotal} + {#if data.organizationUsage.databasesReads || data.organizationUsage.databasesWrites}
[ + ...(data.organizationUsage.databasesReads ?? []).map((e) => [ e.date, e.value ]) @@ -224,7 +224,7 @@ { name: 'Writes', data: [ - ...data.organizationUsage.databasesWrites.map((e) => [ + ...(data.organizationUsage.databasesWrites ?? []).map((e) => [ e.date, e.value ]) diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index 23e2ba5309..68297576c9 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -3,7 +3,6 @@ import { page } from '$app/stores'; import { Usage } from '$lib/layout'; import type { PageData } from './$types'; - import { onMount } from 'svelte'; export let data: PageData; @@ -16,10 +15,6 @@ $: writes = data.databaseWrites; $: writesTotal = data.databaseWritesTotal; - - onMount(() => { - console.log([readsTotal, writesTotal]); - }); Date: Fri, 24 Jan 2025 13:38:05 +0530 Subject: [PATCH 04/12] add: types for org-usage modal. --- src/lib/sdk/billing.ts | 4 ++++ .../organization-[organization]/usage/[[invoice]]/+page.ts | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/sdk/billing.ts b/src/lib/sdk/billing.ts index 95c9f5c77d..32e65b6a1e 100644 --- a/src/lib/sdk/billing.ts +++ b/src/lib/sdk/billing.ts @@ -179,9 +179,13 @@ export type Aggregation = { export type OrganizationUsage = { bandwidth: Array; executions: Array; + databasesReads: Array; + databasesWrites: Array; executionsTotal: number; filesStorageTotal: number; buildsStorageTotal: number; + databasesReadsTotal: number; + databasesWritesTotal: number; deploymentsStorageTotal: number; executionsMBSecondsTotal: number; buildsMBSecondsTotal: number; diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts index 4138acfa16..967ee6d503 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts @@ -29,7 +29,11 @@ export const load: PageLoad = async ({ params, parent }) => { executionsMBSecondsTotal: null, buildsMBSecondsTotal: null, authPhoneTotal: null, - authPhoneEstimate: null + authPhoneEstimate: null, + databasesReads: null, + databasesWrites: null, + databasesReadsTotal: null, + databasesWritesTotal: null, } }; } From f143d34365787e52cb3cf3c6896d7da4b88a09f8 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sat, 25 Jan 2025 19:34:35 +0530 Subject: [PATCH 05/12] new: custom legend and usage component. --- src/lib/charts/index.ts | 1 + src/lib/charts/legend.svelte | 23 +++++++++++ src/lib/layout/index.ts | 1 + src/lib/layout/usageMultiple.svelte | 63 +++++++++++++++++++++++++++++ 4 files changed, 88 insertions(+) create mode 100644 src/lib/charts/legend.svelte create mode 100644 src/lib/layout/usageMultiple.svelte diff --git a/src/lib/charts/index.ts b/src/lib/charts/index.ts index c73108a134..488756ecb5 100644 --- a/src/lib/charts/index.ts +++ b/src/lib/charts/index.ts @@ -1,2 +1,3 @@ export { default as BarChart } from './bar.svelte'; export { default as LineChart } from './line.svelte'; +export { default as Legend, type LegendData } from './legend.svelte'; diff --git a/src/lib/charts/legend.svelte b/src/lib/charts/legend.svelte new file mode 100644 index 0000000000..671f4cce35 --- /dev/null +++ b/src/lib/charts/legend.svelte @@ -0,0 +1,23 @@ + + + + +
+ {#each legendData as { name, value }, index} +
+ + {name} ({value}) +
+ {/each} +
diff --git a/src/lib/layout/index.ts b/src/lib/layout/index.ts index e45069dd11..fa8289f73b 100644 --- a/src/lib/layout/index.ts +++ b/src/lib/layout/index.ts @@ -13,6 +13,7 @@ export { default as WizardStep } from './wizardStep.svelte'; export { default as Breadcrumbs } from './breadcrumbs.svelte'; export { default as Unauthenticated } from './unauthenticated.svelte'; export { default as Usage, type UsagePeriods } from './usage.svelte'; +export { default as UsageMultiple } from './usageMultiple.svelte'; export { default as Activity } from './activity.svelte'; export { default as Progress } from './progress.svelte'; export { default as GridHeader } from './gridHeader.svelte'; diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte new file mode 100644 index 0000000000..6e3d3be434 --- /dev/null +++ b/src/lib/layout/usageMultiple.svelte @@ -0,0 +1,63 @@ + + + +
+ {title} + {#if path} + + + 24h + + + 30d + + + 90d + + + {/if} +
+ + {#if count} +
+
+ ({ + name: legendData[index].name, + data: accumulateFromEndingTotal(c, total[index]) + }))} /> +
+ + {#if legendData} + + {/if} +
+ {/if} +
+
+ + From e3774be0aa323e24f43d4a0d68aed92f8d2a1de1 Mon Sep 17 00:00:00 2001 From: Darshan Date: Sat, 25 Jan 2025 19:37:10 +0530 Subject: [PATCH 06/12] update: use new usageMultiple component for database r&w metrics. --- .../usage/[[invoice]]/+page.svelte | 11 +++- .../usage/[[invoice]]/+page.ts | 2 +- .../usage/[[period]]/+page.svelte | 27 +++------ .../databases/usage/[[period]]/+page.svelte | 27 +++------ .../settings/usage/[[invoice]]/+page.svelte | 57 +++++++++---------- 5 files changed, 56 insertions(+), 68 deletions(-) diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte index bcd97f80d0..b002e59f3c 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte @@ -10,7 +10,7 @@ import { organization } from '$lib/stores/organization'; import { Button } from '$lib/elements/forms'; import { bytesToSize, humanFileSize, mbSecondsToGBHours } from '$lib/helpers/sizeConvertion'; - import { BarChart } from '$lib/charts'; + import { BarChart, Legend } from '$lib/charts'; import ProjectBreakdown from './ProjectBreakdown.svelte'; import { formatNum } from '$lib/helpers/string'; import { accumulateFromEndingTotal, total } from '$lib/layout/usage.svelte'; @@ -29,6 +29,11 @@ const plan = data?.plan ?? undefined; $: project = (data.organizationUsage as OrganizationUsage).projects; + + $: legendData = [ + { name: 'Reads', value: data.organizationUsage.databasesReadsTotal }, + { name: 'Writes', value: data.organizationUsage.databasesWritesTotal } + ]; @@ -200,7 +205,6 @@ The total number of database reads and writes across all projects in your organization.

- {#if data.organizationUsage.databasesReads || data.organizationUsage.databasesWrites}
+ + + {#if project?.length > 0} { databasesReads: null, databasesWrites: null, databasesReadsTotal: null, - databasesWritesTotal: null, + databasesWritesTotal: null } }; } diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index 68297576c9..fd5fd58755 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -1,7 +1,7 @@
{#if status} - + {/if}
+ + diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte index 6e3d3be434..b12b0bc1ef 100644 --- a/src/lib/layout/usageMultiple.svelte +++ b/src/lib/layout/usageMultiple.svelte @@ -34,15 +34,13 @@
{#if count} -
-
- ({ - name: legendData[index].name, - data: accumulateFromEndingTotal(c, total[index]) - }))} /> -
+
+ ({ + name: legendData[index].name, + data: accumulateFromEndingTotal(c, total[index]) + }))} /> {#if legendData} @@ -53,11 +51,12 @@ diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte index b002e59f3c..a140f27b23 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte @@ -206,7 +206,7 @@

{#if data.organizationUsage.databasesReads || data.organizationUsage.databasesWrites} -
+
{#if dbReads || dbWrites} -
+
Date: Mon, 27 Jan 2025 15:54:28 +0530 Subject: [PATCH 08/12] address comments: update copies, specs of the graphs. --- src/lib/layout/usageMultiple.svelte | 16 +++++++- .../usage/[[invoice]]/+page.svelte | 2 +- .../usage/[[period]]/+page.svelte | 38 ++++++++++--------- .../databases/usage/[[period]]/+page.svelte | 38 ++++++++++--------- 4 files changed, 57 insertions(+), 37 deletions(-) diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte index b12b0bc1ef..aa9292c9c7 100644 --- a/src/lib/layout/usageMultiple.svelte +++ b/src/lib/layout/usageMultiple.svelte @@ -5,17 +5,23 @@ import { Card, Heading, SecondaryTabs, SecondaryTabsItem } from '$lib/components'; import { page } from '$app/stores'; import { type Models } from '@appwrite.io/console'; + import { formatNumberWithCommas } from '$lib/helpers/numbers'; export let title: string; export let total: number[]; export let path: string = null; export let count: Models.Metric[][]; export let legendData: LegendData[]; + export let showHeader: boolean = true; + export let overlapContainerCover = false; - +
- {title} + {#if showHeader} + {title} + {/if} + {#if path} @@ -34,6 +40,12 @@
{#if count} + {@const totalCount = total.reduce((a, b) => a + b, 0)} + + {formatNumberWithCommas(totalCount)} +

Total {title.toLocaleLowerCase()}

+
+
- Databases reads and writes + Database reads and writes

The total number of database reads and writes across all projects in your organization. diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index fd5fd58755..56e0eb7220 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -17,21 +17,25 @@ $: writesTotal = data.databaseWritesTotal; - +

+ - + +
diff --git a/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte index 334403f690..b4fbc25e73 100644 --- a/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte @@ -16,21 +16,25 @@ $: writesTotal = data.databasesWritesTotal; - +
+ - + +
From 303139dc56d08120520e30f2ef4a336aa6416e68 Mon Sep 17 00:00:00 2001 From: Darshan Date: Mon, 27 Jan 2025 19:18:41 +0530 Subject: [PATCH 09/12] address comments. --- src/lib/components/status.svelte | 1 - src/lib/layout/usageMultiple.svelte | 2 +- .../usage/[[invoice]]/+page.svelte | 2 +- .../database-[database]/usage/[[period]]/+page.svelte | 1 - .../project-[project]/databases/usage/[[period]]/+page.svelte | 1 - .../project-[project]/settings/usage/[[invoice]]/+page.svelte | 4 ---- 6 files changed, 2 insertions(+), 9 deletions(-) diff --git a/src/lib/components/status.svelte b/src/lib/components/status.svelte index 75fa4ad103..71ddbde695 100644 --- a/src/lib/components/status.svelte +++ b/src/lib/components/status.svelte @@ -36,6 +36,5 @@ .text { line-height: 140%; - letter-spacing: -0.063px; } diff --git a/src/lib/layout/usageMultiple.svelte b/src/lib/layout/usageMultiple.svelte index aa9292c9c7..81e9710b82 100644 --- a/src/lib/layout/usageMultiple.svelte +++ b/src/lib/layout/usageMultiple.svelte @@ -68,7 +68,7 @@ } :global(.multiple-chart-container .echart) { - margin-top: -1rem; + margin-top: -1em; margin-bottom: -1em; } diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte index 46fdce2a9b..d4b23112ab 100644 --- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.svelte @@ -138,7 +138,7 @@
diff --git a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte index 56e0eb7220..b094257acc 100644 --- a/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/database-[database]/usage/[[period]]/+page.svelte @@ -9,7 +9,6 @@ $: total = data.collectionsTotal; $: count = data.collections; - // types need to be added to console sdk. $: reads = data.databaseReads; $: readsTotal = data.databaseReadsTotal; diff --git a/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte b/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte index b4fbc25e73..8c41fdc755 100644 --- a/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte +++ b/src/routes/(console)/project-[project]/databases/usage/[[period]]/+page.svelte @@ -8,7 +8,6 @@ $: total = data.databasesTotal; $: count = data.databases; - // types need to be added to console sdk. $: reads = data.databasesReads; $: readsTotal = data.databasesReadsTotal; diff --git a/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte b/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte index 4412f6f923..a0d8c24109 100644 --- a/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte +++ b/src/routes/(console)/project-[project]/settings/usage/[[invoice]]/+page.svelte @@ -37,12 +37,8 @@ data.usage.deploymentsStorageTotal + data.usage.buildsStorageTotal; - // types need to be added to console sdk. $: dbReads = data.usage.databasesReads; - $: dbReadsTotal = data.usage.databasesReadsTotal; - $: dbWrites = data.usage.databasesWrites; - $: dbWritesTotal = data.usage.databasesWritesTotal; $: legendData = [ { name: 'Reads', value: data.usage.databasesReadsTotal }, From f3c903a3085e083e737bd2b854bb21c2074b9977 Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 29 Jan 2025 10:47:02 +0530 Subject: [PATCH 10/12] bump: console sdk for db read/writes. --- package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 428927dc57..348f13dbee 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ "e2e:ui": "playwright test tests/e2e --ui" }, "dependencies": { - "@appwrite.io/console": "1.4.7", + "@appwrite.io/console": "1.5.1", "@appwrite.io/pink": "0.25.0", "@appwrite.io/pink-icons": "0.25.0", "@popperjs/core": "^2.11.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a31a13a9ef..911bb0c01e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@appwrite.io/console': - specifier: 1.4.7 - version: 1.4.7 + specifier: 1.5.1 + version: 1.5.1 '@appwrite.io/pink': specifier: 0.25.0 version: 0.25.0 @@ -199,8 +199,8 @@ packages: '@analytics/type-utils@0.6.2': resolution: {integrity: sha512-TD+xbmsBLyYy/IxFimW/YL/9L2IEnM7/EoV9Aeh56U64Ify8o27HJcKjo38XY9Tcn0uOq1AX3thkKgvtWvwFQg==} - '@appwrite.io/console@1.4.7': - resolution: {integrity: sha512-5zx+c5nWRm/UJNxgtOi4vj1pYW+wusfnOX2hqEGDLLuNZRc1rViYRefNuezosp5SPtjClCIYn9TGuFlz/XLwhw==} + '@appwrite.io/console@1.5.1': + resolution: {integrity: sha512-H0fkBprsxXjOhbrE+MqXt1e4Gx4QeRdHuvMs7UxqGr2fAVEqh4ez2yk40A0ZSQvvN+rqLduoItMHQFl+sCPbtQ==} '@appwrite.io/pink-icons@0.25.0': resolution: {integrity: sha512-0O3i2oEuh5mWvjO80i+X6rbzrWLJ1m5wmv2/M3a1p2PyBJsFxN8xQMTEmTn3Wl/D26SsM7SpzbdW6gmfgoVU9Q==} @@ -3834,7 +3834,7 @@ snapshots: '@analytics/type-utils@0.6.2': {} - '@appwrite.io/console@1.4.7': {} + '@appwrite.io/console@1.5.1': {} '@appwrite.io/pink-icons@0.25.0': {} From bb04620771eee3fcb232b1887b5727c654b83f29 Mon Sep 17 00:00:00 2001 From: Darshan Date: Wed, 29 Jan 2025 10:48:41 +0530 Subject: [PATCH 11/12] fix: svelte check. --- src/lib/components/status.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/status.svelte b/src/lib/components/status.svelte index 71ddbde695..7dc78c84ec 100644 --- a/src/lib/components/status.svelte +++ b/src/lib/components/status.svelte @@ -9,7 +9,7 @@ | 'building' | 'none'; - export let statusIconStyle: string; + export let statusIconStyle: string | undefined = undefined;
Date: Wed, 29 Jan 2025 12:29:08 +0530 Subject: [PATCH 12/12] update: safeguard when the backend may not yet support the metrics for db read/writes. --- src/lib/layout/usage.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/layout/usage.svelte b/src/lib/layout/usage.svelte index 8f392847f8..d9f31bc11b 100644 --- a/src/lib/layout/usage.svelte +++ b/src/lib/layout/usage.svelte @@ -43,7 +43,7 @@ metrics: Models.Metric[], endingTotal: number ): Array<[string, number]> { - return metrics.reduceRight( + return (metrics ?? []).reduceRight( (acc, curr) => { acc.data.unshift([curr.date, acc.total]); acc.total -= curr.value;