Rust SDK
Keeperシークレットマネージャー用Rust SDK資料

ダウンロードとインストール
Cargoでパッケージ追加
ソースコード
RustのソースコードについてはGitHubリポジトリをご覧ください。
SDKの使用方法
初期化
パラメータ
必須
説明
型
token
はい
ワンタイムアクセストークン
String
config
はい
ストレージ設定
KeyValueStorage
シークレットの取得
use keeper_secrets_manager_core::{core::{ClientOptions, SecretsManager}, custom_error::KSMRError, storage::FileKeyValueStorage};
fn main()-> Result<(), KSMRError>{ let token = "".to_string(); let file_name = FileKeyValueStorage::new_config_storage("test.json".to_string())?; let client_options = ClientOptions::new_client_options(token, file_name);
}
use keeper_secrets_manager_core::{core::{ClientOptions, SecretsManager}, custom_error::KSMRError, storage::FileKeyValueStorage};
fn main()-> Result<(), KSMRError>{ let token = "".to_string(); let file_name = FileKeyValueStorage::new_config_storage("test.json".to_string())?; let client_options = ClientOptions::new_client_options(token, file_name);
}
パラメータ
型
必須
デフォルト
説明
uids
Vec<String>
任意
なし
取得するレコードUID
レスポンス
型: Vec
すべてのKeeperレコード、または指定したUIDのレコード
デフォルトでは、指定したトークンでアクセス可能なすべてのレコードを取得します
シークレットから値を取得
パスワードを取得
Keeperシークレットマネージャーからシークレットを取得した後に、そのパスワードを参照できます。
標準フィールドの取得
field_type
String
はい
None
取得するフィールドタイプ
single
boolean
任意
False
最初の値のみを返す
フィールドタイプはKeeperレコードタイプに基づきます。利用可能なフィールドの詳細な一覧については、コマンダーで record-type-info コマンドをご参照ください。
カスタムフィールドの取得
field_type
String
はい
-
取得するフィールドの型
single
boolean
任意
False
最初の値のみを返す
カスタムフィールドはレコードタイプ定義に含まれないフィールドで、ユーザーによって追加できます。
レスポンス
型: String または Vec<String>
フィールドの値または値の集合。単一値になるのは single=true オプションが渡された場合のみです。
タイトルによるレコード検索
レスポンス
型: Record<Option<Vec<Record>>>
record_title
&str
はい
取得するレコードのタイトル
Keeper表記法を使用して値を取得
Keeper表記法の形式と機能については、こちらのページ をご参照ください。
query
String
はい
-
指定したフィールドから値を取得するためのKeeper表記法クエリ
戻り値
クエリで指定したフィールドの値
型: String または Vec<String>
TOTPコードの取得
戻り値
型: Result<TotpCode,KSMRError>
url
String
はい
TOTP URL
シークレットの更新
レコード更新コマンドは、成功してもローカルのレコードデータ (特に更新後のレコードリビジョン) が更新されないため、すでに更新されたレコードに連続して更新を行うと、リビジョンの不一致により失敗します。各更新バッチの後には、必ず更新されたすべてのレコードを再読み込みしてください。
シークレットへの変更を保存する
record
Record
はい
ストレージおよびクエリ構成
transaction_type
UpdateTransactionType
はい
トランザクション更新のための構成
フィールド値は set_standard_field_value_mut または set_custom_field_value_mut を使用して設定します
フィールドはタイプで検索します。
フィールドタイプの一覧については、レコードタイプのページをご参照ください。一部のフィールドは複数の値を持つ場合があり、その場合は値をリストに設定できます。
標準フィールド値の更新
field_type
String
はい
取得するフィールドの型
transaction_type
UpdateTransactionType
はい
なし
トランザクション更新のための構成
フィールドはタイプで検索します。フィールドタイプの一覧については、レコードタイプのページをご参照ください。
カスタムフィールド値の更新
field_type
String
はい
取得するフィールドの型
transaction_type
UpdateTransactionType
はい
なし
トランザクション更新のための構成
ランダムパスワードの生成
password_options
PasswordOptions
はい
パスワードのための構成
charset
String
オプション
パスワードに含める特殊文字の集合
length
i32
オプション
64
パスワードの長さ
lowercase
i32
オプション
0
パスワードに含める小文字の数
uppercase
i32
オプション
0
パスワードに含める大文字の数
digits
i32
オプション
0
パスワードに含める数字の数
special_characters
i32
オプション
0
パスワードに含める特殊文字の数
各パラメータは含める最小文字数を示します。例えば uppercase は大文字の最小数となります。
ファイルのダウンロード
file_name
&str
はい
ダウンロードするファイル名
path
&str
はい
保存先パス
ファイルのアップロード
ファイルのアップロードのパラメータ
owner_record
Record
はい
なし
ファイルをアップロードするレコード
keeper_file
KeeperFileUpload
はい
アップロードするファイル
ファイルのパラメータ
file_path
&str
はい
アップロードするファイルのパス
file_name
Option<&str>
はい
アップロードするファイルの名前
file_title
Option<&str>
はい
アップロードするファイルのタイトル
mime_type
Option<&str>
はい
なし
ファイル内のデータの種類。指定がなければ application/octet-stream が使用されます
戻り値
型: String
添付ファイルのファイルUID
シークレットの作成
要件
共有フォルダUID
共有フォルダはシークレットマネージャーアプリケーションからアクセス可能であること
あなたとシークレットマネージャーアプリケーションに編集権限があること
共有フォルダ内に少なくとも1件のレコードがあること
作成するレコードとレコードフィールドが正しい形式であること
各レコードタイプのフィールド形式についてこちらのページを参照
TOTPフィールドはKSM SDK外部で生成されたURLのみ受け付けます
レコード作成後は upload_file を使って添付ファイルをアップロードできます
record_type
DefaultRecordType
はい
なし
作成するレコードのタイプ
title
String
はい
作成されたレコードのタイトル
note
String
はい
なし
作成されたレコードに記載するノート
value
String
はい
フィールドの値
label
String
はい
なし
フィールドのラベル
required
bool
はい
false
フィールドが必須かどうかを定義します
privacy_screen
bool
はい
false
フィールド値を隠すかどうかを定義します
戻り値
型: String
新規レコードのレコードUID
シークレットの削除
Rust KSM SDKでKeeperボルト内のレコードを削除できます
record_uid
String
はい
なし
削除対象のレコードUID
キャッシュ
ネットワークにアクセスできなくなった場合にシークレットへのアクセスを失わないようにするため、Rust SDKではシークレットをローカルマシン上の暗号化ファイルにキャッシュできます。
キャッシュの設定と構成
Rust SDKでキャッシュを設定するには、SecretsManager オブジェクトを作成する際にキャッシュ用のポスト関数を含める必要があります。
Rust SDKには KSMRCache クラスに標準のキャッシュ機能が含まれており、キャッシュされたクエリをローカルファイルに保存します。これにより災害復旧の仕組みとして機能します(ネットワーク接続がある場合は常にネットワークを優先し、ウェブボルトにアクセスできない場合のみキャッシュを使用します)。
KSMCache クラスの標準キャッシュ機能は、常に最後のリクエストのみを保存します。たとえば、最初のリクエスト(R1)でUID1を正常に取得し、キャッシュが更新された場合、その後のリクエスト(R2)でUID2の取得に失敗すると、キャッシュにはUID2が含まれません。その結果、後続のUID2に関わる操作 (検索や切断など) では、キャッシュに一度も追加されていないため空のレスポンスが返されます。
キャッシュからレコードを更新する場合 (または新規レコードを作成する場合)、キャッシュされたレコードデータは無効化されるため、同じレコードに対する連続更新は失敗します。バッチ更新は異なるレコードを対象とする限り正常に動作します。キャッシュ上のレコードを更新した後は、必ず get_secrets 関数を呼び出してキャッシュをリフレッシュし、ボルトから新しいレコードリビジョンなどの最新メタデータを取得してください。
フォルダ
フォルダは、作成・読み取り・更新・削除 (CRUD) の全操作に対応しています。
フォルダの読み取り
フォルダ階層全体をダウンロードします。
戻り値
型: Vec<KeeperFolder>
フォルダの作成
CreateOptions とフォルダ名の指定が必要です。CreateOptions 内のフォルダUIDパラメータは必須で、これは共有フォルダのUIDを指します。サブフォルダのUIDは任意であり、指定されない場合は親 (共有フォルダ) 直下に通常のフォルダが新規作成されます。サブフォルダは必ずしも親共有フォルダの直接の子である必要はなく、階層を深く設定することも可能です。
create_options
CreateOptions
はい
なし
親とサブフォルダのUID
folder_name
str
はい
フォルダ名
folders
Vec<KeeperFolder>
いいえ
なし
CreateOptionsの親/サブフォルダ検索に使用するフォルダ一覧
フォルダの更新
フォルダのメタデータを更新します。現在はフォルダ名のみ更新可能です。
folder_uid
str
はい
フォルダUID
folder_name
str
はい
新しいフォルダ名
folders
Vec<KeeperFolder>
いいえ
なし
親フォルダを検索するために使用するフォルダのリスト
フォルダの削除
フォルダのリストを削除します。force_deletion フラグで空でないフォルダも削除できます
folder_uids
Vec<String>
はい
―
フォルダUIDのリスト
force_deletion
boolean
いいえ
false
空でないフォルダを強制的に削除
最終更新

