失効ポリシーの選び方
失効ポリシーは「アップロードした画像をいつまで見せるか」を決める設定です。プロジェクト単位で決め、配信コンテキスト単位で上書きできます(コンテキスト側が優先、未設定ならプロジェクトの値を継承)。ダッシュボードのプロジェクト設定(/p/<プロジェクト>/settings)でいつでも変更できます。
3つのポリシー
Section titled “3つのポリシー”| ポリシー | 挙動 |
|---|---|
閉じたら失効(on_close) |
配信コンテキスト(PR など)が閉じられると、そのコンテキストの画像を即座に失効 |
N 日保持(retain_days) |
アップロードから指定日数(1〜365日)で失効。PR の状態は影響しない |
無期限(forever) |
自動失効しない。手動失効のみ |
それぞれの詳細な挙動
Section titled “それぞれの詳細な挙動”閉じたら失効(on_close)
Section titled “閉じたら失効(on_close)”「レビュー中だけ見せたい」という Miseru の基本ユースケースに合うポリシーです。
- PR クローズ時に GitHub Action が close API を呼び、画像はオリジンから即座に削除されます(以後の新規アクセスは 404)
on_closeの配信はキャッシュ許容時間が最大300秒に制限されているため、すでにキャッシュされた表示(GitHub Camo)も閉じてから最大5分程度で切れます- コンテキストが開いている間は保持され続けます(長寿命 PR でも消えません)
「PR の状態と無関係に、一定期間で必ず消したい」場合のポリシーです。
- 失効時刻はアップロード時点で確定します(
アップロード時刻 + N日) - 期限が来た画像は毎時の自動スイープが削除します(実削除まで最大1時間程度のずれあり)
- コンテキストを閉じても即座には消えません(期限まで保持)
- 配信キャッシュの許容時間は保持期限に合わせて自動的に短くなるため、期限後にキャッシュで長く生き残ることはありません
「ドキュメントや README からも参照したい」など、恒久的に見せたい場合のポリシーです。
- 自動失効は一切行われません
- 消したくなったら、ダッシュボードまたは
miseru expire <image_id>で手動失効します - 手動失効しても、貼り先のキャッシュが切れるまで最長 5 分は表示が残ることがあります(新規アクセスは即座に 404)
どのポリシーでも共通のこと
Section titled “どのポリシーでも共通のこと”- 手動失効はいつでも可能です(ダッシュボードの画像ごとの失効ボタン / CLI
miseru expire/ API) - 停止と再開もできます(ダッシュボードの「停止」「再開」/ CLI
miseru pausemiseru resume/ API)。停止中は配信 URL が 404 になり、再開すると同じ URL が復活します。停止中もretain_daysの期限は進みます - 失効・停止後の新規アクセスは必ず 404 になります。貼り先(GitHub Camo など)のキャッシュは、どのポリシーでも配信の
max-age=300により最長 5 分で切れます - ポリシー変更は変更後にアップロードされた画像の失効時刻計算に反映されます。
retain_daysの期限はアップロード時点で確定しているため、変更が過去の画像の期限を書き換えることはありません
選び方の目安
Section titled “選び方の目安”| ユースケース | おすすめ |
|---|---|
| AI エージェントの動作確認スクショを PR レビューで見せる | PR クローズで失効 |
| コンプライアンス上「N 日で必ず消す」要件がある | N 日保持 |
| デモ画像・ドキュメント用の画像も兼ねる | 無期限(+ 不要になったら手動失効) |
迷ったら PR クローズで失効にしてください。「見せたい間(=レビュー中)だけ見せる」という Miseru の設計意図そのままの挙動です。