仕事で、複数の Salesforce.com (SFDC) アカウント URL が同じアカウント ID のものか確認したくなることが、たまにある(月に数回程度)。URL は以下の 2 パターンが存在する。
- https://example.lightning.force.com/001ABCDEF123456AAA
- https://example.lightning.force.com/lightning/r/Account/001ABCDEF123456AAA/view
アカウント ID は 001 で始まる 18 桁の文字列で、上記の URL のように縦が揃ってないとぱっと見では同じかどうか判断しづらい。
URL をコピペしてテキストエディタで改行・削除したりするのも手間だし、かといってプログラムで処理するのも意外と手間で、ワンライナーや irb で秒殺というわけにはいかない。
ちょっと気が向いたタイミングだったので、チェッカーを作った。ブラウザで操作しているときに(URL をコピペしつつ)チェックしたいケースばかりなので Web アプリにした。
最初は CodePen に手書きで書いていたが、エラーハンドリングなどに凝り出すと煩雑になってきて、フレームワークを使ったほうが良さそう。しかしどのフレームワークもソラで書けるほど習熟していない。そこで VSCode の Copilot (Agent mode) を使って実装させた。モデルは Claude Sonnet 4 を使った。
まず、Vue.js の最小構成プロジェクトを作らせ、出来上がったアプリを改良していったが、直接 Chat に指示を書くのではなく、README.md に仕様を日本語で箇条書きにして、テキストを選択→「選択した仕様を満たすようにアプリを修正してください」という形で指示を出した。機能追加も、追加仕様を追記して、その部分だけ選択して同じように指示を出した。
自分では一行もコードを書かず(プロジェクト名の文字列を一度変更したが、それすら Agent にやらせた)、ここまでのものができるのは確かにすごい。動作検証も含めて 30 分くらいでできたと思う。GitHub Pages サイトへのデプロイ方法を調べるほうが時間がかかったくらいかもしれない。見た目などの部分は、自力で作っていたらもっと殺風景なものにしかできなかっただろう(そもそもそこそこの見栄えレベルを目指しすらしなかっただろう)。
URL に含まれる ID が同じなら同じ、異なっていれば異なると結果を表示し、ID 文字列はコピペしたくなるケースもあり得るのでコピーボタンをつけ、ID 文字列で GitHub Issues を検索して「検算」したいケースもあるので GitHub Search するボタンもつけた。たとえば以下の URL のうち上二つをチェッカーにかけると一致と出るし、三つ全部をチェッカーにかけると不一致と出る。
https://example.lightning.force.com/001ABCDEF123456AAA https://example.lightning.force.com/lightning/r/Account/001ABCDEF123456AAA/view https://example.lightning.force.com/lightning/r/Account/001XYZ7890ABCDEBBB/view
なお、これらのアカウント ID は Copilot に聞いて生成させたダミー ID なので実在するかどうか不明だし、サブドメインも実際のものとは異なる。
GitHub Pages サイトへのデプロイもそこまでつまらずできて一件落着、と思いきや、独自ドメインではまってしまった。kyanny.me
をもともと GitHub Pages サイトで公開していて、以前は HTTPS でも公開できていた気がするが、GitHub Pages の仕様が変わったのか、HTTPS だと証明書エラーになってしまっていた。SFDC Account Checker も kyanny.me
ドメインで公開されたが、Enforce HTTPS にチェックを入れられず、HTTP で後悔することになってしまった。Cookie も使っていないページとはいえ、今どき http://
で公開するのはちょっと、ない。ということでどうにか解決しようと雑に調べて回ったが、一向にわからない。ドキュメントを読んでもさっぱりわからない。おそらく、そもそも kyanny.me
ドメインに対する証明書を誰も発行してないから、ということなのかな、とぼんやり当たりがついたが、面倒くさすぎるので kyanny.me
を GitHub Pages で公開すること自体をやめるという荒療治で無理やり辻褄を合わせた。実際にやった作業は、kyanny/kyanny.github.io
というリポジトリの Pages を無効化した。念のため、Pages の設定画面で DNS 検証失敗?みたいなエラーになっていた kyanny.me
カスタムドメインを削除してから無効化した。すると自分のアカウントのリポジトリから Pages に公開したサイトはカスタムドメイン kyanny.me
ではなく kyanny.github.io
ドメインで公開されるようになり、自動的に HTTPS も有効になった。