18 Commits

Author SHA1 Message Date
Tomas Kloda 552f765281 fixing missing sources in diff 2026-03-31 23:25:12 +02:00
Tomas Kloda ec2a4f1ec9 normalization 2026-03-31 23:08:46 +02:00
Tomas Kloda da74682398 fixing false diff 2026-03-31 22:49:24 +02:00
Tomas Kloda 4045d39929 moving to plugins 2026-03-31 22:20:40 +02:00
Jack Carter 2e4efde08b fix: null guard sync_records() in netbird_dns_zone
list_dns_zone_records() returns null for zones with no records,
causing TypeError when iterating. Same pattern fixed in #20 for
other modules — this one was missed.
2026-03-31 11:59:11 +02:00
Jack Carter 2041cd2d89 fix: preserve existing field values on partial updates
Changes module behavior so that omitting auto_groups, peers, or
similar list fields on update preserves the existing values instead
of wiping them to [].

Modules changed:
- netbird_setup_key: auto_groups default [] -> None, preserve on update
- netbird_group: peers default [] -> None, preserve on update,
  normalize peer dicts to IDs
- netbird_user: auto_groups default [] -> None, preserve on update

Also:
- Reimplement get_current_user() since /api/users/me does not exist.
  Now lists users and matches by is_current flag, with explicit error
  on multi-user deployments without the flag.
- Configure role: use default(omit) for setup key auto_groups so
  the module-level preservation works through the role.
- Configure role: conditional auto_groups resolution (skip when
  auto_groups not defined in YAML config).
- Configure role: DNS zone distribution_groups now handles both
  group names and raw IDs (falls back to original value when not
  found in group_ids map).
- Updated DOCUMENTATION strings to remove stale default: [] and
  document preservation behavior.
2026-03-30 21:21:28 +02:00
Jack Carter 5d85c3afef fix: null guard all API list iterations and fix role set_fact parsing
- Add (items or []) to all find_*_by_* functions across 12 modules.
  The NetBird API returns null for empty collections, causing TypeError
  when iterating. Affects find_group_by_name, find_policy_by_name,
  find_setup_key_by_name, find_user_by_email, find_user_by_name,
  find_network_by_name, find_route_by_network_id, find_nsgroup_by_name,
  find_zone_by_name, find_posture_check_by_name, find_idp_by_name,
  find_invite_by_email, find_token_by_name.

- Add (or []) to sync_routers and sync_resources in netbird_network
  for the same reason (new networks have null router/resource lists).

- Fix export role network enrichment: .get('json', []) does not work
  on Ansible uri module results. Changed to .json | default([]).

- Fix set_fact parsing in export and configure roles: {{ result | to_json }}
  produces a JSON string, not a list. Added | from_json so downstream
  loop directives receive proper lists (3 occurrences in configure,
  1 in export).

- Use urllib.parse.urlencode for query parameter encoding instead of
  raw f-string interpolation to prevent URL breakage with special chars.
2026-03-30 21:18:13 +02:00
Tomas Kloda c42857cdb6 fixed comparison issue in other modules 2026-03-27 14:30:41 +01:00
Tomas Kloda d4868ae8d3 comparison fix 2026-03-27 14:20:05 +01:00
Tomas Kloda 1402b81b64 module id fixes 2026-03-27 10:59:57 +01:00
Tomas Kloda 9cc6ab4f65 fix data types 2026-03-27 10:48:18 +01:00
Tomas Kloda f40dcf17bb adding dns zones support 2026-03-26 18:57:00 +01:00
Tomas Kloda 0cb8dffb5a sync with v0.67.0 2026-03-24 16:34:41 +01:00
Tomas Kloda 7a7f458b63 adding support for other roles 2026-01-13 18:14:14 +01:00
Tomas Kloda 8fd8e05255 address fix 2025-12-18 11:32:20 +01:00
Tomas Kloda 1774298fb7 updates 2025-12-18 11:25:41 +01:00
Tomas Kloda 678a2370aa fix validate cert error 2025-12-17 16:54:39 +01:00
Tomas Kloda 76a789cd98 initial commit 2025-12-17 16:19:29 +01:00