Releases: mbrav/pulumi-netbird
Releases · mbrav/pulumi-netbird
Release v0.2.0
Changelog
All notable changes to this project are documented in this file.
[0.2.0] - 2026-02-27
Added
- Added comprehensive
Checkvalidation failures across resources, with targeted property paths and actionable error messages:Network: non-emptyname.Peer: non-emptyname.Group: non-emptyname, non-emptypeers[*], non-emptyresources[*].id.DNS: non-emptyname, validprimary/domainsrelationship,searchDomainsEnabledconsistency, required nameservers, nameserveripandportvalidation.NetworkResource: non-emptyname,networkID,address, and non-emptygroupIDs[*].NetworkRouter: non-emptynetworkID, non-emptypeerwhen provided, non-emptypeerGroups[*], non-negativemetric, and requirement that eitherpeerorpeerGroupsis set.SetupKey: non-emptyname, validtype(reusableorone-off), non-negativeexpiresInandusageLimit, non-emptyautoGroups[*].Policy: non-emptyname, at least one rule, non-empty rule names, source/destination presence checks, non-empty ports, valid port ranges, and non-empty IDs/types forsourceResourceanddestinationResource.User: non-emptyrole, requiredemailfor non-service users, and non-emptynamewhen provided.
- Added shared helper utilities:
isBlank(string)for consistent whitespace-aware string validation.equalResourcesPtr(*[]Resource, *[]Resource)for stable resource list comparison in diffs.
Changed
- Bumped provider and schema version from
0.1.4to0.2.0. - Normalized several Pulumi schema property names to camelCase for consistency:
search_domains_enabled->searchDomainsEnablednetwork_id->networkIDgroup_ids->groupIDspeer_groups->peerGroupsposture_checks->postureChecksis_service_user->isServiceUserauto_groups->autoGroups
- Updated
Userschema contract:email,name,autoGroups, andblockedare optional inputs.requiredInputsnow requiresrole(andisServiceUserremains required in state schema).
- Regenerated Go SDK to align with schema updates:
- Renamed generated fields/accessors to camelCase equivalents.
- Updated plugin/default SDK version to
0.2.0. - Updated
Usergenerated types to pointer-capable variants where values are optional (e.g.,StringPtr,BoolPtr).
Fixed
- Corrected
DetailedDiffsemantics across resources:- Removed incorrect
InputDiff: trueusage where state-backed updates are expected. - Corrected property keys in diffs to match schema names after renames.
- Removed incorrect
- Corrected immutability and replacement behavior:
NetworkResource.networkIDnow diffed asUpdateReplace.NetworkRouter.networkIDnow diffed asUpdateReplace.SetupKeyimmutable fields (name,type,expiresIn,usageLimit,ephemeral,allowExtraDnsLabels) now diff asUpdateReplace.Userimmutable creation-only fields (name,email,isServiceUser) now diff asUpdateReplace.
- Added full
SetupKeyDiffimplementation to avoid missing/incorrect replacement signaling. - Fixed
Userread-path nil handling for APIIsServiceUserto avoid nil pointer dereference. - Fixed
Userdiff comparisons:- Pointer-aware comparison for
name/email. - Corrected
autoGroupschange detection logic. - Bool-pointer-safe comparison for
blocked.
- Pointer-aware comparison for
- Added guard in
Policy.Createto fail fast if API response is missing policy ID.
Breaking Changes
- Pulumi property names changed from snake_case to camelCase for several resource fields. Existing programs using old property names must be updated.
- Go SDK accessor and argument names changed to match renamed properties (for example,
Network_id()->NetworkID(),Peer_groups->PeerGroups). Useroutput/input type signatures changed for optional values (pointer-based inputs/outputs in generated SDK).- Some updates that were previously treated as in-place now trigger replacement where fields are immutable by API behavior (
SetupKey,Usercreation-only fields, router/resourcenetworkID).
Migration Notes
- Update Pulumi programs to use renamed camelCase fields listed above.
- For Go consumers, update renamed methods/fields and pointer-based optional arguments in
User. - Review workflows that update immutable fields:
- Expect replacement for
SetupKeyimmutable attributes. - Expect replacement for
Username/email/isServiceUser. - Expect replacement when changing
networkIDonNetworkResourceorNetworkRouter.
- Expect replacement for
- If stack state still contains old snake_case keys, refresh/import or re-apply with updated program definitions to reconcile schema changes.
Full Changelog: v0.1.4...v0.2.0
Release v0.1.4
Full Changelog: v0.1.3...v0.1.4
Release v0.1.3
Full Changelog: v0.1.2...v0.1.3
Release v0.1.2
Full Changelog: v0.1.1...v0.1.2
Release v0.1.1
Full Changelog: v0.1.0...v0.1.1
Release v0.1.0
Full Changelog: v0.0.29...v0.1.0
Release v0.0.29
Full Changelog: v0.0.28...v0.0.29
Release v0.0.28
Full Changelog: v0.0.27...v0.0.28
Release v0.0.27
Full Changelog: v0.0.26...v0.0.27
Release v0.0.26
Full Changelog: v0.0.25...v0.0.26