Преглед изворни кода

switch to using settings from DB

abhishek9686 пре 5 месеци
родитељ
комит
7113ae7a35

+ 1 - 1
auth/host_session.go

@@ -67,7 +67,7 @@ func SessionHandler(conn *websocket.Conn) {
 	if len(registerMessage.User) > 0 { // handle basic auth
 		logger.Log(0, "user registration attempted with host:", registerMessage.RegisterHost.Name, "user:", registerMessage.User)
 
-		if !servercfg.IsBasicAuthEnabled() {
+		if !logic.IsBasicAuthEnabled() {
 			err = conn.WriteMessage(websocket.CloseMessage, websocket.FormatCloseMessage(websocket.CloseNormalClosure, ""))
 			if err != nil {
 				logger.Log(0, "error during message writing:", err.Error())

+ 3 - 3
controllers/dns.go

@@ -185,7 +185,7 @@ func createDNS(w http.ResponseWriter, r *http.Request) {
 		}
 	}
 
-	if servercfg.GetManageDNS() {
+	if logic.GetManageDNS() {
 		mq.SendDNSSyncByNetwork(netID)
 	}
 
@@ -230,7 +230,7 @@ func deleteDNS(w http.ResponseWriter, r *http.Request) {
 		}
 	}
 
-	if servercfg.GetManageDNS() {
+	if logic.GetManageDNS() {
 		mq.SendDNSSyncByNetwork(netID)
 	}
 
@@ -293,7 +293,7 @@ func pushDNS(w http.ResponseWriter, r *http.Request) {
 func syncDNS(w http.ResponseWriter, r *http.Request) {
 	// Set header
 	w.Header().Set("Content-Type", "application/json")
-	if !servercfg.GetManageDNS() {
+	if !logic.GetManageDNS() {
 		logic.ReturnErrorResponse(
 			w,
 			r,

+ 1 - 1
controllers/hosts.go

@@ -230,7 +230,7 @@ func pull(w http.ResponseWriter, r *http.Request) {
 		ChangeDefaultGw:   hPU.ChangeDefaultGw,
 		DefaultGwIp:       hPU.DefaultGwIp,
 		IsInternetGw:      hPU.IsInternetGw,
-		EndpointDetection: servercfg.IsEndpointDetectionEnabled(),
+		EndpointDetection: logic.IsEndpointDetectionEnabled(),
 	}
 
 	logger.Log(1, hostID, "completed a pull")

+ 1 - 1
controllers/migrate.go

@@ -134,7 +134,7 @@ func convertLegacyHostNode(legacy models.LegacyNode) (models.Host, models.Node)
 	host := models.Host{}
 	host.ID = uuid.New()
 	host.IPForwarding = models.ParseBool(legacy.IPForwarding)
-	host.AutoUpdate = servercfg.AutoUpdateEnabled()
+	host.AutoUpdate = logic.AutoUpdateEnabled()
 	host.Interface = "netmaker"
 	host.ListenPort = int(legacy.ListenPort)
 	if host.ListenPort == 0 {

+ 1 - 1
controllers/server.go

@@ -228,7 +228,7 @@ func getConfig(w http.ResponseWriter, r *http.Request) {
 
 	// get params
 
-	scfg := servercfg.GetServerConfig()
+	scfg := logic.GetServerConfig()
 	scfg.IsPro = "no"
 	if servercfg.IsPro {
 		scfg.IsPro = "yes"

+ 1 - 1
logic/hosts.go

@@ -228,7 +228,7 @@ func CreateHost(h *models.Host) error {
 		return err
 	}
 	h.HostPass = string(hash)
-	h.AutoUpdate = servercfg.AutoUpdateEnabled()
+	h.AutoUpdate = AutoUpdateEnabled()
 	checkForZombieHosts(h)
 	return UpsertHost(h)
 }

+ 2 - 2
logic/jwts.go

@@ -54,11 +54,11 @@ func CreateJWT(uuid string, macAddress string, network string) (response string,
 
 // CreateUserJWT - creates a user jwt token
 func CreateUserJWT(username string, role models.UserRoleID) (response string, err error) {
-	expirationTime := time.Now().Add(servercfg.GetServerConfig().JwtValidityDuration)
+	expirationTime := time.Now().Add(GetJwtValidityDuration())
 	claims := &models.UserClaims{
 		UserName:       username,
 		Role:           role,
-		RacAutoDisable: servercfg.GetRacAutoDisable() && (role != models.SuperAdminRole && role != models.AdminRole),
+		RacAutoDisable: GetRacAutoDisable() && (role != models.SuperAdminRole && role != models.AdminRole),
 		RegisteredClaims: jwt.RegisteredClaims{
 			Issuer:    "Netmaker",
 			Subject:   fmt.Sprintf("user|%s", username),

+ 1 - 1
logic/peers.go

@@ -157,7 +157,7 @@ func GetPeerUpdateForHost(network string, host *models.Host, allNodes []models.N
 		Peers:           []wgtypes.PeerConfig{},
 		NodePeers:       []wgtypes.PeerConfig{},
 		HostNetworkInfo: models.HostInfoMap{},
-		ServerConfig:    ServerInfo,
+		ServerConfig:    GetServerInfo(),
 	}
 	defer func() {
 		if !hostPeerUpdate.FwUpdate.AllowAll {

+ 230 - 40
logic/settings.go

@@ -2,6 +2,11 @@ package logic
 
 import (
 	"encoding/json"
+	"os"
+	"regexp"
+	"strconv"
+	"strings"
+	"time"
 
 	"github.com/gravitl/netmaker/config"
 	"github.com/gravitl/netmaker/database"
@@ -9,7 +14,6 @@ import (
 	"github.com/gravitl/netmaker/servercfg"
 )
 
-var ServerInfo = GetServerInfo()
 var serverSettingsDBKey = "server_cfg"
 
 func GetServerSettings() (s models.ServerSettings) {
@@ -30,7 +34,6 @@ func UpsertServerSettings(s models.ServerSettings) error {
 	if err != nil {
 		return err
 	}
-	setServerInfo()
 	return nil
 }
 
@@ -39,11 +42,11 @@ func ValidateNewSettings(req models.ServerSettings) bool {
 }
 
 func ConvertServerCfgToSettings(c config.ServerConfig) (s models.ServerSettings) {
-	s.NetclientAutoUpdate = c.NetclientAutoUpdate
+	s.NetclientAutoUpdate = c.NetclientAutoUpdate != "disabled"
 	s.AllowedEmailDomains = c.AllowedEmailDomains
 	s.AuthProvider = c.AuthProvider
 	s.AzureTenant = c.AzureTenant
-	s.BasicAuth = c.BasicAuth
+	s.BasicAuth = c.BasicAuth == "yes"
 	s.ClientID = c.ClientID
 	s.ClientSecret = c.ClientSecret
 	s.OIDCIssuer = c.OIDCIssuer
@@ -63,48 +66,78 @@ func ConvertServerCfgToSettings(c config.ServerConfig) (s models.ServerSettings)
 	s.ManageDNS = c.ManageDNS
 	s.MetricInterval = c.MetricInterval
 	s.MetricsPort = c.MetricsPort
-	s.NetclientAutoUpdate = c.NetclientAutoUpdate
+	s.NetclientAutoUpdate = c.NetclientAutoUpdate != "disabled"
 	s.Telemetry = c.Telemetry
 	s.RacAutoDisable = c.RacAutoDisable
 	s.RacRestrictToSingleNetwork = c.RacRestrictToSingleNetwork
+	s.DefaultDomain = c.DefaultDomain
 	return
 }
 
-func MergeServerSettingsToServerConfig(s *config.ServerConfig) {
-	c := GetServerSettings()
-
-	s.NetclientAutoUpdate = c.NetclientAutoUpdate
-	s.AllowedEmailDomains = c.AllowedEmailDomains
-	s.AuthProvider = c.AuthProvider
-	s.AzureTenant = c.AzureTenant
-	s.BasicAuth = c.BasicAuth
-	s.ClientID = c.ClientID
-	s.ClientSecret = c.ClientSecret
-	s.OIDCIssuer = c.OIDCIssuer
-	s.EmailSenderAddr = c.EmailSenderAddr
-	s.EmailSenderPassword = c.EmailSenderPassword
-	s.EmailSenderUser = c.EmailSenderUser
-	s.EndpointDetection = c.EndpointDetection
-	s.SmtpHost = c.SmtpHost
-	s.SmtpPort = c.SmtpPort
-	s.Stun = c.Stun
-	s.StunServers = c.StunServers
-	s.FrontendURL = c.FrontendURL
-	s.JwtValidityDuration = c.JwtValidityDuration
-	s.AllowedEmailDomains = c.AllowedEmailDomains
-	s.LicenseValue = c.LicenseValue
-	s.NetmakerTenantID = c.NetmakerTenantID
-	s.ManageDNS = c.ManageDNS
-	s.MetricInterval = c.MetricInterval
-	s.MetricsPort = c.MetricsPort
-	s.NetclientAutoUpdate = c.NetclientAutoUpdate
-	s.Telemetry = c.Telemetry
-	s.RacAutoDisable = c.RacAutoDisable
-	s.RacRestrictToSingleNetwork = c.RacRestrictToSingleNetwork
-}
+// GetServerConfig - gets the server config into memory from file or env
+func GetServerConfig() config.ServerConfig {
+	var cfg config.ServerConfig
+	cfg.APIConnString = servercfg.GetAPIConnString()
+	cfg.CoreDNSAddr = servercfg.GetCoreDNSAddr()
+	cfg.APIHost = servercfg.GetAPIHost()
+	cfg.APIPort = servercfg.GetAPIPort()
+	cfg.MasterKey = "(hidden)"
+	cfg.DNSKey = "(hidden)"
+	cfg.AllowedOrigin = servercfg.GetAllowedOrigin()
+	cfg.RestBackend = "off"
+	cfg.NodeID = servercfg.GetNodeID()
+	cfg.BrokerType = servercfg.GetBrokerType()
+	cfg.EmqxRestEndpoint = servercfg.GetEmqxRestEndpoint()
+	if AutoUpdateEnabled() {
+		cfg.NetclientAutoUpdate = "enabled"
+	} else {
+		cfg.NetclientAutoUpdate = "disabled"
+	}
+	if servercfg.IsRestBackend() {
+		cfg.RestBackend = "on"
+	}
+	cfg.DNSMode = "off"
+	if servercfg.IsDNSMode() {
+		cfg.DNSMode = "on"
+	}
+	cfg.DisplayKeys = "off"
+	if servercfg.IsDisplayKeys() {
+		cfg.DisplayKeys = "on"
+	}
+	cfg.DisableRemoteIPCheck = "off"
+	if servercfg.DisableRemoteIPCheck() {
+		cfg.DisableRemoteIPCheck = "on"
+	}
+	cfg.Database = servercfg.GetDB()
+	cfg.Platform = servercfg.GetPlatform()
+	cfg.Version = servercfg.GetVersion()
+	cfg.PublicIp = servercfg.GetServerHostIP()
 
-func setServerInfo() {
-	ServerInfo = GetServerInfo()
+	// == auth config ==
+	var authInfo = GetAuthProviderInfo()
+	cfg.AuthProvider = authInfo[0]
+	cfg.ClientID = authInfo[1]
+	cfg.ClientSecret = authInfo[2]
+	cfg.FrontendURL = servercfg.GetFrontendURL()
+	cfg.AzureTenant = GetAzureTenant()
+	cfg.Telemetry = Telemetry()
+	cfg.Server = servercfg.GetServer()
+	cfg.Verbosity = GetVerbosity()
+	cfg.IsPro = "no"
+	if servercfg.IsPro {
+		cfg.IsPro = "yes"
+	}
+	cfg.JwtValidityDuration = GetJwtValidityDuration()
+	cfg.RacAutoDisable = GetRacAutoDisable()
+	cfg.RacRestrictToSingleNetwork = GetRacRestrictToSingleNetwork()
+	cfg.MetricInterval = GetMetricInterval()
+	cfg.ManageDNS = GetManageDNS()
+	cfg.Stun = IsStunEnabled()
+	cfg.StunServers = GetStunServers()
+	cfg.DefaultDomain = GetDefaultDomain()
+	cfg.LicenseValue = GetLicenseKey()
+	cfg.NetmakerTenantID = GetNetmakerTenantID()
+	return cfg
 }
 
 // GetServerInfo - gets the server config into memory from file or env
@@ -135,7 +168,164 @@ func GetServerInfo() models.ServerConfig {
 	cfg.ManageDNS = serverSettings.ManageDNS
 	cfg.Stun = serverSettings.Stun
 	cfg.StunServers = serverSettings.StunServers
-	cfg.DefaultDomain = servercfg.GetDefaultDomain()
+	cfg.DefaultDomain = serverSettings.DefaultDomain
 	cfg.EndpointDetection = serverSettings.EndpointDetection
 	return cfg
 }
+
+// GetDefaultDomain - get the default domain
+func GetDefaultDomain() string {
+	return GetServerSettings().DefaultDomain
+}
+
+func ValidateDomain(domain string) bool {
+	domainPattern := `[a-zA-Z0-9][a-zA-Z0-9_-]{0,62}(\.[a-zA-Z0-9][a-zA-Z0-9_-]{0,62})*(\.[a-zA-Z][a-zA-Z0-9]{0,10}){1}`
+
+	exp := regexp.MustCompile("^" + domainPattern + "$")
+
+	return exp.MatchString(domain)
+}
+
+// Telemetry - checks if telemetry data should be sent
+func Telemetry() string {
+	return GetServerSettings().Telemetry
+}
+
+// GetJwtValidityDuration - returns the JWT validity duration in seconds
+func GetJwtValidityDuration() time.Duration {
+	return GetServerConfig().JwtValidityDuration
+}
+
+// GetRacAutoDisable - returns whether the feature to autodisable RAC is enabled
+func GetRacAutoDisable() bool {
+	return GetServerSettings().RacAutoDisable
+}
+
+// GetRacRestrictToSingleNetwork - returns whether the feature to allow simultaneous network connections via RAC is enabled
+func GetRacRestrictToSingleNetwork() bool {
+	return GetServerSettings().RacRestrictToSingleNetwork
+}
+
+func GetSmtpHost() string {
+	return GetServerSettings().SmtpHost
+}
+
+func GetSmtpPort() int {
+	return GetServerSettings().SmtpPort
+}
+
+func GetSenderEmail() string {
+	return GetServerSettings().EmailSenderAddr
+}
+
+func GetSenderUser() string {
+	return GetServerSettings().EmailSenderUser
+}
+
+func GetEmaiSenderPassword() string {
+	return GetServerSettings().EmailSenderPassword
+}
+
+// AutoUpdateEnabled returns a boolean indicating whether netclient auto update is enabled or disabled
+// default is enabled
+func AutoUpdateEnabled() bool {
+	return GetServerSettings().NetclientAutoUpdate
+}
+
+// GetAuthProviderInfo = gets the oauth provider info
+func GetAuthProviderInfo() (pi []string) {
+	var authProvider = ""
+
+	defer func() {
+		if authProvider == "oidc" {
+			if GetServerSettings().OIDCIssuer != "" {
+				pi = append(pi, GetServerSettings().OIDCIssuer)
+			} else {
+				pi = []string{"", "", ""}
+			}
+		}
+	}()
+
+	if GetServerSettings().AuthProvider != "" && GetServerSettings().ClientID != "" && GetServerSettings().ClientSecret != "" {
+		authProvider = strings.ToLower(GetServerSettings().AuthProvider)
+		if authProvider == "google" || authProvider == "azure-ad" || authProvider == "github" || authProvider == "oidc" {
+			return []string{authProvider, GetServerSettings().ClientID, GetServerSettings().ClientSecret}
+		} else {
+			authProvider = ""
+		}
+	}
+	return []string{"", "", ""}
+}
+
+// GetAzureTenant - retrieve the azure tenant ID from env variable or config file
+func GetAzureTenant() string {
+	return GetServerSettings().AzureTenant
+}
+
+// GetMetricsPort - get metrics port
+func GetMetricsPort() int {
+	return GetServerSettings().MetricsPort
+}
+
+// GetMetricInterval - get the publish metric interval
+func GetMetricIntervalInMinutes() time.Duration {
+	//default 15 minutes
+	mi := "15"
+	if os.Getenv("PUBLISH_METRIC_INTERVAL") != "" {
+		mi = os.Getenv("PUBLISH_METRIC_INTERVAL")
+	}
+	interval, err := strconv.Atoi(mi)
+	if err != nil {
+		interval = 15
+	}
+
+	return time.Duration(interval) * time.Minute
+}
+
+// GetMetricInterval - get the publish metric interval
+func GetMetricInterval() string {
+	return GetServerSettings().MetricInterval
+}
+
+// GetManageDNS - if manage DNS enabled or not
+func GetManageDNS() bool {
+	return GetServerSettings().ManageDNS
+}
+
+// IsBasicAuthEnabled - checks if basic auth has been configured to be turned off
+func IsBasicAuthEnabled() bool {
+	return GetServerSettings().BasicAuth
+}
+
+// GetLicenseKey - retrieves pro license value from env or conf files
+func GetLicenseKey() string {
+	return GetServerSettings().LicenseValue
+}
+
+// GetNetmakerTenantID - get's the associated, Netmaker, tenant ID to verify ownership
+func GetNetmakerTenantID() string {
+	return GetServerSettings().NetmakerTenantID
+}
+
+// IsEndpointDetectionEnabled - returns true if endpoint detection enabled
+func IsEndpointDetectionEnabled() bool {
+	return GetServerSettings().EndpointDetection
+}
+
+// IsStunEnabled - returns true if STUN set to on
+func IsStunEnabled() bool {
+	return GetServerSettings().Stun
+}
+
+func GetStunServers() string {
+	return GetServerSettings().StunServers
+}
+
+// GetAllowedEmailDomains - gets the allowed email domains for oauth signup
+func GetAllowedEmailDomains() string {
+	return GetServerSettings().AllowedEmailDomains
+}
+
+func GetVerbosity() int32 {
+	return GetServerSettings().Verbosity
+}

+ 2 - 1
logic/telemetry.go

@@ -7,6 +7,7 @@ import (
 
 	"github.com/gravitl/netmaker/database"
 	"github.com/gravitl/netmaker/logger"
+
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/servercfg"
 	"github.com/posthog/posthog-go"
@@ -33,7 +34,7 @@ func SetFreeTierForTelemetry(freeTierFlag bool) {
 
 // sendTelemetry - gathers telemetry data and sends to posthog
 func sendTelemetry() error {
-	if servercfg.Telemetry() == "off" {
+	if Telemetry() == "off" {
 		return nil
 	}
 

+ 3 - 2
models/settings.go

@@ -3,7 +3,7 @@ package models
 import "time"
 
 type ServerSettings struct {
-	NetclientAutoUpdate        string        `json:"netclientautoupdate"`
+	NetclientAutoUpdate        bool          `json:"netclientautoupdate"`
 	Verbosity                  int32         `json:"verbosity"`
 	AuthProvider               string        `json:"authprovider"`
 	OIDCIssuer                 string        `json:"oidcissuer"`
@@ -12,7 +12,7 @@ type ServerSettings struct {
 	FrontendURL                string        `json:"frontend_url"`
 	AzureTenant                string        `json:"azure_tenant"`
 	Telemetry                  string        `json:"telemetry"`
-	BasicAuth                  string        `json:"basic_auth"`
+	BasicAuth                  bool          `json:"basic_auth"`
 	LicenseValue               string        `json:"license_value"`
 	NetmakerTenantID           string        `json:"netmaker_tenant_id"`
 	StunPort                   int           `json:"stun_port"`
@@ -29,6 +29,7 @@ type ServerSettings struct {
 	MetricInterval             string        `json:"metric_interval"`
 	MetricsPort                int           `json:"metrics_port"`
 	ManageDNS                  bool          `json:"manage_dns"`
+	DefaultDomain              string        `json:"default_domain"`
 	Stun                       bool          `json:"stun"`
 	StunServers                string        `json:"stun_servers"`
 }

+ 1 - 1
mq/publishers.go

@@ -21,7 +21,7 @@ func PublishPeerUpdate(replacePeers bool) error {
 		return nil
 	}
 
-	if servercfg.GetManageDNS() {
+	if logic.GetManageDNS() {
 		sendDNSSync()
 	}
 

+ 3 - 3
pro/auth/auth.go

@@ -47,7 +47,7 @@ var (
 )
 
 func getCurrentAuthFunctions() map[string]interface{} {
-	var authInfo = servercfg.GetAuthProviderInfo()
+	var authInfo = logic.GetAuthProviderInfo()
 	var authProvider = authInfo[0]
 	switch authProvider {
 	case google_provider_name:
@@ -74,7 +74,7 @@ func InitializeAuthProvider() string {
 	if err != nil {
 		logger.FatalLog("failed to set auth_secret", err.Error())
 	}
-	var authInfo = servercfg.GetAuthProviderInfo()
+	var authInfo = logic.GetAuthProviderInfo()
 	var serverConn = servercfg.GetAPIHost()
 	if strings.Contains(serverConn, "localhost") || strings.Contains(serverConn, "127.0.0.1") {
 		serverConn = "http://" + serverConn
@@ -275,7 +275,7 @@ func isStateCached(state string) bool {
 
 // isEmailAllowed - checks if email is allowed to signup
 func isEmailAllowed(email string) bool {
-	allowedDomains := servercfg.GetAllowedEmailDomains()
+	allowedDomains := logic.GetAllowedEmailDomains()
 	domains := strings.Split(allowedDomains, ",")
 	if len(domains) == 1 && domains[0] == "*" {
 		return true

+ 1 - 1
pro/auth/azure-ad.go

@@ -35,7 +35,7 @@ func initAzureAD(redirectURL string, clientID string, clientSecret string) {
 		ClientID:     clientID,
 		ClientSecret: clientSecret,
 		Scopes:       []string{"User.Read", "email", "profile", "openid"},
-		Endpoint:     microsoft.AzureADEndpoint(servercfg.GetAzureTenant()),
+		Endpoint:     microsoft.AzureADEndpoint(logic.GetAzureTenant()),
 	}
 }
 

+ 1 - 1
pro/controllers/users.go

@@ -237,7 +237,7 @@ func inviteUsers(w http.ResponseWriter, r *http.Request) {
 		}
 		if servercfg.DeployedByOperator() {
 			u, err = url.Parse(fmt.Sprintf("%s/invite?tenant_id=%s&email=%s&invite_code=%s",
-				proLogic.GetAccountsUIHost(), url.QueryEscape(servercfg.GetNetmakerTenantID()), url.QueryEscape(invite.Email), url.QueryEscape(invite.InviteCode)))
+				proLogic.GetAccountsUIHost(), url.QueryEscape(logic.GetNetmakerTenantID()), url.QueryEscape(invite.Email), url.QueryEscape(invite.InviteCode)))
 			if err != nil {
 				slog.Error("failed to parse to invite url", "error", err)
 				return

+ 6 - 6
pro/email/email.go

@@ -4,7 +4,7 @@ import (
 	"context"
 	"regexp"
 
-	"github.com/gravitl/netmaker/servercfg"
+	"github.com/gravitl/netmaker/logic"
 )
 
 type EmailSenderType string
@@ -19,11 +19,11 @@ const (
 func init() {
 
 	smtpSender := &SmtpSender{
-		SmtpHost:    servercfg.GetSmtpHost(),
-		SmtpPort:    servercfg.GetSmtpPort(),
-		SenderEmail: servercfg.GetSenderEmail(),
-		SendUser:    servercfg.GetSenderUser(),
-		SenderPass:  servercfg.GetEmaiSenderPassword(),
+		SmtpHost:    logic.GetSmtpHost(),
+		SmtpPort:    logic.GetSmtpPort(),
+		SenderEmail: logic.GetSenderEmail(),
+		SendUser:    logic.GetSenderUser(),
+		SenderPass:  logic.GetEmaiSenderPassword(),
 	}
 	if smtpSender.SendUser == "" {
 		smtpSender.SendUser = smtpSender.SenderEmail

+ 3 - 2
pro/email/invite.go

@@ -3,6 +3,7 @@ package email
 import (
 	"fmt"
 
+	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
 	proLogic "github.com/gravitl/netmaker/pro/logic"
 	"github.com/gravitl/netmaker/servercfg"
@@ -27,7 +28,7 @@ func (invite UserInvitedMail) GetBody(info Notification) string {
 
 	dashboardURL := fmt.Sprintf("https://dashboard.%s", servercfg.GetNmBaseDomain())
 	if servercfg.DeployedByOperator() {
-		dashboardURL = fmt.Sprintf("%s/dashboard?tenant_id=%s", proLogic.GetAccountsUIHost(), servercfg.GetNetmakerTenantID())
+		dashboardURL = fmt.Sprintf("%s/dashboard?tenant_id=%s", proLogic.GetAccountsUIHost(), logic.GetNetmakerTenantID())
 	}
 
 	content := invite.BodyBuilder.
@@ -44,7 +45,7 @@ func (invite UserInvitedMail) GetBody(info Notification) string {
 			WithHtml(fmt.Sprintf("<li>Access the <a href=\"%s\">Netmaker Dashboard</a> - use it to manage your network settings and view network status.</li>", dashboardURL))
 	}
 
-	connectionID := servercfg.GetNetmakerTenantID()
+	connectionID := logic.GetNetmakerTenantID()
 	if !servercfg.DeployedByOperator() {
 		connectionID = fmt.Sprintf("api.%s", servercfg.GetNmBaseDomain())
 	}

+ 4 - 3
pro/license.go

@@ -9,11 +9,12 @@ import (
 	"encoding/json"
 	"errors"
 	"fmt"
-	"github.com/gravitl/netmaker/utils"
 	"io"
 	"net/http"
 	"time"
 
+	"github.com/gravitl/netmaker/utils"
+
 	"golang.org/x/crypto/nacl/box"
 	"golang.org/x/exp/slog"
 
@@ -58,8 +59,8 @@ func ValidateLicense() (err error) {
 		servercfg.ErrLicenseValidation = err
 	}()
 
-	licenseKeyValue := servercfg.GetLicenseKey()
-	netmakerTenantID := servercfg.GetNetmakerTenantID()
+	licenseKeyValue := logic.GetServerSettings().LicenseValue
+	netmakerTenantID := logic.GetServerSettings().NetmakerTenantID
 	slog.Info("proceeding with Netmaker license validation...")
 	if len(licenseKeyValue) == 0 {
 		err = errors.New("empty license-key (LICENSE_KEY environment variable)")

+ 1 - 2
pro/remote_access_client.go

@@ -10,7 +10,6 @@ import (
 	"github.com/gravitl/netmaker/logic"
 	"github.com/gravitl/netmaker/models"
 	"github.com/gravitl/netmaker/mq"
-	"github.com/gravitl/netmaker/servercfg"
 	"golang.org/x/exp/slog"
 )
 
@@ -41,7 +40,7 @@ func racAutoDisableHook() error {
 	}
 
 	currentTime := time.Now()
-	validityDuration := servercfg.GetJwtValidityDuration()
+	validityDuration := logic.GetJwtValidityDuration()
 	for _, user := range users {
 		if user.PlatformRoleID == models.AdminRole ||
 			user.PlatformRoleID == models.SuperAdminRole {

+ 0 - 3
servercfg/serverconf.go

@@ -82,7 +82,6 @@ func GetServerConfig() config.ServerConfig {
 	cfg.ClientID = authInfo[1]
 	cfg.ClientSecret = authInfo[2]
 	cfg.FrontendURL = GetFrontendURL()
-	cfg.AzureTenant = GetAzureTenant()
 	cfg.Telemetry = Telemetry()
 	cfg.Server = GetServer()
 	cfg.Verbosity = GetVerbosity()
@@ -98,8 +97,6 @@ func GetServerConfig() config.ServerConfig {
 	cfg.Stun = IsStunEnabled()
 	cfg.StunServers = GetStunServers()
 	cfg.DefaultDomain = GetDefaultDomain()
-	cfg.LicenseValue = GetLicenseKey()
-	cfg.NetmakerTenantID = GetNetmakerTenantID()
 	return cfg
 }