...
The following example shows how to create a new bucket using one of these tokens:
Code Block | ||||
---|---|---|---|---|
| ||||
#!/bin/sh INFLUX_ORG_ID="4a43da86fa150161" INFLUX_TOKEN="UQ5ayNlN33QK-c6G6fOBU7lKVVynpEF_TijIGxNuhWkSs75TMjnv4yucHjOmDXhSMJmxZzYe9xjQI1MDlEAPuw==" curl --request POST "http://localhost:8086/api/v2/buckets" --header "Authorization: Token ${INFLUX_TOKEN}" --header "Content-type: application/json" --data '{ "orgID": "'"${INFLUX_ORG_ID}"'", "name": "iot-bucket", "retentionRules": [ { "type": "expire", "everySeconds": 86400, "shardGroupDurationSeconds": 0 } ] }' |
...
We can then write to the bucket like this:
Code Block | ||||
---|---|---|---|---|
| ||||
curl -iv -XPOST "http://localhost:8086/write?db=ts-bucket&precision=ns" \ --user "influxv1":"influxv1" --header "Content-Type: text/plain; charset=utf-8" \ --header "Accept: application/json" \ --data-binary ' airSensors,sensor_id=TLM0201 temperature=73.97038159354763,humidity=35.23103248356096,co=0.48445310567793615 airSensors,sensor_id=TLM0202 temperature=75.30007505999716,humidity=35.651929918691714,co=0.5141876544505826 ' |
...
and read the data back like this:
Code Block | ||||
---|---|---|---|---|
| ||||
curl -v --get "http://localhost:8086/query" \ --user "influxv1":"influxv1" \ --data-urlencode "db=ts-bucket" \ --data-urlencode "q=SELECT * FROM airSensors WHERE \"time\" > now()-1h" |
...
Note: JWT authorization is no longer supported in Influxdb v. 2
Client Libraries
There are a number of client libraries available for interacting with influxdb, the full list can be seen here: InfluxDB client libraries
Here is an example of the python client library:
Code Block | ||||
---|---|---|---|---|
| ||||
from influxdb_client import InfluxDBClient, Point, PermissionResource, Permission
from influxdb_client.domain import Authorization
my_org = "iot"
my_url = "http://localhost:8086"
my_username = "influxdb"
my_password = "influxdb"
my_bucket_name = "iot-bucket"
client = InfluxDBClient(url=my_url, username=my_username, password=my_password, org=my_org)
my_org_id = ""
organizations_api = client.organizations_api()
orgs = organizations_api.find_organizations()
# Check if org already exists
my_org_list = [o for o in orgs if o.name == my_org]
if len(my_org_list):
org = my_org_list[0]
my_org_id=org.id
print("Found " + org.name + ", " + my_org_id)
else:
print("Creating " + my_org)
org = organizations_api.create_organization(name=my_org)
my_org_id=org.id
buckets_api = client.buckets_api()
# Check if bucket already exists
bucket = buckets_api.find_bucket_by_name(bucket_name=my_bucket_name);
if not bucket is None:
print("Found " + bucket.name)
else:
print("Creating " + my_bucket_name)
bucket = buckets_api.create_bucket(bucket_name=my_bucket_name)
# Create a new Authorization token for the bucket
bucket_resource = PermissionResource(org_id=my_org_id, id=bucket.id, type="buckets")
read_bucket = Permission(resource=bucket_resource, action="read")
write_bucket = Permission(resource=bucket_resource, action="write")
auth = Authorization()
auth.org_id=my_org_id
auth.permissions=[read_bucket, write_bucket]
auth.description=bucket.name+' Token'
authorizations_api = client.authorizations_api()
authorizations_api.create_authorization(authorization=auth)
# Find available authorizations
authorizations = authorizations_api.find_authorizations()
for auth in authorizations:
print(auth.description + " - " + auth.token + " - " + auth.status + " - " + auth.org_id) |
Links
Manage security and authorization
...