メールトークンが既に消費されているため、中断後のバックアップダウンロード再開ができません

この件についてPRを作成しました:

この実装では、ダウンロードの開始に使用する既存の一回限りのメール送信トークンを維持したまま、ローカルバックアップに対して、以下の範囲に限定された独立した範囲付きリジューム認可を作成できるようにしています:

  • 同一の認証済み管理者;

  • 同一のバックアップ;

  • 同一の元のトークン値; および

  • Range ヘッダーを含む後続のリクエスト。

消費済みのトークンを使用した通常の2回目の完全な GET は引き続き拒否されます。また、他のバックアップに対する Range リクエストも拒否されます。リモート/S3バックアップは既存の動作を維持します。

リジューム期間を無制限の期間ではなく、列挙型(enum)として定義しました:

  • Disabled

  • 1 hour

  • 6 hours (recommended)

  • 12 hours

  • Until the original email token expires

有効なリジューム期間は、初期ダウンロードが開始された時点で、元のメール送信トークンの残存有効期間に制限されます。

後方互換性のために、現在のDiscourseの動作(Disabled)がデフォルトのまま維持されています。一方、リジューム可能なダウンロードが有効な場合、6 hours が推奨オプションとして提示されます。

このPRでは、この互換性を維持するデフォルトを維持すべきか、それともこの問題を修正する一環として、推奨されるリジューム可能な値をデフォルトとするべきかをメンテナーに尋ねています。

また、成功したリジュームパスと主な認可境界(以下を含む)に対する回帰テストカバレッジを追加しました:

  • 通常のトークンの再利用が引き続き拒否されること;

  • バックアップをまたぐリジュームが引き続き拒否されること;

  • 設定を無効にすると、直ちにさらなるリジュームが防止されること;

  • S3にローカルリジューム認可が与えられないこと; および

  • 初期ダウンロードとそのリジュームが、バックアップダウンロードの監査エントリを1つだけ生成すること。

完全なCIスイートはパスしており、PRはレビュー準備完了です。

セキュリティモデル、特に6時間の推奨値とデフォルト設定に関するフィードバックをお待ちしています。