QueryPanel's primary product is its headful React SDK: a Notion-like dashboard workspace with an AI assistant for tenant customization. The headless Node SDK is for custom UI and zero-trust execution, where credentials and query results stay on your servers.
Choose your path
Pick the path that matches how you ship analytics. You can switch later; both paths share the same tenant JWT and isolation model.
- Embed a customer-facing workspace: Start with React embed, then mint a JWT and read tenant isolation.
- Own the UI, keep data on your servers: Start with ask() and the Node SDK reference.
- Need API surface details: Jump to React SDK or Node SDK reference.
Get started
Get started
React embed
QuerypanelEmbedded is the headful React SDK: one component, a server-minted JWT, and a Notion-like workspace inside your product routes.
Get started
Mint a JWT
createJwt() signs an RS256 token with organizationId and tenantId. The browser never receives your workspace private key.
Get started
Tenant isolation
Tenant identity comes from your authenticated backend. Attach the isolation column, pass tenantId on ask() and JWTs, and QueryPanel scopes generated SQL.
Get started
ask()
The Node SDK’s ask() call is the headless path: your API sends a question and tenantId, QueryPanel returns SQL, params, rows, and a chart spec.
Reference
FAQ
Where should I start in the docs?
Product teams embedding dashboards start with React embed, then mint a JWT and tenant isolation. Engineering teams owning a custom UI start with ask() and the Node SDK reference.
What is the difference between the React SDK and the Node SDK?
The React SDK is the primary product: a Notion-like embedded workspace with an AI assistant. The Node SDK is for server-side JWT minting, schema sync, and headless ask() when credentials and results must stay on your servers.
Do I need both SDKs?
Most headful embeds need both: Node on the server to mint tenant JWTs, React in the browser to render QuerypanelEmbedded. Headless-only teams can use Node alone and ship their own UI.