Commit graph

25 commits

Author SHA1 Message Date
Alexandr Stelnykovych
ee8cde31f6 feat: Add Split Tunnel feature (Windows PoC)
Implement initial proof-of-concept for split tunnel functionality on Windows,
allowing applications to route traffic through a designated network interface
while bypassing default system routing.

Features:
- Split tunnel module with TCP/UDP proxy infrastructure
- Firewall integration with split tunnel verdict handling
- SplitTunneling context attached to connections
- Configuration options: enable toggle, interface selection, and policy rules
- UI display of split tunnel connection details in connection info panel
- Subsystem configuration for user-level access

Windows-specific implementation:
- Uses proxy-based interface routing on Windows
- Automatic or manual interface detection and binding
- Support for IPv4 and IPv6 traffic

Note: Linux implementation is under development. SPN takes precedence over
split tunnel when both are enabled, ensuring SPN connections bypass this feature.
2026-04-24 18:04:01 +03:00
Alexandr Stelnykovych
933323d5f9 feat: add VerdictRerouteToSplitTun verdict type
Add a new verdict (value 8) for routing connections through the split
tunnel. This prepares the infrastructure for the upcoming split-tunneling
feature without implementing the full feature yet.

Changes:
- Define VerdictRerouteToSplitTun in network/status.go with String() and Verb()
- Add RerouteToSplitTun() to the Packet interface and InfoPacket stub
- Implement RerouteToSplitTun() for windowskext (v1) and windowskext2 (v2) packets
- Map VerdictRerouteToSplitTun to KextVerdict 11 in kextinterface and kext2
- Handle the verdict in packet_handler.go dispatch, connection.go, api.go,
  metrics.go and nameserver.go
- Add VerdictRerouteToSplitTun = 8 to Angular Verdict enum and update
  stats counting, filter queries and verdict CSS class

(WIP) Note: Linux (nfq) implementation not updated yet. Therefore Linux build will fail.
2026-04-17 20:48:48 +03:00
Alexandr Stelnykovych
1465fe49af feat(UI/notifications): add "in-app-only" action visibility
Actions with visibility "in-app-only" are shown in the UI but skipped
when displaying system-level notifications (Tauri/OS). Updates Go,
TypeScript/Angular and Rust projects accordingly.
2026-03-10 00:12:02 +02:00
Alexandr Stelnykovych
e395dafa14 feat(UI/notifications): add ActionVisibility for conditional action display
Add a `Visibility` field to the `Action` struct allowing actions to be
hidden in the compact notification view and only shown when the user
expands the full notification (value: "detailed").

- base/notifications: add `ActionVisibility` type and `ActionVisibilityDetailed`
  constant to `Action` struct
- notifications.types.ts: expose `Visibility` field on the frontend `BaseAction`
  interface
- notification-list.component.html: filter out `detailed` actions in the
  compact list view
- generic-setting.ts: set default `Visibility: ''` on the inline UI action
2026-03-09 18:12:42 +02:00
Alexandr Stelnykovych
fecb42a691 UI: update SPN pause menu items and add spnEnabled state management
https://github.com/safing/portmaster/issues/2050
2025-11-06 18:42:24 +02:00
Alexandr Stelnykovych
7709a6600c feat: pause and resume functionality improvements + UI
https://github.com/safing/portmaster/issues/2050
2025-11-05 18:36:52 +02:00
Alexandr Stelnykovych
8190e66524
Merge pull request #2040 from safing/feature/2039-UI-auto-reload-connections
Feature: UI auto reload connections
2025-10-18 00:04:44 +03:00
Alexandr Stelnykovych
1ebac535af minor refactoring 2025-10-18 00:01:01 +03:00
Alexandr Stelnykovych
a8e84d6d28 refactor(UI): remove unnecessary reload intervals from settings 2025-10-17 22:01:24 +03:00
Alexandr Stelnykovych
2dc2193587 feat: add manual trigger for lastReloadTicker updates
Add Subject-based manual trigger to immediately update "Last reload X ago" display when search completes, instead of waiting up to 2 seconds for next interval tick.
2025-10-15 17:43:02 +03:00
Alexandr Stelnykovych
ae2e1e5659 fix: UI bug: when loading grouped connections from 'future'
STR:

