隠したURLは、隠れていなかった──棚を作り直した日
| やったこと | 結果 | つまずき |
|---|---|---|
| HTML1枚の下書き置き場を、リポジトリを正とする棚に作り直した | 承認済みの投稿がファイルとして残り、機械が読める形になった | 作り直しの最初の案が、同じ間違いをもう一度していた |
欠陥1: 記録が、1台のスマホの中にしかなかった
第1話で作った置き場は、ページ自体はURLでどこからでも開けました。ただし「どれを投稿したか」「下書きをどう手直ししたか」という記録は、開いたそのスマホの中にだけ保存される作りでした。手帳を1冊、スマホの中に置いていたようなものです。PCで同じURLを開くと、棚は空。スマホを替えたら手帳ごと消えます。
困ったのは、棚を増やそうとしたときです。投稿を週3〜4本に増やす、記事を公開したら短報を自動で棚に入れる、いずれは機械に投稿させる。どれも「機械が棚を読める」ことが前提です。でも手帳はスマホの中にあって、機械からは読めない。
初版で回した8月10日から27日までの18日間、何本投稿したかの記録も残っていません。手帳はスマホの中にだけあったので、リポジトリ(コードと記録の保管場所)には何も残らなかった。作り直しを決めた理由の半分は、これです。
欠陥2: 「教えていないURL」は「見えないURL」ではない
もう半分は、非公開のつもりだった置き場が、非公開ではなかったことです。
置き場は自分のサイトの、誰にも教えていない長いURLに置いていました。ぼくの感覚では「知らなければ開けない」だったのですが、実際には「URLを知っている人は誰でも開ける」です。リンクをどこかに貼った瞬間、あるいは推測されただけで、承認前の下書きが全部見える。鍵をかけたつもりで、暗がりに置いただけでした。
作り直しの最初の案は、同じ間違いだった
8月27日、作り直しをAIに相談しました。ここで一度、間違えています。
最初に出てきた案は、見た目を整えて機能を足した「新しいボード」で、記録の置き場所は相変わらずスマホの中でした。承認済みの投稿をファイルにも書くけれど、「済」や手直しはスマホ側の記録を優先する、という設計。欠陥1が直っていない。
ぼくがその日にAIへ送った言葉は、2つです。
おれ以外絶対に見ることができない環境ならそれでいいですが、その点大丈夫ですか?
返事は「いまの案では保証できません」でした。URLを知っていれば誰でも読める、と。これが欠陥2をはっきりさせた瞬間で、ここでCloudflare Accessが出てきます。
[運営中の決済専門メディア]のボードの方が優秀なんですよね。もう一度反証してください。設定に時間ばかりとられていて何もかもが中途半端に思えます。
([ ]は事業名を伏せて置き換えた箇所です)
ぼくは別の事業で、同じ種類のボードを動かしています。そちらは「記録はリポジトリの中のファイルにある。画面はそれを表示するだけ。投稿は機械が定時にやる」という形で、止まらずに動いている。同じ形をなぜ最初から使わなかったのか、という問いでした。
返事は「反証しません。構造として上です」。AIの説明では、こちらの「実況は人が書く・承認は人がする」という中身の決まりを、基盤の作り方の決まりと混同していたとのことでした。中身の規則と、器の規則は別です。器は、別の事業のものと同じでよかった。
その日のうちに、記録の置き場をスマホからリポジトリの中のファイル(shelf.json)に移しました。投稿の登録・承認・投稿済みの記録は、すべてそのファイルへの書き込み。画面はファイルから生成した表示専用のページで、どの端末で開いても同じ棚が見える。画面側からは何も書き換えず、承認はボタンではなく、チャットで番号を指定して記録する形です。「画面で操作する」を、「台帳を書き換えると画面が変わる」に逆転させました。
非公開は、鍵で作る
欠陥2は、Cloudflare Access(クラウドフレア・アクセス)で直しました。サイトとは別の場所に棚のページを置き、開くときにログインを求める。URLを知っていても、鍵がなければ開けない。
置いたあと、3つの経路(ページ本体・ファイル・存在しないパス)で、鍵なしだと弾かれることを確かめました。ここは「たぶん大丈夫」で済ませたくなかったので、AIに確認の手順ごと出させて、結果をそのまま報告させています。
ついでにもう1つ。旧い置き場を消す変更は、送ったのに本番に反映されていませんでした。公開の仕組みが古い版を配信し続けていて、「消したつもりで消えていない」状態。これはぼくが管理画面で最新版に切り替えて直しました。消すのも、確かめるまでは終わっていない。
この日の実測
- 作り直しにかかった時間: 棚の作り直し(部品A)約2時間。最初の案で使った時間を含む
- 初版の稼働期間: 8月10日〜27日・18日間。投稿数の記録なし
- 新しい棚に初日に登録した投稿: 10本。うち7本を8月28日〜9月3日の毎日1本に割当(残りは当日分1本・予定未定2本)
- 承認の方法: チャットで番号指定。画面からの操作はなし
作り直した棚が「機械が読める」形になったことで、次の話に進めます。第3話は、機械が初めてぼくの代わりに投稿した日です。
連載「毎朝、機械がぼくの代わりにXへ投稿するまで」全6話
- 第1話下書きの置き場──X投稿の管理を、HTML1枚で作った日
- 第2話隠したURLは、隠れていなかった──棚を作り直した日この記事
- 第3話機械が、はじめてぼくの代わりに投稿した朝
- 第4話記事のURLを貼る投稿を、棚から5本外した日
- 第5話台帳を作った翌朝、台帳が消えた
- 第6話X投稿を自動化した──HTML1枚から37日