@push.rocks/smartproxy 25.7.4 → 25.7.7

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/changelog.md CHANGED
@@ -1,5 +1,32 @@
1
1
  # Changelog
2
2
 
3
+ ## 2026-02-19 - 25.7.7 - fix(proxy)
4
+ restrict PROXY protocol parsing to configured trusted proxy IPs and parse PROXY headers before metrics/fast-path so client IPs reflect the real source
5
+
6
+ - Add proxy_ips: Vec<std::net::IpAddr> to ConnectionConfig with a default empty Vec
7
+ - Populate proxy_ips from options.proxy_ips strings in rust/crates/rustproxy/src/lib.rs, parsing each to IpAddr
8
+ - Only peek for and parse PROXY v1 headers when the remote IP is contained in proxy_ips (prevents untrusted clients from injecting PROXY headers)
9
+ - Move PROXY protocol parsing earlier so metrics and fast-path logic use the effective (real client) IP after PROXY parsing
10
+ - If proxy_ips is empty, behavior remains unchanged (no PROXY parsing)
11
+
12
+ ## 2026-02-19 - 25.7.6 - fix(throughput)
13
+ add tests for per-IP connection tracking and throughput history; assert per-IP eviction after connection close to prevent memory leak
14
+
15
+ - Adds runtime assertions for per-IP TCP connection tracking (m.connections.byIP) while a connection is active
16
+ - Adds checks for throughput history (m.throughput.history) to ensure history length and timestamps are recorded
17
+ - Asserts that per-IP tracking data is evicted after connection close (byIP.size === 0) to verify memory leak fix
18
+ - Reorders test checks so per-IP and history metrics are validated during the active connection and totals are validated after close
19
+
20
+ ## 2026-02-19 - 25.7.5 - fix(rustproxy)
21
+ prune stale per-route metrics, add per-route rate limiter caching and regex cache, and improve connection tracking cleanup to prevent memory growth
22
+
23
+ - Prune per-route metrics for routes removed from configuration via MetricsCollector::retain_routes invoked during route table updates
24
+ - Introduce per-route shared RateLimiter instances (DashMap) with a request-count-triggered periodic cleanup to avoid stale limiters
25
+ - Cache compiled URL-rewrite regexes (regex_cache) to avoid recompiling patterns on every request and insert compiled regex on first use
26
+ - Improve upstream connection tracking to remove zero-count entries and guard against underflow, preventing unbounded DashMap growth
27
+ - Evict per-IP metrics and timestamps when the last connection for an IP closes so per-IP DashMap entries are fully freed
28
+ - Add unit tests validating connection tracking cleanup, per-IP eviction, and route-metrics retention behavior
29
+
3
30
  ## 2026-02-19 - 25.7.4 - fix(smart-proxy)
4
31
  include proxy IPs in smart proxy configuration
5
32
 
Binary file
Binary file
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartproxy',
6
- version: '25.7.4',
6
+ version: '25.7.7',
7
7
  description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSx3QkFBd0I7SUFDOUIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHFQQUFxUDtDQUNuUSxDQUFBIn0=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@push.rocks/smartproxy",
3
- "version": "25.7.4",
3
+ "version": "25.7.7",
4
4
  "private": false,
5
5
  "description": "A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.",
6
6
  "main": "dist_ts/index.js",
@@ -3,6 +3,6 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartproxy',
6
- version: '25.7.4',
6
+ version: '25.7.7',
7
7
  description: 'A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.'
8
8
  }