Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
**/package-lock.json binary
**/yarn.lock binary
poetry.lock binary
redash/query_runner/files/rds-combined-ca-bundle.pem binary
viz-lib/src/visualizations/choropleth/maps/*.geo.json binary
130 changes: 129 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,133 @@
# Change Log

**Note**: For a concise list of changes with GitHub pull request references, see the [Release Notes wiki page](https://github.com/getredash/redash/wiki/Release-Notes). This changelog provides comprehensive summaries and context, while the wiki offers brief descriptions linked to specific pull requests.

## v25.01.0 - 2025-01-08

This major release represents the most significant update in Redash history, spanning over 3 years of development. With 458 files changed, 13,659 insertions, and 7,378 deletions, this release modernizes the entire platform while dramatically expanding integration capabilities.

This release was made possible by contributions from 100+ contributors across the community. Special thanks to all maintainers and contributors who helped bring these features to life.

### 🔧 Upgrading from v10.1.0

**Important**: This is a major version jump that includes significant infrastructure changes. Please review the migration guide carefully before upgrading.

### 🏗️ Infrastructure & Development

- **Migration to Poetry**: Complete transition from requirements.txt to pyproject.toml for modern dependency management
- **Python Version Support**: Updated to support Python 3.8-3.10, dropped support for older Python versions
- **CI/CD Modernization**: Migrated from CircleCI to GitHub Actions with improved build pipelines
- **Docker Improvements**: Updated base images and optimized build processes
- **Development Tools**: Replaced flake8/isort with Ruff for faster linting and code formatting

### 🔌 New Data Sources (13 New Connectors)

This release adds extensive new data source support:

- **ArangoDB**: Multi-model database (documents, graphs, key-value)
- **Databend**: Modern cloud data warehouse
- **E6Data**: Cloud analytics platform
- **Google Analytics 4**: Updated GA4 API integration (replacing Universal Analytics)
- **Google Search Console**: SEO and search performance data
- **Ignite**: Apache Ignite in-memory computing platform
- **InfluxDB v2**: Time series database with updated v2 API
- **Netezza (NZ)**: IBM data warehouse appliance
- **Pinot**: Apache Pinot real-time OLAP datastore
- **RisingWave**: PostgreSQL-compatible streaming database
- **Tinybird**: Real-time analytics API platform
- **Yandex Disk**: File storage and sharing service integration
- **Enhanced Elasticsearch**: Added Elasticsearch2 query runner with improved features

### 📧 New Alert Destinations (5 New Integrations)

- **Asana**: Project management tool integration
- **Datadog**: Monitoring and analytics platform
- **Discord**: Chat platform with rich embed support
- **Microsoft Teams Webhook**: Enhanced Teams integration with formatting
- **Webex**: Cisco collaboration platform

### 🎨 Visualizations & UI Improvements

- **Major viz-lib Modernization**: Complete overhaul of the visualization library with new features, enhanced user experience, and improved build infrastructure (unreleased as separate viz-lib version)
- Multiple color palette support (Viridis, Tableau 10, D3 Category 10)
- Interactive chart click events with drill-down capabilities
- Advanced axis formatting with D3 format strings
- Full Plotly.js integration with all visualization types
- Webpack 5 migration and modern build system
- See [viz-lib/CHANGELOG.md](viz-lib/CHANGELOG.md) for detailed visualization library changes
- **Chart Enhancements**:
- Enhanced chart labels and data formatting
- Improved hover functionality and click interactions
- Better Y-axis aggregation for multiple data points
- **Table Improvements**:
- Better column handling and display options
- Enhanced table visualization reliability
- **TypeScript Migration**: Partial migration with 20+ new TypeScript files for better type safety

### ⚡ Performance & Reliability

- **Query Processing**: Reduced query processing wait time for faster response times
- **BigQuery Optimization**:
- Faster schema loading and API integration
- Added date/datetime type mapping
- Improved large result handling
- **Athena Improvements**: Added result reuse support for better performance
- **MongoDB Enhancements**: Flatten all levels for better data structure handling
- **RQ Job Processing**: Fixed issues with job status handling and error management

### 🔐 Security Improvements

- **Dependency Updates**:
- Updated cryptography library with multiple security fixes
- Gevent CVE patches applied
- Gunicorn security improvements
- Sentry SDK major version upgrade for better error tracking
- **Security Hardening**: Added `usedforsecurity=False` flag to MD5 hashes where appropriate
- **Authentication**: Enhanced authentication systems and security measures

### ✨ New Features

- **Dashboard Duplication**: Added ability to fork/duplicate dashboards
- **Parameter System**:
- New text pattern parameter type for advanced filtering
- Improved parameter validation and handling
- **Query Improvements**:
- Added NULLS LAST option for query ordering
- Enhanced query result handling and error management
- **API Enhancements**: Improved error responses and API reliability

### 🔧 Bug Fixes & Stability

- **Chart Fixes**:
- Fixed scatter/line/bubble charts with same x-values showing wrong y-values
- Fixed bar chart data labels display
- Resolved chart UI crashes with Plotly upgrades
- **Query Execution**: Fixed UnboundLocalError when checking alerts for queries
- **BigQuery**: Fixed interval handling for API result fetching
- **Error Handling**: Improved error serialization and display
- **Table Visualization**: Fixed various table display and sorting issues

### 🗑️ Removals & Deprecations

- **Qubole Query Runner**: Removed (service discontinued)
- **Legacy Code**: Cleaned up deprecated code paths and unused dependencies
- **HipChat Destination**: Removed (service discontinued)

### 📋 Other Improvements

- **Schema Browser**: Enhanced with column comments and table descriptions for PostgreSQL and Athena
- **Embed Functionality**: Fixed and improved embedded query displays
- **Monitoring**: Better health checks and system monitoring capabilities
- **Testing**: Enhanced test coverage and reliability across the platform

### 📚 Documentation & Developer Experience

- **Updated Documentation**: Comprehensive updates to setup and configuration guides
- **Development Environment**: Improved local development setup for ARM64 architectures
- **Code Quality**: Consistent formatting and linting across the entire codebase

This release represents a complete modernization of the Redash platform, bringing it up to current standards while dramatically expanding its capabilities. The addition of 13 new data sources and 5 new alert destinations, combined with significant performance improvements and security enhancements, makes this the most comprehensive Redash update to date.

## V10.1.0 - 2021-11-23

This release includes patches for three security vulnerabilities:
Expand Down Expand Up @@ -117,7 +245,7 @@ Following that, force a recreation of your containers with `docker-compose up --
- Added “Last 12 months” option for dynamic date ranges

### Bug Fixes
- Fix: Private addresses were not allowed even when enforcing was disabled
- Fix: Private addresses were not allowed even when enforcing was disabled
- Fix: Python query runner wasn’t updated for Python 3
- Fix: Sorting queries by schedule returned the wrong order
- Fix: Counter visualization was enormous in some cases
Expand Down
136 changes: 135 additions & 1 deletion viz-lib/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,139 @@
# Change Log

## Unreleased

This major release of viz-lib represents a significant modernization of the visualization library with new features, enhanced user experience, and improved build infrastructure.

### 🎨 New Visualization Features

#### Color Scheme Support for Charts
- **Multiple Color Palettes**: Added support for Viridis, Tableau 10, and D3 Category 10 color schemes alongside the default Redash palette
- **Chart Editor Enhancement**: Users can now select different color schemes in the chart settings panel
- **Enhanced ColorPalette API**: New exports including `AllColorPalettes`, `AllColorPaletteArrays`, and `ColorPaletteTypes`
- **Discrete and Continuous Palettes**: Support for both discrete color sets and continuous color gradients

#### Pie Chart Enhancements
- **Sorting Toggle**: Added ability to enable/disable sorting on pie charts via a new checkbox in General Settings
- **Maintains Compatibility**: Default behavior preserved unless explicitly disabled

#### Interactive Chart Features
- **Chart Click Events**: Added interactive click functionality for chart visualizations
- **Drill-down Support**: Charts now support navigation and drill-down capabilities
- **Configuration Options**:
- Toggle to enable/disable click events
- Option to open links in new tab
- Custom URL template support

#### Advanced Axis Formatting
- **D3 Format Strings**: Added support for custom X and Y axis tick formatting using D3 format specifications
- **Number Formatting**: Custom numeric format strings for precise axis label control
- **Date/Time Formatting**: Custom temporal format strings for time-based axes
- **Context Help**: Added TickFormatSpecs with documentation links for format guidance

### 📊 Visualization Improvements

#### Full Plotly.js Integration
- **Complete Plotly Library**: All Plotly visualization types now available through Custom chart type
- **Extended Options**: Access to the full range of Plotly visualization capabilities
- **Modern Webpack Support**: Added Node.js module fallbacks for browser compatibility

#### Data Processing Enhancements
- **Y-axis Aggregation**: Charts now properly aggregate Y column values instead of displaying only the last value
- **Better Data Handling**: Improved processing of multiple data points with identical X values
- **Chart Label Mapping**: Fixed Map() implementation for accurate chart label display

#### Heatmap Improvements
- **Better Color Contrast**: Enhanced annotation color selection for improved readability
- **Text Visibility**: Better text contrast on heatmap cells for clearer data presentation

### 🏗️ Build System Modernization

#### Webpack 5 Migration
- **Major Upgrade**: Migrated from Webpack 4.42.1 to 5.88.2
- **Modern Asset Handling**: Replaced `file-loader` with Webpack 5's built-in `asset/resource` modules
- **Optimized Configuration**: Streamlined build configuration with `assetModuleFilename: 'images/[name][ext]'`
- **Node.js Fallbacks**: Added fallbacks for Node.js modules (`fs: false, path: false`) for browser safety

#### Package Manager Migration
- **NPM to Yarn**: All build scripts migrated to use Yarn for better dependency management
- **Deterministic Builds**: Added `yarn.lock` for reproducible builds across environments
- **Improved Consistency**: Enhanced build reliability and dependency resolution

### 📦 Dependency Updates

#### Major Library Upgrades
- **Plotly.js**: Updated from 1.52.3 to 1.58.5 (latest visualization features and improvements)
- **Axios**: Upgraded from 0.19.2 to 0.28.0 with added axios-auth-refresh 3.3.6 for better request handling
- **Less**: Updated from 3.11.1 to 4.1.3 for modern CSS preprocessing capabilities
- **Babel Ecosystem**: Comprehensive update to 7.22.x series for modern JavaScript support
- **TypeScript Types**: Updated @types/plotly.js to 1.54.22 for better type safety

#### Build Tool Updates
- **Less-loader**: Updated from 5.0.0 to 11.1.3 with modernized configuration structure
- **Style-loader**: Upgraded from 1.1.4 to 3.3.3
- **Module Resolver**: Updated Babel plugin to 5.0.0
- **Testing Infrastructure**: Updated Jest and testing dependencies

#### Security Updates
- **DOMPurify**: Updated from 2.0.17 to 2.5.4 for enhanced XSS protection
- **Follow-redirects**: Security patches applied to prevent redirect vulnerabilities
- **Multiple Dependencies**: Various security vulnerability fixes across the dependency tree

### 🔧 Development Improvements

#### Enhanced Type Safety
- **Updated Type Definitions**: Better TypeScript coverage for Plotly.js and other major dependencies
- **Error Prevention**: Various TypeScript errors resolved throughout the codebase
- **Type Safety**: Improved development experience with better autocomplete and error detection

#### Modern React Support
- **React 16.14.0+**: Increased minimum React version requirement for modern features
- **Component Updates**: Enhanced compatibility with modern React patterns
- **Performance Optimizations**: Better integration with current React best practices

### 🗑️ Removals and Deprecations

#### Bundle Size Optimizations
- **Moment.js Removal**: Eliminated moment.js dependency to reduce bundle size
- **Modern Date Handling**: Replaced with native JavaScript Date APIs or smaller alternatives
- **File Loader Replacement**: Replaced with Webpack 5's built-in asset modules for cleaner configuration

#### Reverted Features
- **Table Fixed Columns**: Feature was added but later reverted due to compatibility issues
- **Counter Widget Changes**: Some font size modifications were reverted to maintain layout stability
- **Dependency Migrations**: Some library migrations were reverted to maintain stability

### ⚠️ Breaking Changes

#### API Changes
- **ColorPalette Structure**: Expanded ColorPalette API with new exports and structure
- **Minimum React Version**: Now requires React 16.14.0 or higher
- **Moment.js Dependency**: Applications relying on moment.js from viz-lib need alternative solutions

#### Build System Changes
- **Webpack 5 Requirement**: Consuming applications must be compatible with Webpack 5
- **Package Manager**: Yarn is now the preferred package manager for development
- **Asset Handling**: Changed asset module configuration may require updates in consuming applications

### 🔄 Migration Guide

#### For Consuming Applications
1. **Update React**: Ensure React version is 16.14.0 or higher
2. **Webpack 5**: Verify compatibility with Webpack 5 if using custom build configurations
3. **Color Palette API**: Update any code using ColorPalette exports to new structure
4. **Moment.js**: Replace any dependencies on moment.js with alternative date libraries

#### For Contributors
1. **Use Yarn**: Run `yarn install` instead of `npm install`
2. **Webpack 5**: Familiarize yourself with Webpack 5 configuration patterns
3. **TypeScript**: Enhanced type checking may require addressing new type errors

This release represents a major step forward in visualization capabilities and development experience, providing a solid foundation for future enhancements while maintaining compatibility for most existing use cases.

## v1.0.0 - 2021-01-XX

- Bumped to version 1.0.0 (no changelog was maintained for this release)

## v0.1.0 - 2020-05-05

- Created the library from Redash codebase
- Created the library from Redash codebase