キー、メンバー、ロール
API キーを管理してその操作を読み、メンバーを招待して管理し、ロールを作成し、使っている認証情報を確認し、使い捨て受信トレイを作ります。
概要
これらのコマンドは、誰が、何がワークスペースにアクセスできるかを決めます。openemail keys は API キーを管理し、それぞれの操作を読みます。openemail members はワークスペースのメンバーとその招待を管理し、openemail roles はメンバーやキーができることを定義します。openemail me は呼び出しに使っているキーやサインインを説明し、openemail languages は翻訳付きの送信が受け付ける言語を一覧表示します。使い捨て受信トレイにはサインインがまったく不要です。普段使うのは openemail temp で、openemail temp-mail はその背後にある API のすべての呼び出しです。openemail api は、他のコマンドが扱わない任意のエンドポイントに届きます。
- キーのコマンドは、
keys listに表示されるとおり、oe_live_の後の 16 進数 24 文字であるキー ID を受け取ります。メンバーのコマンドは、メールアドレスではなく、members listのuserIdであるアカウント ID を受け取ります。ロールには名前での検索がないため、ロールのコマンドはroles listから得られるrole_の ID を受け取ります。 - 名前空間は
key、member、role、language、tempMailでも使えます。ls、show、new、edit、rmなど、いつもの動詞の別名が使えます。動詞がaddとremoveのmembersでは、newとcreateはaddに、rm、del、deleteはremoveになります。 openemail <command> --helpは、すべての引数とフラグを、その型、呼び出しに必要なスコープ、メソッドとパス、返ってくるものとともに一覧表示します。--jsonを付けると、同じページをデータとして出力します。
すべてのコマンド
| コマンド | 機能 |
|---|---|
| openemail me get | 呼び出しに使っている API キーまたはブラウザでのサインインを説明します。スコープ、上限となるロール、ワークスペース、送信元として使えるアドレスです。スコープは不要です |
| openemail me ping | 正常性チェックのために、認証情報で認証できることを確認します。スコープは不要です |
| openemail me rotate | 呼び出しに使っている API キーに新しいシークレットを与えます。シークレットは 1 回だけ表示されます。確認を求めます |
| openemail keys list | ワークスペースの API キーを新しい順に、ステータス、スコープ、ロール、送信範囲、最終使用とともに一覧表示します。シークレットは決して含まれません |
| openemail keys get <id> | 1 つのキーをシークレットなしで読みます |
| openemail keys create --name <value> | キーを発行し、そのシークレットを token で 1 回だけ受け取ります |
| openemail keys update <id> | キーの名前を変更するか、スコープや送信範囲を置き換えるか、--no-enabled と --enabled でオフとオンを切り替えます |
| openemail keys delete <id> | 取り消したキーを、履歴を残したまま一覧から削除します。確認を求めます |
| openemail keys rotate <id> | キーに新しいシークレットを与え(1 回だけ表示されます)、古いものはすぐに止めます。確認を求めます |
| openemail keys revoke <id> | キーを恒久的に取り消します。--reason は任意です。確認を求めます |
| openemail keys list-requests <id> | 1 つのキーのリクエストログを読みます。メソッド、パス、ステータス、エラーコード、所要時間、IP、ユーザーエージェントです |
| openemail keys list-activity <id> | 1 つのキーに何が起きたかを読みます。作成、変更、ローテーション、オフとオン、取り消し、削除、そして拒否されたすべての呼び出しです |
| openemail keys list-workspace-requests | 見えるすべてのキー、または --key-ids で指定したキーのリクエストログを読みます |
| openemail keys list-workspace-activity | 見えるすべてのキー、または --key-ids で指定したキーに何が起きたかを読みます |
| openemail roles list | ワークスペースのロールを、あらかじめ用意されたものから順に、それぞれを持つメンバーとキーの数とともに一覧表示します |
| openemail roles get <id> | 1 つのロールを、その権限とリアルタイムの使用数とともに読みます |
| openemail roles create --name <value> --permissions <a,b> | カスタムロールを作成します。--description は任意です |
| openemail roles update <id> | ロールの名前や説明を変更するか、権限のリスト全体を置き換えます |
| openemail roles delete <id> | ロールを削除し、そのロールを持つ人を --reassign-to のロールに移します。確認を求めます |
| openemail roles list-permissions | 権限の一覧を、ラベル、グループ、キーが持てるかどうかとともに表示します |
| openemail members list | アクセス権を持つ全員を、オーナーから順に、ロール、権限、それぞれが使えるアドレスとドメインとともに一覧表示します |
| openemail members get <user-id> | アカウント ID で 1 人のメンバーを読みます |
| openemail members add --email <value> --role-id <value> | ロールを付けて誰かを招待します。--address-ids、--domain-ids、--access でアドレスやドメイン全体も付与できます |
| openemail members update <user-id> --role-id <value> | メンバーを別のロールに移します。アドレスとドメインの付与はそのまま残ります |
| openemail members remove <user-id> | 誰かを、その人が持つすべてのアドレスの付与とともにワークスペースから外します。確認を求めます |
| openemail members grant-address <user-id> --address-id <value> | メンバーに 1 つのアドレスを付与するか、そのアドレスへの --access を変更します |
| openemail members revoke-address <user-id> <address-id> | メンバーから 1 つのアドレスを取り上げます。確認を求めます |
| openemail members list-invitations | まだ誰も承諾していない招待を、期限切れのものも含めて一覧表示します |
| openemail members revoke-invitation <invitation-id> | 招待を取り下げ、そのリンクを使えなくします。確認を求めます |
| openemail members resend-invitation <invitation-id> | 新しいリンクと 14 日間の延長付きで、招待をもう一度送ります |
| openemail languages list | 翻訳付きの送信が受け付けるすべての言語を、選択肢として表示すべき順に一覧表示します。スコープは不要です |
| openemail temp new [--name <local-part>] [--domain <domain>] [--ttl <minutes>] | 使い捨て受信トレイを作成し、そのアドレスだけを表示します。サインインは不要です |
| openemail temp list | この CLI が作成した使い捨て受信トレイを、ネットワークを使わずに一覧表示します |
| openemail temp read [inbox] [message-id] | 受信トレイのメールを一覧表示するか、1 通のメッセージを読みやすいテキストで表示します |
| openemail temp watch [inbox] [--first] | 3 秒ごとに確認し、新しいメッセージが届くたびに表示します |
| openemail temp delete [inbox] [--yes] | 受信トレイとそのメールを今すぐ削除し、トークンを忘れます。確認を求めます |
| openemail temp-mail list-domains | 使い捨て受信トレイを作成できるドメインを一覧表示します。認証情報は不要です |
| openemail temp-mail create | 使い捨て受信トレイとその受信トレイトークンを作成し、CLI がトークンを保存します。認証情報は不要です |
| openemail temp-mail get <inbox-id> | 受信トレイの有効期限、残りの延長回数、メッセージ数を読みます |
| openemail temp-mail extend <inbox-id> | 受信トレイの作成から 24 時間以内であれば、有効期限を最大 1 時間延ばします |
| openemail temp-mail delete <inbox-id> | 受信トレイとそのメールを今すぐ破棄します。確認を求めます |
| openemail temp-mail list-messages <inbox-id> | メッセージを新しい順に 1 ページ、それぞれ短いプレーンテキストの抜粋とともに一覧表示します |
| openemail temp-mail get-message <inbox-id> <message-id> | 1 通のメッセージを保存された本文とともに読み、既読にします |
| openemail temp-mail delete-message <inbox-id> <message-id> | 1 通のメッセージを本文と添付ファイルとともに削除します。確認を求めます |
| openemail temp-mail list-attachments <inbox-id> <message-id> | メッセージの添付ファイルを、バイト列を base64 にして読みます |
| openemail api <method> <path> | サインイン、その確認コード、確認を使って、任意の REST エンドポイントを呼び出します |
すべてのフラグは各コマンドのヘルプにあります。たとえば openemail keys create --help、openemail members add --help、openemail temp new --help です。
API キー
キーを読むには keys:read が、すべての変更には keys:manage が必要です。ブラウザでのサインインには keys:write も keys:manage も決して付与されないため、キーの作成、変更、ローテーション、取り消し、削除には keys:manage を持つ API キーか Web アプリ(openemail open api-keys)が必要です。keys:read を持つブラウザでのサインインがキーを読めるのはワークスペースのオーナーの場合だけで、メンバーのサインインは 403 owner_only で拒否されます。
keys create、keys rotate、me rotateはキーのシークレットをtokenに 1 回だけ表示し、CLI は二度と表示されないことを警告します。読み取りではすべて代わりにmaskedKeyが表示されます。- 省略した場合、新しいキーは
emails:sendだけを持ち、作成したキーのロール、送信範囲、有効期限を引き継ぎます。--domain-allowlistと--address-allowlistで送信元として使えるアドレスを設定し、--expires-in-minutesは 5 から 5,256,000(10 年)を受け付けます。 - キーが自分より広い権限のキーを作ったり、それにアクセスしたりすることはありません。スコープ、ロール、有効期限、モード、送信範囲はすべて呼び出し元のキーの範囲内でなければならず、そうでなければ呼び出しは 403
beyond_caller_authorityで拒否され、paramで広すぎたものが示されます。一部のドメインやアドレスに絞られたキーには、自身の送信範囲内のキーしか見えず、それ以外は 404 になります。 keys updateは送ったものを置き換えます。--scopes、--address-allowlist、--domain-allowlistはそれぞれ新しいリスト全体を受け取り、省略したフラグはそのまま残ります。--no-enabledはキーをオフにし、そのキーでの呼び出しはすべてinactive_api_keyで拒否されます。--enabledで元どおりに戻ります。これで、元に戻せる方法でキーを止められます。keys revokeは恒久的です。キーを再びオンにすることも、ローテーションや変更をすることもできなくなります。keys deleteは取り消したキーだけを削除し、それ以外は 409not_revokedで拒否されます。削除したキーのリクエストログとアクティビティは「削除されたキー」として残ります。keys rotateには重複期間がないので、新しいシークレットが返った瞬間に古いシークレットは使えなくなります。そのキーが保存済みのプロファイルで使っているものであれば、CLI は新しいシークレットをそのプロファイルに保存するので、引き続き動作します。OPENEMAIL_API_KEYや--api-keyのキーは保存できないので、CLI は古いキーを保管していた場所に新しいトークンを保存するよう伝えます。
リクエストログは、キーが行ったすべての呼び出しを記録します。メソッド、パス、ステータス、エラーコード、所要時間、IP、ユーザーエージェントで、本文やクエリ文字列は決して含みません。何も削除されないので、キーの最初の呼び出しまでさかのぼれます。ブラウザでのサインインで行った呼び出しは含まれません。アクティビティログは、キーへのすべての変更と、そのキーを提示して拒否されたすべての呼び出しを auth_failed として記録し、誰が変更したかを actor に記録します。
list-requestsとlist-activityは 1 つのキーを読みます。list-workspace-requestsとlist-workspace-activityは、見えるすべてのキー、または--key-idsで指定した最大 50 個のキーを、削除したキーも含めて読みます。--sinceと--untilは期間を絞り込み、2026-09-01T00:00:00Zのような ISO 8601 の日時を受け取ります。--failed-onlyはステータスが 400 以上で応答された呼び出しだけを残します。
自分の認証情報と言語
呼び出しが拒否されたときに最初に実行するコマンドは openemail me get です。スコープが不要なので、有効なキーやサインインであれば何でも自分自身を説明できます。
scopesは認証情報が今できることで、作成時のスコープを発行元のロールで絞り込んだものが、リクエストのたびに計算されます。grantedScopesは作成時のスコープで、roleIdはロールを示します。grantedScopesにあってscopesにないスコープは、ロールによって外されたものです。スコープを持っているように見えるキーで 403insufficient_scopeになるのはたいていこれが理由で、別のキーを発行するのではなくロールを変更して直します。domainAllowlistとaddressAllowlistは送信元として使えるアドレスを示します。両方とも null なら、ワークスペースが持つ任意のアドレスです。- ブラウザでのサインインの場合は、そのサインインを説明します。
objectはoauth_token、clientIdはこの CLI の接続済みアプリを示し、expiresAtは承認が終わる日時で、終わらない場合は null です。 me pingは同じスコープの詳細付きでok: trueを返しますが、許可リストは含まないので、正常性チェックに向いています。取り消された、期限切れの、オフにされた、または入力を誤ったキーは 401 と終了コード3で失敗します。me rotateは呼び出しに使っているキーに新しいシークレットを与えます。ブラウザでのサインインが決して持たないkeys:writeが必要なので、API キーが必要です。キーのそれ以外の設定はそのまま残り、古いシークレットはすぐに使えなくなり、keys rotateと同じく保存済みのプロファイルには新しいものが保存されます。応答が失われると、誰も見ていないシークレットのままキーが残ることがあり、その場合は Web アプリで新しいシークレットが必要になります。openemail whoamiは同じ応答を人が読みやすい形で表示します。
openemail languages list は言語の表全体(約 200 行)を 1 回の応答で表示し、各言語のコード、英語名、現地語名、旗、右から左に書くかどうかを示します。翻訳付きの送信の対象には、コード、英語名、現地語名のどれでも使えます。サインインは必要ですが、スコープは不要です。openemail ai languages は同じ表を --search フラグ付きで表示し、サインアウトしている場合は CLI に同梱された表を表示します。
メンバーとロール
メンバーは、決して統合されない 2 つのものを持ちます。ロールは何ができるかを示し、アドレスとドメインの付与はどのメールに対してできるかを示します。付与にはそれぞれ独自のアクセス権があり、member は読み取りと送信、viewer は読み取りだけです。送信には両方が必要なので、emails:send を持つロールでも、アドレスへの付与が viewer ならそのアドレスからは送信できません。ドメイン全体の付与は、後で作られたものも含め、そのドメインのすべてのアドレスを対象にします。
members listはワークスペースのオーナーをisOwnerの印付きで先頭に置くので、席数を数えるときはその行を除いてください。オーナーはすべての権限を持ち、招待、変更、削除はできません。また、すでにワークスペースにいる人を再び招待することもできません。どちらも 422member_is_ownerになります。- アドレスの付与は持っているがロールを与えられたことのない人は
implied: true付きで返り、ロールは付与から推定されます。members updateで正式なロールを与えられます。 members addは、すでにアカウントを持っている人にも招待を送ります。承諾されるまで何も付与されず、承諾されると招待に含まれるロール、アドレス、ドメインがそのまま付与されます。10 分以内に同じアドレスを再び招待すると 409invitation_too_soonになり、それ以降は 2 通目を送る代わりに保留中の招待を更新します。resend-invitationはさらに 14 日間有効な新しいリンクを送り、古いリンクを無効にします。これで期限切れの招待も更新されます。revoke-invitationは招待を取り下げますが、すでに承諾された招待は 409invitation_acceptedになるので、代わりにメンバーを削除してください。members updateはロールだけを変更します。grant-addressは 1 つのアドレスを付与するか、そのアクセス権を変更するので、別の--accessでもう一度実行すると、2 つ目を追加するのではなく付与が変更されます。revoke-addressは 1 つのアドレスを取り上げ、残りはそのままにします。推定されたメンバーの最後の付与を取り消すと、その人はワークスペースから外されます。members removeは、その人のワークスペースへのアクセス、メンバーシップ、すべての付与を終わらせ、取り消されたアドレスの付与の数をaddressesRevokedで報告します。その人のアカウントと送信したメールには手を付けません。
ロールは、その下で発行された API キーの上限でもあります。キーができることは、キー自身のスコープをロールの権限で絞り込んだもので、リクエストのたびに計算されます。
roles listは、あらかじめ用意されたロールを Owner、Admin、Member、Viewer、Developer、Billing の順に先頭に表示し、その後にカスタムロールを名前順に表示します。ワークスペースに作れるカスタムロールは最大 24 個で、それを超えるとroles createは 422role_limit_reachedになります。- ロールは、その権限が含意する権限も保存するので、
templates:writeはtemplates:readも保存し、roles:writeはroles:readとmembers:readを伴います。リストは推測せず、応答から読み直してください。 roles update --permissionsはリスト全体を置き換えるので、ロールを読み、リストを変更し、すべてを送ってください。--description nullは説明を消去します。変更は、そのロールを持つすべてのメンバーとキーの次の呼び出しから有効になります。- Owner 以外のすべてのロールは、あらかじめ用意されたものも含めて、名前の変更、書き換え、削除ができ、削除したあらかじめ用意されたロールは戻りません。オーナーのロールは、編集には 409
role_immutable、削除には 409role_undeletableを返します。 - いずれかのメンバー、API キー、保留中の招待がロールを持っている間、
roles deleteにはそれらを引き継ぐロールを指定した--reassign-toが必要で、なければ 409role_in_useで拒否されます。取り消されたキーもロールを指したままなので、apiKeysの数が 0 のロールでも必要な場合があります。応答では、移された人数がreassigned、キーの数がkeysReassignedとして報告されます。 roles list-permissionsは権限の一覧全体を、それぞれラベルとグループ付きで表示します。billing:writeやworkspace:manageなど一部はscope: falseで返ります。ロールは持てますが、キーは持てません。
roles:write を持つキーは、自分の上限となるロールを編集して、次の呼び出しから自分の権限を広げられます。読み取りだけが必要なキーにはこのスコープを付けないでください。ブラウザでのサインインでは、承認が一部のドメインやアドレスではなくワークスペース全体を対象にしている場合にだけ、members:write と roles:write が付与されます。
使い捨て受信トレイ
使い捨て受信トレイにはアカウントもサインインも不要です。独自の受信トレイトークンでアクセスし、トークンは oe_inbox_ で始まり、受信トレイの作成時に 1 回だけ返されます。普段は openemail temp を使い、残りの延長回数、延長、添付ファイルのバイト列など、temp が示さないフィールドや手順が必要なときは openemail temp-mail を使います。
- どちらもトークンを、自分だけが読める
~/.openemail/temp-mail.jsonに保存します。temp newとtemp-mail createがトークンを保存し、temp listはどちらの方法で作った受信トレイも表示し、どちらの削除でもトークンは忘れられます。保存済みの受信トレイは、コマンドが ID を求める場所ならどこでもアドレスで指定できます。 - この CLI が作成していない受信トレイには、
--inbox-tokenでトークンを渡してください。保存済みのトークンも渡されたトークンもない場合、コマンドは何も送らないうちに終了コード3で停止します。 - 2 つの作成コマンドはフラグの名前が異なります。
temp newは--name、--domain、--ttlを、temp-mail createは--local-part、--domain、--ttl-minutesを受け取ります。ローカルパートは英字、数字、ドット、ハイフン、アンダースコアで 3 から 32 文字、英字か数字で始まって終わる必要があり、postmasterなどの名前は拒否されます。リース期間は 1 から 1440 分で、既定は 60 分です。 - 各 IP アドレスは 1 時間に 6 個、1 日に 30 個の受信トレイを作成でき、それを超えると 429
too_many_inboxes(終了コード8)になります。すでに持っている受信トレイの延長は数えられないので、この上限への対処はtemp-mail extendです。 temp-mail extendは最大 1 時間延長しますが、受信トレイの作成から 24 時間を超えることはなく、延長は最大 23 回です。応答のextensionsLeftを読んでください。0 になると、以降はずっと 409extension_limitになります。temp-mail list-messagesは 1 ページに 1 から 50 通(既定は 50 通)のメッセージを読み、それぞれに最大 400 文字のプレーンテキストのsnippetが付きます。そこにはワンタイムコードが含まれていることがよくあります。ページを超えた分が捨てられることはなく、--allですべてのページをたどれます。temp read、temp-mail get-message、temp-mail list-attachmentsでメッセージを読むと既読になります。2 MB を超える本文は切り詰められ、truncatedでそれがわかります。8 MB を超える添付ファイルはそもそも保存されないので、そのcontentは null です。- 受信トレイを削除するとそのメールはすぐに削除されますが、アドレスは本来のリース終了から 7 日後まで予約されたままで、それまでに同じアドレスを求めると 409
address_takenになります。
使い捨て受信トレイのメールは、誰でも指定できるアドレス宛てに見知らぬ相手から届きます。送信者は検証されず、中身もスキャンされないので、リンク、HTML、添付ファイルは慎重に扱ってください。
任意のエンドポイントと security 名前空間
openemail api <method> <path> は他のすべてのコマンドと同じ通信経路で 1 つのリクエストを送るので、プロファイルやキー、トークンの更新、確認コード、確認がすべて適用されます。パスだけなら GET で、JSON の応答は整形して表示されます。openemail api /keys/self は me get の背後にある呼び出しです。
-d、--dataは本文を、インラインの JSON、@pathによるファイル、または-による stdin から受け取ります。-q、--queryと-H、--headerはkey=valueを受け取り、繰り返し指定できます。-o、--outは応答を受け取ったままファイルに保存します。DELETEと、キーの取り消しやローテーションなど、リソースコマンドなら確認を求める呼び出しは、まず確認を求め、無人実行では--yesが必要です。- 失敗したリクエストは API のエラーを表示し、対応するコードで終了します。
security 名前空間は openemail verify が操作するため、openemail --help には表示されません。その動詞 step-up-status、begin-step-up、verify-step-up は verify が行う呼び出しです。verify --status はステータスを読み、verify はコードを要求し、入力を求めて確認します。これらはブラウザでのサインインのためのもので、API キーではどれも 400 step_up_not_applicable で拒否され、openemail verify はキーにはコードが不要であることを伝えます。
例
openemail keys create --name 'Billing sender' --scopes emails:send \ --domain-allowlist billing.acme.com --expires-in-minutes 129600 --json \ | jq -r .token | openemail login --with-token --profile billingopenemail whoami --profile billingOPENEMAIL_API_KEY を通すなどして、keys:manage を持つ API キーで実行してください。シークレットは応答から新しいプロファイルへ直接渡されるので、画面やファイルに出ることはありません。このキーは billing.acme.com からしか送信できず、90 日で期限切れになります。
openemail keys list --all | jq -r 'select(.status != "active") | [.name, .status, .lastUsedAt] | @tsv'openemail keys list-workspace-requests --failed-only --since 2026-09-26T00:00:00Z --all \ | jq -r '[.createdAt, .keyName, .status, .errorCode, .method, .path] | @tsv'id=4c1b257a66287fd113bd89d0openemail keys update "$id" --no-enabledopenemail keys list-activity "$id" --since 2026-09-27T00:00:00Z --all | jq -r 'select(.type == "auth_failed") | .createdAt'openemail keys revoke "$id" --reason 'Contractor offboarded' --yesopenemail keys delete "$id" --yes先にキーをオフにする操作は --enabled で元に戻せます。それでもそのキーを提示する呼び出しはすべて拒否され、アクティビティに auth_failed として現れるので、まだ何がそのキーに依存しているかがわかります。取り消しは元に戻せず、削除できるのは取り消したキーだけです。
openemail roles list-permissions --json | jq -r '.[] | [.group, .id, .label] | @tsv'role=$(openemail roles create --name Support --permissions threads:write,emails:send,templates:read \ --description 'Answers help@ and nothing else.' --json | jq -r .id)openemail members add --email [email protected] --role-id "$role" \ --domain-ids 93542ff8-2baa-4f2f-841d-5ceaa074ab0d --access memberopenemail members list-invitations指定した権限が含意するため、ロールは threads:read と emails:read も持った状態で返ります。Sam にロールとドメイン全体が付与されるのは、招待を承諾してからです。ブラウザでサインインしている場合、members add はまず確認コードを求めます。
old=role_8b1f4c2e9a7d3b60e5f1a2c4new=role_2c7e9a1f4b8d3e60c5a7f1b9user=$(openemail members list --all | jq -r 'select(.email == "[email protected]") | .userId')openemail members update "$user" --role-id "$new"openemail roles get "$old" --json | jq '{name, members, apiKeys}'openemail roles delete "$old" --reassign-to "$new" --dry-runopenemail roles delete "$old" --reassign-to "$new" --yesmembers と apiKeys は問い合わせた時点で数えられるので、削除によって何が移されるかがわかります。ドライランは、クエリに reassignTo を含む DELETE を送らずに表示します。ブラウザでサインインしている場合、更新と削除はそれぞれ確認コードを求めるので、スクリプトで行うときは先に openemail verify を実行してください。
address=$(openemail temp new --ttl 15)openemail send --from [email protected] --to "$address" --subject 'Delivery check' --text 'Your code is 482913' --yesopenemail temp watch "$address" --first --json | jq -r .snippet | grep -oE '[0-9]{6}'openemail temp delete "$address" --yestemp new はアドレスだけを表示するのでシェル変数に収まり、temp watch --first は最初のメッセージで止まります。openemail send の代わりに登録フォームをそのアドレスに向ければ、同じ方法で確認コードを受け取れます。
スコープ、確認、エラー
| スコープ | コマンド |
|---|---|
| keys:read | keys list、get、list-requests、list-activity、list-workspace-requests、list-workspace-activity |
| keys:manage | keys create、update、delete、rotate、revoke |
| keys:write | me rotate |
| roles:read | roles list、get、list-permissions |
| roles:write | roles create、update、delete |
| members:read | members list、get、list-invitations |
| members:write | members add、update、remove、grant-address、revoke-address、revoke-invitation、resend-invitation |
| 不要(どのキーやサインインでも可) | me get、me ping、languages list |
| 不要。サインインも不要 | temp、temp-mail list-domains と create。その他の temp-mail コマンドは受信トレイトークンを使います |
- スコープのないサインインやキーは終了コード
4で停止し、足りないスコープの名前と取得方法を示します。 - 次のコマンドは確認を求めます。
keys delete、rotate、revoke、me rotate、roles delete、members remove、revoke-address、revoke-invitation、temp delete、そしてtemp-mail deleteとdelete-messageです。いいえと答えると終了コード10で終了し、何も変更しません。--yesなしの無人実行では、何も送らないうちに終了コード2で停止します。 - ブラウザでサインインしている場合、
roles updateとroles delete、そしてmembers add、update、remove、grant-address、revoke-addressは、このサインインで過去 60 分以内に確認していない限り、確認コードも求めます。--yesでこれを省略することはできず、無人実行では誰も入力できないので、コマンドは終了コード4で停止します。先にopenemail verifyを実行してください。API キーが求められることはありません。 --dry-runは変更が送るはずのリクエストを本文とともに表示し、送信も確認もせずに終了コード0で終了します。- リストは 1 ページを読みます。
--limitは 1 から 100 を受け付け、省略するとサーバーは 25 件を返します。例外はtemp-mail list-messagesで、1 から 50 を受け付け、50 件を返します。--cursorは前のページのnextCursorを受け取ります。--allはすべてのページを読み、--max <n>はその件数で停止し、--ndjson、またはパイプでの--allは 1 行に 1 つの JSON オブジェクトを出力します。--jsonを付けると、リストは 1 つの{ items, hasMore, nextCursor }ドキュメントを出力します。 roles list-permissions、languages list、temp-mail list-domains、temp-mail list-attachmentsは、ページなしで、すべてを単純な配列として一度に返します。- 拒否された場合は、そのステータスに対応するコードで終了します。401(取り消されたキーなど)なら
3、403(beyond_caller_authorityやowner_onlyなど)なら4、404 なら5、409(not_revoked、role_in_use、invitation_too_soonなど)なら6、400 か 422(member_is_ownerやrole_limit_reachedなど)なら7、429(too_many_inboxesなど)なら8です。 - 2 回行うと重複してしまう変更は、ネットワーク障害の後に再試行されることはありません。
keys createとrotate、me rotate、roles createとdelete、members add、remove、revoke-address、resend-invitation、そしてtemp-mail create、extend、delete、delete-messageです。もう一度実行する前に確認してください。読み取りと、keys update、keys revoke、roles update、members update、grant-addressのように 2 回行っても同じ結果になる変更は、自動で再試行されます。