@solongate/proxy 0.82.93 → 0.82.95

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.
@@ -1233,8 +1233,15 @@ async function collectChecks() {
1233
1233
  checks.push({ name: "active policy", ok: "warn", detail: "no policy resolves - every call falls back to default" });
1234
1234
  }
1235
1235
  const sec = active2.security;
1236
- checks.push({ name: "rate limit", ok: sec?.rateLimit ? true : "warn", detail: sec?.rateLimit ? `${sec.rateLimit.perMinute}/min` : "off" });
1237
- checks.push({ name: "dlp", ok: sec?.dlpBlock ? true : "warn", detail: sec?.dlpBlock ? `block \xB7 ${sec.dlpBlock.patterns.length} patterns` : sec?.dlpRedact ? "redact" : "off" });
1236
+ const rlBlock = sec?.rateLimit;
1237
+ const rlObserve = sec?.rateLimitObserve;
1238
+ const rlWindows = (l) => [l.perMinute ? `${l.perMinute}/min` : "", l.perHour ? `${l.perHour}/hr` : "", l.perDay ? `${l.perDay}/day` : ""].filter(Boolean).join(" \xB7 ") || "no window set";
1239
+ checks.push(
1240
+ rlBlock ? { name: "rate limit", ok: true, detail: `block \xB7 ${rlWindows(rlBlock)}` } : rlObserve ? { name: "rate limit", ok: true, detail: `detect \xB7 ${rlWindows(rlObserve)} \xB7 flags bursts, never blocks` } : { name: "rate limit", ok: "warn", detail: "off" }
1241
+ );
1242
+ checks.push(
1243
+ sec?.dlpBlock ? { name: "dlp", ok: true, detail: `block \xB7 ${sec.dlpBlock.patterns.length} patterns` } : sec?.dlpRedact ? { name: "dlp", ok: true, detail: `detect \xB7 ${sec.dlpRedact.patterns.length} patterns \xB7 masks secrets, never blocks` } : { name: "dlp", ok: "warn", detail: "off" }
1244
+ );
1238
1245
  checks.push({ name: "self-protection", ok: active2.self_protection_enabled ? true : "warn", detail: active2.self_protection_enabled ? "on" : "off" });
1239
1246
  } catch (e) {
1240
1247
  checks.push({ name: "api", ok: false, detail: "unreachable: " + (e instanceof Error ? e.message : String(e)) });
package/dist/index.js CHANGED
@@ -11320,8 +11320,15 @@ async function collectChecks() {
11320
11320
  checks.push({ name: "active policy", ok: "warn", detail: "no policy resolves - every call falls back to default" });
11321
11321
  }
11322
11322
  const sec = active2.security;
11323
- checks.push({ name: "rate limit", ok: sec?.rateLimit ? true : "warn", detail: sec?.rateLimit ? `${sec.rateLimit.perMinute}/min` : "off" });
11324
- checks.push({ name: "dlp", ok: sec?.dlpBlock ? true : "warn", detail: sec?.dlpBlock ? `block \xB7 ${sec.dlpBlock.patterns.length} patterns` : sec?.dlpRedact ? "redact" : "off" });
11323
+ const rlBlock = sec?.rateLimit;
11324
+ const rlObserve = sec?.rateLimitObserve;
11325
+ const rlWindows = (l) => [l.perMinute ? `${l.perMinute}/min` : "", l.perHour ? `${l.perHour}/hr` : "", l.perDay ? `${l.perDay}/day` : ""].filter(Boolean).join(" \xB7 ") || "no window set";
11326
+ checks.push(
11327
+ rlBlock ? { name: "rate limit", ok: true, detail: `block \xB7 ${rlWindows(rlBlock)}` } : rlObserve ? { name: "rate limit", ok: true, detail: `detect \xB7 ${rlWindows(rlObserve)} \xB7 flags bursts, never blocks` } : { name: "rate limit", ok: "warn", detail: "off" }
11328
+ );
11329
+ checks.push(
11330
+ sec?.dlpBlock ? { name: "dlp", ok: true, detail: `block \xB7 ${sec.dlpBlock.patterns.length} patterns` } : sec?.dlpRedact ? { name: "dlp", ok: true, detail: `detect \xB7 ${sec.dlpRedact.patterns.length} patterns \xB7 masks secrets, never blocks` } : { name: "dlp", ok: "warn", detail: "off" }
11331
+ );
11325
11332
  checks.push({ name: "self-protection", ok: active2.self_protection_enabled ? true : "warn", detail: active2.self_protection_enabled ? "on" : "off" });
11326
11333
  } catch (e) {
11327
11334
  checks.push({ name: "api", ok: false, detail: "unreachable: " + (e instanceof Error ? e.message : String(e)) });
package/dist/tui/index.js CHANGED
@@ -4349,8 +4349,15 @@ async function collectChecks() {
4349
4349
  checks.push({ name: "active policy", ok: "warn", detail: "no policy resolves - every call falls back to default" });
4350
4350
  }
4351
4351
  const sec = active2.security;
4352
- checks.push({ name: "rate limit", ok: sec?.rateLimit ? true : "warn", detail: sec?.rateLimit ? `${sec.rateLimit.perMinute}/min` : "off" });
4353
- checks.push({ name: "dlp", ok: sec?.dlpBlock ? true : "warn", detail: sec?.dlpBlock ? `block \xB7 ${sec.dlpBlock.patterns.length} patterns` : sec?.dlpRedact ? "redact" : "off" });
4352
+ const rlBlock = sec?.rateLimit;
4353
+ const rlObserve = sec?.rateLimitObserve;
4354
+ const rlWindows = (l) => [l.perMinute ? `${l.perMinute}/min` : "", l.perHour ? `${l.perHour}/hr` : "", l.perDay ? `${l.perDay}/day` : ""].filter(Boolean).join(" \xB7 ") || "no window set";
4355
+ checks.push(
4356
+ rlBlock ? { name: "rate limit", ok: true, detail: `block \xB7 ${rlWindows(rlBlock)}` } : rlObserve ? { name: "rate limit", ok: true, detail: `detect \xB7 ${rlWindows(rlObserve)} \xB7 flags bursts, never blocks` } : { name: "rate limit", ok: "warn", detail: "off" }
4357
+ );
4358
+ checks.push(
4359
+ sec?.dlpBlock ? { name: "dlp", ok: true, detail: `block \xB7 ${sec.dlpBlock.patterns.length} patterns` } : sec?.dlpRedact ? { name: "dlp", ok: true, detail: `detect \xB7 ${sec.dlpRedact.patterns.length} patterns \xB7 masks secrets, never blocks` } : { name: "dlp", ok: "warn", detail: "off" }
4360
+ );
4354
4361
  checks.push({ name: "self-protection", ok: active2.self_protection_enabled ? true : "warn", detail: active2.self_protection_enabled ? "on" : "off" });
4355
4362
  } catch (e) {
4356
4363
  checks.push({ name: "api", ok: false, detail: "unreachable: " + (e instanceof Error ? e.message : String(e)) });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@solongate/proxy",
3
- "version": "0.82.93",
3
+ "version": "0.82.95",
4
4
  "description": "AI tool security proxy: protect any AI tool server with customizable policies, path/command constraints, rate limiting, and audit logging. No code changes required.",
5
5
  "type": "module",
6
6
  "bin": {