serverconf.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package logic
  2. import (
  3. "encoding/json"
  4. "github.com/gravitl/netmaker/database"
  5. )
  6. type serverData struct {
  7. PrivateKey string `json:"privatekey,omitempty" bson:"privatekey,omitempty"`
  8. }
  9. // StorePrivKey - stores server client WireGuard privatekey if needed
  10. func StorePrivKey(serverID string, privateKey string) error {
  11. var newData = serverData{}
  12. var err error
  13. var data []byte
  14. newData.PrivateKey = privateKey
  15. data, err = json.Marshal(&newData)
  16. if err != nil {
  17. return err
  18. }
  19. return database.Insert(serverID, string(data), database.SERVERCONF_TABLE_NAME)
  20. }
  21. // FetchPrivKey - fetches private key
  22. func FetchPrivKey(serverID string) (string, error) {
  23. var dbData string
  24. var err error
  25. var fetchedData = serverData{}
  26. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, serverID)
  27. if err != nil {
  28. return "", err
  29. }
  30. err = json.Unmarshal([]byte(dbData), &fetchedData)
  31. if err != nil {
  32. return "", err
  33. }
  34. return fetchedData.PrivateKey, nil
  35. }
  36. // RemovePrivKey - removes a private key
  37. func RemovePrivKey(serverID string) error {
  38. return database.DeleteRecord(database.SERVERCONF_TABLE_NAME, serverID)
  39. }
  40. // FetchJWTSecret - fetches jwt secret from db
  41. func FetchJWTSecret() (string, error) {
  42. var dbData string
  43. var err error
  44. var fetchedData = serverData{}
  45. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-jwt-secret")
  46. if err != nil {
  47. return "", err
  48. }
  49. err = json.Unmarshal([]byte(dbData), &fetchedData)
  50. if err != nil {
  51. return "", err
  52. }
  53. return fetchedData.PrivateKey, nil
  54. }
  55. // StoreJWTSecret - stores server jwt secret if needed
  56. func StoreJWTSecret(privateKey string) error {
  57. var newData = serverData{}
  58. var err error
  59. var data []byte
  60. newData.PrivateKey = privateKey
  61. data, err = json.Marshal(&newData)
  62. if err != nil {
  63. return err
  64. }
  65. return database.Insert("nm-jwt-secret", string(data), database.SERVERCONF_TABLE_NAME)
  66. }
  67. // FetchCommsNetID - fetches comms netid from db
  68. func FetchCommsNetID() (string, error) {
  69. var dbData string
  70. var err error
  71. var fetchedData = serverData{}
  72. dbData, err = database.FetchRecord(database.SERVERCONF_TABLE_NAME, "nm-comms-id")
  73. if err != nil {
  74. return "", err
  75. }
  76. err = json.Unmarshal([]byte(dbData), &fetchedData)
  77. if err != nil {
  78. return "", err
  79. }
  80. return fetchedData.PrivateKey, nil
  81. }
  82. // StoreCommsNetID - stores server comms network netid if needed
  83. func StoreCommsNetID(netid string) error {
  84. var newData = serverData{}
  85. var err error
  86. var data []byte
  87. newData.PrivateKey = netid
  88. data, err = json.Marshal(&newData)
  89. if err != nil {
  90. return err
  91. }
  92. return database.Insert("nm-comms-id", string(data), database.SERVERCONF_TABLE_NAME)
  93. }