redis-switchboard-mcp 0.1.4 → 0.1.5

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 CHANGED
@@ -35,7 +35,7 @@ The result is stateless from the caller's point of view: `execute` in db 2 and d
35
35
 
36
36
  - **Per-call database selection** for every tool (`db: 0-255`).
37
37
  - **Multiple Redis instances** from a JSON config, selected with the `instance` argument.
38
- - **Explicit permission mode** (`readonly` / `readwrite`); `readonly` uses an explicit read-command whitelist.
38
+ - **Explicit permission mode** (`readonly` / `readwrite`); `readonly` uses an explicit read-command whitelist. The mode is optional: an instance without a configured mode defaults to `readonly`.
39
39
  - **Command blocklist** for connection-level, administrative, destructive and blocking commands.
40
40
  - **Lua scripting disabled by default** (`EVAL`/`EVALSHA`/`FCALL`).
41
41
  - **Bounded output** with per-container and global item/character budgets.
@@ -43,7 +43,7 @@ The result is stateless from the caller's point of view: `execute` in db 2 and d
43
43
  - **Fetch guards** in `execute`: unbounded `GET`/`MGET`/`HMGET`, `LRANGE 0 -1`, `HGETALL`/`HKEYS`/`HVALS`, `SMEMBERS`, `ZRANGE 0 -1`, `ZUNION`/`ZINTER`/`ZDIFF`, `XRANGE` without `COUNT`, huge `HSCAN`/`SSCAN`/`ZSCAN` `COUNT`, `SORT_RO` without `LIMIT`, negative random counts and oversized set operations are rejected with a pointer to `read_page`.
44
44
  - **Bounded scans** with `limit`, SCAN iteration cap, and a wall-clock budget.
45
45
  - **Cluster detection** — logical DBs other than 0 are rejected on a Redis Cluster.
46
- - **Connection cache limit** per instance (`maxConnections`, default 32).
46
+ - **Connection cache limit** per instance (`maxConnections`, default 32), with a small pool per `(instance, db)` (`poolSize`, default 4) and **idle connection recycling** (`idleTimeoutMs`, default 5 minutes): a connection that has not run any command for 5 minutes is closed and evicted, so databases you stop using stop holding server resources.
47
47
  - **Credential redaction** in error messages.
48
48
  - **No stdout logging** — stdout is reserved for the MCP stdio transport.
49
49
 
@@ -174,10 +174,12 @@ The same file can be selected with `REDIS_MCP_CONFIG=/path/to/config.json`.
174
174
  | `REDIS_DB` | ⚪ Optional | `0` | Default logical database when `db` is omitted |
175
175
  | `REDIS_TLS` | ⚪ Optional | `false` | Enable TLS |
176
176
  | `REDIS_TLS_REJECT_UNAUTHORIZED` | ⚪ Optional | `true` | Verify the server certificate |
177
- | `REDIS_MODE` | ✅ Required | — | Permission mode: `readonly` or `readwrite` (required for env config unless `--mode` is used) |
177
+ | `REDIS_MODE` | ⚪ Optional | `readonly` | Permission mode: `readonly` or `readwrite` (defaults to `readonly` when omitted) |
178
178
  | `REDIS_ALLOWED_DBS` | ⚪ Optional | — | Comma-separated allowlist, e.g. `0,2,4` |
179
179
  | `REDIS_ALLOW_SCRIPTING` | ⚪ Optional | `false` | Allow `EVAL`/`EVALSHA`/`FCALL` (see security caveat) |
180
180
  | `REDIS_MAX_CONNECTIONS` | ⚪ Optional | `32` | Per-instance connection cache limit (1-256) |
181
+ | `REDIS_POOL_SIZE` | ⚪ Optional | `4` | Connections pooled per `(instance, db)` (1-16) |
182
+ | `REDIS_IDLE_TIMEOUT_MS` | ⚪ Optional | `300000` | Close an idle `(instance, db)` connection after this long without a command; `0` disables |
181
183
  | `REDIS_CONNECT_TIMEOUT_MS` | ⚪ Optional | `5000` | TCP/connect timeout |
