feat: implement role-based configuration system for CLI with automatic API key management

- Add role detection to command groups (admin, client, miner, blockchain)
- Load role-specific config files (~/.aitbc/{role}-config.yaml)
- Add role field to Config class with environment variable support
- Implement automatic role detection from invoked subcommand
- Add development mode API key bypass for testing (APP_ENV=dev)
- Update CLI checklist with role-based configuration documentation
- Add configuration override priority and
This commit is contained in:
oib
2026-03-05 14:02:51 +01:00
parent 83b5152b40
commit c8ee2a3e6e
11 changed files with 216 additions and 21 deletions

View File

@@ -12,13 +12,15 @@ from .storage import SessionDep
def _validate_api_key(allowed_keys: list[str], api_key: str | None) -> str:
# Temporarily more permissive for debugging
print(f"DEBUG: _validate_api_key called with api_key='{api_key}', allowed_keys={allowed_keys}")
# In development mode, allow any API key for testing
import os
if os.getenv('APP_ENV', 'dev') == 'dev':
print(f"DEBUG: Development mode - allowing API key '{api_key}'")
return api_key or "dev_key"
allowed = {key.strip() for key in allowed_keys if key}
if not api_key or api_key not in allowed:
print(f"DEBUG: API key validation failed - api_key not in allowed_keys")
raise HTTPException(status_code=401, detail="invalid api key")
print(f"DEBUG: API key validation successful")
return api_key