Commit Graph

3 Commits

Author SHA1 Message Date
Luca Sacchi Ricciardi
e88050c2e4 fix: resolve Docker database connection issues - COMPLETE
Some checks failed
CI/CD - Build & Test / Backend Tests (push) Has been cancelled
CI/CD - Build & Test / Frontend Tests (push) Has been cancelled
CI/CD - Build & Test / Security Scans (push) Has been cancelled
CI/CD - Build & Test / Docker Build Test (push) Has been cancelled
CI/CD - Build & Test / Terraform Validate (push) Has been cancelled
Deploy to Production / Build & Test (push) Has been cancelled
Deploy to Production / Security Scan (push) Has been cancelled
Deploy to Production / Build Docker Images (push) Has been cancelled
Deploy to Production / Deploy to Staging (push) Has been cancelled
Deploy to Production / E2E Tests (push) Has been cancelled
Deploy to Production / Deploy to Production (push) Has been cancelled
E2E Tests / Run E2E Tests (push) Has been cancelled
E2E Tests / Visual Regression Tests (push) Has been cancelled
E2E Tests / Smoke Tests (push) Has been cancelled
Major fixes to database connectivity in Docker:

1. Fix alembic.ini - Changed localhost to postgres (line 90)
   - This was the root cause of localhost connection errors

2. Fix database.py default - Changed localhost to postgres
   - Ensures correct default when env var not set

3. Fix config.py default - Changed localhost to postgres
   - Consistent configuration across all files

4. Fix .env file - Changed DATABASE_URL from localhost to postgres
   - Prevents local dev config from overriding Docker config

5. Update Dockerfile.backend - Add debug logging to verify env vars

6. Fix docker-compose.yml frontend port - Changed 3000 to 8888

7. Fix Celery commands - Use 'uv run celery' instead of just 'celery'

8. Remove obsolete 'version' attribute from docker-compose.yml

Verification:
- DATABASE_URL env var: postgresql+asyncpg://postgres:postgres@postgres:5432/mockupaws 
- Backend now connects to postgres:5432 instead of localhost 
- Frontend accessible at http://localhost:8888 

Note: There's a separate migration error with index creation
(idx_logs_recent using NOW() - requires IMMUTABLE function).
This is a database migration issue, not a connection issue.
2026-04-07 22:48:41 +02:00
Luca Sacchi Ricciardi
285a748d6a fix: update HTML title to mockupAWS
Some checks failed
E2E Tests / Run E2E Tests (push) Has been cancelled
E2E Tests / Visual Regression Tests (push) Has been cancelled
E2E Tests / Smoke Tests (push) Has been cancelled
- Change generic 'frontend' title to 'mockupAWS - AWS Cost Simulator'
- Resolves frontend branding issue identified in testing
2026-04-07 18:45:02 +02:00
Luca Sacchi Ricciardi
ebefc323c3 feat(backend): implement database layer with models, schemas and repositories
Complete backend core implementation (BE-001 to BE-005):

BE-001: Database Connection & Session Management
- Create src/core/database.py with async SQLAlchemy 2.0
- Configure engine with pool_size=20
- Implement get_db() FastAPI dependency

BE-002: SQLAlchemy Models (5 models)
- Base model with TimestampMixin
- Scenario: status enum, relationships, cost tracking
- ScenarioLog: message hash, PII detection, metrics
- ScenarioMetric: time-series with extra_data (JSONB)
- AwsPricing: service pricing with region support
- Report: format enum, file tracking, extra_data

BE-003: Pydantic Schemas
- Scenario: Create, Update, Response, List schemas
- Log: Ingest, Response schemas
- Metric: Summary, CostBreakdown, MetricsResponse
- Common: PaginatedResponse generic type

BE-004: Base Repository Pattern
- Generic BaseRepository[T] with CRUD operations
- Methods: get, get_multi, count, create, update, delete
- Dynamic filter support

BE-005: Scenario Repository
- Extends BaseRepository[Scenario]
- Specific methods: get_by_name, list_by_status, list_by_region
- Business methods: update_status, increment_total_requests, update_total_cost
- ScenarioStatus enum
- Singleton instance: scenario_repository

All models, schemas and repositories tested and working.

Tasks: BE-001, BE-002, BE-003, BE-004, BE-005 complete
2026-04-07 14:20:02 +02:00