182
184
  | `REDIS_COMMAND_TIMEOUT_MS` | ⚪ Optional | `15000` | Per-command timeout; `0` disables it |
183
185
  | `REDIS_MAX_RESULT_ITEMS` | ⚪ Optional | `200` | Per-array/object item cap in replies |
@@ -259,10 +261,12 @@ JSON config and `REDIS_HOST`/`REDIS_PORT`/`REDIS_MODE` are **mutually exclusive*
259
261
  | `db` | ⚪ Optional | `0` | Default logical database |
260
262
  | `tls` | ⚪ Optional | `false` | Enable TLS |
261
263
  | `tlsRejectUnauthorized` | ⚪ Optional | `true` | Verify the server certificate |
262
- | `mode` | ✅ Required | — | Permission mode: `readonly` or `readwrite` |
264
+ | `mode` | ⚪ Optional | `readonly` | Permission mode: `readonly` or `readwrite` (defaults to `readonly` when omitted) |
263
265
  | `allowScripting` | ⚪ Optional | `false` | Allow `EVAL`/`EVALSHA`/`FCALL` |
264
266
  | `allowedDbs` | ⚪ Optional | — | Restrict which logical DBs this instance may access |
265
267
  | `maxConnections` | ⚪ Optional | `32` | Cache limit for `(instance, db)` connections |
268
+ | `poolSize` | ⚪ Optional | `4` | Connections pooled per `(instance, db)` (1-16) |
269
+ | `idleTimeoutMs` | ⚪ Optional | `300000` | Close an idle `(instance, db)` connection after this long without a command; `0` disables |
266
270
  | `connectTimeoutMs` | ⚪ Optional | `5000` | TCP/connect timeout |
267
271
  | `commandTimeoutMs` | ⚪ Optional | `15000` | Per-command timeout; `0` disables |
268
272
  | `maxResultItems` | ⚪ Optional | `200` | Per-container item cap |
@@ -435,18 +439,18 @@ Response:
435
439
 
436
440
  ### Permission modes
437
441
 
438
- The permission mode is an explicit enum. There is no `readOnly` boolean and no implicit default:
442
+ The permission mode is an explicit enum with no `readOnly` boolean. When the mode is not configured, the instance defaults to `readonly`:
439
443
 
440
444
  | Mode | Behavior |
441
445
  | :---: | :---: |
442
446
  | `readonly` | Only an explicit read-command whitelist is accepted; `SET`, `HSET`, `DEL`, `RESTORE`, ... are rejected. `EVAL`/`FCALL` remain rejected even if `allowScripting` is true. |
443
447
  | `readwrite` | Write commands such as `SET`, `HSET`, `DEL` are allowed; the always-rejected list below still applies, and `EVAL`/`FCALL` are allowed only when `allowScripting` is true. |
444
448
 
445
- Set it in JSON as `"mode": "readonly"` / `"mode": "readwrite"`, in environment configuration with `REDIS_MODE=readonly|readwrite` (required unless `--mode` is provided), or override every instance with `--mode readonly|readwrite`.
449
+ Set it in JSON as `"mode": "readonly"` / `"mode": "readwrite"`, in environment configuration with `REDIS_MODE=readonly|readwrite`, or override every instance with `--mode readonly|readwrite`. Precedence: `--mode` wins over `REDIS_MODE` / the instance `mode` field; an instance with no mode configured at all is `readonly`.
446
450
 
447
451
  `REDIS_MODE` cannot be combined with a JSON config file; set `mode` per instance instead (or use `--mode` to override all instances).
448
452
 
449
- Use a Redis ACL with a read-only user as a second layer of defense — `readonly` mode is a convenience, not a replacement for server-side ACLs.
453
+ With no mode configured the instance is read-only; set `mode: "readwrite"` (JSON), `REDIS_MODE=readwrite` (environment) or `--mode readwrite` explicitly to allow writes. Use a Redis ACL with a read-only user as a second layer of defense — `readonly` mode is a convenience, not a replacement for server-side ACLs.
450
454
 
451
455
  **Migration:** `readOnly` (JSON), `REDIS_READONLY` and `--readonly` were removed. Use `mode`, `REDIS_MODE` and `--mode` instead.
452
456
 
