Highlights
API keyが再表示可能になりました。Dashboardでキーを生成し、一度離れて、翌週に戻ってきても、クリックするだけでキーがそこに表示されます。また、API playgroundの3つの不具合を修正し、curl再現コードが実際に動作するようになりました。
What's New
再表示可能なAPI key
ほとんどのSaaSのAPIは、キーを一度しか表示しません。紛失したら、再生成します。古いキーを使用しているすべてのサービスを更新します。再デプロイします。お決まりの手順です。
私たちはこのパターンを好ましく思いませんでした。そのため、仕様を変更しました。
今後作成されるキーには、再表示可能なコピーが付属します。Dashboardを開き、任意のキーの横にある目のアイコンをクリックして確認すると、pk_live_... の完全な値が表示されます。15秒後に自動的に非表示になり、ページから消去されます。すべての再表示は監査ログに記録されます。
私たちが重視したいくつかの詳細:
- requestを認証するパスは、これまで通りワンウェイハッシュのままで変更はありません。再表示可能なコピーは、その横に保存される暗号化された2つ目のアーティファクト(AES-256-GCM)です。仮に暗号化キーをローテーションしたとしても、検証は機能し続けます。
- この変更前に作成されたキーは再表示できません。読み戻すための暗号化されたコピーが存在しないためです。これらはハッシュパスを通じて永久に機能し続けます。Dashboardには小さな鍵のマークと「有効にするには再生成してください」というヒントが表示されるため、どのキーが新しい機能を備えており、どのキーが備えていないかを判別できます。
- アクセス制御は、他のキーAPIと同様です。自身が作成したキーを再表示できます。組織の管理者は、組織内の任意のキーを再表示できます。チームの書き込み権限を持つメンバーは、チームのキーを再表示できます。読み取り専用ロールは再表示できません。
- 組織の管理者がチームメンバーの代わりに作成したキーも、同様のルールで再表示可能です。この機能は、キーを作成したインターフェースではなく、キー自体に紐づいています。
FourAのキーをパスワードマネージャーに溜め込んでいた方は、もうその必要はありません。
curl再現コードが本物のcurlになりました
playgroundで作成するすべてのrequestには、コピー&ペースト可能なcurlが横に表示されます。仕組みはシンプルです。UIでrequestを正しく設定し、curlをコピーして、スクリプト、チームメンバーのターミナル、またはバグレポートに貼り付けるだけです。
今週までは、curlのキーが入るべき部分にプレースホルダー(PASTE_PLAINTEXT_FOR_my-key)が表示されており、実行する前に手動で入力する必要がありました。再現コードは再現コードではありませんでした。ただのテンプレートでした。
それはもう解消されました。再表示可能なキーの場合、playgroundのcurlパネルに「Reveal」ボタンが表示されます。クリックすると、実際のプレーンテキストがcurlに挿入され、全体をコピーしてターミナルに貼り付けるだけで実行できます。もう一度クリックすると非表示になります。再表示は該当セッションのメモリ内でのみ行われ、ディスクに書き込まれることはありません。また、curlパネルはキーのドロップダウンと連動しているため、キーを切り替えても別のキーに漏洩することはありません。古い非表示のキーは、プレーンテキストを復元できないため、引き続きプレースホルダーが表示されます。
実行中のrequestに対するキャンセルボタン
これまでは、応答の遅いターゲットサイトに対してplaygroundからrequestを送信した場合、タイムアウトを待つしかありませんでした。ローディングパネルに「Cancel」ボタンを追加しました。クリックするとrequestが正常に中断され、レスポンスエリアは不気味なエラーではなく「Request canceled.」という表示とともにアイドル状態に戻ります。
小さな変更です。しかし、これによりplaygroundはデモではなく、本物のツールのようになりました。不安定なサイトを調査し、中断し、requestを微調整して再試行する、という作業を、ただ待つことなく行えます。
Under the Hood
初期リリース後のcurl「Reveal」ボタンに関する3つの小さな修正として、エラーのトースト表示が機械的なエラーコードではなく分かりやすいメッセージを表示するようになり、別の処理で例外が発生した場合でもボタンが「Revealing…」のまま動かなくなることがなくなり、再表示に対応していないキーでもボタンが表示され続けていたCSSの詳細度に関するバグが解消されました。
これらの問題に遭遇した方は、すでに修正されているはずです。遭遇しなかった方は、特に気にする必要はありません。
生成し、コピーし、貼り付け、そして紛失する。後で戻ってきてください。Dashboardが記憶しています。