Created
January 22, 2025 20:49
-
-
Save arcsector/3ed5f87d8b23414bdede97cab9f466ea to your computer and use it in GitHub Desktop.
Uploads an app to splunk's appinspect API
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
BASEURI="https://appinspect.splunk.com/v1/app" | |
CACHE_HEADER="Cache-Control: no-cache" | |
USERNAME=$1 | |
APP_PATH=$2 | |
echo "Username: $USERNAME" | |
# Authenticate and get token | |
TOKEN=$(curl --silent -u "$USERNAME" "https://api.splunk.com/2.0/rest/login/splunk" | jq -r .data.token) | |
AUTHORIZATION_HEADER="Authorization: bearer $TOKEN" | |
echo "Token: $TOKEN" | |
sleep 3 | |
# Upload app to appinspect and get request ID | |
REQUEST_ID=$(curl --silent -X POST \ | |
-H "$AUTHORIZATION_HEADER" \ | |
-H "$CACHE_HEADER" \ | |
-F "app_package=@$APP_PATH" \ | |
"$BASEURI/validate") | |
REQUEST_ID=$(echo "$REQUEST_ID"| jq -r .request_id) | |
echo "Request ID: $REQUEST_ID" | |
# Get status | |
STATUS="PROCESSING" | |
while [ "$STATUS" = "PROCESSING" ]; do | |
STATUS=$(curl --silent -X GET \ | |
-H "$AUTHORIZATION_HEADER" \ | |
"$BASEURI/validate/status/$REQUEST_ID" | jq -r .status | |
) | |
sleep 2 | |
done | |
# Download validation report | |
curl -X GET \ | |
-H "$AUTHORIZATION_HEADER" \ | |
-H "$CACHE_HEADER" \ | |
-H "Content-Type: application/json" \ | |
"https://appinspect.splunk.com/v1/app/report/$REQUEST_ID" | jq . > "${APP_PATH}_appinspect_report_$(date +%Y-%m-%dT%H:%M:%S).json" | |
echo "Report downloaded to ${APP_PATH}_appinspect_report_$(date +%Y-%m-%dT%H:%M:%S).json" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment