メインコンテンツまでスキップ

2026.10.15 リリースノート

2026年10月15日のアップデートで、Kuroco正式版に反映した内容を紹介します。

新機能​

外部連携​

  • OAuth Authorization Server クライアントの編集画面に「信頼済みクライアント」の設定が追加されました。同一組織で管理するクライアントに対する管理者の事前同意として、ログイン済みユーザーには同意画面を表示せず、許可済みのスコープとリソースの範囲内で認可コードを発行します。あわせてprompt=noneに対応し、画面を表示せずに認可が完了するかをクライアントから確認できるようになりました。設定できるのはauthorization_codeを利用するクライアントのみで、パブリッククライアントの場合はすべてのリダイレクトURIがhttpsかつループバックアドレス以外のホストである必要があります。デフォルトは無効のため、既存のクライアントの挙動は変わりません。
  • 用途がAPIのOAuth Authorization Serverで、アプリケーションがapi:readとapi:writeの両方を要求した場合、同意画面に[許可するアクセスレベル](読み書き/読み取り専用)の選択が表示されるようになりました。初期選択は「読み書き」で、「読み取り専用」を選んだ場合はapi:writeを除いたトークンが発行され、更新系のリクエストは拒否されます。管理画面の設定項目に変更はありません。

管理画面​

  • サイドバーレイアウトが追加されました。[環境設定] -> [管理画面] -> [サイドバーレイアウト]から、管理画面のサイドバーメニューの項目の非表示、表示名やアイコンの変更、並び替え、フォルダやリンクの追加ができます。レイアウトごとにアクセス制限(メンバーグループ、メンバー検索条件)を設定でき、条件に一致するレイアウトのうち並び順が最大のものが1件だけ適用されます。項目を非表示にしても、そのページへのアクセス権限は変わりません。
  • ログ保持設定で、サイトごとにログの保持期間を選択できる機能が追加されました。選択できる期間は7日〜7年で、保持期間を超えたログは1日1回実行される削除処理により自動的に削除されます。設定画面は[オペレーション] -> [ログ管理]画面右上の[ログ保持]ボタンから開き、保存はスーパーユーザーのみ実行できます。
  • 管理画面プラグインのスロットパラメータ topics_group_id / inquiry_id で、group_id と同様に複数のID(配列・カンマ区切り)を指定できるようになりました。指定したいずれかのトピックグループ/問い合わせでプラグインが表示されます。
  • コンテンツ編集画面に[AIでカテゴリを選択]・[AIでタグを選択]ボタンが追加されました。入力中の内容をもとにAIがカテゴリ・タグを選んで入力欄にセットします(保存はされません)。AIが追加したタグは紫色で表示されます。
  • サイト一覧のサイト追加で、コピー元のサイトのバックアップを作成元に選択できるようになりました。バックアップ取得時点の状態でサイトを作成でき、作成したサイトを同期元にして全同期を実行することで、既存のサイトをバックアップ取得時点の状態に戻せます。詳細はバックアップからサイトを復元するを参照してください。

Admin MCP​

  • コンテンツ定義の管理系APIおよび Admin MCP で、新規作成時に公開設定(open_type / open_sta_date / open_sta_time / open_end_date / open_end_time)を指定できるようになりました。
  • コンテンツ定義の一覧取得および Admin MCP の応答の各行に open_type / open_sta_date / open_sta_time / open_end_date / open_end_time(日付は YYYY/MM/DD、時刻は HH:MM、未設定は空文字)が追加されました。
  • Admin MCP で、コンテンツの下書き保存と、下書きに対するプレビュートークン(プレビューURL)の発行ができるようになりました。これまで管理画面のコンテンツ編集画面の[プレビューを確認する]ボタンからのみ発行できたプレビューURLを、AIエージェントとの対話の中で発行して共有できます。コンテンツ定義の「プレビューの対象とするページのURL」が未設定の場合はエラーになります。発行されたURLは有効期限内であれば認証なしで下書きを閲覧できるため、共有先にはご注意ください。
  • Admin MCP で、メンバーの拡張項目設定を取得・更新できるようになりました。実行には管理画面と同じくメンバー詳細設定の更新権限が必要です。

