Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion superset/charts/api.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
thumbnail_query_schema,
)
from superset.commands.exceptions import CommandInvalidError
from superset.commands.importers.v1.utils import remove_root
from superset.commands.importers.v1.utils import is_valid_config, remove_root
from superset.constants import MODEL_API_RW_METHOD_PERMISSION_MAP, RouteMethod
from superset.exceptions import SupersetSecurityException
from superset.extensions import event_logger
Expand Down Expand Up @@ -976,6 +976,7 @@ def import_(self) -> Response:
contents = {
remove_root(file_name): bundle.read(file_name).decode()
for file_name in bundle.namelist()
if is_valid_config(file_name)
}

passwords = (
Expand Down
14 changes: 14 additions & 0 deletions superset/commands/importers/v1/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,17 @@ def load_metadata(contents: Dict[str, str]) -> Dict[str, str]:
raise exc

return metadata


def is_valid_config(file_name: str) -> bool:
Comment thread
betodealmeida marked this conversation as resolved.
path = Path(file_name)

# ignore system files that might've been added to the bundle
if path.name.startswith(".") or path.name.startswith("_"):
return False

# ensure extension is YAML
if path.suffix.lower() not in {".yaml", ".yml"}:
return False

return True