* added changelog drawer
* Created a scaffold for Linux installation
* implement Linux updating
* Add debug logs about installer in service
* Add client side of installation logic for Windows and MacOS
* Add service side of installation logic for Windows
* ru readme
* Update README_RU.md
* Add files via upload
* chore: added clang-format config files (#1293)
* Update README_RU.md
* Update README.md
* feature: added subscription expiration date for premium v2 (#1261)
* feature: added subscription expiration date for premium v2
* feature: added a check for the presence of the “services” field in the response body of the getServicesList() function
* feature: added prohibition to change location when connection is active
* bugfix: renamed public_key->end_date to public_key->expires_at according to the changes on the backend
* feature/xray user management (#972)
* feature: implement client management functionality for Xray
---------
Co-authored-by: aiamnezia <ai@amnezia.org>
Co-authored-by: vladimir.kuznetsov <nethiuswork@gmail.com>
* Fix formatting
* Add some logs
* Add logs from installattion shell on Windows
* Fix installation for Windows and MacOS
* Optimized code
* Move installer running to client side for Ubuntu
* Move installer launch logic to client side for Windows
* Clean service code
* Add linux_install script to resources
* Add logs for UpdateController
* Add draft for MacOS installation
* Disable updates checking for Android and iOS
* chore: fixed macos update script
* chore: remove duplicate lines
* chore: post merge fixes
* chore: add missing ifdef
* decrease version for testing
* chore: added changelog text processing depend on OS
* add .vscode to .gitignore
* Change updater downloading method to retrieving link from the gateway
* add Release date file creation to s3 deploy script
* Add release date downloading from endpoint
* update check refactoring
* feat: switch macOS auto-update from DMG to ZIP+PKG installer
- Update macOS artifact URL from .dmg to .zip
- Rewrite mac_installer.sh to extract ZIP and install PKG via osascript
- Increase download timeout to 30s for larger ZIP files
* fix: fix Android build
* feat: Change get request for updater link to post
* refactor: preparing NewsModel for update notifications
- Changed `updateModel` to `setNewsList` for better semantic meaning.
- Delegate model container updating to private method updateModel
- Updated the logic for marking news as read to use item IDs instead of a boolean flag.
* feat: Move update notification in news list
- Updated `UpdateController` to handle empty release dates in header text.
- Added `getVersion` method to `UpdateController` for version retrieval.
- Enhanced `NewsModel` to support update notifications with new methods for marking updates as skipped and setting update notifications.
- Updated QML pages to display update information and provide actions for updates and skipping them.
- Introduced `isUpdate` property in `NewsItem` to differentiate between regular news and updates.
* feat: Implement rate limit workaround for gateway requests
- Added a delay before contacting the gateway in both `UpdateController` and `ApiNewsController` to prevent rate limit issues caused by simultaneous requests.
* refactor: Convert synchronous network requests to asynchronous in UpdateController
- Updated `UpdateController` to use asynchronous network requests for fetching gateway URL, version info, changelog, and release date.
- Introduced `doGetAsync` method to handle asynchronous GET requests with error handling.
- Removed synchronous methods to improve responsiveness and prevent blocking the UI during network operations.
- Added a mechanism to prevent multiple concurrent update checks.
* chore: Decrease AmneziaVPN version to 4.8.10.0 in CMakeLists.txt for testing
* refactor: Improve update check handling to avoid rate limit issues
- Updated `CoreController` to initiate update checks after news fetching is complete.
- Removed synchronous waiting in `ApiNewsController` to streamline the fetching process.
* fix: fixed typo in IsReadRole
* fix: fix updater filenames
* chore: move updateController to core
* refactor: update to mvvm
* chore: tiny fix
---------
Co-authored-by: aiamnezia <ai@amnezia.org>
Co-authored-by: aiamnezia <ai@amnezia.com>
Co-authored-by: Pokamest Nikak <pokamest@gmail.com>
Co-authored-by: KsZnak <ksu@amnezia.org>
Co-authored-by: Cyril Anisimov <cyan84@gmail.com>
Co-authored-by: vkamn <vk@amnezia.org>
* 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
* fix: xray heap corruption
* fix: use proper configuration for split-tunneled apps
* chore: enable killswitch
* chore: xray windows split-tunneling cleanup
* chore: proper xray killswitch log
* feat: add wait for the tun device
* chore: update amnezia_xray deps for macos
* fix: add nullptr check for split-tunnel on win
* fix: modernize vpnAdapter grabbing function
* fix: remove network watcher due to its fragileness
* chore: xrayprotocol cleanup
* fix: correct wrong iface index on win
* chore: move tun2socks implementation to the client from the service
* chore: xrayprotocol cleanup
* chore: more xrayprotocol cleanup
* fix: consistent tun device with GUID specified
* chore: tun2socks logs
* chore: PrivilegedProcess cleanup
* better error handling in establishment phase
* terminate&kill ops for remote process
* fix: straighforward killing the process on windows
* fix: finally remove GUID setting from tun2socks due to instability
* fix: add sanitizer to ipc process
* chore: do not collect sensitive info from tun2socks
* There's a common issue of building iOS apps on Qt 6.8 because of new introduced ffmpeg dependency in multimedia Qt package
ref: https://community.esri.com/t5/qt-maps-sdk-questions/build-failure-on-ios-with-qt-6-8/m-p/1548701#M5339
* Cmake related changes
* Source code changes
* Various entitlements
* Ci-cd config update
* Resources changes
* Submodules updated
* Remove me
* QtWidget exclusion omitted
* Distribution errors fixed
* Outdated files deleted
* macos_ne cmake fixed
* fix: update provisioning profile specifiers for macOS network extension
* fix: update provisioning profile specifiers and code sign flags for macOS build
* Revert me
(temporary 3rd-build commit pointer)
* fix: Welcome screen fix
* fix: ci/cd hanging forever fix
* fix: Fixed error popup on macos on file save
* refactor: rename networkextension target to AmneziaVPNNetworkExtension in macos build configuration
* feat: add autostart support for Mac App Store builds on macOS
Fixes: QA-8
* feat: add debug logging to Autostart functionality on macOS
* Revert "feat: add autostart support for Mac App Store builds on macOS"
This reverts commit 3bd25656fb.
* feat: add platform-specific close window behavior for macOS App Store build with Network Extension
Closes: QA-12
* When the application starts with "Start minimized" enabled on macOS (especially the
sandboxed App-Store build compiled with MACOS_NE), fully hiding the window prevents it
from being restored by clicking the Dock icon. The proper behaviour is to start the
window in the *minimized* state instead. That way the window is still part of the
window list and the system automatically brings it back when the user clicks the Dock
icon, replicating the native experience.
On the other platforms we keep the old behaviour (hide the window completely and rely
on the tray icon), therefore we switch at runtime by checking the current OS.
Closes: QA-7
Closes: QA-8
* Revert "When the application starts with "Start minimized" enabled on macOS (especially the"
This reverts commit 7b0d17987c.
* feat: MACOS_NE systray menu support
* feat: add macOS notification handler and install event filter on main window
* feat: implement custom close behavior for Amnezia application on different platforms
* fix: update provisioning profile specifiers for macos builds
* fix: Fatal error in logs
CLI-216
* fix: disabled unavailable on macos ne service logs
* fix: dock icon now hides only when window is closed; menubar icon shows always
Initial state of the docker icon to be presented follows "Start minimized" setting in app settings.
* temp-fix: temporary disable all OpenVPN options of VPN on MACOS_NE since it's not working yet.
* fix: build script updated
* feat: add macOS NE build workflow to GitHub Actions
* fix: Not working Auto start toggle is hidden
* fix: Log spamming during xray connection fixed
* 3rd-prebuild points to commit that stores macos_ne universal binaries.
* fix: missing native dependency on linking stage fixed
* chore: update link to submodule
---------
Co-authored-by: vladimir.kuznetsov <nethiuswork@gmail.com>