@@ -511,7 +515,7 @@ This package exposes a **stdio** MCP server. It does not open an HTTP port and d
511
515
  - **Fetch guard coverage**: covered forms include `GET`/`MGET`/`GETDEL`/`GETEX`/`GETSET`, `GETRANGE`/`SUBSTR`, `HGET`, `DUMP`, `LRANGE`, `HGETALL`/`HKEYS`/`HVALS`, `SMEMBERS`, `SINTER`/`SUNION`/`SDIFF`, `ZRANGE`/`ZRANGEBY*`/`ZUNION`/`ZINTER`/`ZDIFF`, `XRANGE`/`XREVRANGE`, `HSCAN`/`SSCAN`/`ZSCAN` `COUNT`, `SORT`/`SORT_RO`, `LCS`, `GEOSEARCH`/`GEORADIUS_RO`/`GEORADIUSBYMEMBER_RO`, random members and pop counts. It is **not exhaustive**: `LINDEX`, `XPENDING`, `XINFO STREAM ... FULL`, `SET ... GET`, `LMPOP`/`ZMPOP` are not guarded, and item-count-only checks do not bound the byte size of an individual field/member. For those, use a restricted ACL, `commandTimeoutMs`, and the smallest possible command.
512
516
  - **Large reads**: `execute` rejects the common unbounded bulk-read forms and `read_page` provides server-side paging. A command that is not covered by the guard (for example an unusual command with a large reply) can still be fully materialized by Redis/ioredis before `truncateReply` runs. Prefer `key_info` for metadata, `scan_keys` for key enumeration, `read_page` for collections, and a restricted ACL / `commandTimeoutMs` for very large data.
513
517
  - **SCAN consistency**: SCAN is incremental and not a snapshot; results can be missed or duplicated across calls.
514
- - **Connection cache**: each `(instance, db)` pair uses one connection. The default cap is 32 per instance. The cap is a hard stop with no eviction: once 32 distinct databases have been opened, other databases are unavailable until the process restarts. Raise `maxConnections` if you legitimately use many logical DBs.
518
+ - **Connection cache**: each `(instance, db)` pair keeps up to `poolSize` (default 4) pooled connections. The per-instance cap is `maxConnections` (default 32) and is a hard stop. Connections idle for longer than `idleTimeoutMs` (default 5 minutes) are closed automatically; a connection with a command that timed out is dropped immediately and replaced on the next request. Raise `maxConnections` if you legitimately use many logical DBs.
515
519
  - **Cluster + ACL**: if `INFO cluster` is denied by ACL, the explicit `SELECT` verification still rejects db > 0 on a cluster with a clear error. db 0 does not require `SELECT`.
516
520
 
517
521
  ---
package/README.zh-CN.md CHANGED
@@ -35,7 +35,7 @@ Redis 的 `SELECT` 改变的是**连接**的数据库,而不是某一条命令
35
35
 
36
36
  - **每次调用切换逻辑库**(`db: 0-255`)。
37
37
  - **多 Redis 实例**:JSON 配置,通过 `instance` 参数选择。
38
- - **显式权限模式**(`readonly` / `readwrite`);`readonly` 使用显式读命令白名单。
38
+ - **显式权限模式**(`readonly` / `readwrite`);`readonly` 使用显式读命令白名单。权限模式可省略:未配置时实例默认为 `readonly`。
39
39
  - **命令黑名单**:连接状态、管理、破坏性、阻塞类命令。
40
40
  - **默认禁用 Lua**(`EVAL` / `EVALSHA` / `FCALL`)。
41
41
  - **输出截断**:单容器 + 全局 item / 字符预算。
@@ -43,7 +43,7 @@ Redis 的 `SELECT` 改变的是**连接**的数据库,而不是某一条命令
43
43
  - **抓取守卫**:`execute` 对无界 `GET`/`MGET`/`HMGET`、`LRANGE 0 -1`、`HGETALL`/`HKEYS`/`HVALS`、`SMEMBERS`、`ZRANGE 0 -1`、`ZUNION`/`ZINTER`/`ZDIFF`、无 `COUNT` 的 `XRANGE`、超大 `HSCAN`/`SSCAN`/`ZSCAN` `COUNT`、无 `LIMIT` 的 `SORT_RO`、负数随机 count、过大的集合运算等,在命令执行前直接拒绝,并提示使用 `read_page`。
