We've updated our Terms of Service and Privacy Policy. Please review the changes as you continue to interact with us.
Learn more
Plugins
Parquet-S3-Datasource logo

Parquet-S3-Datasource

tobiasworkstech

Get plugin

Changelog

All notable changes to this project will be documented in this file.

[1.2.15] - 2026-05-20

Build

  • Drop 32-bit linux/arm binary. Apache Thrift v0.23.0 (required to fix CVE-2026-41602) uses math.MaxUint32 as an untyped int constant in framed_transport.go, which overflows on 32-bit architectures. 32-bit ARM is rarely used to run Grafana (RPi 4+ is arm64), so the artifact is dropped rather than staying on the vulnerable Thrift version. A custom BuildAll target in Magefile.go builds the remaining five platforms (linux amd64/arm64, darwin amd64/arm64, windows amd64).
  • Refresh grafana-plugin-sdk-go to v0.292.0 to clear the validator's "SDK older than 2 months" warning.

[1.2.13] - 2026-05-20

Bug Fixes

  • S3 list pagination: listPrefixes and listFiles now page through ListObjectsV2 results so buckets with more than 1000 objects are not silently truncated.

Improvements

  • Schema discovery without full read: SELECT * FROM parquet LIMIT 0 (used by the frontend to fetch column names) now reads only the Parquet footer via arrowReader.Schema() instead of downloading the entire file from S3.
  • Renamed pkg/duckdbpkg/sqlexec: the package never used DuckDB; the new name reflects what it actually is — a small in-memory SQL executor.
  • Plugin README: replaced the @grafana/create-plugin template src/README.md with proper, screenshot-rich documentation that is bundled into the published plugin.

[1.2.0] - 2026-02-14

Bug Fixes

  • Fix LARGE_STRING Parquet panic: Pandas-generated Parquet files use LARGE_STRING Arrow type, which caused a panic in the Parquet reader. Separated arrow.LARGE_STRING and arrow.STRING handling with proper type assertions.
  • Fix GROUP BY not aggregating: GROUP BY queries returned one row per record instead of grouped results. The SQL executor was using pointer addresses as group keys (*int64, *string). Added formatValue() helper to dereference pointers before grouping.
  • Fix Titanic dashboard bar charts: Grafana barchart panels require a string x-axis but Pclass is int64. Changed to table panels with gauge cell rendering.

Improvements

  • Added Playwright E2E tests verifying all 4 provisioned dashboards load with correct data
  • Added Docker Compose dev environment (docker/docker-compose.yml) with MinIO and sample data generation
  • Updated all provisioned dashboard JSON files for Grafana compatibility
  • Added CLAUDE.md project documentation

[1.1.0] - 2026-02-02

Features

  • SQL Query Support: Built-in, in-memory SQL engine (a custom lightweight executor, not DuckDB)
    • SELECT, WHERE, GROUP BY, ORDER BY, LIMIT clauses
    • Aggregation functions (COUNT, SUM, AVG, MIN, MAX)
    • Filtering and sorting
  • Visual Query Builder: PostgreSQL-style query builder interface
    • Column selection with aggregations
    • Filter toggle with condition builder
    • Group By toggle with multi-column selection
    • Order By toggle with ASC/DESC
    • SQL Preview panel showing generated query
  • Template Variables: Support for dashboard template variables
    • List files in bucket (with regex filtering)
    • List prefixes/folders
    • SQL-based variable queries
  • Explore View: Enhanced query editor for Grafana Explore
    • File selector with regex filtering
    • Refresh button to reload file list
    • Builder and Code modes
  • Sample Dashboards: Pre-built dashboards demonstrating plugin capabilities
    • Iris Dataset dashboard
    • Titanic Survival Dataset dashboard
    • Time Series Metrics dashboard

Improvements

  • Reduced Grafana version requirement to 11.0.0+
  • Better error handling and logging
  • Improved path-style routing for S3-compatible storage
  • ARM64 binary support for Apple Silicon

[1.0.0] - 2025-12-22

Features

  • Initial Release: Parquet-S3-Datasource plugin for Grafana
  • S3 Connectivity: Support for Amazon S3 and S3-compatible storage providers:
    • Amazon S3
    • MinIO
    • Wasabi
    • DigitalOcean Spaces
    • Any S3-compatible storage
  • Direct Parquet Querying: Read Apache Parquet files directly from S3 without intermediate databases
  • Apache Arrow Integration: Efficient columnar data processing using Apache Arrow
  • Custom Endpoints: Configurable S3 endpoints for private cloud deployments
  • Path-Style Routing: Automatic configuration for storage systems requiring path-style URLs
  • Data Types Support: All Parquet primitive types, nested structures, and compression codecs
  • Grafana 11.6+: Fully compatible with Grafana 11.6.0 and above

Components

  • React-based frontend with TypeScript
  • Go backend utilizing AWS SDK v2
  • Docker Compose setup for local development with MinIO
  • Comprehensive documentation and configuration examples
  • Demo video and screenshots

Configuration

  • Region selection
  • Bucket specification
  • Custom endpoint URLs
  • Secure credential management (Access Key/Secret Key)

Development

  • Provisioned datasource for quick Docker setup
  • Sample Parquet file generation script
  • Minio upload utilities
  • End-to-end testing capabilities

Plugin Insights

Quality scores for version 1.2.16

  • Status: Passed
    Security

    All checks passed

  • Status: Passed
    Maintenance

    All checks passed

  • Status: Passed
    Documentation

    All checks passed