[{"data":1,"prerenderedAt":664},["ShallowReactive",2],{"navigation":3,"doc-/modules/workspace":217,"docs-all-paths":609},[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":164,"body":219,"description":603,"extension":604,"meta":605,"navigation":606,"path":165,"seo":607,"stem":166,"__hash__":608},"docs/07.modules/08.workspace.md",{"type":220,"value":221,"toc":594},"minimark",[222,225,229,253,256,366,370,376,445,449,521,524,575],[223,224,164],"h1",{"id":164},[226,227,228],"h2",{"id":228},"一言でいうと",[230,231,232,236,237,240,241,244,245,248,249,252],"p",{},[233,234,235],"code",{},"workspace"," はテナント内のドキュメントツリー・テーブル・その他リソースを収める「器」の CRUD を管理するモジュール。ワークスペース自体はコンテンツを持たず、",[233,238,239],{},"kind","（USER / ASTAR / MAIL / GUEST）でシステム予約か否かを識別し、",[233,242,243],{},"storageMode","（CLOUD / LOCAL / NETWORK_DRIVE / EXTERNAL_CLOUD）でドキュメントの実体がどこにあるかを決める。実際のツリー構造・テーブル・レコードはそれぞれ ",[233,246,247],{},"editor"," モジュール・",[233,250,251],{},"table"," モジュールが持つ。",[226,254,255],{"id":255},"主要ドメイン概念",[251,257,258,271],{},[259,260,261],"thead",{},[262,263,264,268],"tr",{},[265,266,267],"th",{},"概念",[265,269,270],{},"役割",[272,273,274,291,327,356],"tbody",{},[262,275,276,282],{},[277,278,279],"td",{},[233,280,281],{},"Workspace",[277,283,284,285,287,288,290],{},"器そのもの。テナント内で一意な名前・",[233,286,239],{},"・",[233,289,243],{}," を持つ",[262,292,293,298],{},[277,294,295],{},[233,296,297],{},"WorkspaceKind",[277,299,300,303,304,307,308,311,312,315,316,319,320,322,323,326],{},[233,301,302],{},"USER","（通常・自由にリネーム/削除可）/ ",[233,305,306],{},"ASTAR","（AIハーネス用の ",[233,309,310],{},".astar"," 予約ワークスペース）/ ",[233,313,314],{},"MAIL","（メール受信用の個人ワークスペース）/ ",[233,317,318],{},"GUEST","（DEMO用シングルトン）。",[233,321,302],{}," 以外は ",[233,324,325],{},"isProtected == true"," でリネーム/削除禁止",[262,328,329,334],{},[277,330,331],{},[233,332,333],{},"StorageMode",[277,335,336,339,340,343,344,347,348,351,352,355],{},[233,337,338],{},"CLOUD","（既定、Astar ホスト）/ ",[233,341,342],{},"LOCAL","（Tauri経由の個人PC）/ ",[233,345,346],{},"NETWORK_DRIVE","（NAS agent 経由）/ ",[233,349,350],{},"EXTERNAL_CLOUD","（Google Drive等のテナント所有クラウド）。LOCAL と NETWORK_DRIVE のみ ",[233,353,354],{},"isAgentBased() == true","（WebSocket常時接続）、EXTERNAL_CLOUD はサーバー側 REST ポーリングで同期しエージェントを使わない",[262,357,358,363],{},[277,359,360],{},[233,361,362],{},"OrphanReconciliationReport",[277,364,365],{},"ストレージ側の実ファイルとワークスペースのリンク状態のズレを検出・修復するレポート",[226,367,369],{"id":368},"backend-構造","Backend 構造",[230,371,372,375],{},[233,373,374],{},"core/workspace/"," は規約どおりの3層構造。",[377,378,379,394,411,424],"ul",{},[380,381,382,385,386,389,390,393],"li",{},[233,383,384],{},"api/controller/",": ",[233,387,388],{},"WorkspaceController","（ワークスペース CRUD、ゴミ箱、クラウド同期状態）、",[233,391,392],{},"AdminStorageReconciliationController","（管理者向け孤立リンク修復エンドポイント）",[380,395,396,385,399,402,403,406,407,410],{},[233,397,398],{},"domain/service/",[233,400,401],{},"WorkspaceService","（作成・更新・論理削除。",[233,404,405],{},"WorkspaceKind.isProtected"," に基づいて予約ワークスペースの改変を拒否する）、",[233,408,409],{},"WorkspaceStorageReconciliationService","（ストレージ側の実態とワークスペースのリンク状態を突合・修復）",[380,412,413,385,416,287,418,287,420,287,422],{},[233,414,415],{},"domain/model/",[233,417,281],{},[233,419,297],{},[233,421,333],{},[233,423,362],{},[380,425,426,385,429,432,433,436,437,440,441,444],{},[233,427,428],{},"domain/event/",[233,430,431],{},"WorkspaceCreatedEvent","（新規ワークスペース作成時に発火。",[233,434,435],{},"organize"," モジュールなど他モジュールがワークスペース単位のフォルダをブートストラップするために購読する）、",[233,438,439],{},"WorkspaceStorageLinkedEvent"," / ",[233,442,443],{},"WorkspaceStorageUnlinkedEvent","（agent-based デバイスへのリンク/解除。リンク時は既存NASファイルの再スキャンをトリガーする）",[226,446,448],{"id":447},"frontend-構造","Frontend 構造",[377,450,451,476,513],{},[380,452,453,385,456,459,460,459,463,459,466,459,469,472,473],{},[233,454,455],{},"components/",[233,457,458],{},"WorkspaceCard.vue","、",[233,461,462],{},"WorkspaceForm.vue",[233,464,465],{},"WorkspaceScreen.vue",[233,467,468],{},"WorkspaceTrashSection.vue",[233,470,471],{},"CloudProviderPicker.vue","（EXTERNAL_CLOUD プロバイダ選択）、",[233,474,475],{},"CloudSyncStatusBadge.vue",[380,477,478,385,481,459,484,459,487,459,490,493,494,459,497,459,500,440,503,440,506,509,510],{},[233,479,480],{},"composables/",[233,482,483],{},"useWorkspaceCrud",[233,485,486],{},"useWorkspaceList",[233,488,489],{},"useWorkspaceForm",[233,491,492],{},"useWorkspaceContext","（現在のワークスペースのグローバル状態）、",[233,495,496],{},"useWorkspaceCardActions",[233,498,499],{},"useDeletedWorkspaces",[233,501,502],{},"useWorkspaceCloudSync",[233,504,505],{},"useCloudSyncOnOpen",[233,507,508],{},"useCloudSyncStatus","（EXTERNAL_CLOUD の同期状態）、",[233,511,512],{},"useInitialSyncBannerState",[380,514,515,385,518],{},[233,516,517],{},"repositories/",[233,519,520],{},"WorkspaceRepository",[226,522,523],{"id":523},"他モジュールとの辺",[377,525,526,534,541,556,567],{},[380,527,528,530,531,533],{},[233,529,247],{},": ワークスペースはドキュメントツリーの器。実際のノード階層は ",[233,532,247],{}," モジュールが持つ",[380,535,536,538,539,533],{},[233,537,251],{},": ワークスペース内に配置されるテーブルは ",[233,540,251],{},[380,542,543,546,547,550,551,440,553,555],{},[233,544,545],{},"storage",": agent-based ワークスペースは ",[233,548,549],{},"StorageDevice"," にリンクされる。リンク/解除は ",[233,552,439],{},[233,554,443],{}," で他モジュールに通知される",[380,557,558,385,560,562,563,566],{},[233,559,435],{},[233,561,431],{}," を購読し、",[233,564,565],{},"/整理ひな型/"," など OrganizeSchema テンプレート用フォルダをワークスペース作成時にブートストラップする",[380,568,569,572,573,533],{},[233,570,571],{},"cloudstorage",": EXTERNAL_CLOUD の実際のプロバイダ連携（OAuth・delta sync）は ",[233,574,571],{},[576,577,579],"callout",{"type":578},"warning",[230,580,581,583,584,586,587,440,590,593],{},[233,582,243],{}," は4種類あるが「agent-based かどうか」で二分すると3通りに分かれる — CLOUD と EXTERNAL_CLOUD はどちらも非 agent-based だが、CLOUD は Astar ホスト、EXTERNAL_CLOUD はテナント所有の外部プロバイダで同期方式もサーバー側 REST ポーリング（",[233,585,571],{}," モジュール）と全く別物。「クラウドだから同じ実装で良い」という早合点をしないこと（",[233,588,589],{},"StorageMode.isAgentBased()",[233,591,592],{},"isExternalStorage()"," の2つの判定軸を参照）。",{"title":595,"searchDepth":596,"depth":596,"links":597},"",2,[598,599,600,601,602],{"id":228,"depth":596,"text":228},{"id":255,"depth":596,"text":255},{"id":368,"depth":596,"text":369},{"id":447,"depth":596,"text":448},{"id":523,"depth":596,"text":523},"ワークスペースCRUD。backend core/workspace ⇄ frontend app/modules/workspace の深掘り。","md",{},true,{"title":164,"description":603},"ITvsvHzWyQFWrJxjJgcz-hqLZdfvz9hDWZ69m_o9fkk",[610,612,613,615,616,617,618,619,620,621,622,623,625,626,627,628,629,631,632,633,634,635,637,639,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,659,660,661,662],{"path":13,"title":611},"Astar とは何か（5分で）",{"path":17,"title":16},{"path":6,"title":614},"ようこそ",{"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":624},"システムアーキテクチャ",{"path":73,"title":72},{"path":77,"title":76},{"path":81,"title":80},{"path":85,"title":84},{"path":65,"title":630},"バックエンドガイド",{"path":97,"title":96},{"path":101,"title":100},{"path":105,"title":104},{"path":109,"title":108},{"path":89,"title":636},"フロントエンドガイド",{"path":121,"title":638},"Go agent — NAS 同期エージェント",{"path":125,"title":640},"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":658},"モジュール索引",{"path":205,"title":204},{"path":209,"title":208},{"path":197,"title":201},{"path":213,"title":663},"docs/ 地図",1785452455404]