Skip to content

Releases: grafana/grafana-plugin-sdk-rust

v0.4.0

19 Sep 16:58
v0.4.0
6ccc40b
Compare
Choose a tag to compare

Changed

  • The DataService trait has a new associated type, Query, which corresponds to the type of the query sent from the frontend component of the plugin (the TQuery type parameter of the frontend DatasourceApi implementation). The backend SDK will attempt to deserialize the JSON into this struct, and it will be accessible on the query property of each query in QueryDataRequest.queries. Note that QueryDataRequest is also now generic over this type. Within the DataService trait, it is simplest to use Self::Query to refer to the new type.
    To retain the old behaviour, set Query = serde_json::Value in DataService.
  • Add headers field containing the allow-listed fields sent along with the request to CheckHealthRequest (see the Go SDK PR for more details)
  • Add type_ field containing the plugin type to DataSourceInstanceSettings. This is equal to the plugin_id field on PluginContext. See the Go SDK PR for justification.
  • Add impl of backend::IntoHttpResponse for http::Response<Vec<u8>>.
  • Remove unused lifetime on IntoOptField blanket impl.
  • Derive Eq (as well as just PartialEq) for various structs across the crate.
  • Bump arrow2 dependency to 0.14.0
  • Bump prost to 0.11.0 and remove prost-build dependency, preferring checked-in generated code. This should speed up build times and remove the dependency on protoc since we no longer need to compile proto definitions.
  • Bump tonic to 0.8.0 and remove tonic-build dependency.
  • Bump serde_with dependency to 2.0.0
  • Use cargo-release to automate release process

v0.3.0

14 Apr 20:40
v0.3.0
b96264f
Compare
Choose a tag to compare

Added

  • Added various new constructors for SubscribeStreamResponse, PublishStreamResponse
    and CheckHealthResponse, reducing the reliance of knowing what the arguments should
    be.

Deprecated

  • The CheckHealthResponse::new, SubscribeStreamResponse::new and
    PublishStreamResponse::new methods have been deprecated in favour of their new,
    more direct constructors.

Changed

  • Dependency bumps:
    • prost 0.9.0 -> 0.10.0
    • tonic 0.6.0 -> 0.7.0
    • tonic-health 0.5.0 -> 0.6.0
  • InitialData::from_json now only takes the desired JSON Value by reference rather than by
    value.

v0.2.0

16 Mar 10:31
v0.2.0
Compare
Choose a tag to compare

Added

  • Bump arrow2 dependency to 0.10.0, and re-export it as grafana_plugin_sdk::arrow2
  • Added new data field to SubscribeStreamRequest and SubscribeStreamResponse,
    matching the latest release of the protobuf descriptors.
  • More types now impl FieldType and IntoFieldType:
    • bool
    • SystemTime
    • chrono::Date
    • chrono::NaiveDate
    • chrono::NaiveDateTime
  • The FieldType and IntoFieldType traits are now public. These are useful when
    writing generic functions to convert iterators, vecs, slices or arrays into Fields.

Changed

  • Mark the various Request and Response structs in the backend part of the SDK as
    #[non_exhaustive] since changes to those structs are largely outside of our control;
    the protobuf descriptors may add additional fields, and this allows us to include them
    without breaking our API. Some Response types now have new constructors which should
    be used.
  • Most of the exported types in the data part of the SDK are also now non-exhaustive,
    for the same reason as above. These types now either have separate constructors or
    Default impls which can be used to create them.
  • Derive Clone for various backend structs:
    • AppInstanceSettings
    • DataSourceInstanceSettings
    • PluginContext
    • Role (is also now Copy)
    • TimeRange
    • User
  • Change the Iter associated type of backend::DataService to Stream, and update
    the return type of query_data accordingly. This allows each inner query to be handled
    asynchronously and concurrently in a simple way.
  • The live::Error type is now an enum and provides more detail on failures.
  • The path field of SubscribeStreamRequest, RunStreamRequest and
    PublishStreamRequest are now live::Path types rather than arbitrary strings.

v0.1.0

15 Jan 18:09
v0.1.0
Compare
Choose a tag to compare

Initial release of the Grafana Plugin SDK for Rust.