import "go.chromium.org/luci/logdog/server/config"
Package config abstracts access to Logdog service and project configuration.
Sync(...) assumes the context has a cfgclient implementation and a read-write datastore. All other methods need only read-only datastore.
var ( // ErrInvalidConfig is returned when the configuration exists, but is invalid. ErrInvalidConfig = errors.New("invalid configuration") )
Config loads and returns the service configuration.
func Middleware(s *Store) router.Middleware
Middleware returns a middleware that installs `s` into requests' context.
ProjectConfig loads the project config protobuf from the config service.
This function will return following errors:
- nil, if the project exists and the configuration successfully loaded - config.ErrNoConfig if the project configuration was not present. - ErrInvalidConfig if the project configuration was present, but could not be loaded. - Some other error if an error occurred that does not fit one of the previous categories.
Sync makes sure configs in the datastore match what's in LUCI Config.
Performs as much work as possible (even in presence of errors). Logs errors inside in addition to returning them as a single errors.MultiError.
WithStore installs a store that caches configs in memory.
type Store struct { // NoCache disables in-process caching (useful in tests). NoCache bool // contains filtered or unexported fields }
Store caches configs in memory to avoid hitting cfgclient all the time.
Keep at as a global variable and install into contexts via WithStore.
Package config imports 15 packages (graph) and is imported by 12 packages. Updated 2021-01-24. Refresh now. Tools for package owners.