Coverage for arclith / adapters / output / env / secret_adapter.py: 100%

7 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-03-25 15:02 +0100

1from __future__ import annotations 

2 

3import os 

4 

5from arclith.domain.ports.secret_resolver import SecretResolver 

6 

7 

8class EnvSecretAdapter(SecretResolver): 

9 """Reads secrets from environment variables. 

10 

11 The env var name is derived from field_path: 

12 "adapters.mongodb.uri" → ADAPTERS_MONGODB_URI 

13 

14 Useful for CI/CD pipelines and Docker deployments where env vars are injected. 

15 """ 

16 

17 def get(self, field_path: str, secret_key: str) -> str | None: 

18 env_key = field_path.replace(".", "_").upper() 

19 return os.environ.get(env_key) or None 

20