Skip to content

🚀 Feature: Support switching between organizations in the dashboard when running in community self-hosted mode #11356

@prathapbelli

Description

@prathapbelli

🔖 Feature description

In cloud and enterprise self-hosted (Better Auth) modes, the dashboard's side-nav exposes an OrganizationSwitcher that lets a signed-in user move between organizations they belong to (provided by Clerk /
Better Auth).
Its missing for community self-hosted dashboard which was existed feature in V1 version.
In community self-hosted mode (VITE_SELF_HOSTED=true && VITE_NOVU_ENTERPRISE=false), the dashboard's @clerk/react import is aliased to a custom shim at apps/dashboard/src/utils/self-hosted/index.tsx.
That shim's useClerk() / useOrganizationList() implementations are stubs (e.g. setActive logs a warning, organizationList returns only the current org),
so the side-nav offers no way to switch organizations even though the underlying API endpoints (GET /v1/organizations, POST /v1/auth/organizations/:id/switch) exist on the API service.

🎤 Why is this feature needed ?

This is a usability gap: community self-hosted users who manage multiple Novu organizations on the same instance have to sign out and sign back in (or manipulate the JWT in localStorage) to change context.
This is not newly expected feature but it was existed in V1 web UI version which making Community users to kind of restriction to upgrade to latest Novu

✌️ How do you aim to achieve this?

Extend the community self-hosted shim's useClerk / useOrganizationList to consume the existing API endpoints:

  • GET /v1/organizations → populate organizationList / userMemberships via react-query
  • POST /v1/auth/organizations/:id/switch → exchange JWTs in setActive({ organization }), then reload to re-bootstrap context
  • POST /v1/organizations → back createOrganization({ name })

🔄️ Additional Information

Reproduction steps (steps to observe the missing functionality):

  1. Run a Novu API service in community self-hosted mode with a user account that belongs to ≥ 2 organizations.
  2. Build the dashboard with VITE_SELF_HOSTED=true && VITE_NOVU_ENTERPRISE=false.
  3. Sign in.
  4. Open the side-nav organization dropdown.

Expected behavior:

  • The side-nav organization dropdown lists all organizations the signed-in user belongs to.
  • Selecting a different organization re-bootstraps the dashboard's data scopes
    (workflows, subscribers, etc.) under the new org.
  • A "Create organization" action is available so a user can spin up a new workspace from the same UI.

Actual Behavior:

  • The side-nav shows only the currently-active organization. There is no list of other orgs.

👀 Have you spent some time to check if this feature request has been raised before?

  • I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

Are you willing to submit PR?

Yes I am willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions