| name | deploy-verification |
| description | fov-quicklookアプリケーションのデプロイ後の動作確認を行う。 gafaelfawrトークンの取得、healthzエンドポイントの確認、フロントエンドアクセスの検証、 ジョブ一覧・キャッシュ管理・visit一覧・quicklook再生成(WebSocket進捗監視付き)。 デプロイ確認、動作確認、ヘルスチェック、アプリケーション検証に関するタスクで使用する。
|
デプロイ検証スキル
概要
dev/verify-deploy.sh を使って、デプロイ後のfov-quicklookアプリケーションの動作を確認する。
agent-safe 運用: deploy broker を使う構成では、app access token は broker
daemon が保持し、agent は get-app-token 相当の broker API から受け取って
直接 HTTP 検証に使える。app token 自体の登録は daemon ノード側で行う。
前提条件
- gafaelfawr トークンが
dev/.gafaelfawr-token に保存されていること
- トークンはブラウザの認証セッションに紐づくため、セッション切れの場合は再取得が必要
- WebSocket進捗監視には
websockets ライブラリが必要(backend/.venv 内に含まれている)
トークンの取得と設定
- ブラウザで https://usdf-rsp-dev.slac.stanford.edu/fov-quicklook/ にアクセス(認証済み状態)
- 開発者ツールを開く
- 任意のリクエストを選択し「Copy as cURL」を実行
- 以下のコマンドでトークンを抽出・保存:
cd dev
./verify-deploy.sh extract-token "<コピーしたcurlコマンド>"
gafaelfawr cookieを含む任意のページのリクエストで構わない。
基本チェック
healthz エンドポイント
./verify-deploy.sh healthz
出力例:
=== healthz エンドポイント確認 ===
✓ Status: 200
{
"status": "ok",
"coordinator_id": "c-e0d6a61955c8475aae542706b87841ed",
"revision": "4af99a2112d93d6e8a38dc8918a3b8762da037db"
}
status: ok → coordinatorが稼働中
revision → デプロイされたGitリビジョン
フロントエンド
./verify-deploy.sh frontend
全基本チェック
./verify-deploy.sh all
API操作
ジョブ一覧
./verify-deploy.sh jobs
アクティブなquicklook生成ジョブの一覧を表示する。
キャッシュ一覧
./verify-deploy.sh cache
出力例:
キャッシュエントリ数: 10
合計サイズ: 139.1 GB
visit_name ready disk_usage created_at
----------------------------------------------------------------------------------------------------
embargo:raw:2026012800342 True 13.4 GB 2026-02-10T02:05:14
main:raw:2026012800215 True 13.3 GB 2026-02-10T05:07:29
キャッシュ削除
./verify-deploy.sh cache-delete embargo:raw:2026012800326
visit一覧
./verify-deploy.sh visits
./verify-deploy.sh visits raw main
./verify-deploy.sh visits preliminary_visit_image embargo 20
タイムプロファイル
パイプラインの各フェーズ(generate → merge → upload)の所要時間を表示する。
プロファイルは quicklook 生成完了時に自動的に object storage に保存される。
./verify-deploy.sh time-profile embargo:raw:2026012800326
出力例:
=== Time Profile: embargo:raw:2026012800326 ===
generate_single_fits_tiles: 8.3s
merge_tiles: 13.9s
upload_to_object_storage: 17.6s
────────────────────────────────
total: 39.8s
プロファイルが存在しない場合(古いキャッシュ等)は「見つかりません」と表示される。
出力例:
id day_obs filter exp_time observation_type
--------------------------------------------------------------------------------------------------------------
embargo:raw:2026012800343 20260128 r_57 30.0 acq
embargo:raw:2026012800342 20260128 r_57 30.0 acq
quicklook再生成(進捗監視付き)
./verify-deploy.sh regenerate embargo:raw:2026012800326
キャッシュに存在するvisitの場合は先にキャッシュを削除:
./verify-deploy.sh cache-delete embargo:raw:2026012800326
./verify-deploy.sh regenerate embargo:raw:2026012800326
出力例:
=== quicklook再生成: embargo:raw:2026012800326 ===
POST /api/quicklooks {"visit": "embargo:raw:2026012800326"}
WebSocket で進捗を監視中...
[ 1.3s] Stage: generate_single_fits_tiles
generate_single_fits_tiles: 150/197 (76%)
[ 9.9s] Stage: merge_tiles
merge_tiles: 5/8 (62%)
[ 19.2s] Stage: upload_to_object_storage
transfer_tiles: 6/8 (75%)
[ 40.5s] Stage: ready
✓ 完了! 生成時間: 40.5秒
パイプラインステージ:
generate_single_fits_tiles — FITS→タイル変換
merge_tiles — Generator間でタイルマージ
upload_to_object_storage — S3アップロード
ready — 完了
デプロイ後の典型的な検証フロー
cd dev
./argocd.sh status
./verify-deploy.sh all
./verify-deploy.sh visits
./verify-deploy.sh cache
./verify-deploy.sh cache-delete embargo:raw:2026012800326
./verify-deploy.sh regenerate embargo:raw:2026012800326
./verify-deploy.sh cache
visit_nameの形式
{repository_name}:{data_type}:{identifier}
利用可能なdata_type/repository_nameの組み合わせ:
| repository_name | data_type | 説明 |
|---|
embargo | raw | Raw (Embargo) |
embargo | post_isr_image | Post-ISR (Embargo) |
embargo | difference_image | Difference Image (Embargo) |
embargo | preliminary_visit_image | Preliminary (Embargo) |
main | raw | Raw (Main) |
main | post_isr_image | Post-ISR (Main) |
main | difference_image | Difference Image (Main) |
main | preliminary_visit_image | Preliminary (Main) |
トークンの仕組み
- gafaelfawr はRubin Science Platformの認証基盤
- ブラウザでRSPにログインすると
gafaelfawr cookieが設定される
verify-deploy.sh はこのcookieをリクエストヘッダーに付与してアプリケーションにアクセスする
- トークンは
.gafaelfawr-token ファイルに保存され、.gitignore で除外されている
安全性
- トークンファイル(
.gafaelfawr-token)は .gitignore で除外
- アクセス先は
https://usdf-rsp-dev.slac.stanford.edu/fov-quicklook/ のみ
- 読み取り専用の操作(GET)と管理操作(DELETE、POST)を含む