workspace-overview

What is an Upsolve Workspace?

An Upsolve Workspace is a container that holds multiple related dashboards. Instead of deploying individual dashboards, you can group related dashboards together and deploy them as a single unit.

Dashboard Types in a Workspace

Global Dashboards

  • Created by administrators in the Upsolve Hub
  • Visible to all users of the workspace
  • Read-only for end users (tenants)
  • Define the baseline analytics experience

Tenant Dashboards

  • Created by individual users/tenants when embedded
  • Private to each tenant
  • Fully editable by the tenant who created them
  • Allow for personalized analytics views

Creating Your First Workspace

  1. Navigate to Workspaces: In the Upsolve Hub, go to your workspace management area
  2. Create New Workspace: Click the “Create Workspace” button
  3. Initial Dashboard: The system automatically creates your first dashboard, which becomes the foundation of your workspace
  4. Workspace Properties: The workspace inherits its name, author, and metadata from this first dashboard
creating-workspace Important: A workspace is essentially a wrapper around dashboards — it doesn’t have independent properties beyond what the dashboards inside it define.

Adding Dashboards to Your Workspace

Once you have a workspace, you can add multiple dashboards:
  1. Use the + Button: In your workspace view, click the ”+” button to create a new dashboard
  2. Dashboard Creation: This opens the dashboard builder where you can:
    • Add charts and visualizations
    • Configure filters
    • Set dashboard permissions
  3. Automatic Organization: New dashboards are automatically added to your current workspace
dashboard-tabs add-dashboard Pro Tip: The experience your tenants have when adding dashboards will mirror this process — they’ll use the same ”+” button to create their personal dashboards.

Managing Dashboard Organization

Moving Dashboards

You can reorganize dashboards between workspaces:
  1. Access Move Function: Click the “Move” button on any dashboard
  2. Select Destination: Choose the target workspace from the dropdown
  3. Confirm Move: The dashboard moves to the new workspace immediately
move-dashboard

Important Behaviors

  • Empty Workspaces: If you move all dashboards out of a workspace, it will automatically disappear from your home screen
  • Workspace Inheritance: When moved, dashboards adapt to their new workspace’s configuration

Deploying Your Workspace

Using the UpsolveWorkspace Component

Once your workspace is ready, deploy it using the React component:
import { UpsolveWorkspace } from '@upsolve-labs/react';

function MyApp() {
  const userToken = "your-tenant-jwt"; // Replace with your tenant JWT

  return (
    <UpsolveWorkspace
      workspaceId="your-workspace-id"
      tenantJWT={userToken}
      tenantEditingPermissions={{
        addChart: true,
        addFilter: true,
        createChart: true,
        editCharts: true,
        removeChart: true,
        aiCharts: true
      }}
    />
  );
}
deploy-workspace

Key Props Explained

  • workspaceId: The unique identifier of your workspace (found in the Hub)
  • tenantJWT: Authentication token for your tenant
  • tenantEditingPermissions: Controls what your users can do:
    • addChart: Allow tenants to add charts to their view-only dashboards
    • addFilter: Allow tenants to add filters that apply only to their view
    • createChart: Allow tenants to create new charts that appear only for them
    • createChartSQL: Allow tenants to create charts with SQL (requires createChart)
    • editCharts: Allow tenants to edit charts in their personal dashboards
    • removeChart: Allow tenants to remove charts from their view of a dashboard
    • readOnly: Make personal dashboards visible but read-only
    • disableTabs: Disable tabbed display in the SDK
    • aiCharts: Allow tenants to use AI-powered chart creation
    • editMarketplace: Allow tenants to edit marketplace charts
    • aiInsight: Allow access to the AI insights chat sidebar

Getting Your Workspace ID

  1. In the Upsolve Hub, navigate to your workspace
  2. Click the “Deploy” button
  3. Copy the provided workspace ID and integration code

Code Examples

Basic Workspace Component

import { UpsolveWorkspace } from '@upsolve-labs/react';

export function AnalyticsDashboard({ userToken }: { userToken: string }) {
  return (
    <div className="analytics-container">
      <h1>Company Analytics</h1>
      <UpsolveWorkspace
        workspaceId="ws_abc123"
        tenantJWT={userToken}
        tenantEditingPermissions={{
          addChart: true,
          addFilter: true,
          createChart: true,
          editCharts: true,
          removeChart: true,
        }}
        tabPlacement="top" // or "popover"
      />
    </div>
  );
}

Advanced Configuration

