Commit graph

372 commits

Author SHA1 Message Date
Vishal Dalwadi
2062da5081
fix: construct a and-or clause instead of an and-and clause; (#3796) 2025-12-22 16:16:55 +04:00
Abhishek Kondur
0c9ed2542b
NM-202: fix egress domain routing (#3793)
* NM-195: add key tags info to posture check on join

* NM-195: add network user grps to posture check

* NM-195: add posture checks to middleware

* fix: return error when group network roles are set for specific networks and all networks;

* add all posture check to rsrc permission check func

* NM-202: fix egress domain routing

* fix: add username filter;

* feat: add fallback nameserver support;

* fix: add validation for pro as well;

* fix: skip fallback domains for user gws;

* fix: don't set domains for fallback dns servers;

* fix: validation fixes;

* fix: empty match domains for fallback nameservers;

---------

Co-authored-by: VishalDalwadi <dalwadivishal26@gmail.com>
2025-12-22 10:10:40 +04:00
Abhishek Kondur
a29cbb0f31
NM-160: Network User IP map API for operator (#3795)
* add user network ip mapping api

* fix user network ip api
2025-12-20 09:36:13 +04:00
Abhishek Kondur
ea75901f8f
NM-195: cleanup deleted tags and user groups from posturechecks, add nameserver to middleware (#3794)
* NM-195: add key tags info to posture check on join

* NM-195: add network user grps to posture check

* NM-195: add posture checks to middleware

* add all posture check to rsrc permission check func

* NM-195: cleanup deleted tags and user groups from posturechecks

* NM-195: add Nameserver to middleware
2025-12-19 17:36:39 +04:00
Abhishek Kondur
79dd46c8df
NM-195: Add posture check to middleware (#3791)
* NM-195: add key tags info to posture check on join

* NM-195: add network user grps to posture check

* NM-195: add posture checks to middleware

* add all posture check to rsrc permission check func
2025-12-19 09:51:32 +04:00
Abhishek Kondur
eea3494227
NM-195: fix user network grps posture check (#3788)
* NM-195: add key tags info to posture check on join

* NM-195: add network user grps to posture check
2025-12-17 14:05:23 +04:00
Abhishek Kondur
3e3d8c60a0
NM-195: Add posture check feature flag (#3780)
* NM-195: fix posture check for untagged resources

* NM-195: reduce default cleanup interval

* NM-195: reduce default cleanup interval

* Add posture checks to feature flag
2025-12-16 15:58:18 +04:00
Abhishek Kondur
4853c9c1a1
NM-195: fix posture check for untagged resources (#3779)
* NM-195: fix posture check for untagged resources

* NM-195: reduce default cleanup interval

* NM-195: reduce default cleanup interval
2025-12-15 14:35:29 +04:00
Vishal Dalwadi
a4981ffd26
NM-168: Network Flow Logs (#3754)
* feat(go): define flow events;

* feat(go): improve structure;

* feat(go): improve structure;

* feat(go): remove old flow definitions;

* feat(sql): add clickhouse init scripts;

* feat(sql): add protobuf spec;

* fix(sql): store ip as string;

* feat(go): move proto def to grpc dir;

* feat(go): use node instead of host as type; optimize protobuf defs;

* feat(go): add clickhouse db support; add endpoint to query flows;

* fix(go): fix clickhouse config;

* fix(go): use error response structure to report error;

* feat(go): pass flow logging status to netclient;

* feat(go): add peer ip identity map to host peer info;

* feat(go): remove prefix from participant obj fields;

* feat(go): add flow logs enabled field to host;

* feat(go): add filtering to get flow api;

* feat(go): fix record struct;

* feat(go): add exporter url to server config;

* feat(go): add exporter url to server config;

* feat(go): enable flow logs by default;

* feat(go): update nm-quick.sh;

* feat(go): update nm-quick.sh;

* feat(go): update nm-quick.sh;

* feat(go): update nm-quick.sh;

* feat(go): add db initialization logic;

* feat(go): filter by network id;

* fix(go): connection issue;

* fix(go): connection issue;

* fix(go): golang builder version;

* feat(go): add server settings for flow logs;

* feat(go): initialize clickhouse in pro; check for retention;

* feat(go): add exporter feature flags;

* feat(go): add grpc behind caddy;

* feat(go): expose ports correctly;

* fix(go): grpc caddyfile config;

* fix(go): publish exporter feature flags on license validation;

* fix(go): set server name for netmaker exporter;

* fix(go): set server name for netmaker exporter;

* fix(go): check for nil cancel func;

* fix(go): add flow logs field to api host;

* fix(go): add flow logs field to api host;

* fix(go): remove port from grpc setting;

* chore(go): tabs;

* feat(go): introduce egress range participant type;.

* feat(go): rename egress range to egress route for uniform language;

* feat(go): rename egress range to egress route for uniform language;

* feat: add peer addr identity map to host peer update;

* feat: add address identity map to host peer update;

* feat: add address identity map to host peer update;

* feat: set correct from and to args;

* feat: add support for filtering by node;

* feat: use corresponding base image;

* feat: update dockerfile base image version;

* fix: disable flow logs for all host when global settings are changed;
2025-12-12 14:12:00 +04:00
Abhishek Kondur
9f430b67a1
NM-188: optimise User migration DB writes (#3774)
* NM-188: optimise user DB writes on migration

* NM-188: remove user migration debug logs

* NM-188: add debug logs for user migration funcs

* NM-188: fix migration bug

* NM-188: update migration comments in the test file

* NM-188: fix static checks

* fix: save acl src and dst;

* fix: check for all network access;

---------

Co-authored-by: VishalDalwadi <dalwadivishal26@gmail.com>
2025-12-12 10:37:05 +04:00
Abhishek Kondur
4177348f12
NM-166: add user groups to posture checks (#3766)
* NM-166: add device posture checks apis and logic

* NM-166: add severity level to posture check and api to fetch all available attributes

* NM-166: register posture check schema

* add periodic posture check evaluation of nodes

* NM-166: add os family and kernel version to host model for linux

* add posture check violations on host registration, api to fetch node violations

* NM-166: trigger posture checks on posture checks updates

* NM-166: add version clean func

* NM-166: add allowed values for posture check attributes to api

* NM-166: format violation messages

* NM-166: fix static check

* NM-166: fix static check

* NM-166: add OS info to update extclient api

* NM-166: add sysinfo funcs

* set if only new values are not empty

* format client location

* fix posture violation for static nodes

* skip non user nodes from posture checks

* NM-166: check posture checks by tags

* NM-166: set host location before posture check

* validate posture checks by OR condition

* run posture check violation on node update

* NM-166: allow join on unviolated networks

* NM-166: update response message when posture checks are violated

* NM-166: fix static check

* NM-166: add mutex for posture check runs

* NM-166: add OS family fields to api host model

* NM-166: run posture eval for gateway ops

* NM-166: add user groups to posture checks

* NM-166: add default all user grp

* NM-166: fix posture check eval for users

* NM-166: handle user nodes in the posture checks

* NM-166: fix posture check for new config

* NM-166: skip auto update check on users and show violation on disbaled static nodes

* NM-166: add min verison check for attr

* NM-166: fix static check

* NM-166: add default admin groups
2025-12-11 12:19:30 +04:00
Vishal Dalwadi
e9e75d221d
Fix: IDP Integration (#3758)
* fix(go): prevent resetting user principal name;

* fix(go): user upn for get user and auth request;

* fix(go): unescape email before using;

* fix(go): use id as external idp id for google;

---------

Co-authored-by: Abhishek Kondur <abhi281342@gmail.com>
2025-12-05 18:32:54 +04:00
Abhishek Kondur
eed32cd2d6
Merge pull request #3735 from gravitl/NM-166
NM-166: Device Posture Checks
2025-12-05 10:33:11 +04:00
Abhishek Kondur
6533b827cf
Merge pull request #3765 from gravitl/master
Master
2025-12-05 10:32:57 +04:00
Abhishek Kondur
94f3716fdf
Merge pull request #3744 from gravitl/NM-167
NM-167: Auto delete Offline Nodes
2025-12-05 09:52:53 +04:00
abhishek9686
dcb0953d0a remove debug logs 2025-12-03 22:25:02 +04:00
abhishek9686
3d6a026355 fix user sync by groups in azure 2025-12-03 22:23:22 +04:00
abhishek9686
c6792ba4f2 add safe nil check for legacy acls 2025-12-02 18:10:44 +04:00
abhishek9686
3c4cb08692 remove netmaker ip check for nameserver 2025-11-25 15:55:00 +04:00
Vishal Dalwadi
76f2e3a5cd
Release v1.2.0 Fixes (#3728)
* feat(go): add user group as source to default network user acl;

* feat(go): handle "all_networks" network id when removing and cleaning up groups;

* feat(go): handle "all_networks" network id when updating groups;
2025-11-20 09:18:57 +04:00
abhishek9686
e4ab40dee6 remove unreachable code 2025-11-07 12:14:00 +04:00
abhishek9686
1944a9a8b2 disable failover field 2025-11-07 11:52:43 +04:00
Abhishek K
c643a50b67
NM-159: simplify auto assign gw logic (#3719)
* force update host dns field if node is acting as inet gw

* add old acl support checks

* move auto relay migration to pro pkg

* add check to avoid unsetting relayed node

* simplify auto assign gw logic

* send auto assign update on un relay

* set checking time to latest on updates

* fix HA auto Relay logic

* add relay node metrics to peer signal

* move auto relay peer check

* publish host peer update

* check and unset unrelayed auto peers

* use relay node mutex to avoid rac condition

* reset autorelayed peers on auto assign gw
2025-11-06 14:54:09 +04:00
Vishal Dalwadi
fc20b38851
Merge pull request #3718 from gravitl/fix/v1.2.0
Fixes v1.2.0
2025-11-06 13:55:52 +04:00
Vishal Dalwadi
b1e4d1158b
Release Fixes: v1.2.0 (#3713)
* feat(go): allow put and post requests to self;

* feat(go): add old objects to delete events;

* feat(go): add search domains to UserRemoteGws;
2025-11-04 11:46:16 +04:00
Vishal Dalwadi
94770a911d
Merge pull request #3707 from gravitl/NM-158
NM-158: Search Domain Support
2025-11-03 10:54:28 +04:00
Abhishek K
2ab1994886
Merge pull request #3709 from gravitl/master
Master
2025-10-31 15:04:49 +04:00
Abhishek K
74fef9fbc6
NM-122: Auto Relay, auto assignment of Gw (#3697)
* add auto realy handlers and logic funcs

* add pro func connectors

* Add auto relayed peer ips on peer update, set auto relay on gw creation

* add network id to signal, add autorelay nodes to peerudpate

* add autorelay peer update logic

* add nodes to peer update

* revert node model change

* reset auto relayed peers on the relay node on reset, add auto relay nodes to pull

* add logic api to update auto relay node

* add autoassigngw field to node, add logic to swith relay node in relayme udpate api

* add gw nodes to pull

* intilaise gw map

* HA relay functionality

* add autoassign gw option to enrollment key

* publish intant action to auto assign gw

* fix static checks

* unset relay if auto assign removed

* add host node model to auto relay info

* add host node model to auto relay info

* only use hostNode model for gws info

* handle autoassigned gw peer in the update

* handle autoassigned gw peer in the update

* handle peer updates for autoassigned gw peer

* unset auto assigned peer if relayed or failedovered
2025-10-28 09:53:31 +04:00
Abhishek K
c5b48db2a1
NM-125: Egress HA by Latency, Allow Tags to be selected as routing peers (#3698)
* enable egress routing peers with tags

* remove tag from egress when deleted

* fix egress tag functionality

* filter duplicate egress ips

* set default stun server if unset

* add version to status api

* sync deleted node udpate host deletion
2025-10-25 23:49:21 +04:00
Vishal Dalwadi
5448de6036
Allow Netmaker IPs for Nameservers (#3695)
* feat(go): allow netmaker nameserver ip;

* feat(go): filter out node's ips from nameservers;

* feat(go): update nameservers on node deletion;

* address nil checks

* address nil checks

---------

Co-authored-by: abhishek9686 <abhi281342@gmail.com>
2025-10-24 10:19:23 +04:00
Vishal Dalwadi
c4313a4b77
feat(go): add auditor role; (#3684) 2025-10-24 09:56:40 +04:00
Vishal Dalwadi
71fa5013d0
NM-145: Cost Per Network (#3685)
* feat(go): report per network usage as well;

* feat(go): move usage model and logic out of ee;
2025-10-24 09:53:33 +04:00
Vishal Dalwadi
69815449bd
NM-120: Netmaker Desktop DNS Improvements (#3690)
* feat(go): return extclient on create;

* feat(go): return success on delete;

* feat(go): set manage dns on user remote gw;
2025-10-24 09:46:01 +04:00
Abhishek K
54925a3ec9
fix platform user node status, add api for unassigned network user api (#3687) 2025-10-09 09:09:31 +04:00
Abhishek K
8e16c9f07a
IDP Group Filtering Update (#3656)
* fix(go): prevent creating network with fully-masked cidr;

* fix(go): filter out static non-user nodes;

* fix(go): prevent creation of networks with only broadcast and network ip;

* fix(go): cleanup user and groups resources on idp sync;

* fix(go): add "$filter" only once;

* fix(go): add "$filter" only once;

* fix(go): add "$filter" only once;

* fix(go): escape "$filter";

* feat(go): assign synced group global user role id;

---------

Co-authored-by: VishalDalwadi <dalwadivishal26@gmail.com>
Co-authored-by: Vishal Dalwadi <51291657+VishalDalwadi@users.noreply.github.com>
2025-09-18 22:58:30 +05:30
Abhishek K
cba62bfb83
Revert "Allows filters to be updated (#3650)" (#3655)
This reverts commit d90994ccab.
2025-09-18 22:39:36 +05:30
Vishal Dalwadi
d90994ccab
Allows filters to be updated (#3650)
* fix(go): prevent creating network with fully-masked cidr;

* fix(go): filter out static non-user nodes;

* fix(go): prevent creation of networks with only broadcast and network ip;

* fix(go): cleanup user and groups resources on idp sync;

* fix(go): add "$filter" only once;

* fix(go): add "$filter" only once;

* fix(go): add "$filter" only once;

* fix(go): escape "$filter";

* feat(go): assign synced group global user role id;
2025-09-18 22:37:22 +05:30
Abhishek K
aa913d6870
NM-116: Acl Fixes (#3652)
* handle all resources tag on gw

* add egress domain ranges to node acls

* simplify extclient egress alloweips, handle nil acl rule

* fix static node status check for gw acls

* skip ns ip if contains network cidr

* skip ns ip if contains network cidr

* skip ns ip if contains network cidr
2025-09-18 22:27:49 +05:30
Vishal Dalwadi
68707f61f9
Release v1.1.0 Fixes (#3649)
* fix(go): prevent creating network with fully-masked cidr;

* fix(go): filter out static non-user nodes;

* fix(go): prevent creation of networks with only broadcast and network ip;
2025-09-13 13:44:46 +05:30
Vishal Dalwadi
924fcf95bf
Okta IDP Integration (#3648)
* fix(go): handle pagination correctly;

* fix(go): handle api rate limits;
2025-09-13 13:43:30 +05:30
Abhishek K
9e0196126f
NM-79: Domain Based Egress Routing (#3607)
* add support for egress domain routing

* add domain info to egress range

* fix egress domain update

* send peer update domain resolution update

* add egress domain update in the peer update

* use range field for domain check

* add egress domain to host pull

* add egress domain model to egress host update

* add egress domain model to egress host update

* update egress domain model on acls

* add check of range if domain is set

* sync egress domains to dns system

* add egress domain to match domain list, fix egress nat rule for domains

* fix all rsrcs comms

* fix static checks

* fix egress acls on CE

* check for all resources access on a node

* simplify egress acl rules

* merged ce and pro acl rule func

* fix uni direction acl rule for static nodes

* allow relayed nodes traffic

* resolve merge conflicts

* remove anywhere dst rule on user node acls

* fix: broadcast  user groups update for acl changes

* add egress domain ans routes to nodes

* add egress ranges to DST

* add all egress ranges for all resources

* fix DNS routing acls rules
2025-09-11 15:24:17 +05:30
Vishal Dalwadi
57bf34da16
Release v1.1.0 Fixes (#3644)
* fix(go): check for all networks access;

* fix(go): skip group on error;

* fix(go): stabilize get user remote access gw;

* fix(go): use existing extclient sort function;

---------

Co-authored-by: Abhishek K <abhi281342@gmail.com>
2025-09-11 13:49:13 +05:30
Abhishek K
64c6472b42
NM-103: User Acls fixes (#3638)
* fix all rsrcs comms

* fix static checks

* fix egress acls on CE

* check for all resources access on a node

* simplify egress acl rules

* merged ce and pro acl rule func

* fix uni direction acl rule for static nodes

* allow relayed nodes traffic

* remove anywhere dst rule on user node acls

* fix: broadcast  user groups update for acl changes

* add egress ranges to DST

* add all egress ranges for all resources
2025-09-10 12:59:54 +05:30
Abhishek K
dd2aece0de
NM-103: fix all rsrcs comms (#3631)
* fix all rsrcs comms

* fix static checks

* fix egress acls on CE

* check for all resources access on a node

* simplify egress acl rules

* merged ce and pro acl rule func

* fix uni direction acl rule for static nodes

* allow relayed nodes traffic
2025-09-08 07:37:12 +05:30
abhishek9686
53c0b256ae resolve merge conflicts 2025-08-29 12:17:13 +05:30
abhishek9686
b10ce2da14 fix merger errors 2025-08-29 11:48:52 +05:30
abhishek9686
fda691836e fix static check 2025-08-29 11:41:43 +05:30
abhishek9686
7688bc3ebc resolve merge conflicts 2025-08-29 11:37:27 +05:30
Vishal Dalwadi
ec6e6c393a
Prevent removing idp integration when oauth user is superadmin (#3589)
* feat(go): prevent removing idp integration when oauth user is superadmin.

* feat(go): add suggestion for user;

* feat(go): remove usages of boolean fields on user;

* feat(go): set boolean fields correctly, but don't use;

* fix(go): static issues;

* feat(go): add suggestion for user;
2025-08-25 10:28:53 +05:30
Abhishek K
c3498004c1
NM-82: auto create new group network policies (#3610)
* check for all network user groups on gateways selection

* check network admin policy for admins and superadmins

* auto create default group gateways policies

* publish peer update on user group updates

* update name for default group policy
2025-08-25 10:28:24 +05:30