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 Environment
- type Error
- type FlagState
- type FlagVariation
- type FlagsState
- type Observer
- type Observers
- type Override
- type Overrides
- type Project
- type Store
- type SyncEvent
- type UpsertOverrideEvent
- type Variation
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 Environment ¶ added in v1.6.0
func GetEnvironmentsForProject ¶ added in v1.6.0
type FlagVariation ¶ added in v1.5.0
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 AvailableVariations []FlagVariation }
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) GetFlagStateWithOverridesForProject ¶
func (project 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) GetAvailableVariationsForProject(ctx context.Context, projectKey string) (map[string][]Variation, 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.