Commit graph

1021 commits

Author SHA1 Message Date
Max Ma bbca20e463
NET-1565:fix extClient ip conflict issue (#3082)
* fix extClient ip conflict issue

* Update users.go

---------

Co-authored-by: Abhishek K <abhishek@netmaker.io>
2024-08-28 18:58:07 +05:30
Abhishek K 0463b17ea5
NET-1227: Add Additional Oauth Scopes to fetch user email (#3079)
* add list roles to pro and ce

* if not pro set user role to admin

* validate update user

* add separate validation check for password on update

* remove validate check

* fix github SSO with invite signup

* add oauth scopes for user email

* remove debug log

* fix azure ad
2024-08-28 14:14:26 +05:30
Abhishek K 0a1558d5ac
NET-1227: fix update password on update user handler (#3077)
* add list roles to pro and ce

* if not pro set user role to admin

* validate update user

* add separate validation check for password on update

* remove validate check
2024-08-27 15:24:18 +05:30
Abhishek K d532060c50
Net 1227 v2 (#3075)
* add list roles to pro and ce

* if not pro set user role to admin

* validate update user

* add separate validation check for password on update
2024-08-27 13:36:53 +05:30
Abhishek K a4d528e267
Net 1227 v2 (#3074)
* add list roles to pro and ce

* if not pro set user role to admin

* validate update user
2024-08-27 12:29:32 +05:30
Abhishek K a39da31fa6
add list roles to pro and ce (#3072) 2024-08-27 11:51:13 +05:30
Abhishek K 5a4d0663da
NET-1227: User Cli cmds Update (#3064)
* generalise smtp config

* copy over smtp vars

* env new line

* fix master key api access

* comment user tests

* fix network and user invite for master key access

* remove email sender type

* user mgmt commands

* check user role on CE

* user role nmtcl cmds

* user groups commands

* fix role and groups command

* fix user create cmd

* add usage info

* rm user role check

* fix user update cmd

* fix static check
2024-08-25 07:25:40 +05:30
Abhishek K 2e8d95e80e
NET-1227: User Mgmt V2 (#3055)
* user mgmt models

* define user roles

* define models for new user mgmt and groups

* oauth debug log

* initialize user role after db conn

* print oauth token in debug log

* user roles CRUD apis

* user groups CRUD Apis

* additional api checks

* add additional scopes

* add additional scopes url

* add additional scopes url

* rm additional scopes url

* setup middlleware permission checks

* integrate permission check into middleware

* integrate permission check into middleware

* check for headers for subjects

* refactor user role models

* refactor user groups models

* add new user to pending user via RAC login

* untracked

* allow multiple groups for an user

* change json tag

* add debug headers

* refer network controls form roles, add debug headers

* refer network controls form roles, add debug headers

* replace auth checks, add network id to role model

* nodes handler

* migration funcs

* invoke sync users migration func

* add debug logs

* comment middleware

* fix get all nodes api

* add debug logs

* fix middleware error nil check

* add new func to get username from jwt

* fix jwt parsing

* abort on error

* allow multiple network roles

* allow multiple network roles

* add migration func

* return err if jwt parsing fails

* set global check to true when accessing user apis

* set netid for acls api calls

* set netid for acls api calls

* update role and groups routes

* add validation checks

* add invite flow apis and magic links

* add invited user via oauth signup automatically

* create invited user on oauth signup, with groups in the invite

* add group validation for user invite

* update create user handler with new role mgmt

* add validation checks

* create user invites tables

* add error logging for email invite

* fix invite singup url

* debug log

* get query params from url

* get query params from url

* add query escape

* debug log

* debug log

* fix user signup via invite api

* set admin field for backward compatbility

* use new role id for user apis

* deprecate use of old admin fields

* deprecate usage of old user fields

* add user role as service user if empty

* setup email sender

* delete invite after user singup

* add plaform user role

* redirect on invite verification link

* fix invite redirect

* temporary redirect

* fix invite redirect

* point invite link to frontend

* fix query params lookup

* add resend support, configure email interface types

* fix groups and user creation

* validate user groups, add check for metrics api in middleware

* add invite url to invite model

* migrate rac apis to new user mgmt

* handle network nodes

* add platform user to default role

* fix user role migration

* add default on rag creation and cleanup after deletion

* fix rac apis

* change to invite code param

* filter nodes and hosts based on user network access

* extend create user group req to accomodate users

* filter network based on user access

* format oauth error

* move user roles and groups

* fix get user v1 api

* move user mgmt func to pro

* add user auth type to user model

* fix roles init

* remove platform role from group object

* list only platform roles

* add network roles to invite req

* create default groups and roles

* fix middleware for global access

* create default role

* fix nodes filter with global network roles

* block selfupdate of groups and network roles

* delete netID if net roles are empty

* validate user roles nd groups on update

* set extclient permission scope when rag vpn access is set

* allow deletion of roles and groups

* replace _ with - in role naming convention

* fix failover middleware mgmt

* format oauth templates

* fetch route temaplate

* return err if user wrong login type

* check user groups on rac apis

* fix rac apis

* fix resp msg

* add validation checks for admin invite

* return oauth type

* format group err msg

* fix html tag

* clean up default groups

* create default rag role

* add UI name to roles

* remove default net group from user when deleted

* reorder migration funcs

* fix duplicacy of hosts

* check old field for migration

* from pro to ce make all secondary users admins

* from pro to ce make all secondary users admins

* revert: from pro to ce make all secondary users admins

* make sure downgrades work

* fix pending users approval

* fix duplicate hosts

* fix duplicate hosts entries

* fix cache reference issue

* feat: configure FRONTEND_URL during installation

* disable user vpn access when network roles are modified

* rm vpn acces when roles or groups are deleted

* add http to frontend url

* revert crypto version

* downgrade crytpo version

* add platform id check on user invites

---------

Co-authored-by: the_aceix <aceixsmartx@gmail.com>
2024-08-20 17:08:56 +05:30
Max Ma 46b8fd21c8
NET-1440: scale test changes (#3014)
* NET-1440 scale test changes

* fix UT error and add error info

* load metric data into cacha in startup

* remove debug info for metric

* add server telemetry and hasSuperAdmin to cache

* fix user UT case

* update sqlite connection string for performance

* update check-in TS in cache only if cache enabled

* update metric data in cache only if cache enabled and write to DB once in stop

* update server status in mq topic

* add failover existed to server status update

* only send mq messsage when there is server status change

* batch peerUpdate

* code changes for scale for review

* update UT case

* update mq client check

* mq connection code change

* revert server status update changes

* revert batch peerUpdate

* remove server status update info

* code changes based on review and setupmqtt in keepalive

* set the mq message order to false for PIN

* remove setupmqtt in keepalive

* recycle ip in node deletion

* update ip allocation logic

* remove ip addr cap

* remove ippool file

* update get extClient func

* remove ip from cache map when extClient is removed
2024-08-15 11:59:00 +05:30
Max Ma 5b9ccb74a9
improve message for create egressGW (#3001) 2024-07-09 18:56:36 +05:30
Max Ma f63dfaf4b5
NET-1288:add egress range check with netmaker network address (#2978)
* add egress range check with netmaker network address

* add egerssrange check for delete egressGW and extClientGW

* remove egress range check for delete
2024-07-05 15:53:46 +05:30
Abhishek K aeb76764c4
NET-1357: add endpoint to exisiting peer config (#2973)
* debug logs

* add endpoint to exisiting peer config

* rm debug logs

* don't set port to public port when host is static
2024-06-12 17:32:43 +05:30
Abhishek K 50d8da2dc2
Merge pull request #2958 from gravitl/NET-1268
NET-1268:seperate static port and static endpoint
2024-06-05 12:47:45 +05:30
Max Ma 0180481ddb fix egressing exclient set route issue 2024-06-03 19:41:13 +02:00
Max Ma c7469c79d0 rename isstaticendpoint to isstatic 2024-06-03 10:37:19 +02:00
Abhishek K 7ff30599ed
NET-1252: Restrict inetGws, Relays from getting failedOver (#2937)
* add additional checks to avoid failovers

* add failover defence check on signal handler

* only add check for victim node

* avoid failover reset on pull

* add relayed for failoverme

* misc changes for failover

* remove resetfailoverpeers for InetNode

* add egress route back to allowedip list if relayed is egressGW

* add extclient back to allowedip list if peer is ingressGW

* reset failover on pull

---------

Co-authored-by: Max Ma <mayabin@gmail.com>
2024-06-03 10:49:02 +04:00
Max Ma 35a8528030
NET-1154:fix stale node issue on multinet when deleting host (#2940)
* fix stale node issue on multinet when deleting host

* fix stale node when deleting host or uninstall
2024-06-03 10:28:21 +04:00
Max Ma 81a6c9cf8a seperate static port and static endpoint 2024-05-28 10:16:11 +02:00
the_aceix 78180c86be fix: add metadata field to create RAG 2024-05-17 10:45:32 +00:00
abhishek9686 86a0db981e fix overwriting of ipv6 endpoint 2024-05-16 09:34:01 +05:30
Max Ma 6dc881260f
NET-1224:add egressGW ip for setroutes (#2933)
* add egressGW ip for setroutes

* fix peer endpoint selection

---------

Co-authored-by: abhishek9686 <abhi281342@gmail.com>
2024-05-14 19:56:24 +05:30
momantech 7e2b5b196a
chore: fix some comments (#2918) 2024-05-08 12:17:23 +05:30
Abhishek K 2c38d1e8b1
Merge pull request #2923 from gravitl/hotfix/telemetry-trial-end-date
update develop with v0.24.0 hotfixes
2024-05-07 16:14:17 +05:30
the_aceix 5d02109252 fix(NET-1175): use default trial end date
this "more recent" arbitrary date is needed for hubspot to consume exported data without throwing out of date range exeptions
2024-05-03 12:52:55 +00:00
Abhishek K 76e0ba457a
Merge pull request #2910 from gravitl/kwesi/net-1175-posthog-trials-to-hubspot
fix(NET-1175): add "email" to telemetry data
2024-05-03 12:54:03 +05:30
Max Ma 1ad837ad72
NET-1164:PublishDeletedClientPeerUpdate when deleting user from RAGW (#2912)
* PublishDeletedClientPeerUpdate when deleting user from RAGW

* update ACLs after extClient is removed
2024-05-03 12:25:38 +05:30
Aceix 117c8ba1f1
fix: fix typo "admin_email" 2024-04-30 09:20:15 +00:00
Max Ma 7de252f996
add ipv6 address/network for egress (#2906) 2024-04-30 09:57:17 +05:30
the_aceix 42e522f96b fix(NET-1175): add "email" to telemetry data 2024-04-29 14:05:36 +00:00
abhishek9686 b2361be29b track failover usage 2024-04-17 17:22:47 +05:30
abhishek9686 564bcfc04e revert ipv6 peer addr change 2024-04-16 15:37:57 +05:30
Max Ma b4184aaa88 fix egress route ipv6 address issue 2024-04-16 11:22:49 +02:00
abhishek9686 7dc4e6c465 add node ipv6 addr to egress route 2024-04-16 11:29:06 +05:30
Max Ma 961f8eab6e
NET-1119 (#2886)
* exclude IngressGW in failover

* resetfailoverpeer when adding IngressGw if failover enabled

* exclude InetGW in failover

* get egress ranges of failedover peer

---------

Co-authored-by: abhishek9686 <abhi281342@gmail.com>
2024-04-12 18:22:03 +05:30
Abhishek K 66069fbc34
NET-1082: Scale Testing Fixes (#2894)
* add additional mutex lock on node acls func

* increase verbosity

* disable acls on cloud emqx

* add emqx creds creation to go routine

* add debug log of mq client id

* comment port check

* uncomment port check

* check for connection mq connection open

* use username for client id

* add write mutex on acl is allowed

* add mq connection lost handler on server

* spin off zombie init as go routine

* get whole api path from config

* Revert "get whole api path from config"

This reverts commit 392f5f4c5f.

* update extclient acls async

* add additional mutex lock on node acls func

(cherry picked from commit 5325f0e7d7)

* increase verbosity

(cherry picked from commit 705b3cf0bf)

* add emqx creds creation to go routine

(cherry picked from commit c8e65f4820)

* add debug log of mq client id

(cherry picked from commit 29c5d6ceca)

* comment port check

(cherry picked from commit db8d6d95ea)

* check for connection mq connection open

(cherry picked from commit 13b11033b0)

* use username for client id

(cherry picked from commit e90c7386de)

* add write mutex on acl is allowed

(cherry picked from commit 4cae1b0bb4)

* add mq connection lost handler on server

(cherry picked from commit c82918ad35)

* spin off zombie init as go routine

(cherry picked from commit 6d65c44c43)

* update extclient acls async

(cherry picked from commit 6557ef1ebe)

* additionl logs for oauth user flow

(cherry picked from commit 61703038ae)

* add more debug logs

(cherry picked from commit 5980beacd1)

* add more debug logs

(cherry picked from commit 4d001f0d27)

* add set auth secret

(cherry picked from commit f41cef5da5)

* fix fetch pass

(cherry picked from commit 825caf4b60)

* make sure auth secret is set only once

(cherry picked from commit ba33ed02aa)

* make sure auth secret is set only once

(cherry picked from commit 920ac4c507)

* comment usage of emqx acls

* replace  read lock with write lock on acls

* replace  read lock with write lock on acls

(cherry picked from commit 808d2135c8)

* use deadlock pkg for visibility

* add additional mutex locks

* remove race flag

* on mq re-connecting donot exit if failed

* on mq re-connecting donot exit if failed

* revert mutex package change

* set mq clean session

* remove debug log

* go mod tidy

* revert on prem emqx acls del
2024-04-11 21:18:57 +05:30
loselarry fa32c2ac58
chore: fix function names in comment (#2888)
Signed-off-by: loselarry <bikangning@yeah.net>
2024-04-11 21:04:24 +05:30
Max Ma 5740c3e009
Net 1115 (#2890)
* add endpointipv6 for host

* keep endpointipv6 unchanged when enable static endpoint

* handle ipv6 endpoint updates

---------

Co-authored-by: abhishek9686 <abhi281342@gmail.com>
2024-04-11 17:37:45 +05:30
Max Ma e0bde5b67f
Net 1088 (#2872)
* fix ipv6 only issue

* fix InetGw ipv6 issue

* refactor constants for NET1088

* fix extClient IPv6 empty issue
2024-04-09 11:50:07 +05:30
Abhishek K d3beb7e523
Oauth user logic cleanup (#2877)
* additionl logs for oauth user flow

* add more debug logs

* add more debug logs

* add set auth secret

* fix fetch pass

* make sure auth secret is set only once

* make sure auth secret is set only once
2024-04-08 20:07:48 +05:30
Abhishek K b7c8b738d7
NET-1064: Improved Oauth SignUp message prompts (#2875)
* add pending users api

* insert user to pending users on first time oauth login

* add pending user check on headless login

* fix conflicting apis

* no records error

* add allowed emails domains for oauth singup to config

* check if user is allowed to signup

* improve oauth message prompts

* handle trial enddate  error logs
2024-04-03 23:59:44 +05:30
Abhishek K dccb6b5da7
NET-1075: Endpoint detection server config (#2876)
* add config for endpoint detection

* add config to netmaker env file

* fix config value check for endpoint detection
2024-04-03 23:51:09 +05:30
Abhishek K 0d4552db5e
NET-1064: Oauth User SignUp Approval Flow (#2874)
* add pending users api

* insert user to pending users on first time oauth login

* add pending user check on headless login

* fix conflicting apis

* no records error

* add allowed emails domains for oauth singup to config

* check if user is allowed to signup
2024-04-03 11:20:19 +05:30
Abhishek K cfb28e2cdb
Merge pull request #2841 from gravitl/kwesi/net-1034-track-self-hosted-signups
feat(NET-1034): add trial data to telemetry
2024-03-17 07:58:48 +07:00
the_aceix ddb7879396 feat(NET-1034): add trial data to telemetry 2024-03-13 16:33:28 +00:00
Abhishek K c45f7bf022
Merge pull request #2839 from gravitl/NET-1047
NET-1047: ACLs mutex fix
2024-03-04 18:24:33 +07:00
abhishek9686 8ac864fec8 add update check for validate relay 2024-03-04 13:39:33 +07:00
abhishek9686 8e0580764b remove debug logs 2024-03-04 13:14:51 +07:00
abhishek9686 c25a732015 fix acl mutex lock 2024-03-04 13:11:51 +07:00
abhishek9686 f165f5fcf4 add debug logs to removing host from network 2024-03-04 12:51:37 +07:00
abhishek9686 0dae81438f add debug logs to removing host from network 2024-03-04 12:38:21 +07:00