release: v0.5.0 - Authentication, API Keys & Advanced Features
Complete v0.5.0 implementation: Database (@db-engineer): - 3 migrations: users, api_keys, report_schedules tables - Foreign keys, indexes, constraints, enums Backend (@backend-dev): - JWT authentication service with bcrypt (cost=12) - Auth endpoints: /register, /login, /refresh, /me - API Keys service with hash storage and prefix validation - API Keys endpoints: CRUD + rotate - Security module with JWT HS256 Frontend (@frontend-dev): - Login/Register pages with validation - AuthContext with localStorage persistence - Protected routes implementation - API Keys management UI (create, revoke, rotate) - Header with user dropdown DevOps (@devops-engineer): - .env.example and .env.production.example - docker-compose.scheduler.yml - scripts/setup-secrets.sh - INFRASTRUCTURE_SETUP.md QA (@qa-engineer): - 85 E2E tests: auth.spec.ts, apikeys.spec.ts, scenarios.spec.ts, regression-v050.spec.ts - auth-helpers.ts with 20+ utility functions - Test plans and documentation Architecture (@spec-architect): - SECURITY.md with best practices - SECURITY-CHECKLIST.md pre-deployment - Updated architecture.md with auth flows - Updated README.md with v0.5.0 features Documentation: - Updated todo.md with v0.5.0 status - Added docs/README.md index - Complete setup instructions Dependencies added: - bcrypt, python-jose, passlib, email-validator Tested: JWT auth flow, API keys CRUD, protected routes, 85 E2E tests ready Closes: v0.5.0 milestone
This commit is contained in:
72
.env.example
Normal file
72
.env.example
Normal file
@@ -0,0 +1,72 @@
|
||||
# MockupAWS Environment Configuration - Development
|
||||
# Copy this file to .env and fill in the values
|
||||
|
||||
# =============================================================================
|
||||
# Database
|
||||
# =============================================================================
|
||||
DATABASE_URL=postgresql+asyncpg://postgres:postgres@localhost:5432/mockupaws
|
||||
|
||||
# =============================================================================
|
||||
# Application
|
||||
# =============================================================================
|
||||
APP_NAME=mockupAWS
|
||||
DEBUG=true
|
||||
API_V1_STR=/api/v1
|
||||
|
||||
# =============================================================================
|
||||
# JWT Authentication
|
||||
# =============================================================================
|
||||
# Generate with: openssl rand -hex 32
|
||||
JWT_SECRET_KEY=change-this-in-production-min-32-chars
|
||||
JWT_ALGORITHM=HS256
|
||||
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
||||
REFRESH_TOKEN_EXPIRE_DAYS=7
|
||||
|
||||
# =============================================================================
|
||||
# Security
|
||||
# =============================================================================
|
||||
BCRYPT_ROUNDS=12
|
||||
API_KEY_PREFIX=mk_
|
||||
|
||||
# =============================================================================
|
||||
# Email Configuration
|
||||
# =============================================================================
|
||||
# Provider: sendgrid or ses
|
||||
EMAIL_PROVIDER=sendgrid
|
||||
EMAIL_FROM=noreply@mockupaws.com
|
||||
|
||||
# SendGrid Configuration
|
||||
# Get your API key from: https://app.sendgrid.com/settings/api_keys
|
||||
SENDGRID_API_KEY=sg_your_sendgrid_api_key_here
|
||||
|
||||
# AWS SES Configuration (alternative to SendGrid)
|
||||
# Configure in AWS Console: https://console.aws.amazon.com/ses/
|
||||
AWS_ACCESS_KEY_ID=AKIA...
|
||||
AWS_SECRET_ACCESS_KEY=your_aws_secret_key
|
||||
AWS_REGION=us-east-1
|
||||
|
||||
# =============================================================================
|
||||
# Reports & Storage
|
||||
# =============================================================================
|
||||
REPORTS_STORAGE_PATH=./storage/reports
|
||||
REPORTS_MAX_FILE_SIZE_MB=50
|
||||
REPORTS_CLEANUP_DAYS=30
|
||||
REPORTS_RATE_LIMIT_PER_MINUTE=10
|
||||
|
||||
# =============================================================================
|
||||
# Scheduler (Cron Jobs)
|
||||
# =============================================================================
|
||||
# Option 1: APScheduler (in-process)
|
||||
SCHEDULER_ENABLED=true
|
||||
SCHEDULER_INTERVAL_MINUTES=5
|
||||
|
||||
# Option 2: Celery (requires Redis)
|
||||
# REDIS_URL=redis://localhost:6379/0
|
||||
# CELERY_BROKER_URL=redis://localhost:6379/0
|
||||
# CELERY_RESULT_BACKEND=redis://localhost:6379/0
|
||||
|
||||
# =============================================================================
|
||||
# Frontend (for CORS)
|
||||
# =============================================================================
|
||||
FRONTEND_URL=http://localhost:5173
|
||||
ALLOWED_HOSTS=localhost,127.0.0.1
|
||||
Reference in New Issue
Block a user