Skip to main content

StarTree Pinot Auth API

info

This is an alpha feature only for new StarTree Self Serve trial users. StarTree support team continues to be the prefered point of contact for existing customers to get help.

Go to your workspace

image

Go to services

image

Click on your Pinot cluster name. Then there is a tab called Pinot API token

image

In that page you can create a new Pinot API token

image

Copy the token to the clipboard and test the swagger API with it. Add "Basic keyword and space" in the beginning og the token and then use it in Swagger API "Authorization" button or in curl command as part of "--header 'Authorization: " parameter

Sample curl command:

curl --location --request GET 'https://pinot.tls.tls-test.startree-dev.cloud/appconfigs' \
--header 'Authorization: Basic NGNlZmI4NDgwZjhmNGE3ODg2YTVjOWRhMTA1NmE3YjU6eVlHVVlsV1BVaU5OTjQ2bkZaY09vM2FUT3FJQ1AyYUFrMXF4VDVCOEFKUT0='

Infer Pinot Username/Password from Pinot API token

In some applications like Superset or Trino, you might need to use the username/password format of this API token.

The API token is a base64 encoded string of the username and password separated by a colon. You can use https://www.base64decode.org/ to convert your Pinot API token to "[username]:[password]" format.

For example:

Below is your Pinot API Token NGNlZmI4NDgwZjhmNGE3ODg2YTVjOWRhMTA1NmE3YjU6eVlHVVlsV1BVaU5OTjQ2bkZaY09vM2FUT3FJQ1AyYUFrMXF4VDVCOEFKUT0=

This is your converted Pinot API Token after the decoding:

4cefb8480f8f4a7886a5c9da1056a7b5:yYGUYlWPUiNNN46nFZcOo3aTOqICP2aAk1qxT5B8AJQ=

Where your username and password are separated by a colon within the decoded string.

username = 4cefb8480f8f4a7886a5c9da1056a7b5

password = yYGUYlWPUiNNN46nFZcOo3aTOqICP2aAk1qxT5B8AJQ=

Or you can use the following bash command to infer the username and password from the API token:

PINOT_API=NGNlZmI4NDgwZjhmNGE3ODg2YTVjOWRhMTA1NmE3YjU6eVlHVVlsV1BVaU5OTjQ2bkZaY09vM2FUT3FJQ1AyYUFrMXF4VDVCOEFKUT0=

PINOT_USERNAME=`echo ${PINOT_API} | base64 --decode | awk -F ':' '{print $1}'`
echo ${PINOT_USERNAME}

PINOT_PASSWORD=`echo ${PINOT_API} | base64 --decode | awk -F ':' '{print $2}'`
echo ${PINOT_PASSWORD}

The output is

4cefb8480f8f4a7886a5c9da1056a7b5
yYGUYlWPUiNNN46nFZcOo3aTOqICP2aAk1qxT5B8AJQ=

Testing with Swagger

You can use swagger to check if the API is working for you correctly.

imageimageimage

Successful operations after executing you will get a list of users in JSON format, as shown in the following screenshot.

image