1365 Commits

Author SHA1 Message Date
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 45d9314163 NM-197: Assign and Unassign Gw apis (#3790)
* NM-197: Assign and Unassign Gw apis

* NM-197: fix static checks

* NM-197: fix assign api

* NM-197: add relayed node validity check on gw node
2025-12-18 15:37:19 +04:00
Vishal Dalwadi edcd55d53e fix: allow upsert flow logs settings to work only if clickhouse connects; (#3789) 2025-12-17 16:19:55 +04:00
Vishal Dalwadi ba9af3bfd6 Auto create default match all google dns nameserver (#3782)
* feat: auto create default match all google dns nameserver;

* fix: set column name;

* feat: prevent default ns delete;

* fix: set status;

* fix: create dns nameserver on network creation;
2025-12-16 15:58:04 +04:00
Abhishek Kondur 8266477624 NM-195: add key tags info to posture check on join (#3781) 2025-12-16 15:56:04 +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 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 b48c705c67 Allow updating auto-assign-gw on enrollment keys (#3768)
* feat(go): allow updating auto-assign-gw on enrollment keys;

* feat: prevent auto assign gateway if relay is set;
2025-12-11 10:39:44 +04:00
Abhishek Kondur 3a315bf1ce Merge pull request #3767 from gravitl/NM-187
NM-187: force delete user configs option
2025-12-10 14:02:38 +04:00
Abhishek Kondur 74d5525340 Merge pull request #3777 from gravitl/master
Master
2025-12-09 22:20:00 +04:00
abhishek9686 f5752fa60d v1.2.0: add auth to server shutdown api 2025-12-09 22:11:36 +04:00
Seena Fallah 6e5f500a4a controllers: return 404 on get network not found (#3729)
return http 404 when network is not there rather than an internal err.

Signed-off-by: Seena Fallah <seenafallah@gmail.com>
Co-authored-by: Abhishek Kondur <abhi281342@gmail.com>
2025-12-05 18:16:08 +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 d256707e85 remove autoenabling rac configs 2025-12-04 01:01:06 +04:00
abhishek9686 def287ea10 update host port on pull if changed 2025-11-28 17:30:12 +04:00
abhishek9686 610fc9815e check feature flags for auto join 2025-11-21 10:40:20 +04:00
abhishek9686 4fc206701f send pull signal on first node join 2025-11-07 19:06:00 +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
Abhishek K 23d48cad93 NM-159: peer connection interval, check old acl status (#3714)
* force update host dns field if node is acting as inet gw

* add old acl support checks
2025-11-04 11:57:54 +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
abhishek9686 e4d3be3fb8 add deprecation in the settings update 2025-11-03 01:40:31 +04:00
Abhishek K 2ab1994886 Merge pull request #3709 from gravitl/master
Master
2025-10-31 15:04:49 +04:00
Abhishek K 9f475addea fix pending hosts join (#3705) 2025-10-30 09:40:00 +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 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
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 49e28e3385 NM-137: Add addtional mq actions to host api (#3671)
* add host node update action

* add peer signal action to fallback api

* add replace peers to host pull

* add delete host action to fallback api

* update base go builder image

* update go builder tag

* check host port to avoid conflicts behind NAT

* fix connect/disconnect on api

* send pull signal on disconnect from UI

* fix panic on host join via user auth

* reset failover on disconnect
2025-10-07 13:16:31 +04:00
Vishal Dalwadi a116cc8360 Merge pull request #3664 from gravitl/NM-120
NM-120: Netmaker Desktop Improvements
2025-10-07 11:00:38 +04:00
abhishek9686 cfb5ac3781 supress unknown node error 2025-10-07 09:45:49 +04:00
abhishek9686 9d986ac36e simplify create egress checks 2025-10-02 07:23:27 +05:30
Vishal Dalwadi f995da621f fix(go): egress update; (#3674) 2025-10-01 13:53:00 +05:30
abhishek9686 1aca48f5ed handle FQDN in the egress domains 2025-09-23 15:29:07 +05:30
abhishek9686 061ae11bac add interface up and teardown option to ci script 2025-09-16 13:09:38 +05:30
abhishek9686 91a227f74b add ci-runner script 2025-09-16 11:07:38 +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
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
Vishal Dalwadi e2b576a3ec Release v1.1.0 Fixes. (#3643)
* fix(go): check for all networks access;

* fix(go): skip group on error;
2025-09-10 20:14:41 +05:30
abhishek9686 a3232234b3 fix: persist dns nameserver node ids 2025-09-08 07:52:08 +05:30
Vishal Dalwadi 0eb7792c71 Merge pull request #3637 from gravitl/NM-100
v1.1.0 Release Fixes
2025-09-08 07:36: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
Vishal Dalwadi 2d305e67a4 NM-86: Cleanup User Configs (#3603)
* feat(go): cleanup user extclients;

1. On disabling a user, remove all their extclients.
2. Add comments and rename variables to clarify the user group extclient cleanup function.

* feat(go): add checks for disable and enable user api;

* feat(go): refactor extclient cleanup on group network roles changes;

* feat(go): delete extclient on user group membership changes;
2025-08-25 10:24:15 +05:30
Abhishek K b1f0843d27 NM-76: add network user api (#3605)
* add network user api

* add remove network user api
2025-08-25 10:21:52 +05:30
Vishal Dalwadi 85e4877803 Merge pull request #3576 from gravitl/NM-38
NM-38: User Config Fixes
2025-08-12 14:07:45 +05:30