influx-cli icon indicating copy to clipboard operation
influx-cli copied to clipboard

/query 1.x compatibility API fails to delete data with a false error: "default retention policy not set"

Open tom-ch1 opened this issue 11 months ago • 1 comments

Trying to delete data using the /query 1.x compatibility API, fails with an incorrect error "default retention policy not set for: my_db"

environment

  • OS: Debian: GNU/Linux 12 (bookworm)
  • influx version: Influx CLI dev (git: https://github.com/influxdata/influx-cli/commit/a79a2a1b825867421d320428538f76a4c90aa34c) build_date: 2024-04-16T14:34:32Z
  • retention periods for the bucket in question:
SHOW RETENTION POLICIES ON my_db (queried also using the 1.x compatibility API)
name,tags,name,duration,shardGroupDuration,replicaN,default
,,autogen,0s,168h0m0s,replicaN,true

--> Is this also a bug? when executed in the v1 shell, the query returns:

SHOW RETENTION POLICIES ON my_db 
name,duration,shardGroupDuration,replicaN,default
autogen,0s,168h0m0s,1,true

steps to reproduce

  1. execute a DELETE query using the /query 1.x compatibility API:
curl --get 'http://my_server:8086/query' --header 'Authorization: Token <my token>' --header 'Accept: application/csv' --header 'Content-type: application/json' --data-urlencode 'orgID=m<_org' --data-urlencode 'db=my_db' --data-urlencode 'epoch=ns' --data-urlencode 'q=DELETE FROM heating WHERE time=1735492769351901200'

expected result

data with the indicated timestamp is deleted

actual result

the API returns: {"results":[{"statement_id":0,"error":"default retention policy not set for: my_db"}]}

tom-ch1 avatar Jan 01 '25 19:01 tom-ch1

Additional information:

  • if the token has only read permission on my_db, the error message is correct: "error":"insufficient permissions"
  • if the token has only write permission on my_db, the error message is incorrect (this bug): "error":"default retention policy not set for: my_db"
  • if the token has read and write permission on my_db, the query is executed successfully (data is deleted).

So when deleting data via a query, you need read permission. This should be documented, because it is not intuitive and the error message is misleading

tom-ch1 avatar Jan 02 '25 12:01 tom-ch1