KSM CLIを使用した汎用Bashスクリプト
#!/usr/bin/env bash
# 以下のように実行されます
# history -c && echo "BASE64STRING==" | /path/to/script.sh
# これを指定しないと、スクリプトで何かエラーが発生しても
# 成功と報告する可能性があります。
set -o pipefail -e
IFS= read -r params
json=$(echo "$params" | base64 -d)
# JSONパーサーは組み込まれていません。
# JSONを解析するには、jqやfxのようなツールが必要です。
$( echo "$json" | jq -r 'keys[] as $k | "export \($k)=\(.[$k])"' )
echo "providerRecordUid=$providerRecordUid"
echo "resourceRecordUid=$resourceRecordUid"
echo "userRecordUid=$userRecordUid"
echo "newPassword=$newPassword"
echo "oldPassword=$oldPassword"
echo "user=$user"
# 記録のデータは、別のBase64 JSONです。値は「jq」を使用して取得できます
recordJson=$(echo "$records" | base64 -d)
title=$(echo "$recordJson" | jq -r ".[] | select(.uid==\"$providerRecordUid\").title")
echo "Provider Title=$title"
# jqを使用して記録のJSONデータを解析
UserRecordLogin=$(ksm secret get --json --uid=$userRecordUid | jq -r '.fields[] | select(.type == "login" or .label == "login").value[0]')
echo "UserRecordLogin=$UserRecordLogin"
# ボルトの記録にアクセス可能なデバイスの設定を使用して
# ksm CLIバイナリをインストールおよび初期化する必要があります
# 表記法を使用してデータを取得
UserRecordTitle=$( ksm secret notation $userRecordUid/title )
UserRecordLogin=$( ksm secret notation $userRecordUid/field/login )
echo "UserRecordTitle=$UserRecordTitle"
echo "UserRecordLogin=$UserRecordLogin"
最終更新