* add v1-compatible query path and refactor other paths to de-duplicate "/query"
* add initial influxQL repl
* add ping endpoint to schema
* improve prompt UX, implement some commands
* fix json column type in schema and improve completion
* feat: add table formatter and move to forked go-prompt
* improve formatting and add table pagination
* implement more REPL commands, including insert and history
* implement "INSERT INTO"
* move repl command to "v1 repl"
* refactor and improve documentation
* clean up v1_repl cmd
* update to latest openapi, use some openapi paths instead of overrides
* remove additional files that were moved to openapi
* compute historyFilePath at REPL start
* clean up REPL use command logic flow
* clean up comments for TODOs now in issues
* move gopher (chonky boi)
* remove autocompletion for separate PR
* run go mod tidy
* add rfc3339 precision option
* allow left and right column scrolling to display whole table
* add error to JSON query response
* add tags and partial to JSON response series schema
* fix csv formatting and add column formatting
* remove table format for separate PR
* add pretty table format to REPL
* fix getDatabases
* move from write to legacy write endpoint for INSERT
* remove history vestiges
* allow multiple spaces in INSERT commands
* add precision comment
* remove auth for separate PR
* separate parseInsert and add unit test
* add additional test case and improve error messages
* fix missing errors import
* update for simpler horizontal scrolling in table mode
* improve dialog printing
* improve table format and interactions
* jump to first page on shift-up
* add keybinding info
* change wording from result to table, flip
* basic list, create, and invoke working
* all commands working
* added support for create script body from file and invoke params from file
* linter cleanup
* update defaults to existing parameters if not provided
* updated generated mock files, added mock files for scripts, added basic script create test
* added mock script list
* cleanup pass, fixed not using params in list call
* added update mock test
* fixed mock tests requiring go 1.18
* updated openapi, integrated overrides upstream, added new override to fix codegen bug
* added nil check
* fixed routes
* add v1-compatible query path and refactor other paths to de-duplicate "/query"
* add initial influxQL repl
* add ping endpoint to schema
* improve prompt UX, implement some commands
* fix json column type in schema and improve completion
* feat: add table formatter and move to forked go-prompt
* improve formatting and add table pagination
* implement more REPL commands, including insert and history
* implement "INSERT INTO"
* move repl command to "v1 repl"
* refactor and improve documentation
* clean up v1_repl cmd
* update to latest openapi, use some openapi paths instead of overrides
* remove additional files that were moved to openapi
* compute historyFilePath at REPL start
* clean up REPL use command logic flow
* clean up comments for TODOs now in issues
* move gopher (chonky boi)
* remove autocompletion for separate PR
* run go mod tidy
* add back autocompletion & go-prompt
* add rfc3339 precision option
* allow left and right column scrolling to display whole table
* add error to JSON query response
* add tags and partial to JSON response series schema
* fix csv formatting and add column formatting
* remove table format for separate PR
* fix getDatabases
* move from write to legacy write endpoint for INSERT
* remove history vestiges
* allow multiple spaces in INSERT commands
* add precision comment
* remove auth for separate PR
* separate parseInsert and add unit test
* add additional test case and improve error messages
* fix missing errors import
* fix format suggestion
* re-add history implementation with history limit
* build: upgrade to Go 1.18.3 (#395)
* feat: add back the InfluxQL REPL (#386)
* add v1-compatible query path and refactor other paths to de-duplicate "/query"
* add initial influxQL repl
* add ping endpoint to schema
* improve prompt UX, implement some commands
* fix json column type in schema and improve completion
* feat: add table formatter and move to forked go-prompt
* improve formatting and add table pagination
* implement more REPL commands, including insert and history
* implement "INSERT INTO"
* move repl command to "v1 repl"
* refactor and improve documentation
* clean up v1_repl cmd
* update to latest openapi, use some openapi paths instead of overrides
* remove additional files that were moved to openapi
* compute historyFilePath at REPL start
* clean up REPL use command logic flow
* clean up comments for TODOs now in issues
* move gopher (chonky boi)
* remove autocompletion for separate PR
* run go mod tidy
* add rfc3339 precision option
* allow left and right column scrolling to display whole table
* add error to JSON query response
* add tags and partial to JSON response series schema
* fix csv formatting and add column formatting
* remove table format for separate PR
* fix getDatabases
* move from write to legacy write endpoint for INSERT
* remove history vestiges
* allow multiple spaces in INSERT commands
* add precision comment
* remove auth for separate PR
* separate parseInsert and add unit test
* add additional test case and improve error messages
* fix missing errors import
* print rfc3339 precision
* add rfc3339 to help output
* run tidy
* restructure autocomplete and handle review items
* improve autocompletion with leftover handling
* improve comments and add autocomplete for DELETE & DROP MEASUREMENT
* rename repl to shell
* remove unsupported CREATE & DROP autocompletions
* additional refactor for autocompletion
Co-authored-by: Dane Strandboge <dstrandboge@influxdata.com>
* add v1-compatible query path and refactor other paths to de-duplicate "/query"
* add initial influxQL repl
* add ping endpoint to schema
* improve prompt UX, implement some commands
* fix json column type in schema and improve completion
* feat: add table formatter and move to forked go-prompt
* improve formatting and add table pagination
* implement more REPL commands, including insert and history
* implement "INSERT INTO"
* move repl command to "v1 repl"
* refactor and improve documentation
* clean up v1_repl cmd
* update to latest openapi, use some openapi paths instead of overrides
* remove additional files that were moved to openapi
* compute historyFilePath at REPL start
* clean up REPL use command logic flow
* clean up comments for TODOs now in issues
* move gopher (chonky boi)
* remove autocompletion for separate PR
* run go mod tidy
* add rfc3339 precision option
* allow left and right column scrolling to display whole table
* add error to JSON query response
* add tags and partial to JSON response series schema
* fix csv formatting and add column formatting
* remove table format for separate PR
* fix getDatabases
* move from write to legacy write endpoint for INSERT
* remove history vestiges
* allow multiple spaces in INSERT commands
* add precision comment
* remove auth for separate PR
* separate parseInsert and add unit test
* add additional test case and improve error messages
* fix missing errors import
* print rfc3339 precision
* add rfc3339 to help output
* fix: template apply uses better diff checking
Previously, we did a DeepEqual of all the returned data about each changed entity,
but due to our template overrides that is not actually all the information
available for each entity. So we marked trivial things as 'conflicts' (e.g.
telegraf config ID's 'changing' from the empty string to the real, current value)
while not catching important conflicts like flux script changes in checks and tasks.
Changes to make things more straightforward:
* Change the --force behaviour to be more similar to `apt install`, where even
in non-interactive mode `--force yes` is required to bypass the prompt to apply.
* Before, there were two stages of diff checking - once to print diffs, and once
after the 'Yes/No' prompt. If any conflicts were detected in the second check,
the user got an inscrutable error message that did not highlight what the difference
was or how to force it to apply. `--force conflict` was required to avoid this error.
Instead, we now have simplified to `--force yes` to bypass the 'Yes/No' prompt, and
we never do a second stage of diff checking.
* Because we do not currently properly account for more complicated diffs (e.g.
flux tasks), we now assume in the diff printing that every object has changes,
except for Labels, Buckets, Variables, and Label Mappings. This could be improved
in the future.
* fix: when statestatus is 'remove', mark as removed
* Add openapi submodule instructions to README.md
Add instructions for updating the influx-cli/openapi git submodule when regenerating the CLI.
* update: instructions to update openapi
Add instructions to update and regenerate influx-cli/openapi when changing commits.
Influxdata cloud2 uses a different mechanism to enable tracing.
You need to pass a `influx-debug-id` header (the value is ignored) and if the response contains
`trace-sampled: true` then the response's `trace-id` header contains a valid trace ID that can be
used to jump to the trace in jaeger.
If the request has been sampled, we print the trace-id to stderr.
Since modern terminals allow to click on hyperlinks, we could avoid a copy&paste of the trace id
if the `influx` binary wrote a the link to the jeager trace.
However, we don't want to hardcode the URL of the internal jaeger endpoint in the binary.
I tried adding a wrapper script on my machine that would just capture the trace-id and render it, but it's
hard to do without messing with the ordering of the stderr and stdout lines.
Thus I preferred adding a secret env var that controls the formatting of the trace-id and can be used
by our devs to generate links to our internal jaeger instance.
```console
$ export INFLUX_CLI_TRACE_PRINT_PREFIX="Trace: https://jaeger.my.cloud/trace/"
$ influx query --trace-debug-id 123 -f query.flux
Trace: https://jaeger.my.cloud/trace/f39a69354a3acca6
Result: _result
Table: keys: [_measurement]
...
```
* feat: added functionality for replication update command
* refactor: changed replication update usage text for clarity
* fix: added closing bracket back in
* chore: ran make fmt
* feat: added functionality for replication delete command
* refactor: changed naming of remote-id flag to be consistent with other influx commands
* refactor: reduced lines of code and improved error message based on code review