dd-willgan opened a new issue, #8832:
URL: https://github.com/apache/pinot/issues/8832

   Hi, I'm trying to use the Pinot Java Client (recommended over the JDBC 
client for production) with authentication by instantiating a 
[JsonAsyncHttpClientTransportFactory](https://github.com/apache/pinot/blob/master/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/JsonAsyncHttpPinotClientTransportFactory.java)
 and setting the headers / scheme to HTTPS, and afterwards calling 
`buildTransport()` and using 
[ConnectionFactory.fromHostList](https://github.com/apache/pinot/blob/release-0.10.0/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/ConnectionFactory.java#L126).
 A code snippet of this is shown below
   
   ```
   String brokerUrl = "<broker-url>";
   String username = "<username>";
   String password = "<password>";
   String query = "select * from baseball_stats limit 10";
   
   // Add Basic Auth header to connection
   String encoding = Base64.getEncoder().encodeToString((username + ":" + 
password).getBytes());
   Map<String, String> headers = Collections.singletonMap("Authorization", 
"Basic " + encoding);
   
   // Build transport for HTTPS
   JsonAsyncHttpPinotClientTransportFactory factory =
       new JsonAsyncHttpPinotClientTransportFactory();
   factory.setHeaders(headers);
   factory.setScheme("https");
   
   // Establish connection
   Connection conn = ConnectionFactory.fromHostList(
       Collections.singletonList(brokerUrl),
       factory.buildTransport());
   
   // Issue query
   Request pinotClientRequest = new Request("sql", query);
   ResultSetGroup pinotResultSetGroup = conn.execute(pinotClientRequest);
   
   // Extract results
   ResultSet resultTableResultSet = pinotResultSetGroup.getResultSet(0);
   System.out.println(resultTableResultSet.toString());
   ```
   
   `buildTransport()` returns a `PinotClientTransport` interface and that's 
what `ConnectionFactory.fromHostList` takes in as argument as well. However, 
since [PinotClientTransport is not explicitly public i.e. package 
private](https://github.com/apache/pinot/blob/release-0.10.0/pinot-clients/pinot-java-client/src/main/java/org/apache/pinot/client/PinotClientTransport.java#L27),
 the `PinotClientTransport` type can't be referenced. This is not a problem in 
the code snippet above / in Java but leads to errors in Kotlin. Can this 
interface be made public?


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to