config.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package shared
  2. import (
  3. "github.com/gorilla/sessions"
  4. "github.com/porter-dev/porter/internal/auth/token"
  5. "github.com/porter-dev/porter/internal/config"
  6. "github.com/porter-dev/porter/internal/logger"
  7. "github.com/porter-dev/porter/internal/notifier"
  8. "github.com/porter-dev/porter/internal/repository"
  9. )
  10. type Config struct {
  11. // Logger for logging
  12. Logger *logger.Logger
  13. // Repo implements a query repository
  14. Repo repository.Repository
  15. // Capabilities is a description object for the server capabilities, used
  16. // to determine which endpoints to register
  17. Capabilities *Capabilities
  18. // Store implements a session store for session-based cookies
  19. Store sessions.Store
  20. // ServerConf is the set of configuration variables for the Porter server
  21. ServerConf config.ServerConf
  22. // TokenConf contains the config for generating and validating JWT tokens
  23. TokenConf *token.TokenGeneratorConf
  24. // UserNotifier is an object that notifies users of transactions (pw reset, email
  25. // verification, etc)
  26. UserNotifier notifier.UserNotifier
  27. }
  28. type ConfigLoader interface {
  29. LoadConfig() (*Config, error)
  30. }