mirror of
https://github.com/apache/superset.git
synced 2026-05-22 08:15:36 +00:00
- Gate chromium-embedded project on INCLUDE_EMBEDDED env var; set only in
superset-playwright.yml (shadow mode) so it never runs in required E2E
- Add embedded test step to experimental workflow alongside experimental step
- Remove SUPERSET_FEATURE_EMBEDDED_SUPERSET from required workflow (no longer needed)
- Remove dead CORS_OPTIONS from superset_test_config (helpers bypass CORS via page.request)
- Log teardown errors in afterAll instead of swallowing with bare catch {}
- Wrap allowed_domains restore in its own try/catch so it can't mask assertion failures
- Gate TALISMAN_ENABLED + PUBLIC_ROLE_LIKE in docker_light behind SUPERSET_FEATURE_EMBEDDED_SUPERSET
- Add failOnStatusCode:true to guest_token request so silent 4xx surfaces immediately
- Remove dead window.__guestToken fallback branch from embedded test app
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
70 lines
2.9 KiB
Python
70 lines
2.9 KiB
Python
# Licensed to the Apache Software Foundation (ASF) under one
|
|
# or more contributor license agreements. See the NOTICE file
|
|
# distributed with this work for additional information
|
|
# regarding copyright ownership. The ASF licenses this file
|
|
# to you under the Apache License, Version 2.0 (the
|
|
# "License"); you may not use this file except in compliance
|
|
# with the License. You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing,
|
|
# software distributed under the License is distributed on an
|
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
# KIND, either express or implied. See the License for the
|
|
# specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
# Configuration for docker-compose-light.yml - disables Redis and uses minimal services
|
|
|
|
# Import all settings from the main config first
|
|
import os
|
|
|
|
from flask_caching.backends.filesystemcache import FileSystemCache
|
|
|
|
from superset_config import * # noqa: F403
|
|
|
|
# Override caching to use simple in-memory cache instead of Redis
|
|
RESULTS_BACKEND = FileSystemCache("/app/superset_home/sqllab")
|
|
|
|
CACHE_CONFIG = {
|
|
"CACHE_TYPE": "SimpleCache",
|
|
"CACHE_DEFAULT_TIMEOUT": 300,
|
|
"CACHE_KEY_PREFIX": "superset_light_",
|
|
}
|
|
DATA_CACHE_CONFIG = CACHE_CONFIG
|
|
THUMBNAIL_CACHE_CONFIG = CACHE_CONFIG
|
|
|
|
|
|
# Disable Celery entirely for lightweight mode
|
|
CELERY_CONFIG = None # type: ignore[assignment,misc]
|
|
|
|
# Honor SUPERSET_FEATURE_<NAME> env vars on top of any flags inherited from
|
|
# superset_config. Lets local dev/e2e enable features (e.g. EMBEDDED_SUPERSET)
|
|
# without editing shipped config files. Only the literal string "true"
|
|
# (case-insensitive) is treated as enabled — "1"/"yes"/"on" are not, matching
|
|
# the strict-string convention used elsewhere in Superset's env parsing.
|
|
FEATURE_FLAGS = {
|
|
**FEATURE_FLAGS, # noqa: F405
|
|
**{
|
|
name[len("SUPERSET_FEATURE_") :]: value.strip().lower() == "true"
|
|
for name, value in os.environ.items()
|
|
if name.startswith("SUPERSET_FEATURE_")
|
|
},
|
|
}
|
|
|
|
if os.environ.get("SUPERSET_FEATURE_EMBEDDED_SUPERSET", "").strip().lower() == "true":
|
|
# Disable Talisman so /embedded/<uuid> doesn't return X-Frame-Options:SAMEORIGIN.
|
|
# Without this, browsers refuse to render Superset inside an iframe from a
|
|
# different origin (i.e. the embedded SDK use case). Production/CI configures
|
|
# Talisman with explicit `frame-ancestors`; for the lightweight local stack we
|
|
# just turn it off.
|
|
TALISMAN_ENABLED = False
|
|
|
|
# Guest tokens (used by the embedded SDK) inherit the "Public" role's perms.
|
|
# Out of the box Public has zero perms, so embedded dashboards immediately fail
|
|
# their first call (`/api/v1/me/roles/`) with 403. Mirror Public to Gamma —
|
|
# the standard read-only viewer role — so the embedded flow can authenticate
|
|
# and load dashboard data in local dev.
|
|
PUBLIC_ROLE_LIKE = "Gamma"
|