<UpsolveWorkspace
  workspaceId="ws_abc123"
  tenantJWT={userToken}
  tenantEditingPermissions={{
    addChart: true,
    createChart: false, // Users can add existing charts but not create new ones
    editCharts: true,
    readOnly: false
  }}
  theme="dark" // or "light"
  tabPlacement="popover" // Compact dropdown instead of tabs
/>
tenant-view The screenshot below shows what happens when you set tabPlacement="popover" — a compact dropdown replaces tabs. popover-mode

Alternative Deployment: IFrame Embedding

In addition to the React component approach, you can embed Upsolve Workspaces directly using an iframe. This method is useful for non-React applications or when you need quick integration without installing packages.

IFrame Deployment

Basic IFrame Integration

Instead of using the React component, you can embed workspaces using a standard HTML iframe:
<iframe
  src="https://hub.upsolve.ai/share/dashboard/[DASHBOARD_ID]?personalWorkspace=true&createChart=true"
  width="100%"
  height="600px"
  frameborder="0">
</iframe>
Replace [DASHBOARD_ID] with your actual dashboard ID from the Upsolve Hub.

IFrame Configuration Parameters

Control your workspace behavior using URL parameters:
Essential Parameters
  • personalWorkspace=true - Required to enable workspace functionality with tabs
  • jwt=[YOUR_JWT_TOKEN] - Authentication token for your users
Dashboard Creation Controls
⚠️ Important: To show the ”+” button for adding dashboards, you must set personalWorkspace=true AND at least one of these permissions:
  • createChart=true - Allow users to create new charts and dashboards
  • addChart=true - Allow users to add existing charts to dashboards
  • addFilter=true - Allow users to add filters to dashboards
Additional Permissions
  • editCharts=true - Allow editing of chart configurations
  • removeChart=true - Allow removing charts from dashboards
  • aiCharts=true - Enable AI-powered chart creation
  • readOnly=true - Personal dashboards visible but read-only
  • disableTabs=true - Show single dashboard without tabs
UI Customization
  • hideHeader=true - Hide the dashboard header
  • hideDownloadButton=true - Hide download functionality
  • theme=dark or theme=light - Set color theme
  • globalDashboardName=Custom Name - Override the global tab name

Complete IFrame Examples

<iframe
  src="https://hub.upsolve.ai/share/dashboard/your-dashboard-id?personalWorkspace=true&createChart=true&addChart=true&addFilter=true&editCharts=true&removeChart=true&aiCharts=true&jwt=your-jwt-token"
  width="100%"
  height="800px"
  frameborder="0">
</iframe>

Read-Only Workspace (No + Button)

<iframe
  src="https://hub.upsolve.ai/share/dashboard/your-dashboard-id?personalWorkspace=true&jwt=your-jwt-token"
  width="100%"
  height="600px"
  frameborder="0">
</iframe>

Single Dashboard (No Tabs)

<iframe
  src="https://hub.upsolve.ai/share/dashboard/your-dashboard-id?disableTabs=true&hideHeader=true&jwt=your-jwt-token"
  width="100%"
  height="500px"
  frameborder="0">
</iframe>

Dark Theme with Custom Global Name

<iframe
  src="https://hub.upsolve.ai/share/dashboard/your-dashboard-id?personalWorkspace=true&createChart=true&theme=dark&globalDashboardName=Company Analytics&jwt=your-jwt-token"
  width="100%"
  height="700px"
  frameborder="0">
</iframe>

⚠️ Important Requirements

For Dashboard Creation (+ Button)

The ”+” button to add new dashboards will only appear when:
  1. personalWorkspace=true is set, AND
  2. At least one of these permissions is enabled:
    • createChart=true
    • addChart=true
    • addFilter=true
If both conditions aren’t met, users will see a read-only workspace without the ability to create new dashboards.

Workspace vs Single Dashboard

  • With personalWorkspace=true: Shows tabbed interface with global + tenant dashboards
  • With disableTabs=true: Shows single dashboard without tabs
  • Default behavior: Shows only the specified dashboard without workspace features

Technical Notes

  • UpsolveWorkspace wraps internal dashboard rendering to provide tabs and workspace context
  • Workspaces contain multiple dashboards identified by workspaceId
  • Each dashboard has a tenant_id (null for global, specific ID for tenant dashboards)
  • The component automatically handles tab creation and switching
  • Global dashboards (tenant_id = null) are read-only for embedded users
  • Tenant dashboards are fully editable based on tenantEditingPermissions
  • Empty workspaces automatically disappear from the Hub interface
  • The + button creates new dashboards within the current workspace
  • Tab placement can be top (traditional tabs) or popover (dropdown)