[{"data":1,"prerenderedAt":727},["ShallowReactive",2],{"navigation":3,"doc-/architecture":217,"docs-all-paths":676},[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":219,"body":220,"description":670,"extension":671,"meta":672,"navigation":673,"path":41,"seo":674,"stem":46,"__hash__":675},"docs/03.architecture/index.md","システムアーキテクチャ",{"type":221,"value":222,"toc":662},"minimark",[223,226,252,256,267,274,276,359,365,367,382,385,555,574,584,586,632,635,638],[224,225,219],"h1",{"id":219},[227,228,229,230,234,235,238,239,242,243,247,248,251],"p",{},"Astar は 3 層で構成されています。",[231,232,233],"strong",{},"クライアント層","（Web・デスクトップ・NAS 連携・CLI・Office 編集）、",[231,236,237],{},"アプリケーション層","（Kotlin/Spring Boot のモジュラーモノリス）、",[231,240,241],{},"データ層","（PostgreSQL を中心としたストレージ群）です。このページは全体の見取り図で、各トピックの深掘りは兄弟ページと ",[244,245,246],"a",{"href":65},"バックエンドガイド"," / ",[244,249,250],{"href":129},"モジュール索引"," に分けています。",[253,254,255],"h2",{"id":255},"全体構成",[257,258,263],"pre",{"className":259,"code":261,"language":262},[260],"language-text","クライアント層\n  Web App (Nuxt 4) + Tauri (デスクトップ/モバイル配布)\n  Go Agent (NAS ファイル同期 / ローカル CLI ブリッジ)\n  AI Agent (MCP 経由: Claude Code / Codex / astar CLI)\n  Collabora (WOPI でブラウザ内 Office 編集)\n        ↓\nアプリケーション層\n  Spring Boot（モジュラーモノリス、Spring Modulith）\n  core/ 配下 約47モジュール + shared/\n        ↓\nデータ層\n  PostgreSQL 17（JSONB + RLS + pgvector）\n  MinIO（dev）/ Cloudflare R2（本番）— S3互換オブジェクトストレージ\n  Kreuzberg（OCR）\n","text",[264,265,261],"code",{"__ignoreMap":266},"",[227,268,269,270,273],{},"さらに詳しい構成図・規模指標は ",[264,271,272],{},"docs/ARCHITECTURE.md","（実測照合済み）を参照してください。",[253,275,233],{"id":233},[277,278,279,295],"table",{},[280,281,282],"thead",{},[283,284,285,289,292],"tr",{},[286,287,288],"th",{},"コンポーネント",[286,290,291],{},"実装",[286,293,294],{},"役割",[296,297,298,310,321,335,348],"tbody",{},[283,299,300,304,307],{},[301,302,303],"td",{},"Web App",[301,305,306],{},"Nuxt 4 / Vue 3（SSR/SPA）",[301,308,309],{},"メインの利用画面",[283,311,312,315,318],{},[301,313,314],{},"デスクトップ/モバイル",[301,316,317],{},"Tauri（同じ Nuxt フロントを OTA 更新付きで配布）",[301,319,320],{},"オフィスに閉じた運用・NAS 直結が要る場面",[283,322,323,326,332],{},[301,324,325],{},"Go Agent",[301,327,328,331],{},[264,329,330],{},"agent/"," — WebSocket で Backend に接続",[301,333,334],{},"NAS のファイル同期（護 (mamoru) 含む）、ローカル CLI（Claude Code/Codex）とのブリッジ",[283,336,337,340,345],{},[301,338,339],{},"astar CLI",[301,341,342],{},[264,343,344],{},"cli/",[301,346,347],{},"ターミナルから MCP ツール群を直接叩く経路。AI agent 経路と同じツール定義・同じ認可を通る",[283,349,350,353,356],{},[301,351,352],{},"Collabora",[301,354,355],{},"WOPI ホスト",[301,357,358],{},"Word/Excel 等をブラウザ内でネイティブ編集",[227,360,361,362,364],{},"Web と Tauri は同じ Nuxt コードベースです。Go Agent は「NAS が正 (SSoT)」というストレージ設計（",[244,363,60],{"href":61}," 参照）を成立させるための常駐プロセスで、ファイル同期に加えて Claude Code/Codex のようなユーザー自身のサブスクリプションを使うローカル CLI プロバイダのブリッジも兼ねます。",[253,366,237],{"id":237},[227,368,369,370,373,374,377,378,381],{},"Kotlin + Spring Boot 4 の",[231,371,372],{},"モジュラーモノリス","（Spring Modulith）です。",[264,375,376],{},"core/"," 配下に約47モジュール、共通処理を ",[264,379,380],{},"shared/"," に持ちます。1つのデプロイ単位でありながら、モジュール間の依存方向はアーキテクチャテスト（ArchUnit）で強制されています。",[227,383,384],{},"主なモジュールグループ:",[277,386,387,399],{},[280,388,389],{},[283,390,391,394,397],{},[286,392,393],{},"グループ",[286,395,396],{},"代表モジュール",[286,398,294],{},[296,400,401,440,467,504,521],{},[283,402,403,406,437],{},[301,404,405],{},"コンテンツ基盤",[301,407,408,247,411,247,413,247,416,247,419,247,422,247,425,247,428,247,431,247,434],{},[264,409,410],{},"editor",[264,412,277],{},[264,414,415],{},"dataset",[264,417,418],{},"template",[264,420,421],{},"tag",[264,423,424],{},"trash",[264,426,427],{},"export",[264,429,430],{},"search",[264,432,433],{},"share",[264,435,436],{},"workspace",[301,438,439],{},"階層ドキュメント・JSONB柔軟テーブル・検索など製品の中核",[283,441,442,445,462],{},[301,443,444],{},"AI",[301,446,447,450,451,454,455,458,459],{},[264,448,449],{},"ai","（エージェントループ・Plan Mode・メモリ・スキル・マルチプロバイダ）/ ",[264,452,453],{},"mcp","（250+ ツール）/ ",[264,456,457],{},"organize","（OCR→AI抽出）/ ",[264,460,461],{},"automation",[301,463,464,466],{},[244,465,56],{"href":57}," で詳述",[283,468,469,472,501],{},[301,470,471],{},"コンテキスト源",[301,473,474,247,477,247,480,247,483,247,486,247,489,247,492,247,495,247,498],{},[264,475,476],{},"mail",[264,478,479],{},"calendar",[264,481,482],{},"sync",[264,484,485],{},"storage",[264,487,488],{},"cloudstorage",[264,490,491],{},"phone",[264,493,494],{},"realtime",[264,496,497],{},"botgateway",[264,499,500],{},"webhook",[301,502,503],{},"事務所の既存業務ツールから情報を取り込む経路",[283,505,506,509,518],{},[301,507,508],{},"Office",[301,510,511,514,515],{},[264,512,513],{},"office","（WOPI + POI 直接編集）/ ",[264,516,517],{},"pdf",[301,519,520],{},"書類編集・PDF処理",[283,522,523,526,552],{},[301,524,525],{},"組織レイヤー",[301,527,528,247,531,247,534,247,537,247,540,247,543,247,546,247,549],{},[264,529,530],{},"auth",[264,532,533],{},"membership",[264,535,536],{},"tenant",[264,538,539],{},"user",[264,541,542],{},"rolesync",[264,544,545],{},"serviceaccount",[264,547,548],{},"billing",[264,550,551],{},"notification",[301,553,554],{},"認証・認可・課金など。差別化軸そのもの（下記参照）",[227,556,557,558,561,562,565,566,569,570,573],{},"各モジュールは ",[264,559,560],{},"api","（Controller/DTO）→ ",[264,563,564],{},"domain","（Service/Model/Repository interface）→ ",[264,567,568],{},"infrastructure","（実装）の3層構造で、層を飛ばした呼び出しは規約違反です。詳しくは ",[244,571,572],{"href":73},"バックエンドガイド／層構造","。",[575,576,578],"callout",{"type":577},"info",[227,579,580,583],{},[231,581,582],{},"設計原則",": Astar は Anthropic 公式 / Claude Code と機能で競合しません。差別化軸は組織レイヤー（RLS・権限・MCP・コンテキスト保持）のみです。",[253,585,241],{"id":241},[277,587,588,598],{},[280,589,590],{},[283,591,592,595],{},[286,593,594],{},"ストア",[286,596,597],{},"用途",[296,599,600,608,616,624],{},[283,601,602,605],{},[301,603,604],{},"PostgreSQL 17",[301,606,607],{},"メインデータストア。JSONB による柔軟スキーマ + Row Level Security によるテナント分離 + pgvector によるセマンティック検索",[283,609,610,613],{},[301,611,612],{},"MinIO（dev）/ Cloudflare R2（本番）",[301,614,615],{},"ファイルストレージ。S3互換API。NAS モードでは Go Agent 経由で事務所のハードウェアが SSoT になる",[283,617,618,621],{},[301,619,620],{},"Caffeine",[301,622,623],{},"in-process キャッシュ。本番に Redis 依存はない",[283,625,626,629],{},[301,627,628],{},"Kreuzberg",[301,630,631],{},"OCR",[227,633,634],{},"テナント分離・柔軟テーブル・ID戦略は、それぞれ独立したページで扱います。",[253,636,637],{"id":637},"このセクションの構成",[639,640,641,647,652,657],"ul",{},[642,643,644,646],"li",{},[244,645,48],{"href":49}," — Row Level Security の仕組みと、なぜこの方式を選んだか",[642,648,649,651],{},[244,650,52],{"href":53}," — primitives-only 認可（2026-07-01 再設計）",[642,653,654,656],{},[244,655,56],{"href":57}," — マルチプロバイダ・エージェントループ・MCP・サンドボックス",[642,658,659,661],{},[244,660,60],{"href":61}," — dual-ID、JSONB柔軟テーブル、Exposed ORM",{"title":266,"searchDepth":663,"depth":663,"links":664},2,[665,666,667,668,669],{"id":255,"depth":663,"text":255},{"id":233,"depth":663,"text":233},{"id":237,"depth":663,"text":237},{"id":241,"depth":663,"text":241},{"id":637,"depth":663,"text":637},"クライアント層 (Nuxt 4 / Tauri / Go NAS agent / astar CLI / Collabora) → アプリケーション層 (Spring Boot Modulith、core/ 47モジュール) → データ層 (PostgreSQL 17 + RLS、MinIO/R2、pgvector) の全体像。","md",{},{"title":45},{"title":219,"description":670},"Lr4h60cktTx0G8MZoVyVd6XKqRR2MkS5WPLb7wQ2iOQ",[677,679,680,682,683,684,685,686,687,688,689,690,691,692,693,694,695,696,697,698,699,700,702,704,705,706,707,708,709,710,711,712,713,714,715,716,717,718,719,720,721,722,723,724,725],{"path":13,"title":678},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":681},"ようこそ",{"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":219},{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":246},{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":701},"フロントエンドガイド",{"path":121,"title":703},"Go agent — NAS 同期エージェント",{"path":125,"title":339},{"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":250},{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":726},"docs/ 地図",1785452454152]