Semaphor

Feature and Dashboard Chrome Visibility

Control which dashboard features and navigation controls are visible to your users

Overview

When embedding dashboards and the self-service experience, you can control which UI features and dashboard chrome are visible to your end users. Pass a config object in the token request to show or hide elements such as the SQL editor, AI assistant, Dashboard Hub navigation, sharing controls, or group management.

All features are enabled by default. You only need to pass config when you want to disable something.


Available Options

OptionDefaultDescription
showAdvancedModetrueControls the Advanced Mode toggle in the visual editor. When enabled, users can switch to the SQL editor to write and modify queries directly.
showInfoTabtrueControls the Info tab in the visual editor. The Info tab displays query execution details and diagnostics.
showDashboardAssistanttrueControls the AI-powered dashboard assistant panel. When enabled, users can interact with the assistant to generate charts and get insights.
showQueryDebugToolstrueControls the query debug tools in the Info tab. When enabled, users can inspect query request/response payloads, card configuration, data source, columns, and dashboard filters for troubleshooting.
showDashboardHubtrueControls the Dashboard Hub home button. Set it to false when an embedded user should remain within the dashboard selected by your application.
showDashboardSharingtrueControls the dashboard Share button. Existing dashboard sharing permissions still apply when this option is visible.
showGroupManagementtrueControls the Manage Groups entry under More options. Existing organization and tenant-role permissions still apply when this option is visible.

Visibility is not authorization

These settings only remove entry points from the embedded interface. Setting an option to true does not grant a permission the user does not already have, and server-side authorization continues to protect sharing and group management APIs. Do not use UI visibility settings as a security boundary.


Setting Feature Visibility

Pass the config object in your token request body. This works for both dashboard tokens and project tokens.

Dashboard Token

const requestBody = {
  dashboardId: DASHBOARD_ID,
  dashboardSecret: DASHBOARD_SECRET,
  config: { 
    showAdvancedMode: false, 
    showDashboardAssistant: false, 
    showQueryDebugTools: false, 
  }, 
};

const response = await fetch(TOKEN_URL, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify(requestBody),
});

Project Token

const requestBody = {
  type: 'project',
  projectId: PROJECT_ID,
  projectSecret: PROJECT_SECRET,
  endUserId: 'user_123',
  config: { 
    showAdvancedMode: false, 
    showInfoTab: false, 
    showDashboardHub: false, 
    showDashboardSharing: false, 
    showGroupManagement: false, 
  }, 
};

const response = await fetch(TOKEN_URL, {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify(requestBody),
});

Security Note

The token generation function must be run on the server side. Do not expose DASHBOARD_SECRET or PROJECT_SECRET in client-side code in production.


Default Behavior

All Features Enabled by Default

You only need to pass config when you want to explicitly disable a feature. Setting a flag to false hides it; omitting it or setting it to true keeps it visible.

Keep Users Within an Application-Selected Dashboard

For a focused embedded experience, issue a project or dashboard token with the three dashboard chrome settings disabled:

const tokenRequest = {
  type: 'project',
  projectId: PROJECT_ID,
  projectSecret: PROJECT_SECRET,
  endUserId: 'user_123',
  targetDashboardId: DASHBOARD_ID,
  config: {
    showDashboardHub: false,
    showDashboardSharing: false,
    showGroupManagement: false,
  },
};

This hides the Dashboard Hub button, Share button, and Manage Groups menu item for that token. Other More options actions, such as Export and Calendar Preferences, remain available according to their own feature and permission rules.


On this page