* fix(ios): link OpenVPNAdapter statically
* chore(conan): simplify openvpnadapter merge process and make everything via XCrun
---------
Co-authored-by: Yaroslav Gurov <ygurov@proton.me>
* fix: enable bundled openssl for every platform except NE-based ones
* fix(conan): trigger CI/CD on crutial cmake changes
* fix: install dylibs/dlls from conan and use proper RPATH
* fix: adjust windows runtime deps
* fix: AUTOMOC and AUTOUIC added
* update: native exports test
* update: export test
* update: vless serialization/deserialization test added
* update: language model and controller test
* update: sites UiController and Model test
* update: sites test
* update: app ui model and controller test
* update: allowed dns ui model and controller test
* update: env vars and removed some lines
* update: news ui model and controller test (incomplete)
* update: api services ui model and controller test (incompleted)
* update: job for tests (Linux)
* update: job for tests (Windows)
* update: proper artifact names
* update: added envs
* update: added 'get sources' and changed steps order
* update: tests jobs remake
* update: 'get sources' step and windows shell
* update: using ctest
* search for exe files
* changed path to run tests
* update: 'Build' step
* update: changed path to deploy qt dependencies
* update: dependencies only for tests executables
* update: ctest dir
* update: include ctest
* update: set dir for tests exe
* update: qt path
* update: serialization test
* update: removed api tests from cmake
* update: changed tests dir
* added ctest to client cmake
* update: installing msvc and additional checks
* removed mcvs install
* update: path to ssh.dll
* fixed issue with ssh path
* update: removed unneccessary step and line
* update: linux job step 'Run tests'
* update: linux 'Install dependencies'
* update: modified qtest include
* update: changed QVERIFY to QVERIFY2
* update: some qverify2 messages
* update: linux additional dependencies
* update: offscreen for linux tests
* update: MacOS tests job
* update: Android tests job
* update: rewrited env's, qtest include and clear clients in some tests
* update: added local vars file for tests
* proper path for some vars
* some fixes due merge
* update: windows tests deploy
* python and conan installation to tests jobs
* chore: minor fixes after merge with dev
* chore: move selfhosted admin tests to separate folder
* refactor: some rename
* chore: fixes after merge
* refactor: moved tests to separate repo
* refactor: remove tests from core controller
* chore: add more protected getters to core controller
* chore: add more protected getters
* chore: remove ctest
* chore: return xray model default values
---------
Co-authored-by: vkamn <vk@amnezia.org>
* fix: app buttons clicked instead of buttons in context menu
* update: using MouseArea instead of changing popupType
* fix(cursor): fixed cursor type at opened context menu
---------
Co-authored-by: Mitternacht822 <sb@amnezia.org>
* refactor: remove serverConfig struct
* refactor: add warnings for api v1 configs
* refactor: moved the server type definition to a separate namespace
* refactor: simplified gateway stacks
* fix: fixed server description
* fix: fixed postAsync reply usage
* fix: fixed validateConfig call
* fix: fixed server name in notifications
* fix: fixed initPrepareConfigHandler for lagacy configs
* feat: initial conan support
* feat: add awg-go and awg-apple recipes
* feat: macos full feature conan build, except ss and cloak
* feat: conan android initial support
* fix: android libssh fixes
* conan: android additional recipes and fixes
* feat: openvpn add support android
* fix: awg android connection establish
* conan: apple full-featured support
* chore: bump min macos version
* chore: get rid of manual deploy recursive copying
* conan: beautify makefile-based recipes
* conan: add geosite.dat and geoip.dat
* conan: use lib linking instead of QT_EXTRA_LIBS for OVPN
* conan: address lack of SONAME of libck-ovpn-plugin.so correctly
* conan: windows initial support
* conan: make awg-windows and wintun be interpret as exes
* conan: fix version for v2ray-rules-dat
* feat: conan and platform bootstrap rework in cmake
* feat: 16kb support for Android
* chore(conan): recipes cleanup
* feat: support of drivers for windows
* feat: support full-featured cmake install
* chore: exclude qtkeychain from the target build
* fix: install for apple systems
* fix: provide flags for cloak plugin for openvpn-pt-android
* chore: bump android deps for 16kb support
* feat(conan): patch cloak to properly provide env for golang
* chore: remove redundant hint from conan find
* feat: linux <-> conan features
* feat: linux initial packaging support
* feat: linux cpack support
* feat: cpack windows full-featured build
* feat: productbuild cpack support
* feat: rework CI/CD for macos
* feat: rework CI/CD for Linux
* fix: libncap automake args
* fix: CI/CD correct QT paths
* fix: windows rework CI/CD
* fix: windows artifact upload
* chore: remove MacOS-old from build targets
* feat: add conan to all mobile and NE builds
* feat: support default amnezia conan remote
* fix: use Release instead of release on Android
* feat: get rid of 3rd-prebuilt
* feat: conan CI/CD upload
* fix: CI/CD change windows toolset versions
* fix: remove MSVC version from CI/CD
* feat: conan CI/CD add Release and Debug build types
* feat: add multiple xcode versions for conan CI/CD
* fix: correct conan CI/CD clang versions
* feat: separate prebuilt baking, and add some for NE
* feat: rework keychain on ios/macos even more
* fix: add desktop Qt for iOS
* feat: add QT_HOST_PATH to build.sh
* fix: add deploy definition to cmake
* fix: android adjustments for toolchains and CI/CD
* fix: add needs for Android CI/CD
* fix: Android CI/CD use android-28
* fix: modernize translations, and CI/CD fixes
* fix: gradle min sdk compilation error
* fix: CI/CD add installers to all jobs
* fix: parse android platform more precisely
* fix: adjust aab path in CI/CD
* feat: CI/CD do not execute artifact build if there is nothing changed
* fix: CI/CD use common jobs even if previous were failed
* fix: Apple CI/CD use set-key-partition-list for keychains
* fix: Apple CI/CD do not specify any keychain (use default)
* fix: build aab as a different step in build script
* chore: beautify build.sh script
* feat: CI/CD build separate APKs per ABI
* fix: Android CI/CD upload artifact in separate steps
* chore: recipes cleanup
* feat: add hints for conan on MacOS
* fix: add main.cpp and tests back to CMakeLists.txt
* chore: xrayProtocol codestyle changes
* fix: openssl set proper X509 request version
* fix: make openvpn protocol rely only on client while configuring
* chore: get rid of old scripts
* chore: readme update describing build process more precisely
* feat: windows build script add multiprocessing capabilities
* chore: bump Qt version in README
* feat: add generator option and use Ninja by default in CI/CD for linux/macos
---------
Co-authored-by: NickVs2015 <nv@amnezia.org>
* 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