All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Soft-fail bootstrap
ConnectinNewConnectorso CallResource routes can register when the DB is not ready yet; connect on demand from query and health paths by @iwysiu in #305
- perf: Plumb RowCapacityHint through DBQuery to presize frame fields by @adamyeats in #240
- Add add-to-project workflow by @aangelisc in #290
- chore: use shared data-sources Renovate base preset by @aangelisc in #291
- chore(deps): update backend dependencies (major) by @renovate-sh-app[bot] in #294
- feat: emit response-size histograms from DBQuery by @adamyeats in #241
- perf: reduce per-query allocations on hot path by @adamyeats in #239
- Security improvements by @aangelisc in #255
- Add pluggable Interpolator extension point by @odemkovych in #269
- Add pluggable ConnectionCache extension point by @odemkovych in #267
- Remove unneeded workflow by @aangelisc in #266
- Fix: don't close the database if we can't create a new connection by @njvrzm in #287
- chore(deps): update actions/checkout action to v6.0.3 by @renovate-sh-app[bot] in #265
- fix(deps): update module github.com/grafana/grafana-plugin-sdk-go to v0.292.1 by @renovate-sh-app[bot] in #259
- fix(security/unknown/): update security golang.org/x/crypto to v0.52.0 [security] by @renovate-sh-app[bot] in #262
- chore(deps): update mysql docker tag to v9.7 by @renovate-sh-app[bot] in #257
- chore(deps): update mysql:9.7 docker digest to e370cd5 by @renovate-sh-app[bot] in #268
- chore(deps): update actions/checkout action to v7 by @renovate-sh-app[bot] in #270
- chore(deps): update module go.yaml.in/yaml/v2 to v2.4.4 by @renovate-sh-app[bot] in #280
- chore(deps): update module github.com/pierrec/lz4/v4 to v4.1.27 by @renovate-sh-app[bot] in #279
- chore(deps): update module github.com/olekukonko/ll to v0.1.8 by @renovate-sh-app[bot] in #278
- chore(deps): update module github.com/mattn/go-runewidth to v0.0.24 by @renovate-sh-app[bot] in #277
- Allow
{}to be treated as an emptyConnectionArgs, preventing a falseMissingMultipleConnectionsConfigerror (#235)
- Updated google.golang.org/grpc to v1.79.3 [security] (#233)
- Updated actions/setup-go to v6.4.0 (#234)
- Added support for intercepting CallResource by the datasource (#231)
- Bumped github.com/grafana/grafana-plugin-sdk-go to v0.290.1 (#218, #225, #226, #230)
- Updated filippo.io/edwards25519 to v1.1.1 [security] (#227)
- Updated go.opentelemetry.io/otel/sdk to v1.40.0 [security] (#228)
- Bumped github.com/grafana/grafana-plugin-sdk-go to v0.284.0 (#203, #209, #210, #213)
- Updated golang.org/x/crypto [security] (#205, #208)
- Add debug logs to connection management (#201)
- Hash connectionArgs when used as cache key (#199)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#192)
- Added QueryErrorMutator (#190)
- Breaking change IsPGXConnectionError has been removed. Removed PGX v5/PostgreSQL-specific error detection (#190)
- Fix error source in QueryData (#180)
- Pass down Context to Ping method (#179)
- Improved error handling (#177)
- Improved panic error recovery (#176)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#175)
- Bumped github.com/go-sql-driver/mysql in the all-go-dependencies group (#174)
- Added panic recovery mechanism (#173)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#171)
- Bumped actions/setup-go in the all-github-action-dependencies group (#172)
- Updated workflows (#170)
- Bumped the all-go-dependencies group with 2 updates (#167)
- Bumped golang.org/x/net from 0.36.0 to 0.38.0 in the go_modules group (#168)
- Bumped github.com/go-sql-driver/mysql in the all-go-dependencies group (#166)
- Bumped the all-go-dependencies group across 1 directory with 2 updates (#164)
- Made row limit configurable (#165)
- Enabled dataproxy.row_limit configuration option from Grafana (#162)
- Bumped the all-go-dependencies group with 2 updates (#160)
- Bumped golang.org/x/net from 0.35.0 to 0.36.0 in the go_modules group (#161)
- Bumped the all-go-dependencies group across 1 directory with 4 updates (#159)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#157)
- Bumped github.com/grafana/grafana-plugin-sdk-go from 0.263.0 to 0.265.0 (#155)
- Bumped grafana-plugin-sdk-go and removed experimental error source (#153)
- Fixed: return error if not nil when connecting (#151)
- Bumped x/net to v0.33.0 (#150)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#149)
- Bumped golang.org/x/crypto from 0.29.0 to 0.31.0 in the go_modules group (#148)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#146)
- Bumped the all-go-dependencies group with 2 updates (#145)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#144)
- Added pre and post health check methods (#147)
- Bumped golang.org/x/crypto from 0.29.0 to 0.31.0 in the go_modules group (#148)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#146)
- Bumped the all-go-dependencies group with 2 updates (#145)
- Bumped github.com/grafana/grafana-plugin-sdk-go (#144)
- Fixed error source coming from getFrames function (#142)
- Fixed mistyped macros being incorrectly reported as plugin error (#141)
- Migrated from Drone to GitHub Actions (#143)
- Fixed: mark incorrect macros arguments error as downstream (#140)
- Fixed: implement InstanceDisposer to close db connections (#136)
- Updated dependencies and added Dependabot configuration (#138)
- Bumped actions/checkout in the all-github-action-dependencies group (#139)
- Updated dependencies for CVE fixes (#134)
- Updated Go version and SDK version (#130)
- Bumped google.golang.org/grpc from 1.64.0 to 1.64.1 (#129)
- Added support for context modification (#127)
- BREAKING: Major version release v4.0.0 (#126)
- Updated grafana-plugin-sdk-go to v0.233.0 (#125)
- Enhanced test coverage with more no-error checks (#123)
- Adjusted handling of zero-rows results (#121)
- Added SLO support: capture query and health duration with error source labeling (#122)
- Unit tests for zero-rows-returned situations (#119)
- Capture duration and label with error source (#116)
- Return executed query string when error occurs (#117)
- Fixed Next() method in tests (#120)
- Added release instructions (#115)
- Updated grafana-plugin-sdk-go to v0.231.0 (#114)
- Added multi timeseries return format (#106)
- Used functions migrated to sqlutil (#107)
- Added CODEOWNERS file (#104)
- Added error source support (#103)
- BREAKING: Major version release v3.0.0 (#102)
- Updated Go plugin SDK to 0.184.0 (#100)
- Enhanced error source functionality (#99)
- Updated installation instructions (#101)
- Fixed functions passed into macros with multiple arguments to parse correctly (#98)
- Added capability for implementing datasources to set query args (#95)
- Added QueryFailTimes check to the test driver (#94)
- Added test driver functionality (#93)
- Added query errors handling (#92)
- Added header forwarding capability (#90)
- Added support for mutateResponse functionality (#89)
- Fixed map write panic (#88)
- Added QueryMutator interface for driver (#87)
- Used organization ISSUE_COMMANDS_TOKEN with reduced scope (#86)
- Added format option for trace (#81)
- Fixed macro parsing issues:
- Close macro match on space if no arguments (#83)
- Fixed parsing macros in more complex queries (#78)
- Fixed connection leak on query retry reconnect (#79)
- Added retry on message functionality (#80)
- Updated Completable interface with custom options (#47)
- Added default macros support (#45)
- Fixed panic issues (#40)
- Fixed integration test backoff/limit
- Added support for logs format (#38)
- Fixed error frame return during macro parsing errors (#37)
- Added integration tests
- Added tests for query timeout
- Added backoff mechanism with ticker
- Updated import path to v2
- BREAKING: Major version release v2.0.0 (#33)
- Updated import path to v2 (#33)
- Used QueryContext for context cancellation handling
- Replaced github.com/pkg/errors with stdlib
- Added query args to modify current DB (#30)
- Added timeout functionality with no results fallback
- Added support for any route (#29)
- Added ability to modify query FillMode (#27)
- Signed Drone's configuration YAML file for repository protection
- Added schema evaluation when requesting tables (#24)
- Added macros with no arguments support (#23)
- Added possible macros to Query struct (#22)
- Added ability to return tables, schemas and columns as resources (#21)
- Used refId as frame name (#18)
- Initial stable release of sqlds
- Core SQL datasource functionality
- Basic macro support
- Connection management
This changelog documents changes for the sqlds package, which provides a common foundation for SQL-driven datasources in Grafana. The package centralizes common SQL datasource logic to reduce code duplication across datasources like Postgres, MySQL, and MSSQL.
- Added: New features
- Changed: Changes in existing functionality
- Deprecated: Soon-to-be removed features
- Removed: Removed features
- Fixed: Bug fixes
- Security: Vulnerability fixes
- Dependencies: Dependency updates
- Infrastructure: CI/CD and tooling changes