■昨日はグローバルスコープ化について、「親テーブル1段経由」だったが、「2〜3段経由」でテナント絞り込みが必要なモデル群の処理をする
| 系統 | 対象 | モデル数 |
|---|---|---|
| 系統1 | 監査木(指摘・是正処置・チェックシート系) | 5モデル |
| 系統2 | 工程表(ネットワーク・バーチャート系) | 4モデル |
| 系統3 | 施工計画(項目・画像・セクション) | 3モデル |
| 系統4 | 安全パトロール写真 | 1モデル |
■最終テスト結果:TenantIsolationTest 33件パス(46アサーション)
■昨日はグローバルスコープ化について、「親テーブル1段経由」だったが、「2〜3段経由」でテナント絞り込みが必要なモデル群の処理をする
| 系統 | 対象 | モデル数 |
|---|---|---|
| 系統1 | 監査木(指摘・是正処置・チェックシート系) | 5モデル |
| 系統2 | 工程表(ネットワーク・バーチャート系) | 4モデル |
| 系統3 | 施工計画(項目・画像・セクション) | 3モデル |
| 系統4 | 安全パトロール写真 | 1モデル |
■最終テスト結果:TenantIsolationTest 33件パス(46アサーション)
建設アシストアプリケーションをマルチテナントSaaSとして「他社のデータは存在自体が見えない」状態を全モデルに実現する作業をする・・設計上の重要ポイントとして、グローバルスコープ単体ではなく、既存のIDOR(Insecure Direct Object Reference:URLのIDを書き換えて、他人のデータにアクセスする攻撃)対策トレイト(AuthorizesTenantAccess)と二重防御になっている。仮にどちらか一方に穴があっても、もう一方が守る構造で、これが大手組織のセキュリティ監査に耐えられる根拠になる
■会社IDを直接持つ主要モデル10個に、自動テナント絞り込みを適用
| 分類 | 対象モデル例 | 絞り込み方式 |
|---|---|---|
| 直接持ち | User, Project, Department など7モデル | WHERE company_id = 自社 |
| NULL=全社共通 | テンプレート・プリセット系3モデル | WHERE company_id = 自社 OR NULL |
■途中で発覚した重大問題と解決:User モデルにスコープを適用した直後、ログイン後の画面でメモリ枯渇エラーが発生・・・原因は無限再帰
■Project配下・監査計画配下のモデル13個に適用。これらは company_id を直接持たず、親テーブル経由で絞り込む
実データで確認した効果の例
| モデル | スコープ前 | スコープ後 |
|---|---|---|
| ProjectEnvAspect | 241件(他社75件含む) | 166件(自社のみ) |
| ProjectCondition | 49件(他社23件含む) | 26件(自社のみ) |
■最終状態
テスト:TenantIsolationTest 31パス(38 assertions) 対象:A分類10 + B分類13 = 計23モデル完了

今日は朝からかなりの雨が降っている
車で福崎の北の方の現場に一日中、ゆっくりと現場を楽しめた
姫路の思い出・・・神戸の現場で落ち込んでいたとき、1973年12月に姫路の新日鉄の広畑に配属され1994年8月まで・・現場のHiya所長には、大変かわいがってもらい、ここでかなり精神的にリカバリーができた・・・豪快な所長からは、はっきりと声を出せ、名前は枠いっぱいに大きな文字で書け、自信をもって何事も実施せよと教わり、これからの現場運営の大きな指針を与えられた・・現場にいた愛嬌があり元気だったお嬢と係員のKritとが、その後結婚したと聞いた・・・家は、姫路の北今宿に借り上げ社宅を借りていた
揖保川で安全担当の人からハヤ釣りを教えてもらったりした
たっぷりある時間の中で、Claudeと肥大になった施工計画の作成画面について分析を実施してもらう・・・サーバからコードをダウンロードして、iPadなどでちょっとやりにくいが、Claudに読ませる・・色々と改善案を提案して、三つの改善指示書を作成してくれる・・・特急にちりんは、もうすぐ延岡に、外はいつの間にか雨となっている

宮崎までの日豊本線は長い、大分からは単線で延岡までは、曲がりくねった山の中をのんびりと走る
特急日輪は、宮崎空港まで直通の貴重な列車・・ほとんどは大分で乗換



朝の散歩は、西霞町から西本浦町に登り、黄金山小学校から北大河の黄幡神社に下る
ちょっと前に昔には、夜によく歩いたコースだが、今日はキクを連れて久しぶりに歩く・・・黄金山への登りははやり辛い・・・歩数は8000歩
昼から比治山のコンサルした電気工事店に、内部監査に行く・・・久しぶりに話が弾んだ



昼前に広島を出発して、新神戸から地下鉄で大倉山に、歩いてアステップ神戸に、今日はここで安全研修を実施する(研修資料にかけた工数は対価にはまったく合わないが)・・・予定通り、研修は終わって、予定より早い新幹線に乗ることができた

今回の研修のために12月後半から色々と考察をしてよい勉強となり、この結果を今回のWebアプリケーション(建設アシストシステム)を作るきっかけとなった・・・昔、BASICで徹夜してプログラミングしていた頃を思い出しながら、面白さにすっかりのめり込んでいる
帰ってから、法規制チェックリストのAI判定部分をつくる・・・やはり、このパートは簡単には行かない・・・AIの判定スピードの調整、APIとの整合、結果の受取、その都度エラーが続き、何回かテストプログラムを走らせて検証しながら作成する、さすがに研修後のなので頭が痛くなったが、何とか判定部分のプログラムを完成させて・・・今夜は終わり


さて、先週からすっかりWebアプリケーションの構築にはまって、本来の研修資料のPPTが纏まっていない
朝から気合を入れて一日中作成する・・・膨大な資料は取り込んでいるので、これらをストーリーに合わせて構築してゆく
Geminiにスライドを作成させると、ものすごく目を引くキャッチℎグレースやデザインが出てくる・・・はじめは感動するが、よく見ると色々とおかしな個所もある・・・このまま使うとかなり問題がある、よく理解してAIは使わないと・・・恥をかくことになる

明日は播磨で仕事となるので、17時過ぎに新幹線で西明石のホテルに
初めて西明石駅に降りました
駅前にあるホテルは部屋が広くて快適だった
夕食は広島駅で駅弁を購入して列車の中で
ホテルでは、少しネットを見てから早めに寝る

鳥取での二日目の仕事が終わり広島に帰る
ここの組織は業績も順調で活動範囲の拡大を図っている
TAMも断続的ではあるが10年来のお世話になっている・・・・気心が知れて、お互いに良いコミュニケーションが図れて、気持ちの良い仕事ができた
色々と効果的な改善につなげていただけるのはありがたい
帰りの特急イナバで仕事仲間のYSMさんに偶然一緒になった