Commit Graph
11 Commits
Author SHA1 Message Date
riccardom d09e035d20 docs: sign macOS profiles with CMS, and scope the iOS claims properly
Three review findings, all correct.

`productsign` signs installer packages, not configuration profiles, and
an Apple Developer ID certificate cannot sign a profile at all — Apple's
own guidance is that a `.mobileconfig` is a CMS signed-data message. The
instruction predates this branch but the commit that fixed the malformed
XML comment rewrote it, so it is fixed here rather than carried forward.
It was also misleading in a second way: a profile delivered through an
MDM is signed by the MDM channel, so a managed rollout has nothing to
sign by hand. The step now says that, and gives `security cms -S` for the
case where the profile is handed out some other way.

"Every key is enforced on iOS" contradicted the list of
platform-inapplicable keys three paragraphs below it; it now reads "every
key that applies to the platform", and points at that list.

The engine-applied group — blockInbound, wireguardPort, lazyConnection,
allowRemoteJobs, debugBundleUploadURL — was stated without qualification
under a table headed "iOS / tvOS", while the warning just above says the
tvOS engine never receives the policy. Marked as iOS, with the tvOS case
pointed back at that warning.
2026-09-18 14:37:32 +02:00
riccardom 54aa32788e docs: iOS enforces every key; document when a change reaches the tunnel
The iOS section was written while the policy stopped at the app: the
network extension that runs the engine has its own preferences domain,
and Apple's app-configuration channel does not deliver there. The app
now mirrors the configuration into the shared App Group and tells the
extension when it changes, so the keys the engine applies to the
connection are enforced too.

What replaces the old warning is a timing caveat, which is what an admin
actually needs in order to plan a rollout. The hand-off happens only
while the app is running: in the foreground a change reaches the tunnel
within about 30 seconds or immediately on activation, but iOS suspends a
backgrounded app, so a policy pushed — or withdrawn — in that window
applies the next time the app is opened. A tunnel brought up by VPN On
Demand or the widget therefore runs on the last policy the app saw.

tvOS keeps the old behaviour and now says so: the hand-off needs a shared
app group, which does not work between the tvOS app and its extension, so
only the interface is enforced there.

Also corrected: blockInbound, wireguardPort and lazyConnection are no
longer listed as having no effect but as having no control to lock, and
debugBundleUploadURL moves out of the ignored list, since the engine
applies it when a remote job produces a bundle. The app-config template
carries the same three keys and the same timing note.
2026-09-17 09:17:25 +02:00
riccardom 182b1b9e87 docs: document the MDM keys added since the page was written, and iOS
The reference table listed 18 of the 23 keys the client recognises, and
claimed a count of 16. Six keys were missing from every downloadable
template as well, including lazyConnection, which the page already
documented:

- lazyConnection, disableAdvancedView, enableLocalMetrics,
  localMetricsAddress, allowRemoteJobs and debugBundleUploadURL are now
  in the reference table and in netbird.admx/.adml, io.netbird.client.plist,
  netbird-macos.mobileconfig, netbird-macos.sh and netbird-policy.reg.
- Notes call out the two pairs that read as related but are not:
  disableMetricsCollection (anonymous telemetry) versus
  enableLocalMetrics (the client's own Prometheus endpoint), and
  disableAdvancedView being UI-only, so unlike its neighbours it never
  causes a request to be rejected.

iOS and tvOS now have a section of their own. The channel is Apple's
Managed App Configuration against bundle id io.netbird.app
(io.netbird.app.tv on tvOS), with a new netbird-ios-appconfig.plist
template and per-provider instructions. The section states what the
policy reaches today: the app locks its interface and refuses
configuration changes, while the tunnel engine runs in a Network
Extension that does not receive the app configuration, so keys the
engine applies to the connection are not enforced there yet.

Two template defects found on the way:

- netbird-macos.mobileconfig was not well-formed XML. Its header
  comment contained a double hyphen, which XML forbids inside a
  comment, so plutil -lint and any strict parser rejected the file an
  admin downloaded.
- netbird-policy.reg had one LF-terminated line among CRLF ones;
  normalised, with the UTF-16LE encoding reg import requires preserved.

Verified with npm run build and npm run lint:mdx, plus XML well-formedness
on all five XML templates, bash -n on the shell template, and a
cross-reference check that every string and presentation the ADMX
references is defined in the ADML.
2026-09-17 09:17:25 +02:00
Riccardo Manfrin accc461a7e Add Mdm auto start flag doc (#855)
* MDM disableAutoStart flag

* Added note on desktop only mode
2026-07-22 11:53:01 +02:00
Riccardo Manfrinandcoderabbitai[bot] 59405c5e73 Adds doc for Windows/macOS MDM integration (#783)
* Adds doc for Windows/macOS MDM integration

* Fixes coderabbit suggestions

* Update public/docs-static/files/netbird-policy.reg.ps1

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>

* Check port and allow/disallow in admitted values for macos script

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-06-19 22:47:02 +02:00
Maycon Santos e1b55db10d Add new relay endpoints for streamline-de-fra1 (#712) 2026-04-28 01:31:24 +02:00
Maycon Santos aa627eff0f Remove old relay and streamline regions (#529) 2025-12-26 11:29:56 +01:00
Maycon Santos e4ec49796d Add new nodes for various regions (#528) 2025-12-24 10:35:47 +01:00
Maycon Santos 1b73ce2855 Add new streamline-au-syd1 relay endpoints to netbird-cloud-endpoints.json (#503) 2025-12-01 09:38:08 +01:00
Maycon Santos abf5a83fb7 Add new streamline relay endpoints (#500)
across multiple regions to netbird-cloud-endpoints.json
2025-11-28 11:27:17 +01:00
132447961c Added list of STUN/TURN/Relay endpoints to FAQ page (#464)
* Added list of STUN/TURN/Relay endpoints to FAQ page

* removed port ranges in endpoint list, consilidated ipv6 & ipv6 entries

* turned FQDN field into an array

* pluralized FQDN field for clarity now that it's an array

---------

Co-authored-by: Ashley Mensah <ashleymensah@Ashleys-MBP.lan>
Co-authored-by: Ashley Mensah <ashley@netbird.io>
2025-11-07 14:33:59 +01:00