metadata.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. package config
  2. import (
  3. "github.com/porter-dev/porter/api/server/shared/config/env"
  4. )
  5. type Metadata struct {
  6. Provisioning bool `json:"provisioner"`
  7. Github bool `json:"github"`
  8. BasicLogin bool `json:"basic_login"`
  9. GithubLogin bool `json:"github_login"`
  10. GoogleLogin bool `json:"google_login"`
  11. SlackNotifications bool `json:"slack_notifications"`
  12. Email bool `json:"email"`
  13. Analytics bool `json:"analytics"`
  14. Version string `json:"version"`
  15. }
  16. func MetadataFromConf(sc *env.ServerConf, version string) *Metadata {
  17. return &Metadata{
  18. Provisioning: sc.ProvisionerServerURL != "" && sc.ProvisionerToken != "",
  19. Github: hasGithubAppVars(sc),
  20. GithubLogin: sc.GithubClientID != "" && sc.GithubClientSecret != "" && sc.GithubLoginEnabled,
  21. BasicLogin: sc.BasicLoginEnabled,
  22. GoogleLogin: sc.GoogleClientID != "" && sc.GoogleClientSecret != "",
  23. SlackNotifications: sc.SlackClientID != "" && sc.SlackClientSecret != "",
  24. Email: sc.SendgridAPIKey != "",
  25. Analytics: sc.SegmentClientKey != "",
  26. Version: version,
  27. }
  28. }
  29. func hasGithubAppVars(sc *env.ServerConf) bool {
  30. return sc.GithubAppClientID != "" &&
  31. sc.GithubAppClientSecret != "" &&
  32. sc.GithubAppName != "" &&
  33. sc.GithubAppWebhookSecret != "" &&
  34. sc.GithubAppSecretPath != "" &&
  35. sc.GithubAppID != ""
  36. }