Commit Graph

46 Commits

Author SHA1 Message Date
jkunz a6ffa24e36 feat(nftables): move NFTables forwarding management from the Rust engine to @push.rocks/smartnftables 2026-03-26 13:11:57 +00:00
jkunz a3d8a3a388 fix(rustproxy-http): improve HTTP/3 connection reuse and clean up stale proxy state 2026-03-26 07:05:57 +00:00
jkunz e890bda8fc feat(udp,http3): add UDP datagram handler relay support and stream HTTP/3 request bodies to backends 2026-03-19 16:09:51 +00:00
jkunz 4fb91cd868 feat(smart-proxy): add UDP transport support with QUIC/HTTP3 routing and datagram handler relay 2026-03-19 15:06:27 +00:00
jkunz cd7f3f7f75 fix(proxy): adjust default proxy timeouts and keep-alive behavior to shorter, more consistent values 2026-02-26 17:32:35 +00:00
jkunz 5ac44b898b fix(smart-proxy): include proxy IPs in smart proxy configuration 2026-02-19 08:07:34 +00:00
jkunz 7b3545d1b5 feat(smart-proxy): add background concurrent certificate provisioning with per-domain timeouts and concurrency control 2026-02-14 14:02:25 +00:00
jkunz 487a603fa3 fix(smart-proxy): start metrics polling before certificate provisioning to avoid blocking metrics collection 2026-02-14 12:42:20 +00:00
jkunz 1f95d2b6c4 feat(metrics): add real-time throughput sampling and byte-counting metrics 2026-02-13 23:18:22 +00:00
jkunz 7afa4c4c58 BREAKING CHANGE(certs): accept a second eventComms argument in certProvisionFunction, add cert provisioning event types, and emit certificate lifecycle events 2026-02-13 21:24:16 +00:00
jkunz 0e058594c9 BREAKING CHANGE(smart-proxy): move certificate persistence to an in-memory store and introduce consumer-managed certStore API; add default self-signed fallback cert and change ACME account handling 2026-02-13 16:32:02 +00:00
jkunz efe3d80713 fix(smart-proxy): disable built-in Rust ACME when a certProvisionFunction is provided and improve certificate provisioning flow 2026-02-13 13:08:30 +00:00
jkunz e774ec87ca fix(smart-proxy): provision certificates for wildcard domains instead of skipping them 2026-02-13 12:02:47 +00:00
jkunz 3b7e6a6ed7 feat(rust-bridge): integrate tsrust to build and locate cross-compiled Rust binaries; refactor rust-proxy bridge to use typed IPC and streamline process handling; add @push.rocks/smartrust and update build/dev dependencies 2026-02-10 09:43:40 +00:00
jkunz f7605e042e feat(smart-proxy): add socket-handler relay, fast-path port-only forwarding, metrics and bridge improvements, and various TS/Rust integration fixes 2026-02-09 16:25:33 +00:00
jkunz 1df3b7af4a feat(rustproxy): introduce a Rust-powered proxy engine and workspace with core crates for proxy functionality, ACME/TLS support, passthrough and HTTP proxies, metrics, nftables integration, routing/security, management IPC, tests, and README updates 2026-02-09 10:55:46 +00:00
jkunz be3ac75422 fix some tests and prepare next step of evolution 2025-12-09 09:19:13 +00:00
jkunz 5fbcf81c2c fix(security): critical security and stability fixes
Default (tags) / security (push) Successful in 1m2s
Default (tags) / test (push) Failing after 46m14s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2025-08-14 14:30:54 +00:00
jkunz 257a5dc319 update 2025-07-13 00:05:32 +00:00
jkunz 5d011ba84c better logging 2025-07-03 02:32:17 +00:00
jkunz e5ec48abd3 fix(tests): fix tests 2025-06-22 23:10:56 +00:00
jkunz 131a454b28 fix(metrics): improve metrics 2025-06-22 22:28:37 +00:00
jkunz 9bf15ff756 feat(metrics): add comprehensive metrics collection system
Implement real-time stats tracking including connection counts, request metrics, bandwidth usage, and route-specific monitoring. Adds MetricsCollector with observable streams for reactive monitoring integration.
2025-06-09 15:08:37 +00:00
jkunz 2a75e7c490 Refactor routing and proxy components for improved structure and compatibility
- Removed deprecated route utility functions in favor of direct matcher usage.
- Updated imports to reflect new module structure for routing utilities.
- Consolidated route manager functionality into SharedRouteManager for better consistency.
- Eliminated legacy routing methods and interfaces, streamlining the HttpProxy and associated components.
- Enhanced WebSocket and HTTP request handling to utilize the new unified HttpRouter.
- Updated route matching logic to leverage matcher classes for domain, path, and header checks.
- Cleaned up legacy compatibility code across various modules, ensuring a more maintainable codebase.
2025-06-03 16:21:09 +00:00
philkunz 54ffbadb86 feat(routing): Implement unified routing and matching system
- Introduced a centralized routing module with comprehensive matchers for domains, headers, IPs, and paths.
- Added DomainMatcher for domain pattern matching with support for wildcards and specificity calculation.
- Implemented HeaderMatcher for HTTP header matching, including exact matches and pattern support.
- Developed IpMatcher for IP address matching, supporting CIDR notation, ranges, and wildcards.
- Created PathMatcher for path matching with parameter extraction and wildcard support.
- Established RouteSpecificity class to calculate and compare route specificity scores.
- Enhanced HttpRouter to utilize the new matching system, supporting both modern and legacy route configurations.
- Added detailed logging and error handling for routing operations.
2025-06-02 03:57:52 +00:00
philkunz 6512551f02 update 2025-05-20 16:01:32 +00:00
philkunz 4f3359b348 update 2025-05-20 15:44:48 +00:00
philkunz 669cc2809c fix(port-manager, certificate-manager): Improve port binding and ACME challenge route integration in SmartProxy 2025-05-20 15:32:19 +00:00
philkunz c9abdea556 fix(logger): Replace raw console logging calls with structured logger usage across certificate management, connection handling, and route processing for improved observability. 2025-05-19 23:37:11 +00:00
philkunz 91018173b0 fix(certificate-manager, smart-proxy): Fix race condition in ACME certificate provisioning and refactor certificate manager initialization to defer provisioning until after port listeners are active 2025-05-19 22:07:08 +00:00
philkunz 465148d553 fix(strcuture): refactor responsibilities 2025-05-19 17:28:05 +00:00
philkunz 3fcdce611c fix(acme): Fix port 80 ACME management and challenge route concurrency issues by deduplicating port listeners, preserving challenge route state across certificate manager recreations, and adding mutex locks to route updates. 2025-05-19 03:40:58 +00:00
philkunz 8fd861c9a3 fix(certificate-management): Fix loss of route update callback during dynamic route updates in certificate manager 2025-05-18 23:07:31 +00:00
philkunz 68738137a0 feat(acme): Improve certificate management by adding global ACME configuration support and allowing route-level overrides. Enhanced error messages help identify missing ACME email and misconfigurations (e.g. wildcard domains). Documentation has been updated and new tests added to verify SmartCertManager behavior, ensuring a clearer migration path from legacy implementations. 2025-05-18 18:29:59 +00:00
philkunz 455b08b36c BREAKING CHANGE(certificates): Remove legacy certificate modules and Port80Handler; update documentation and route configurations to use SmartCertManager for certificate management. 2025-05-18 16:30:23 +00:00
philkunz 01b4a79e1a fix(certificates): simplify approach 2025-05-18 15:38:07 +00:00
philkunz a2e3e38025 feat(nftables):add nftables support for nftables 2025-05-15 14:35:01 +00:00
philkunz ac3a888453 BREAKING CHANGE(smartproxy): Remove legacy migration utilities and deprecated forwarding helpers; consolidate route utilities, streamline interface definitions, and normalize IPv6-mapped IPv4 addresses 2025-05-15 08:56:27 +00:00
philkunz fcc8cf9caa fix(routing): unify route based architecture 2025-05-13 12:48:41 +00:00
philkunz ffc8b22533 update 2025-05-10 13:59:34 +00:00
philkunz b4a0e4be6b feat(smartproxy): Update documentation and route helper functions; add createPortRange, createSecurityConfig, createStaticFileRoute, and createTestRoute helpers to the readme and tests. Refactor test examples to use the new helper API and remove legacy connection handling files (including the old connection handler and PortRangeManager) to fully embrace the unified route‐based configuration. 2025-05-10 07:34:35 +00:00
philkunz 529857220d fix 2025-05-10 00:49:39 +00:00
philkunz 200635e4bd fix 2025-05-10 00:26:03 +00:00
philkunz 28022ebe87 change to route based approach 2025-05-10 00:01:02 +00:00
philkunz f8647516b5 fix(typescript): Refactor types and interfaces to use consistent I prefix and update related tests 2025-05-09 22:46:53 +00:00
philkunz b214e58a26 update 2025-05-09 21:21:28 +00:00