[{"data":1,"prerenderedAt":2257},["ShallowReactive",2],{"nav-docs-ja":3,"page-/ja/docs/webspace/api-overview":1156,"surround-/ja/docs/webspace/api-overview":2251,"raw-/ja/docs/webspace/api-overview":2254},[4,67,374,775,903,1074,1084,1109],{"title":5,"tags":6,"slug":6,"path":7,"stem":8,"children":9,"page":66,"sourcePath":7},"SpaceBuilderを始める",null,"/getting-started","00.getting-started",[10,15,20,27,34,39,45,50,55,60],{"title":11,"path":12,"stem":13,"tags":6,"slug":14,"sourcePath":12},"SpaceBuilderの紹介","/getting-started/overview","00.getting-started/00.overview","/getting-started/overview/",{"title":16,"path":17,"stem":18,"tags":6,"slug":19,"sourcePath":17},"SetFNアカウントの作成","/getting-started/create-setfn-account","00.getting-started/05.create-setfn-account","/getting-started/create-setfn-account/",{"title":21,"path":22,"stem":23,"tags":24,"slug":26,"sourcePath":22},"Linuxにインストールする","/getting-started/install-linux","00.getting-started/10.install-linux",[25],"recommended","/getting-started/install-linux/",{"title":28,"path":29,"stem":30,"tags":31,"slug":33,"sourcePath":29},"Dockerでインストールする","/getting-started/install-docker","00.getting-started/12.install-docker",[32],"preparing","/getting-started/install-docker/",{"title":35,"path":36,"stem":37,"tags":6,"slug":38,"sourcePath":36},"Windowsにインストールする","/getting-started/install-windows","00.getting-started/14.install-windows","/getting-started/install-windows/",{"title":40,"path":41,"stem":42,"tags":43,"slug":44,"sourcePath":41},"macOSにインストールする","/getting-started/install-macos","00.getting-started/16.install-macos",[32],"/getting-started/install-macos/",{"title":46,"path":47,"stem":48,"tags":6,"slug":49,"sourcePath":47},"初期設定","/getting-started/initial-setup","00.getting-started/20.initial-setup","/getting-started/initial-setup/",{"title":51,"path":52,"stem":53,"tags":6,"slug":54,"sourcePath":52},"ライセンスの有効化","/getting-started/license-activation","00.getting-started/30.license-activation","/getting-started/license-activation/",{"title":56,"path":57,"stem":58,"tags":6,"slug":59,"sourcePath":57},"接続アドレスの確認（ローカル/内部ネットワーク）","/getting-started/access-url","00.getting-started/35.access-url","/getting-started/access-url/",{"title":61,"path":62,"stem":63,"tags":64,"slug":65,"sourcePath":62},"外部接続方式の選択","/getting-started/access-domain","00.getting-started/40.access-domain",[25],"/getting-started/access-domain/",false,{"title":68,"tags":6,"slug":6,"path":69,"stem":70,"children":71,"page":66,"sourcePath":69},"スペースを管理する","/admin","10.admin",[72,92,162,197,249,274,289,299,339],{"title":73,"tags":6,"slug":6,"path":74,"stem":75,"children":76,"page":66,"sourcePath":74},"管理者ホーム","/admin/home","10.admin/00.home",[77,82,87],{"title":78,"path":79,"stem":80,"tags":6,"slug":81,"sourcePath":79},"管理者ページにアクセスする","/admin/home/admin-page-access","10.admin/00.home/00.admin-page-access","/admin/home/admin-page-access/",{"title":83,"path":69,"stem":84,"tags":6,"slug":85,"sourcePath":86},"管理者メニューを確認する","10.admin/00.home/00.overview","/admin/","/admin/home/overview",{"title":88,"path":89,"stem":90,"tags":6,"slug":91,"sourcePath":89},"ライセンス管理","/admin/home/license","10.admin/00.home/20.license","/admin/home/license/",{"title":93,"tags":6,"slug":6,"path":94,"stem":95,"children":96,"page":66,"sourcePath":94},"ユーザー管理","/admin/user-management","10.admin/10.user-management",[97,102,107,112,117,122,127,132,137,142,147,152,157],{"title":98,"path":99,"stem":100,"tags":6,"slug":101,"sourcePath":99},"登録ポリシーと既定の権限を設定する","/admin/user-management/signup-policy","10.admin/10.user-management/02.signup-policy","/admin/user-management/signup-policy/",{"title":103,"path":104,"stem":105,"tags":6,"slug":106,"sourcePath":104},"登録時の規約を登録する","/admin/user-management/signup-terms","10.admin/10.user-management/04.signup-terms","/admin/user-management/signup-terms/",{"title":108,"path":109,"stem":110,"tags":6,"slug":111,"sourcePath":109},"ユーザーアカウントの作成","/admin/user-management/invite-new-member","10.admin/10.user-management/10.invite-new-member","/admin/user-management/invite-new-member/",{"title":113,"path":114,"stem":115,"tags":6,"slug":116,"sourcePath":114},"ユーザーアカウントを編集する","/admin/user-management/edit-member","10.admin/10.user-management/11.edit-member","/admin/user-management/edit-member/",{"title":118,"path":119,"stem":120,"tags":6,"slug":121,"sourcePath":119},"管理者を追加する","/admin/user-management/add-new-admin","10.admin/10.user-management/12.add-new-admin","/admin/user-management/add-new-admin/",{"title":123,"path":124,"stem":125,"tags":6,"slug":126,"sourcePath":124},"チーム管理","/admin/user-management/team","10.admin/10.user-management/22.team","/admin/user-management/team/",{"title":128,"path":129,"stem":130,"tags":6,"slug":131,"sourcePath":129},"レベル管理","/admin/user-management/level","10.admin/10.user-management/24.level","/admin/user-management/level/",{"title":133,"path":134,"stem":135,"tags":6,"slug":136,"sourcePath":134},"接続記録を確認する","/admin/user-management/access-log","10.admin/10.user-management/30.access-log","/admin/user-management/access-log/",{"title":138,"path":139,"stem":140,"tags":6,"slug":141,"sourcePath":139},"アクティブなデバイスを管理する","/admin/user-management/active-devices","10.admin/10.user-management/31.active-devices","/admin/user-management/active-devices/",{"title":143,"path":144,"stem":145,"tags":6,"slug":146,"sourcePath":144},"アカウント・セキュリティのポリシーを設定する","/admin/user-management/account-security","10.admin/10.user-management/32.account-security","/admin/user-management/account-security/",{"title":148,"path":149,"stem":150,"tags":6,"slug":151,"sourcePath":149},"ロボット確認（CAPTCHA）を設定する","/admin/user-management/captcha","10.admin/10.user-management/33.captcha","/admin/user-management/captcha/",{"title":153,"path":154,"stem":155,"tags":6,"slug":156,"sourcePath":154},"案内送信を設定する","/admin/user-management/notice-settings","10.admin/10.user-management/34.notice-settings","/admin/user-management/notice-settings/",{"title":158,"path":159,"stem":160,"tags":6,"slug":161,"sourcePath":159},"会員へ一斉案内メールを送信する","/admin/user-management/bulk-mail","10.admin/10.user-management/36.bulk-mail","/admin/user-management/bulk-mail/",{"title":163,"tags":6,"slug":6,"path":164,"stem":165,"children":166,"page":66,"sourcePath":164},"サービス構成","/admin/service-config","10.admin/20.service-config",[167,172,177,182,187,192],{"title":168,"path":169,"stem":170,"tags":6,"slug":171,"sourcePath":169},"ファイルエリアの設定","/admin/service-config/file-area","10.admin/20.service-config/10.file-area","/admin/service-config/file-area/",{"title":173,"path":174,"stem":175,"tags":6,"slug":176,"sourcePath":174},"Webhookの設定","/admin/service-config/webhook-settings","10.admin/20.service-config/16.webhook-settings","/admin/service-config/webhook-settings/",{"title":178,"path":179,"stem":180,"tags":6,"slug":181,"sourcePath":179},"コミュニティ設定","/admin/service-config/community-space","10.admin/20.service-config/22.community-space","/admin/service-config/community-space/",{"title":183,"path":184,"stem":185,"tags":6,"slug":186,"sourcePath":184},"AIチャットボットポリシー設定","/admin/service-config/community-ai-chatbot","10.admin/20.service-config/24.community-ai-chatbot","/admin/service-config/community-ai-chatbot/",{"title":188,"path":189,"stem":190,"tags":6,"slug":191,"sourcePath":189},"メール設定","/admin/service-config/email-settings","10.admin/20.service-config/30.email-settings","/admin/service-config/email-settings/",{"title":193,"path":194,"stem":195,"tags":6,"slug":196,"sourcePath":194},"ブランディング設定","/admin/service-config/brand","10.admin/20.service-config/40.brand","/admin/service-config/brand/",{"title":198,"tags":6,"slug":6,"path":199,"stem":200,"children":201,"page":66,"sourcePath":199},"ナレッジサービス","/admin/knowledge","10.admin/30.knowledge",[202,207,214,219,224,229,234,239,244],{"title":203,"path":199,"stem":204,"tags":6,"slug":205,"sourcePath":206},"ナレッジサービスの概要","10.admin/30.knowledge/00.overview","/admin/knowledge/","/admin/knowledge/overview",{"title":208,"path":209,"stem":210,"children":211,"tags":6,"slug":213,"sourcePath":209},"収集・インデックス作成","/admin/knowledge/indexing","10.admin/30.knowledge/10.indexing",[212],{"title":208,"path":209,"stem":210,"tags":6,"slug":213,"sourcePath":209},"/admin/knowledge/indexing/",{"title":215,"path":216,"stem":217,"tags":6,"slug":218,"sourcePath":216},"検索品質・言語","/admin/knowledge/search","10.admin/30.knowledge/20.search","/admin/knowledge/search/",{"title":220,"path":221,"stem":222,"tags":6,"slug":223,"sourcePath":221},"ナレッジストレージ","/admin/knowledge/storage","10.admin/30.knowledge/30.storage","/admin/knowledge/storage/",{"title":225,"path":226,"stem":227,"tags":6,"slug":228,"sourcePath":226},"ナレッジストレージを運用する","/admin/knowledge/storage-operations","10.admin/30.knowledge/32.storage-operations","/admin/knowledge/storage-operations/",{"title":230,"path":231,"stem":232,"tags":6,"slug":233,"sourcePath":231},"Qdrantを接続する","/admin/knowledge/qdrant","10.admin/30.knowledge/34.qdrant","/admin/knowledge/qdrant/",{"title":235,"path":236,"stem":237,"tags":6,"slug":238,"sourcePath":236},"Qdrantサーバーを準備する","/admin/knowledge/qdrant-server-setup","10.admin/30.knowledge/35.qdrant-server-setup","/admin/knowledge/qdrant-server-setup/",{"title":240,"path":241,"stem":242,"tags":6,"slug":243,"sourcePath":241},"Milvusを接続する","/admin/knowledge/milvus","10.admin/30.knowledge/36.milvus","/admin/knowledge/milvus/",{"title":245,"path":246,"stem":247,"tags":6,"slug":248,"sourcePath":246},"外部検索・根拠","/admin/knowledge/web-search","10.admin/30.knowledge/40.web-search","/admin/knowledge/web-search/",{"title":250,"tags":6,"slug":6,"path":251,"stem":252,"children":253,"page":66,"sourcePath":251},"AIサービス","/admin/ai","10.admin/35.ai",[254,259,264,269],{"title":255,"path":251,"stem":256,"tags":6,"slug":257,"sourcePath":258},"AIサービスを管理する","10.admin/35.ai/00.overview","/admin/ai/","/admin/ai/overview",{"title":260,"path":261,"stem":262,"tags":6,"slug":263,"sourcePath":261},"モデル・ランタイムを設定する","/admin/ai/models","10.admin/35.ai/10.models","/admin/ai/models/",{"title":265,"path":266,"stem":267,"tags":6,"slug":268,"sourcePath":266},"ツール・連携を設定する","/admin/ai/integrations","10.admin/35.ai/20.integrations","/admin/ai/integrations/",{"title":270,"path":271,"stem":272,"tags":6,"slug":273,"sourcePath":271},"MCPサーバーを管理する","/admin/ai/mcp","10.admin/35.ai/30.mcp","/admin/ai/mcp/",{"title":275,"tags":6,"slug":6,"path":276,"stem":277,"children":278,"page":66,"sourcePath":276},"プラグイン","/admin/plugin","10.admin/40.plugin",[279,284],{"title":280,"path":281,"stem":282,"tags":6,"slug":283,"sourcePath":281},"プラグインを管理する","/admin/plugin/overview","10.admin/40.plugin/00.overview","/admin/plugin/overview/",{"title":285,"path":286,"stem":287,"tags":6,"slug":288,"sourcePath":286},"拡張プラグインの設定","/admin/plugin/settings","10.admin/40.plugin/10.settings","/admin/plugin/settings/",{"title":290,"path":291,"stem":292,"children":293,"page":66,"sourcePath":291},"Operations","/admin/operations","10.admin/45.operations",[294],{"title":295,"path":291,"stem":296,"tags":6,"slug":297,"sourcePath":298},"運用・監査の記録を確認する","10.admin/45.operations/00.overview","/admin/operations/","/admin/operations/overview",{"title":300,"tags":6,"slug":6,"path":301,"stem":302,"children":303,"page":66,"sourcePath":301},"セキュリティ管理","/admin/security","10.admin/50.security",[304,309,314,319,324,329,334],{"title":305,"path":306,"stem":307,"tags":6,"slug":308,"sourcePath":306},"セキュリティの概要","/admin/security/overview","10.admin/50.security/00.overview","/admin/security/overview/",{"title":310,"path":311,"stem":312,"tags":6,"slug":313,"sourcePath":311},"監査ログを確認する","/admin/security/audit-log","10.admin/50.security/05.audit-log","/admin/security/audit-log/",{"title":315,"path":316,"stem":317,"tags":6,"slug":318,"sourcePath":316},"ブロック管理","/admin/security/block-management","10.admin/50.security/10.block-management","/admin/security/block-management/",{"title":320,"path":321,"stem":322,"tags":6,"slug":323,"sourcePath":321},"セキュリティ設定","/admin/security/security-setting","10.admin/50.security/12.security-setting","/admin/security/security-setting/",{"title":325,"path":326,"stem":327,"tags":6,"slug":328,"sourcePath":326},"承認待ちの端末を処理する","/admin/security/device-approvals","10.admin/50.security/14.device-approvals","/admin/security/device-approvals/",{"title":330,"path":331,"stem":332,"tags":6,"slug":333,"sourcePath":331},"IPアクセス制限","/admin/security/ip-restriction","10.admin/50.security/16.ip-restriction","/admin/security/ip-restriction/",{"title":335,"path":336,"stem":337,"tags":6,"slug":338,"sourcePath":336},"管理者の2段階認証を設定する","/admin/security/two-factor-auth","10.admin/50.security/18.two-factor-auth","/admin/security/two-factor-auth/",{"title":340,"tags":6,"slug":6,"path":341,"stem":342,"children":343,"page":66,"sourcePath":341},"システム管理","/admin/system-admin","10.admin/60.system-admin",[344,349,354,359,364,369],{"title":345,"path":346,"stem":347,"tags":6,"slug":348,"sourcePath":346},"デバイス情報","/admin/system-admin/device-info","10.admin/60.system-admin/10.device-info","/admin/system-admin/device-info/",{"title":350,"path":351,"stem":352,"tags":6,"slug":353,"sourcePath":351},"サーバーの再起動とシステムメンテナンス","/admin/system-admin/server-restart","10.admin/60.system-admin/12.server-restart","/admin/system-admin/server-restart/",{"title":355,"path":356,"stem":357,"tags":6,"slug":358,"sourcePath":356},"バックグラウンドサービス","/admin/system-admin/background-service","10.admin/60.system-admin/14.background-service","/admin/system-admin/background-service/",{"title":360,"path":361,"stem":362,"tags":6,"slug":363,"sourcePath":361},"SpaceBuilderをアップデートする","/admin/system-admin/update","10.admin/60.system-admin/16.update","/admin/system-admin/update/",{"title":365,"path":366,"stem":367,"tags":6,"slug":368,"sourcePath":366},"SpaceBuilderをアンインストールする","/admin/system-admin/uninstall","10.admin/60.system-admin/18.uninstall","/admin/system-admin/uninstall/",{"title":370,"path":371,"stem":372,"tags":6,"slug":373,"sourcePath":371},"サーバーを移行する","/admin/system-admin/server-migration","10.admin/60.system-admin/20.server-migration","/admin/system-admin/server-migration/",{"title":375,"tags":6,"slug":6,"path":376,"stem":377,"children":378,"page":66,"sourcePath":376},"ワークスペースを使用する","/workspace","20.workspace",[379,419,439,523,662,718,754],{"title":380,"tags":6,"slug":6,"path":381,"stem":382,"children":383,"page":66,"sourcePath":381},"メニュー","/workspace/menu","20.workspace/05.menu",[384,389,394,399,404,409,414],{"title":385,"path":386,"stem":387,"tags":6,"slug":388,"sourcePath":386},"ワークスペースの紹介","/workspace/menu/overview","20.workspace/05.menu/00.overview","/workspace/menu/overview/",{"title":390,"path":391,"stem":392,"tags":6,"slug":393,"sourcePath":391},"チームスペース","/workspace/menu/team-space","20.workspace/05.menu/05.team-space","/workspace/menu/team-space/",{"title":395,"path":396,"stem":397,"tags":6,"slug":398,"sourcePath":396},"クライアントスペース","/workspace/menu/client-space","20.workspace/05.menu/06.client-space","/workspace/menu/client-space/",{"title":400,"path":401,"stem":402,"tags":6,"slug":403,"sourcePath":401},"お気に入り","/workspace/menu/favorites","20.workspace/05.menu/10.favorites","/workspace/menu/favorites/",{"title":405,"path":406,"stem":407,"tags":6,"slug":408,"sourcePath":406},"最近のドキュメント","/workspace/menu/recent","20.workspace/05.menu/20.recent","/workspace/menu/recent/",{"title":410,"path":411,"stem":412,"tags":6,"slug":413,"sourcePath":411},"外部共有","/workspace/menu/external-share","20.workspace/05.menu/30.external-share","/workspace/menu/external-share/",{"title":415,"path":416,"stem":417,"tags":6,"slug":418,"sourcePath":416},"ゴミ箱","/workspace/menu/trash","20.workspace/05.menu/40.trash","/workspace/menu/trash/",{"title":420,"tags":6,"slug":6,"path":421,"stem":422,"children":423,"page":66,"sourcePath":421},"アカウント","/workspace/account","20.workspace/10.account",[424,429,434],{"title":425,"path":426,"stem":427,"tags":6,"slug":428,"sourcePath":426},"新規登録とログイン","/workspace/account/signup","20.workspace/10.account/10.signup","/workspace/account/signup/",{"title":430,"path":431,"stem":432,"tags":6,"slug":433,"sourcePath":431},"パスワードの再設定","/workspace/account/reset-password","20.workspace/10.account/20.reset-password","/workspace/account/reset-password/",{"title":435,"path":436,"stem":437,"tags":6,"slug":438,"sourcePath":436},"アカウント設定","/workspace/account/account-settings","20.workspace/10.account/30.account-settings","/workspace/account/account-settings/",{"title":440,"tags":6,"slug":6,"path":441,"stem":442,"children":443,"page":66,"sourcePath":441},"フォルダ","/workspace/folder","20.workspace/20.folder",[444,449,454,459,464,471,476,481,486,491,496,501,506,511,518],{"title":445,"path":446,"stem":447,"tags":6,"slug":448,"sourcePath":446},"フォルダの基本機能","/workspace/folder/basic","20.workspace/20.folder/10.basic","/workspace/folder/basic/",{"title":450,"path":451,"stem":452,"tags":6,"slug":453,"sourcePath":451},"複数のフォルダを一度に作成する","/workspace/folder/bulk-folder-creation","20.workspace/20.folder/12.bulk-folder-creation","/workspace/folder/bulk-folder-creation/",{"title":455,"path":456,"stem":457,"tags":6,"slug":458,"sourcePath":456},"フィルター","/workspace/folder/filter","20.workspace/20.folder/13.filter","/workspace/folder/filter/",{"title":460,"path":461,"stem":462,"tags":6,"slug":463,"sourcePath":461},"フォルダの表示オプション設定","/workspace/folder/folder-view-options","20.workspace/20.folder/14.folder-view-options","/workspace/folder/folder-view-options/",{"title":465,"path":466,"stem":467,"tags":468,"slug":470,"sourcePath":466},"フォルダを掲示板として使う","/workspace/folder/board-view","20.workspace/20.folder/15.board-view",[469],"hot","/workspace/folder/board-view/",{"title":472,"path":473,"stem":474,"tags":6,"slug":475,"sourcePath":473},"フォルダWebビュー","/workspace/folder/folder-web-view","20.workspace/20.folder/16.folder-web-view","/workspace/folder/folder-web-view/",{"title":477,"path":478,"stem":479,"tags":6,"slug":480,"sourcePath":478},"フォルダ整理","/workspace/folder/folder-organize","20.workspace/20.folder/17.folder-organize","/workspace/folder/folder-organize/",{"title":482,"path":483,"stem":484,"tags":6,"slug":485,"sourcePath":483},"フォルダのお知らせ (README)","/workspace/folder/folder-readme","20.workspace/20.folder/18.folder-readme","/workspace/folder/folder-readme/",{"title":487,"path":488,"stem":489,"tags":6,"slug":490,"sourcePath":488},"フォルダ/ファイルリストのエクスポート","/workspace/folder/folder-export","20.workspace/20.folder/20.folder-export","/workspace/folder/folder-export/",{"title":492,"path":493,"stem":494,"tags":6,"slug":495,"sourcePath":493},"レベル別のアクセス権限設定","/workspace/folder/level-access-permissions","20.workspace/20.folder/24.level-access-permissions","/workspace/folder/level-access-permissions/",{"title":497,"path":498,"stem":499,"tags":6,"slug":500,"sourcePath":498},"チーム別のアクセス権限設定","/workspace/folder/team-access-permissions","20.workspace/20.folder/26.team-access-permissions","/workspace/folder/team-access-permissions/",{"title":502,"path":503,"stem":504,"tags":6,"slug":505,"sourcePath":503},"ファイルルールを設定する","/workspace/folder/file-rules","20.workspace/20.folder/28.file-rules","/workspace/folder/file-rules/",{"title":507,"path":508,"stem":509,"tags":6,"slug":510,"sourcePath":508},"フォルダWebhook","/workspace/folder/webhook","20.workspace/20.folder/30.webhook","/workspace/folder/webhook/",{"title":512,"path":513,"stem":514,"children":515,"tags":6,"slug":517,"sourcePath":513},"フォルダのナレッジインデックスを設定する","/workspace/folder/knowledge-index","20.workspace/20.folder/32.knowledge-index",[516],{"title":512,"path":513,"stem":514,"tags":6,"slug":517,"sourcePath":513},"/workspace/folder/knowledge-index/",{"title":519,"path":520,"stem":521,"tags":6,"slug":522,"sourcePath":520},"業務自動化フォルダ","/workspace/folder/automation","20.workspace/20.folder/40.automation","/workspace/folder/automation/",{"title":524,"tags":6,"slug":6,"path":525,"stem":526,"children":527,"page":66,"sourcePath":525},"ファイル","/workspace/file","20.workspace/30.file",[528,533,538,543,548,553,558,563,568,573,578,583,588,593,598,603,608,613,618,623,628,633,637,642,647,652,657],{"title":529,"path":530,"stem":531,"tags":6,"slug":532,"sourcePath":530},"ファイル管理の基本機能","/workspace/file/overview","20.workspace/30.file/00.overview","/workspace/file/overview/",{"title":534,"path":535,"stem":536,"tags":6,"slug":537,"sourcePath":535},"ファイルを見ながら一覧を確認する","/workspace/file/list-in-file","20.workspace/30.file/05.list-in-file","/workspace/file/list-in-file/",{"title":539,"path":540,"stem":541,"tags":6,"slug":542,"sourcePath":540},"マークダウン、テキストファイルの表示と編集","/workspace/file/text-file-viewer","20.workspace/30.file/10.text-file-viewer","/workspace/file/text-file-viewer/",{"title":544,"path":545,"stem":546,"tags":6,"slug":547,"sourcePath":545},"HTMLファイルの表示","/workspace/file/html-viewer","20.workspace/30.file/11.html-viewer","/workspace/file/html-viewer/",{"title":549,"path":550,"stem":551,"tags":6,"slug":552,"sourcePath":550},"CSVファイルの表示と編集","/workspace/file/csv-viewer","20.workspace/30.file/12.csv-viewer","/workspace/file/csv-viewer/",{"title":554,"path":555,"stem":556,"tags":6,"slug":557,"sourcePath":555},"画像/動画ファイルの表示","/workspace/file/image-file-viewer","20.workspace/30.file/13.image-file-viewer","/workspace/file/image-file-viewer/",{"title":559,"path":560,"stem":561,"tags":6,"slug":562,"sourcePath":560},"Office/PDFファイルの表示","/workspace/file/office-viewer","20.workspace/30.file/14.office-viewer","/workspace/file/office-viewer/",{"title":564,"path":565,"stem":566,"tags":6,"slug":567,"sourcePath":565},"Webページの貼り付け(HTML)","/workspace/file/paste-html","20.workspace/30.file/20.paste-html","/workspace/file/paste-html/",{"title":569,"path":570,"stem":571,"tags":6,"slug":572,"sourcePath":570},"スクリーンショットを貼り付ける","/workspace/file/paste-screenshot","20.workspace/30.file/21.paste-screenshot","/workspace/file/paste-screenshot/",{"title":574,"path":575,"stem":576,"tags":6,"slug":577,"sourcePath":575},"Markdown(MD)を貼り付ける","/workspace/file/paste-md","20.workspace/30.file/22.paste-md","/workspace/file/paste-md/",{"title":579,"path":580,"stem":581,"tags":6,"slug":582,"sourcePath":580},"スクリーン録画","/workspace/file/screen-recording","20.workspace/30.file/23.screen-recording","/workspace/file/screen-recording/",{"title":584,"path":585,"stem":586,"tags":6,"slug":587,"sourcePath":585},"クイックノート","/workspace/file/quick-note","20.workspace/30.file/24.quick-note","/workspace/file/quick-note/",{"title":589,"path":590,"stem":591,"tags":6,"slug":592,"sourcePath":590},"ファイルタグ","/workspace/file/file-tag","20.workspace/30.file/33.file-tag","/workspace/file/file-tag/",{"title":594,"path":595,"stem":596,"tags":6,"slug":597,"sourcePath":595},"ファイル名を一括変更する","/workspace/file/bulk-name-revise","20.workspace/30.file/34.bulk-name-revise","/workspace/file/bulk-name-revise/",{"title":599,"path":600,"stem":601,"tags":6,"slug":602,"sourcePath":600},"ファイル変換","/workspace/file/file-convert-overview","20.workspace/30.file/40.file-convert-overview","/workspace/file/file-convert-overview/",{"title":604,"path":605,"stem":606,"tags":6,"slug":607,"sourcePath":605},"テンプレートファイル","/workspace/file/templates","20.workspace/30.file/41.templates","/workspace/file/templates/",{"title":609,"path":610,"stem":611,"tags":6,"slug":612,"sourcePath":610},"ToDoリスト","/workspace/file/template-todo","20.workspace/30.file/42.template-todo","/workspace/file/template-todo/",{"title":614,"path":615,"stem":616,"tags":6,"slug":617,"sourcePath":615},"決裁書式","/workspace/file/template-approval","20.workspace/30.file/43.template-approval","/workspace/file/template-approval/",{"title":619,"path":620,"stem":621,"tags":6,"slug":622,"sourcePath":620},"カンバンボード","/workspace/file/template-kanban","20.workspace/30.file/44.template-kanban","/workspace/file/template-kanban/",{"title":624,"path":625,"stem":626,"tags":6,"slug":627,"sourcePath":625},"タイムライン","/workspace/file/template-timeline","20.workspace/30.file/45.template-timeline","/workspace/file/template-timeline/",{"title":629,"path":630,"stem":631,"tags":6,"slug":632,"sourcePath":630},"メモ帳","/workspace/file/template-memo","20.workspace/30.file/46.template-memo","/workspace/file/template-memo/",{"title":634,"path":635,"stem":636,"tags":6,"slug":635,"sourcePath":635},"AIチャットファイル","/workspace/file/ai-chat-file","20.workspace/30.file/47.ai-chat-file",{"title":638,"path":639,"stem":640,"tags":6,"slug":641,"sourcePath":639},"ファイル変更記録の確認","/workspace/file/audit-trail","20.workspace/30.file/50.audit-trail","/workspace/file/audit-trail/",{"title":643,"path":644,"stem":645,"tags":6,"slug":646,"sourcePath":644},"ファイルバージョン管理","/workspace/file/version-trail","20.workspace/30.file/51.version-trail","/workspace/file/version-trail/",{"title":648,"path":649,"stem":650,"tags":6,"slug":651,"sourcePath":649},"編集ロック","/workspace/file/file-lock","20.workspace/30.file/52.file-lock","/workspace/file/file-lock/",{"title":653,"path":654,"stem":655,"tags":6,"slug":656,"sourcePath":654},"ファイル暗号化","/workspace/file/file-encrypt","20.workspace/30.file/53.file-encrypt","/workspace/file/file-encrypt/",{"title":658,"path":659,"stem":660,"tags":6,"slug":661,"sourcePath":659},"ディスク上のファイルを登録","/workspace/file/disk-file-registration","20.workspace/30.file/60.disk-file-registration","/workspace/file/disk-file-registration/",{"title":663,"tags":6,"slug":6,"path":664,"stem":665,"children":666,"page":66,"sourcePath":664},"コラボレーション","/workspace/cooperation","20.workspace/35.cooperation",[667,672,677,682,687,692,697,702,707,713],{"title":668,"path":669,"stem":670,"tags":6,"slug":671,"sourcePath":669},"ファイル/フォルダコメント","/workspace/cooperation/file-comments","20.workspace/35.cooperation/00.file-comments","/workspace/cooperation/file-comments/",{"title":673,"path":674,"stem":675,"tags":6,"slug":676,"sourcePath":674},"チャット","/workspace/cooperation/chat","20.workspace/35.cooperation/10.chat","/workspace/cooperation/chat/",{"title":678,"path":679,"stem":680,"tags":6,"slug":681,"sourcePath":679},"コラボレーションチャットと編集ロック","/workspace/cooperation/collaboration-chat","20.workspace/35.cooperation/11.collaboration-chat","/workspace/cooperation/collaboration-chat/",{"title":683,"path":684,"stem":685,"tags":6,"slug":686,"sourcePath":684},"チームメンバーの作業位置を追う","/workspace/cooperation/follow-team-location","20.workspace/35.cooperation/12.follow-team-location","/workspace/cooperation/follow-team-location/",{"title":688,"path":689,"stem":690,"tags":6,"slug":691,"sourcePath":689},"メンション","/workspace/cooperation/mention","20.workspace/35.cooperation/14.mention","/workspace/cooperation/mention/",{"title":693,"path":694,"stem":695,"tags":6,"slug":696,"sourcePath":694},"DM","/workspace/cooperation/dm","20.workspace/35.cooperation/16.dm","/workspace/cooperation/dm/",{"title":698,"path":699,"stem":700,"tags":6,"slug":701,"sourcePath":699},"通知アーカイブ","/workspace/cooperation/notification-inbox","20.workspace/35.cooperation/18.notification-inbox","/workspace/cooperation/notification-inbox/",{"title":703,"path":704,"stem":705,"tags":6,"slug":706,"sourcePath":704},"チーム活動を確認する","/workspace/cooperation/file-activity","20.workspace/35.cooperation/30.file-activity","/workspace/cooperation/file-activity/",{"title":708,"path":709,"stem":710,"tags":711,"slug":712,"sourcePath":709},"外部共有リンクの作成","/workspace/cooperation/share-link-creation","20.workspace/35.cooperation/40.share-link-creation",[469],"/workspace/cooperation/share-link-creation/",{"title":714,"path":715,"stem":716,"tags":6,"slug":717,"sourcePath":715},"外部共有のメール送信","/workspace/cooperation/share-link-email","20.workspace/35.cooperation/42.share-link-email","/workspace/cooperation/share-link-email/",{"title":719,"tags":6,"slug":6,"path":720,"stem":721,"children":722,"page":66,"sourcePath":720},"検索","/workspace/search","20.workspace/40.search",[723,728,734,739,744,749],{"title":724,"path":725,"stem":726,"tags":6,"slug":727,"sourcePath":725},"ファイル検索","/workspace/search/search","20.workspace/40.search/00.search","/workspace/search/search/",{"title":729,"path":730,"stem":731,"tags":732,"slug":733,"sourcePath":730},"文脈検索（AI検索）","/workspace/search/context-search","20.workspace/40.search/10.context-search",[469],"/workspace/search/context-search/",{"title":735,"path":736,"stem":737,"tags":6,"slug":738,"sourcePath":736},"画像検索","/workspace/search/image-search","20.workspace/40.search/20.image-search","/workspace/search/image-search/",{"title":740,"path":741,"stem":742,"tags":6,"slug":743,"sourcePath":741},"チャット検索","/workspace/search/chat-search","20.workspace/40.search/30.chat-search","/workspace/search/chat-search/",{"title":745,"path":746,"stem":747,"tags":6,"slug":748,"sourcePath":746},"コメント検索","/workspace/search/comment-search","20.workspace/40.search/40.comment-search","/workspace/search/comment-search/",{"title":750,"path":751,"stem":752,"tags":6,"slug":753,"sourcePath":751},"類義語検索","/workspace/search/synonym-search","20.workspace/40.search/50.synonym-search","/workspace/search/synonym-search/",{"title":755,"tags":6,"slug":6,"path":756,"stem":757,"children":758,"page":66,"sourcePath":756},"AI","/workspace/ai","20.workspace/50.ai",[759,764,770],{"title":760,"path":761,"stem":762,"tags":6,"slug":763,"sourcePath":761},"AI機能のまとめ","/workspace/ai/overview","20.workspace/50.ai/00.overview","/workspace/ai/overview/",{"title":765,"path":766,"stem":767,"tags":768,"slug":769,"sourcePath":766},"ローカルAIに作業を依頼する","/workspace/ai/ai-work","20.workspace/50.ai/10.ai-work",[469],"/workspace/ai/ai-work/",{"title":771,"path":772,"stem":773,"tags":6,"slug":774,"sourcePath":772},"外部AIの利用","/workspace/ai/external-ai","20.workspace/50.ai/20.external-ai","/workspace/ai/external-ai/",{"title":776,"tags":6,"slug":6,"path":777,"stem":778,"children":779,"page":66,"sourcePath":777},"Webspace","/webspace","40.webspace",[780,785,790,795,800,805,811,816,821,826,831,866],{"title":781,"path":782,"stem":783,"tags":6,"slug":784,"sourcePath":782},"WebSpaceとは","/webspace/overview","40.webspace/00.overview","/webspace/overview/",{"title":786,"path":787,"stem":788,"tags":6,"slug":789,"sourcePath":787},"Webサイトをデプロイする","/webspace/website-release","40.webspace/10.website-release","/webspace/website-release/",{"title":791,"path":792,"stem":793,"tags":6,"slug":794,"sourcePath":792},"スキーマファイル（.sfn）を作成する","/webspace/create-database","40.webspace/20.create-database","/webspace/create-database/",{"title":796,"path":797,"stem":798,"tags":6,"slug":799,"sourcePath":797},"APIをビルドしてデータベースをデプロイする","/webspace/api-overview","40.webspace/24.api-overview","/webspace/api-overview/",{"title":801,"path":802,"stem":803,"tags":6,"slug":804,"sourcePath":802},"フロントエンドのサンプルを確認する","/webspace/frontend-example","40.webspace/26.frontend-example","/webspace/frontend-example/",{"title":806,"path":807,"stem":808,"tags":809,"slug":810,"sourcePath":807},"チーム内向けWebサービスを作る","/webspace/internal-webservice","40.webspace/32.internal-webservice",[469],"/webspace/internal-webservice/",{"title":812,"path":813,"stem":814,"tags":6,"slug":815,"sourcePath":813},"外部公開用Webサービスを作る","/webspace/external-webservice","40.webspace/34.external-webservice","/webspace/external-webservice/",{"title":817,"path":818,"stem":819,"tags":6,"slug":820,"sourcePath":818},"SQLをインポート・エクスポートする","/webspace/sql-converter","40.webspace/42.sql-converter","/webspace/sql-converter/",{"title":822,"path":823,"stem":824,"tags":6,"slug":825,"sourcePath":823},"スキーマをコードに変換する","/webspace/code-converter","40.webspace/44.code-converter","/webspace/code-converter/",{"title":827,"path":828,"stem":829,"tags":6,"slug":830,"sourcePath":828},"パフォーマンスとスケーリング","/webspace/performance","40.webspace/48.performance","/webspace/performance/",{"title":832,"tags":6,"slug":6,"path":833,"stem":834,"children":835,"page":66,"sourcePath":833},"Webspace管理","/webspace/admin","40.webspace/50.admin",[836,841,846,851,856,861],{"title":837,"path":838,"stem":839,"tags":6,"slug":840,"sourcePath":838},"WebSpace管理を始める","/webspace/admin/overview","40.webspace/50.admin/00.overview","/webspace/admin/overview/",{"title":842,"path":843,"stem":844,"tags":6,"slug":845,"sourcePath":843},"運用状況","/webspace/admin/operations","40.webspace/50.admin/10.operations","/webspace/admin/operations/",{"title":847,"path":848,"stem":849,"tags":6,"slug":850,"sourcePath":848},"ワークスペースアクセス","/webspace/admin/workspace-access","40.webspace/50.admin/20.workspace-access","/webspace/admin/workspace-access/",{"title":852,"path":853,"stem":854,"tags":6,"slug":855,"sourcePath":853},"API・サイトセキュリティ","/webspace/admin/api-site-security","40.webspace/50.admin/30.api-site-security","/webspace/admin/api-site-security/",{"title":857,"path":858,"stem":859,"tags":6,"slug":860,"sourcePath":858},"サービスと容量","/webspace/admin/service-capacity","40.webspace/50.admin/40.service-capacity","/webspace/admin/service-capacity/",{"title":862,"path":863,"stem":864,"tags":6,"slug":865,"sourcePath":863},"デプロイ管理とフロントエンドリリース","/webspace/admin/deployments","40.webspace/50.admin/50.deployments","/webspace/admin/deployments/",{"title":867,"tags":868,"slug":6,"path":869,"stem":870,"children":871,"page":66,"sourcePath":869},"Webspaceを試してみる",[469],"/webspace/examples","40.webspace/60.examples",[872,877,882,888,893,898],{"title":873,"path":869,"stem":874,"tags":6,"slug":875,"sourcePath":876},"WebSpace応用編","40.webspace/60.examples/00.overview","/webspace/examples/","/webspace/examples/overview",{"title":878,"path":879,"stem":880,"tags":6,"slug":881,"sourcePath":879},"自分だけの業務システムを作る","/webspace/examples/my-own-system","40.webspace/60.examples/10.my-own-system","/webspace/examples/my-own-system/",{"title":883,"path":884,"stem":885,"tags":886,"slug":887,"sourcePath":884},"リアルタイム五目並べゲームを作る","/webspace/examples/realtime-gomoku","40.webspace/60.examples/20.realtime-gomoku",[469],"/webspace/examples/realtime-gomoku/",{"title":889,"path":890,"stem":891,"tags":6,"slug":892,"sourcePath":890},"フォルダ内のファイルで資料掲示板を作成する","/webspace/examples/folder-board","40.webspace/60.examples/30.folder-board","/webspace/examples/folder-board/",{"title":894,"path":895,"stem":896,"tags":6,"slug":897,"sourcePath":895},"共同モンスターレイドを作成する","/webspace/examples/monster-raid","40.webspace/60.examples/40.monster-raid","/webspace/examples/monster-raid/",{"title":899,"path":900,"stem":901,"tags":6,"slug":902,"sourcePath":900},"AI相談チャットのサンプルをデプロイする","/webspace/examples/ai-support-chat","40.webspace/60.examples/50.ai-support-chat","/webspace/examples/ai-support-chat/",{"title":904,"tags":6,"slug":6,"path":905,"stem":906,"children":907,"page":66,"sourcePath":905},"プラグインを使用する","/plugin","50.plugin",[908,913,933,993,1014,1049],{"title":909,"path":910,"stem":911,"tags":6,"slug":912,"sourcePath":910},"プラグインの概要","/plugin/overview","50.plugin/00.overview","/plugin/overview/",{"title":914,"tags":6,"slug":6,"path":915,"stem":916,"children":917,"page":66,"sourcePath":915},"カレンダー","/plugin/calendar","50.plugin/10.calendar",[918,923,928],{"title":919,"path":920,"stem":921,"tags":6,"slug":922,"sourcePath":920},"カレンダーの紹介","/plugin/calendar/overview","50.plugin/10.calendar/00.overview","/plugin/calendar/overview/",{"title":924,"path":925,"stem":926,"tags":6,"slug":927,"sourcePath":925},"イベントの作成・編集・削除","/plugin/calendar/create-event","50.plugin/10.calendar/10.create-event","/plugin/calendar/create-event/",{"title":929,"path":930,"stem":931,"tags":6,"slug":932,"sourcePath":930},"アクティビティ履歴の確認","/plugin/calendar/file-activity","50.plugin/10.calendar/40.file-activity","/plugin/calendar/file-activity/",{"title":934,"tags":6,"slug":6,"path":935,"stem":936,"children":937,"page":66,"sourcePath":935},"メール","/plugin/email","50.plugin/20.email",[938,943,947,952,957,963,968,973,978,983,988],{"title":939,"path":940,"stem":941,"tags":6,"slug":942,"sourcePath":940},"メールの紹介","/plugin/email/overview","50.plugin/20.email/00.overview","/plugin/email/overview/",{"title":188,"path":944,"stem":945,"tags":6,"slug":946,"sourcePath":944},"/plugin/email/setfn-email-setting","50.plugin/20.email/05.setfn-email-setting","/plugin/email/setfn-email-setting/",{"title":948,"path":949,"stem":950,"tags":6,"slug":951,"sourcePath":949},"外部メールの接続","/plugin/email/external-email","50.plugin/20.email/07.external-email","/plugin/email/external-email/",{"title":953,"path":954,"stem":955,"tags":6,"slug":956,"sourcePath":954},"メールの基本機能","/plugin/email/email-basic","50.plugin/20.email/10.email-basic","/plugin/email/email-basic/",{"title":958,"path":959,"stem":960,"tags":6,"slug":961,"sourcePath":962},"メールAIアシスタントを使用する","/plugin/email/ai-assistant","50.plugin/20.email/15.email-ai-assistant","/plugin/email/ai-assistant/","/plugin/email/email-ai-assistant",{"title":964,"path":965,"stem":966,"tags":6,"slug":967,"sourcePath":965},"メールの作成と送信","/plugin/email/email-compose","50.plugin/20.email/20.email-compose","/plugin/email/email-compose/",{"title":969,"path":970,"stem":971,"tags":6,"slug":972,"sourcePath":970},"ファイルを添付する","/plugin/email/email-attachment","50.plugin/20.email/30.email-attachment","/plugin/email/email-attachment/",{"title":974,"path":975,"stem":976,"tags":6,"slug":977,"sourcePath":975},"メールフォルダ管理","/plugin/email/email-folders","50.plugin/20.email/40.email-folders","/plugin/email/email-folders/",{"title":979,"path":980,"stem":981,"tags":6,"slug":982,"sourcePath":980},"メールを自動分類する","/plugin/email/email-auto-classify","50.plugin/20.email/50.email-auto-classify","/plugin/email/email-auto-classify/",{"title":984,"path":985,"stem":986,"tags":6,"slug":987,"sourcePath":985},"メールファイルの保管と共有","/plugin/email/email-open-in-space","50.plugin/20.email/60.email-open-in-space","/plugin/email/email-open-in-space/",{"title":989,"path":990,"stem":991,"tags":6,"slug":992,"sourcePath":990},"メールセキュリティ","/plugin/email/email-security","50.plugin/20.email/70.email-security","/plugin/email/email-security/",{"title":994,"tags":6,"slug":6,"path":995,"stem":996,"children":997,"page":66,"sourcePath":995},"ワークフロー (業務自動化)","/plugin/workflow","50.plugin/30.workflow",[998,1003,1009],{"title":999,"path":1000,"stem":1001,"tags":6,"slug":1002,"sourcePath":1000},"ワークフローの紹介","/plugin/workflow/overview","50.plugin/30.workflow/00.overview","/plugin/workflow/overview/",{"title":1004,"path":1005,"stem":1006,"tags":1007,"slug":1008,"sourcePath":1005},"新規ワークフローの作成","/plugin/workflow/new-workflow","50.plugin/30.workflow/10.new-workflow",[469],"/plugin/workflow/new-workflow/",{"title":1010,"path":1011,"stem":1012,"tags":6,"slug":1013,"sourcePath":1011},"実行履歴を確認する","/plugin/workflow/execution-history","50.plugin/30.workflow/20.execution-history","/plugin/workflow/execution-history/",{"title":1015,"tags":6,"slug":6,"path":1016,"stem":1017,"children":1018,"page":66,"sourcePath":1016},"ファインチューニング (AI学習)","/plugin/fine-tuning","50.plugin/40.fine-tuning",[1019,1024,1029,1034,1039,1044],{"title":1020,"path":1021,"stem":1022,"tags":6,"slug":1023,"sourcePath":1021},"ファインチューニングの紹介","/plugin/fine-tuning/overview","50.plugin/40.fine-tuning/00.overview","/plugin/fine-tuning/overview/",{"title":1025,"path":1026,"stem":1027,"tags":6,"slug":1028,"sourcePath":1026},"トレーニングデータの前処理","/plugin/fine-tuning/pre-processing","50.plugin/40.fine-tuning/10.pre-processing","/plugin/fine-tuning/pre-processing/",{"title":1030,"path":1031,"stem":1032,"tags":6,"slug":1033,"sourcePath":1031},"トレーニング","/plugin/fine-tuning/training","50.plugin/40.fine-tuning/20.training","/plugin/fine-tuning/training/",{"title":1035,"path":1036,"stem":1037,"tags":6,"slug":1038,"sourcePath":1036},"評価","/plugin/fine-tuning/evaluation","50.plugin/40.fine-tuning/30.evaluation","/plugin/fine-tuning/evaluation/",{"title":1040,"path":1041,"stem":1042,"tags":6,"slug":1043,"sourcePath":1041},"チャットテスト","/plugin/fine-tuning/chat-test","50.plugin/40.fine-tuning/40.chat-test","/plugin/fine-tuning/chat-test/",{"title":1045,"path":1046,"stem":1047,"tags":6,"slug":1048,"sourcePath":1046},"エクスポート","/plugin/fine-tuning/export","50.plugin/40.fine-tuning/50.export","/plugin/fine-tuning/export/",{"title":1050,"tags":6,"slug":6,"path":1051,"stem":1052,"children":1053,"page":66,"sourcePath":1051},"EDC (データ収集)","/plugin/edc","50.plugin/50.edc",[1054,1059,1064,1069],{"title":1055,"path":1056,"stem":1057,"tags":6,"slug":1058,"sourcePath":1056},"EDCの紹介","/plugin/edc/overview","50.plugin/50.edc/00.overview","/plugin/edc/overview/",{"title":1060,"path":1061,"stem":1062,"tags":6,"slug":1063,"sourcePath":1061},"データ入力、Audit Trail","/plugin/edc/data-entry","50.plugin/50.edc/10.data-entry","/plugin/edc/data-entry/",{"title":1065,"path":1066,"stem":1067,"tags":6,"slug":1068,"sourcePath":1066},"ビルダー","/plugin/edc/builder","50.plugin/50.edc/20.builder","/plugin/edc/builder/",{"title":1070,"path":1071,"stem":1072,"tags":6,"slug":1073,"sourcePath":1071},"ユーザー/サイトの設定","/plugin/edc/account","50.plugin/50.edc/30.account","/plugin/edc/account/",{"title":1075,"tags":6,"slug":6,"path":1076,"stem":1077,"children":1078,"page":66,"sourcePath":1076},"コマンドラインツール","/cli","90.cli",[1079],{"title":1080,"path":1081,"stem":1082,"tags":6,"slug":1083,"sourcePath":1081},"コマンドでサーバーを管理する","/cli/commands","90.cli/10.commands","/cli/commands/",{"title":1085,"tags":6,"slug":6,"path":1086,"stem":1087,"children":1088,"page":66,"sourcePath":1086},"セキュリティアップデート","/security-updates","95.security-updates",[1089,1094,1099,1104],{"title":1090,"path":1091,"stem":1092,"tags":6,"slug":1093,"sourcePath":1091},"セキュリティ点検とアップデートの仕組みを知る","/security-updates/overview","95.security-updates/00.overview","/security-updates/overview/",{"title":1095,"path":1096,"stem":1097,"tags":6,"slug":1098,"sourcePath":1096},"セキュリティ点検記録","/security-updates/review-log","95.security-updates/10.review-log","/security-updates/review-log/",{"title":1100,"path":1101,"stem":1102,"tags":6,"slug":1103,"sourcePath":1101},"主要な脆弱性の点検状況","/security-updates/vulnerability-status","95.security-updates/20.vulnerability-status","/security-updates/vulnerability-status/",{"title":1105,"path":1106,"stem":1107,"tags":6,"slug":1108,"sourcePath":1106},"サーバーのセキュリティアップデートを点検する","/security-updates/server-checklist","95.security-updates/30.server-checklist","/security-updates/server-checklist/",{"title":1110,"tags":6,"slug":6,"path":1111,"stem":1112,"children":1113,"page":66,"sourcePath":1111},"FAQ","/faq","99.FAQ",[1114,1120,1126,1132,1138,1144,1150],{"title":1115,"path":1116,"stem":1117,"tags":6,"slug":1118,"sourcePath":1119},"SetFNとクラウドサービスの比較","/FAQ/comparison-cloud","99.FAQ/10.comparison-cloud","/FAQ/comparison-cloud/","/faq/comparison-cloud",{"title":1121,"path":1122,"stem":1123,"tags":6,"slug":1124,"sourcePath":1125},"SetFNとNASの比較","/FAQ/comparison-nas","99.FAQ/20.comparison-nas","/FAQ/comparison-nas/","/faq/comparison-nas",{"title":1127,"path":1128,"stem":1129,"tags":6,"slug":1130,"sourcePath":1131},"セキュリティポリシー","/FAQ/security-policy","99.FAQ/30.security-policy","/FAQ/security-policy/","/faq/security-policy",{"title":1133,"path":1134,"stem":1135,"tags":6,"slug":1136,"sourcePath":1137},"SetFNはなぜ速いのか","/FAQ/why-fast","99.FAQ/40.why-fast","/FAQ/why-fast/","/faq/why-fast",{"title":1139,"path":1140,"stem":1141,"tags":6,"slug":1142,"sourcePath":1143},"ライセンスFAQ","/FAQ/license-faq","99.FAQ/50.license-faq","/FAQ/license-faq/","/faq/license-faq",{"title":1145,"path":1146,"stem":1147,"tags":6,"slug":1148,"sourcePath":1149},"AI機能FAQ","/FAQ/ai-faq","99.FAQ/60.ai-faq","/FAQ/ai-faq/","/faq/ai-faq",{"title":1151,"path":1152,"stem":1153,"tags":6,"slug":1154,"sourcePath":1155},"トラブルシューティングガイド","/FAQ/troubleshooting","99.FAQ/70.troubleshooting","/FAQ/troubleshooting/","/faq/troubleshooting",{"id":1157,"title":796,"body":1158,"cover":6,"description":2237,"extension":2238,"image":6,"meta":2239,"navigation":2240,"path":797,"reviewSummary":6,"reviewedAt":6,"seo":2241,"slug":799,"stem":798,"tags":6,"thumbnail":6,"thumbnailPosition":6,"thumbnailScale":6,"__hash__":2250},"docs_ja/40.webspace/24.api-overview.md",{"type":1159,"value":1160,"toc":2214},"minimal",[1161,1165,1174,1177,1180,1184,1200,1204,1210,1216,1221,1224,1301,1311,1321,1325,1393,1409,1415,1418,1424,1428,1435,1471,1478,1484,1488,1511,1517,1520,1526,1570,1592,1596,1599,1605,1611,1616,1620,1637,1643,1654,1659,1662,1665,1689,1709,1712,1718,1724,1852,1863,1866,1869,1905,1908,1911,1934,1971,1984,1988,1995,2005,2008,2014,2017,2030,2037,2040,2102,2105,2153,2156,2159,2162,2182,2185,2210],[1162,1163,796],"h1",{"id":1164},"apiをビルドしてデータベースをデプロイする",[1166,1167,1168,1169,1173],"p",{},"スキーマファイル（.sfn）を作成したら、次は設計を実際のサービスに変える番です。",[1170,1171,1172],"code",{},"APIビルド","を開くと、テーブルごとに登録・照会・修正・削除のAPIが準備され、それぞれのアドレスを誰が使用できるのかも、1つの画面で確認できます。",[1166,1175,1176],{},"必要に応じて、自分で作成したクエリAPI、静的ファイルAPI、リアルタイムイベントも、同じサービスに接続できます。",[1178,1179],"hr",{},[1181,1182,1183],"h2",{"id":1183},"始める前に",[1185,1186,1187,1191],"ul",{},[1188,1189,1190],"li",{},"必要な権限：データベースの使用権限が付与されたユーザー",[1188,1192,1193,1194,1199],{},"事前準備：先に",[1195,1196,1198],"a",{"href":1197},"./create-database","スキーマファイル（.sfn）","を作成しておく必要があります。",[1181,1201,1203],{"id":1202},"apiビルドを開く","APIビルドを開く",[1166,1205,1206,1207,1209],{},"スキーマ画面上部の",[1170,1208,1172],{},"タブを選択すると、テーブルごとに自動生成されたAPIの一覧を確認できます。",[1166,1211,1212],{},[1213,1214],"img",{"alt":1172,"src":1215},"./_screenshots/schema-api-build_ja.png",[1217,1218,1220],"h3",{"id":1219},"自動生成されるapi","自動生成されるAPI",[1166,1222,1223],{},"テーブルごとに、基本として次の5つのAPIが自動生成されます。必要に応じて、新しいAPIを自分で追加することもできます。",[1225,1226,1227,1243],"table",{},[1228,1229,1230],"thead",{},[1231,1232,1233,1237,1240],"tr",{},[1234,1235,1236],"th",{},"メソッド",[1234,1238,1239],{},"エンドポイント",[1234,1241,1242],{},"説明",[1244,1245,1246,1258,1268,1279,1290],"tbody",{},[1231,1247,1248,1252,1255],{},[1249,1250,1251],"td",{},"GET",[1249,1253,1254],{},".../list",[1249,1256,1257],{},"一覧照会",[1231,1259,1260,1262,1265],{},[1249,1261,1251],{},[1249,1263,1264],{},".../view/:id",[1249,1266,1267],{},"単一照会",[1231,1269,1270,1273,1276],{},[1249,1271,1272],{},"POST",[1249,1274,1275],{},".../create",[1249,1277,1278],{},"登録",[1231,1280,1281,1284,1287],{},[1249,1282,1283],{},"PUT",[1249,1285,1286],{},".../update/:id",[1249,1288,1289],{},"修正",[1231,1291,1292,1295,1298],{},[1249,1293,1294],{},"DELETE",[1249,1296,1297],{},".../delete/:id",[1249,1299,1300],{},"削除",[1166,1302,1303,1306,1307,1310],{},[1170,1304,1305],{},"新しいAPIを追加 (Custom Endpoint)","では、必要なクエリと応答の形式を決めたAPIを追加できます。",[1170,1308,1309],{},"静的ファイルAPIを追加","を使用すると、ワークスペースのJSON、XML、HTML、画像、バイナリファイルを、ファイル形式に合わせて提供できます。",[1312,1313,1314],"note",{},[1166,1315,1316,1317,1320],{},"フォルダを元データとして指定すると、ファイルの一覧をJSONで受け取り、選択したファイルの内容を提供できます。構成方法は、",[1195,1318,889],{"href":1319},"./examples/folder-board","で確認できます。",[1217,1322,1324],{"id":1323},"静的ファイルまたはフォルダをapiで提供する","静的ファイルまたはフォルダをAPIで提供する",[1326,1327,1328,1333,1345,1365,1376,1390],"ol",{},[1188,1329,1330,1332],{},[1170,1331,1309],{},"を選択します。",[1188,1334,1335,1338,1339,1341,1342,1332],{},[1170,1336,1337],{},"保存領域","で、",[1170,1340,390],{},"または",[1170,1343,1344],{},"個人スペース",[1188,1346,1347,1350,1351,1341,1354,1357,1358,1341,1361,1364],{},[1170,1348,1349],{},"公開対象","で",[1170,1352,1353],{},"単一ファイル",[1170,1355,1356],{},"フォルダー一覧・ファイル閲覧","を選択してから、",[1170,1359,1360],{},"ファイルを選択",[1170,1362,1363],{},"フォルダーを選択","で、元になるファイルやフォルダを指定します。",[1188,1366,1367,1368,1371,1372,1375],{},"フォルダを選択した場合は、",[1170,1369,1370],{},"許可する拡張子","と",[1170,1373,1374],{},"サブフォルダーを含む","を設定します。拡張子を空欄にすると、すべての形式が対象になります。",[1188,1377,1378,1381,1382,1385,1386,1389],{},[1170,1379,1380],{},"応答方法","で、内容をブラウザーに表示するか（",[1170,1383,1384],{},"ブラウザーで表示","）、ファイルとして受け取るか（",[1170,1387,1388],{},"ダウンロード","）を選択します。",[1188,1391,1392],{},"エンドポイントの権限を確認してから、スキーマをデプロイします。",[1166,1394,1395,1396,1399,1400,1402,1403,1341,1405,1408],{},"単一ファイルの場合は、設定したエンドポイントがファイルの内容を応答します。フォルダの場合は、ファイル一覧のJSONと、一覧の項目の",[1170,1397,1398],{},"id","で内容を読み取るアドレスがあわせて作成されます。ファイル名を変更したり移動したりすると、パスをもとに作成される",[1170,1401,1398],{},"も変わるため、クライアントは一覧から受け取った最新の",[1170,1404,1398],{},[1170,1406,1407],{},"viewUrl","を使用する必要があります。",[1410,1411,1412],"warning",{},[1166,1413,1414],{},"HTMLやSVGのように実行可能なファイルをブラウザーにそのまま表示する場合は、信頼できるファイルだけを元のファイルとして選択してください。サーバーはセキュリティヘッダーを適用しますが、APIのアクセス権限もあわせて制限する必要があります。",[1166,1416,1417],{},"機能エンドポイントでは、リアルタイムソケット、ファイル・画像のアップロード、AI応答のように、サービス全体で使用する機能の権限を設定します。",[1166,1419,1420],{},[1213,1421],{"alt":1422,"src":1423},"静的フォルダAPIの保存領域とファイル照会の設定","./_screenshots/webspace-static-folder-api_ja.png",[1217,1425,1427],{"id":1426},"リアルタイムイベントとrestのバンドルをインポートする","リアルタイムイベントとRESTのバンドルをインポートする",[1166,1429,1430,1431,1434],{},"リアルタイムソケットの",[1170,1432,1433],{},"イベント定義","では、イベントだけを作成することも、イベントに必要なテーブルとREST設定を含むJSONまたはYAMLのバンドルをインポートすることもできます。",[1326,1436,1437,1443,1453,1459,1465],{},[1188,1438,1439,1442],{},[1170,1440,1441],{},"AIの回答を貼り付け","を選択し、バンドルを貼り付けます。自分で用意したバンドルも、同じ形式で貼り付けることができます。",[1188,1444,1445,1446,1449,1450,1332],{},"既存のイベントを維持する場合は",[1170,1447,1448],{},"名前で統合","、現在のイベント全体を置き換える場合は",[1170,1451,1452],{},"すべて置き換え",[1188,1454,1455,1458],{},[1170,1456,1457],{},"適用プレビュー","で、追加・変更・削除されるイベントと、追加されるテーブル・カラム・RESTの数を確認します。",[1188,1460,1461,1462,1332],{},"既存のRESTと競合する項目や、形式が自動的に整理・除外された項目を確認します。既存のRESTを変更する必要がある場合にのみ、",[1170,1463,1464],{},"重複するREST設定を上書き",[1188,1466,1467,1468,1332],{},"サーバーの検査結果を確認し、エラーを修正してから",[1170,1469,1470],{},"適用",[1166,1472,1473,1474,1477],{},"インポートは、現在編集中のスキーマを変更します。実際のサービスには、",[1170,1475,1476],{},"配布する","を完了してはじめて反映されます。インポート画面で適用した場合でも、デプロイの際にサーバーがイベントとRESTのルールをもう一度検査し、検査に通らなければデプロイされません。",[1166,1479,1480],{},[1213,1481],{"alt":1482,"src":1483},"リアルタイムイベントとRESTのバンドルのインポートプレビュー","./_screenshots/webspace-realtime-import-preview_ja.png",[1181,1485,1487],{"id":1486},"カスタムエンドポイントでcrud以外のapiを作る","カスタムエンドポイントでCRUD以外のAPIを作る",[1166,1489,1490,1491,1494,1495,1494,1498,1494,1501,1494,1504,1507,1508,1510],{},"自動生成される5つのAPI（",[1170,1492,1493],{},"list","/",[1170,1496,1497],{},"view",[1170,1499,1500],{},"create",[1170,1502,1503],{},"update",[1170,1505,1506],{},"delete","）では足りない場合は、",[1170,1509,1305],{},"を押すと、動作をさらに細かく定義できます。",[1166,1512,1513],{},[1213,1514],{"alt":1515,"src":1516},"「新しいAPIを追加」で作成したカスタムエンドポイントの基本設定画面。APIタイプ、操作種別、対象範囲、パスを指定する","./_screenshots/webspace-customapi-basic_ja.png",[1217,1518,1519],{"id":1519},"操作種別",[1166,1521,1522,1523,1525],{},"基本の5つのCRUD操作のほかに、",[1170,1524,1519],{},"のドロップダウンには次のような選択肢もあります。",[1225,1527,1528,1537],{},[1228,1529,1530],{},[1231,1531,1532,1534],{},[1234,1533,1519],{},[1234,1535,1536],{},"意味",[1244,1538,1539,1547,1555,1563],{},[1231,1540,1541,1544],{},[1249,1542,1543],{},"アクション実行",[1249,1545,1546],{},"CRUDにそのまま当てはまらない、命令型で処理するエンドポイントに適しています",[1231,1548,1549,1552],{},[1249,1550,1551],{},"統計取得",[1249,1553,1554],{},"カウント、合計、集計のような統計的な結果を返します",[1231,1556,1557,1560],{},[1249,1558,1559],{},"一括処理",[1249,1561,1562],{},"複数のレコードを一度に処理します",[1231,1564,1565,1567],{},[1249,1566,1045],{},[1249,1568,1569],{},"照会結果をファイルの形式でダウンロードします",[1166,1571,1572,1575,1576,1579,1580,1583,1584,1587,1588,1591],{},[1170,1573,1574],{},"対象範囲","は、",[1170,1577,1578],{},"コレクション","（テーブル全体や複数のレコードが対象。通常は",[1170,1581,1582],{},":id","のないパス）、",[1170,1585,1586],{},"単一項目","（特定の1件のレコード）、",[1170,1589,1590],{},"コマンド","（CRUDに当てはまらないカスタムの命令型エンドポイント）の中から選びます。",[1217,1593,1595],{"id":1594},"権限はrest-apiと同じ3段階","権限はREST APIと同じ3段階",[1166,1597,1598],{},"カスタムエンドポイントには、自動生成されるAPIと同じ権限を設定できます。",[1166,1600,1601],{},[1213,1602],{"alt":1603,"src":1604},"カスタムエンドポイントの権限選択パネル。会員のみ / 会員 + 追加条件（レベル、チーム、管理者、本人）/ 誰でも の3つが説明とともに表示されている","./_screenshots/webspace-customapi-permission_ja.png",[1166,1606,1607,1610],{},[1170,1608,1609],{},"会員 + 追加条件","を選ぶと、レベル・所属チーム・管理者かどうか・本人（owner）の条件を組み合わせて適用できます。たとえば、「レベル2以上のみ」「営業チームの所属者のみ」といった条件を、REST APIの自動生成エンドポイントとまったく同じ方式で、カスタムエンドポイントにも設定できます。",[1312,1612,1613],{},[1166,1614,1615],{},"これらの条件（レベル/チーム/管理者/本人）は、「誰がこのエンドポイントを呼び出せるか」を判断する条件です。「1日3回まで」のような回数制限の条件は、ここにはありません。必要な場合は、下記のSQLエディタで自分で実装する必要があります。",[1217,1617,1619],{"id":1618},"sqlを直接記述する","SQLを直接記述する",[1166,1621,1622,1625,1626,1629,1630,1632,1633,1636],{},[1170,1623,1624],{},"処理の流れ","タブの",[1170,1627,1628],{},"基本クエリ","には、このエンドポイントが実行するSQLを直接記述するエディタがあります。自動生成されるAPIでは、",[1170,1631,1628],{},"を",[1170,1634,1635],{},"手書きの SQL","に切り替えると、同じエディタが開きます。",[1166,1638,1639],{},[1213,1640],{"alt":1641,"src":1642},"「処理の流れ」タブの基本クエリにあるSQLエディタ。SELECT * FROM leave_balances WHERE 1=1; が初期値として入力されている","./_screenshots/webspace-customapi-sql_ja.png",[1166,1644,1645,1646,1649,1650,1653],{},"REST APIの一覧の",[1170,1647,1648],{},"処理","カラムにも、このエンドポイントが直接記述したクエリを使用していることを示す表示（",[1170,1651,1652],{},"SQL","バッジ）が出ます。自動生成されるAPIでは表現できない条件、たとえば「このメンバーが今日登録した行が3件以上なら拒否する」のような集計にもとづく条件は、このSQLエディタでしか作成できません。",[1655,1656,1658],"h4",{"id":1657},"sqlの検査とパラメータの確認","SQLの検査とパラメータの確認",[1166,1660,1661],{},"SQLを入力すると、ブラウザーが構文と現在のスキーマのテーブル・カラムを検査します。エラーや確認が必要な項目に行・列が表示されている場合、その項目を選択するとエディタ内の該当位置に移動します。デプロイ領域からもエラーのあるSQLを開けます。",[1166,1663,1664],{},"この検査では、実際のデータベースでクエリを実行しません。データベース固有の関数、アクセス権限、実データによる結果は、デプロイ後にAPIを呼び出して確認してください。",[1166,1666,1667,1668,1671,1672,1674,1675,1674,1678,1674,1681,1684,1685,1688],{},"パラメータの一覧には、SQLで使用している",[1170,1669,1670],{},":name","形式のパラメーターが表示されます。",[1170,1673,1582],{},"、",[1170,1676,1677],{},":user_id",[1170,1679,1680],{},":nick",[1170,1682,1683],{},":now","はサーバーが設定する予約値です。そのほかの値は、読み取りリクエストではクエリ文字列、書き込みリクエストでは入力処理後の本文から取得します。値がなければ",[1170,1686,1687],{},"NULL","になります。",[1410,1690,1691],{},[1166,1692,1693,1694,1697,1698,1700,1701,1704,1705,1708],{},"直接記述した書き込みSQLには、所有者の条件や",[1170,1695,1696],{},"条件","関数のフィルターが自動で追加されません。本人のデータだけを変更する場合は、所有者カラムと",[1170,1699,1677],{},"を比較する条件を",[1170,1702,1703],{},"WHERE","に記述します。単一項目の取得では主キーカラムを、本人のデータだけを取得する場合は所有者カラムも",[1170,1706,1707],{},"SELECT","の結果に含めてください。",[1217,1710,1711],{"id":1711},"処理の流れでリクエストの処理を変える",[1166,1713,1714,1715,1717],{},"SQLを直接書かなくても、",[1170,1716,1624],{},"タブであらかじめ用意されている関数を順番に追加することで、リクエストを処理する流れを変えられます。関数は、入力処理・DB 処理・出力処理の3つの段階に分かれています。",[1166,1719,1720],{},[1213,1721],{"alt":1722,"src":1723},"処理の流れに追加できる11個の関数の一覧。入力処理（入力チェック、セッション値の設定、既定値、キーの移動）、DB 処理（条件、ページサイズ、並べ替え）、出力処理（フィールドを隠す、キー名の変更、集計の追加、Webhook）に分類されている","./_screenshots/webspace-customapi-pipeline_ja.png",[1225,1725,1726,1738],{},[1228,1727,1728],{},[1231,1729,1730,1733,1736],{},[1234,1731,1732],{},"分類",[1234,1734,1735],{},"関数",[1234,1737,1242],{},[1244,1739,1740,1751,1761,1771,1781,1791,1801,1811,1822,1832,1842],{},[1231,1741,1742,1745,1748],{},[1249,1743,1744],{},"入力処理",[1249,1746,1747],{},"入力チェック",[1249,1749,1750],{},"フィールドの必須・形式を検証し、失敗した場合は400を返す",[1231,1752,1753,1755,1758],{},[1249,1754,1744],{},[1249,1756,1757],{},"セッション値の設定",[1249,1759,1760],{},"ログインセッションの値（user_idなど）をフィールドに自動設定",[1231,1762,1763,1765,1768],{},[1249,1764,1744],{},[1249,1766,1767],{},"既定値",[1249,1769,1770],{},"空のフィールドにデフォルト値を設定",[1231,1772,1773,1775,1778],{},[1249,1774,1744],{},[1249,1776,1777],{},"キーの移動",[1249,1779,1780],{},"リクエスト本文のキー名をテーブルのカラム名に移す",[1231,1782,1783,1786,1788],{},[1249,1784,1785],{},"DB 処理",[1249,1787,1696],{},[1249,1789,1790],{},"WHERE条件を追加",[1231,1792,1793,1795,1798],{},[1249,1794,1785],{},[1249,1796,1797],{},"ページサイズ",[1249,1799,1800],{},"limit/offsetを自動処理",[1231,1802,1803,1805,1808],{},[1249,1804,1785],{},[1249,1806,1807],{},"並べ替え",[1249,1809,1810],{},"ORDER BYの基準を設定",[1231,1812,1813,1816,1819],{},[1249,1814,1815],{},"出力処理",[1249,1817,1818],{},"フィールドを隠す",[1249,1820,1821],{},"応答から特定のカラムを除去",[1231,1823,1824,1826,1829],{},[1249,1825,1815],{},[1249,1827,1828],{},"キー名の変更",[1249,1830,1831],{},"応答JSONのキーを変更",[1231,1833,1834,1836,1839],{},[1249,1835,1815],{},[1249,1837,1838],{},"集計の追加",[1249,1840,1841],{},"COUNT/SUMなどの集計値を応答に追加",[1231,1843,1844,1846,1849],{},[1249,1845,1815],{},[1249,1847,1848],{},"Webhook",[1249,1850,1851],{},"外部URLにイベントを送信",[1410,1853,1854],{},[1166,1855,1856,1858,1859,1862],{},[1170,1857,1696],{},"関数で作成できるのは、カラム・演算子・値による単純な比較（",[1170,1860,1861],{},"WHERE column = value","の形式）です。値には固定値を1つだけ指定できます。「このメンバーが今日作成した行の数」のように集計が必要な条件は、上記のSQLエディタでサブクエリとして記述してください。",[1217,1864,1865],{"id":1865},"権限の設定",[1166,1867,1868],{},"APIごとに、アクセス権限を個別に設定できます。ここでいう会員とは、ワークスペースのメンバーアカウントそのものを指します。別のログイン・認証システムを新たに作る必要はなく、すでにワークスペースにあるメンバー・レベル・チームの仕組みが、そのままAPIの権限に連動しています。",[1225,1870,1871,1880],{},[1228,1872,1873],{},[1231,1874,1875,1878],{},[1234,1876,1877],{},"権限",[1234,1879,1242],{},[1244,1881,1882,1890,1897],{},[1231,1883,1884,1887],{},[1249,1885,1886],{},"会員のみ",[1249,1888,1889],{},"ログインしたメンバーであれば、誰でも呼び出せます",[1231,1891,1892,1894],{},[1249,1893,1609],{},[1249,1895,1896],{},"メンバーであることに加えて、レベル、所属チーム、管理者かどうかなどの追加条件を満たす場合に呼び出せます",[1231,1898,1899,1902],{},[1249,1900,1901],{},"誰でも",[1249,1903,1904],{},"ログインしなくても呼び出せますが、登録・修正・削除のような書き込みのリクエストは許可されません",[1181,1906,1907],{"id":1907},"デプロイする",[1166,1909,1910],{},"次の手順に従って、デプロイの情報を入力します。",[1326,1912,1913,1919,1925],{},[1188,1914,1915,1918],{},[1170,1916,1917],{},"データベース識別子","：デプロイ先のサーバーで使用するDBの論理名を、英字で入力します。",[1188,1920,1921,1924],{},[1170,1922,1923],{},"ストレージエンジンモード","：SQLite3、PostgreSQL、MySQL、MariaDBの中から選択します。外部DBの場合は、host、port、DB名、ユーザー、パスワードを追加で入力します。MySQLとMariaDBは、InnoDBベースの構成を使用します。",[1188,1926,1927,1371,1930,1933],{},[1170,1928,1929],{},"基本設定",[1170,1931,1932],{},"詳細設定","で、次の項目を確認します。",[1225,1935,1936,1945],{},[1228,1937,1938],{},[1231,1939,1940,1943],{},[1234,1941,1942],{},"項目",[1234,1944,1242],{},[1244,1946,1947,1959],{},[1231,1948,1949,1954],{},[1249,1950,1951],{},[1170,1952,1953],{},"クライアント配布パス",[1249,1955,1956,1958],{},[1170,1957,1929],{},"にあります。サンプルのフロントエンド成果物（index.html、test.html、READMEなど）が作成されるパスを選択します",[1231,1960,1961,1966],{},[1249,1962,1963],{},[1170,1964,1965],{},"IP 制限",[1249,1967,1968,1970],{},[1170,1969,1932],{},"にあります。APIへのアクセスを許可するIPを、ホワイトリストで指定します",[1166,1972,1973,1974,1976,1977,1979,1980,1983],{},"APIの一覧の下にあるデプロイ領域で",[1170,1975,1476],{},"を選択すると、設定が展開されます。デプロイ領域は編集画面の最下部に固定されているため、APIの一覧をスクロールしても表示されたままです。最初の選択だけではデプロイされません。設定を確認してから",[1170,1978,1476],{},"をもう一度選択すると、データベースとAPIが準備されます。クライアント配布パスを指定した場合は、APIを試せるサンプル画面もあわせて作成されます。画面を変更する方法は、",[1195,1981,801],{"href":1982},"./frontend-example","に続きます。",[1181,1985,1987],{"id":1986},"apiの呼び出し例","APIの呼び出し例",[1166,1989,1990,1991,1994],{},"デプロイされたAPIは、次のような形式で呼び出します。（テーブル名が",[1170,1992,1993],{},"user_profile","の場合の例）",[1996,1997,2002],"pre",{"className":1998,"code":2000,"language":2001},[1999],"language-text","GET  /api/web/{dbName}/user_profile/list\nGET  /api/web/{dbName}/user_profile/view/{id}\nPOST /api/web/{dbName}/user_profile/create\nPUT  /api/web/{dbName}/user_profile/update/{id}\nDELETE /api/web/{dbName}/user_profile/delete/{id}\n","text",[1170,2003,2000],{"__ignoreMap":2004},"",[1166,2006,2007],{},"登録（POST）リクエストの例：",[1996,2009,2012],{"className":2010,"code":2011,"language":2001},[1999],"POST /api/web/{dbName}/user_profile/create\nContent-Type: application/json\n\n{\n  \"email\": \"user@example.com\",\n  \"is_active\": true\n}\n",[1170,2013,2011],{"__ignoreMap":2004},[1181,2015,2016],{"id":2016},"エラー応答の読み方",[1166,2018,2019,2020,1341,2022,2025,2026,2029],{},"リクエストが失敗した場合は、HTTPステータスと",[1170,2021,1170],{},[1170,2023,2024],{},"errorCode","をあわせて確認してください。エラーコードは言語が変わっても同じであるため、ログインの要求や再試行といった動作はコードで判断し、",[1170,2027,2028],{},"message","は画面への表示に使用します。",[1166,2031,2032,2033,2036],{},"WebSpaceの標準のエラー案内は、韓国語・英語・日本語・中国語（簡体字）・ドイツ語に対応しています。ログインしたメンバーの言語設定を優先して使用し、設定がない場合や対応していない言語の場合は、リクエストの",[1170,2034,2035],{},"Accept-Language","を参照します。どちらも一致しない場合は、英語で案内します。外部APIとの連携では、表示される文言そのものを比較しないでください。",[1166,2038,2039],{},"たとえば、ログインが必要なリクエストは、次の情報を返します。",[1996,2041,2045],{"className":2042,"code":2043,"language":2044,"meta":2004,"style":2004},"language-json shiki shiki-themes github-light github-dark monokai","{\n  \"code\": \"WEBSPACE_LOGIN_REQUIRED\",\n  \"errorCode\": \"WEBSPACE_LOGIN_REQUIRED\",\n  \"message\": \"ログインが必要です。\"\n}\n","json",[1170,2046,2047,2056,2073,2085,2096],{"__ignoreMap":2004},[2048,2049,2052],"span",{"class":2050,"line":2051},"line",1,[2048,2053,2055],{"class":2054},"sMOD_","{\n",[2048,2057,2059,2063,2066,2070],{"class":2050,"line":2058},2,[2048,2060,2062],{"class":2061},"s-m8C","  \"code\"",[2048,2064,2065],{"class":2054},": ",[2048,2067,2069],{"class":2068},"sCZoN","\"WEBSPACE_LOGIN_REQUIRED\"",[2048,2071,2072],{"class":2054},",\n",[2048,2074,2076,2079,2081,2083],{"class":2050,"line":2075},3,[2048,2077,2078],{"class":2061},"  \"errorCode\"",[2048,2080,2065],{"class":2054},[2048,2082,2069],{"class":2068},[2048,2084,2072],{"class":2054},[2048,2086,2088,2091,2093],{"class":2050,"line":2087},4,[2048,2089,2090],{"class":2061},"  \"message\"",[2048,2092,2065],{"class":2054},[2048,2094,2095],{"class":2068},"\"ログインが必要です。\"\n",[2048,2097,2099],{"class":2050,"line":2098},5,[2048,2100,2101],{"class":2054},"}\n",[1166,2103,2104],{},"これは、エラー応答で確認する主なフィールドです。応答全体の形式は、REST API、静的ファイル、管理APIごとに異なる場合があります。",[1185,2106,2107,2130,2150],{},[1188,2108,2109,2110,1371,2113,2116,2117,2120,2121,2124,2125,2124,2127,2129],{},"入力値の検証の応答は、従来の形式である",[1170,2111,2112],{},"ok: false",[1170,2114,2115],{},"errors","の一覧を使用します。HTTP 200であっても",[1170,2118,2119],{},"ok","を確認し、各項目の",[1170,2122,2123],{},"field","・",[1170,2126,1170],{},[1170,2128,2028],{},"で問題を案内してください。",[1188,2131,2132,2133,2136,2137,2140,2141,2144,2145,2124,2147,2149],{},"WebSocketのエラーは、",[1170,2134,2135],{},"type: \"error\"","メッセージの",[1170,2138,2139],{},"data","の中で確認します。従来の分類用の",[1170,2142,2143],{},"key","は維持され、",[1170,2146,1170],{},[1170,2148,2024],{},"でエラーの原因を区別します。",[1188,2151,2152],{},"サーバーの実際のファイルパス、SQL、内部エラーの原文は、ユーザーに返しません。運用担当者がサーバーログを確認する必要があるエラーの場合は、発生時刻、リクエストのパス、HTTPステータス、エラーコードをあわせて伝えてください。",[1181,2154,2155],{"id":2155},"デプロイと上書き",[1166,2157,2158],{},"既存のデータがあるスキーマを上書きする操作は、サーバーのデプロイポリシーに従います。組織のポリシーに応じて、禁止することも、管理者または指定されたデプロイ担当者だけが実行できるように制限することもできます。構造を変更する前に、影響を受けるカラムとAPI、バックアップと復旧の手順を確認してください。",[1181,2160,2161],{"id":2161},"注意事項",[1185,2163,2164,2170,2173,2176,2179],{},[1188,2165,2166,2167,2169],{},"APIは、SetFNのログインセッションにもとづいて認証されます。認証されていないリクエストは拒否されます。（ただし、権限を",[1170,2168,1901],{},"に設定したAPIは例外です。）",[1188,2171,2172],{},"スキーマの構造を変更すると、APIのエンドポイントもあわせて更新されるため、既存の連携コードとの互換性を確認してください。",[1188,2174,2175],{},"SQLite3のデータはそのサーバーのWebSpaceストレージに、外部エンジンのデータは管理者が設定したDBに保存されます。",[1188,2177,2178],{},"一覧のフィルター・並べ替え・ページサイズは、サーバーが許可しているクエリの範囲内で使用します。",[1188,2180,2181],{},"外部サイトから呼び出す場合は、管理者が設定した許可OriginとCSPの設定もあわせて確認してください。",[1181,2183,2184],{"id":2184},"関連ドキュメント",[1185,2186,2187,2191,2196,2200,2205],{},[1188,2188,2189],{},[1195,2190,791],{"href":1197},[1188,2192,2193],{},[1195,2194,883],{"href":2195},"./examples/realtime-gomoku",[1188,2197,2198],{},[1195,2199,801],{"href":1982},[1188,2201,2202],{},[1195,2203,827],{"href":2204},"./performance",[1188,2206,2207],{},[1195,2208,837],{"href":2209},"./admin/overview",[2211,2212,2213],"style",{},"html pre.shiki code .sMOD_, html code.shiki .sMOD_{--shiki-default:#24292E;--shiki-dark:#E1E4E8;--shiki-sepia:#F8F8F2}html pre.shiki code .s-m8C, html code.shiki .s-m8C{--shiki-default:#005CC5;--shiki-default-font-style:inherit;--shiki-dark:#79B8FF;--shiki-dark-font-style:inherit;--shiki-sepia:#66D9EF;--shiki-sepia-font-style:italic}html pre.shiki code .sCZoN, html code.shiki .sCZoN{--shiki-default:#032F62;--shiki-dark:#9ECBFF;--shiki-sepia:#CFCFC2}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html .sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}html.sepia .shiki span {color: var(--shiki-sepia);background: var(--shiki-sepia-bg);font-style: var(--shiki-sepia-font-style);font-weight: var(--shiki-sepia-font-weight);text-decoration: var(--shiki-sepia-text-decoration);}",{"title":2004,"searchDepth":2058,"depth":2075,"links":2215},[2216,2217,2222,2231,2232,2233,2234,2235,2236],{"id":1183,"depth":2058,"text":1183},{"id":1202,"depth":2058,"text":1203,"children":2218},[2219,2220,2221],{"id":1219,"depth":2075,"text":1220},{"id":1323,"depth":2075,"text":1324},{"id":1426,"depth":2075,"text":1427},{"id":1486,"depth":2058,"text":1487,"children":2223},[2224,2225,2226,2229,2230],{"id":1519,"depth":2075,"text":1519},{"id":1594,"depth":2075,"text":1595},{"id":1618,"depth":2075,"text":1619,"children":2227},[2228],{"id":1657,"depth":2087,"text":1658},{"id":1711,"depth":2075,"text":1711},{"id":1865,"depth":2075,"text":1865},{"id":1907,"depth":2058,"text":1907},{"id":1986,"depth":2058,"text":1987},{"id":2016,"depth":2058,"text":2016},{"id":2155,"depth":2058,"text":2155},{"id":2161,"depth":2058,"text":2161},{"id":2184,"depth":2058,"text":2184},"スキーマファイル（.sfn）を実際のデータベースとAPIとしてデプロイし、権限と機能を確認する方法を説明します。","md",{},true,{"title":2242,"description":2243,"ogType":2244,"twitterCard":2245,"keywords":2246},"APIをビルドしてデータベースをデプロイする | Webspace Docs","スキーマファイルをSQLite3、PostgreSQL、MySQL、MariaDBのいずれかと接続し、WebSpace APIとしてデプロイします。","article","summary_large_image",[796,2247,1652,2248,2249,1203,1907],"API","README","DB","xmxp6mL6Iv6q9euWUs-rbfTAdGb2HWa5fc5RrdE8i5Y",[2252,2253],{"title":791,"path":792,"stem":793,"slug":794,"children":-1},{"title":801,"path":802,"stem":803,"slug":804,"children":-1},{"title":796,"filename":2255,"content":2256},"api-overview","# APIをビルドしてデータベースをデプロイする\n\nスキーマファイル（.sfn）を作成したら、次は設計を実際のサービスに変える番です。`APIビルド`を開くと、テーブルごとに登録・照会・修正・削除のAPIが準備され、それぞれのアドレスを誰が使用できるのかも、1つの画面で確認できます。\n\n必要に応じて、自分で作成したクエリAPI、静的ファイルAPI、リアルタイムイベントも、同じサービスに接続できます。\n\n---\n\n## 始める前に\n\n- 必要な権限：データベースの使用権限が付与されたユーザー\n- 事前準備：先に[スキーマファイル（.sfn）](./20.create-database.md)を作成しておく必要があります。\n\n## APIビルドを開く\n\nスキーマ画面上部の`APIビルド`タブを選択すると、テーブルごとに自動生成されたAPIの一覧を確認できます。\n\n![APIビルド](./_screenshots/schema-api-build_ja.png)\n\n### 自動生成されるAPI\n\nテーブルごとに、基本として次の5つのAPIが自動生成されます。必要に応じて、新しいAPIを自分で追加することもできます。\n\n| メソッド | エンドポイント | 説明     |\n| -------- | -------------- | -------- |\n| GET      | .../list       | 一覧照会 |\n| GET      | .../view/:id   | 単一照会 |\n| POST     | .../create     | 登録     |\n| PUT      | .../update/:id | 修正     |\n| DELETE   | .../delete/:id | 削除     |\n\n`新しいAPIを追加 (Custom Endpoint)`では、必要なクエリと応答の形式を決めたAPIを追加できます。`静的ファイルAPIを追加`を使用すると、ワークスペースのJSON、XML、HTML、画像、バイナリファイルを、ファイル形式に合わせて提供できます。\n\n::note\nフォルダを元データとして指定すると、ファイルの一覧をJSONで受け取り、選択したファイルの内容を提供できます。構成方法は、[フォルダ内のファイルで資料掲示板を作成する](./60.examples/30.folder-board.md)で確認できます。\n::\n\n### 静的ファイルまたはフォルダをAPIで提供する\n\n1. `静的ファイルAPIを追加`を選択します。\n2. `保存領域`で、`チームスペース`または`個人スペース`を選択します。\n3. `公開対象`で`単一ファイル`または`フォルダー一覧・ファイル閲覧`を選択してから、`ファイルを選択`または`フォルダーを選択`で、元になるファイルやフォルダを指定します。\n4. フォルダを選択した場合は、`許可する拡張子`と`サブフォルダーを含む`を設定します。拡張子を空欄にすると、すべての形式が対象になります。\n5. `応答方法`で、内容をブラウザーに表示するか（`ブラウザーで表示`）、ファイルとして受け取るか（`ダウンロード`）を選択します。\n6. エンドポイントの権限を確認してから、スキーマをデプロイします。\n\n単一ファイルの場合は、設定したエンドポイントがファイルの内容を応答します。フォルダの場合は、ファイル一覧のJSONと、一覧の項目の`id`で内容を読み取るアドレスがあわせて作成されます。ファイル名を変更したり移動したりすると、パスをもとに作成される`id`も変わるため、クライアントは一覧から受け取った最新の`id`または`viewUrl`を使用する必要があります。\n\n::warning\nHTMLやSVGのように実行可能なファイルをブラウザーにそのまま表示する場合は、信頼できるファイルだけを元のファイルとして選択してください。サーバーはセキュリティヘッダーを適用しますが、APIのアクセス権限もあわせて制限する必要があります。\n::\n\n機能エンドポイントでは、リアルタイムソケット、ファイル・画像のアップロード、AI応答のように、サービス全体で使用する機能の権限を設定します。\n\n![静的フォルダAPIの保存領域とファイル照会の設定](./_screenshots/webspace-static-folder-api_ja.png)\n\n### リアルタイムイベントとRESTのバンドルをインポートする\n\nリアルタイムソケットの`イベント定義`では、イベントだけを作成することも、イベントに必要なテーブルとREST設定を含むJSONまたはYAMLのバンドルをインポートすることもできます。\n\n1. `AIの回答を貼り付け`を選択し、バンドルを貼り付けます。自分で用意したバンドルも、同じ形式で貼り付けることができます。\n2. 既存のイベントを維持する場合は`名前で統合`、現在のイベント全体を置き換える場合は`すべて置き換え`を選択します。\n3. `適用プレビュー`で、追加・変更・削除されるイベントと、追加されるテーブル・カラム・RESTの数を確認します。\n4. 既存のRESTと競合する項目や、形式が自動的に整理・除外された項目を確認します。既存のRESTを変更する必要がある場合にのみ、`重複するREST設定を上書き`を選択します。\n5. サーバーの検査結果を確認し、エラーを修正してから`適用`を選択します。\n\nインポートは、現在編集中のスキーマを変更します。実際のサービスには、`配布する`を完了してはじめて反映されます。インポート画面で適用した場合でも、デプロイの際にサーバーがイベントとRESTのルールをもう一度検査し、検査に通らなければデプロイされません。\n\n![リアルタイムイベントとRESTのバンドルのインポートプレビュー](./_screenshots/webspace-realtime-import-preview_ja.png)\n\n## カスタムエンドポイントでCRUD以外のAPIを作る\n\n自動生成される5つのAPI（`list`/`view`/`create`/`update`/`delete`）では足りない場合は、`新しいAPIを追加 (Custom Endpoint)`を押すと、動作をさらに細かく定義できます。\n\n![「新しいAPIを追加」で作成したカスタムエンドポイントの基本設定画面。APIタイプ、操作種別、対象範囲、パスを指定する](./_screenshots/webspace-customapi-basic_ja.png)\n\n### 操作種別\n\n基本の5つのCRUD操作のほかに、`操作種別`のドロップダウンには次のような選択肢もあります。\n\n| 操作種別 | 意味 |\n|---|---|\n| アクション実行 | CRUDにそのまま当てはまらない、命令型で処理するエンドポイントに適しています |\n| 統計取得 | カウント、合計、集計のような統計的な結果を返します |\n| 一括処理 | 複数のレコードを一度に処理します |\n| エクスポート | 照会結果をファイルの形式でダウンロードします |\n\n`対象範囲`は、`コレクション`（テーブル全体や複数のレコードが対象。通常は`:id`のないパス）、`単一項目`（特定の1件のレコード）、`コマンド`（CRUDに当てはまらないカスタムの命令型エンドポイント）の中から選びます。\n\n### 権限はREST APIと同じ3段階\n\nカスタムエンドポイントには、自動生成されるAPIと同じ権限を設定できます。\n\n![カスタムエンドポイントの権限選択パネル。会員のみ / 会員 + 追加条件（レベル、チーム、管理者、本人）/ 誰でも の3つが説明とともに表示されている](./_screenshots/webspace-customapi-permission_ja.png)\n\n`会員 + 追加条件`を選ぶと、レベル・所属チーム・管理者かどうか・本人（owner）の条件を組み合わせて適用できます。たとえば、「レベル2以上のみ」「営業チームの所属者のみ」といった条件を、REST APIの自動生成エンドポイントとまったく同じ方式で、カスタムエンドポイントにも設定できます。\n\n::note\nこれらの条件（レベル/チーム/管理者/本人）は、「誰がこのエンドポイントを呼び出せるか」を判断する条件です。「1日3回まで」のような回数制限の条件は、ここにはありません。必要な場合は、下記のSQLエディタで自分で実装する必要があります。\n::\n\n### SQLを直接記述する\n\n`処理の流れ`タブの`基本クエリ`には、このエンドポイントが実行するSQLを直接記述するエディタがあります。自動生成されるAPIでは、`基本クエリ`を`手書きの SQL`に切り替えると、同じエディタが開きます。\n\n![「処理の流れ」タブの基本クエリにあるSQLエディタ。SELECT * FROM leave_balances WHERE 1=1; が初期値として入力されている](./_screenshots/webspace-customapi-sql_ja.png)\n\nREST APIの一覧の`処理`カラムにも、このエンドポイントが直接記述したクエリを使用していることを示す表示（`SQL`バッジ）が出ます。自動生成されるAPIでは表現できない条件、たとえば「このメンバーが今日登録した行が3件以上なら拒否する」のような集計にもとづく条件は、このSQLエディタでしか作成できません。\n\n#### SQLの検査とパラメータの確認\n\nSQLを入力すると、ブラウザーが構文と現在のスキーマのテーブル・カラムを検査します。エラーや確認が必要な項目に行・列が表示されている場合、その項目を選択するとエディタ内の該当位置に移動します。デプロイ領域からもエラーのあるSQLを開けます。\n\nこの検査では、実際のデータベースでクエリを実行しません。データベース固有の関数、アクセス権限、実データによる結果は、デプロイ後にAPIを呼び出して確認してください。\n\nパラメータの一覧には、SQLで使用している`:name`形式のパラメーターが表示されます。`:id`、`:user_id`、`:nick`、`:now`はサーバーが設定する予約値です。そのほかの値は、読み取りリクエストではクエリ文字列、書き込みリクエストでは入力処理後の本文から取得します。値がなければ`NULL`になります。\n\n::warning\n直接記述した書き込みSQLには、所有者の条件や`条件`関数のフィルターが自動で追加されません。本人のデータだけを変更する場合は、所有者カラムと`:user_id`を比較する条件を`WHERE`に記述します。単一項目の取得では主キーカラムを、本人のデータだけを取得する場合は所有者カラムも`SELECT`の結果に含めてください。\n::\n\n### 処理の流れでリクエストの処理を変える\n\nSQLを直接書かなくても、`処理の流れ`タブであらかじめ用意されている関数を順番に追加することで、リクエストを処理する流れを変えられます。関数は、入力処理・DB 処理・出力処理の3つの段階に分かれています。\n\n![処理の流れに追加できる11個の関数の一覧。入力処理（入力チェック、セッション値の設定、既定値、キーの移動）、DB 処理（条件、ページサイズ、並べ替え）、出力処理（フィールドを隠す、キー名の変更、集計の追加、Webhook）に分類されている](./_screenshots/webspace-customapi-pipeline_ja.png)\n\n| 分類 | 関数 | 説明 |\n|---|---|---|\n| 入力処理 | 入力チェック | フィールドの必須・形式を検証し、失敗した場合は400を返す |\n| 入力処理 | セッション値の設定 | ログインセッションの値（user_idなど）をフィールドに自動設定 |\n| 入力処理 | 既定値 | 空のフィールドにデフォルト値を設定 |\n| 入力処理 | キーの移動 | リクエスト本文のキー名をテーブルのカラム名に移す |\n| DB 処理 | 条件 | WHERE条件を追加 |\n| DB 処理 | ページサイズ | limit/offsetを自動処理 |\n| DB 処理 | 並べ替え | ORDER BYの基準を設定 |\n| 出力処理 | フィールドを隠す | 応答から特定のカラムを除去 |\n| 出力処理 | キー名の変更 | 応答JSONのキーを変更 |\n| 出力処理 | 集計の追加 | COUNT/SUMなどの集計値を応答に追加 |\n| 出力処理 | Webhook | 外部URLにイベントを送信 |\n\n::warning\n`条件`関数で作成できるのは、カラム・演算子・値による単純な比較（`WHERE column = value`の形式）です。値には固定値を1つだけ指定できます。「このメンバーが今日作成した行の数」のように集計が必要な条件は、上記のSQLエディタでサブクエリとして記述してください。\n::\n\n### 権限の設定\n\nAPIごとに、アクセス権限を個別に設定できます。ここでいう会員とは、ワークスペースのメンバーアカウントそのものを指します。別のログイン・認証システムを新たに作る必要はなく、すでにワークスペースにあるメンバー・レベル・チームの仕組みが、そのままAPIの権限に連動しています。\n\n| 権限                     | 説明                                                                                                     |\n| ------------------------ | -------------------------------------------------------------------------------------------------------- |\n| 会員のみ                 | ログインしたメンバーであれば、誰でも呼び出せます                                                         |\n| 会員 + 追加条件          | メンバーであることに加えて、レベル、所属チーム、管理者かどうかなどの追加条件を満たす場合に呼び出せます   |\n| 誰でも                   | ログインしなくても呼び出せますが、登録・修正・削除のような書き込みのリクエストは許可されません           |\n\n## デプロイする\n\n次の手順に従って、デプロイの情報を入力します。\n\n1. `データベース識別子`：デプロイ先のサーバーで使用するDBの論理名を、英字で入力します。\n2. `ストレージエンジンモード`：SQLite3、PostgreSQL、MySQL、MariaDBの中から選択します。外部DBの場合は、host、port、DB名、ユーザー、パスワードを追加で入力します。MySQLとMariaDBは、InnoDBベースの構成を使用します。\n3. `基本設定`と`詳細設定`で、次の項目を確認します。\n\n| 項目                   | 説明                                                                                                   |\n| ---------------------- | ------------------------------------------------------------------------------------------------------ |\n| `クライアント配布パス` | `基本設定`にあります。サンプルのフロントエンド成果物（index.html、test.html、READMEなど）が作成されるパスを選択します |\n| `IP 制限`              | `詳細設定`にあります。APIへのアクセスを許可するIPを、ホワイトリストで指定します |\n\nAPIの一覧の下にあるデプロイ領域で`配布する`を選択すると、設定が展開されます。デプロイ領域は編集画面の最下部に固定されているため、APIの一覧をスクロールしても表示されたままです。最初の選択だけではデプロイされません。設定を確認してから`配布する`をもう一度選択すると、データベースとAPIが準備されます。クライアント配布パスを指定した場合は、APIを試せるサンプル画面もあわせて作成されます。画面を変更する方法は、[フロントエンドのサンプルを確認する](./26.frontend-example.md)に続きます。\n\n## APIの呼び出し例\n\nデプロイされたAPIは、次のような形式で呼び出します。（テーブル名が`user_profile`の場合の例）\n\n```\nGET  /api/web/{dbName}/user_profile/list\nGET  /api/web/{dbName}/user_profile/view/{id}\nPOST /api/web/{dbName}/user_profile/create\nPUT  /api/web/{dbName}/user_profile/update/{id}\nDELETE /api/web/{dbName}/user_profile/delete/{id}\n```\n\n登録（POST）リクエストの例：\n\n```\nPOST /api/web/{dbName}/user_profile/create\nContent-Type: application/json\n\n{\n  \"email\": \"user@example.com\",\n  \"is_active\": true\n}\n```\n\n## エラー応答の読み方\n\nリクエストが失敗した場合は、HTTPステータスと`code`または`errorCode`をあわせて確認してください。エラーコードは言語が変わっても同じであるため、ログインの要求や再試行といった動作はコードで判断し、`message`は画面への表示に使用します。\n\nWebSpaceの標準のエラー案内は、韓国語・英語・日本語・中国語（簡体字）・ドイツ語に対応しています。ログインしたメンバーの言語設定を優先して使用し、設定がない場合や対応していない言語の場合は、リクエストの`Accept-Language`を参照します。どちらも一致しない場合は、英語で案内します。外部APIとの連携では、表示される文言そのものを比較しないでください。\n\nたとえば、ログインが必要なリクエストは、次の情報を返します。\n\n```json\n{\n  \"code\": \"WEBSPACE_LOGIN_REQUIRED\",\n  \"errorCode\": \"WEBSPACE_LOGIN_REQUIRED\",\n  \"message\": \"ログインが必要です。\"\n}\n```\n\nこれは、エラー応答で確認する主なフィールドです。応答全体の形式は、REST API、静的ファイル、管理APIごとに異なる場合があります。\n\n- 入力値の検証の応答は、従来の形式である`ok: false`と`errors`の一覧を使用します。HTTP 200であっても`ok`を確認し、各項目の`field`・`code`・`message`で問題を案内してください。\n- WebSocketのエラーは、`type: \"error\"`メッセージの`data`の中で確認します。従来の分類用の`key`は維持され、`code`・`errorCode`でエラーの原因を区別します。\n- サーバーの実際のファイルパス、SQL、内部エラーの原文は、ユーザーに返しません。運用担当者がサーバーログを確認する必要があるエラーの場合は、発生時刻、リクエストのパス、HTTPステータス、エラーコードをあわせて伝えてください。\n\n## デプロイと上書き\n\n既存のデータがあるスキーマを上書きする操作は、サーバーのデプロイポリシーに従います。組織のポリシーに応じて、禁止することも、管理者または指定されたデプロイ担当者だけが実行できるように制限することもできます。構造を変更する前に、影響を受けるカラムとAPI、バックアップと復旧の手順を確認してください。\n\n## 注意事項\n\n- APIは、SetFNのログインセッションにもとづいて認証されます。認証されていないリクエストは拒否されます。（ただし、権限を`誰でも`に設定したAPIは例外です。）\n- スキーマの構造を変更すると、APIのエンドポイントもあわせて更新されるため、既存の連携コードとの互換性を確認してください。\n- SQLite3のデータはそのサーバーのWebSpaceストレージに、外部エンジンのデータは管理者が設定したDBに保存されます。\n- 一覧のフィルター・並べ替え・ページサイズは、サーバーが許可しているクエリの範囲内で使用します。\n- 外部サイトから呼び出す場合は、管理者が設定した許可OriginとCSPの設定もあわせて確認してください。\n\n## 関連ドキュメント\n\n- [スキーマファイル（.sfn）を作成する](./20.create-database.md)\n- [リアルタイム五目並べゲームを作る](./60.examples/20.realtime-gomoku.md)\n- [フロントエンドのサンプルを確認する](./26.frontend-example.md)\n- [パフォーマンスとスケーリング](./48.performance.md)\n- [WebSpace管理を始める](./50.admin/00.overview.md)\n",1793056611780]