mirror of
https://github.com/coder/coder.git
synced 2025-07-03 16:13:58 +00:00
runtime configuration package --------- Signed-off-by: Danny Kopping <danny@coder.com> Co-authored-by: Danny Kopping <danny@coder.com>
40 lines
1.2 KiB
Go
40 lines
1.2 KiB
Go
package runtimeconfig
|
|
|
|
import (
|
|
"context"
|
|
|
|
"golang.org/x/xerrors"
|
|
|
|
"github.com/coder/coder/v2/coderd/database"
|
|
)
|
|
|
|
var (
|
|
// ErrEntryNotFound is returned when a runtime entry is not saved in the
|
|
// store. It is essentially a 'sql.ErrNoRows'.
|
|
ErrEntryNotFound = xerrors.New("entry not found")
|
|
// ErrNameNotSet is returned when a runtime entry is created without a name.
|
|
// This is more likely to happen on DeploymentEntry that has not called
|
|
// Initialize().
|
|
ErrNameNotSet = xerrors.New("name is not set")
|
|
)
|
|
|
|
type Initializer interface {
|
|
Initialize(name string)
|
|
}
|
|
|
|
type Resolver interface {
|
|
// GetRuntimeConfig gets a runtime setting by name.
|
|
GetRuntimeConfig(ctx context.Context, name string) (string, error)
|
|
// UpsertRuntimeConfig upserts a runtime setting by name.
|
|
UpsertRuntimeConfig(ctx context.Context, name, val string) error
|
|
// DeleteRuntimeConfig deletes a runtime setting by name.
|
|
DeleteRuntimeConfig(ctx context.Context, name string) error
|
|
}
|
|
|
|
// Store is a subset of database.Store
|
|
type Store interface {
|
|
GetRuntimeConfig(ctx context.Context, key string) (string, error)
|
|
UpsertRuntimeConfig(ctx context.Context, arg database.UpsertRuntimeConfigParams) error
|
|
DeleteRuntimeConfig(ctx context.Context, key string) error
|
|
}
|