mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
feat: implement runtime configuration package with multi-org support (#14624)
runtime configuration package --------- Signed-off-by: Danny Kopping <danny@coder.com> Co-authored-by: Danny Kopping <danny@coder.com>
This commit is contained in:
28
coderd/runtimeconfig/manager.go
Normal file
28
coderd/runtimeconfig/manager.go
Normal file
@ -0,0 +1,28 @@
|
||||
package runtimeconfig
|
||||
|
||||
import (
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
// Manager is the singleton that produces resolvers for runtime configuration.
|
||||
// TODO: Implement caching layer.
|
||||
type Manager struct{}
|
||||
|
||||
func NewManager() *Manager {
|
||||
return &Manager{}
|
||||
}
|
||||
|
||||
// Resolver is the deployment wide namespace for runtime configuration.
|
||||
// If you are trying to namespace a configuration, orgs for example, use
|
||||
// OrganizationResolver.
|
||||
func (*Manager) Resolver(db Store) Resolver {
|
||||
return NewStoreResolver(db)
|
||||
}
|
||||
|
||||
// OrganizationResolver will namespace all runtime configuration to the provided
|
||||
// organization ID. Configuration values stored with a given organization ID require
|
||||
// that the organization ID be provided to retrieve the value.
|
||||
// No values set here will ever be returned by the call to 'Resolver()'.
|
||||
func (*Manager) OrganizationResolver(db Store, orgID uuid.UUID) Resolver {
|
||||
return OrganizationResolver(orgID, NewStoreResolver(db))
|
||||
}
|
Reference in New Issue
Block a user