Luca Sacchi Ricciardi
|
02473bc39e
|
feat(schemas): T17 add Pydantic auth schemas
Add authentication schemas for user registration and login:
- UserRegister: email, password (with strength validation), password_confirm
- UserLogin: email, password
- UserResponse: id, email, created_at, is_active (orm_mode=True)
- TokenResponse: access_token, token_type, expires_in
- TokenData: user_id, exp
Includes field validators for password strength and password confirmation matching.
Test coverage: 19 tests for all schemas
|
2026-04-07 13:52:33 +02:00 |
|
Luca Sacchi Ricciardi
|
2fdd9d16fd
|
feat(security): T12 implement AES-256 encryption service
- Add EncryptionService with AES-256-GCM via cryptography.fernet
- Implement PBKDF2HMAC key derivation with SHA256 (100k iterations)
- Deterministic salt derived from master_key for consistency
- Methods: encrypt(), decrypt() with proper error handling
- 12 comprehensive tests with 100% coverage
- Handle InvalidToken, TypeError edge cases
|
2026-04-07 12:03:45 +02:00 |
|
Luca Sacchi Ricciardi
|
75f40acb17
|
feat(setup): T01 create project directory structure
- Create src/openrouter_monitor/ package structure
- Create models/, routers/, services/, utils/ subpackages
- Create tests/unit/ and tests/integration/ structure
- Create alembic/, docs/, scripts/ directories
- Add test_project_structure.py with 13 unit tests
- All tests passing (13/13)
Refs: T01
|
2026-04-07 09:44:41 +02:00 |
|