- CLAUDE.md with API reference, auth setup, and workspace details - scripts/fabric-api.sh: helper functions for Fabric REST API - scripts/refresh-token.sh: token refresh and .env writer - .gitignore: protect .env and .omc/ Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
67 lines
1.6 KiB
Bash
Executable file
67 lines
1.6 KiB
Bash
Executable file
#!/bin/bash
|
|
# Microsoft Fabric API Helper Script
|
|
# Refreshes token and provides convenience functions for Fabric REST API
|
|
|
|
set -euo pipefail
|
|
|
|
FABRIC_RESOURCE="https://api.fabric.microsoft.com"
|
|
FABRIC_API_BASE="https://api.fabric.microsoft.com/v1"
|
|
|
|
# Get a fresh token
|
|
get_token() {
|
|
az account get-access-token --resource "$FABRIC_RESOURCE" --query accessToken -o tsv
|
|
}
|
|
|
|
# Generic GET request
|
|
fabric_get() {
|
|
local endpoint="$1"
|
|
local token
|
|
token=$(get_token)
|
|
curl -s -H "Authorization: Bearer $token" "${FABRIC_API_BASE}${endpoint}"
|
|
}
|
|
|
|
# List all workspaces
|
|
list_workspaces() {
|
|
fabric_get "/workspaces" | jq '.value[] | {id, displayName, type}'
|
|
}
|
|
|
|
# List items in a workspace
|
|
list_workspace_items() {
|
|
local workspace_id="$1"
|
|
fabric_get "/workspaces/${workspace_id}/items" | jq '.value[] | {id, displayName, type}'
|
|
}
|
|
|
|
# Get workspace details with all items
|
|
document_workspace() {
|
|
local workspace_id="$1"
|
|
local workspace_name
|
|
workspace_name=$(fabric_get "/workspaces/${workspace_id}" | jq -r '.displayName')
|
|
|
|
echo "=== Workspace: $workspace_name ==="
|
|
echo ""
|
|
echo "--- Items ---"
|
|
fabric_get "/workspaces/${workspace_id}/items" | jq -r '.value[] | "\(.type): \(.displayName) (\(.id))"'
|
|
}
|
|
|
|
# Document ALL workspaces
|
|
document_all() {
|
|
local token
|
|
token=$(get_token)
|
|
local workspaces
|
|
workspaces=$(curl -s -H "Authorization: Bearer $token" "${FABRIC_API_BASE}/workspaces" | jq -r '.value[] | .id')
|
|
|
|
for ws_id in $workspaces; do
|
|
document_workspace "$ws_id"
|
|
echo ""
|
|
done
|
|
}
|
|
|
|
# Get capacities
|
|
list_capacities() {
|
|
fabric_get "/capacities" | jq '.value'
|
|
}
|
|
|
|
# If called directly, run the specified function
|
|
if [[ "${1:-}" != "" ]]; then
|
|
"$@"
|
|
fi
|