44
44
  - **有界 SCAN**:`limit`、迭代次数上限、墙钟时间预算。
45
45
  - **集群检测**:Redis Cluster 只允许 db 0。
46
- - **连接数上限**:每个实例 `maxConnections`,默认 32。
46
+ - **连接数上限**:每个实例 `maxConnections`,默认 32;每个 `(instance, db)` 维持一个小连接池(`poolSize`,默认 4),并支持**空闲连接回收**(`idleTimeoutMs`,默认 5 分钟):连续 5 分钟没有任何命令的连接会被关闭并从缓存移除,不再占用的库不会白白持有连接。
47
47
  - **凭证脱敏**:错误信息中移除 URL / password / AUTH 凭据。
48
48
  - **不向 stdout 打日志**:stdout 专用于 MCP stdio 传输。
49
49
 
@@ -176,10 +176,12 @@ node dist/index.js
176
176
  | `REDIS_DB` | ⚪ 可选 | `0` | 工具未传 `db` 时的默认逻辑库 |
177
177
  | `REDIS_TLS` | ⚪ 可选 | `false` | 启用 TLS |
178
178
  | `REDIS_TLS_REJECT_UNAUTHORIZED` | ⚪ 可选 | `true` | 是否校验证书 |
179
- | `REDIS_MODE` | ✅ 必填 | — | 权限模式:`readonly` 或 `readwrite`(未使用 `--mode` 时必填) |
179
+ | `REDIS_MODE` | ⚪ 可选 | `readonly` | 权限模式:`readonly` 或 `readwrite`(省略时默认 `readonly`) |
180
180
  | `REDIS_ALLOWED_DBS` | ⚪ 可选 | — | 逗号分隔的库白名单,例如 `0,2,4` |
181
181
  | `REDIS_ALLOW_SCRIPTING` | ⚪ 可选 | `false` | 允许 `EVAL` / `EVALSHA` / `FCALL`(见安全说明) |
182
182
  | `REDIS_MAX_CONNECTIONS` | ⚪ 可选 | `32` | 每个实例的连接缓存上限(1-256) |
183
+ | `REDIS_POOL_SIZE` | ⚪ 可选 | `4` | 每个 `(instance, db)` 的连接池大小(1-16) |
184
+ | `REDIS_IDLE_TIMEOUT_MS` | ⚪ 可选 | `300000` | `(instance, db)` 连接空闲超过该时长后自动关闭;`0` 表示禁用 |
183
185
  | `REDIS_CONNECT_TIMEOUT_MS` | ⚪ 可选 | `5000` | TCP / 建连超时 |
184
186
  | `REDIS_COMMAND_TIMEOUT_MS` | ⚪ 可选 | `15000` | 单条命令超时;`0` 表示禁用 |
185
187
  | `REDIS_MAX_RESULT_ITEMS` | ⚪ 可选 | `200` | 回复中单个数组 / 对象的 item 上限 |
@@ -261,10 +263,12 @@ JSON 配置和 `REDIS_HOST`/`REDIS_PORT`/`REDIS_MODE` 是**互斥**的:同时
261
263
  | `db` | ⚪ 可选 | `0` | 默认逻辑库 |
262
264
  | `tls` | ⚪ 可选 | `false` | 启用 TLS |
263
265
  | `tlsRejectUnauthorized` | ⚪ 可选 | `true` | 校验证书 |
264
- | `mode` | ✅ 必填 | — | 权限模式:`readonly` 或 `readwrite` |
266
+ | `mode` | ⚪ 可选 | `readonly` | 权限模式:`readonly` 或 `readwrite`(省略时默认 `readonly`) |
265
267
  | `allowScripting` | ⚪ 可选 | `false` | 允许 `EVAL` / `EVALSHA` / `FCALL` |
266
268
  | `allowedDbs` | ⚪ 可选 | — | 限制该实例可访问的逻辑库 |
267
269
  | `maxConnections` | ⚪ 可选 | `32` | `(instance, db)` 连接缓存上限 |
