2
0

serverconf.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package logic
  2. import (
  3. "encoding/json"
  4. "time"
  5. "github.com/gravitl/netmaker/database"
  6. "github.com/gravitl/netmaker/servercfg"
  7. )
  8. var (
  9. // NetworksLimit - dummy var for community
  10. NetworksLimit = 1000000000
  11. // UsersLimit - dummy var for community
  12. UsersLimit = 1000000000
  13. // MachinesLimit - dummy var for community
  14. MachinesLimit = 1000000000
  15. // IngressesLimit - dummy var for community
  16. IngressesLimit = 1000000000
  17. // EgressesLimit - dummy var for community
  18. EgressesLimit = 1000000000
  19. // FreeTier - specifies if free tier
  20. FreeTier = false
  21. // DefaultTrialEndDate - is a placeholder date for not applicable trial end dates
  22. DefaultTrialEndDate, _ = time.Parse("2006-Jan-02", "2021-Apr-01")
  23. GetTrialEndDate = func() (time.Time, error) {
  24. return DefaultTrialEndDate, nil
  25. }
  26. )
  27. type serverData struct {
  28. PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
  29. }
  30. // FetchJWTSecret - fetches jwt secret from db
  31. func FetchJWTSecret() (string, error) {
  32. var dbData string
  33. var err error
  34. var fetchedData = serverData{}
  35. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-jwt-secret")
  36. if err != nil {
  37. return "", err
  38. }
  39. err = json.Unmarshal([]byte(dbData), &fetchedData)
  40. if err != nil {
  41. return "", err
  42. }
  43. return fetchedData.PrivateKey, nil
  44. }
  45. // StoreJWTSecret - stores server jwt secret if needed
  46. func StoreJWTSecret(privateKey string) error {
  47. var newData = serverData{}
  48. var err error
  49. var data []byte
  50. newData.PrivateKey = privateKey
  51. data, err = json.Marshal(&newData)
  52. if err != nil {
  53. return err
  54. }
  55. return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
  56. }
  57. // SetFreeTierLimits - sets limits for free tier
  58. func SetFreeTierLimits() {
  59. FreeTier = true
  60. UsersLimit = servercfg.GetUserLimit()
  61. NetworksLimit = servercfg.GetNetworkLimit()
  62. MachinesLimit = servercfg.GetMachinesLimit()
  63. IngressesLimit = servercfg.GetIngressLimit()
  64. EgressesLimit = servercfg.GetEgressLimit()
  65. }