Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
47e0e19
align proto branch
wojcik91 Jun 12, 2025
99d626a
Pass admin device management flag in enrollment start response (#1235)
wojcik91 Jun 12, 2025
d1fbb07
Implement remaining activity-log event types (#1243)
j-chmielewski Jun 23, 2025
4cac143
Use configured external OIDC Provider for 2FA in client (#1264)
t-aleksander Jun 25, 2025
b4438f8
Allow binding to a specific address (#1287)
t-aleksander Jun 30, 2025
7e5cee1
Merge branch 'dev' into 1.4_main_to_dev_merger
wojcik91 Jul 1, 2025
6d79691
update dependencies
wojcik91 Jul 1, 2025
00e1f7e
Merge pull request #1292 from DefGuard/1.4_main_to_dev_merger
wojcik91 Jul 1, 2025
679c36d
Add user SNAT bindings (#1273)
wojcik91 Jul 2, 2025
f0a1395
Allow admins to disable users' MFA (#1281)
wojcik91 Jul 2, 2025
aba9ead
Fix auth key delete endpoint
j-chmielewski Jul 2, 2025
eb82a1a
Merge pull request #1299 from DefGuard/fix-key-delete
j-chmielewski Jul 2, 2025
4f4a2fc
Enable Rust 2024 edition (#1280)
wojcik91 Jul 3, 2025
41da958
move migrations directory to workspace root (#1249)
wojcik91 Jul 3, 2025
9d03e49
fix SNAT API 404 errors (#1304)
wojcik91 Jul 3, 2025
c53340b
Register mobile client (#1306)
filipslezaklab Jul 3, 2025
4427ed5
Add activity log event description (#1289)
wojcik91 Jul 8, 2025
f006a3e
Add device redesign (#1311)
filipslezaklab Jul 8, 2025
cdf9204
User groups events (#1307)
jakub-tldr Jul 9, 2025
e665b7a
fix e2e fix network device add modal (#1313)
filipslezaklab Jul 10, 2025
3117bfd
fix logout when disabled e2e test (#1314)
filipslezaklab Jul 10, 2025
d02f986
e2e tests (#1315)
t-aleksander Jul 10, 2025
2df01e2
Fix TS type checking (#1317)
filipslezaklab Jul 11, 2025
53797ff
Add location column in activity log (#1318)
wojcik91 Jul 11, 2025
90d6704
(maybe) fix openid dashboard
t-aleksander Jul 14, 2025
ff9e11e
fix method step translation key
filipslezaklab Jul 16, 2025
5dab218
Merge branch 'dev' of github.com:DefGuard/defguard into dev
filipslezaklab Jul 16, 2025
66410b7
Add per-location MFA settings (#1323)
wojcik91 Jul 18, 2025
5ab5a77
Add per-location MFA settings pt2 (#1330)
wojcik91 Jul 21, 2025
3afdcc5
Adjust network form MFA config layout (#1334)
wojcik91 Jul 22, 2025
c31a6ae
network edit form fixes (#1336)
wojcik91 Jul 23, 2025
a307e70
merge biome rules with proxy (#1338)
filipslezaklab Jul 24, 2025
b3c6cd4
update desktop client link style (#1339)
filipslezaklab Jul 24, 2025
7b44e86
fix VPN client name in MFA events (#1346)
wojcik91 Jul 25, 2025
b6b0058
Add AMI building to the release pipeline (#1343)
t-aleksander Jul 25, 2025
f1cf11a
fix buttons not clicking during tests (#1347)
filipslezaklab Jul 28, 2025
6dcecdb
turn off e2e workflow
filipslezaklab Jul 28, 2025
4ef7c47
trigger deploy after build current workflow
filipslezaklab Jul 28, 2025
8850765
fix consent page style on desktop (#1350)
filipslezaklab Jul 28, 2025
a29ac10
add mobile links (#1352)
filipslezaklab Jul 29, 2025
a207eba
fix error propagarion from axios provider (#1355)
filipslezaklab Jul 29, 2025
218fc96
maybe fix e2e tests
t-aleksander Jul 30, 2025
64bf1e6
fix trailing slash
t-aleksander Jul 30, 2025
f6dd475
fix ui scrolling (#1365)
filipslezaklab Jul 31, 2025
af8fb5f
change default peer disconnect threshold to 300 (#1360)
t-aleksander Aug 1, 2025
ec27807
Potential fix for code scanning alert no. 36: Workflow does not conta…
t-aleksander Aug 4, 2025
03894c2
biometric mfa poc (#1368)
filipslezaklab Aug 5, 2025
dcbcc88
fix workflow permissions (#1379)
t-aleksander Aug 5, 2025
2643dbd
Change "Gateway address" field in VPN configuration (#1381)
moubctez Aug 6, 2025
67da358
add biometry enabled indicator in profile devices list (#1383)
filipslezaklab Aug 6, 2025
22fbd09
Avoid HTTP return code: 204 No Content (#1384)
moubctez Aug 7, 2025
af9469a
fix overview stats period labels (#1393)
wojcik91 Aug 7, 2025
44c9644
add tests for biometric auth (#1392)
filipslezaklab Aug 8, 2025
fc9aa1f
enrollment qr in enroll by admin modal (#1397)
filipslezaklab Aug 8, 2025
1651a30
temp fix for no reserved ip erros in form (#1398)
filipslezaklab Aug 8, 2025
d780ff1
add eu-central-1 region
t-aleksander Aug 11, 2025
6fc4c74
sign Docker images using Cosign (#1373)
wojcik91 Aug 11, 2025
002e8f9
fix buttons clicks (#1401)
filipslezaklab Aug 11, 2025
bd229c6
fix external MFA select (#1408)
wojcik91 Aug 12, 2025
9943a10
squash fixes (#1411)
filipslezaklab Aug 12, 2025
33a6de3
refetch app info on provider change (#1416)
wojcik91 Aug 13, 2025
cd4f3ea
setup AWS codebuild runners (#1417)
wojcik91 Aug 14, 2025
fe9134b
chore: backport security hotfix from main (#1421)
wojcik91 Aug 14, 2025
12e2ab0
Tonic 14 (#1422)
moubctez Aug 18, 2025
b32dc52
Fix deny.toml (#1425)
moubctez Aug 18, 2025
1b44075
Jumpcloud directory synchronization (#1426)
t-aleksander Aug 19, 2025
f2bbed6
Desktop mfa via mobile device (#1429)
filipslezaklab Aug 21, 2025
02c9efb
Swith to newer Rust (#1431)
moubctez Aug 21, 2025
f61ce40
Version exchange and logging (#1361)
j-chmielewski Aug 22, 2025
459db52
Use Debian 13 and update depenedencies (#1432)
moubctez Aug 22, 2025
b3059c5
Drop handling of service reload; switch to std OnceLock (#1434)
moubctez Aug 22, 2025
e12fa59
Scan images with Trivy (#1435)
moubctez Aug 22, 2025
9511666
implement integration tests for gRPC server (#1437)
wojcik91 Aug 26, 2025
7620f97
Speed up e2e (#1439)
jakub-tldr Aug 26, 2025
3419a51
Fix available device IP validation (#1446)
wojcik91 Aug 26, 2025
5c663bd
Register mfa during enrollment (#1436)
filipslezaklab Aug 26, 2025
0b82efd
validate token & device compatibility (#1447)
wojcik91 Aug 27, 2025
7244c03
End-to-end tests: take 2 (#1448)
moubctez Aug 27, 2025
0c097ad
fix e2e take 3 (#1450)
jakub-tldr Aug 27, 2025
85c4992
Implement network device license limits, always prompt for account se…
t-aleksander Aug 27, 2025
c90c52d
Fix some providers not respecting OpenID parameters (#1458)
t-aleksander Aug 28, 2025
a5709e7
Version check (#1441)
j-chmielewski Aug 28, 2025
8b1d36b
switch ami to debian (#1460)
t-aleksander Aug 28, 2025
440ca8c
update enrollment configuration response (#1463)
filipslezaklab Aug 29, 2025
db678a9
Fix version comparison (#1464)
j-chmielewski Aug 29, 2025
d805e82
Fix ldap attribute names case sensitive comparison (#1454)
t-aleksander Aug 29, 2025
3b5b890
Trim dependencies; update user agent regexes (#1471)
moubctez Aug 29, 2025
fa38d4c
add desktop deep link into add device flow (#1474)
filipslezaklab Sep 1, 2025
9c7e8ff
Update tracing_subscriber (#1477)
moubctez Sep 1, 2025
aa79850
add desktop deep links in emails (#1476)
filipslezaklab Sep 1, 2025
be3f96c
Return core version in http headers (#1479)
t-aleksander Sep 1, 2025
ff75b37
Fix ami building (#1481)
t-aleksander Sep 2, 2025
2f406d9
Swagger docs (#1485)
jakub-tldr Sep 3, 2025
168bbd8
Version mismatch report (#1483)
moubctez Sep 3, 2025
5baf35f
Prevent pre-shared keys from being sent when mfa is disabled (#1493)
t-aleksander Sep 4, 2025
0a845d4
add outdated components modal (#1494)
filipslezaklab Sep 4, 2025
e85d98e
Update AppLoader.tsx (#1495)
filipslezaklab Sep 4, 2025
77ee7f8
Typos fix (#1496)
jakub-tldr Sep 4, 2025
321d2db
Update device setup (#1497)
filipslezaklab Sep 4, 2025
9aaa99f
Remove system header from HTTP (#1507)
t-aleksander Sep 4, 2025
215b455
Disable exaggerate traging span; Fix proxy version info; Box::pin lar…
moubctez Sep 4, 2025
9686c55
Fixes pentest issue DG25-3 from 2025-09-02 (#1510)
wojcik91 Sep 5, 2025
53222bd
Fixes pentest issue DG25-8: Server-Side Template Injection (SSTI) (#1…
moubctez Sep 5, 2025
1f2ab5d
Fixes pentest issue DG25-19: Clickjacking vulnerability from 2025-09-…
t-aleksander Sep 5, 2025
8a02d2d
Add test for dg25-19 vulnerability (#1517)
t-aleksander Sep 5, 2025
8293a50
Fix for UUID being nil (#1521)
moubctez Sep 5, 2025
588e602
Fixes pentest issue DG25-9 from 2025-09-02 (#1518)
filipslezaklab Sep 5, 2025
937ad7e
Fixes pentest issue DG25-27 from 2025-09-02 (#1524)
wojcik91 Sep 5, 2025
ce6f418
Fixes pentest issue DG25-12 from 2025-09-02 (#1527)
wojcik91 Sep 8, 2025
f138543
add trim to string fields in zod schemas (#1528)
filipslezaklab Sep 8, 2025
608e01f
Fixes pentest issue DG25-13 from 2025-09-02 (#1530)
wojcik91 Sep 8, 2025
6f8beb6
fix network device edit form (#1537)
filipslezaklab Sep 9, 2025
922075c
Fixes pentest issue DG25-22 from 2025-09-02 (#1535)
t-aleksander Sep 9, 2025
5093e8d
Fixes pentest issue DG25-23 from 2025-09-02 (#1538)
t-aleksander Sep 9, 2025
789230e
Version notifications (#1531)
j-chmielewski Sep 9, 2025
cc39e63
Merge branch 'main' into pre_release_1.5_cleanup
wojcik91 Sep 10, 2025
0f6efb3
update dependencies
wojcik91 Sep 10, 2025
5426bab
update supported versions
wojcik91 Sep 10, 2025
5304742
pre-release 1.5 cleanup (#1543)
wojcik91 Sep 10, 2025
7d9cb06
Merge branch 'release/1.5-alpha' into pre_release_1.5_cleanup
wojcik91 Sep 10, 2025
572a7a4
update protos
wojcik91 Sep 10, 2025
510951d
Merge pull request #1544 from DefGuard/pre_release_1.5_cleanup_pt2
wojcik91 Sep 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 41 additions & 1 deletion .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ jobs:
- self-hosted
- Linux
- ${{ matrix.runner }}

strategy:
matrix:
# cpu: [arm64, amd64, arm/v7]
Expand All @@ -35,23 +36,31 @@ jobs:
# - cpu: arm/v7
# runner: ARM
# tag: armv7

permissions:
contents: read
packages: write

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Login to GitHub container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-config-inline: |
[registry."docker.io"]
mirrors = ["dockerhub-proxy.teonite.net"]

- name: Build container
uses: docker/build-push-action@v6
with:
Expand All @@ -63,10 +72,30 @@ jobs:
cache-from: type=gha
cache-to: type=gha,mode=max

- name: Scan image with Trivy
uses: aquasecurity/trivy-action@0.32.0
with:
image-ref: "${{ env.GHCR_REPO }}:${{ github.sha }}-${{ matrix.tag }}"
format: "table"
exit-code: "1"
ignore-unfixed: true
vuln-type: "os,library"
severity: "CRITICAL,HIGH,MEDIUM"

docker-manifest:
runs-on: [self-hosted, Linux]

permissions:
contents: read
packages: write
id-token: write # needed for signing the images with GitHub OIDC Token

needs: [build-docker]

steps:
- name: Install Cosign
uses: sigstore/cosign-installer@v3.9.2

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
Expand All @@ -75,12 +104,14 @@ jobs:
${{ env.GHCR_REPO }}
flavor: ${{ inputs.flavor }}
tags: ${{ inputs.tags }}

- name: Login to GitHub container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Create and push manifests
run: |
tags='${{ env.GHCR_REPO }}:${{ github.sha }} ${{ steps.meta.outputs.tags }}'
Expand All @@ -90,4 +121,13 @@ jobs:
docker manifest create ${tag} ${{ env.GHCR_REPO }}:${{ github.sha }}-amd64 ${{ env.GHCR_REPO }}:${{ github.sha }}-arm64
docker manifest push ${tag}
done
# ${{ env.GHCR_REPO }}:${{ github.sha }}-armv7

- name: Sign the images with GitHub OIDC Token
run: |
images='${{ env.GHCR_REPO }}:${{ github.sha }} ${{ steps.meta.outputs.tags }}'
cosign sign --yes ${images}

- name: Verify image signatures
run: |
images='${{ env.GHCR_REPO }}:${{ github.sha }} ${{ steps.meta.outputs.tags }}'
cosign verify ${images} --certificate-oidc-issuer https://token.actions.githubusercontent.com --certificate-identity-regexp="https://github.com/DefGuard/defguard" -o text
19 changes: 15 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,53 +20,64 @@

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

container: public.ecr.aws/docker/library/rust:1

services:
postgres:
image: postgres:17-alpine
image: public.ecr.aws/docker/library/postgres:17-alpine
env:
POSTGRES_DB: defguard
POSTGRES_USER: defguard
POSTGRES_PASSWORD: defguard
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5

env:
CARGO_TERM_COLOR: always
DEFGUARD_SECRET_KEY: aa5a506b11d719dd7170f57f5d9947faf8eb0bc2be1325e42aa0237c3dcfd26456e73dff9eef3b12c7bcf8711b45e3e703d8e21ee1c08520f5e12e3f5772da94
DEFGUARD_DB_HOST: postgres
DEFGUARD_DB_PORT: 5432
DEFGUARD_DB_NAME: defguard
DEFGUARD_DB_USER: defguard
DEFGUARD_DB_PASSWORD: defguard
DATABASE_URL: "postgresql://defguard:defguard@postgres/defguard"
SQLX_OFFLINE: true

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Cache
uses: Swatinem/rust-cache@v2

- name: Install protoc
run: apt-get update && apt-get -y install protobuf-compiler

- name: Check format
run: |
rustup component add rustfmt
cargo fmt -- --check

- name: Run clippy linter
run: |
rustup component add clippy
cargo clippy --all-targets --all-features -- -D warnings

- name: Run cargo deny
uses: EmbarkStudios/cargo-deny-action@v2
run: |
cargo install cargo-deny
cargo deny check

- name: Install nextest
uses: taiki-e/install-action@nextest

- name: Run tests
run: cargo nextest run --locked --no-fail-fast

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
18 changes: 17 additions & 1 deletion .github/workflows/current.yml
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
name: Build current image
permissions:
contents: read
id-token: write
packages: write
on:
push:
branches:
- main
- dev
- 'release/**'
- "release/**"
paths-ignore:
- "*.md"
- "LICENSE"
Expand All @@ -25,3 +29,15 @@ jobs:
needs: build-current
uses: ./.github/workflows/e2e.yml
secrets: inherit

trigger-dev-deploy:
needs: build-current
if: ${{ github.event_name != 'pull_request' && github.ref_name == 'dev' }}
uses: ./.github/workflows/dev-deployment.yml
secrets: inherit

trigger-staging-deploy:
needs: build-current
if: ${{ github.event_name != 'pull_request' && startsWith(github.ref_name, 'release/') }}
uses: ./.github/workflows/staging-deployment.yml
secrets: inherit
2 changes: 0 additions & 2 deletions .github/workflows/e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,8 +63,6 @@ jobs:
${{ runner.os }}-pnpm-store-
- name: Pull images
run: docker compose --file './docker-compose.e2e.yaml' pull
- name: Start compose
run: docker compose --file './docker-compose.e2e.yaml' up -d
- name: Install E2E dependencies
working-directory: ./e2e
run: pnpm install --frozen-lockfile
Expand Down
24 changes: 14 additions & 10 deletions .github/workflows/lint-web.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,35 +3,39 @@
branches:
- main
- dev
- 'release/**'
paths:
- "web/**"
- "release/**"
paths-ignore:
- "*.md"
- "LICENSE"
pull_request:
branches:
- main
- dev
- 'release/**'
paths:
- "web/**"
- "release/**"
paths-ignore:
- "*.md"
- "LICENSE"

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

steps:
- uses: actions/checkout@v4
with:
submodules: "recursive"
- uses: actions/setup-node@v4
with:
node-version: 20
node-version: 24
- name: install deps
working-directory: ./web
run: |
npm i -g pnpm
npm i -g npm pnpm
pnpm i --frozen-lockfile
- name: Lint
working-directory: ./web
run: pnpm lint
run: pnpm run lint
- name: Audit
working-directory: ./web
run: pnpm audit --prod

Check warning

Code scanning / CodeQL

Workflow does not contain permissions Medium

Actions job or workflow does not limit the permissions of the GITHUB_TOKEN. Consider setting an explicit permissions block, using the following as a minimal starting point: {contents: read}
30 changes: 30 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -53,10 +53,12 @@ jobs:

build-binaries:
needs: [create-release]

runs-on:
- self-hosted
- Linux
- X64

strategy:
fail-fast: false
matrix:
Expand All @@ -71,6 +73,10 @@ jobs:
- build: freebsd
arch: amd64
target: x86_64-unknown-freebsd

permissions:
contents: write # needed to upload release assets

steps:
# Store the version, stripping any v-prefix
- name: Write release version
Expand All @@ -84,6 +90,10 @@ jobs:
with:
submodules: recursive

- name: Setup `packer`
uses: hashicorp/setup-packer@main
id: setup

- name: Install Rust stable
uses: actions-rs/toolchain@v1
with:
Expand Down Expand Up @@ -153,6 +163,26 @@ jobs:
fpm_args: "defguard-${{ github.ref_name }}-${{ matrix.target }}=/usr/bin/defguard defguard.service=/usr/lib/systemd/system/defguard.service .env-template=/etc/defguard/core.conf"
fpm_opts: "--architecture ${{ matrix.arch }} --debug --output-type deb --version ${{ env.VERSION }} --package defguard-${{ env.VERSION }}-${{ matrix.target }}.deb"

- name: Run `packer init`
if: matrix.build == 'linux' && matrix.arch == 'amd64'
id: init
run: "packer init ./images/ami/core.pkr.hcl"

- name: Build AMI images for multiple regions
if: matrix.build == 'linux' && matrix.arch == 'amd64'
run: |
regions=(us-east-1 eu-west-1 ap-northeast-1 eu-central-1)
for region in "${regions[@]}"; do
echo "Building AMI for region: $region"
echo "Running packer validate for $region..."
packer validate --var "package_version=${{ env.VERSION }}" --var "region=$region" ./images/ami/core.pkr.hcl
echo "Building AMI image for $region..."
packer build -color=false -on-error=abort --var "package_version=${{ env.VERSION }}" --var "region=$region" ./images/ami/core.pkr.hcl
done
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}

- name: Upload DEB
if: matrix.build == 'linux'
uses: actions/upload-release-asset@v1.0.2
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading