Releases: grafana/grafana-plugin-sdk-rust
Releases · grafana/grafana-plugin-sdk-rust
v0.4.0
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 (theTQuery
type parameter of the frontendDatasourceApi
implementation). The backend SDK will attempt to deserialize the JSON into this struct, and it will be accessible on thequery
property of each query inQueryDataRequest.queries
. Note thatQueryDataRequest
is also now generic over this type. Within theDataService
trait, it is simplest to useSelf::Query
to refer to the new type.
To retain the old behaviour, setQuery = serde_json::Value
inDataService
. - Add
headers
field containing the allow-listed fields sent along with the request toCheckHealthRequest
(see the Go SDK PR for more details) - Add
type_
field containing the plugin type toDataSourceInstanceSettings
. This is equal to theplugin_id
field onPluginContext
. See the Go SDK PR for justification. - Add impl of
backend::IntoHttpResponse
forhttp::Response<Vec<u8>>
. - Remove unused lifetime on
IntoOptField
blanket impl. - Derive
Eq
(as well as justPartialEq
) 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
Added
- Added various new constructors for
SubscribeStreamResponse
,PublishStreamResponse
andCheckHealthResponse
, 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 JSONValue
by reference rather than by
value.
v0.2.0
Added
- Bump arrow2 dependency to 0.10.0, and re-export it as
grafana_plugin_sdk::arrow2
- Added new
data
field toSubscribeStreamRequest
andSubscribeStreamResponse
,
matching the latest release of the protobuf descriptors. - More types now impl
FieldType
andIntoFieldType
:bool
SystemTime
chrono::Date
chrono::NaiveDate
chrono::NaiveDateTime
- The
FieldType
andIntoFieldType
traits are now public. These are useful when
writing generic functions to convert iterators, vecs, slices or arrays intoField
s.
Changed
- Mark the various
Request
andResponse
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. SomeResponse
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 nowCopy
)TimeRange
User
- Change the
Iter
associated type ofbackend::DataService
toStream
, and update
the return type ofquery_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 ofSubscribeStreamRequest
,RunStreamRequest
and
PublishStreamRequest
are nowlive::Path
types rather than arbitrary strings.