This is an automated email from the ASF dual-hosted git repository.

rusackas pushed a commit to branch pr-38174
in repository https://gitbox.apache.org/repos/asf/superset.git

commit 909675c2a993cfa6ce3a58d3ded3f396556f2a79
Author: Evan Rusackas <[email protected]>
AuthorDate: Sun Feb 22 21:25:33 2026 -0800

    fix(db_engine_specs): validate external engine specs before loading
    
    Add validation for external DB engine specs loaded via entry points
    to ensure they are proper subclasses of BaseEngineSpec. This prevents
    errors when third-party packages (like pyodps) provide outdated or
    incompatible engine specs that don't inherit from BaseEngineSpec.
    
    Co-Authored-By: Claude Opus 4.5 <[email protected]>
---
 superset/db_engine_specs/__init__.py | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/superset/db_engine_specs/__init__.py 
b/superset/db_engine_specs/__init__.py
index 40bb985f404..6c8ac54d3cd 100644
--- a/superset/db_engine_specs/__init__.py
+++ b/superset/db_engine_specs/__init__.py
@@ -81,6 +81,13 @@ def load_engine_specs() -> list[type[BaseEngineSpec]]:
         except Exception:  # pylint: disable=broad-except
             logger.warning("Unable to load Superset DB engine spec: %s", 
ep.name)
             continue
+        # Validate that the engine spec is a proper subclass of BaseEngineSpec
+        if not is_engine_spec(engine_spec):
+            logger.warning(
+                "Skipping invalid DB engine spec %s: not a valid 
BaseEngineSpec subclass",
+                ep.name,
+            )
+            continue
         engine_specs.append(engine_spec)
 
     return engine_specs

Reply via email to