sadpandajoe commented on code in PR #44245: URL: https://github.com/apache/superset/pull/44245#discussion_r4012062514
########## docs/admin_docs/configuration/alerts-reports.mdx: ########## @@ -50,13 +50,10 @@ Screenshots will be taken but no messages actually sent as long as `ALERT_REPORT #### In your `Dockerfile` -You'll need to extend the Superset image to include a headless browser. Your options include: +As of 7.0.0, Superset takes screenshots only with [Playwright](https://playwright.dev/python/) driving a headless Chromium browser. Selenium, Firefox, geckodriver and the `WEBDRIVER_TYPE` setting are not supported, and no feature flag is needed to use Playwright. Prior to 7.0.0, users were responisble for installing their own headless browser, and could use Selenium if desired. -- Use Playwright with Chromium: this is the recommended approach as of version 4.1.x or greater. Playwright always uses Chromium — the `WEBDRIVER_TYPE` config setting has no effect when Playwright is active. A working example of a Dockerfile that installs these tools is provided under "Building your own production Docker image" on the [Docker Builds](/admin-docs/installation/docker-builds#building-your-own-production-docker-image) page. Enable the `PLAYWRIGHT_REPORTS_AND_THUMBNAILS` feature flag in your config to activate it. -- Use Firefox (Selenium): you'll need to install geckodriver and Firefox. Set `WEBDRIVER_TYPE` to `"firefox"` in your `superset_config.py`. -- Use Chrome (Selenium): you'll need to install Chrome. Set `WEBDRIVER_TYPE` to `"chrome"` in your `superset_config.py`. - -In Superset versions <=4.0x, users installed Firefox or Chrome and that was documented here. +- The default Superset image (for example the `latest` and `<version>` tags) includes Playwright and Chromium. +- The `lean` image and custom images need them installed, for example with `pip install playwright && playwright install-deps && playwright install chromium`. A working example of a Dockerfile that installs these tools is provided under "Building your own production Docker image" on the [Docker Builds](/admin-docs/installation/docker-builds#building-your-own-production-docker-image) page. Review Comment: The inline command fails on the `lean` image it targets: that stage runs as `superset`, has no venv `pip`, and points browser installs at a root-owned path, so `playwright install-deps`/`install chromium` fail or the package lands outside `/app/.venv`; screenshots still raise `Playwright is required`. Could this use the root + `uv pip` sequence from the linked Dockerfile example instead? ########## docs/admin_docs/configuration/cache.mdx: ########## @@ -311,21 +311,27 @@ CACHE_WARMUP_EXECUTORS = [FixedExecutor("admin")] Use a dedicated read-only service account here rather than a personal admin account, so that thumbnail rendering and cache warmup tasks don't fail if a specific user's credentials change. -Additional Selenium WebDriver configuration can be set using `WEBDRIVER_CONFIGURATION`. You can -implement a custom function to authenticate Selenium. The default function uses the `flask-login` -session cookie. Here's an example of a custom function signature: +Thumbnails are rendered with Playwright and a headless Chromium browser. Extra Chromium launch +arguments can be set using `WEBDRIVER_OPTION_ARGS`. You can implement a custom function to +authenticate the Playwright browser context. The default function uses the `flask-login` session +cookie. Here's an example of a custom function signature: ```python -def auth_driver(driver: WebDriver, user: "User") -> WebDriver: +from playwright.sync_api import BrowserContext Review Comment: This module-level import makes every service loading a shared `superset_config.py` depend on the optional Playwright extra, even though the guide says only workers need the browser; a lean webserver sharing this config exits on `ModuleNotFoundError`. Could the example avoid a runtime import, for example with an unannotated or quoted type? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
