Commit Graph

1222 Commits

Author SHA1 Message Date
Dmitri Dolguikh
9a9317df2f disable network components on the mgmt server by default
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-20 11:44:34 +02:00
Dmitri Dolguikh
ce55620e37 Merge remote-tracking branch 'origin/main' into components-impl-drop-indexes-use-xids
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-17 10:39:34 +02:00
dmitri-netbird
877e889250 [management] fix fetching of missing settings in GetAccount call (#6800)
## Describe your changes

## Issue ticket number and link

## Stack

<!-- branch-stack -->

### Checklist
- [x] Is it a bug fix
- [ ] Is a typo/documentation fix
- [ ] Is a feature enhancement
- [ ] It is a refactor
- [ ] Created tests that fail without the change (if possible)
- [x] This change does **not** modify the public API, gRPC protocols,
functionality behavior, CLI / service flags, or introduce a new feature
— **OR** I have discussed it with the NetBird team beforehand (link the
issue / Slack thread in the description). See
[CONTRIBUTING.md](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTING.md#discuss-changes-with-the-netbird-team-first).

> By submitting this pull request, you confirm that you have read and
agree to the terms of the [Contributor License
Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md).

## Documentation
Select exactly one:

- [ ] I added/updated documentation for this change
- [x] Documentation is **not needed** for this change (explain why)

### Docs PR URL (required if "docs added" is checked)
Paste the PR link from https://github.com/netbirdio/docs here:

https://github.com/netbirdio/docs/pull/__

<!-- codesmith:footer -->
---
<a
href="https://app.blacksmith.sh/netbirdio/codesmith/netbird/pr/6800"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-light-v2.svg"><img
alt="View with Codesmith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/view-with-codesmith-dark-v2.svg"></picture></a>
<a
href="https://backend.blacksmith.sh/track/enable-autofix?expires=1786797566&installation_id=146802194&pr_number=6800&repository=netbirdio%2Fnetbird&return_to=https%3A%2F%2Fgithub.com%2Fnetbirdio%2Fnetbird%2Fpull%2F6800&signature=36a7053e1029e5de1d496fbd9c428a1745d0ec22b3e6479d64aafb1b8350b0ef"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-light.svg"><img
alt="Autofix with Codesmith"
src="https://pr-comments-assets.blacksmith.sh/codesmith/autofix-with-codesmith-dark.svg"></picture></a>
<sup>Need help on this PR? Tag <code>/codesmith</code> with what you
need. Autofix is disabled.</sup>

<!-- codesmith:autofix:disabled -->
<!-- /codesmith:footer -->

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Bug Fixes**
* Ensure account settings are fully preserved through save/load,
including automatic update and peer exposure preferences.

* **Tests**
* Added coverage to verify account settings remain unchanged after
database persistence and retrieval (skipped on Windows due to SQLite
limitations).
* Introduced deterministic test-data population helpers to reliably set
struct fields for deeper settings verification.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-17 10:38:43 +02:00
Dmitri Dolguikh
408ceb5170 fix import
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-16 18:04:22 +02:00
Dmitri Dolguikh
20243fcfee redid versioning
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-16 17:45:57 +02:00
Pascal Fischer
e1a24376ab [management] build routes for peer cache on network map components (#6780) 2026-07-15 18:24:48 +02:00
Dmitri Dolguikh
cfb534af8f use current context when logging sync message version
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-15 17:01:20 +02:00
Dmitri Dolguikh
14aad75e86 made commonSyncMessageVersion debug message more useful
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-15 16:49:59 +02:00
Dmitri Dolguikh
dd569a7ab6 Merge remote-tracking branch 'origin/main' into components-impl-drop-indexes-use-xids
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-15 15:57:47 +02:00
Dmitri Dolguikh
2ac1d77bf0 log highest common sync message version
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-15 15:57:06 +02:00
Pascal Fischer
8f901f8899 [management] enable pprof via env var (#6778) 2026-07-15 12:05:40 +02:00
Maycon Santos
c6bf5fbbfb [management,client] 0.74.5 branch sync (#6769)
## Describe your changes
* [proxy] enforce model allowlist for URL-routed providers
(Bedrock/Vertex) by @mlsmaycon in
https://github.com/netbirdio/netbird/pull/6764
* [management] Remove proxy peer stale deduplication logic by @mlsmaycon
in https://github.com/netbirdio/netbird/pull/6768
## Issue ticket number and link

## Stack

<!-- branch-stack -->

### Checklist
- [ ] Is it a bug fix
- [ ] Is a typo/documentation fix
- [ ] Is a feature enhancement
- [ ] It is a refactor
- [ ] Created tests that fail without the change (if possible)
- [ ] This change does **not** modify the public API, gRPC protocols,
functionality behavior, CLI / service flags, or introduce a new feature
— **OR** I have discussed it with the NetBird team beforehand (link the
issue / Slack thread in the description). See
[CONTRIBUTING.md](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTING.md#discuss-changes-with-the-netbird-team-first).

> By submitting this pull request, you confirm that you have read and
agree to the terms of the [Contributor License
Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md).

## Documentation
Select exactly one:

- [ ] I added/updated documentation for this change
- [x] Documentation is **not needed** for this change (explain why)

### Docs PR URL (required if "docs added" is checked)
Paste the PR link from https://github.com/netbirdio/docs here:

https://github.com/netbirdio/docs/pull/__


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Added model-allowlist guardrails for path-routed providers, including
Bedrock and Vertex.
  - Added Bedrock request support for chat interactions.
  - Added guardrail management capabilities.

- **Bug Fixes**
- Requests with missing or blank model identifiers are now denied when a
model allowlist is configured, improving fail-closed protection.
- Corrected provider-specific request handling and session tracking for
Bedrock interactions.

- **Tests**
- Expanded coverage for allowlist enforcement and provider routing
scenarios.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Theodor Midtlien <theodor@midtlien.com>
Co-authored-by: blaugrau90 <61945343+blaugrau90@users.noreply.github.com>
Co-authored-by: Viktor Liu <17948409+lixmal@users.noreply.github.com>
2026-07-14 21:22:40 +02:00
Dmitri Dolguikh
671a5f11fd pass sync message version in SyncResponse
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 17:14:16 +02:00
Dmitri Dolguikh
8a3bce259d responded to feedback
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 16:57:39 +02:00
Dmitri Dolguikh
c31ed6cbdf add tests for sync message versions
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 16:42:44 +02:00
Dmitri Dolguikh
9160873f94 Merge remote-tracking branch 'origin/main' into components-impl-drop-indexes-use-xids
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 14:17:53 +02:00
Dmitri Dolguikh
c15e1cec1d added support for per-account sync message versions
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 14:16:35 +02:00
Dmitri Dolguikh
bbe62e0223 more linter fixes
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 12:57:47 +02:00
Dmitri Dolguikh
300981db04 fix linter issues
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 12:56:11 +02:00
Dmitri Dolguikh
5d793985d4 add support for sync message version negotiation
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-14 12:12:49 +02:00
Pascal Fischer
62703ca23e [management] add logs to ephemeral delete (#6747) 2026-07-13 19:06:22 +02:00
Maycon Santos
831325d6e2 [management] require dashboard_features.agent_network when enabling agent_network_only (#6750)
Adds a settings constraint: enabling `agent_network_only` requires `dashboard_features.agent_network` to be `true` in the same account update. Without the Agent Network menu flag, a focused account that later turns the focused view off would lose access to the Agent Network menu entirely, so the two must be set together.

The check runs in `updateAccountRequestSettings` against the parsed request state: if the resulting settings have `agent_network_only == true` but `dashboard_features.agent_network` is not `true`, the update is rejected with `status.InvalidArgument` (HTTP 422) before anything is persisted.

The OpenAPI field descriptions for `agent_network_only` and `dashboard_features.agent_network` document the requirement. Only the descriptions changed — `required` and the schema `$ref` are untouched — and `types.gen.go` was regenerated from the spec (diff is the two comment lines).
2026-07-13 17:28:19 +02:00
Maycon Santos
ecd398d895 [management] Add dashboard_features account setting (#6742)
Introduce a nullable dashboard_features object on account settings, serialized
to a single JSON column so new dashboard sections can be added without schema
changes. Starts with agent_network (show the Agent Network menu for an account
without the deployment flag). Wires the API handler mapping, the pgx GetAccount
loader, and adds store round-trip and handler tests.
2026-07-12 21:16:37 +02:00
Maycon Santos
aa92ad3fb1 [management] Add agent_network_only account setting (#6736)
* [management] Add agent_network_only account setting

* [management] Load agent_network_only in pgx account loader and cover persistence
2026-07-12 14:46:08 +02:00
Maycon Santos
30d15ecc3d [client,management] sync 0.74.4 changes (#6727)
* [management] fix: prevent reverse proxy domain from being pushed as DNS search domain by @blaugrau90 in https://github.com/netbirdio/netbird/pull/6498
* [client] Recover from rosenpass key desync by @lixmal in https://github.com/netbirdio/netbird/pull/6714
* [client] Bump golang.org/x/crypto to v0.54.0 by @lixmal in https://github.com/netbirdio/netbird/pull/6709
* [client] fix MDM managementURL conflict on default-port URL echo by @riccardomanfrin in https://github.com/netbirdio/netbird/pull/6672
* [client] Update gopsutil to v4 by @mlsmaycon in https://github.com/netbirdio/netbird/pull/6688
* [client] Fix hanging status command during relay dial by @theodorsm in https://github.com/netbirdio/netbird/pull/6694

---------

Co-authored-by: Theodor Midtlien <theodor@midtlien.com>
Co-authored-by: blaugrau90 <61945343+blaugrau90@users.noreply.github.com>
Co-authored-by: Viktor Liu <17948409+lixmal@users.noreply.github.com>
2026-07-11 11:03:55 +02:00
Dmitri Dolguikh
d5178416af fix tests around encoding of minimal NetworkMapComponents
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-11 00:31:33 +02:00
Dmitri Dolguikh
0cb27ac4ad include the target peer in the minimal NetworkMapEnvelope's Peers field
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-11 00:03:12 +02:00
Dmitri Dolguikh
6ea97a8d6b support ComponentSyncResponse in affected peers sync path
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 21:21:55 +02:00
Dmitri Dolguikh
ff33942c52 do not instantiate cache to benchmark ToProtocolDNSConfig() without cache
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 20:17:16 +02:00
Dmitri Dolguikh
aff723e3bb add migrations for public_id column
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 19:23:14 +02:00
Dmitri Dolguikh
4aa486fde8 handle nil components consistently
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 17:12:51 +02:00
Dmitri Dolguikh
8803a58f12 inject agent network services when injecting proxy policies
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 15:46:33 +02:00
Dmitri Dolguikh
42c0cb5398 sort lookup inconsistencies when processing routes when computing components
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 12:58:49 +02:00
Dmitri Dolguikh
384b057f07 use return from GetValidatedPeerWithComponents when computing ComponentSyncResponse to prevent config drift
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 10:59:30 +02:00
Dmitri Dolguikh
35e339b6a9 set session expiry in ToComponentSyncResponse(), same as ToSyncResponse() path
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-10 10:45:54 +02:00
Dmitri Dolguikh
5941b267d2 responding to coderabbit comments
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-09 18:40:33 +02:00
Dmitri Dolguikh
ee7806ba7d Merge remote-tracking branch 'origin/main' into components-impl-drop-indexes-use-xids
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-09 17:27:11 +02:00
Dmitri Dolguikh
db231fd6ca updated decoder
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-09 17:18:57 +02:00
Dmitri Dolguikh
7cae1b9dd1 replaced sequential IDs with xids (random, uuid-like)
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-09 16:15:58 +02:00
Dmitri Dolguikh
5edc168ff1 use policy ids deduping policies during union
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-09 12:22:29 +02:00
Dmitri Dolguikh
9b9f396391 removed unused func
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-09 12:00:17 +02:00
Dmitri Dolguikh
7c83c090be fixed encoder tests
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-08 22:28:03 +02:00
Dmitri Dolguikh
7cde2c46e6 regenerated sql store mock
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-08 21:47:54 +02:00
Dmitri Dolguikh
a36a1a3c26 cleaned up wire representation of components
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
2026-07-08 21:29:14 +02:00
pascal
7c7dfd7f1d fix merge artifacts 2026-07-02 15:07:37 +02:00
Maycon Santos
859fe19fff [management] return nil when config is not set (#6642)
* [management] return nil when config is not set

* [management] add relay invariant test and enforce config behavior
2026-07-02 14:55:55 +02:00
Misha Bragin
e40cb294f6 [management] Add vLLM to Agent Network (#6643) 2026-07-02 14:45:24 +02:00
pascal
a59d979a21 Merge branch 'main' into nmap/components-impl 2026-07-02 14:10:44 +02:00
Maycon Santos
7d4736de55 [management] Enable lazy connections by default on new accounts (#6571)
With improvements in userspace lazy connection handling, we should be able to enable it for new accounts with less impact on users.

These connections are cheaper and only target traffic that should go through the tunnels, leaving all other tunnels in an idle state.
2026-07-01 22:08:43 +02:00
Maycon Santos
eb422a5cd3 [management,proxy] Add per-provider skip_tls_verification for agent-network (#6630)
* [management,proxy] Add per-provider skip_tls_verification for agent-network

Let agent-network providers opt into skipping upstream TLS verification for
self-hosted / internal gateways behind a private or self-signed cert.

- provider: add SkipTLSVerification (persisted via AutoMigrate) with
  request/response mapping (nil on update preserves, explicit false clears).
- openapi: skip_tls_verification on the provider request + response; types
  regenerated.
- synthesizer: carry the flag into the llm_router route config so it reaches
  the proxy.
- proxy: llm_router sets it on the UpstreamRewrite mutation, and the reverse
  proxy applies roundtrip.WithSkipTLSVerify per selected route when forwarding
  upstream (the router dials per provider, so a per-target flag alone wouldn't
  cover it).
- tests: synthesizer route config carries the flag, router rewrite propagates
  it, and the request/response round-trip incl. update semantics.

* [e2e] Validate per-provider skip_tls_verification end to end

Add a self-signed HTTPS upstream (nginx) to the harness and a test that
provisions two providers on that same upstream — one with
skip_tls_verification=true, one false — behind one proxy + client. The
skip=true provider's chat reaches the upstream (200); the skip=false
provider's fails the TLS handshake (5xx). Same upstream, opposite outcome,
which proves the flag is honoured per provider (a single target-level flag
could not, since all of an account's providers share one synthesised
target).

* [e2e] WaitProxyPeer: require >=1 connected peer, not exact 1/1

Each proxy container registers a fresh WireGuard key and its peer is not
removed on teardown, so proxy peers from earlier tests linger in the
account as disconnected. WaitProxyPeer matched the exact string
"1/1 Connected", which failed once a second proxy-using test ran in the
same package (status "1/2"). Parse the "Peers count: X/Y Connected" line
and wait for X>=1 instead: only the live proxy can be connected, and the
caller's subsequent chat is the real end-to-end assertion. Fixes the CI
failure of TestProviderSkipTLSVerification (runs after TestProvidersMatrix).
2026-07-01 20:43:15 +02:00