How do you show Superset dashboards inside your product without giving every customer a Superset login?
The short answer is that you do not hand customers a Superset account. You embed dashboards through a separate access path: your application authenticates its own user, asks for a dashboard view on that user's behalf, and displays the result inside your interface. The Superset user interface is never the entry point for an embedded viewer. That separation is the first design decision, and it changes who owns access control. Your application decides who may see which dashboard, and Superset must then enforce what that viewer can see inside the data. Plan the work across three layers at once: the host application, Superset configuration, and the data layer that holds the rows each customer is allowed to read.
The hard part is not drawing the dashboard on the page. It is making sure one customer's view never returns another customer's data. Each viewer's data scope has to be enforced at query time, so the question to answer early is how each customer is identified in the request and how that identity is mapped to row-level restrictions. Confirm with your team which tenant key exists in your source tables, whether every dataset carries it, and what happens when a query touches a table that lacks it. A dashboard that looks correct in a demo can still leak data if one chart on one tab uses an unfiltered dataset. Test each dashboard against at least two tenant accounts before go-live.
Token lifecycle is the second source of difficulty. Embedded sessions depend on short-lived credentials issued by your back end, so you need decisions on how long a view stays valid, how a revoked customer is cut off, and how refresh works when a user keeps a page open for hours. Ask what your host application will do when a token expires mid-session, who owns the signing material, and how you will log which customer requested which view. Confirm the exact token behavior and the SDK interfaces against the Superset version you plan to run, because these details change between releases and should be checked, not assumed.
Embedded viewers are also not Superset users in the usual sense. They do not appear in the Superset user list, do not log in to the Superset interface, and should not be granted roles that let them browse datasets, open SQL Lab, or edit charts. Treat them as a distinct identity type in your access design, and make sure your administrators understand that a guest view is governed by the rules you configured, not by the internal role model used by analysts. Review which datasets, charts and databases are reachable from an embedded dashboard, because a permissive setting intended for internal users can expose more than the customer should see.
For planning, list the dashboards to embed, the customers and tenant keys that must be isolated, the data sources behind each dataset, and the expected number of concurrent viewers. Then ask your implementation partner or internal team to document the token flow, the row-level rules per dataset, the test accounts used to prove isolation, and the monitoring that will show failed or unusual embedded requests. Clarify which of these items are covered by the fixed-scope deliverables and which become ongoing operations, since isolation testing must be repeated whenever dashboards, datasets or Superset versions change.
Which embedding pattern fits your customers and your team
This table compares the three ways to show Superset dashboards outside your analytics team. Each column is one pattern and each row is a decision point you need to settle. The main takeaway is that per-customer isolation depends entirely on the pattern you choose, so test it before you commit.
| Decision point | Guest tokens from your backend | Internal users through Superset SSO | Public or unauthenticated dashboard |
|---|---|---|---|
| When it fits | Customer-facing analytics inside your product, where end users never hold a Superset account. | Employees who already sign in through your identity provider and need exploration access. | Non-sensitive content that anyone with the link may view, such as published public statistics. |
| Who issues and manages credentials | Your backend requests a short-lived guest token for each user session and holds the service credentials. | Your identity provider issues sign-ins, and Superset roles follow the group mappings you configure. | No individual credentials. Access depends only on the public link and what the dashboard exposes. |
| How per-customer scope is enforced | Row-level security rules and token claims that bind each session to one tenant's data, verified by tests. | Roles, dataset permissions and row-level security mapped from groups. Plan this for internal staff only. | No per-customer scope. Every viewer sees the same data, so the dashboard must hold only shareable content. |
| Ongoing operational cost | Upkeep of the token service, row-level security rules for each new customer, and monitoring of token failures. | Group mapping upkeep as teams change, plus periodic access reviews in your identity provider. | Lowest integration effort, but regular review to confirm no sensitive data has been added to the dashboard. |
| Items to confirm in the docs | Token lifetime, supported claims and embedding options in the Superset embedding documentation for your version. | Supported OAuth2, OIDC and LDAP options and group mapping behavior for your Superset version. | How public access is enabled and which dashboards it exposes in the documentation for your version. |
How to build an embedded dashboard step by step
This sequence takes a Superset instance from a confirmed version to a host application that shows each customer their own dashboards, filtered to their own rows. Each step ends with a check you can run, so a fault appears at the step that introduced it.
Confirm the version and deployment model
Your team or the implementation partner records the Superset version, the deployment model (virtual machines, containers or Kubernetes) and the metadata database engine and version it supports, using the release notes and the configuration documentation. Pin the version so that a later upgrade is a planned change with its own staging test. Check: a written record that names the version, the hosting model and the database engine, approved by the owner of the application that will host the embedded dashboards.
Prepare the metadata database and dependencies
Provision PostgreSQL or MySQL as the metadata database, using a version the configuration documentation lists, and do not use the SQLite default or the Docker Compose PostgreSQL container for production. Generate a SECRET_KEY, which Superset requires before it starts, and store it in your secrets manager. If embedded features depend on async queries, alerts or thumbnails, add the caching layer and Celery workers, as the architecture documentation describes. Check: Superset starts, completes its database migration, and an administrator can log in.
Enable embedding for target dashboards
Turn on the embedding feature in the configuration, confirm each setting it requires in the configuration documentation for your version, and mark only the dashboards that will be embedded as embeddable. Keep this list short, because each embeddable dashboard is a surface you must test with row-level security. Check: an administrator can see the test dashboard marked as embeddable, and it renders on its own in a standalone test page.
Define datasets and the embedded access role
Create datasets on the analytics database connections using read-only credentials, then build the charts and dashboards on them. Create a dedicated role for embedded access that can read only the datasets and dashboards in scope. If you use SSO, map identity provider groups to that role with AUTH_ROLES_MAPPING. Check: a user holding only this role opens the test dashboard and cannot open SQL Lab or any dashboard outside its scope.
Build the guest token endpoint
Write a server-side endpoint in the host application that verifies the signed-in customer's identity, then requests a guest token from Superset for the permitted dashboard and the customer's tenant value. The service credentials used for this request must stay on the server. Confirm the token lifetime options and the claims a guest token can carry in the documentation for your version. Check: the endpoint returns a token for the test tenant and refuses a request for a dashboard the caller is not entitled to see.
Integrate the embedded SDK in the host application
Add the embedded SDK to the front end, pass it the guest token from your endpoint, and mount the dashboard in the host page. Handle token expiry by requesting a fresh token from the endpoint, and show a clear message when the request fails. Check: the test dashboard renders inside the host application for the test tenant, and the page source contains no Superset service credentials.
Apply row-level security rules per customer
Define row-level security rules on each dataset so that the filter uses the tenant value your endpoint sends in the guest token. Confirm in the documentation for your version how that value is carried and matched. Test each rule against the source database. Check: a query returns only the rows for one test tenant, the same view for a second tenant matches the source table filtered for that tenant, and a tenant without a matching rule sees an empty result.
How row-level security per customer works and where it fails
Per-customer isolation is the highest-risk part of embedding Superset dashboards, so it must be enforced in Superset's data access layer. The host application's UI can hide rows, but a viewer who reaches a query path outside that UI can still read another customer's data. Each guest token or embedded session needs a scope that Superset evaluates when it runs a query, and that scope must filter the rows the viewer can see. Every dataset that feeds a shared dashboard must be covered by a rule, because one uncovered dataset is enough to expose data across tenants.
Row-level security rules in Superset attach a filter condition to a dataset and apply it to specific roles or to the identity carried by an embedded session. Your design work is to decide how the tenant identifier travels from your application into that scope, whether each customer maps to a value in a tenant column, and what happens when the identifier is missing or malformed. The safe default is to return no rows when the scope is absent. Before you design the scope model, confirm the exact row-level security and guest token claim mechanics in the embedding documentation for your Superset version, since these details differ between releases and determine what you can express.
Four failure modes account for most cross-tenant exposure. The first is a dataset missing a filter: a chart on a second dataset in the same dashboard shows all rows because no rule was attached to it. The second is a cached result shared across tenants, where a query result is reused for a different viewer because the cache key does not include the scope. The third is a chart that bypasses a filter, for example a virtual dataset written in SQL that joins a table without the predicate, or a chart built on a dataset that was never added to the dashboard's rules. The fourth is a role with broader access than intended, such as an embedded role that also inherits access to other datasets or to SQL Lab.
Plan a test matrix before go-live. Create at least two test tenants with distinct, synthetic data, and check every chart on every embedded dashboard from each tenant's session. Compare results against a direct query on the source with the filter applied, and repeat the check after cache expiry and after any dataset or role change. Review the roles assigned to embedded sessions and remove permissions they do not need. Ask any implementation partner to include this test matrix, the cache review and the role audit in the written scope, because they take time that is easy to underestimate and must be repeated whenever dashboards change.
What drives the effort and cost of embedding Superset
This table compares the factors that change the size of an embedded Superset build and shows how each one raises effort and what keeps it down. Read each row against your own tenant model and host application, then use the list of cost components to ask for a written scope. The main takeaway is that tenancy design and row-level security depth usually matter more than dashboard count.
| Driver | How it raises effort | What keeps it down |
|---|---|---|
| Customers and tenant scopes | Each tenant needs its own guest token claims, RLS clauses and test cases, and every new tenant type adds a branch to the token service. | One tenancy key carried in every dataset and a single guest token template that the token service fills per request. |
| Dashboards and datasets | Each dashboard is checked for filters, native embedding settings and chart behavior, and each dataset needs metrics and columns agreed with the business. | Standard datasets reused across dashboards, and shared native filters that the embedding layer sets from token claims. |
| Underlying data sources | Every database connection needs its own credentials, network path, SQL dialect checks and testing for timeouts and permissions. | Consolidating analytics into fewer warehouses or schemas, and agreeing which sources are in scope for the first release. |
| Depth of row-level security rules | Rules that depend on several attributes, joins or hierarchies need more SQL review, negative tests and assessor-facing evidence. | Flat tenant or region rules applied as one clause per dataset, with the same rule reused across charts. |
| Host application integration | The embedding SDK must be wired into the host frontend framework, the host auth handoff must issue short-lived guest tokens, and theming must match the host design system. | A single embed component, one token endpoint owned by the host backend, and a limited set of theme settings agreed up front. |
| Environments and staging | Dev, test, staging and production each need Superset, metadata database, cache, workers, data connections and test tenants, and upgrade rehearsals run in staging. | Infrastructure as code for all environments, sanitized sample data for lower environments, and one shared test tenant set. |
| Compliance evidence requirements | Assessors may ask for access reviews of guest token issuance, RLS test results, change records for dashboard and dataset edits, and logging of embedded access. | Evidence collected from the start, such as automated RLS tests, logged token issuance and versioned dataset definitions. DeployOpen prepares evidence; auditors and certification bodies assess it. |
| Cost components | Build work covers the SDK, token service, RLS and dashboards. Environment setup, testing and upgrades recur as Superset releases change. | In a written scope, ask for each component as a separate line with its deliverables, one-time or recurring label and assumptions about tenant count and data sources. |
How embedding changes on single node, HA and Kubernetes deployments
On a single node, the host application, the Superset web process, the metadata database and any cache or workers usually sit on one host or one private network segment. That makes the trust configuration the easiest to reason about. The host application's origin must be allowed in Superset's embedded settings, and the guest token is issued by the host's backend, which calls Superset with credentials it holds. With one web process, session state and cached results live in one place. Async queries, alerts and dashboard thumbnails still depend on the caching layer and worker components described in the architecture documentation.
- Allowed origins: Register the exact host application origin for each embedded dashboard, including scheme and port, and confirm how the setting is written in the version you run.
- Token issuance: Issue guest tokens from your backend only, and keep any signing configuration out of browser code and front-end bundles.
- Cache location: Confirm whether the cache is local or Redis. A local cache is simple to run, but its contents are only visible to that one process.
- Workers: If you enable alerts, reports or async queries, plan a Celery worker and beat process on the same host or a second one.
- Upgrade rehearsal: A single node is a practical place to rehearse the backup, superset db upgrade and superset init steps in staging.
Before you build, confirm the origin list, the token issuance path and the cache location in your own environment, then test an embed from the exact domain your users will load.
With several stateless web nodes behind a load balancer, the public hostname becomes the origin your host application sees, and every web node has to present the same external address. Guest tokens are still issued by the host's backend, but the token path now crosses the load balancer to whichever web node receives the request. Sessions and cached results cannot stay local to one node if users may land on any of them. The shared cache, the metadata database and the worker layer therefore carry more of the embed behavior. This topic does not establish availability targets, which depend on how each shared component is built and tested.
- Single external URL: Set allowed origins to the public hostname the load balancer presents, and confirm that every web node generates links and redirects with that same external URL.
- Identical configuration: Confirm that every web node runs the same SECRET_KEY, token settings and configuration files, so a token issued by one node is accepted by another.
- Shared session and cache backends: Identify which session and cache backends are shared across nodes. Per-node local caches produce different results for the same dashboard.
- Load balancer behavior: Ask whether your embed flow needs sticky sessions, then test the full embed path through the balancer rather than against a single node.
- Recovery testing: Test what happens when one web node, the cache or the database is unavailable, and record the behavior your users see.
Before you build, document the external URL, the shared backends and the load balancer settings, and confirm each one with the vendor documentation for the version you deploy.
On Kubernetes, the install path decides where origins, secrets and workers are configured. The Superset 6.1.0 documentation describes installs with the official Helm chart. The current development documentation marks that chart as deprecated and points new deployments to the Apache Superset Kubernetes Operator. The operator is built with the Go Operator SDK, is in alpha, and exposes a v1alpha1 API whose custom resource schemas may change between releases. Teams should confirm the path with current upstream documentation and the operator's status before they write any embed code.
- Chart or operator: Compare the deprecated Helm chart with the alpha operator against your support needs, and document the reason for the choice.
- Ingress and origins: Set allowed origins to the ingress hostname and TLS endpoint, and confirm how your ingress controller passes the headers Superset uses.
- Configuration in version control: Keep Helm values or custom resources in version control, since alpha schemas can change between releases.
- Cache and worker deployment: Confirm how the chosen path deploys the cache and Celery workers, and whether it supports scaling them independently.
- Upgrade staging: Run each upgrade in a staging cluster first, because API or schema changes can require manual resource edits.
Before you build, confirm which deployment path your team will own for the next several releases, then check the origin, secret and worker settings against that path.
How to protect guest tokens, origins and data source credentials
An embedded dashboard is only as safe as the path that issues access to it. The controls below cover the backend that mints guest tokens, the origins allowed to host the iframe, the secrets Superset depends on, and the database accounts behind each dataset.
Authenticate and scope tokens server side
Your backend, not the browser, should decide which dashboard and which tenant filter a guest token carries. Authenticate the customer on your own server, then build the token request from your session data rather than from parameters the page sends. Review the claim format for the resources and RLS rules in the current Superset embedding documentation, because a token scoped too broadly exposes every tenant behind the same dashboard.
Keep guest token lifetimes short
Guest tokens are bearer credentials for the embedded view, so a leaked token should expire quickly. Set the lifetime as short as the embedding flow allows and have your application request a fresh token when the viewer's session continues. Confirm the supported expiry settings and refresh behavior for your Superset version before you set your own limits.
Restrict allowed embedding origins
Superset only renders embedded dashboards for origins you list as allowed, so each entry should be a host domain you control, such as your production application and a named staging host. Avoid wildcard or broad parent domains that would let any site frame the dashboard. Check the origin setting names and format in the current documentation and test that an unlisted host is refused.
Set and rotate the SECRET_KEY
Superset refuses to start without a user-specified SECRET_KEY, and that key signs session data across the deployment. Generate a long random value, store it in your secrets manager, and never reuse the sample value from the documentation. When you rotate it, place the current key in PREVIOUS_SECRET_KEY so existing sessions remain valid during the change, then remove the old value once rotation is complete.
Use read-only, per-tenant data source accounts
Superset connects to your analytics databases with credentials you configure, and those credentials define what any dashboard can read. Create a read-only database role for the embedded datasets, and where the tenant model requires it, separate accounts or schemas per tenant so row-level security is not the only barrier. Store the connection secrets outside the dataset definitions and confirm that the account cannot write or modify schemas.
Terminate HTTPS in front of Superset and keep SQL Lab private
Place a reverse proxy or load balancer with valid TLS in front of Superset so guest tokens and session cookies never travel in clear text. Keep SQL Lab and the wider Superset interface off the embedded path, so viewers who receive a guest token cannot reach ad hoc query editing. Confirm the proxy headers and cookie settings your Superset version expects before go-live.
How to test that embedded dashboards isolate customers and fail safely
The most important check for embedded Superset is whether a guest token issued for one customer can ever reach another customer's data. Treat isolation as a claim to be disproven, not assumed from configuration. Build a test plan that tries to break the boundary in the ways an attacker or a careless integration would, then run it against every change that touches the embedding service, the row-level security rules, or the Superset version. The tests below are the minimum set we would expect a team to own before a customer-facing dashboard goes live.
Start with cross-tenant tests. Create two test tenants with distinct row-level security clauses on the same dataset, then request a guest token scoped to tenant A and use it against tenant B's embedded dashboard ID and its underlying chart data endpoints. The expected result is zero rows or an authorization error, never a partial result. Repeat the test with tenant A's token against a dataset that tenant B owns directly, because embedding a dashboard does not automatically restrict the datasets its charts query. Also test expired tokens and tokens whose payload has been edited or re-signed with a wrong key. Each should be refused. Confirm the token lifetime and signing key handling with your own embedding service configuration, since those settings live outside Superset's default install.
Next, test origin and filter controls. Load the embedded dashboard from a page on a domain that is not on your allowed list and confirm the embed is refused. Then test the chart-level controls a user can reach: native filters, drill-to-detail, cross-filtering, and any exposed sort or column selectors. For each, try to widen a filter, remove a filter that the token applied, or reference a column the row-level clause does not cover. Record which controls can alter the query and whether the rule still applies. Finally, check caching. Run the same chart for two tenants in sequence and confirm that the second tenant receives its own rows, not the cached result of the first. Test this with the caching layer enabled, because results can be shared under a key that does not include the tenant identity.
Failure behavior needs the same rigor as the success path. When a token is refused, the dashboard should show a clear error or an empty state, and it must not fall back to an unfiltered query or show another tenant's data during a retry. Test this by forcing each failure: expired token, missing filter claim, database timeout, and an unreachable cache. The backend should log every refused request with enough context to investigate, including the request time, the dashboard identifier, the origin, and the reason for refusal, without writing the token itself to logs. Confirm that these log entries reach your central logging system and that someone is alerted when refusals rise sharply. Ask your implementation partner to show you where each of these events appears in your environment.
Turn the plan into a repeatable test suite and run it in staging before every Superset upgrade. Superset release notes and the upgrade guide ask teams to back up the metadata database, run the migration commands, and check UPDATING.md for breaking changes before promoting a new version. Add the isolation suite to that sequence so that a version change cannot silently weaken row-level security or caching behavior. Store the tests as code, version them with the embedding service, and keep the results as evidence for your own security review. Independent auditors may later ask for this evidence, but DeployOpen prepares the tests and records only; it does not issue audit conclusions.
What to monitor, back up, upgrade and document after launch
After go-live, embedded dashboards depend on a few components that need steady attention: token issuance, the metadata database, and the upgrade path. The cards below cover what to watch, what to protect, and what to re-check each time Superset changes. Treat them as recurring tasks with named owners, not a one-time handover checklist.
Monitor token and embed health
Track token issuance errors in your application backend, failed embed loads in the browser, and query latency broken down by tenant. Per-tenant views show whether one customer's dataset or filter is slowing everyone else. Set alerts on sustained error rates instead of individual events. Confirm that your logs record the tenant identifier but never the guest token itself, and assign an owner who receives each alert.
Back up the metadata database
The metadata database holds dashboard, chart, dataset and permission definitions, so it is the component you must be able to restore. Schedule backups with the retention period your operations team agrees on, and use point-in-time recovery if your managed database offers it. Keep the SECRET_KEY in a secrets manager alongside the backup procedure, because a restore is only useful if the matching key is also recoverable. Test restores in a separate environment on a fixed schedule.
Upgrade through a tested sequence
Follow the upgrade steps in the Superset documentation: back up the metadata database, run superset db upgrade, then run superset init, testing each step in staging before production. Read UPDATING.md for breaking changes between your current and target versions, since configuration and plugin changes can block a release. Superset 6.0.0 and 6.1.0 are published versions, and pre-releases also exist, so let a tested plan set the timing of each upgrade.
Re-run isolation tests after upgrades
Row-level security and tenant scoping are controls that can shift during an upgrade, so run the isolation test suite after every upgrade as a release gate. Tests should request embedded dashboards with a token for tenant A and confirm that its rows and charts never appear for tenant B, including cached thumbnails and async query results. Include a request from an origin missing from the allowlist. Record the results alongside the Superset version in your change log.
Document scope rules and token contract
Keep a current document with three parts: the tenant scope rules that define which datasets, filters and row-level security clauses apply to each customer, the token claim contract listing each claim your backend sends and what Superset expects, and the origin allowlist of domains permitted to embed dashboards. Assign an owner for each part and review the document at every upgrade and every tenant onboarding. Auditors and new engineers both rely on it.
Questions teams ask before embedding Superset
Is Apache Superset free to use for embedded dashboards?
Yes, the software itself is free to use. Apache Superset is released under the Apache License 2.0 (Apache-2.0), and the project has no paid edition. Your costs come from the work around it. You pay for infrastructure to host the web application, the metadata database, and, where you use them, the caching layer and Celery workers. You also pay for people to build, secure and maintain the integration, and for any outside services you choose. When a vendor offers an embedded Superset package, ask them to show license fees separately from infrastructure, labor and support, so you can see what you are actually buying. Confirm the license terms of any extensions or plugins you add, since those are separate from Superset itself.
How much does it cost to embed Superset dashboards in an application?
No price is stated here because the cost follows from the written scope, and DeployOpen does not publish a price list. The main drivers are the number of embedded dashboards and charts, how many customer tenants need row-level security, how identity and token issuance connect to your application, the hosting you choose, and how much testing you require. One-time costs include design, build and a test tenant. Recurring costs include infrastructure, Superset version upgrades and monitoring. Ask for a fixed-scope quote that lists each dashboard, the tenant model, the data sources, the identity integration, the environments, and the upgrade and support terms, with deliverables and acceptance checks named for each.
How long does an embedded Superset project take to deliver?
The duration depends on the scope you agree in writing, and no timeline is stated here. The biggest factors are the number of embedded dashboards, whether each customer needs its own row-level security rules, how complex your data model is, whether identity and guest token issuance already exist in your application, and how many environments must be provisioned. Delays often come from waiting for access to data sources and identity systems, so start those requests early. Ask the vendor for a phased plan with milestones, the dependencies they expect from your team, and the date a staging environment and test tenant will be ready for review.
What does our team need to provide for embedding Superset?
Plan for four inputs. First, identity: a clear decision on how your application authenticates end users and which claims identify each customer and role. Second, data access: read-only database accounts, approved network paths and a named owner for each data source. Third, a backend developer who can issue guest tokens from your server and keep signing keys out of the browser. Fourth, a test tenant: a non-production customer account with representative data, so row-level security can be checked before release. You also need a product owner who signs off on dashboards and an operations contact who handles upgrades. Confirm each item against your own environment before work starts.
Can an internal team embed Superset dashboards without a partner?
Yes, a capable internal team can embed Superset, provided it has the skills and time to own the work after launch. You need engineers who can operate the Superset application and its metadata database, a backend developer comfortable with token-based embedding and tenant isolation, someone who can read security guidance and test access controls, and a front-end developer for the host application. The main risks are untested row-level security, upgrades that slip, and a single person holding all the knowledge. A partner is most useful when the team lacks one of these skills, needs a fixed delivery date, or wants an independent security test before go-live. Compare both options against the same written scope.
Does embedding Superset dashboards work with Superset SSO?
Embedding and SSO solve different problems, so design them together but confirm how each is configured. SSO controls how staff sign in to the Superset interface. Superset supports OAuth2 providers such as Google and Azure, custom OAuth2 servers using the code flow, and LDAP, and it maps groups to roles with AUTH_ROLES_MAPPING. Embedded dashboards are typically shown to your application's users through guest tokens issued by your backend, so those viewers should not need their own Superset accounts. Confirm for your Superset version how guest tokens, the embedded SDK and login settings interact. Then test that an administrator login and an embedded viewer each receive only the access you intended.
Which Superset components must run for embedded dashboards?
The core is the Flask and React web application plus a metadata database. Superset is tested with PostgreSQL and MySQL for this role, and the SQLite default and the Docker Compose PostgreSQL container are not recommended for production. The caching layer is optional for basic use. However, the architecture documentation says alerts and reports, async queries and dashboard thumbnails require the caching layer and worker components, and most installations use Redis and Celery for them. Decide early whether your embedded views depend on async queries or thumbnails, because that determines whether you run workers. Check supported metadata database versions in the configuration documentation before choosing your platform versions.
What operational limits should we plan for after embedding Superset?
Plan for upgrades, secrets and deployment choices. Superset requires a user-specified SECRET_KEY to start and supports rotation with PREVIOUS_SECRET_KEY, so include key handling in your runbook. Upgrades should follow the documented sequence: back up the metadata database, run superset db upgrade and superset init, test in staging first, and check UPDATING.md for breaking changes. On Kubernetes, current development documentation marks the official Helm chart as deprecated and points new deployments to the Apache Superset Kubernetes Operator, which is in alpha with a v1alpha1 API that may change between releases. Confirm the deployment method and version-specific steps in the documentation before you commit, and ask for them to be listed in the quote.
How DeployOpen scopes, builds and hands over embedded Superset work
DeployOpen scopes embedded Superset work as a written, fixed-scope engagement inside your own infrastructure. Each engagement starts from the dashboards, datasets and customer boundaries your product needs, so the written scope matches how your application will actually use them. We build the embedding, guest token flow and per-customer row-level security, then test them in staging before handover. Ongoing support is available as a retainer.
How we scope
- Which dashboards and charts appear in each embedded view, and which data sources and datasets they read from
- How your application issues guest tokens, including the customer claims and dashboard IDs each token carries
- Row-level security rules per customer, the tables they filter, and the test accounts used to prove isolation
How we build
- Embedding the Superset SDK in your application's front end and wiring it to your token service
- Row-level security rules tested with separate customer identities, checking that one customer cannot see another's data
- Metadata database, cache and worker settings configured for the expected embedded traffic, with secrets kept out of application code
How we hand over
- Written configuration record covering the embedding flow, token claims, RLS rules and environment settings
- Runbook for rotating SECRET_KEY, issuing tokens, and checking dashboards after a Superset version change
- Test results for tenant isolation, plus a list of operational limits your team must plan around
How we support
- Ongoing support, upgrades and continuous testing are available as retainers after go-live
- Upgrades follow the project's breaking-change notes, a metadata database backup, and a staging test first
- Token service and RLS rules retested after each Superset upgrade to confirm customer isolation still holds

