成果物を探す
取り込んだ成果物を新しい順に並べて見るための画面。英語版は English version。
store の立て方は クイックスタート、消す・数える・weed shell は
運用にある。
http://127.0.0.1:8888/ui/index.htmlsh scripts/stack.sh up が毎回置き直すので、用意することは何も無い。
なぜ画面が要るのか
Section titled “なぜ画面が要るのか”S3 の一覧は名前順にしか返らない。 ListObjectsV2 には並べ替えの引数が無く、鍵を
辞書順で返すとだけ決まっている。filer の素の画面も weed admin も同じで、どちらも
日時では並べられない(weed admin の並べ替えの引数は効かない。公式 wiki の
「名前・サイズ・更新日時で並べ替えられる」という記述は実装と食い違っている)。
並べ替えはサーバ側では手に入らないので、受け取った側で並べるしかない。この画面は filer の JSON をそのまま読んで、時刻で並べ直しているだけ。別のコンテナも、別の プロセスも増えない。
| 列 | 中身 |
|---|---|
| 時刻 | いちばん新しい成果物の Mtime(手元の時間帯)。ここで並べ替える |
| ラベル | 鍵に入っているラベルと correlationId |
| 成果物 | wacz / png / html / result.json … 押すと開く |
| 大きさ | その取り込みが書いた合計 |
| taskId | 先頭 8 文字(マウスを載せると全部) |
1 行が 1 回の取り込み。 1 回の取り込みは複数のオブジェクトを書くので、鍵の
{taskId}_{correlationId}[_{label}]*.{拡張子} という形を見て taskId でまとめている。
この形でない鍵は、まとめずに 1 行ずつ並ぶ(表示だけの約束で、正しさは何も乗っていない)。
.wacz には ▶ replay が付く。飛び先は自前の ReplayWeb.page
(BrowserHive の replay プロファイル)で、
上流に browserhive の bucket 1 つだけを持つので、この bucket のときにだけ出る。
既定で e2e を隠している
Section titled “既定で e2e を隠している”e2e を走らせると成果物が数百たまり、自分で撮ったものが埋もれる。実測では 274 回の取り込みのうち 266 回が e2e で、隠すと残りは 8 行だった。
「e2e を隠す」を押せば出る。この画面は隠すだけで、実体は 1 つも減らさない。
減らすのは 運用の scripts/wipe.sh の仕事。
絞り込み(/ で移動)は鍵・ラベル・taskId のどれにでも当たる。種類で絞る、時刻と
大きさで並べ替える、も上の行から。
アドレスに付けられるもの
Section titled “アドレスに付けられるもの”| 引数 | 既定 | 何を変えるか |
|---|---|---|
?bucket= |
最初の bucket | 開いたときに選ばれている bucket |
?filer= |
同じオリジン | filer の宛先(file:// で開くときに要る) |
?replay= |
https://replay.browserhive |
▶ replay の飛び先。空文字にすると出さない |
?replayBucket= |
browserhive |
▶ replay を出す bucket |
ui/index.html を手元で直接開いても動く。filer が Access-Control-Allow-Origin: * を
返すので、file:// からでも読める(実測)。
置くのは scripts/ui.sh、置き先は filer の /ui/index.html で、S3 の bucket の外。
- bucket に置くと、探しやすくするための画面が成果物の一覧に出てしまう
- bucket に置くと
scripts/wipe.shで一緒に消える - filer が配るので画面と JSON が同一オリジンになり、ブラウザの制限を何も踏まない
[!CAUTION] この画面を公開しない。 認証は無く、filer の口は
docker-compose.ymlで127.0.0.1にだけ publish してある前提に乗っている。同じ理由で、ドキュメントのサイト側には置けない。filer は preflight に
Access-Control-Allow-Private-Networkを返さないので、https のページから127.0.0.1を叩くと Chrome の Private Network Access が止める(実測)。
ui/index.html は依存の無い 1 ファイルで、ビルドも要らない。直したら置き直すだけ。
sh scripts/stack.sh up # up のたびに上書きされるsh scripts/ui.sh # 画面だけ置き直す| 症状 | 見るところ |
|---|---|
| 「filer から読めませんでした」 | store が起きているか(sh scripts/stack.sh up)。file:// で開いたなら ?filer=http://…:8888 |
| 0 件しか出ない | 「e2e を隠す」が効いている。押して戻す |
| ▶ replay が 502 | replay が起きていない(BrowserHive 側の replay プロファイル) |
| ▶ replay が出ない | browserhive 以外の bucket を見ている |
| 画面が古い | sh scripts/stack.sh up で置き直す |