Documentation
¶
Overview ¶
Package model provides dev projects and flag override data models for the api handler to use. It exists so that it can also notify observers to support streaming updates
Index ¶
- Variables
- func ContextWithStore(ctx context.Context, store Store) context.Context
- func NewError(message string) error
- func ObserversMiddleware(observers *Observers) func(handler http.Handler) http.Handler
- func SetObserversOnContext(ctx context.Context, observers *Observers) context.Context
- func StoreMiddleware(store Store) mux.MiddlewareFunc
- type Error
- type FlagState
- type FlagsState
- type Observer
- type Observers
- type Override
- type Overrides
- type Project
- type Store
- type SyncEvent
- type UpsertOverrideEvent
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrAlreadyExists = errors.New("already exists")
View Source
var ErrNotFound = errors.New("not found")
Functions ¶
func ObserversMiddleware ¶
func SetObserversOnContext ¶
func StoreMiddleware ¶
func StoreMiddleware(store Store) mux.MiddlewareFunc
Types ¶
type FlagsState ¶
func FromAllFlags ¶
func FromAllFlags(sdkFlags flagstate.AllFlags) FlagsState
type Observers ¶
type Observers struct {
// contains filtered or unexported fields
}
func GetObserversFromContext ¶
func NewObservers ¶
func NewObservers() *Observers
func (*Observers) DeregisterObserver ¶
type Override ¶
type Override struct { ProjectKey string FlagKey string Value ldvalue.Value Active bool Version int }
func UpsertOverride ¶
type Project ¶
type Project struct { Key string SourceEnvironmentKey string Context ldcontext.Context LastSyncTime time.Time AllFlagsState FlagsState }
func CreateProject ¶
func CreateProject(ctx context.Context, projectKey, sourceEnvironmentKey string, ldCtx *ldcontext.Context) (Project, error)
CreateProject creates a project and adds it to the database.
func UpdateProject ¶
func (Project) FetchFlagState ¶
func (p Project) FetchFlagState(ctx context.Context) (FlagsState, error)
func (Project) GetFlagStateWithOverridesForProject ¶
func (p Project) GetFlagStateWithOverridesForProject(ctx context.Context) (FlagsState, error)
type Store ¶
type Store interface { DeactivateOverride(ctx context.Context, projectKey, flagKey string) error GetDevProjectKeys(ctx context.Context) ([]string, error) // GetDevProject fetches the project based on the projectKey. If it doesn't exist, ErrNotFound is returned GetDevProject(ctx context.Context, projectKey string) (*Project, error) UpdateProject(ctx context.Context, project Project) (bool, error) DeleteDevProject(ctx context.Context, projectKey string) (bool, error) // InsertProject inserts the project. If it already exists, ErrAlreadyExists is returned InsertProject(ctx context.Context, project Project) error UpsertOverride(ctx context.Context, override Override) (Override, error) GetOverridesForProject(ctx context.Context, projectKey string) (Overrides, error) }
func StoreFromContext ¶
type SyncEvent ¶
type SyncEvent struct { ProjectKey string AllFlagsState FlagsState }
Event for full project sync
type UpsertOverrideEvent ¶
Event for individual flag overrides
Source Files
¶
Click to show internal directories.
Click to hide internal directories.