Configuration

litestar-flags provides flexible configuration options through the FeatureFlagsConfig class.

Basic Configuration

from litestar_flags import FeatureFlagsConfig, FeatureFlagsPlugin

config = FeatureFlagsConfig(
    # Default flag values when not found
    default_enabled=False,
    # Enable debug logging
    debug=False,
)

plugin = FeatureFlagsPlugin(config=config)

Storage Backend Configuration

Memory Backend (Default)

The in-memory backend is the default and requires no additional configuration:

from litestar_flags import FeatureFlagsConfig
from litestar_flags.storage import MemoryStorageBackend

config = FeatureFlagsConfig(
    storage_backend=MemoryStorageBackend(),
)

Redis Backend

For distributed deployments:

from litestar_flags import FeatureFlagsConfig
from litestar_flags.storage import RedisStorageBackend

config = FeatureFlagsConfig(
    storage_backend=RedisStorageBackend(
        url="redis://localhost:6379/0",
        prefix="feature_flags:",
    ),
)

Database Backend

For persistent storage:

from litestar_flags import FeatureFlagsConfig
from litestar_flags.storage import DatabaseStorageBackend

config = FeatureFlagsConfig(
    storage_backend=DatabaseStorageBackend(
        connection_string="postgresql+asyncpg://user:pass@localhost/db",
    ),
)

Environment Variables

You can also configure litestar-flags using environment variables:

export FEATURE_FLAGS_DEBUG=true
export FEATURE_FLAGS_DEFAULT_ENABLED=false
export FEATURE_FLAGS_REDIS_URL=redis://localhost:6379/0

Configuration Reference

See the FeatureFlagsConfig API documentation for a complete list of configuration options.