@rex0220/kintone-sql-tools 2.3.0 → 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -46
- package/dist-cli/ksql.js +433 -102
- package/dist-mcp/ksql-mcp.js +424 -105
- package/dist-mcpb/ksql-mcp.mcpb +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -16,13 +16,13 @@ kintone アプリを SQL 風の構文で操作するツールセットです。
|
|
|
16
16
|
- プラグイン: read-only バッチのみ(最終結果を表示)
|
|
17
17
|
- **`ASSERT`(実行時ゲート。DML 前の件数ガード / CLI ヘルスチェック)**(v1.10.0)
|
|
18
18
|
- サブテーブル仮想テーブル(`APP100$明細`)
|
|
19
|
-
- CLI 拡張 `APP@profile`
|
|
20
|
-
- 同一 SQL 内で同一 APP の profile 混在を許可
|
|
21
|
-
- `INSERT/UPDATE/UPSERT` 対応、`DELETE` は未対応
|
|
22
|
-
- CLI / MCP の論理アプリ参照 `LAPP_<NAME>`
|
|
23
|
-
- profile ごとの `logicalApps` で、同じ SQL を異なる物理アプリ ID へ安全に解決
|
|
24
|
-
- `APP100` は常に物理 ID 100 のまま(暗黙変換なし)
|
|
25
|
-
- `allowPhysicalAppRefs: false` で、その profile の物理 `APPxxx` 直接参照を禁止可能
|
|
19
|
+
- CLI 拡張 `APP@profile`
|
|
20
|
+
- 同一 SQL 内で同一 APP の profile 混在を許可
|
|
21
|
+
- `INSERT/UPDATE/UPSERT` 対応、`DELETE` は未対応
|
|
22
|
+
- CLI / MCP の論理アプリ参照 `LAPP_<NAME>`
|
|
23
|
+
- profile ごとの `logicalApps` で、同じ SQL を異なる物理アプリ ID へ安全に解決
|
|
24
|
+
- `APP100` は常に物理 ID 100 のまま(暗黙変換なし)
|
|
25
|
+
- `allowPhysicalAppRefs: false` で、その profile の物理 `APPxxx` 直接参照を禁止可能
|
|
26
26
|
- `FROM` 省略 SELECT(例: `SELECT 'xxx' AS a`)
|
|
27
27
|
|
|
28
28
|
## インストール
|
|
@@ -50,11 +50,11 @@ npm run build:plugin
|
|
|
50
50
|
|
|
51
51
|
## 使い分け(CLI / Plugin)
|
|
52
52
|
|
|
53
|
-
- CLI を使うケース:
|
|
53
|
+
- CLI を使うケース:
|
|
54
54
|
- DML を含むバッチ実行・SQL ファイル実行(`-f`)
|
|
55
55
|
- CI/CD 連携
|
|
56
|
-
- `APP@profile` を使った環境切替
|
|
57
|
-
- `LAPP_<NAME>` を使った配置非依存 SQL
|
|
56
|
+
- `APP@profile` を使った環境切替
|
|
57
|
+
- `LAPP_<NAME>` を使った配置非依存 SQL
|
|
58
58
|
- `--dry-run` / `EXPLAIN` による安全確認
|
|
59
59
|
|
|
60
60
|
- Plugin を使うケース:
|
|
@@ -62,14 +62,14 @@ npm run build:plugin
|
|
|
62
62
|
- 非エンジニア向けの運用
|
|
63
63
|
- UI で結果確認したい場合
|
|
64
64
|
|
|
65
|
-
- MCP を使うケース:
|
|
65
|
+
- MCP を使うケース:
|
|
66
66
|
- Claude 等の AI クライアントから kintone を照会・更新
|
|
67
|
-
- 一時テーブルで中間結果をサーバー内に保持し、AI のコンテキスト消費を抑えたい場合
|
|
68
|
-
- validation / EXPLAIN で論理名から最終的な物理アプリ ID への解決を確認したい場合
|
|
67
|
+
- 一時テーブルで中間結果をサーバー内に保持し、AI のコンテキスト消費を抑えたい場合
|
|
68
|
+
- validation / EXPLAIN で論理名から最終的な物理アプリ ID への解決を確認したい場合
|
|
69
69
|
|
|
70
70
|
注意:
|
|
71
71
|
|
|
72
|
-
- `APP@profile` と `LAPP_<NAME>[@profile]` は Node.js runtime(CLI / MCP)の拡張です。plugin 側では非対応です。
|
|
72
|
+
- `APP@profile` と `LAPP_<NAME>[@profile]` は Node.js runtime(CLI / MCP)の拡張です。plugin 側では非対応です。
|
|
73
73
|
|
|
74
74
|
## 最短実行例(CLI)
|
|
75
75
|
|
|
@@ -104,39 +104,39 @@ node dist-cli/ksql.js --console --base-url https://example.cybozu.com --token xx
|
|
|
104
104
|
- 既定: `./ksql.config.json`
|
|
105
105
|
- profile 切替: `--profile <name>`
|
|
106
106
|
|
|
107
|
-
例:
|
|
107
|
+
例:
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
|
-
node dist-cli/ksql.js --config ./ksql.config.json --profile dev -e "SELECT * FROM APP100"
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
論理アプリ参照を使う場合、profile ごとに論理名と物理 ID を定義します。
|
|
114
|
-
|
|
115
|
-
```json
|
|
116
|
-
{
|
|
117
|
-
"defaultProfile": "dev",
|
|
118
|
-
"profiles": {
|
|
119
|
-
"dev": {
|
|
120
|
-
"baseUrl": "https://dev.example.cybozu.com",
|
|
121
|
-
"logicalApps": { "ORDERS": 100 },
|
|
122
|
-
"tokenMap": { "APP100": "env:DEV_ORDERS_TOKEN" }
|
|
123
|
-
},
|
|
124
|
-
"prod": {
|
|
125
|
-
"baseUrl": "https://prod.example.cybozu.com",
|
|
126
|
-
"allowPhysicalAppRefs": false,
|
|
127
|
-
"logicalApps": { "ORDERS": 1200 },
|
|
128
|
-
"tokenMap": { "APP1200": "env:PROD_ORDERS_TOKEN" }
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
```bash
|
|
135
|
-
node dist-cli/ksql.js --config ./ksql.config.json --profile dev -e "SELECT * FROM LAPP_ORDERS"
|
|
136
|
-
node dist-cli/ksql.js --config ./ksql.config.json --profile prod -e "SELECT * FROM LAPP_ORDERS"
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
どちらも同じ SQL ですが、前者は `APP100`、後者は `APP1200` に解決されます。`logicalApps` のキーは `LAPP_` を付けない ASCII 論理名です。`APP100`、`100`、`LAPP_ORDERS` は設定キーとして拒否されます。
|
|
110
|
+
node dist-cli/ksql.js --config ./ksql.config.json --profile dev -e "SELECT * FROM APP100"
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
論理アプリ参照を使う場合、profile ごとに論理名と物理 ID を定義します。
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"defaultProfile": "dev",
|
|
118
|
+
"profiles": {
|
|
119
|
+
"dev": {
|
|
120
|
+
"baseUrl": "https://dev.example.cybozu.com",
|
|
121
|
+
"logicalApps": { "ORDERS": 100 },
|
|
122
|
+
"tokenMap": { "APP100": "env:DEV_ORDERS_TOKEN" }
|
|
123
|
+
},
|
|
124
|
+
"prod": {
|
|
125
|
+
"baseUrl": "https://prod.example.cybozu.com",
|
|
126
|
+
"allowPhysicalAppRefs": false,
|
|
127
|
+
"logicalApps": { "ORDERS": 1200 },
|
|
128
|
+
"tokenMap": { "APP1200": "env:PROD_ORDERS_TOKEN" }
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
```bash
|
|
135
|
+
node dist-cli/ksql.js --config ./ksql.config.json --profile dev -e "SELECT * FROM LAPP_ORDERS"
|
|
136
|
+
node dist-cli/ksql.js --config ./ksql.config.json --profile prod -e "SELECT * FROM LAPP_ORDERS"
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
どちらも同じ SQL ですが、前者は `APP100`、後者は `APP1200` に解決されます。`logicalApps` のキーは `LAPP_` を付けない ASCII 論理名です。`APP100`、`100`、`LAPP_ORDERS` は設定キーとして拒否されます。
|
|
140
140
|
|
|
141
141
|
## CLI オプション
|
|
142
142
|
|
|
@@ -154,6 +154,7 @@ Options:
|
|
|
154
154
|
-f, --file <path> Execute SQL file
|
|
155
155
|
--console Start interactive console mode
|
|
156
156
|
--dry-run Parse and show execution plan only
|
|
157
|
+
--var <name=value> Override a DECLARE variable (repeatable; not for secrets)
|
|
157
158
|
--format <type> Output format: table | json | jsonl | csv | markdown | md
|
|
158
159
|
(batch + json: prints one JSON envelope for the whole batch)
|
|
159
160
|
--max-records <n> Max records to fetch (default: 500)
|
|
@@ -236,7 +237,7 @@ Options:
|
|
|
236
237
|
- [CLI / Console 仕様](docs/ksql_cli_console_spec.md)
|
|
237
238
|
- [バッチ実行・一時テーブル仕様](docs/ksql_batch_temp_table_spec.md)
|
|
238
239
|
- [MCP サーバー仕様](docs/ksql_mcp_server_spec.md) / [Claude Desktop への導入(MCPB)](docs/ksql_mcpb_claude_desktop_install.md)
|
|
239
|
-
- [APP@profile 仕様](docs/cli_app_profile_spec.md)
|
|
240
|
+
- [APP@profile 仕様](docs/cli_app_profile_spec.md)
|
|
240
241
|
- [公開前チェックリスト](docs/internal/public_release_checklist.md)
|
|
241
242
|
|
|
242
243
|
## ライセンス
|