270
+ | `poolSize` | ⚪ 可选 | `4` | 每个 `(instance, db)` 的连接池大小(1-16) |
271
+ | `idleTimeoutMs` | ⚪ 可选 | `300000` | `(instance, db)` 连接空闲超过该时长后自动关闭;`0` 表示禁用 |
268
272
  | `connectTimeoutMs` | ⚪ 可选 | `5000` | 建连超时 |
269
273
  | `commandTimeoutMs` | ⚪ 可选 | `15000` | 单条命令超时;`0` 表示禁用 |
270
274
  | `maxResultItems` | ⚪ 可选 | `200` | 单容器 item 上限 |
@@ -437,18 +441,18 @@ JSON 配置和 `REDIS_HOST`/`REDIS_PORT`/`REDIS_MODE` 是**互斥**的:同时
437
441
 
438
442
  ### 权限模式
439
443
 
440
- 权限模式是显式枚举,没有 `readOnly` 布尔值,也没有隐式默认值:
444
+ 权限模式是显式枚举,没有 `readOnly` 布尔值。未配置权限模式时,实例默认为 `readonly`:
441
445
 
442
446
  | 模式 | 行为 |
443
447
  | :---: | :---: |
444
448
  | `readonly` | 只接受显式读命令白名单;`SET`、`HSET`、`DEL`、`RESTORE` 等写命令直接拒绝。即使 `allowScripting: true`,`EVAL`/`FCALL` 也会被拒绝。 |
445
449
  | `readwrite` | 允许 `SET`、`HSET`、`DEL` 等写命令;下面的「永远拒绝的命令」仍然生效;`EVAL`/`FCALL` 仅在 `allowScripting: true` 时允许。 |
446
450
 
447
- JSON 里写 `"mode": "readonly"` / `"mode": "readwrite"`;单实例环境变量用 `REDIS_MODE=readonly|readwrite`(未使用 `--mode` 时必填);`--mode readonly|readwrite` 会覆盖所有实例。
451
+ JSON 里写 `"mode": "readonly"` / `"mode": "readwrite"`;单实例环境变量用 `REDIS_MODE=readonly|readwrite`;`--mode readonly|readwrite` 会覆盖所有实例。优先级:`--mode` 高于 `REDIS_MODE` / 实例 `mode` 字段;完全未配置模式时为 `readonly`。
448
452
 
449
453
  `REDIS_MODE` 不能和 JSON 配置文件同时使用,请在每个实例里配置 `mode`(或用 `--mode` 覆盖所有实例)。
450
454
 
451
- 建议同时配置只读 Redis ACL 作为第二层防护——`readonly` 模式是便利措施,不能替代服务端 ACL。
455
+ 未配置模式时实例为只读;需要写入请显式设置 `mode: "readwrite"`(JSON)、`REDIS_MODE=readwrite`(环境变量)或 `--mode readwrite`。建议同时配置只读 Redis ACL 作为第二层防护——`readonly` 模式是便利措施,不能替代服务端 ACL。
452
456
 
453
457
  **迁移说明:** `readOnly`(JSON)、`REDIS_READONLY` 和 `--readonly` 已移除,请改用 `mode`、`REDIS_MODE` 和 `--mode`。
454
458
 
@@ -512,7 +516,7 @@ JSON 里写 `"mode": "readonly"` / `"mode": "readwrite"`;单实例环境变量
512
516
  - **抓取守卫覆盖范围**:已覆盖 `GET`/`MGET`/`GETDEL`/`GETEX`/`GETSET`、`GETRANGE`/`SUBSTR`、`HGET`、`DUMP`、`LRANGE`、`HGETALL`/`HKEYS`/`HVALS`、`SMEMBERS`、`SINTER`/`SUNION`/`SDIFF`、`ZRANGE`/`ZRANGEBY*`/`ZUNION`/`ZINTER`/`ZDIFF`、`XRANGE`/`XREVRANGE`、`HSCAN`/`SSCAN`/`ZSCAN` 的 `COUNT`、`SORT`/`SORT_RO`、`LCS`、`GEOSEARCH`/`GEORADIUS_RO`/`GEORADIUSBYMEMBER_RO`、随机成员和 pop count。它**不是穷尽式**的:`LINDEX`、`XPENDING`、`XINFO STREAM ... FULL`、`SET ... GET`、`LMPOP`/`ZMPOP` 未被守卫;只按 item 数检查的命令也不会限制单个字段/成员的字节大小。这些场景请配合受限 ACL、`commandTimeoutMs` 和尽可能小的命令使用。
