juice_config
Canonical specification for the juice_config companion package
Purpose
Environment configuration and feature flags with runtime toggling and remote config support.
Dependencies
External: None
Juice Packages:
- juice_storage - Persist config locally
Architecture
Bloc: ConfigBloc
Lifecycle: Permanent
State
class ConfigState extends BlocState {
final Environment currentEnvironment;
final Map<String, dynamic> configValues;
final Map<String, FeatureFlag> featureFlags;
final DateTime? lastSyncTime;
final bool isSyncing;
}
Events
InitializeConfigEvent- Load config for environmentSyncRemoteConfigEvent- Fetch remote config/flagsUpdateConfigValueEvent- Update local configToggleFeatureFlagEvent- Enable/disable featureSwitchEnvironmentEvent- Change environment (dev only)
Rebuild Groups
config:environment- Environment changesconfig:flags- Feature flag changesconfig:values- Config value changes
Open Questions
To be discussed