From 5dee242aa3bd59ece5d1c471bb8e70bd26473c5d Mon Sep 17 00:00:00 2001 From: Danny White <3104761+dnywh@users.noreply.github.com> Date: Thu, 30 Apr 2026 16:48:51 +1000 Subject: [PATCH] chore(studio): remove project usage settings callout (#45393) ## What kind of change does this PR introduce? Dashboard cleanup and docs update. ## What is the current behaviour? Project Settings > General still shows a legacy "Project usage" section explaining that usage statistics moved to organisation settings. One troubleshooting page also links to the old project billing usage page. ## What is the new behaviour? The legacy Project Settings usage callout is removed, while the existing old usage route redirect remains in place for stale links. The MAU troubleshooting page now points users to the organisation usage page and tells them to select a specific project from the dropdown. | Before | After | | --- | --- | | CleanShot 2026-04-30 at 16 11
16@2x | CleanShot 2026-04-30 at 16 11
04@2x-7CACB175-B6A9-4811-968F-030745F685AE | ## Summary by CodeRabbit * **Documentation** * Updated Monthly Active Users (MAU) documentation to reflect accessing usage data from the organization-level page instead of project settings * **Refactor** * Removed project-level usage viewing option from project settings interface --- ...ge-for-monthly-active-users-mau-MwZaBs.mdx | 2 +- .../Settings/General/Project.test.tsx | 25 +++--------- .../interfaces/Settings/General/Project.tsx | 39 ------------------- 3 files changed, 7 insertions(+), 59 deletions(-) diff --git a/apps/docs/content/troubleshooting/check-usage-for-monthly-active-users-mau-MwZaBs.mdx b/apps/docs/content/troubleshooting/check-usage-for-monthly-active-users-mau-MwZaBs.mdx index 3f1f45e1d70..cfec63c4d4f 100644 --- a/apps/docs/content/troubleshooting/check-usage-for-monthly-active-users-mau-MwZaBs.mdx +++ b/apps/docs/content/troubleshooting/check-usage-for-monthly-active-users-mau-MwZaBs.mdx @@ -7,7 +7,7 @@ keywords = [ "MAU", "Monthly active users" ] database_id = "1759134d-a98d-4bfa-9501-71e06180700e" --- -You can see the usage in your [projects usage page](https://app.supabase.com/project/_/settings/billing/usage). +You can view Monthly Active Users usage on the [organisation's usage page](/dashboard/org/_/usage). To view usage for a specific project, select it from the project dropdown. For MAU, we rely on the [Auth Server](https://github.com/supabase/auth) logs. MAU count is relative to your billing cycle and resets whenever your billing cycle resets. You can check your Auth logs in your [projects logs & analytics section](/dashboard/project/_/logs/auth-logs). diff --git a/apps/studio/components/interfaces/Settings/General/Project.test.tsx b/apps/studio/components/interfaces/Settings/General/Project.test.tsx index 4f2c909fbda..eeb3ead7ee7 100644 --- a/apps/studio/components/interfaces/Settings/General/Project.test.tsx +++ b/apps/studio/components/interfaces/Settings/General/Project.test.tsx @@ -4,17 +4,12 @@ import { beforeEach, describe, expect, it, vi } from 'vitest' import { Project } from './Project' -const { - mockUseIsFeatureEnabled, - mockUseProjectPauseStatusQuery, - mockUseSelectedOrganizationQuery, - mockUseSelectedProjectQuery, -} = vi.hoisted(() => ({ - mockUseIsFeatureEnabled: vi.fn(), - mockUseProjectPauseStatusQuery: vi.fn(), - mockUseSelectedOrganizationQuery: vi.fn(), - mockUseSelectedProjectQuery: vi.fn(), -})) +const { mockUseIsFeatureEnabled, mockUseProjectPauseStatusQuery, mockUseSelectedProjectQuery } = + vi.hoisted(() => ({ + mockUseIsFeatureEnabled: vi.fn(), + mockUseProjectPauseStatusQuery: vi.fn(), + mockUseSelectedProjectQuery: vi.fn(), + })) vi.mock('next/link', () => ({ default: ({ href, children }: { href: string; children: ReactNode }) => ( @@ -68,10 +63,6 @@ vi.mock('@/hooks/misc/useIsFeatureEnabled', () => ({ useIsFeatureEnabled: mockUseIsFeatureEnabled, })) -vi.mock('@/hooks/misc/useSelectedOrganization', () => ({ - useSelectedOrganizationQuery: mockUseSelectedOrganizationQuery, -})) - vi.mock('@/hooks/misc/useSelectedProject', () => ({ useSelectedProjectQuery: mockUseSelectedProjectQuery, })) @@ -84,10 +75,6 @@ describe('Project settings availability', () => { projectSettingsRestartProject: true, }) - mockUseSelectedOrganizationQuery.mockReturnValue({ - data: { slug: 'supabase' }, - }) - mockUseProjectPauseStatusQuery.mockReturnValue({ data: undefined, isError: false, diff --git a/apps/studio/components/interfaces/Settings/General/Project.tsx b/apps/studio/components/interfaces/Settings/General/Project.tsx index 80d94d6352f..28ed752273f 100644 --- a/apps/studio/components/interfaces/Settings/General/Project.tsx +++ b/apps/studio/components/interfaces/Settings/General/Project.tsx @@ -1,4 +1,3 @@ -import { BarChart2 } from 'lucide-react' import Link from 'next/link' import { Button, Card, CardContent } from 'ui' import { @@ -15,14 +14,11 @@ import RestartServerButton from './Infrastructure/RestartServerButton' import { ResumeProjectButton } from '@/components/interfaces/Project/ResumeProjectButton' import { useProjectPauseStatusQuery } from '@/data/projects/project-pause-status-query' import { useIsFeatureEnabled } from '@/hooks/misc/useIsFeatureEnabled' -import { useSelectedOrganizationQuery } from '@/hooks/misc/useSelectedOrganization' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' import { PROJECT_STATUS } from '@/lib/constants' export const Project = () => { const { data: project } = useSelectedProjectQuery() - const { data: organization } = useSelectedOrganizationQuery() - const isBranch = Boolean(project?.parent_project_ref) const isPaused = project?.status === PROJECT_STATUS.INACTIVE const { projectSettingsRestartProject } = useIsFeatureEnabled([ 'project_settings:restart_project', @@ -109,41 +105,6 @@ export const Project = () => { - - {!isBranch && ( - - - - Project usage - - - - - -
-
- -
-

Project usage statistics have moved

-

- Project usage is now viewable within organization settings. -

-
-
- - {!!organization && !!project && ( - - )} -
-
-
-
-
- )} ) }