This is an automated email from the ASF dual-hosted git repository. beto pushed a commit to branch semantic-layer-stack in repository https://gitbox.apache.org/repos/asf/superset.git
commit 3596ef304e9e0d80982fd9814f6d3061eac6dc13 Author: Beto Dealmeida <[email protected]> AuthorDate: Tue Jan 27 15:18:52 2026 -0500 More extensions --- docker-compose-light.yml | 1 + docker/pythonpath_dev/superset_config.py | 5 +++++ extensions/requirements-snowflake.txt | 5 +++++ .../superset-snowflake-semantic-layer-1.0.0.supx | Bin 0 -> 14159 bytes superset-snowflake-semantic-layer/README.md | 17 +++++++++++++---- 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/docker-compose-light.yml b/docker-compose-light.yml index b06be681af3..d5691e930e3 100644 --- a/docker-compose-light.yml +++ b/docker-compose-light.yml @@ -67,6 +67,7 @@ x-superset-volumes: &superset-volumes - ./superset-frontend:/app/superset-frontend - superset_home_light:/app/superset_home - ./tests:/app/tests + - ./extensions:/app/extensions x-common-build: &common-build context: . target: ${SUPERSET_BUILD_TARGET:-dev} # can use `dev` (default) or `lean` diff --git a/docker/pythonpath_dev/superset_config.py b/docker/pythonpath_dev/superset_config.py index d88d9899c27..ba1477fb9c9 100644 --- a/docker/pythonpath_dev/superset_config.py +++ b/docker/pythonpath_dev/superset_config.py @@ -105,6 +105,11 @@ class CeleryConfig: CELERY_CONFIG = CeleryConfig +# Extensions configuration +# For local development, point to the extensions directory +# Note: If running in Docker, this path needs to be accessible from inside the container +EXTENSIONS_PATH = os.getenv("EXTENSIONS_PATH", "/app/extensions") + FEATURE_FLAGS = {"ALERT_REPORTS": True} ALERT_REPORTS_NOTIFICATION_DRY_RUN = True WEBDRIVER_BASEURL = f"http://superset_app{os.environ.get('SUPERSET_APP_ROOT', '/')}/" # When using docker compose baseurl should be http://superset_nginx{ENV{BASEPATH}}/ # noqa: E501 diff --git a/extensions/requirements-snowflake.txt b/extensions/requirements-snowflake.txt new file mode 100644 index 00000000000..adc12687b47 --- /dev/null +++ b/extensions/requirements-snowflake.txt @@ -0,0 +1,5 @@ +# Requirements for the Snowflake Semantic Layer extension +# Install with: pip install -r extensions/requirements-snowflake.txt + +snowflake-connector-python>=3.0.0 +snowflake-sqlalchemy>=1.5.0 diff --git a/extensions/superset-snowflake-semantic-layer-1.0.0.supx b/extensions/superset-snowflake-semantic-layer-1.0.0.supx new file mode 100644 index 00000000000..e256ac61ebf Binary files /dev/null and b/extensions/superset-snowflake-semantic-layer-1.0.0.supx differ diff --git a/superset-snowflake-semantic-layer/README.md b/superset-snowflake-semantic-layer/README.md index 7c1a5c2c45d..279fdd5987f 100644 --- a/superset-snowflake-semantic-layer/README.md +++ b/superset-snowflake-semantic-layer/README.md @@ -4,28 +4,37 @@ This extension adds support for Snowflake Semantic Views to Apache Superset. ## Installation -### As a pip package +### As a pip package (recommended for production) ```bash pip install superset-snowflake-semantic-layer ``` +This automatically installs all required dependencies. + ### As a Superset extension (.supx bundle) -1. Build the extension bundle: +1. **Install dependencies** (the .supx bundle doesn't include pip packages): + ```bash + pip install snowflake-connector-python>=3.0.0 snowflake-sqlalchemy>=1.5.0 + ``` + +2. Build the extension bundle: ```bash cd superset-snowflake-semantic-layer superset-extensions bundle ``` -2. Copy the generated `.supx` file to your Superset extensions directory. +3. Copy the generated `.supx` file to your Superset extensions directory. -3. Configure Superset to load extensions: +4. Configure Superset to load extensions: ```python # superset_config.py EXTENSIONS_PATH = "/path/to/extensions" ``` +5. Restart Superset. + ## Configuration When adding a Snowflake Semantic Layer in Superset, you'll need to provide:
