[{"data":1,"prerenderedAt":797},["ShallowReactive",2],{"navigation":3,"doc-/modules/table":217,"docs-all-paths":742},[4,19,39,63,87,111,127,195,211],{"title":5,"path":6,"stem":7,"children":8},"Welcome","/welcome","01.welcome",[9,11,15],{"title":5,"path":6,"stem":10},"01.welcome/index",{"title":12,"path":13,"stem":14},"Astar とは（5分）","/welcome/product-in-5-min","01.welcome/01.product-in-5-min",{"title":16,"path":17,"stem":18},"事業文脈","/welcome/business-context","01.welcome/02.business-context",{"title":20,"path":21,"stem":22,"children":23},"Getting Started","/getting-started","02.getting-started",[24,27,31,35],{"title":25,"path":21,"stem":26},"はじめかた","02.getting-started/index",{"title":28,"path":29,"stem":30},"リポジトリ取得と環境構築","/getting-started/repo-setup","02.getting-started/01.repo-setup",{"title":32,"path":33,"stem":34},"日々の開発ループ","/getting-started/dev-loop","02.getting-started/02.dev-loop",{"title":36,"path":37,"stem":38},"検証の 4 層","/getting-started/verification-tiers","02.getting-started/03.verification-tiers",{"title":40,"path":41,"stem":42,"children":43},"Architecture","/architecture","03.architecture",[44,47,51,55,59],{"title":45,"path":41,"stem":46},"アーキテクチャ","03.architecture/index",{"title":48,"path":49,"stem":50},"マルチテナンシーと RLS","/architecture/multi-tenancy-rls","03.architecture/01.multi-tenancy-rls",{"title":52,"path":53,"stem":54},"認可モデル","/architecture/authorization","03.architecture/02.authorization",{"title":56,"path":57,"stem":58},"AI サブシステム","/architecture/ai-subsystem","03.architecture/03.ai-subsystem",{"title":60,"path":61,"stem":62},"データモデル","/architecture/data-model","03.architecture/04.data-model",{"title":64,"path":65,"stem":66,"children":67},"Backend","/backend","04.backend",[68,71,75,79,83],{"title":69,"path":65,"stem":70},"バックエンド","04.backend/index",{"title":72,"path":73,"stem":74},"層構造","/backend/layering","04.backend/01.layering",{"title":76,"path":77,"stem":78},"規約","/backend/conventions","04.backend/02.conventions",{"title":80,"path":81,"stem":82},"テスト","/backend/testing","04.backend/03.testing",{"title":84,"path":85,"stem":86},"マイグレーション","/backend/migrations","04.backend/04.migrations",{"title":88,"path":89,"stem":90,"children":91},"Frontend","/frontend","05.frontend",[92,95,99,103,107],{"title":93,"path":89,"stem":94},"フロントエンド","05.frontend/index",{"title":96,"path":97,"stem":98},"モジュール内部構造","/frontend/module-anatomy","05.frontend/01.module-anatomy",{"title":100,"path":101,"stem":102},"API アクセスの一本道","/frontend/api-access-chain","05.frontend/02.api-access-chain",{"title":104,"path":105,"stem":106},"i18n","/frontend/i18n","05.frontend/03.i18n",{"title":108,"path":109,"stem":110},"デザインシステム","/frontend/design-system","05.frontend/04.design-system",{"title":112,"path":113,"stem":114,"children":115},"Go Agent And Cli","/go-agent-and-cli","06.go-agent-and-cli",[116,119,123],{"title":117,"path":113,"stem":118},"Go agent と CLI","06.go-agent-and-cli/index",{"title":120,"path":121,"stem":122},"Go agent","/go-agent-and-cli/go-agent","06.go-agent-and-cli/01.go-agent",{"title":124,"path":125,"stem":126},"CLI","/go-agent-and-cli/cli","06.go-agent-and-cli/02.cli",{"title":128,"path":129,"stem":130,"children":131},"Modules","/modules","07.modules",[132,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191],{"title":133,"path":129,"stem":134},"モジュール","07.modules/index",{"title":136,"path":137,"stem":138},"テーブル","/modules/table","07.modules/01.table",{"title":140,"path":141,"stem":142},"ドキュメントツリー","/modules/document","07.modules/02.document",{"title":144,"path":145,"stem":146},"AIチャット","/modules/ai","07.modules/03.ai",{"title":148,"path":149,"stem":150},"認証・権限","/modules/auth","07.modules/04.auth",{"title":152,"path":153,"stem":154},"AI取込","/modules/organize","07.modules/05.organize",{"title":156,"path":157,"stem":158},"ストレージ","/modules/storage","07.modules/06.storage",{"title":160,"path":161,"stem":162},"NAS同期","/modules/sync","07.modules/07.sync",{"title":164,"path":165,"stem":166},"ワークスペース","/modules/workspace","07.modules/08.workspace",{"title":168,"path":169,"stem":170},"テナントとメンバーシップ","/modules/tenant-membership","07.modules/09.tenant-membership",{"title":172,"path":173,"stem":174},"検索","/modules/search","07.modules/10.search",{"title":176,"path":177,"stem":178},"表示ビュー","/modules/display","07.modules/11.display",{"title":180,"path":181,"stem":182},"テンプレート","/modules/template","07.modules/12.template",{"title":184,"path":185,"stem":186},"メール","/modules/mail","07.modules/13.mail",{"title":188,"path":189,"stem":190},"電話","/modules/phone","07.modules/14.phone",{"title":192,"path":193,"stem":194},"リアルタイム","/modules/realtime","07.modules/15.realtime",{"title":196,"path":197,"stem":198,"children":199},"Infra And Deploy","/infra-and-deploy","08.infra-and-deploy",[200,203,207],{"title":201,"path":197,"stem":202},"インフラとデプロイ","08.infra-and-deploy/index",{"title":204,"path":205,"stem":206},"環境の種類","/infra-and-deploy/environments","08.infra-and-deploy/01.environments",{"title":208,"path":209,"stem":210},"セルフホスト構成","/infra-and-deploy/self-host","08.infra-and-deploy/02.self-host",{"title":212,"path":213,"stem":214,"children":215},"docs-map","/docs-map","09.docs-map/index",[216],{"title":212,"path":213,"stem":214},{"id":218,"title":136,"body":219,"description":736,"extension":737,"meta":738,"navigation":739,"path":137,"seo":740,"stem":138,"__hash__":741},"docs/07.modules/01.table.md",{"type":220,"value":221,"toc":725},"minimark",[222,225,229,242,245,332,336,345,490,494,519,602,605,660,663,694,696,707],[223,224,136],"h1",{"id":136},[226,227,228],"h2",{"id":228},"一言でいうと",[230,231,232,233,237,238,241],"p",{},"Astar の中核データストア。スプレッドシート的な「テーブル・プロパティ・レコード」の3層モデルで、プロパティ定義は固定スキーマではなく ",[234,235,236],"code",{},"PropertyDefinition"," の配列として ",[234,239,240],{},"Table"," に持たせ、レコードの値は JSONB に入る。列を増やす・型を変えるがマイグレーション不要という柔軟性が、法律事務所ごとに異なる管理項目（相続財産目録、時系列表など）に対応する土台になっている。",[226,243,244],{"id":244},"主要ドメイン概念",[246,247,248,261],"table",{},[249,250,251],"thead",{},[252,253,254,258],"tr",{},[255,256,257],"th",{},"概念",[255,259,260],{},"役割",[262,263,264,277,290,303,313,324],"tbody",{},[252,265,266,271],{},[267,268,269],"td",{},[234,270,240],{},[267,272,273,274,276],{},"ワークスペース内の1テーブル。",[234,275,236],{}," のリストを持つ",[252,278,279,287],{},[267,280,281,283,284],{},[234,282,236],{}," / ",[234,285,286],{},"PropertyType",[267,288,289],{},"列定義。型（TEXT/NUMBER/SELECT/RELATION/COMPUTED 等）とバリデーションルールを保持",[252,291,292,297],{},[267,293,294],{},[234,295,296],{},"Record",[267,298,299,300,302],{},"1行。値は JSONB（",[234,301,236],{}," の id をキーにした JSON オブジェクト）",[252,304,305,310],{},[267,306,307],{},[234,308,309],{},"ViewType",[267,311,312],{},"テーブルの表示形式（グリッド/ボード/カレンダー等、詳細は表示ビューモジュール）",[252,314,315,318],{},[267,316,317],{},"護 (mamoru) 同期",[267,319,320,321,323],{},"護 NAS 上の MDB（Access データベース）とテーブルを同期する仕組み。専用モジュールを持たず ",[234,322,246],{}," に同居",[252,325,326,329],{},[267,327,328],{},"kitconvert",[267,330,331],{},"テーブル記録を Excel/Word の「キット」帳票へ変換するサブモジュール",[226,333,335],{"id":334},"backend-構造","Backend 構造",[230,337,338,341,342,344],{},[234,339,340],{},"core/table/"," は3層構造に加えて、護同期用の Mamoru* クラス群と ",[234,343,328],{}," サブパッケージを同居させている。",[346,347,348,391,440,456],"ul",{},[349,350,351,354,355,358,359,283,362,365,366,369,370,373,374,377,378,377,381,384,385,377,388],"li",{},[234,352,353],{},"api/controller/",": ",[234,356,357],{},"TableController","（テーブル CRUD）、",[234,360,361],{},"TableRecordController",[234,363,364],{},"RecordController","（レコード CRUD・検索）、",[234,367,368],{},"RecordCellActionController","（セル単位アクション＝Webhook 送信等）、",[234,371,372],{},"DataImportController","（CSV/Excel インポート）、",[234,375,376],{},"MdbMigrationController","、",[234,379,380],{},"MamoruSyncConfigController",[234,382,383],{},"TableTotpController","（TOTP プロパティ）、",[234,386,387],{},"RecordChangeHistoryController",[234,389,390],{},"WebhookCellSecretController",[349,392,393,354,396,399,400,403,404,407,408,283,411,414,415,283,418,421,422,425,426,283,429,283,432,435,436,439],{},[234,394,395],{},"domain/service/",[234,397,398],{},"TableService","（テーブル作成・プロパティ変更、",[234,401,402],{},"DocumentNodeRepository"," と連携してツリー上にテーブルを配置する）、",[234,405,406],{},"RecordService","（レコード CRUD・バリデーション・パッチ適用）、",[234,409,410],{},"RecordFilterService",[234,412,413],{},"RecordJsonSchemaCompiler","（フィルタ・スキーマ検証）、",[234,416,417],{},"SchemaInferenceService",[234,419,420],{},"SchemaRefinementService","（AI 取込時のスキーマ推論）、",[234,423,424],{},"ComputedPropertyService","（CEL 式の COMPUTED プロパティ）、",[234,427,428],{},"TableCsvService",[234,430,431],{},"TableExcelService",[234,433,434],{},"TableImportService","（インポート/エクスポート）、",[234,437,438],{},"Mamoru*Service"," 群（護同期）",[349,441,442,445,446,283,449,283,452,455],{},[234,443,444],{},"kitconvert/",": 独自の ",[234,447,448],{},"api",[234,450,451],{},"domain",[234,453,454],{},"infrastructure"," を持つサブモジュール。レコードを既存の Excel/Word テンプレート（「キット」）に流し込んで帳票化する",[349,457,458,354,461,463,464,463,466,463,468,470,471,463,474,463,477,463,480,463,483,463,486,489],{},[234,459,460],{},"domain/model/",[234,462,240],{},"・",[234,465,296],{},[234,467,236],{},[234,469,286],{}," に加えて、",[234,472,473],{},"filter/",[234,475,476],{},"import/",[234,478,479],{},"mapping/",[234,481,482],{},"mdb/",[234,484,485],{},"schema/",[234,487,488],{},"statistics/"," のサブパッケージ",[226,491,493],{"id":492},"frontend-構造","Frontend 構造",[230,495,496,499,500,463,503,463,506,463,509,463,512,463,515,518],{},[234,497,498],{},"app/modules/table/"," はモジュールの中でも最大級で、規約の4分類（components/composables/repositories/types）に加えて ",[234,501,502],{},"services",[234,504,505],{},"validators",[234,507,508],{},"utils",[234,510,511],{},"constants",[234,513,514],{},"scenarios",[234,516,517],{},"ui-types"," を持つ。",[346,520,521,564,592],{},[349,522,523,354,526,529,530,463,533,463,536,539,540,543,544,547,548,377,550,377,553,377,556,559,560,563],{},[234,524,525],{},"composables/",[234,527,528],{},"core/","（テーブル状態の基盤）、",[234,531,532],{},"record/",[234,534,535],{},"property/",[234,537,538],{},"editing/","（セル編集）、",[234,541,542],{},"selection/","（範囲選択）、",[234,545,546],{},"display/","（ビュー切り替え）、",[234,549,476],{},[234,551,552],{},"totp/",[234,554,555],{},"layout/",[234,557,558],{},"keyboard/","（キーボードナビゲーション）、",[234,561,562],{},"capabilities/","（権限に応じた操作可否判定）",[349,565,566,354,569,463,571,463,573,463,576,463,578,463,581,463,584,463,586,588,589],{},[234,567,568],{},"components/",[234,570,532],{},[234,572,535],{},[234,574,575],{},"view-editors/",[234,577,476],{},[234,579,580],{},"context-menu/",[234,582,583],{},"settings/",[234,585,552],{},[234,587,444],{},"（kitconvert UI）・",[234,590,591],{},"list/",[349,593,594,597,598,601],{},[234,595,596],{},"repositories/",": backend API 呼び出しのラッパー（",[234,599,600],{},"TableRepository"," 等）",[226,603,604],{"id":604},"他モジュールとの辺",[346,606,607,619,632,641,650],{},[349,608,609,612,613,615,616,618],{},[234,610,611],{},"editor","（ドキュメントツリー）: テーブルはドキュメントツリー上のノードとして配置される（",[234,614,398],{}," が ",[234,617,402],{}," を利用）",[349,620,621,624,625,628,629,631],{},[234,622,623],{},"organize",": AI 取込パイプラインの出力先はテーブルのレコード（",[234,626,627],{},"OrganizeRecordWriter"," → ",[234,630,406],{},"）",[349,633,634,637,638,640],{},[234,635,636],{},"display",": テーブル表示ビュー（board/calendar/chart/timeline）は ",[234,639,246],{}," のレコードを読む",[349,642,643,646,647,631],{},[234,644,645],{},"webhook",": セルの値変更が Webhook 送信のトリガーになりうる（",[234,648,649],{},"CellWebhookDispatchService",[349,651,652,655,656,659],{},[234,653,654],{},"mamoru-sync","（frontend）⇄ ",[234,657,658],{},"Mamoru*"," サービス群（backend）: 護 NAS デバイスとの同期設定・進捗を SSE で配信",[226,661,317],{"id":662},"護-mamoru-同期",[230,664,665,666,669,670,672,673,377,676,377,679,377,682,685,686,689,690,693],{},"護 NAS（法律事務所向け Access データベース）とテーブルを同期する機能で、backend 側は専用モジュールを持たず ",[234,667,668],{},"core/table"," に ",[234,671,658],{}," というプレフィックスで同居している（",[234,674,675],{},"domain/service/Mamoru*Service",[234,677,678],{},"infrastructure/listener/MamoruMdbSyncListener",[234,680,681],{},"infrastructure/scheduler/MamoruReconcileScheduler",[234,683,684],{},"infrastructure/sse/MamoruSyncProgressEvents","）。frontend は独立モジュール ",[234,687,688],{},"app/modules/mamoru-sync/"," で、デバイス接続 UI（",[234,691,692],{},"components/connect/","）と進捗表示を持つ。",[226,695,328],{"id":328},[230,697,698,699,702,703,706],{},"テーブルのレコードを既存の Excel/Word テンプレートに流し込んで帳票を生成するサブモジュール。",[234,700,701],{},"core/table/kitconvert/"," が独自の3層構造を持ち、frontend 側は ",[234,704,705],{},"app/modules/table/components/kitconvert/"," に同居する（独立モジュールにはなっていない）。",[708,709,711],"callout",{"type":710},"warning",[230,712,713,715,716,463,718,721,722,724],{},[234,714,286],{}," はシステムが対応する型の Enum だが、値のバリデーション・型変換ロジックはドメインモデル側（",[234,717,236],{},[234,719,720],{},"RecordValidationService","）に集約されている。新しい列の型を追加するときは Enum を増やすだけでは動かず、バリデーション・JSON ⇄ Kotlin 変換・フロントの ",[234,723,535],{}," composable/component の3箇所を揃える必要がある。",{"title":726,"searchDepth":727,"depth":727,"links":728},"",2,[729,730,731,732,733,734,735],{"id":228,"depth":727,"text":228},{"id":244,"depth":727,"text":244},{"id":334,"depth":727,"text":335},{"id":492,"depth":727,"text":493},{"id":604,"depth":727,"text":604},{"id":662,"depth":727,"text":317},{"id":328,"depth":727,"text":328},"JSONB柔軟スキーマのテーブル・レコード・プロパティ。護 (mamoru) 同期と kitconvert サブモジュールを含む、backend core/table ⇄ frontend app/modules/table の深掘り。","md",{},true,{"title":136,"description":736},"ERSznEeV4fNY0Ip0iBWoeUpUkq9TpwBPXo3k7WmpNWY",[743,745,746,748,749,750,751,752,753,754,755,756,758,759,760,761,762,764,765,766,767,768,770,772,774,775,776,777,778,779,780,781,782,783,784,785,786,787,788,789,790,792,793,794,795],{"path":13,"title":744},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":747},"ようこそ",{"path":29,"title":28},{"path":33,"title":32},{"path":37,"title":36},{"path":21,"title":25},{"path":49,"title":48},{"path":53,"title":52},{"path":57,"title":56},{"path":61,"title":60},{"path":41,"title":757},"システムアーキテクチャ",{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":763},"バックエンドガイド",{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":769},"フロントエンドガイド",{"path":121,"title":771},"Go agent — NAS 同期エージェント",{"path":125,"title":773},"astar CLI",{"path":113,"title":117},{"path":137,"title":136},{"path":141,"title":140},{"path":145,"title":144},{"path":149,"title":148},{"path":153,"title":152},{"path":157,"title":156},{"path":161,"title":160},{"path":165,"title":164},{"path":169,"title":168},{"path":173,"title":172},{"path":177,"title":176},{"path":181,"title":180},{"path":185,"title":184},{"path":189,"title":188},{"path":193,"title":192},{"path":129,"title":791},"モジュール索引",{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":796},"docs/ 地図",1785452455250]