Secrets & Config¶
openframe-core has no secrets of its own. This page documents how templates using openframe-core manage secrets and configuration.
Modal Secret Pattern¶
Templates store secrets as Modal Secrets and inject them as environment variables:
# modal_app.py
@app.function(
secrets=[
modal.Secret.from_name("openframe-otel"), # OTLP endpoint + headers
modal.Secret.from_name("openframe-postgres"), # DATABASE_URL
]
)
async def handler(): ...
Config Reading Pattern¶
BaseAdapterSettings reads all config from environment variables at instantiation. No config file parsing. No os.environ.get() scattered through business logic.