Skip to content

Managing Configurations

Configurations are managed by the config package. It provides both environment and application configurations.

.
├── src
│   └── 📁 config  [Application wide environment and configurations]
│       ├── 📄 __init__.py
│       ├── 📄 app.py [Configurations for application framework]
│       ├── 📄 docs.py [Configurations for documentation]
│       └── 📄 env.py  [Exposes `env.yaml` to the application]
└── 📄 env.yaml [Environment file (git ignored)]

Environment Configurations

Application-wide environment configuration, which varies across staging, production, and development environments are read from env.yaml in the project root.

This file will not be tracked by git, making it safe for storing local secrets.

To get started, run the command eest make env cli to initialize your environment configuration.

Usage

1. Generate env file

Run the eest make env cli tool.

uv run eest make env
🎉 Success! Config file created at: <path>/env.yaml

which should generate an env.yaml in the project root.

remote_nodes:
  - name: mainnet_archive
    # Replace with your Ethereum RPC node URL
    node_url: http://example.com
    # Optional: Headers for RPC requests
    rpc_headers:
      client-secret: <secret>

2. Import EnvConfig

from config import EnvConfig
EnvConfig().remote_nodes[0].name
'mainnet_archive'

Application configuration

Application configuration are pydantic classes.

from config import DocsConfig
DocsConfig().TARGET_FORK
'Prague'