API​

  • FileManager::list のエンドポイントおよび Admin MCP の file_manager-list ツールの応答で、各ファイルに size(バイト数)と update_ymdhi(最終更新日時、ISO 8601形式、サイトのタイムゾーン)が追加されました。ローカルのファイルとの差分検出に利用できます。リンク先が存在しないシンボリックリンクや、クラウドストレージが更新日時を返さない場合は null になります。既存の応答項目は変更されません。
  • コンテンツを取得するエンドポイント(Topics::list、Topics::detailsなど)の応答で、項目設定が「関連情報選択」の拡張項目に、参照先の名称を表す label が追加されました。参照先がコンテンツの場合は subject、フォームの場合は inquiry_name、メンバーの場合は name1 + name2 が入ります。メンバー参照で呼び出し元に会員情報の閲覧権限がない場合、参照先のメンバーが削除済みの場合、コンテンツ参照で参照先が自分自身のレコードの場合は label は付きません(参照自体は従来どおり返ります)。詳細はコンテンツ定義で利用できる項目設定一覧を参照してください。
  • Site::add_site のエンドポイントで、リクエストボディに mcp_client_redirect_uris を指定できるようになりました。新規サイトに自動作成される対話型 MCP 接続用の OAuth Authorization Server クライアントに登録するリダイレクトURIを指定できます。

仕様変更​

ファイルアップロード関連​

  • FileManager::upload / FileManager::list / FileManager::delete のエンドポイントで、管理画面のファイルマネージャーの個別設定も適用されるようになりました。アップロード先・一覧取得・削除の対象フォルダに「編集許可グループ設定」がある場合、APIを実行するメンバーがそのグループに属していないとエラー(403)になります。アップロード時は、サイトで許可されている拡張子とフォルダーACLの「許可する拡張子」「拒否する拡張子」による検査に加え、画像の拡張子で画像でない内容をアップロードした場合はエラー(400)になります。スーパーユーザーには編集許可グループ設定の制限は適用されません。これまで通っていたリクエストがエラーになる場合は、対象フォルダの権限設定とアップロードするファイルをご確認ください。
  • Files::upload のエンドポイントで、ファイルのアップロードに失敗した場合の応答が変わりました。ファイルサイズがエンドポイント設定の max_size(または size)を超えた場合はHTTPステータス413(エラーコードは payload_too_large)、許可されていない拡張子のファイルの場合はHTTPステータス422(unprocessable_entity)になります。これまではいずれもHTTPステータス200で errors にエラー内容が入っていたため、200の応答を前提にエラーを判定しているフロントエンドがある場合は、HTTPステータスとエラーコードによる判定への変更が必要です。
  • Files::create_temp_upload_url / Files::create_temp_upload_post のエンドポイントで、申告した file_size がエンドポイント設定の max_size を超えた場合のHTTPステータスが422から413(エラーコードは payload_too_large)に変わりました。file_size の未指定や許可されていない拡張子の場合は、従来どおり422です。

コンテンツの追加/更新関連​

  • コンテンツを追加/更新するエンドポイント(Topics::insert、Topics::update、Topics::bulk_upsertなど)および管理系APIで、項目設定が「日付フォーマット」の拡張項目に書き込める値が統一されました。日付として解釈できる文字列(2026-12-25、2026-12-25T09:15:00+09:00 など)はその日時で保存され、空文字と null は項目をクリアします(null は必須項目の場合は必須エラー)。日付として解釈できない文字列(unknown、2026年12月25日 など)は入力エラーになり、レコードは保存されません。公開REST APIではこれまで日付として解釈できない文字列を渡してもリクエストは成功し、空の値が保存されていたため、動作が変わりました。該当するフロントエンドがある場合は、日付として解釈できる文字列、空文字、または null を渡すように変更が必要です。詳細はAPIによるコンテンツの追加/更新時に日付項目へ渡せる値は何ですかを参照してください。
  • コンテンツを追加/更新するエンドポイント(Topics::insert、Topics::update)および管理系APIの応答で、「書き込みは成功したが一部が反映されなかった」ことを示す通知が messages から新しい warnings キーに移りました。対象は、コンテンツ定義の項目設定「編集制限」により更新されなかった項目の通知、CSV / JSON取込で読み飛ばした行の通知などです。warnings は該当する通知があるときだけ応答に含まれる文字列の配列で、HTTPステータスと errors は変わりません。応答の messages からこれらの通知を読み取っているプログラムがある場合は、warnings を参照するように変更が必要です。詳細はAPIエラーレスポンスを参照してください。

