* refactor: move business logic from servers model
* refactor: move containersModel initialization
* refactor: added protocol ui controller and removed settings class from protocols model
* refactor: moved cli management to separate controller
* refactor: moved app split to separate controller
* refactor: moved site split to separate controller
* refactor: moved allowed dns to separate controller
* refactor: moved language logic to separate ui controller
* refactor: removed Settings from devices model
* refactor: moved configs and services api logit to separate core controller
* refactor: added a layer with a repository between the storage and controllers
* refactor: use child parent system instead of smart pointers for controllers and models initialization
* refactor: moved install functions from server controller to install controller
* refactor: install controller refactoring
* chore: renamed exportController to exportUiController
* refactor: separate export controller
* refactor: removed VpnConfigurationsController
* chore: renamed ServerController to SshSession
* refactor: replaced ServerController to SshSession
* chore: moved qml controllers to separate folder
* chore: include fixes
* chore: moved utils from core root to core/utils
* chore: include fixes
* chore: rename core/utils files to camelCase foramt
* chore: include fixes
* chore: moved some utils to api and selfhosted folders
* chore: include fixes
* chore: remove unused file
* chore: moved serialization folder to core/utils
* chore: include fixes
* chore: moved some files from client root to core/utils
* chore: include fixes
* chore: moved ui utils to ui/utils folder
* chore: include fixes
* chore: move utils from root to ui/utils
* chore: include fixes
* chore: moved configurators to core/configurators
* chore: include fixes
* refactor: moved iap logic from ui controller to core
* refactor: moved remaining core logic from ApiConfigsController to SubscriptionController
* chore: rename apiNewsController to apiNewsUiController
* refactor: moved core logic from news ui controller to core
* chore: renamed apiConfigsController to subscriptionUiController
* chore: include fixes
* refactor: merge ApiSettingsController with SubscriptionUiController
* chore: moved ui selfhosted controllers to separate folder
* chore: include fixes
* chore: rename connectionController to connectiomUiController
* refactor: moved core logic from connectionUiController
* chore: rename settingsController to settingsUiController
* refactor: move core logic from settingsUiController
* refactor: moved core controller signal/slot connections to separate class
* fix: newsController fixes after refactoring
* chore: rename model to camelCase
* chore: include fixes
* chore: remove unused code
* chore: move selfhosted core to separate folder
* chore: include fixes
* chore: rename importController to importUiController
* refactor: move core logic from importUiController
* chore: minor fixes
* chore: remove prem v1 migration
* refactor: remove openvpn over cloak and openvpn over shadowsocks
* refactor: removed protocolsForContainer function
* refactor: add core models
* refactor: replace json with c++ structs for server config
* refactor: move getDnsPair to ServerConfigUtils
* feat: add admin selfhosted config export test
* feat: add multi import test
* refactor: use coreController for tests
* feat: add few simple tests
* chore: qrepos in all core controllers
* feat: add test for settings
* refactor: remove repo dependency from configurators
* chore: moved protocols to core folder
* chore: include fixes
* refactor: moved containersDefs, defs, apiDefs, protocolsDefs to different places
* chore: include fixes
* chore: build fixes
* chore: build fixes
* refactor: remove q repo and interface repo
* feat: add test for ui servers model and controller
* chore: renamed to camelCase
* chore: include fixes
* refactor: moved core logic from sites ui controller
* fix: fixed api config processing
* fix: fixed processed server index processing
* refactor: protocol models now use c++ structs instead of json configs
* refactor: servers model now use c++ struct instead of json config
* fix: fixed default server index processing
* fix: fix logs init
* fix: fix secure settings load keys
* chore: build fixes
* fix: fixed clear settings
* fix: fixed restore backup
* fix: sshSession usage
* fix: fixed export functions signatures
* fix: return missing part from buildContainerWorker
* fix: fixed server description on page home
* refactor: add container config helpers functions
* refactor: c++ structs instead of json
* chore: add dns protocol config struct
* refactor: move config utils functions to config structs
* feat: add test for selfhosted server setup
* refactor: separate resources.qrc
* fix: fixed server rename
* chore: return nameOverriddenByUser
* fix: build fixes
* fix: fixed models init
* refactor: cleanup models usage
* fix: fixed models init
* chore: cleanup connections and functions signatures
* chore: cleanup updateModel calls
* feat: added cache to servers repo
* chore: cleanup unused functions
* chore: ssxray processing
* chore: remove transportProtoWithDefault and portWithDefault functions
* chore: removed proto types any and l2tp
* refactor: moved some constants
* fix: fixed native configs export
* refactor: remove json from processConfigWith functions
* fix: fixed processed server index usage
* fix: qml warning fixes
* chore: merge fixes
* chore: update tests
* fix: fixed xray config processing
* fix: fixed split tunneling processing
* chore: rename sites controllers and model
* chore: rename fixes
* chore: minor fixes
* chore: remove ability to load backup from "file with connection settings" button
* fix: fixed api device revoke
* fix: remove full model update when renaming a user
* fix: fixed premium/free server rename
* fix: fixed selfhosted new server install
* fix: fixed updateContainer function
* fix: fixed revoke for external premium configs
* feat: add native configs qr processing
* chore: codestyle fixes
* fix: fixed admin config create
* chore: again remove ability to load backup from "file with connection settings" button
* chore: minor fixes
* fix: fixed variables initialization
* fix: fixed qml imports
* fix: minor fixes
* fix: fix vpnConnection function calls
* feat: add buckup error handling
* fix: fixed admin config revok
* fix: fixed selfhosted awg installation
* fix: ad visability
* feat: add empty check for primary dns
* chore: minor fixes
* Allow secondary DNS usage when AmneziaDNS is disabled
* Don't setup secondary DNS for OpenVPN with AmneziaDNS
---------
Co-authored-by: vladimir.kuznetsov <nethiuswork@gmail.com>
* Add allowed DNS list for killswitch
* Windows killswitch strict mode backend part
* Killswitch strict mode for Linux and MacOS
* Windows fixes
* feature: Add Kill Switch settings page with strict mode option
* fix windows build after merge
* Refresh killswitch mode when it toggled
* Use HLM to store strictMode flag
* Some Linux updates
* feat: Enhance VerticalRadioButton with improved styling and disabled states
* Refresh killSwitch state update
* Fix build
* refactor: Modularize header components
* Change kill switch radio button styling
* Fix strict kill switch mode handling
* Refactor: Replace HeaderType with new Types for headers in QML pages
* Remove deprecated HeaderType QML component
* Refresh strict mode killswitch after global toggle change
* Implement model, controller and UI for killswitch dns exceptions
* Connect backend part and UI
* Change label text to DNS exceptions
* Remove HeaderType from PageSettingsApiDevices
* Some pretty fixes
* Fix problem with definition sequence of PageSettingsKillSwitchExceptions.pml elements
* Add exclusion method for Windows firewall
* Change ubuntu version in deploy script
* Update ubuntu version in GH actions
* Add confirmation popup for strict killswitch mode
* Add qt standard path for build script
* Add method to killswitch for expanding strickt mode exceptions list and fix allowTrafficTo() for Windows. Also Added cache in KillSwitch class for exceptions
* Add insertion of gateway address to strict killswitch exceptions
* Review fixes
* buildfix and naming
---------
Co-authored-by: aiamnezia <ai@amnezia.org>
* cherry-pick 4dfcad96506fb5b88c5bb27342b6d9413fc361c9 from mozilla upstream
* cherry-pick a95fa8c088b9edaff2de18751336942c2d145a9a from mozilla
* cherry-pick commit 4fc1ebbad86a9abcafdc761725a7afd811c8d2d3 from mozilla
* cherry-pick 4dfcad96506fb5b88c5bb27342b6d9413fc361c9 from mozilla upstream
* cherry-pick 22de4fcbd454c64ff496c3380eeaeeb6afff4d64 from mozilla upstream
* cherry-pick 649673be561b66c96367adf379da1545f8838763 from mozilla upstream
* cherry-pick 41bdad34517d0ddaef32139482e5505d92e4b533 from mozilla upstream
* cherry-pick f6e49a85538eaa230d3a8634fa7600966132ccab from mozilla upstream
* cherry-pick 86c585387efa0a09c7937dfe799a90a666404fcd from mozilla upstream
* cherry-pick a18c1fac740469ca3566751b74a16227518630c4 from mozilla upstream
* fixed missing ;
* added excludeLocalNetworks() for linux
* build fixes on windows after cherry-picks
* Add rules for excluded sites splittunell mode
* Fix app splittunell when ipv6 is not setup
* Fix Linux build
---------
Co-authored-by: Mykola Baibuz <mykola.baibuz@gmail.com>
* added saving allowed_ips to the array of strings for old configs
* Remove config string processing, add getting all AWG, WG parameters from JSON
* fixed checking of default routes when adding split tunneling from the application
* added check when processing siteBasedSplitTunneling