These are the docs for the Metabase master branch. Some features documented here may not yet be available in the latest release. Check out the docs for the latest version, Metabase v0.51.
Embedded analytics SDK - CLI quickstart
⚠️ This feature is in beta. Feel free to play around with it, but be aware that things might change (and may not work as expected).
Embedded analytics SDK is only available on Pro and Enterprise plans (both self-hosted and on Metabase Cloud). You can, however, play around with the SDK on your local machine without a license by using API keys to authenticate your embeds.
We built a single command to spin up a Metabase and help you get an embedded dashboard in your app. This setup won’t work in production; it’s only intended for you to quickly try out the SDK on your local machine.
Prerequisites
- Docker
- Node.js 18.x LTS or higher.
- License (Optional - only if you want to try out multi-tenancy).
- Database (you can connect to your app’s database).
The quickstart command
Change into your React application and run:
npx @metabase/embedding-sdk-react@latest start
Script overview
The script will walk you through the setup. There are a fair number of pieces to put together, so here’s an overview of what the command does.
- Checks that you’re installing the SDK in a React application.
- Looks for, or installs, the Embedded analytics SDK.
- Spins up a Metabase on Docker. This takes a bit. To see the Docker container’s status, use the
docker ps
command. Or use the time to reflect on good choices you’ve made recently. - Asks you for an email address to create the first admin account in Metabase.
- Generates a new API Key. The script will build a mock Express server that will use this key to authenticate its requests to your Metabase.
- Prompts you to connect to a database. Pick your database’s engine. You’ll need the database’s host, port, username, and password (if Postgres, you can also use an auth provider).
- Connects to the database, and prompts you to select tables from your database to embed. Pick 1-3 tables. If you want to see multi-tenancy in action, pick a table with user IDs in it. Metabase will X-ray these tables to create a dashboard to embed.
- (Optional): If you have a Pro/EE license, the script can set up permissions. To get a license, sign up for a free trial of self-hosted Metabase Pro.
- (Optional): If you set up multi-tenancy, the script asks you for the column used to sandbox the table (e.g., a user ID column). Metabase will sandbox data based on the values in that column.
- Generates example React components files in “./components/metabase” in your React app (you may need to move these into your
src
directory). - Asks you where it (the script) should save the mock Express server (default:
./mock-server
). It’ll install the mock server’s dependencies withnpm install
. - Prompts you to start the mock server in another terminal session. Change into the mock server’s directory and run:
npm run start
Once the mock server is running, go back to the script’s terminal session and press
to continue. - Prompts you to add the following
import
in your client app:import { AnalyticsPage } from "././components/metabase";
Make sure the
from
path is valid (depending on your app, you may need to move the components to a new directory). - Prompts you to add the
<AnalyticsPage />
component to your page. - Start your app, and view the page where you added the
<AnalyticsPage />
component, and you should see an embedded dashboard.
Your Metabase should be running at http://localhost:3366
. You can find your login credentials at METABASE_LOGIN.json
.
Further reading
Read docs for other versions of Metabase.