その他​

  • 管理画面のサイドバーの[環境設定]に[管理画面]グループが追加されました。[管理画面]、[サイドバーレイアウト]、[ダッシュボードのウィジェット]、[管理画面プラグイン]、[WYSIWYG専用テンプレート]は、[環境設定]直下から[環境設定] -> [管理画面]配下に移動しました。各画面のURLは変わりません。
  • ファイルマネージャーのフォルダーACLで、グループを1つもチェックせずに保存した「編集許可グループ設定」「閲覧許可グループ設定」は未設定として扱われ、親フォルダーの設定が適用されるようになりました。これまでは、どのグループにも許可しない設定として扱われていました。KurocoFiles(閲覧制限)のフォルダで編集許可グループ設定のみを設定し、閲覧許可グループ設定を空にしていた場合、これまでは編集許可グループのユーザーのみが閲覧できましたが、今後は親フォルダーにも閲覧制限がなければログイン済みのユーザー全員が閲覧できるようになります。閲覧できるユーザーを限定したい場合は、閲覧許可グループ設定に対象のグループを設定してください。なお、編集許可グループ設定に設定したグループのユーザーは、従来どおり閲覧許可グループ設定に含まれていなくても閲覧できます。
  • バックアップ画面で、バックアップのダウンロードURLの取得・有効期限の変更・削除がスーパーユーザーのみ実行できるようになりました。バックアップの実行と自動バックアップの設定は従来どおり環境設定の更新権限で実行できます。あわせて、一覧の有効期限は未設定の場合「有効期限なし」と表示され、変更する際は行ごとの[変更する]にチェックを入れて日付を入力する方式になりました。
  • Site::add_site のエンドポイントで、リクエストボディの mcp_client_redirect_uris を省略した場合、新規サイトの対話型 MCP 接続用 OAuth Authorization Server クライアントにリダイレクトURIを登録しない動作に変わりました。これまでは Claude.ai / ChatGPT / Cursor 向けの5つのリダイレクトURIが無条件で自動登録されていましたが、この自動登録は廃止されました。
  • AIエージェントに MCP サーバー (Kuroco API) や Admin MCP サーバーを設定したときに Kuroco が自動で発行する資格情報からは、AIエージェントのセッション作成(AiAgent::create_session)とメッセージ送信(AiAgent::send_message)ができなくなりました。エージェントが別のエージェントを起動し続けることを防ぐためです。呼び出すと403エラーになり、クライアント API MCP サーバーのツール一覧にもこの2つのツールは表示されません。セッション一覧・メッセージ履歴の取得、AIエージェント用の資格情報以外(ログインしたユーザーや、利用者が自身で接続する Claude Code などの MCP クライアント)からの利用、バッチやトリガーからのエージェント起動は影響を受けません。
  • Admin MCP は、利用者からのフィードバックをもとに短い周期で改善を進めており、当分の間はツールの名称・引数・レスポンスなどの仕様が頻繁に変更される予定です。変更にあわせて Kuroco Skills も更新されます。Admin MCP は Kuroco Skills を導入した AI エージェントから利用することを前提としているため、ツールの仕様を解析して独自のプログラムから直接呼び出す使い方は、仕様変更のたびに動作しなくなる可能性があります。そのようなプログラマブルなご利用はお控えください。
  • カスタム処理やバッチ処理などの Smarty テンプレートで、修飾子 array_filter / filter_var に指定できるコールバックが許可された関数のみに制限されました。array_filter は許可外の関数名を指定すると警告ログを記録したうえで指定を無視し、falsy 値の除去として動作します。filter_var は FILTER_CALLBACK に許可外の関数を指定すると警告ログを記録したうえで false を返します。FILTER_VALIDATE_* / FILTER_SANITIZE_* などの組み込みフィルタは従来どおり使えます。これまで任意の PHP 関数名をコールバックとして渡していたテンプレートがある場合は、許可された関数への置き換えが必要です。指定できる関数はarray_filter、filter_varを参照してください。
  • 認証情報を作るSmartyプラグイン(login / api_mng / api_internal / assign_api_credential / api_token)と、シークレット・サイト設定を読むSmartyプラグイン(secret / assign_rcms_conf / gcloud_functions_token)は、カスタム処理・バッチ処理にのみ保存でき、保存・テスト実行できるのはスーパーユーザーのみになりました。メールテンプレート、コンテンツ定義のトリガー設定・拡張項目テンプレート・CSS/JS、フォームの管理者宛メール件名・お礼メール(件名・本文)などに書いていた場合は、次に保存するときに拒否されるため、処理をカスタム処理に切り出して {function} / {include} で呼び出す形への移行が必要です。編集ユーザーは、カスタム処理・バッチ処理の編集権限を持っていてもこれらのプラグインを含む内容を保存できません。Admin MCP 経由の保存には mcp:admin スコープが必要です。既に保存されている処理の実行時の動作は変わりません。詳細はお知らせ(2026-10-15)およびSmartyプラグインを参照してください。

