diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index efb347fd2..ab33a8f37 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -17,8 +17,8 @@ jobs: - name: Log in to Docker Hub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + username: ${{ vars.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 @@ -54,8 +54,8 @@ jobs: - name: Log in to Docker Hub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + username: ${{ vars.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 @@ -90,8 +90,8 @@ jobs: - name: Log in to Docker Hub uses: docker/login-action@v3 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} + username: ${{ vars.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract metadata (tags, labels) for Docker id: meta uses: docker/metadata-action@v5 diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2142ec11e..a18443c61 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,7 +7,7 @@ settings: dependencies: '@appwrite.io/console': specifier: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@9193 - version: '@pkg.pr.new/appwrite/appwrite/@appwrite.io/console@9193' + version: '@pkg.pr.new/appwrite/appwrite/@appwrite.io/console/9193' '@appwrite.io/pink-icons': specifier: 0.25.0 version: 0.25.0 @@ -7293,7 +7293,7 @@ packages: resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} dev: false - '@pkg.pr.new/appwrite/appwrite/@appwrite.io/console@9193': + '@pkg.pr.new/appwrite/appwrite/@appwrite.io/console/9193': resolution: {tarball: https://pkg.pr.new/appwrite/appwrite/@appwrite.io/console@9193} name: '@appwrite.io/console' version: 1.2.1 diff --git a/src/lib/charts/bar.svelte b/src/lib/charts/bar.svelte index a447492d2..9d19e3605 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/lib/charts/index.ts b/src/lib/charts/index.ts index c73108a13..488756ecb 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 000000000..2e72c1410 --- /dev/null +++ b/src/lib/charts/legend.svelte @@ -0,0 +1,25 @@ + + + + +
No data to show
++ The total number of database reads and writes across all projects in your organization. +
++ OTPs are billed per SMS message, with rates varying by recipient country. For a detailed + cost breakdown, see the pricing page. +
+You will not be charged for Phone OTPs before February 10th.
++ {formatNumberWithCommas(data.organizationUsage.authPhoneTotal)} + OTPs +
++ Estimated cost + + {formatCurrency(data.organizationUsage.authPhoneEstimate)} + + +
+No data to show
+
diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts
index 74dffcda2..90d64d7d1 100644
--- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts
+++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/+page.ts
@@ -27,7 +27,13 @@ export const load: PageLoad = async ({ params, parent }) => {
executionsTotal: null,
projects: null,
executionsMBSecondsTotal: null,
- buildsMBSecondsTotal: null
+ buildsMBSecondsTotal: null,
+ authPhoneTotal: null,
+ authPhoneEstimate: null,
+ databasesReads: null,
+ databasesWrites: null,
+ databasesReadsTotal: null,
+ databasesWritesTotal: null
}
};
}
diff --git a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte
index 5516b61b7..ca31412f4 100644
--- a/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte
+++ b/src/routes/(console)/organization-[organization]/usage/[[invoice]]/ProjectBreakdown.svelte
@@ -10,83 +10,193 @@
TableRowLink,
TableScroll
} from '$lib/elements/table';
- import { abbreviateNumber } from '$lib/helpers/numbers';
+ import { abbreviateNumber, formatCurrency, formatNumberWithCommas } from '$lib/helpers/numbers';
import { humanFileSize } from '$lib/helpers/sizeConvertion';
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 Estimate = 'authPhoneEstimate';
+
+ type DatabaseOperationMetric = Extract