quorate/scripts/vlq.sh

47 lines
1.3 KiB
Shell
Raw Permalink Normal View History

# Source this file to define vlq(), a small authenticated VictoriaLogs query
# helper backed by the caller's current Vault session.
vlq() (
set -euo pipefail
export VAULT_ADDR="${VAULT_ADDR:-https://vault.quorate.internal}"
command -v vault >/dev/null 2>&1 || {
printf 'vlq: vault CLI is required\n' >&2
return 127
}
command -v vlogscli-prod >/dev/null 2>&1 || {
printf 'vlq: vlogscli-prod is required\n' >&2
return 127
}
local server="${VLQ_SERVER:-https://logs.quorate.internal/select/logsql/query}"
local vault_path="${VLQ_VAULT_PATH:-secret/victorialogs/vmauth/query}"
local vault_field="${VLQ_VAULT_FIELD:-token}"
local history_file="${VLQ_HISTORY_FILE:-${XDG_STATE_HOME:-$HOME/.local/state}/vlq/history}"
local tmpdir token_file
tmpdir="$(mktemp -d "${TMPDIR:-/tmp}/vlq.XXXXXX")"
chmod 700 "$tmpdir"
trap 'rm -rf "$tmpdir"' EXIT
token_file="$tmpdir/token"
vault kv get -field="$vault_field" "$vault_path" >"$token_file"
chmod 600 "$token_file"
mkdir -p "$(dirname "$history_file")"
if [[ $# -gt 0 ]]; then
printf '%s\n\nq\n' "$*" | vlogscli-prod \
-datasource.url="$server" \
-bearerToken="file://$token_file" \
-historyFile="$history_file"
return
fi
vlogscli-prod \
-datasource.url="$server" \
-bearerToken="file://$token_file" \
-historyFile="$history_file"
)