Commit graph

1320 commits

Author SHA1 Message Date
abhishek9686
6856e48c19 fix race conditions during assignment 2026-01-07 23:21:22 +04:00
abhishek9686
e217a4f69a v1.4.0: handle race conditions with gw assignments 2026-01-07 21:23:44 +04:00
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
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
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