Config section: nosql:
Env prefix: LEX_NOSQL__
| Key | Type | Default | Env Variable | Description |
|---|
enabled | bool | true | LEX_NOSQL__ENABLED | Enable NoSQL subsystem |
driver | str | "mongodb" | LEX_NOSQL__DRIVER | NoSQL driver name (mongodb, firestore) |
mongodb | MongoDBConfig | defaults | LEX_NOSQL__MONGODB__* | MongoDB connection settings |
firestore | FirestoreConfig | None | null | LEX_NOSQL__FIRESTORE__* | Firestore settings (used when driver="firestore") |
backends | list[NamedNoSQLConfig] | [] | LEX_NOSQL__BACKENDS__* | Named multi-backend entries |
| Key | Type | Default | Env Variable | Description |
|---|
uri | str | "mongodb://localhost:27017" | LEX_NOSQL__MONGODB__URI | Connection URI |
database | str | "lexigram" | LEX_NOSQL__MONGODB__DATABASE | Database name |
max_pool_size | int | 100 | LEX_NOSQL__MONGODB__MAX_POOL_SIZE | Max connection pool size |
min_pool_size | int | 10 | LEX_NOSQL__MONGODB__MIN_POOL_SIZE | Min connection pool size |
server_selection_timeout_ms | int | 5000 | LEX_NOSQL__MONGODB__SERVER_SELECTION_TIMEOUT_MS | Server selection timeout (ms) |
connect_timeout_ms | int | 10000 | LEX_NOSQL__MONGODB__CONNECT_TIMEOUT_MS | Connection timeout (ms) |
socket_timeout_ms | int | 30000 | LEX_NOSQL__MONGODB__SOCKET_TIMEOUT_MS | Socket timeout (ms) |
retry_writes | bool | true | LEX_NOSQL__MONGODB__RETRY_WRITES | Enable write retries |
retry_reads | bool | true | LEX_NOSQL__MONGODB__RETRY_READS | Enable read retries |
read_preference | str | "primaryPreferred" | LEX_NOSQL__MONGODB__READ_PREFERENCE | Read preference mode |
write_concern_w | str | int | "majority" | LEX_NOSQL__MONGODB__WRITE_CONCERN_W | Write concern level |
auth_source | str | "admin" | LEX_NOSQL__MONGODB__AUTH_SOURCE | Authentication database |
| Key | Type | Default | Env Variable | Description |
|---|
project_id | str | (required) | LEX_NOSQL__FIRESTORE__PROJECT_ID | Google Cloud project ID |
credentials_json | str | None | null | LEX_NOSQL__FIRESTORE__CREDENTIALS_JSON | Service account JSON key (path or raw) |
database_id | str | "(default)" | LEX_NOSQL__FIRESTORE__DATABASE_ID | Firestore database ID |
| Key | Type | Default | Env Variable | Description |
|---|
table_name | str | "lexigram" | LEX_NOSQL__DYNAMODB__TABLE_NAME | Default table name |
region | str | "us-east-1" | LEX_NOSQL__DYNAMODB__REGION | AWS region |
access_key | str | None | null | LEX_NOSQL__DYNAMODB__ACCESS_KEY | AWS access key ID |
secret_key | str | None | null | LEX_NOSQL__DYNAMODB__SECRET_KEY | AWS secret access key |
endpoint_url | str | None | null | LEX_NOSQL__DYNAMODB__ENDPOINT_URL | Custom endpoint (e.g., http://localhost:8000) |
pk_field | str | "_id" | LEX_NOSQL__DYNAMODB__PK_FIELD | Partition key attribute name |
Named backends follow the same env pattern with an index: LEX_NOSQL__BACKENDS__0__NAME, LEX_NOSQL__BACKENDS__0__DRIVER, etc.
uri: mongodb://localhost:27017
uri: mongodb://admin:${MONGODB_PASSWORD}@cluster0.example.mongodb.net
write_concern_w: majority
uri: mongodb://primary:27017
uri: mongodb://analytics:27017
export LEX_NOSQL__MONGODB__URI="mongodb://prod-cluster:27017"
export LEX_NOSQL__MONGODB__DATABASE="production_db"
export LEX_NOSQL__DRIVER="mongodb"