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>&nbsp;&nbsp;[![Chat
 with 
Dosu](https://dosu.dev/dosu-chat-badge.svg)](https://app.dosu.dev/a28d3c7e-a9d3-459e-9fb6-3a6f9ff4f357/ask?utm_source=github)&
 nbsp;[![Join 
Discord](https://img.shields.io/badge/join-5865F2?logo=discord&logoColor=white&label=)](https://go.dosu.dev/discord-bot)&nbsp;[![Share
 on 
X](https://img.shields.io/badge/X-share-black)](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]

Reply via email to