diff --git a/tinybird/Dockerfile b/tinybird/Dockerfile index 17d589a..a0f3092 100644 --- a/tinybird/Dockerfile +++ b/tinybird/Dockerfile @@ -3,6 +3,7 @@ FROM python:3.13-slim@sha256:6544e0e002b40ae0f59bc3618b07c1e48064c4faed3a15ae2fb # Install dependencies RUN apt-get update && apt-get install -y --no-install-recommends \ curl \ + jq \ ca-certificates \ && rm -rf /var/lib/apt/lists/* @@ -10,6 +11,7 @@ WORKDIR /home/tinybird # Install Tinybird using the standard installation script COPY handleLogin.sh /usr/local/bin/tinybird-login +COPY getTokens.sh /usr/local/bin/get-tokens COPY tb-wrapper /usr/local/bin/tb-wrapper RUN curl https://tinybird.co | sh diff --git a/tinybird/getTokens.sh b/tinybird/getTokens.sh new file mode 100755 index 0000000..d292525 --- /dev/null +++ b/tinybird/getTokens.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +# Get token from .tinyb JSON file +USER_TOKEN=$(jq -r '.token' .tinyb) +echo "User token: $USER_TOKEN" + +if [ -z "$USER_TOKEN" ] || [ "$USER_TOKEN" = "null" ]; then + echo "Error: Could not find token in .tinyb file" + exit 1 +fi + +# Get host from .tinyb JSON file +HOST=$(jq -r '.host' .tinyb) +echo "Host: $HOST" + +if [ -z "$HOST" ] || [ "$HOST" = "null" ]; then + echo "Error: Could not find host in .tinyb file" + exit 1 +fi + +# Get id from .tinyb JSON file +WORKSPACE_ID=$(jq -r '.id' .tinyb) +echo "Workspace ID: $WORKSPACE_ID" + +if [ -z "$WORKSPACE_ID" ] || [ "$WORKSPACE_ID" = "null" ]; then + echo "Error: Could not find id in .tinyb file" + exit 1 +fi + +# Make GET request to tokens endpoint and parse response +RESPONSE=$(curl -s -X GET \ + "$HOST/v0/tokens" \ + -H "Authorization: Bearer $USER_TOKEN") + +# Parse tokens from response +ADMIN_TOKEN=$(echo "$RESPONSE" | jq -r '.tokens[] | select(.name == "admin token") | .token') +TRACKER_TOKEN=$(echo "$RESPONSE" | jq -r '.tokens[] | select(.name == "tracker") | .token') + +# Echo the tokens as proof of concept +echo "Admin token: $ADMIN_TOKEN" +echo "Tracker token: $TRACKER_TOKEN" \ No newline at end of file