This is an automated email from the ASF dual-hosted git repository. maximebeauchemin pushed a commit to branch flask_config in repository https://gitbox.apache.org/repos/asf/superset.git
commit c67143592b2a6e0419940790efb790693791a0de Author: Maxime Beauchemin <[email protected]> AuthorDate: Fri Jul 18 03:11:44 2025 -0700 feat: add markdown support and dedicated configuration reference page - Added react-markdown dependency for rendering markdown in config descriptions - Created comprehensive configuration reference page at /configuration/configuration-reference - Configured ReactMarkdown with custom components for table context: - Links open in new tabs with proper styling - Inline code blocks with background highlighting - Bold and italic text rendering - Paragraph tags converted to spans for table compatibility - Updated sidebar positioning to make config reference first in configuration section - Added detailed usage instructions and security notes - Enhanced documentation with configuration precedence explanation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --- .../docs/configuration/configuration-reference.mdx | 86 ++++++++++++++++++++++ docs/docs/configuration/configuring-superset.mdx | 2 +- docs/package.json | 1 + docs/src/components/ConfigurationTable.tsx | 41 ++++++++++- 4 files changed, 128 insertions(+), 2 deletions(-) diff --git a/docs/docs/configuration/configuration-reference.mdx b/docs/docs/configuration/configuration-reference.mdx new file mode 100644 index 0000000000..789c2dbc91 --- /dev/null +++ b/docs/docs/configuration/configuration-reference.mdx @@ -0,0 +1,86 @@ +--- +title: Configuration Reference +hide_title: true +sidebar_position: 1 +version: 1 +--- + +import ConfigurationTable from '@site/src/components/ConfigurationTable'; + +# Configuration Reference + +This page provides a comprehensive reference for all Superset configuration options. These settings can be configured in your `superset_config.py` file or through environment variables. + +## How to Use This Reference + +- **Search**: Use the search box to find specific configuration settings +- **Filter by Category**: Use the dropdown to filter by configuration category +- **Environment Variables**: All configurations can be set via environment variables with the `SUPERSET__` prefix +- **Impact Level**: Each setting shows its impact level (low, medium, high) +- **Restart Required**: Settings marked with "RESTART" require a server restart to take effect + +## Configuration Settings + +<ConfigurationTable showEnvironmentVariables={true} /> + +## Setting Configuration Values + +### In superset_config.py + +```python +# Example configuration in superset_config.py +SECRET_KEY = 'your-secret-key-here' +SQLALCHEMY_DATABASE_URI = 'postgresql://user:pass@localhost/superset' +CACHE_DEFAULT_TIMEOUT = 300 +``` + +### Via Environment Variables + +```bash +# All configuration keys can be set via environment variables +export SUPERSET__SECRET_KEY="your-secret-key-here" +export SUPERSET__SQLALCHEMY_DATABASE_URI="postgresql://user:pass@localhost/superset" +export SUPERSET__CACHE_DEFAULT_TIMEOUT=300 +``` + +### Configuration Precedence + +Configuration values are loaded in the following order (later values override earlier ones): + +1. **Default values** from `superset/config_defaults.py` +2. **Base configuration** from `superset/config.py` +3. **Custom configuration file** (if specified via `SUPERSET_CONFIG_PATH`) +4. **superset_config module** (if available in PYTHONPATH) +5. **Environment variables** with `SUPERSET__` prefix + +## Configuration Categories + +The configuration settings are organized into the following categories: + +- **Security**: Authentication, authorization, and security-related settings +- **Database**: Database connection and SQL-related configurations +- **Performance**: Caching, timeouts, and performance optimization settings +- **Features**: Feature flags and optional functionality toggles +- **UI**: User interface and theming configurations +- **Logging**: Logging and monitoring configurations +- **Email**: Email and notification settings +- **Async**: Asynchronous processing and Celery settings +- **General**: Miscellaneous configuration options + +## Important Security Notes + +- Always set a strong `SECRET_KEY` in production +- Use environment variables for sensitive configuration values +- Never commit sensitive configuration values to version control +- Regularly rotate secrets and passwords +- Review security-related configurations before deploying + +## Need Help? + +For detailed information about specific configuration topics, see: + +- [Configuring Superset](./configuring-superset.mdx) - General configuration guide +- [Security](../security/security.mdx) - Security configuration +- [Database Configuration](./databases.mdx) - Database-specific settings +- [Cache Configuration](./cache.mdx) - Caching setup +- [Async Queries](./async-queries-celery.mdx) - Celery configuration diff --git a/docs/docs/configuration/configuring-superset.mdx b/docs/docs/configuration/configuring-superset.mdx index 67e3861b65..d967773d88 100644 --- a/docs/docs/configuration/configuring-superset.mdx +++ b/docs/docs/configuration/configuring-superset.mdx @@ -1,7 +1,7 @@ --- title: Configuring Superset hide_title: true -sidebar_position: 1 +sidebar_position: 2 version: 1 --- diff --git a/docs/package.json b/docs/package.json index 5aebfdfced..540ccb470e 100644 --- a/docs/package.json +++ b/docs/package.json @@ -35,6 +35,7 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "react-github-btn": "^1.4.0", + "react-markdown": "^10.1.0", "react-svg-pan-zoom": "^3.13.1", "swagger-ui-react": "^5.26.0" }, diff --git a/docs/src/components/ConfigurationTable.tsx b/docs/src/components/ConfigurationTable.tsx index a8f6095409..deb0118697 100644 --- a/docs/src/components/ConfigurationTable.tsx +++ b/docs/src/components/ConfigurationTable.tsx @@ -18,6 +18,7 @@ */ import React, { useState } from 'react'; +import ReactMarkdown from 'react-markdown'; import configMetadata from '../resources/config_metadata.json'; interface ConfigSetting { @@ -325,7 +326,45 @@ const ConfigurationTable: React.FC<ConfigurationTableProps> = ({ fontSize: '12px', }} > - {setting.description} + <ReactMarkdown + components={{ + // Customize rendering for table context + p: ({ children }) => <span>{children}</span>, + a: ({ href, children }) => ( + <a + href={href} + target="_blank" + rel="noopener noreferrer" + style={{ color: '#1890ff', textDecoration: 'none' }} + > + {children} + </a> + ), + strong: ({ children }) => ( + <strong style={{ fontWeight: 'bold' }}> + {children} + </strong> + ), + em: ({ children }) => ( + <em style={{ fontStyle: 'italic' }}>{children}</em> + ), + code: ({ children }) => ( + <code + style={{ + backgroundColor: '#f5f5f5', + padding: '1px 3px', + borderRadius: '2px', + fontSize: '11px', + fontFamily: 'monospace', + }} + > + {children} + </code> + ), + }} + > + {setting.description || 'No description available'} + </ReactMarkdown> </td> <td style={{
