@dezhouzhang/archery-query-mcp 0.1.0 → 0.2.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 +351 -19
- package/dist/archeryClient.d.ts.map +1 -1
- package/dist/archeryClient.js +20 -4
- package/dist/archeryClient.js.map +1 -1
- package/dist/archeryHttpSupport.js +14 -1
- package/dist/archeryHttpSupport.js.map +1 -1
- package/dist/archeryShared.d.ts +1 -0
- package/dist/archeryShared.d.ts.map +1 -1
- package/dist/archeryShared.js.map +1 -1
- package/dist/cli.d.ts +8 -0
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +74 -26
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +3 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -0
- package/dist/config.js.map +1 -1
- package/dist/httpServer.d.ts +10 -2
- package/dist/httpServer.d.ts.map +1 -1
- package/dist/httpServer.js +17 -3
- package/dist/httpServer.js.map +1 -1
- package/dist/metadataPolicy.d.ts +3 -0
- package/dist/metadataPolicy.d.ts.map +1 -0
- package/dist/metadataPolicy.js +18 -0
- package/dist/metadataPolicy.js.map +1 -0
- package/dist/responses.d.ts +2 -0
- package/dist/responses.d.ts.map +1 -1
- package/dist/services.d.ts.map +1 -1
- package/dist/services.js +5 -17
- package/dist/services.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,48 +1,380 @@
|
|
|
1
|
-
# archery-query-mcp
|
|
1
|
+
# @dezhouzhang/archery-query-mcp
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
用于通过 Archery 网关安全查询数据库的 MCP Server。支持 stdio 和 HTTP 两种运行模式,适合接入 OpenCode、Codex 等支持 MCP 的客户端。
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
数据访问路径始终是:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
MCP Client -> archery-query-mcp -> Archery Web Gateway -> Database
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
本项目不直连数据库。
|
|
12
|
+
|
|
13
|
+
## 功能特性
|
|
14
|
+
|
|
15
|
+
- 只允许只读 SQL:`SELECT`、`SHOW`、`EXPLAIN`。
|
|
16
|
+
- 阻止写入、DDL、多语句、会话切换和文件导出类操作。
|
|
17
|
+
- 对缺少 `LIMIT` 的 `SELECT` 自动追加限制。
|
|
18
|
+
- 查询采用 prepare / execute 两步确认流程。
|
|
19
|
+
- 支持表结构读取和查询历史检索。
|
|
20
|
+
- 支持 `hangzhou`、`beijing`、`huawei` 三个 Archery 云别名。
|
|
21
|
+
- 支持 stdio 本地子进程模式和 HTTP `/mcp` 模式。
|
|
22
|
+
|
|
23
|
+
## 环境要求
|
|
24
|
+
|
|
25
|
+
- Node.js `>= 20`
|
|
26
|
+
- npm
|
|
27
|
+
- 当前网络能访问目标 Archery 网关
|
|
28
|
+
|
|
29
|
+
## 安装
|
|
30
|
+
|
|
31
|
+
推荐全局安装:
|
|
6
32
|
|
|
7
33
|
```bash
|
|
8
34
|
npm install -g @dezhouzhang/archery-query-mcp
|
|
9
35
|
```
|
|
10
36
|
|
|
11
|
-
|
|
37
|
+
验证命令是否可用:
|
|
12
38
|
|
|
13
|
-
|
|
39
|
+
```bash
|
|
40
|
+
archery-query-mcp --help
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
也可以不安装,直接用 `npx` 临时运行:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npx -y @dezhouzhang/archery-query-mcp --help
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
查看版本:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
archery-query-mcp -v
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
升级到最新版本:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
archery-query-mcp upgrade
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 凭证配置
|
|
62
|
+
|
|
63
|
+
Archery 登录账号密码只从运行时环境变量读取:
|
|
14
64
|
|
|
15
65
|
```bash
|
|
16
66
|
MCP_ARCHERY_LOGIN_USERNAME=your-user
|
|
17
67
|
MCP_ARCHERY_LOGIN_PASSWORD=your-password
|
|
18
68
|
```
|
|
19
69
|
|
|
20
|
-
|
|
70
|
+
不要把密码、Cookie、CSRF、session、SQL API token、数据库凭证写入仓库或共享配置文件。
|
|
71
|
+
|
|
72
|
+
### macOS / Linux
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
export MCP_ARCHERY_LOGIN_USERNAME="your-user"
|
|
76
|
+
export MCP_ARCHERY_LOGIN_PASSWORD="your-password"
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Windows PowerShell
|
|
80
|
+
|
|
81
|
+
当前终端临时生效:
|
|
82
|
+
|
|
83
|
+
```powershell
|
|
84
|
+
$env:MCP_ARCHERY_LOGIN_USERNAME="your-user"
|
|
85
|
+
$env:MCP_ARCHERY_LOGIN_PASSWORD="your-password"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
写入当前 Windows 用户环境变量:
|
|
89
|
+
|
|
90
|
+
```powershell
|
|
91
|
+
setx MCP_ARCHERY_LOGIN_USERNAME "your-user"
|
|
92
|
+
setx MCP_ARCHERY_LOGIN_PASSWORD "your-password"
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
使用 `setx` 后,需要重新打开终端或重启客户端进程。
|
|
96
|
+
|
|
97
|
+
## 运行方式
|
|
98
|
+
|
|
99
|
+
### stdio 模式
|
|
100
|
+
|
|
101
|
+
stdio 模式适合 OpenCode、Codex 等客户端自动拉起 MCP 子进程:
|
|
21
102
|
|
|
22
103
|
```bash
|
|
23
104
|
archery-query-mcp --transport stdio
|
|
24
105
|
```
|
|
25
106
|
|
|
26
|
-
|
|
107
|
+
### HTTP 模式
|
|
108
|
+
|
|
109
|
+
HTTP 模式适合多个客户端共享同一个 MCP 服务:
|
|
27
110
|
|
|
28
111
|
```bash
|
|
29
112
|
archery-query-mcp --transport http --port 8080
|
|
30
113
|
```
|
|
31
114
|
|
|
32
|
-
HTTP
|
|
115
|
+
HTTP 默认绑定 `127.0.0.1`,不会监听所有网卡。如果确实要开放给内网网关或容器网络,可以显式指定:
|
|
116
|
+
|
|
117
|
+
```bash
|
|
118
|
+
archery-query-mcp --transport http --host 0.0.0.0 --port 8080
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
HTTP endpoints:
|
|
122
|
+
|
|
123
|
+
```text
|
|
124
|
+
POST /mcp
|
|
125
|
+
GET /health
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
共享 HTTP 部署建议配置 API Key:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
export ARCHERY_MCP_HTTP_API_KEY="replace-with-a-long-random-token"
|
|
132
|
+
archery-query-mcp --transport http --port 8080
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
客户端请求 `/mcp` 时需带:
|
|
136
|
+
|
|
137
|
+
```text
|
|
138
|
+
Authorization: Bearer replace-with-a-long-random-token
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
`/health` 用于健康检查,不要求 Bearer token。不要把 HTTP API Key 写进仓库;如果未配置 `ARCHERY_MCP_HTTP_API_KEY`,请只在本机、可信内网或受可信网关保护的环境中使用,不要直接暴露到公网。
|
|
142
|
+
|
|
143
|
+
## OpenCode stdio 配置
|
|
144
|
+
|
|
145
|
+
先全局安装:
|
|
146
|
+
|
|
147
|
+
```bash
|
|
148
|
+
npm install -g @dezhouzhang/archery-query-mcp
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
在启动 OpenCode 前,确保 `MCP_ARCHERY_LOGIN_USERNAME` 和 `MCP_ARCHERY_LOGIN_PASSWORD` 已经在 OpenCode 进程环境中可见。
|
|
152
|
+
|
|
153
|
+
在 `~/.config/opencode/opencode.json` 中添加:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"mcp": {
|
|
158
|
+
"archery_query": {
|
|
159
|
+
"type": "local",
|
|
160
|
+
"command": ["archery-query-mcp", "--transport", "stdio"],
|
|
161
|
+
"enabled": true,
|
|
162
|
+
"timeout": 30000
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
stdio 模式下,每个 OpenCode 进程通常会启动一个独立的 MCP 子进程,不会跨 OpenCode 实例复用。若希望多个 OpenCode 共享同一个 MCP,请使用 HTTP 模式并配置 remote MCP。
|
|
169
|
+
|
|
170
|
+
## Codex stdio 配置
|
|
171
|
+
|
|
172
|
+
先全局安装:
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
npm install -g @dezhouzhang/archery-query-mcp
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
在启动 Codex 前,确保环境变量已设置:
|
|
33
179
|
|
|
34
|
-
|
|
180
|
+
```bash
|
|
181
|
+
export MCP_ARCHERY_LOGIN_USERNAME="your-user"
|
|
182
|
+
export MCP_ARCHERY_LOGIN_PASSWORD="your-password"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
在 `~/.codex/config.toml` 中添加:
|
|
186
|
+
|
|
187
|
+
```toml
|
|
188
|
+
[mcp_servers.archery_query]
|
|
189
|
+
command = "archery-query-mcp"
|
|
190
|
+
args = ["--transport", "stdio"]
|
|
191
|
+
enabled = true
|
|
192
|
+
startup_timeout_sec = 30
|
|
193
|
+
tool_timeout_sec = 120
|
|
194
|
+
env_vars = ["MCP_ARCHERY_LOGIN_USERNAME", "MCP_ARCHERY_LOGIN_PASSWORD"]
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
如果不想全局安装,也可以使用 `npx`:
|
|
198
|
+
|
|
199
|
+
```toml
|
|
200
|
+
[mcp_servers.archery_query]
|
|
201
|
+
command = "npx"
|
|
202
|
+
args = ["-y", "@dezhouzhang/archery-query-mcp", "--transport", "stdio"]
|
|
203
|
+
enabled = true
|
|
204
|
+
startup_timeout_sec = 30
|
|
205
|
+
tool_timeout_sec = 120
|
|
206
|
+
env_vars = ["MCP_ARCHERY_LOGIN_USERNAME", "MCP_ARCHERY_LOGIN_PASSWORD"]
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
修改 `config.toml` 后需要重启 Codex。
|
|
210
|
+
|
|
211
|
+
## Archery 认证模式
|
|
212
|
+
|
|
213
|
+
默认认证模式是 `simulated-login`:
|
|
214
|
+
|
|
215
|
+
```bash
|
|
216
|
+
archery-query-mcp --archery-auth-mode simulated-login
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
该模式会使用运行时环境变量 `MCP_ARCHERY_LOGIN_USERNAME` / `MCP_ARCHERY_LOGIN_PASSWORD` 登录 Archery。`huawei` 目前使用 HTTP base URL,但仍可走 simulated-login;只是请确保它运行在可信内网或可信网关后面,不要直接暴露给公网。
|
|
220
|
+
|
|
221
|
+
## 支持的云
|
|
222
|
+
|
|
223
|
+
| cloudName | 别名 | 说明 |
|
|
224
|
+
| --- | --- | --- |
|
|
225
|
+
| `hangzhou` | `hz`、`杭州云` | 杭州 Archery |
|
|
226
|
+
| `beijing` | `bj`、`北京云` | 北京 Archery |
|
|
227
|
+
| `huawei` | `hw`、`华为云` | 华为 Archery,默认登录模式受 HTTP 限制 |
|
|
228
|
+
|
|
229
|
+
查询 scope 应显式传入:
|
|
230
|
+
|
|
231
|
+
- `cloudName`
|
|
232
|
+
- `instanceName`
|
|
233
|
+
- `dbName`
|
|
234
|
+
|
|
235
|
+
或者在同一服务端 session 中复用已绑定的 scope。
|
|
236
|
+
|
|
237
|
+
## 查询策略配置
|
|
238
|
+
|
|
239
|
+
可以通过环境变量调整查询策略:
|
|
240
|
+
|
|
241
|
+
| 环境变量 | 默认值 | 说明 |
|
|
242
|
+
| --- | --- | --- |
|
|
243
|
+
| `ARCHERY_QUERY_DEFAULT_LIMIT` | `100` | 未传 `limitNum` 或传入小于等于 0 时使用的默认 LIMIT |
|
|
244
|
+
| `ARCHERY_QUERY_MAX_LIMIT` | `500` | 最大允许 LIMIT |
|
|
245
|
+
| `ARCHERY_QUERY_REQUIRE_CONFIRMATION` | `true` | 是否要求 execute 阶段提供确认 token |
|
|
246
|
+
| `ARCHERY_QUERY_ALLOWED_INSTANCES` | 空 | 逗号分隔的实例白名单,空表示不限制 |
|
|
247
|
+
| `ARCHERY_QUERY_ALLOWED_DATABASES` | 空 | 逗号分隔的数据库白名单,空表示不限制 |
|
|
248
|
+
| `ARCHERY_QUERY_BLOCKED_TABLES` | 空 | 逗号分隔的禁止访问表名片段 |
|
|
249
|
+
| `ARCHERY_MCP_HTTP_API_KEY` | 空 | HTTP `/mcp` Bearer token,空表示不启用内置 HTTP 鉴权 |
|
|
250
|
+
|
|
251
|
+
示例:
|
|
252
|
+
|
|
253
|
+
```bash
|
|
254
|
+
export ARCHERY_QUERY_DEFAULT_LIMIT=50
|
|
255
|
+
export ARCHERY_QUERY_MAX_LIMIT=200
|
|
256
|
+
export ARCHERY_QUERY_REQUIRE_CONFIRMATION=true
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## MCP 工具
|
|
260
|
+
|
|
261
|
+
### `archery_prepare_query`
|
|
262
|
+
|
|
263
|
+
校验只读 SQL,补齐 LIMIT,计算 SQL hash,并返回 `prepareId` 和确认 token 提示。
|
|
264
|
+
|
|
265
|
+
常见参数:
|
|
266
|
+
|
|
267
|
+
- `bugContext`
|
|
268
|
+
- `cloudName`
|
|
269
|
+
- `instanceName`
|
|
270
|
+
- `dbName`
|
|
271
|
+
- `sql`
|
|
272
|
+
- `limitNum`
|
|
273
|
+
|
|
274
|
+
### `archery_execute_query`
|
|
275
|
+
|
|
276
|
+
执行已 prepare 的查询。中风险查询默认需要传入 `confirmationToken`。
|
|
277
|
+
|
|
278
|
+
常见参数:
|
|
279
|
+
|
|
280
|
+
- `prepareId`
|
|
281
|
+
- `confirmationToken`
|
|
282
|
+
- `maxRows`
|
|
283
|
+
|
|
284
|
+
### `archery_describe_table`
|
|
35
285
|
|
|
36
|
-
|
|
37
|
-
`MCP_ARCHERY_LOGIN_USERNAME` / `MCP_ARCHERY_LOGIN_PASSWORD` at runtime. This mode
|
|
38
|
-
requires an HTTPS Archery base URL. The `huawei` cloud currently uses HTTP, so run it
|
|
39
|
-
only with a trusted gateway/session deployment and `--archery-auth-mode personal-session`.
|
|
286
|
+
通过 Archery 读取表结构元数据。
|
|
40
287
|
|
|
41
|
-
|
|
288
|
+
常见参数:
|
|
42
289
|
|
|
43
|
-
- `
|
|
44
|
-
- `
|
|
45
|
-
- `
|
|
46
|
-
- `
|
|
290
|
+
- `cloudName`
|
|
291
|
+
- `instanceName`
|
|
292
|
+
- `dbName`
|
|
293
|
+
- `schemaName`
|
|
294
|
+
- `tableName`
|
|
295
|
+
|
|
296
|
+
### `archery_query_history`
|
|
297
|
+
|
|
298
|
+
搜索 Archery 查询历史摘要,不返回历史结果数据。
|
|
299
|
+
|
|
300
|
+
常见参数:
|
|
301
|
+
|
|
302
|
+
- `search`
|
|
303
|
+
- `cloudName`
|
|
304
|
+
- `instanceName`
|
|
305
|
+
- `dbName`
|
|
306
|
+
- `limit`
|
|
307
|
+
|
|
308
|
+
## 推荐查询流程
|
|
309
|
+
|
|
310
|
+
1. 调用 `archery_prepare_query`。
|
|
311
|
+
2. 检查返回的 `normalizedSql`、`riskLevel`、`policyFindings`。
|
|
312
|
+
3. 如需确认,复制返回提示中的 `CONFIRM:<prepareId>:<sqlHash>`。
|
|
313
|
+
4. 调用 `archery_execute_query` 并传入确认 token。
|
|
314
|
+
5. 查看 `columns`、`rows`、`rowCount`、`effectiveMaxRows`、`truncated`、`durationMs`、`archeryMessage`。
|
|
315
|
+
|
|
316
|
+
`truncated` 表示返回行数达到本次执行上限,语义是“可能还有更多行”。普通字段内容不会默认截断。
|
|
317
|
+
|
|
318
|
+
## CLI 参数
|
|
319
|
+
|
|
320
|
+
```text
|
|
321
|
+
--transport <transport> stdio 或 http,默认 stdio
|
|
322
|
+
--host <host> HTTP 监听地址,默认 127.0.0.1
|
|
323
|
+
--port <port> HTTP 端口,默认 8080
|
|
324
|
+
--archery-auth-mode <mode> simulated-login 或 personal-session
|
|
325
|
+
--archery-client-mode <mode> http-query 或 stub
|
|
326
|
+
--query-path <path> Archery 查询接口路径,默认 /query/
|
|
327
|
+
--user <subject> MCP 用户标识
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
## 常见问题
|
|
331
|
+
|
|
332
|
+
### 找不到 `archery-query-mcp` 命令
|
|
333
|
+
|
|
334
|
+
确认已全局安装,并且 npm 全局 bin 目录在 `PATH` 中:
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
npm install -g @dezhouzhang/archery-query-mcp
|
|
338
|
+
archery-query-mcp --help
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
也可以改用 `npx` 配置。
|
|
342
|
+
|
|
343
|
+
### OpenCode / Codex 配置后不生效
|
|
344
|
+
|
|
345
|
+
修改 MCP 配置后需要重启 OpenCode / Codex。stdio MCP 是由客户端启动的子进程,旧进程不会自动读取新配置。
|
|
346
|
+
|
|
347
|
+
### 凭证未生效
|
|
348
|
+
|
|
349
|
+
确认启动客户端的进程能读取到:
|
|
350
|
+
|
|
351
|
+
```bash
|
|
352
|
+
MCP_ARCHERY_LOGIN_USERNAME
|
|
353
|
+
MCP_ARCHERY_LOGIN_PASSWORD
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
Windows 使用 `setx` 后,需要重新打开终端或重启客户端。
|
|
357
|
+
|
|
358
|
+
### 华为云登录失败
|
|
359
|
+
|
|
360
|
+
`huawei` 当前是 HTTP URL,但 npm 版已允许 simulated-login 直接走该地址;请确保只在可信内网或可信网关后使用。
|
|
361
|
+
|
|
362
|
+
## 维护者发布流程
|
|
363
|
+
|
|
364
|
+
发布前检查:
|
|
365
|
+
|
|
366
|
+
```bash
|
|
367
|
+
npm test
|
|
368
|
+
npm run typecheck
|
|
369
|
+
npm run build
|
|
370
|
+
npx biome check .
|
|
371
|
+
npm publish --dry-run --access public
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
发布:
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
npm publish --access public
|
|
378
|
+
```
|
|
47
379
|
|
|
48
|
-
|
|
380
|
+
如果版本已发布,需要先更新 `package.json` 中的 `version`。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archeryClient.d.ts","sourceRoot":"","sources":["../src/archeryClient.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EAEb,WAAW,EACX,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE,qBAAa,iBAAkB,YAAW,aAAa;;gBAIzC,OAAO,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"archeryClient.d.ts","sourceRoot":"","sources":["../src/archeryClient.ts"],"names":[],"mappings":"AAkBA,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,oBAAoB,CAAA;AAE3B,OAAO,KAAK,EACV,aAAa,EAEb,aAAa,EAEb,WAAW,EACX,UAAU,EACV,aAAa,EACd,MAAM,YAAY,CAAA;AAEnB,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAElE,qBAAa,iBAAkB,YAAW,aAAa;;gBAIzC,OAAO,EAAE,wBAAwB;IAgBvC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiBnF,aAAa,CACjB,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,aAAa,CAAC;IA4BnB,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;CA4I7F;AAED,qBAAa,iBAAkB,YAAW,aAAa;IAC/C,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAenF,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC;IAIvC,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;CAG7C"}
|
package/dist/archeryClient.js
CHANGED
|
@@ -10,7 +10,13 @@ export class HttpArcheryClient {
|
|
|
10
10
|
this.#options = options;
|
|
11
11
|
this.#clients = new Map(Object.entries(CLOUD_BASE_URLS).map(([cloudName, baseUrl]) => [
|
|
12
12
|
cloudName,
|
|
13
|
-
ky.create({
|
|
13
|
+
ky.create({
|
|
14
|
+
prefixUrl: baseUrl,
|
|
15
|
+
timeout: 120_000,
|
|
16
|
+
retry: 0,
|
|
17
|
+
redirect: "manual",
|
|
18
|
+
...(options.fetch === undefined ? {} : { fetch: options.fetch }),
|
|
19
|
+
}),
|
|
14
20
|
]));
|
|
15
21
|
}
|
|
16
22
|
async executeQuery(scope, sql, maxRows) {
|
|
@@ -66,6 +72,7 @@ export class HttpArcheryClient {
|
|
|
66
72
|
const response = await this.#client(cloudName).post(stripSlash(this.#options.queryPath), {
|
|
67
73
|
body: form,
|
|
68
74
|
headers: cleanHeaders({
|
|
75
|
+
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
69
76
|
...headers,
|
|
70
77
|
"X-Requested-With": "XMLHttpRequest",
|
|
71
78
|
Accept: "application/json, text/javascript, */*; q=0.01",
|
|
@@ -78,8 +85,6 @@ export class HttpArcheryClient {
|
|
|
78
85
|
}
|
|
79
86
|
}
|
|
80
87
|
async #authenticatedSession(cloudName) {
|
|
81
|
-
if (!CLOUD_BASE_URLS[cloudName].startsWith("https://"))
|
|
82
|
-
return null;
|
|
83
88
|
if (this.#options.username === null || this.#options.password === null)
|
|
84
89
|
return null;
|
|
85
90
|
const jar = createCookieJar();
|
|
@@ -96,7 +101,9 @@ export class HttpArcheryClient {
|
|
|
96
101
|
try {
|
|
97
102
|
const response = await this.#client(cloudName).post("authenticate/", {
|
|
98
103
|
body: form,
|
|
104
|
+
throwHttpErrors: false,
|
|
99
105
|
headers: cleanHeaders({
|
|
106
|
+
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
100
107
|
Cookie: jar.headerValue() ?? "",
|
|
101
108
|
"X-CSRFToken": csrfToken ?? "",
|
|
102
109
|
"X-Requested-With": "XMLHttpRequest",
|
|
@@ -104,7 +111,13 @@ export class HttpArcheryClient {
|
|
|
104
111
|
}),
|
|
105
112
|
});
|
|
106
113
|
jar.store(response.headers);
|
|
107
|
-
|
|
114
|
+
if (response.status >= 400)
|
|
115
|
+
return null;
|
|
116
|
+
if (response.headers.get("Location")?.endsWith("/login/") === true)
|
|
117
|
+
return null;
|
|
118
|
+
if (!jar.hasSession())
|
|
119
|
+
return null;
|
|
120
|
+
return jar;
|
|
108
121
|
}
|
|
109
122
|
catch {
|
|
110
123
|
return null;
|
|
@@ -130,6 +143,7 @@ export class HttpArcheryClient {
|
|
|
130
143
|
Cookie: jar?.headerValue() ?? "",
|
|
131
144
|
"X-Requested-With": "XMLHttpRequest",
|
|
132
145
|
Accept: "application/json, text/javascript, */*; q=0.01",
|
|
146
|
+
...sameOriginHeaders(CLOUD_BASE_URLS[cloudName], `/${path}`),
|
|
133
147
|
}),
|
|
134
148
|
});
|
|
135
149
|
jar?.store(response.headers);
|
|
@@ -145,9 +159,11 @@ export class HttpArcheryClient {
|
|
|
145
159
|
body: form,
|
|
146
160
|
headers: cleanHeaders({
|
|
147
161
|
Cookie: jar?.headerValue() ?? "",
|
|
162
|
+
"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8",
|
|
148
163
|
"X-CSRFToken": jar?.csrfToken() ?? "",
|
|
149
164
|
"X-Requested-With": "XMLHttpRequest",
|
|
150
165
|
Accept: "application/json, text/javascript, */*; q=0.01",
|
|
166
|
+
...sameOriginHeaders(CLOUD_BASE_URLS[cloudName], `/${path}`),
|
|
151
167
|
}),
|
|
152
168
|
});
|
|
153
169
|
jar?.store(response.headers);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archeryClient.js","sourceRoot":"","sources":["../src/archeryClient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAmB,MAAM,IAAI,CAAA;AACxC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,UAAU,GACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,EACL,yBAAyB,EACzB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,qBAAqB,GACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAa7C,MAAM,OAAO,iBAAiB;IACnB,QAAQ,CAAoC;IAC5C,QAAQ,CAA0B;IAE3C,YAAY,OAAiC;QAC3C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAA;QACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,GAAG,CACrB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC;YAC5D,SAAsB;YACtB,EAAE,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"archeryClient.js","sourceRoot":"","sources":["../src/archeryClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,7 @@ export function createCookieJar() {
|
|
|
7
7
|
csrfToken: () => cookies.get("csrftoken") ?? null,
|
|
8
8
|
hasSession: () => [...cookies.keys()].some((key) => key.toLowerCase().includes("session")),
|
|
9
9
|
store: (headers) => {
|
|
10
|
-
for (const cookie of headers
|
|
10
|
+
for (const cookie of cookieValues(headers)) {
|
|
11
11
|
const firstPart = cookie.split(";", 1)[0];
|
|
12
12
|
if (firstPart === undefined)
|
|
13
13
|
continue;
|
|
@@ -44,4 +44,17 @@ function extractFirst(body, pattern) {
|
|
|
44
44
|
const match = pattern.exec(body);
|
|
45
45
|
return match?.[1] ?? null;
|
|
46
46
|
}
|
|
47
|
+
function cookieValues(headers) {
|
|
48
|
+
const testCookie = headers.get("X-Set-Cookie");
|
|
49
|
+
if (testCookie !== null) {
|
|
50
|
+
return [testCookie];
|
|
51
|
+
}
|
|
52
|
+
const getSetCookie = Reflect.get(headers, "getSetCookie");
|
|
53
|
+
if (typeof getSetCookie === "function") {
|
|
54
|
+
const values = getSetCookie.call(headers);
|
|
55
|
+
return Array.isArray(values) ? values : [];
|
|
56
|
+
}
|
|
57
|
+
const singleHeader = headers.get("Set-Cookie") ?? headers.get("set-cookie");
|
|
58
|
+
return singleHeader === null ? [] : [singleHeader];
|
|
59
|
+
}
|
|
47
60
|
//# sourceMappingURL=archeryHttpSupport.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archeryHttpSupport.js","sourceRoot":"","sources":["../src/archeryHttpSupport.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe;IAC7B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAA;IACzC,OAAO;QACL,WAAW,EAAE,GAAG,EAAE,CAChB,OAAO,CAAC,IAAI,KAAK,CAAC;YAChB,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChF,SAAS,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;QACjD,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1F,KAAK,EAAE,CAAC,OAAgB,EAAE,EAAE;YAC1B,KAAK,MAAM,MAAM,IAAI,
|
|
1
|
+
{"version":3,"file":"archeryHttpSupport.js","sourceRoot":"","sources":["../src/archeryHttpSupport.ts"],"names":[],"mappings":"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"}
|
package/dist/archeryShared.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archeryShared.d.ts","sourceRoot":"","sources":["../src/archeryShared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,CAAA;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"archeryShared.d.ts","sourceRoot":"","sources":["../src/archeryShared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,MAAM,MAAM,wBAAwB,GAAG;IACrC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB,GAAG,iBAAiB,CAAA;IACzD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,SAAS,GAAG;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,SAAS,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAA;IAClC,QAAQ,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,CAAC,EAAE;QACd,QAAQ,CAAC,WAAW,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;QACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,CAAA;QACjD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;QACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;QAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAC1B,CAAA;CACF,CAAA;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAElC,QAAQ,CAAC,SAAS,EAAE,MAAM;IADtC,QAAQ,CAAC,IAAI,2BAA0B;gBAClB,SAAS,EAAE,MAAM;CAGvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"archeryShared.js","sourceRoot":"","sources":["../src/archeryShared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"archeryShared.js","sourceRoot":"","sources":["../src/archeryShared.ts"],"names":[],"mappings":"AA+BA,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAEzB;IADZ,IAAI,GAAG,uBAAuB,CAAA;IACvC,YAAqB,SAAiB;QACpC,KAAK,CAAC,8BAA8B,SAAS,EAAE,CAAC,CAAA;QAD7B,cAAS,GAAT,SAAS,CAAQ;IAEtC,CAAC;CACF"}
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
type CliDependencies = {
|
|
4
|
+
readonly version: string;
|
|
5
|
+
readonly packageName: string;
|
|
6
|
+
readonly runUpgrade: () => Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
export declare function createProgram(dependencies?: CliDependencies): Command;
|
|
9
|
+
export declare function main(argv?: readonly string[]): Promise<void>;
|
|
2
10
|
export {};
|
|
3
11
|
//# sourceMappingURL=cli.d.ts.map
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAQnC,KAAK,eAAe,GAAG;IACrB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACzC,CAAA;AAQD,wBAAgB,aAAa,CAAC,YAAY,GAAE,eAAiC,GAAG,OAAO,CAqBtF;AAED,wBAAsB,IAAI,CAAC,IAAI,GAAE,SAAS,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAgChF"}
|
package/dist/cli.js
CHANGED
|
@@ -1,38 +1,86 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
import { spawn } from "node:child_process";
|
|
3
|
+
import { pathToFileURL } from "node:url";
|
|
2
4
|
import { Command } from "commander";
|
|
5
|
+
import packageJson from "../package.json" with { type: "json" };
|
|
3
6
|
import { HttpArcheryClient, StubArcheryClient } from "./archeryClient.js";
|
|
4
7
|
import { loadConfig } from "./config.js";
|
|
5
8
|
import { runHttpServer } from "./httpServer.js";
|
|
6
9
|
import { runStdioServer } from "./mcpServer.js";
|
|
7
10
|
import { createServiceContext } from "./services.js";
|
|
8
|
-
const
|
|
9
|
-
.
|
|
10
|
-
.
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
11
|
+
const cliDependencies = {
|
|
12
|
+
version: packageJson.version,
|
|
13
|
+
packageName: packageJson.name,
|
|
14
|
+
runUpgrade: () => runUpgrade(packageJson.name),
|
|
15
|
+
};
|
|
16
|
+
export function createProgram(dependencies = cliDependencies) {
|
|
17
|
+
const program = new Command()
|
|
18
|
+
.name("archery-query-mcp")
|
|
19
|
+
.description("MCP server for querying Archery safely via stdio or HTTP")
|
|
20
|
+
.version(dependencies.version, "-v, --version")
|
|
21
|
+
.option("--transport <transport>", "stdio or http", "stdio")
|
|
22
|
+
.option("--host <host>", "HTTP host", "127.0.0.1")
|
|
23
|
+
.option("--port <port>", "HTTP port", "8080")
|
|
24
|
+
.option("--archery-auth-mode <mode>", "simulated-login or personal-session", "simulated-login")
|
|
25
|
+
.option("--archery-client-mode <mode>", "http-query or stub", "http-query")
|
|
26
|
+
.option("--query-path <path>", "Archery query endpoint path", "/query/")
|
|
27
|
+
.option("--user <subject>", "Authenticated MCP user subject");
|
|
28
|
+
program
|
|
29
|
+
.command("upgrade")
|
|
30
|
+
.description(`upgrade ${dependencies.packageName} to the latest version`)
|
|
31
|
+
.action(async () => {
|
|
32
|
+
await dependencies.runUpgrade();
|
|
33
|
+
});
|
|
34
|
+
return program;
|
|
35
|
+
}
|
|
36
|
+
export async function main(argv = process.argv) {
|
|
37
|
+
const args = argv.slice(2);
|
|
38
|
+
if (args[0] === "upgrade") {
|
|
39
|
+
if (args.includes("--help") || args.includes("-h")) {
|
|
40
|
+
createProgram().parse(argv);
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
await cliDependencies.runUpgrade();
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
const program = createProgram();
|
|
47
|
+
const config = loadConfig(process.env, program.parse(argv).opts());
|
|
48
|
+
const archeryClient = config.clientMode === "stub" ? new StubArcheryClient() : new HttpArcheryClient(config);
|
|
49
|
+
const context = createServiceContext({
|
|
50
|
+
userSubject: config.userSubject,
|
|
51
|
+
policy: config.policy,
|
|
52
|
+
archeryClient,
|
|
53
|
+
});
|
|
54
|
+
// no-excuse-ok: catch
|
|
55
|
+
try {
|
|
56
|
+
if (config.transport === "stdio") {
|
|
57
|
+
await runStdioServer(context);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
runHttpServer(context, { host: config.host, port: config.port, apiKey: config.httpApiKey });
|
|
61
|
+
}
|
|
29
62
|
}
|
|
30
|
-
|
|
31
|
-
|
|
63
|
+
catch (error) {
|
|
64
|
+
console.error(error);
|
|
65
|
+
process.exit(1);
|
|
32
66
|
}
|
|
33
67
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
68
|
+
async function runUpgrade(packageName) {
|
|
69
|
+
await new Promise((resolve, reject) => {
|
|
70
|
+
const child = spawn(process.platform === "win32" ? "npm.cmd" : "npm", ["install", "-g", `${packageName}@latest`], { stdio: "inherit" });
|
|
71
|
+
child.once("error", reject);
|
|
72
|
+
child.once("exit", (code, signal) => {
|
|
73
|
+
if (code === 0) {
|
|
74
|
+
resolve();
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
reject(new Error(signal === null
|
|
78
|
+
? `npm exited with code ${code ?? -1}`
|
|
79
|
+
: `npm exited with signal ${signal}`));
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
if (import.meta.url === pathToFileURL(process.argv[1] ?? "").href) {
|
|
84
|
+
await main(process.argv);
|
|
37
85
|
}
|
|
38
86
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/config.d.ts
CHANGED
|
@@ -8,10 +8,12 @@ export type ClientMode = z.infer<typeof ClientModeSchema>;
|
|
|
8
8
|
export type TransportMode = z.infer<typeof TransportSchema>;
|
|
9
9
|
export type RuntimeConfig = {
|
|
10
10
|
readonly transport: TransportMode;
|
|
11
|
+
readonly host: string;
|
|
11
12
|
readonly port: number;
|
|
12
13
|
readonly authMode: AuthMode;
|
|
13
14
|
readonly clientMode: ClientMode;
|
|
14
15
|
readonly queryPath: string;
|
|
16
|
+
readonly httpApiKey: string | null;
|
|
15
17
|
readonly username: string | null;
|
|
16
18
|
readonly password: string | null;
|
|
17
19
|
readonly userSubject: string;
|
|
@@ -19,6 +21,7 @@ export type RuntimeConfig = {
|
|
|
19
21
|
};
|
|
20
22
|
export type CliOptions = {
|
|
21
23
|
readonly transport?: string;
|
|
24
|
+
readonly host?: string;
|
|
22
25
|
readonly port?: string | number;
|
|
23
26
|
readonly archeryAuthMode?: string;
|
|
24
27
|
readonly archeryClientMode?: string;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,QAAA,MAAM,cAAc,0FAAyE,CAAA;AAC7F,QAAA,MAAM,gBAAgB,yEAAwD,CAAA;AAC9E,QAAA,MAAM,eAAe,oEAAmD,CAAA;AAiBxE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B,CAAA;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE9C,QAAA,MAAM,cAAc,0FAAyE,CAAA;AAC7F,QAAA,MAAM,gBAAgB,yEAAwD,CAAA;AAC9E,QAAA,MAAM,eAAe,oEAAmD,CAAA;AAiBxE,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AACzD,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAA;AAE3D,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,aAAa,CAAA;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAA;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IAClC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;CAC9B,CAAA;AAoBD,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,OAAO,EAAE,UAAU,GAAG,aAAa,CAmCrF"}
|
package/dist/config.js
CHANGED
|
@@ -24,6 +24,7 @@ const CsvSchema = z
|
|
|
24
24
|
const EnvSchema = z.object({
|
|
25
25
|
MCP_ARCHERY_LOGIN_USERNAME: z.string().optional(),
|
|
26
26
|
MCP_ARCHERY_LOGIN_PASSWORD: z.string().optional(),
|
|
27
|
+
ARCHERY_MCP_HTTP_API_KEY: z.string().optional(),
|
|
27
28
|
MCP_AUTHENTICATED_USER: z.string().optional(),
|
|
28
29
|
ARCHERY_QUERY_DEFAULT_LIMIT: z.coerce.number().int().min(1).default(100),
|
|
29
30
|
ARCHERY_QUERY_MAX_LIMIT: z.coerce.number().int().min(1).default(500),
|
|
@@ -46,10 +47,12 @@ export function loadConfig(env, options) {
|
|
|
46
47
|
const maxLimit = Math.max(parsedEnv.ARCHERY_QUERY_MAX_LIMIT, parsedEnv.ARCHERY_QUERY_DEFAULT_LIMIT);
|
|
47
48
|
return {
|
|
48
49
|
transport,
|
|
50
|
+
host: options.host ?? "127.0.0.1",
|
|
49
51
|
port,
|
|
50
52
|
authMode,
|
|
51
53
|
clientMode,
|
|
52
54
|
queryPath: options.queryPath ?? "/query/",
|
|
55
|
+
httpApiKey: normalizeOptionalSecret(parsedEnv.ARCHERY_MCP_HTTP_API_KEY),
|
|
53
56
|
username: parsedEnv.MCP_ARCHERY_LOGIN_USERNAME ?? null,
|
|
54
57
|
password: parsedEnv.MCP_ARCHERY_LOGIN_PASSWORD ?? null,
|
|
55
58
|
userSubject: options.user ?? parsedEnv.MCP_AUTHENTICATED_USER ?? "local-user",
|
|
@@ -63,6 +66,13 @@ export function loadConfig(env, options) {
|
|
|
63
66
|
},
|
|
64
67
|
};
|
|
65
68
|
}
|
|
69
|
+
function normalizeOptionalSecret(value) {
|
|
70
|
+
if (value === undefined) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const trimmed = value.trim();
|
|
74
|
+
return trimmed.length === 0 ? null : trimmed;
|
|
75
|
+
}
|
|
66
76
|
function splitCsv(value) {
|
|
67
77
|
if (value === undefined || value.trim() === "") {
|
|
68
78
|
return [];
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAA;AAC7F,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AAC9E,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;AACxE,MAAM,gBAAgB,GAAG,CAAC;KACvB,UAAU,CAAC,CAAC,KAAK,EAAE,EAAE;IACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAA;IAC7C,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IACD,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1D,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC;KACd,OAAO,CAAC,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/httpServer.d.ts
CHANGED
|
@@ -2,8 +2,16 @@ import { Hono } from "hono";
|
|
|
2
2
|
import type { ServiceContext } from "./services.js";
|
|
3
3
|
import type { JsonObject } from "./types.js";
|
|
4
4
|
type JsonRpcId = string | number | null;
|
|
5
|
-
export
|
|
6
|
-
|
|
5
|
+
export type HttpServerOptions = {
|
|
6
|
+
readonly host: string;
|
|
7
|
+
readonly port: number;
|
|
8
|
+
readonly apiKey: string | null;
|
|
9
|
+
};
|
|
10
|
+
type HttpAppOptions = {
|
|
11
|
+
readonly apiKey?: string | null;
|
|
12
|
+
};
|
|
13
|
+
export declare function createHttpApp(context: ServiceContext, options?: HttpAppOptions): Hono;
|
|
14
|
+
export declare function runHttpServer(context: ServiceContext, options: HttpServerOptions): void;
|
|
7
15
|
export declare function handleJsonRpc(context: ServiceContext, id: JsonRpcId, method: string, params: unknown): Promise<JsonObject>;
|
|
8
16
|
export {};
|
|
9
17
|
//# sourceMappingURL=httpServer.d.ts.map
|
package/dist/httpServer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAA;AASvD,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAEvC,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"httpServer.d.ts","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAE3B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAEnD,OAAO,KAAK,EAAE,UAAU,EAAa,MAAM,YAAY,CAAA;AASvD,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;AAEvC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CAC/B,CAAA;AAED,KAAK,cAAc,GAAG;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAChC,CAAA;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,GAAE,cAAmB,GAAG,IAAI,CA4BzF;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAMvF;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,EAAE,EAAE,SAAS,EACb,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAkBrB"}
|
package/dist/httpServer.js
CHANGED
|
@@ -8,9 +8,13 @@ const JsonRpcRequestSchema = z.object({
|
|
|
8
8
|
method: z.string(),
|
|
9
9
|
params: z.unknown().optional(),
|
|
10
10
|
});
|
|
11
|
-
export function createHttpApp(context) {
|
|
11
|
+
export function createHttpApp(context, options = {}) {
|
|
12
12
|
const app = new Hono();
|
|
13
|
+
app.get("/health", (c) => c.json({ status: "ok", server: "archery-query-mcp" }));
|
|
13
14
|
app.post("/mcp", async (c) => {
|
|
15
|
+
if (!isAuthorized(c.req.header("Authorization"), options.apiKey ?? null)) {
|
|
16
|
+
return c.json({ error: "unauthorized" }, 401);
|
|
17
|
+
}
|
|
14
18
|
let body;
|
|
15
19
|
try {
|
|
16
20
|
body = await c.req.json();
|
|
@@ -32,8 +36,12 @@ export function createHttpApp(context) {
|
|
|
32
36
|
});
|
|
33
37
|
return app;
|
|
34
38
|
}
|
|
35
|
-
export function runHttpServer(context,
|
|
36
|
-
serve({
|
|
39
|
+
export function runHttpServer(context, options) {
|
|
40
|
+
serve({
|
|
41
|
+
fetch: createHttpApp(context, { apiKey: options.apiKey }).fetch,
|
|
42
|
+
port: options.port,
|
|
43
|
+
hostname: options.host,
|
|
44
|
+
});
|
|
37
45
|
}
|
|
38
46
|
export async function handleJsonRpc(context, id, method, params) {
|
|
39
47
|
if (method === "initialize") {
|
|
@@ -84,4 +92,10 @@ function jsonResponse(payload) {
|
|
|
84
92
|
headers: { "Content-Type": "application/json" },
|
|
85
93
|
});
|
|
86
94
|
}
|
|
95
|
+
function isAuthorized(authorization, apiKey) {
|
|
96
|
+
if (apiKey === null) {
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
return authorization === `Bearer ${apiKey}`;
|
|
100
|
+
}
|
|
87
101
|
//# sourceMappingURL=httpServer.js.map
|
package/dist/httpServer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAC3B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAGxE,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IACpC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;IACxE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC/B,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"httpServer.js","sourceRoot":"","sources":["../src/httpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadataPolicy.d.ts","sourceRoot":"","sources":["../src/metadataPolicy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE1D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,OAAO,GAAG,QAAQ,GAC9B,MAAM,GAAG,IAAI,CAgBf"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function metadataPolicyBlock(config, scope, checkedText, checkedKind) {
|
|
2
|
+
if (config.allowedInstances.size > 0 && !config.allowedInstances.has(scope.instanceName)) {
|
|
3
|
+
return "Instance is outside the configured allowlist";
|
|
4
|
+
}
|
|
5
|
+
if (config.allowedDatabases.size > 0 && !config.allowedDatabases.has(scope.dbName)) {
|
|
6
|
+
return "Database is outside the configured allowlist";
|
|
7
|
+
}
|
|
8
|
+
const lowerText = checkedText.toLowerCase();
|
|
9
|
+
for (const blockedTable of config.blockedTables) {
|
|
10
|
+
if (blockedTable.trim().length > 0 && lowerText.includes(blockedTable.toLowerCase())) {
|
|
11
|
+
return checkedKind === "table"
|
|
12
|
+
? "Table is blocked by policy"
|
|
13
|
+
: "Search references a blocked table";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=metadataPolicy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadataPolicy.js","sourceRoot":"","sources":["../src/metadataPolicy.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,mBAAmB,CACjC,MAAoB,EACpB,KAAiB,EACjB,WAAmB,EACnB,WAA+B;IAE/B,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACzF,OAAO,8CAA8C,CAAA;IACvD,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC;QACnF,OAAO,8CAA8C,CAAA;IACvD,CAAC;IACD,MAAM,SAAS,GAAG,WAAW,CAAC,WAAW,EAAE,CAAA;IAC3C,KAAK,MAAM,YAAY,IAAI,MAAM,CAAC,aAAa,EAAE,CAAC;QAChD,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACrF,OAAO,WAAW,KAAK,OAAO;gBAC5B,CAAC,CAAC,4BAA4B;gBAC9B,CAAC,CAAC,mCAAmC,CAAA;QACzC,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
|
package/dist/responses.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export type ExecuteQueryResponse = {
|
|
|
13
13
|
readonly columns: readonly string[];
|
|
14
14
|
readonly rows: readonly JsonObject[];
|
|
15
15
|
readonly rowCount: number;
|
|
16
|
+
readonly effectiveMaxRows: number;
|
|
17
|
+
readonly truncated: boolean;
|
|
16
18
|
readonly durationMs: number;
|
|
17
19
|
readonly masked: boolean;
|
|
18
20
|
readonly archeryMessage: string;
|
package/dist/responses.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEtF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAA;IACjD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA"}
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../src/responses.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEtF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAA;IACjD,QAAQ,CAAC,mBAAmB,EAAE,MAAM,CAAA;CACrC,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAA;IACnC,QAAQ,CAAC,IAAI,EAAE,SAAS,UAAU,EAAE,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;IACjC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1C,CAAA;AAED,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAA;IACxC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAA;IACzC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CACxB,CAAA"}
|
package/dist/services.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"services.d.ts","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,KAAK,eAAe,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAA;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAiB,MAAM,YAAY,CAAA;AAE5E,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;IACrC,QAAQ,CAAC,eAAe,EAAE,kBAAkB,CAAA;IAC5C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAA;CACjC,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAChD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAA;IACzC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG,eAAe,GAAG;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;CAC3B,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,eAAe,GAAG;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAC5C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAA;IAC7B,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAA;CACtC,GAAG,cAAc,CAQjB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAwD/B;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAwC/B;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,qBAAqB,CAAC,CAqBhC;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,oBAAoB,CAAC,CAa/B"}
|
package/dist/services.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { randomUUID } from "node:crypto";
|
|
2
|
+
import { metadataPolicyBlock } from "./metadataPolicy.js";
|
|
2
3
|
import { sqlHash, validateSql } from "./policy.js";
|
|
3
4
|
import { QueryScopeStore, resolveScope } from "./scope.js";
|
|
4
5
|
import { PreparedQueryStore } from "./store.js";
|
|
@@ -90,6 +91,8 @@ export async function executeQuery(context, input) {
|
|
|
90
91
|
columns: result.columns,
|
|
91
92
|
rows: result.rows,
|
|
92
93
|
rowCount: result.rowCount,
|
|
94
|
+
effectiveMaxRows,
|
|
95
|
+
truncated: result.rowCount >= effectiveMaxRows,
|
|
93
96
|
durationMs: result.durationMs,
|
|
94
97
|
masked: result.masked,
|
|
95
98
|
archeryMessage: result.message,
|
|
@@ -145,27 +148,12 @@ function blockedExecution(reason) {
|
|
|
145
148
|
columns: [],
|
|
146
149
|
rows: [],
|
|
147
150
|
rowCount: 0,
|
|
151
|
+
effectiveMaxRows: 0,
|
|
152
|
+
truncated: false,
|
|
148
153
|
durationMs: 0,
|
|
149
154
|
masked: false,
|
|
150
155
|
archeryMessage: reason,
|
|
151
156
|
archeryQueryLogId: null,
|
|
152
157
|
};
|
|
153
158
|
}
|
|
154
|
-
function metadataPolicyBlock(config, scope, checkedText, checkedKind) {
|
|
155
|
-
if (config.allowedInstances.size > 0 && !config.allowedInstances.has(scope.instanceName)) {
|
|
156
|
-
return "Instance is outside the configured allowlist";
|
|
157
|
-
}
|
|
158
|
-
if (config.allowedDatabases.size > 0 && !config.allowedDatabases.has(scope.dbName)) {
|
|
159
|
-
return "Database is outside the configured allowlist";
|
|
160
|
-
}
|
|
161
|
-
const lowerText = checkedText.toLowerCase();
|
|
162
|
-
for (const blockedTable of config.blockedTables) {
|
|
163
|
-
if (blockedTable.trim().length > 0 && lowerText.includes(blockedTable.toLowerCase())) {
|
|
164
|
-
return checkedKind === "table"
|
|
165
|
-
? "Table is blocked by policy"
|
|
166
|
-
: "Search references a blocked table";
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
return null;
|
|
170
|
-
}
|
|
171
159
|
//# sourceMappingURL=services.js.map
|
package/dist/services.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"services.js","sourceRoot":"","sources":["../src/services.ts"],"names":[],"mappings":"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"}
|