Skip to content

Commit 713d1ed

Browse files
authored
feat: add Invocable scripts API (#101)
1 parent 141eb9f commit 713d1ed

27 files changed

+1926
-47
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
## 2.4.0 [unreleased]
22

3+
### Features
4+
1. [#101](https://github.com/influxdata/influxdb-client-ruby/pull/101): Add `InvocableScriptsApi` to create, update, list, delete and invoke scripts by seamless way
5+
36
## 2.3.0 [2022-03-18]
47

58
### Bug Fixes

README.md

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
[![GitHub pull requests](https://img.shields.io/github/issues-pr-raw/influxdata/influxdb-client-ruby.svg)](https://github.com/influxdata/influxdb-client-ruby/pulls)
99
[![Slack Status](https://img.shields.io/badge/slack-join_chat-white.svg?logo=slack&style=social)](https://www.influxdata.com/slack)
1010

11-
This repository contains the reference Ruby client for the InfluxDB 2.0.
11+
This repository contains the reference Ruby client for the InfluxDB 2.x.
1212

1313
#### Note: Use this client library with InfluxDB 2.x and InfluxDB 1.8+ ([see details](#influxdb-18-api-compatibility)). For connecting to InfluxDB 1.7 or earlier instances, use the [influxdb-ruby](https://github.com/influxdata/influxdb-ruby) client library.
1414

@@ -31,22 +31,22 @@ This repository contains the reference Ruby client for the InfluxDB 2.0.
3131

3232
This section contains links to the client library documentation.
3333

34-
* [Product documentation](https://docs.influxdata.com/influxdb/v2.0/api-guide/client-libraries/), [Getting Started](#installation)
34+
* [Product documentation](https://docs.influxdata.com/influxdb/latest/api-guide/client-libraries/), [Getting Started](#installation)
3535
* [Examples](examples)
3636
* [API Reference](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2.html)
3737
* [Changelog](CHANGELOG.md)
3838

3939
## Features
4040

41-
InfluxDB 2.0 client consists of two packages
41+
InfluxDB 2.x client consists of two packages
4242

4343
- `influxdb-client`
4444
- Querying data using the Flux language
4545
- Writing data
4646
- batched in chunks on background
4747
- automatic retries on write failures
4848
- `influxdb-client-apis`
49-
- provides all other InfluxDB 2.0 APIs for managing
49+
- provides all other InfluxDB 2.x APIs for managing
5050
- buckets
5151
- labels
5252
- authorizations
@@ -180,7 +180,7 @@ result[0].records.each { |record| puts "#{record.time} #{record.measurement}: #{
180180
```
181181

182182
### Writing data
183-
The [WriteApi](https://github.com/influxdata/influxdb-client-ruby/blob/master/lib/influxdb2/client/write_api.rb) supports synchronous and batching writes into InfluxDB 2.0. In default api uses synchronous write. To enable batching you can use WriteOption.
183+
The [WriteApi](https://github.com/influxdata/influxdb-client-ruby/blob/master/lib/influxdb2/client/write_api.rb) supports synchronous and batching writes into InfluxDB 2.x. In default api uses synchronous write. To enable batching you can use WriteOption.
184184

185185
```ruby
186186
client = InfluxDB2::Client.new('https://localhost:8086', 'my-token',
@@ -324,7 +324,7 @@ write_api.write(data: InfluxDB2::Point.new(name: 'h2o')
324324

325325
### Delete data
326326

327-
The [DeleteApi](https://github.com/influxdata/influxdb-client-ruby/blob/master/lib/influxdb2/client/delete_api.rb) supports deletes [points](https://v2.docs.influxdata.com/v2.0/reference/glossary/#point) from an InfluxDB bucket.
327+
The [DeleteApi](https://github.com/influxdata/influxdb-client-ruby/blob/master/lib/influxdb2/client/delete_api.rb) supports deletes [points](https://docs.influxdata.com/influxdb/latest/reference/key-concepts/data-elements/#point) from an InfluxDB bucket.
328328

329329
```ruby
330330
client = InfluxDB2::Client.new('http://localhost:8086', 'my-token',
@@ -347,16 +347,16 @@ The time range could be specified as:
347347

348348
The client supports following management API:
349349

350-
| | API docs |
351-
| --- | --- |
352-
| [**AuthorizationsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/AuthorizationsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Authorizations |
353-
| [**BucketsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/BucketsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Buckets |
354-
| [**LabelsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/LabelsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Labels |
355-
| [**OrganizationsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/OrganizationsApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Organizations |
356-
| [**UsersApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/UsersApi.html) | https://docs.influxdata.com/influxdb/v2.0/api/#tag/Users |
350+
| | API docs |
351+
| --- |---------------------------------------------------------------------|
352+
| [**AuthorizationsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/AuthorizationsApi.html) | https://docs.influxdata.com/influxdb/latest/api/#tag/Authorizations |
353+
| [**BucketsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/BucketsApi.html) | https://docs.influxdata.com/influxdb/latest/api/#tag/Buckets |
354+
| [**LabelsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/LabelsApi.html) | https://docs.influxdata.com/influxdb/latest/api/#tag/Labels |
355+
| [**OrganizationsApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/OrganizationsApi.html) | https://docs.influxdata.com/influxdb/latest/api/#tag/Organizations |
356+
| [**UsersApi**](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API/UsersApi.html) | https://docs.influxdata.com/influxdb/latest/api/#tag/Users |
357357

358358

359-
The following example demonstrates how to use a InfluxDB 2.0 Management API to create new bucket. For further information see docs and [examples](/examples).
359+
The following example demonstrates how to use a InfluxDB 2.x Management API to create new bucket. For further information see docs and [examples](/examples).
360360

361361
```ruby
362362
#
@@ -427,7 +427,7 @@ client.close!
427427

428428
### Check the server status
429429

430-
Server availability can be checked using the `client.ping` method. That is equivalent of the [influx ping](https://v2.docs.influxdata.com/v2.0/reference/cli/influx/ping/).
430+
Server availability can be checked using the `client.ping` method. That is equivalent of the [influx ping](https://docs.influxdata.com/influxdb/latest/reference/cli/influx/ping/).
431431

432432
### Proxy configuration
433433

@@ -445,15 +445,15 @@ To overcome this limitation you have to set the client property `redirect_forwar
445445

446446
### InfluxDB 1.8 API compatibility
447447

448-
[InfluxDB 1.8.0 introduced forward compatibility APIs](https://docs.influxdata.com/influxdb/v1.8/tools/api/#influxdb-2-0-api-compatibility-endpoints) for InfluxDB 2.0. This allow you to easily move from InfluxDB 1.x to InfluxDB 2.0 Cloud or open source.
448+
[InfluxDB 1.8.0 introduced forward compatibility APIs](https://docs.influxdata.com/influxdb/v1.8/tools/api/#influxdb-2-0-api-compatibility-endpoints) for InfluxDB 2.x. This allow you to easily move from InfluxDB 1.x to InfluxDB 2.x Cloud or open source.
449449

450450
The following forward compatible APIs are available:
451451

452-
| API | Endpoint | Description |
453-
|:----------|:----------|:----------|
454-
| [query_api.rb](lib/influxdb2/client/query_api.rb) | [/api/v2/query](https://docs.influxdata.com/influxdb/latest/tools/api/#api-v2-query-http-endpoint) | Query data in InfluxDB 1.8.0+ using the InfluxDB 2.0 API and [Flux](https://docs.influxdata.com/flux/latest/) _(endpoint should be enabled by [`flux-enabled` option](https://docs.influxdata.com/influxdb/latest/administration/config/#flux-enabled-false))_ |
455-
| [write_api.rb](lib/influxdb2/client/write_api.rb) | [/api/v2/write](https://docs.influxdata.com/influxdb/latest/tools/api/#api-v2-write-http-endpoint) | Write data to InfluxDB 1.8.0+ using the InfluxDB 2.0 API |
456-
| [health_api.rb](lib/influxdb2/client/health_api.rb) | [/health](https://docs.influxdata.com/influxdb/latest/tools/api/#health-http-endpoint) | Check the health of your InfluxDB instance |
452+
| API | Endpoint | Description |
453+
|:----------|:----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
454+
| [query_api.rb](lib/influxdb2/client/query_api.rb) | [/api/v2/query](https://docs.influxdata.com/influxdb/latest/tools/api/#api-v2-query-http-endpoint) | Query data in InfluxDB 1.8.0+ using the InfluxDB 2.x API and [Flux](https://docs.influxdata.com/flux/latest/) _(endpoint should be enabled by [`flux-enabled` option](https://docs.influxdata.com/influxdb/latest/administration/config/#flux-enabled-false))_ |
455+
| [write_api.rb](lib/influxdb2/client/write_api.rb) | [/api/v2/write](https://docs.influxdata.com/influxdb/latest/tools/api/#api-v2-write-http-endpoint) | Write data to InfluxDB 1.8.0+ using the InfluxDB 2.x API |
456+
| [health_api.rb](lib/influxdb2/client/health_api.rb) | [/health](https://docs.influxdata.com/influxdb/latest/tools/api/#health-http-endpoint) | Check the health of your InfluxDB instance |
457457

458458
For detail info see [InfluxDB 1.8 example](examples/influxdb_18_example.rb).
459459

apis/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44

55
This section contains links to the client library documentation.
66

7-
* [Product documentation](https://docs.influxdata.com/influxdb/v2.0/api-guide/client-libraries/), [Getting Started](../README.md#installation)
7+
* [Product documentation](https://docs.influxdata.com/influxdb/latest/api-guide/client-libraries/), [Getting Started](../README.md#installation)
88
* [Examples](../examples)
99
* [API Reference](https://influxdata.github.io/influxdb-client-ruby/InfluxDB2/API.html)
1010
* [Changelog](../CHANGELOG.md)
1111

12-
Contains client APIs for InfluxDB v2.0. See https://github.com/influxdata/influxdb-client-ruby to know more.
12+
Contains client APIs for InfluxDB v2.x. See https://github.com/influxdata/influxdb-client-ruby to know more.

apis/influxdb-client-apis.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
2929
spec.authors = ['Jakub Bednar']
3030
spec.email = ['[email protected]']
3131

32-
spec.summary = 'Contains client APIs for InfluxDB v2.0.'
32+
spec.summary = 'Contains client APIs for InfluxDB 2.'
3333
spec.description = 'This is the official client APIs for for InfluxDB 2.'
3434
spec.homepage = 'https://github.com/influxdata/influxdb-client-ruby'
3535
spec.license = 'MIT'

bin/generate-sources.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ rm -rf "${SCRIPT_PATH}"/cloud.yml || true
1515
rm -rf "${SCRIPT_PATH}"/influxdb-clients-apigen || true
1616
wget https://raw.githubusercontent.com/influxdata/openapi/master/contracts/oss.yml -O "${SCRIPT_PATH}/oss.yml"
1717
wget https://raw.githubusercontent.com/influxdata/openapi/master/contracts/cloud.yml -O "${SCRIPT_PATH}/cloud.yml"
18+
wget https://raw.githubusercontent.com/influxdata/openapi/master/contracts/invocable-scripts.yml -O "${SCRIPT_PATH}/invocable-scripts.yml"
1819
git clone --single-branch --branch master https://github.com/bonitoo-io/influxdb-clients-apigen "${SCRIPT_PATH}/influxdb-clients-apigen"
20+
mvn -f "$SCRIPT_PATH"/influxdb-clients-apigen/openapi-generator/pom.xml compile exec:java -Dexec.mainClass="com.influxdb.MergeContracts" -Dexec.args="$SCRIPT_PATH/oss.yml $SCRIPT_PATH/invocable-scripts.yml"
1921
mvn -f "$SCRIPT_PATH"/influxdb-clients-apigen/openapi-generator/pom.xml compile exec:java -Dexec.mainClass="com.influxdb.AppendCloudDefinitions" -Dexec.args="$SCRIPT_PATH/oss.yml $SCRIPT_PATH/cloud.yml"
2022

2123
# Generate client
@@ -85,6 +87,12 @@ cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/label_mapping.rb "${SCRIP
8587
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/label_response.rb "${SCRIPT_PATH}"/../apis/lib/influxdb2/apis/generated/models/
8688
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/label_update.rb "${SCRIPT_PATH}"/../apis/lib/influxdb2/apis/generated/models/
8789
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/labels_response.rb "${SCRIPT_PATH}"/../apis/lib/influxdb2/apis/generated/models/
90+
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/scripts.rb "${SCRIPT_PATH}"/../lib/influxdb2/client/models/
91+
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/script.rb "${SCRIPT_PATH}"/../lib/influxdb2/client/models/
92+
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/script_create_request.rb "${SCRIPT_PATH}"/../lib/influxdb2/client/models/
93+
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/script_invocation_params.rb "${SCRIPT_PATH}"/../lib/influxdb2/client/models/
94+
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/script_language.rb "${SCRIPT_PATH}"/../lib/influxdb2/client/models/
95+
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/models/script_update_request.rb "${SCRIPT_PATH}"/../lib/influxdb2/client/models/
8896

8997
# copy supporting files
9098
cp -r "${SCRIPT_PATH}"/generated/lib/influx_db2/api_client.rb "${SCRIPT_PATH}"/../apis/lib/influxdb2/apis/generated/
@@ -96,6 +104,13 @@ sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/health_check.
96104
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/dialect.rb
97105
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/query.rb
98106
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/delete_predicate_request.rb
107+
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/scripts.rb
108+
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/script.rb
109+
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/script_create_request.rb
110+
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/script_invocation_params.rb
111+
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/script_language.rb
112+
sed -i 's/::API//' "${SCRIPT_PATH}"/../lib/influxdb2/client/models/script_update_request.rb
113+
sed -i "s/'Object'/'Hash<String, Object>'/" "${SCRIPT_PATH}"/../lib/influxdb2/client/models/script_invocation_params.rb
99114

100115
rm -rf "${SCRIPT_PATH}"/generated
101116
rm -rf "${SCRIPT_PATH}/influxdb-clients-apigen"

bin/influxdb-onboarding.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
set -e
2525

26-
echo "Wait to start InfluxDB 2.0"
26+
echo "Wait to start InfluxDB 2.x"
2727
wget -S --spider --tries=20 --retry-connrefused --waitretry=5 http://localhost:8086/metrics
2828

2929
echo

bin/influxdb-restart.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,10 @@ docker network rm influx_network || true
3535
docker network create -d bridge influx_network --subnet 192.168.0.0/24 --gateway 192.168.0.1
3636

3737
#
38-
# InfluxDB 2.0
38+
# InfluxDB 2.x
3939
#
4040
echo
41-
echo "Restarting InfluxDB 2.0 [${INFLUXDB_V2_IMAGE}] ... "
41+
echo "Restarting InfluxDB 2.x [${INFLUXDB_V2_IMAGE}] ... "
4242
echo
4343

4444
docker pull "${INFLUXDB_V2_IMAGE}" || true

0 commit comments

Comments
 (0)