ドキュメント本文へスキップ
Ruby

API キー

`keys.list`、`list_all`、`iterate`、`get`、`create`、`update`、`delete`、`rotate`、`revoke`、そしてリクエストログとアクティビティの読み取り。

すべてのメソッド

keys.rb
key = client.keys.create(  name: "Billing sender",  scopes: ["emails:send"],  domainAllowlist: ["billing.acme.com"],  expiresInMinutes: 60 * 24 * 90) File.write(".openemail-billing-key", key[:token]) client.keys.update(key[:id], enabled: false) rotated = client.keys.rotate(key[:id])File.write(".openemail-billing-key", rotated[:token]) client.keys.revoke(key[:id], reason: "Replaced")client.keys.delete(key[:id])

シークレットを返すのは create と rotate だけで、token で一度だけ返します。読み取りはすべて代わりに maskedKey を返します。update は enabled でキーを無効化・有効化でき、これは revoke の元に戻せる代替です。delete は失効済みのキーしか削除しません:それ以外のキーは 409 not_revoked になります。読み取りには keys:read、変更にはすべて keys:manage が必要です。

gem が create や rotate をリトライすることはありません。応答が失われた後にリトライすると、2 つ目のキーが発行されたり、1 回目の試行で返されたシークレットが無効になったりするからです。update と revoke は、繰り返しても同じキーが残るのでネットワーク障害の後にリトライされますが、delete はリトライされません。

呼び出し元より広くはならない

キーが自分より広いキーを作ったり、そうしたキーに触れたりすることはありません。スコープ、ロール、有効期限、モード、送信範囲のすべてが呼び出し元のキーの内側に収まらなければ、呼び出しはコード beyond_caller_authority の OpenEmail::PermissionError を送出し、param がその軸を示します。一部のドメインやアドレスに絞り込まれたキーは、自身の送信範囲内のキーしか見えません。呼び出し元のキー自身に対する rotate は、client.me.rotate と同じく keys:write でもできます。

再認証はキーによる呼び出しには適用できないため、keys:manage は資格情報を生み出す資格情報です。キーを発行する自動化にだけ与え、そのキーにロール・送信範囲・有効期限を設定し、その行動がすべて記録される list_workspace_activity を見守ってください。

リクエストログとアクティビティ

key_logs.rb
failures = client.keys.list_requests(  "4c1b257a66287fd113bd89d0",  failed_only: true,  since: Time.now - (24 * 60 * 60))puts failures.items.size client.keys.iterate_workspace_activity do |change|  puts [change[:keyName], change[:type], change.dig(:actor, :label)].join(" ")end

list_requests と list_activity は 1 つのキーを、list_workspace_requests と list_workspace_activity はすべてのキーまたは key_ids: で指定したキーを読みます。それぞれに、list_all_requests と iterate_requests のように、list_all_ と iterate_ の対になるメソッドがあります。since: と until: を Time、DateTime、または ISO 8601 の文字列で受け取り、リクエストを読むものは failed_only: も受け取ります。

until は Ruby の予約語ですが、until: は書かれたとおりにキーワード引数として使えます。since: より後でなければならず、そうでなければ呼び出しはコード invalid_parameter の OpenEmail::InvalidRequestError を送出します。