v3.10.0 — B7 プラグイン検索打ち切り検出 + B47 APPLY 親 WHERE LIKE/KLIKE + B5 通常親 UPDATE/DELETE KLIKE
3課題をまとめて出荷(すべて SemVer=minor・純加法・非破壊)。B7 が B47/B5 の KLIKE 解禁の安全前提(全 surface での10万件打ち切り検出)を用意する構成。全2,696テスト green・本番 kintone 実データで実機確認済。
B7 — プラグインでの検索打ち切り検出(安全性)
プラグイン getRecords のみを raw fetch 化し X-Cybozu-Warning(10万件打ち切り)を検出。GET 直列化は kintone に委譲(短い GET=kintone.api.urlForGet()、URL 4KB 超=POST + X-HTTP-Method-Override: GET・JSON body)。DML の fail-closed がプラグインでも効き、SELECT 打ち切りに警告。
B47 — APPLY 複数親 UPDATE の親 WHERE で LIKE/KLIKE(機能)
安全プレフィルタ→元 WHERE を JS 残余評価→一致した親だけ更新(候補数≠対象数・完全取得・target のみ dmlMaxRows・AST node identity 保持)。OR/NOT 配下など native query に完全適用できない KLIKE は records API 前に拒否。
B5 — 通常の親 UPDATE/DELETE の WHERE で KLIKE(機能)
whereToKintone が KLIKE→native like に変換する exact pushdown 経路に乗せる(残余不要・OR/NOT KLIKE も可)。安全境界は既存 EXACT_PUSHDOWN ガード。LIKE は通常 DML で拒否維持・サブテーブル DML の KLIKE も拒否維持。
実機(本番 kintone・実データ)
- B7: APP730(618,525件)で打ち切り警告・POST override(414 なし)。
- B47: APP4223 で LIKE 候補223→対象10・KLIKE 対象21・実 mutation は対象のみ書込・unapplied 拒否。
- B5: APP730 で
KLIKE 'ケン'(>10万件)→ SearchAbortedError(KLIKE DML の10万件 fail-closed を確定)・KLIKE UPDATE は対象のみ書込。
アセット
- ksql-plugin-v3.10.0.zip — kintone プラグイン
- ksql-mcp.js — MCP サーバー(single-file bundle)
- ksql-mcp.mcpb — MCP Bundle
詳細は CHANGELOG.md を参照。