513
517
  - **大读取**:`execute` 会拒绝常见的无界批量读取形式,`read_page` 提供真正的服务端分页。对于守卫未覆盖的特殊命令,Redis/ioredis 仍可能在 `truncateReply` 之前完整物化回复。大集合优先用 `key_info`、`read_page`、`scan_keys`,并配合 ACL / `commandTimeoutMs`。
514
518
  - **SCAN 一致性**:SCAN 是增量扫描,不是快照;结果可能遗漏或重复。
515
- - **连接缓存**:每个 `(instance, db)` 一条连接,默认每个实例最多 32 条。达到上限后是硬性错误,不会驱逐空闲连接;如果长期使用很多逻辑库,请提高 `maxConnections` 或重启进程。
519
+ - **连接缓存**:每个 `(instance, db)` 最多保留 `poolSize`(默认 4)条连接;每个实例的总量由 `maxConnections`(默认 32)硬性限制。空闲超过 `idleTimeoutMs`(默认 5 分钟)的连接会自动关闭;发生命令超时的连接会被立即丢弃并在下次请求时重建。如果长期使用很多逻辑库,请提高 `maxConnections`。
516
520
  - **集群 + ACL**:如果 ACL 拒绝 `INFO cluster`,显式 `SELECT` 验证仍会以清晰错误拒绝集群上的 db > 0;db 0 不需要 `SELECT`。
517
521
 
518
522
  ---
package/dist/config.d.ts CHANGED
@@ -1,4 +1,10 @@
1
1
  export type PermissionMode = 'readonly' | 'readwrite';
2
+ /**
3
+ * Permission mode used when neither the CLI (`--mode`), the environment
4
+ * (`REDIS_MODE`), nor the JSON instance `mode` field specifies one.
5
+ * Defaults to 'readonly' so unspecified instances cannot mutate data.
6
+ */
7
+ export declare const DEFAULT_MODE: PermissionMode;
2
8
  export declare const MAX_DB_INDEX = 255;
3
9
  export declare const MAX_INSTANCES = 64;
