Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
09ed1c6
Update dependencies; move nix to workspace; better split() (#450)
Jun 16, 2025
2e66c1b
Use configured external OIDC Provider for 2FA in client (#467)
t-aleksander Jun 25, 2025
eb918af
bump version to 1.5 (#468)
t-aleksander Jun 25, 2025
b618bbc
fix sqlx
t-aleksander Jun 25, 2025
51b7ea2
fix macos builds
t-aleksander Jun 26, 2025
6f8daef
Merge branch 'dev' into post_1.4_merger
wojcik91 Jul 2, 2025
6293713
update protos
wojcik91 Jul 2, 2025
2c0af08
update dependencies
wojcik91 Jul 2, 2025
33e8e06
Merge pull request #472 from DefGuard/post_1.4_merger
wojcik91 Jul 2, 2025
263ea1d
optimize DB access to avoid write locks (#479)
wojcik91 Jul 9, 2025
d35be1f
use unix socket for communicating with background service (#481)
wojcik91 Jul 10, 2025
585ec60
update dependencies
wojcik91 Jul 16, 2025
aad2fcd
update protos
wojcik91 Jul 16, 2025
83febb2
add compilation flag
wojcik91 Jul 16, 2025
73db207
add more targets for cross compilation
wojcik91 Jul 16, 2025
b9bf9d5
handle per-location mfa settings
wojcik91 Jul 16, 2025
7121b8c
update frontend to handle new fields
wojcik91 Jul 16, 2025
abc8451
add TS LSP
wojcik91 Jul 16, 2025
1f9c01d
fix capitalisation
wojcik91 Jul 16, 2025
43dc05c
handle updated field naming
wojcik91 Jul 17, 2025
44b531c
update query data
wojcik91 Jul 17, 2025
5e0d15d
run CI on PRs to release branch
wojcik91 Jul 17, 2025
d40e1b2
Merge pull request #486 from DefGuard/add_per_location_mfa_settings
teon Jul 17, 2025
f3bddef
update query data
wojcik91 Jul 21, 2025
0132ea5
downgrade rust-ini to fix test failure
wojcik91 Jul 21, 2025
1f010b9
update query data for Windows
wojcik91 Jul 21, 2025
39dcb48
handle multiple addresses (#489)
wojcik91 Jul 24, 2025
fb3a870
setup biome for frontend (#490)
wojcik91 Jul 24, 2025
6646b5f
handle multiple addresses pt2 (#491)
wojcik91 Jul 24, 2025
3c8f84c
fix settings page icon fill (#492)
wojcik91 Jul 24, 2025
208c06f
Fix CLI: assign multiple IP addresses and use one network interface n…
moubctez Aug 6, 2025
208ef0a
Tauri v2 (#512)
moubctez Aug 12, 2025
19eb347
Fix tray icon behaviour and close active connections on exit (#513)
moubctez Aug 13, 2025
aa108f9
Fix windows Quit (#516)
moubctez Aug 14, 2025
ad48b25
use AWS runners (#517)
wojcik91 Aug 14, 2025
49e1c29
Fix deny.toml (#518)
moubctez Aug 18, 2025
58dae03
Handle deep-links (#520)
moubctez Aug 19, 2025
5305831
Reflect connection state in system tray (#521)
moubctez Aug 21, 2025
0b32d65
mfa via mobile device (#519)
filipslezaklab Aug 21, 2025
43ab9b2
Upgrade UI module (#523)
filipslezaklab Aug 21, 2025
46c8241
Fix MFA from tray menu (#522)
moubctez Aug 21, 2025
4ea2c2f
Fix events (#524)
moubctez Aug 21, 2025
e1e36db
Fix version for tauri-action (#527)
moubctez Aug 25, 2025
cf6916e
register totp mfa during account enrollment (#526)
filipslezaklab Aug 26, 2025
e142f91
update nix setup for tauri v2 (#534)
wojcik91 Aug 27, 2025
4b07c9f
Build RPM and fix release workflow (#533)
moubctez Aug 27, 2025
6f81553
display token validation error (#535)
wojcik91 Aug 27, 2025
2323384
Deep link take 2 (#532)
moubctez Aug 27, 2025
ed29da0
Make cargo-deny happy again (#536)
moubctez Aug 27, 2025
e9b29c1
add email to enrollment mfa setup (#538)
filipslezaklab Aug 28, 2025
c094f00
Tray: omit submenus for one instance (#540)
moubctez Aug 28, 2025
b023837
handle new enrollment configuration (#539)
filipslezaklab Aug 29, 2025
43e10e5
Fix show/hide (#542)
moubctez Aug 29, 2025
c8b5737
Deep link fix (#543)
filipslezaklab Aug 29, 2025
d735ce5
Update DeppLinkProvider.tsx (#546)
filipslezaklab Sep 1, 2025
c7d8a55
Unminimize on macOS (#548)
moubctez Sep 1, 2025
888d110
Take pathname from deep link (#547)
moubctez Sep 1, 2025
58ee9fe
limit toasts to 5 on screen (#550)
filipslezaklab Sep 2, 2025
f7f53cf
Check version of core and proxy when polling config (#549)
t-aleksander Sep 2, 2025
64b82aa
fix clipboard hook (#553)
filipslezaklab Sep 8, 2025
f9c8d36
Fixes pentest issue DG25-27 from 2025-09-02 (#552)
wojcik91 Sep 10, 2025
4859cb0
Inform users about mismatch of UUIDs (#556)
t-aleksander Sep 10, 2025
2166511
Autocorrect UUIDs & fix displaying information that the selected MFA …
t-aleksander Sep 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 4 additions & 5 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -5,22 +5,21 @@ charset = utf-8
end_of_line = lf
insert_final_newline = true
indent_style = space
indent_size = 2

[*.{ts,tsx}]
indent_style = space
indent_size = 2
rulers = 90
rulers = 100

[*.{scss}]
indent_style = space
indent_size = 2
rulers = 90
rulers = 100

[*.{html}]
indent_style = space
indent_size = 2
rulers = 90
rulers = 100

[*.{json,yaml}]
indent_style = space
Expand All @@ -30,4 +29,4 @@ rulers = 80
[*.{rs}]
indent_style = space
indent_size = 4
rulers = 90
rulers = 100
30 changes: 18 additions & 12 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
@@ -1,38 +1,47 @@
name: 'lint'
name: "lint"

on:
push:
branches:
- main
- dev
- "release/**"
paths-ignore:
- "*.md"
- "LICENSE"
pull_request:
branches:
- main
- dev
- "release/**"
paths-ignore:
- "*.md"
- "LICENSE"

jobs:
lint-web:
runs-on: [self-hosted, Linux, X64]
runs-on:
- codebuild-defguard-client-runner-${{ github.run_id }}-${{ github.run_attempt }}

steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
submodules: 'recursive'
submodules: recursive
- uses: actions/setup-node@v4
with:
node-version: '20'
node-version: "22"

- uses: pnpm/action-setup@v2
- uses: pnpm/action-setup@v4
with:
version: 9
version: 10
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV

- uses: actions/cache@v3
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
Expand All @@ -43,11 +52,8 @@ jobs:
- name: Install deps
run: pnpm install --frozen-lockfile

- name: Run Eslint and Prettier Lint
- name: Run Biome and Prettier Lint
run: pnpm lint

- name: Check TSC
run: pnpm tsc

- name: Audit
run: pnpm audit --prod
87 changes: 43 additions & 44 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: 'Build app and create release'
name: "Build app and create release"
on:
push:
tags:
Expand All @@ -12,15 +12,15 @@ jobs:
architecture: [arm64, amd64]
runs-on: [self-hosted, macOS]
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
repository: WireGuard/wireguard-go
ref: master
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'
go-version: "1.24"
- name: Build wireguard-go binary
run: make
env:
Expand Down Expand Up @@ -71,26 +71,26 @@ jobs:
deb_arch: amd64
binary_arch: x86_64
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
submodules: 'recursive'
submodules: "recursive"
- name: Write release version
run: |
VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1)
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- uses: actions/setup-node@v3
echo "VERSION=$VERSION" >> ${GITHUB_ENV}
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v2
node-version: "22"
- uses: pnpm/action-setup@v4
with:
version: 9
version: 10
run_install: false
- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV}
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
Expand All @@ -103,21 +103,20 @@ jobs:
- name: Install Linux dependencies
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev unzip protobuf-compiler libprotobuf-dev rpm
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler libprotobuf-dev rpm
- name: Build packages
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Create RPM
run: |
rpmbuild --build-in-place --define "_topdir $(pwd)" --define "version ${{ env.VERSION }}" -bb resources-linux/defguard-client.spec
with:
args: "--bundles deb,rpm"
- name: Upload RPM
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create-release.outputs.upload_url }}
asset_path: RPMS/${{ matrix.binary_arch }}/defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm
asset_path: src-tauri/target/release/bundle/rpm/defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm
asset_name: defguard-client-${{ env.VERSION }}-1.${{ matrix.binary_arch }}.rpm
asset_content_type: application/octet-stream
- name: Upload DEB
Expand Down Expand Up @@ -187,8 +186,8 @@ jobs:
- name: Build dg deb
uses: defGuard/fpm-action@main
with:
fpm_args: 'dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf'
fpm_opts: '--architecture ${{ matrix.binary_arch }} --debug --output-type deb --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb'
fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf"
fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type deb --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.deb"
- name: Upload DEB
uses: actions/upload-release-asset@v1.0.2
env:
Expand All @@ -201,8 +200,8 @@ jobs:
- name: Build dg rpm
uses: defGuard/fpm-action@main
with:
fpm_args: 'dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf'
fpm_opts: '--architecture ${{ matrix.binary_arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm'
fpm_args: "dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}=/usr/sbin/dg dg.service=/usr/lib/systemd/system/dg.service src-tauri/cli/.env=/etc/defguard/dg.conf"
fpm_opts: "--architecture ${{ matrix.binary_arch }} --debug --output-type rpm --version ${{ env.VERSION }} --package dg-linux-${{ matrix.binary_arch }}-${{ github.ref_name }}.rpm"
- name: Upload RPM
uses: actions/upload-release-asset@v1.0.2
env:
Expand All @@ -225,30 +224,30 @@ jobs:
- self-hosted
- macOS
env:
APPLE_SIGNING_IDENTITY_APPLICATION: 'Developer ID Application: defguard sp. z o.o. (82GZ7KN29J)'
APPLE_SIGNING_IDENTITY_INSTALLER: 'Developer ID Installer: defguard sp. z o.o. (82GZ7KN29J)'
APPLE_ID: 'kamil@defguard.net'
APPLE_TEAM_ID: '82GZ7KN29J'
APPLE_SIGNING_IDENTITY_APPLICATION: "Developer ID Application: defguard sp. z o.o. (82GZ7KN29J)"
APPLE_SIGNING_IDENTITY_INSTALLER: "Developer ID Installer: defguard sp. z o.o. (82GZ7KN29J)"
APPLE_ID: "kamil@defguard.net"
APPLE_TEAM_ID: "82GZ7KN29J"
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
submodules: 'recursive'
submodules: "recursive"
- name: Write release version
run: |
VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1)
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
- uses: actions/setup-node@v3
echo "VERSION=$VERSION" >> ${GITHUB_ENV}
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v2
node-version: "22"
- uses: pnpm/action-setup@v4
with:
version: 9
version: 10
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
run: echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV}
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
Expand Down Expand Up @@ -312,25 +311,25 @@ jobs:
- create-release
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
with:
submodules: 'recursive'
submodules: "recursive"
- name: Write release version
run: |
$env:VERSION=echo ($env:GITHUB_REF_NAME.Substring(1) -Split "-")[0]
echo Version: $env:VERSION
echo "VERSION=$env:VERSION" >> $env:GITHUB_ENV
- uses: actions/setup-node@v3
- uses: actions/setup-node@v4
with:
node-version: '20'
- uses: pnpm/action-setup@v2
node-version: "22"
- uses: pnpm/action-setup@v4
with:
version: 9
version: 10
run_install: false
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $env:GITHUB_ENV
- uses: actions/cache@v3
run: echo "STORE_PATH=$(pnpm store path --silent)" >> ${GITHUB_ENV}
- uses: actions/cache@v4
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
Expand Down Expand Up @@ -376,7 +375,7 @@ jobs:
run: |
VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1)
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "VERSION=$VERSION" >> ${GITHUB_ENV}
- name: Download unsigned bundle & burn-engine
uses: actions/download-artifact@v4
with:
Expand Down Expand Up @@ -422,7 +421,7 @@ jobs:
run: |
VERSION=$(echo ${GITHUB_REF_NAME#v} | cut -d '-' -f1)
echo Version: $VERSION
echo "VERSION=$VERSION" >> $GITHUB_ENV
echo "VERSION=$VERSION" >> ${GITHUB_ENV}
- name: Download unsigned bundle & signed burn-engine
uses: actions/download-artifact@v4
with:
Expand Down
29 changes: 15 additions & 14 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ on:
branches:
- main
- dev
- 'release/**'
paths-ignore:
- '*.md'
- 'LICENSE'
pull_request:
branches:
- main
- dev
- 'release/**'
paths-ignore:
- '*.md'
- 'LICENSE'
Expand All @@ -21,30 +23,28 @@ env:

jobs:
test:
runs-on: [self-hosted, Linux, X64]
container: rust:1
runs-on:
- codebuild-defguard-client-runner-${{ github.run_id }}-${{ github.run_attempt }}

container:
image: public.ecr.aws/docker/library/rust:1
options: --user root

defaults:
run:
working-directory: ./src-tauri

steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5
with:
submodules: recursive
- name: Debug
run: echo ${{ github.ref_name }}
- name: Cache
uses: Swatinem/rust-cache@v2
- name: Install required packages
run: |
apt-get update
apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libssl-dev unzip
- name: Install protobuf compiler
run: |
PB_REL='https://github.com/protocolbuffers/protobuf/releases'
PB_VERSION='3.20.0' && curl -LO $PB_REL/download/v$PB_VERSION/protoc-$PB_VERSION-linux-x86_64.zip
unzip protoc-$PB_VERSION-linux-x86_64.zip bin/protoc include/google/* -d /usr/local
apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libayatana-appindicator3-dev librsvg2-dev patchelf libssl-dev libxdo-dev unzip protobuf-compiler
- name: Check format
run: |
rustup component add rustfmt
Expand All @@ -55,8 +55,9 @@ jobs:
rustup component add clippy
cargo clippy --all-targets --all-features -- -D warnings
- name: Run cargo deny
uses: EmbarkStudios/cargo-deny-action@v2
with:
manifest-path: ./src-tauri/Cargo.toml
working-directory: ./src-tauri
run: |
cargo install cargo-deny
cargo deny check
- name: Run tests
run: cargo test --locked --no-fail-fast
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,11 @@ dist-ssr
*.db-shm
*.db-wal

src-tauri/gen/

.direnv
.envrc
.aider*

# nix stuff
result
Loading