git
db50e568f9
feat(docker): Create Phase 8 Email Service container with production configuration
...
Phase 8 Email Client Implementation - Complete Docker containerization:
DELIVERABLES:
- Dockerfile: Production-ready Flask WSGI server
* Python 3.11-slim base image (optimized)
* Multi-stage build (separates build/runtime dependencies)
* Gunicorn with 4 workers, 2 threads (8 concurrent connections)
* Non-root user execution (emailservice UID 1000)
* Automated health checks (30s interval, 15s grace period)
* Structured logging to persistent volumes
- Docker Compose Stack (8 services):
* PostgreSQL 16 (email metadata, health checks)
* Redis 7 (cache & Celery broker, RDB persistence)
* Postfix (SMTP relay, multi-port support)
* Dovecot (IMAP/POP3, TLS support)
* Email Service (Flask REST API, 4 workers)
* Celery Worker (async tasks, 4 concurrency)
* Celery Beat (scheduled tasks)
* Mailpit (development email UI)
CONFIGURATION:
- requirements.txt: Pinned dependencies (flask, sqlalchemy, celery, etc.)
- .env.example: Environment variable template with defaults
- .dockerignore: Build optimization (excludes cache, venv, etc.)
DOCUMENTATION:
- README.md: Complete service reference (350+ lines)
* Architecture overview
* Building and running instructions
* API endpoint reference
* Health check configuration
* Volume management
* Worker process tuning
* Celery background jobs
* Networking and security
* Troubleshooting guide
- DEPLOYMENT.md: Full deployment procedures (600+ lines)
* Quick start for 3 environments (dev, staging, prod)
* System architecture diagrams
* Service dependencies
* Configuration management
* Secrets management strategies (3 options)
* Production deployment steps (5-step procedure)
* Load balancer configuration (nginx)
* Monitoring setup (Prometheus)
* Horizontal scaling
* Backup/restore procedures
* Zero-downtime deployments
* Comprehensive troubleshooting
- Makefile: 40+ development commands
* dev: Start all services (development mode)
* build: Build Docker images
* health: Check service health
* logs: Tail service logs
* test: Run test suite
* db-backup/restore: Database operations
* clean: Remove all data
* ci-*: CI/CD targets
HELPER SCRIPTS:
- startup-checks.sh: Validates dependencies at startup
* Environment variables
* Database connectivity
* Redis connectivity
* Flask application
* Python dependencies
* File permissions
DOCKER COMPOSE VARIATIONS:
- docker-compose.yml: Production configuration
- docker-compose.override.yml: Development overrides (auto-loaded)
* Flask dev server with hot reload
* Source code volumes
* Mailpit for email testing
FEATURES:
- Multi-tenant support (X-Tenant-ID header)
- JWT authentication (Authorization header)
- Rate limiting (configurable per minute/hour)
- Async processing (Celery workers + Beat)
- Encryption (AES-256 for credentials)
- Health checks (all services)
- Graceful shutdown handling
- Structured JSON logging
ARCHITECTURE:
- 8 concurrent HTTP connections (4 workers × 2 threads)
- Horizontal scaling: Multiple service instances + load balancer
- Vertical scaling: Increase GUNICORN_WORKERS/THREADS
- Resource requirements: 2-4 GB RAM, 2-4 CPU cores
TESTING & VALIDATION:
- Dockerfile builds successfully
- All dependencies resolved
- Container starts and responds to health checks
- API endpoints accessible
- Database and Redis connectivity verified
FILES CREATED (12 total):
emailclient/
├── PHASE_8_SUMMARY.md (700+ lines)
├── DEPLOYMENT.md (600+ lines)
├── Makefile (350+ lines, 40+ targets)
├── docker-compose.yml (enhanced)
├── docker-compose.override.yml (development)
└── deployment/
└── docker-compose.yml
└── docker/email-service/
├── Dockerfile (production)
├── requirements.txt (pinned versions)
├── .env.example (configuration)
├── .dockerignore (build optimization)
├── startup-checks.sh (validation)
└── README.md (reference)
NEXT PHASES:
- Phase 9: API Documentation & OpenAPI/Swagger
- Phase 10: Monitoring & Observability
- Phase 11: CI/CD Pipeline Integration
- Phase 12: Performance Optimization & Load Testing
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-24 00:20:18 +00:00
git
255919254a
chore(hooks): Consolidate hooks library to root /hooks directory
...
- Moved 104 production-ready hooks from frontends/nextjs and redux packages to root /hooks
- Removed duplicate hooks from frontends/nextjs/src/hooks directory
- Updated frontends/nextjs to import from @metabuilder/hooks instead of local hooks
- Added comprehensive documentation: EXPORT_GUIDE.md, FORM_VALIDATION_HOOKS.md, QUICK_REFERENCE.md
- Removed stale index.d.ts from hooks root (TypeScript auto-generates declarations)
- All 104 hooks now consolidated as single source of truth at root /hooks
- Package @metabuilder/hooks v2.0.0 ready for use across all MetaBuilder projects
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-23 19:59:13 +00:00
git
5aabff44cd
refactor(fakemui): flatten QML components directory structure and update documentation
...
Directory Restructuring:
- qml/qml-components/qml-components/* → qml/components/ (flattens nesting)
- All 104 QML files moved with git history preserved
- Eliminates redundant qml-components nesting
Documentation Updates:
- ARCHITECTURE.md: Updated qml/components references (2 locations)
- GETTING_STARTED.md: Updated qml/components path (1 location, end of file)
- README.md: Updated qml/components references (3 locations)
- CODE_REVIEW.md: Updated qml/components file paths (4 locations)
- docs/ARCHITECTURE.md: Complete refactor with qml/components paths
Verification:
- ✅ No remaining qml-components/ references in documentation
- ✅ All 104 QML files present in flattened structure
- ✅ Directory structure verified (12 component categories)
- ✅ First-class directory naming convention
Structure Post-Refactor:
qml/
├── components/
│ ├── atoms/ (16 files)
│ ├── core/ (11 files)
│ ├── data-display/ (10 files)
│ ├── feedback/ (11 files)
│ ├── form/ (19 files)
│ ├── lab/ (11 files)
│ ├── layout/ (12 files)
│ ├── navigation/ (12 files)
│ ├── surfaces/ (7 files)
│ ├── theming/ (4 files)
│ └── utils/ (13 files)
├── hybrid/
└── widgets/
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-01-23 19:54:21 +00:00
git
f6731698c3
feat(app): create email client bootloader with Docker Compose
...
Task 8.1 Complete: Email Client Bootloader
This commit creates the minimal Next.js bootloader at emailclient/ that:
1. Loads the email_client package from packages/email_client/
2. Initializes Redux store with core reducers (auth, projects, workflows, async data)
3. Renders declarative UI from package page-config JSON
4. Provides working app structure with:
- app/page.tsx - Main page that loads email_client package
- app/layout.tsx - Root layout with Redux provider
- app/globals.css - Email-client-specific styles
- docker-compose.yml - Services (Postfix, Dovecot, Redis, Flask, PostgreSQL)
- .env.example - Configuration template
- package.json - Dependencies (Next.js, React, Redux, FakeMUI)
- docs/CLAUDE.md - Development guide
Services configured:
- Postfix (SMTP relay) - ports 25, 587
- Dovecot (IMAP/POP3) - ports 143, 993, 110, 995
- Redis (cache) - port 6379
- Flask email-service - port 5000
- PostgreSQL (metadata) - port 5432
Next phases:
- Phase 3: Redux slices for email state
- Phase 4: Custom email hooks
- Phase 5: Email package UI definitions
- Phase 6: Email workflow plugins
- Phase 7: Flask backend service
- Phase 8: Integration testing
2026-01-23 19:35:49 +00:00