1. Network Activity View
2. Set "Search History" From/To dates in the future
3. Set "Group By" Domain
Observed Result:
- Infinite “Loading connections…” status.
- The UI remains unresponsive to any changes in connection filters or reload actions.

https://github.com/safing/portmaster/issues/2041
2025-10-15 17:17:47 +03:00
Alexandr Stelnykovych
54fe389c9d UI: skip auto-reload for historical data queries
https://github.com/safing/portmaster/issues/2039
2025-10-15 16:13:55 +03:00
Alexandr Stelnykovych
153768fb21 UI: Automatic reloading of the connections list
https://github.com/safing/portmaster/issues/2039
2025-10-15 15:23:11 +03:00
Daniel
706ce222d0 WIP 2024-11-27 16:16:15 +01:00
Daniel Hååvi
80664d1a27
Restructure modules (#1572)
* Move portbase into monorepo

* Add new simple module mgr

* [WIP] Switch to new simple module mgr

* Add StateMgr and more worker variants

* [WIP] Switch more modules

* [WIP] Switch more modules

* [WIP] swtich more modules

* [WIP] switch all SPN modules

* [WIP] switch all service modules

* [WIP] Convert all workers to the new module system

* [WIP] add new task system to module manager

* [WIP] Add second take for scheduling workers

* [WIP] Add FIXME for bugs in new scheduler

* [WIP] Add minor improvements to scheduler

* [WIP] Add new worker scheduler

* [WIP] Fix more bug related to new module system

* [WIP] Fix start handing of the new module system

* [WIP] Improve startup process

* [WIP] Fix minor issues

* [WIP] Fix missing subsystem in settings

* [WIP] Initialize managers in constructor

* [WIP] Move module event initialization to constrictors

* [WIP] Fix setting for enabling and disabling the SPN module

* [WIP] Move API registeration into module construction

* [WIP] Update states mgr for all modules

* [WIP] Add CmdLine operation support

* Add state helper methods to module group and instance

* Add notification and module status handling to status package

* Fix starting issues

* Remove pilot widget and update security lock to new status data

* Remove debug logs

* Improve http server shutdown

* Add workaround for cleanly shutting down firewall+netquery

* Improve logging

* Add syncing states with notifications for new module system

* Improve starting, stopping, shutdown; resolve FIXMEs/TODOs

* [WIP] Fix most unit tests

* Review new module system and fix minor issues

* Push shutdown and restart events again via API

* Set sleep mode via interface

* Update example/template module

* [WIP] Fix spn/cabin unit test

* Remove deprecated UI elements

* Make log output more similar for the logging transition phase

* Switch spn hub and observer cmds to new module system

* Fix log sources

* Make worker mgr less error prone

* Fix tests and minor issues

* Fix observation hub

* Improve shutdown and restart handling

* Split up big connection.go source file

* Move varint and dsd packages to structures repo

* Improve expansion test

* Fix linter warnings

* Fix interception module on windows

* Fix linter errors

---------

Co-authored-by: Vladimir Stoilov <vladimir@safing.io>
2024-08-09 18:15:48 +03:00
Daniel
401e09b963 [desktop/angular] Improve country display in connection details 2024-05-28 16:32:55 +02:00
Daniel
dc1b9f98f2 Add support for showing anycast addresses in the UI 2024-05-28 15:56:48 +02:00
Daniel
4858d182fa Fix app icon component re-use 2024-04-23 10:11:39 +02:00
Daniel
0c61f2c35e Fix some typescript linter errors 2024-04-18 14:24:43 +02:00
Daniel
2d45a1c712 Fix UI performance issue on Windows 2024-04-18 13:51:05 +02:00
Daniel
e957b90b13 Ignore default Windows icons in UI better 2024-04-18 13:50:47 +02:00
Patrick Pacher
a148eb57a9
Fix access on undefined object in line-chart 2024-03-29 09:37:01 +01:00
Patrick Pacher
3e2b9a9c29
Add remote_ip to full-text search and fix focus in netquery component 2024-03-29 09:36:26 +01:00
Patrick Pacher
6daea521c3
Fix netquery textql parser when dealing with IP addresses 2024-03-29 09:35:18 +01:00
Patrick Pacher
4b77945517
Migrate Angular UI from portmaster-ui to desktop/angular. Update Earthfile to build libs, UI and tauri-builtin 2024-03-20 10:43:29 +01:00