GitHub user dosubot[bot] added a comment to the discussion: assets import
<!-- Answer --> To onboard a new tenant with their own database, datasets, charts, and dashboards—without disturbing existing Superset resources—you'll need to prepare a unique asset bundle for each tenant. Superset asset import is UUID-based: if a UUID in your bundle matches an existing asset, it will be overwritten (if overwrite=true) or skipped (if overwrite=false). To avoid conflicts, generate new UUIDs for all assets (database, datasets, charts, dashboards) for each tenant and update all references accordingly. There’s no built-in templating or parameterization for changing just the database name; you must update the database connection info and all UUIDs outside Superset before import [[source]](https://github.com/apache/superset/discussions/29899) [[source]](https://github.com/apache/superset/issues/33802). Recommended workflow: export your template bundle, script the replacement of the database name and all UUIDs, update all references (datasets to database, charts to datasets, dashboards to charts), then import the bundle with overwrite set to false. This ensures new, isolated resources for each tenant and leaves existing ones untouched [[source]](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/commands/importers/v1/__init__.py). Some teams automate this with scripts or use third-party tools (like the [superset-client Ruby gem](https://github.com/rdytech/superset-client)) to duplicate dashboards and update references for multi-tenant setups [[source]](https://github.com/apache/superset/discussions/29899). Checklist for each new tenant: 1. Copy your template asset bundle. 2. Change the database name in the database asset. 3. Generate new UUIDs for all assets and update all references. 4. Zip the bundle with the correct structure and metadata.yaml. 5. Import via `/api/v1/assets/import/` with overwrite=false. This approach guarantees each tenant gets their own set of resources, and existing Superset assets remain unaffected [[source]](https://github.com/apache/superset/issues/33802) [[source]](https://github.com/apache/superset/blob/829e4d92d91ceae4b43b1ed3b063ffe45377799c/superset/commands/importers/v1/utils.py). <!-- Dosu Comment Footer --> *To reply, just mention [@dosu](https://go.dosu.dev/dosubot).* --- <sup>How did I do? [Good](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=great_response) | [Irrelevant](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=irrelevant_answer) | [Incorrect](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=incorrect_sources) | [Verbose](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=too_verbose) | [Hallucination](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=hallucination) | [Report 🐛](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=bug_report) | [Other](https://app.dosu.dev/response-feedback/71f080d9-42ed-47fe-94ae-1ab4cf84137c?feedback_type=other)</sup> [](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)& nbsp;[](https://go.dosu.dev/discord-bot) [](https://twitter.com/intent/tweet?text=%40dosu_ai%20helped%20me%20solve%20this%20issue!&url=https%3A//github.com/apache/superset/discussions/34573) GitHub link: https://github.com/apache/superset/discussions/34573#discussioncomment-14041760 ---- This is an automatically sent email for [email protected]. To unsubscribe, please send an email to: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
