apache / apache/arrow-java

[FlightRPC][FlightSQL][Java] Make FlightSqlClientDemo a general purpose tool

Open
#348 0 comments 0 reactions 0 assignees View on GitHub
Type: enhancement
Dominant language
Java
Stars
94
Forks
152
Avg merge
3d 16h
Merged PRs (30d)
11

Description

The FlightSqlClientDemo test program has a limited set of options that prevents it from being used against production databases. It does work against the Derby and SQLite examples though.

The major limitation is that there is no way to supply authentication information. The proposal here is to add support for passing in HTTP basic credentials and Authorization: Bearer headers.

Another useful feature would be an option to supply arbitrary headers (as a way of support server-specific options).

Lastly, it would be good to add an interactive mode that just ran the tool in a loop based on user input (and use ClientCookieMiddleware in this mode to persist state).

A shaded configuration of the flight-sql module that set this tool's main function as the JAR entry point would make it more friendly to run as well.

This would make the tool comparable to SQLLine.

**Reporter**: [James Duong](https://issues.apache.org/jira/browse/ARROW-15843) / @jduo

**Note**: *This issue was originally created as [ARROW-15843](https://issues.apache.org/jira/browse/ARROW-15843). Please see the [migration documentation](https://github.com/apache/arrow/issues/14542) for further details.*

Contributor guide

Open the contributing guide

Research direction

Start by locating the FlightSqlClientDemo test program and the flight-sql module configuration. Review how ClientCookieMiddleware could support the proposed interactive mode, then define the scope for credentials, bearer and arbitrary headers, interactive execution, and the shaded JAR entry point. Done means the tool supports the selected options and can be run conveniently against production databases.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.