4
10
  export declare const DEFAULT_LIMITS: {
@@ -13,6 +19,10 @@ export declare const DEFAULT_LIMITS: {
13
19
  readonly maxScanIterations: 200;
14
20
  readonly scanTimeBudgetMs: 10000;
15
21
  readonly maxConnections: 32;
22
+ /** Idle connections are closed and evicted after this long without activity. 0 disables. */
23
+ readonly idleTimeoutMs: 300000;
24
+ /** Connections kept warm per (instance, db) before new requests queue behind busy ones. */
25
+ readonly poolSize: 4;
16
26
  };
17
27
  export interface InstanceConfig {
18
28
  /** Unique name used by the `instance` tool argument. */
@@ -25,6 +35,7 @@ export interface InstanceConfig {
25
35
  db: number;
26
36
  tls: boolean;
27
37
  tlsRejectUnauthorized: boolean;
38
+ /** Permission mode. Defaults to {@link DEFAULT_MODE} ('readonly') when omitted everywhere. */
28
39
  mode: PermissionMode;
29
40
  /** Allow EVAL/EVALSHA/FCALL. Disabled by default because Lua is arbitrary server-side code. */
30
41
  allowScripting: boolean;
@@ -44,6 +55,13 @@ export interface InstanceConfig {
44
55
  maxScanIterations: number;
45
56
  scanTimeBudgetMs: number;
46
57
  maxConnections: number;
58
+ /**
59
+ * Close a cached (instance, db) connection after this many milliseconds
60
+ * without any command. 0 keeps connections until the process exits.
61
+ */
62
+ idleTimeoutMs: number;
63
+ /** Connections pooled per (instance, db); extra concurrent calls queue on busy ones. */
64
+ poolSize: number;
47
65
  }
48
66
  export interface AppConfig {
49
67
  instances: InstanceConfig[];
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtD,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,qBAAqB,EAAE,OAAO,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AA+BD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAyD5D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAsBhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAiB5F;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,CAoC/G"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG,UAAU,GAAG,WAAW,CAAC;AAEtD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,cAA2B,CAAC;AAEvD,eAAO,MAAM,YAAY,MAAM,CAAC;AAChC,eAAO,MAAM,aAAa,KAAK,CAAC;AAEhC,eAAO,MAAM,cAAc;;;;;;;;;;;;IAYzB,4FAA4F;;IAE5F,2FAA2F;;CAEnF,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,wDAAwD;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,OAAO,CAAC;IACb,qBAAqB,EAAE,OAAO,CAAC;IAC/B,8FAA8F;IAC9F,IAAI,EAAE,cAAc,CAAC;IACrB,+FAA+F;IAC/F,cAAc,EAAE,OAAO,CAAC;IACxB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,kDAAkD;IAClD,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,aAAa,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,EAAE,cAAc,EAAE,CAAC;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,UAAU,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAiCD,wBAAgB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAyD5D;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,CAsBhE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAiB5F;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,GAAE,MAAM,CAAC,UAAwB,GAAG,SAAS,CAoC/G"}
package/dist/config.js CHANGED
@@ -2,6 +2,12 @@ import { readFileSync } from 'node:fs';
2
2
  import { homedir } from 'node:os';
3
3
  import { resolve } from 'node:path';
4
4
  import { ConfigError, errorMessage } from './errors.js';
5
+ /**
6
+ * Permission mode used when neither the CLI (`--mode`), the environment
7
+ * (`REDIS_MODE`), nor the JSON instance `mode` field specifies one.
8
+ * Defaults to 'readonly' so unspecified instances cannot mutate data.
9
+ */
10
+ export const DEFAULT_MODE = 'readonly';
5
11
  export const MAX_DB_INDEX = 255;
6
12
  export const MAX_INSTANCES = 64;
7
13
  export const DEFAULT_LIMITS = {
@@ -16,6 +22,10 @@ export const DEFAULT_LIMITS = {
16
22
  maxScanIterations: 200,
17
23
  scanTimeBudgetMs: 10_000,
18
24
  maxConnections: 32,
25
+ /** Idle connections are closed and evicted after this long without activity. 0 disables. */
26
+ idleTimeoutMs: 300_000,
27
+ /** Connections kept warm per (instance, db) before new requests queue behind busy ones. */
28
+ poolSize: 4,
19
29
  };
20
30
  const INSTANCE_KEYS = new Set([
21
31
  'name',
@@ -42,6 +52,8 @@ const INSTANCE_KEYS = new Set([
42
52
  'maxScanIterations',
43
53
  'scanTimeBudgetMs',
44
54
  'maxConnections',
55
+ 'idleTimeoutMs',
56
+ 'poolSize',
45
57
  ]);
46
58
  const TOP_LEVEL_KEYS = new Set(['instances', 'defaultInstance', '$schema']);
47
59
  export function parseCli(argv) {
@@ -175,7 +187,7 @@ function assertSingleInstanceEnvNotCombinedWithJsonConfig(env, source) {
175
187
  const hasMode = env.REDIS_MODE !== undefined && env.REDIS_MODE.trim() !== '';
176
188
  if (hasHost || hasPort || hasMode) {
177
189
  throw new ConfigError(`REDIS_HOST/REDIS_PORT/REDIS_MODE cannot be combined with a JSON config file (${source}); ` +
178
- 'define host/port/mode per instance in the JSON config instead.');
190
+ 'define host/port and mode per instance in the JSON config instead (mode defaults to readonly).');
179
191
  }
180
192
  }
181
193
  function buildSingleInstance(cli, env) {
@@ -191,10 +203,8 @@ function buildSingleInstance(cli, env) {
191
203
  }
192
204
  const envMode = envString(env, 'REDIS_MODE');
193
205
  const mode = cli.mode ??
194
- (envMode === undefined ? undefined : parsePermissionMode(envMode, 'REDIS_MODE'));
195
- if (mode === undefined) {
196
- throw new ConfigError('REDIS_MODE is required when not using a JSON config file ("readonly" or "readwrite").');
197
- }
206
+ (envMode === undefined ? undefined : parsePermissionMode(envMode, 'REDIS_MODE')) ??
207
+ DEFAULT_MODE;
198
208
  const username = envRawString(env, 'REDIS_USERNAME');
199
209
  const password = envRawString(env, 'REDIS_PASSWORD');
200
210
  const db = cli.db ?? envInt(env, 'REDIS_DB', 0, MAX_DB_INDEX) ?? 0;
@@ -226,6 +236,8 @@ function buildSingleInstance(cli, env) {
226
236
  maxScanIterations: envInt(env, 'REDIS_MAX_SCAN_ITERATIONS', 1, 10_000) ?? DEFAULT_LIMITS.maxScanIterations,
227
237
  scanTimeBudgetMs: envInt(env, 'REDIS_SCAN_TIME_BUDGET_MS', 100, 300_000) ?? DEFAULT_LIMITS.scanTimeBudgetMs,
228
238
  maxConnections: envInt(env, 'REDIS_MAX_CONNECTIONS', 1, 256) ?? DEFAULT_LIMITS.maxConnections,
239
+ idleTimeoutMs: envInt(env, 'REDIS_IDLE_TIMEOUT_MS', 0, 86_400_000) ?? DEFAULT_LIMITS.idleTimeoutMs,
240
+ poolSize: envInt(env, 'REDIS_POOL_SIZE', 1, 16) ?? DEFAULT_LIMITS.poolSize,
229
241
  };
230
242
  return { instances: [instance], defaultInstance: instance.name };
231
243
  }
@@ -245,7 +257,7 @@ function parseInstance(raw, context, env) {
245
257
  if (port === undefined) {
246
258
  throw new ConfigError(`${context}.port is required.`);
247
259
  }
248
- const mode = readPermissionMode(object, 'mode', context);
260
+ const mode = readOptionalPermissionMode(object, 'mode', context) ?? DEFAULT_MODE;
249
261
  const db = readOptionalInt(object, 'db', context, 0, MAX_DB_INDEX) ?? 0;
250
262
  const username = resolveSecret(object, 'username', 'usernameEnv', context, env);
251
263
  const password = resolveSecret(object, 'password', 'passwordEnv', context, env);
@@ -287,6 +299,8 @@ function parseInstance(raw, context, env) {
287
299
  scanTimeBudgetMs: readOptionalInt(object, 'scanTimeBudgetMs', context, 100, 300_000) ??
288
300
  DEFAULT_LIMITS.scanTimeBudgetMs,
289
301
  maxConnections: readOptionalInt(object, 'maxConnections', context, 1, 256) ?? DEFAULT_LIMITS.maxConnections,
302
+ idleTimeoutMs: readOptionalInt(object, 'idleTimeoutMs', context, 0, 86_400_000) ?? DEFAULT_LIMITS.idleTimeoutMs,
303
+ poolSize: readOptionalInt(object, 'poolSize', context, 1, 16) ?? DEFAULT_LIMITS.poolSize,
290
304
  };
291
305
  }
292
306
  function applyCliFlags(config, cli) {
@@ -386,10 +400,10 @@ function resolveConfigPath(path, cwd) {
386
400
  }
387
401
  return resolve(cwd, path);
388
402
  }
389
- function readPermissionMode(object, key, context) {
403
+ function readOptionalPermissionMode(object, key, context) {
390
404
  const value = readOptionalString(object, key, context);
391
405
  if (value === undefined) {
392
- throw new ConfigError(`${context}.${key} is required ("readonly" or "readwrite").`);
406
+ return undefined;
393
407
  }
394
408
  return parsePermissionMode(value, `${context}.${key}`);
395
409
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fetch-guard.d.ts","sourceRoot":"","sources":["../src/fetch-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQtD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAyGf"}
1
+ {"version":3,"file":"fetch-guard.d.ts","sourceRoot":"","sources":["../src/fetch-guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAStD;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,WAAW,EACnB,IAAI,EAAE,WAAW,EACjB,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,IAAI,CAAC,CAuIf"}