バグ修正​

  • SMTP連携を設定したサイトで、メール送信時にSMTPサーバーへの接続に失敗し、メールが送信されない不具合を修正しました。SMTP連携の画面で管理者メールを変更して連携した後にメール送信がエラーになる不具合も、あわせて修正しました。
  • APIのドメインと管理画面のドメインが異なるサイトで、一括ダウンロード(bulk_download)のエンドポイントが返すダウンロードURLにアクセスすると404になる不具合を修正しました。
  • Topics::waiting_for_approval_list / Topics::draft_list のエンドポイントで、指定した topics_group_id に編集権限のないコンテンツ定義が含まれていると403エラーになる不具合を修正しました。編集権限のあるコンテンツ定義の承認待ち・途中保存データのみが返るようになりました。
  • コンテンツの一覧を取得するエンドポイントの full_text_search で、& < > " ' などHTMLの特殊文字を含む文字列で検索すると、該当するコンテンツがヒットしない不具合を修正しました。
  • filter で field = null OR field <= "日時" のように、公開開始日時・公開終了日時(open_sta_ymdhi / open_end_ymdhi)を「未設定または比較条件」で絞り込むと、すべてのコンテンツが返る不具合を修正しました。
  • API の後処理の ImageSize / FileSize で、ファイル名に日本語などの非ASCII文字を含むファイルを対象にすると、空のオブジェクトが返る不具合を修正しました。
  • コンテンツを削除した後も、ファイル項目に登録されていたファイルがCDNのキャッシュから配信され続ける不具合を修正しました。
  • WYSIWYGエディタで、保存済みのコンテンツに埋め込んだYouTube動画を別のURLに差し替えても、元のURLのまま保存される不具合を修正しました。
  • 「初回ログイン時にパスワード変更をさせる」が有効なサイトで、パスワード変更が必要なメンバーが OAuth SP / SAML SP のSSOで管理画面にログインすると、パスワード再設定画面に転送されて管理画面を操作できない不具合を修正しました。
  • サイト名に日本語などの非ASCII文字を含むサイトで、二要素認証の登録画面に表示されるQRコードが、Androidの認証アプリで読み取れない不具合を修正しました。

その他、細かな改修や内部処理の修正などは、掲載しない場合もございますのでご了承ください。 また、バグの修正は正式版反映日を待たずに、先行して反映されている場合がございます。


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。