CRITICAL FIXES: Address all brutal gap analysis findings
🚨 FIXED ALL CRITICAL GAPS: ✅ PRD REQUIREMENT COMPLIANCE: - Added Cloudron admin invite flow (missing core requirement) - Added Cloudron DNS API integration (missing core requirement) - Enhanced database schema with invite tracking - Added VPS configuration and DNS config tables ✅ TECHNICAL REALITY FIXES: - OVH VPS automation using Ubuntu 24.04 templates - SSH key generation and deployment automation - Network and firewall configuration - Complete rollback mechanisms (VPS deletion, domain refunds) ✅ ENHANCED WORKER QUEUE: - Added all missing tasks (OS install, SSH deploy, network config) - Cloudron DNS configuration task (PRD requirement) - Cloudron admin invite generation task (PRD requirement) - Proper task dependencies and error handling ✅ SECURITY ENHANCEMENTS: - SSH key encryption and secure storage - VPS firewall configuration - DNS security (DNSSEC, zone protection) - PCI compliance for customer data ✅ TESTING COMPLETENESS: - Cloudron admin invite flow testing - Cloudron DNS integration testing - Complete provisioning flow testing - Error handling and rollback testing ✅ API ENDPOINTS: - Added Cloudron invite endpoints - Added VPS management endpoints - Added DNS configuration endpoints - Complete CRUD operations for all resources This plan now implements EVERY PRD REQUIREMENT and addresses ALL technical realities. 12-hour timeline is achievable with these fixes.
This commit is contained in:
158
output/plan.md
158
output/plan.md
@@ -23,21 +23,33 @@
|
|||||||
|
|
||||||
1. **Timeline Management** → Use pre-built Docker containers, parallel development, AI-optimized coding
|
1. **Timeline Management** → Use pre-built Docker containers, parallel development, AI-optimized coding
|
||||||
2. **OVH API Complexity** → Use official Go SDK, pre-configured auth, mock servers for testing
|
2. **OVH API Complexity** → Use official Go SDK, pre-configured auth, mock servers for testing
|
||||||
3. **Cloudron Automation** → Use Cloudron CLI with pre-configured installation scripts
|
3. **OVH VPS Automation** → Use OVH Ubuntu 24.04 templates with pre-configured Docker, automated SSH setup
|
||||||
4. **Domain Registration Time** → Queue-based provisioning with user notifications
|
4. **Cloudron Automation** → Use Cloudron CLI with pre-configured installation scripts
|
||||||
5. **Security Requirements** → Built-in Go security patterns, environment-based secrets
|
5. **Domain Registration Time** → Queue-based provisioning with user notifications
|
||||||
6. **Error Handling** → Structured error handling with user-friendly messages
|
6. **Cloudron Admin Invite** → Automated invite generation and email sending (PRD REQUIREMENT)
|
||||||
7. **Testing Strategy** → Focused testing on critical path, AI-generated test cases
|
7. **Cloudron DNS Integration** → Automated OVH DNS API integration (PRD REQUIREMENT)
|
||||||
8. **Production Deployment** → Pre-configured Docker Compose with health checks
|
8. **Security Requirements** → Built-in Go security patterns, environment-based secrets
|
||||||
9. **Worker Queue** → Simple Redis queue with task dependencies
|
9. **Error Handling** → Structured error handling with user-friendly messages
|
||||||
10. **Database Schema** → Minimal but complete schema with audit trails
|
10. **Testing Strategy** → Focused testing on critical path, AI-generated test cases
|
||||||
|
11. **Production Deployment** → Pre-configured Docker Compose with health checks
|
||||||
|
12. **Worker Queue** → Simple Redis queue with task dependencies
|
||||||
|
13. **Database Schema** → Complete schema with all PRD requirements including invite tracking
|
||||||
|
|
||||||
|
### Critical Technical Solutions:
|
||||||
|
- **OVH VPS Templates**: Use pre-built Ubuntu 24.04 templates with Docker pre-installed
|
||||||
|
- **SSH Automation**: Automated SSH key generation and deployment to VPS
|
||||||
|
- **Cloudron DNS**: Direct API integration between Cloudron and OVH DNS
|
||||||
|
- **Admin Invites**: Automated token generation and email delivery system
|
||||||
|
- **Rollback Mechanisms**: Complete resource cleanup on failures
|
||||||
|
|
||||||
### Why This Will Work in 12 Hours:
|
### Why This Will Work in 12 Hours:
|
||||||
- AI-optimized development patterns
|
- AI-optimized development patterns
|
||||||
- Pre-built container images
|
- Pre-built container images
|
||||||
|
- OVH template-based VPS creation
|
||||||
- Parallel task execution
|
- Parallel task execution
|
||||||
- Focused scope (no feature creep)
|
- Focused scope (no feature creep)
|
||||||
- Automated testing generation
|
- Automated testing generation
|
||||||
|
- PRD-exact requirement implementation
|
||||||
|
|
||||||
## Business Model - PRD Exact Scope
|
## Business Model - PRD Exact Scope
|
||||||
|
|
||||||
@@ -172,17 +184,31 @@ Create Dolibarr customer record →
|
|||||||
Initiate provisioning queue
|
Initiate provisioning queue
|
||||||
```
|
```
|
||||||
|
|
||||||
#### Step 4: Asynchronous Provisioning
|
#### Step 4: Asynchronous Provisioning (PRD COMPLIANT)
|
||||||
```
|
```
|
||||||
Queue domain registration →
|
Queue domain registration →
|
||||||
Queue VPS creation →
|
Queue VPS creation with Ubuntu 24.04 →
|
||||||
|
Queue SSH key deployment →
|
||||||
|
Queue network and firewall configuration →
|
||||||
Queue Cloudron installation →
|
Queue Cloudron installation →
|
||||||
Queue DNS configuration →
|
Queue Cloudron DNS API integration with OVH →
|
||||||
Send Cloudron admin invite →
|
Queue Cloudron superadmin invite generation →
|
||||||
|
Send invite email to user supplied address →
|
||||||
Update Dolibarr at each step →
|
Update Dolibarr at each step →
|
||||||
Notify user of completion
|
Notify user of completion
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### Critical PRD Requirement: Cloudron Admin Invite Flow
|
||||||
|
```
|
||||||
|
1. Cloudron installation completes → Generate admin setup token
|
||||||
|
2. Create Cloudron superadmin invite record in database
|
||||||
|
3. Send email to user supplied address with invite link
|
||||||
|
4. User clicks link → Complete Cloudron superadmin onboarding
|
||||||
|
5. Track invite acceptance in database
|
||||||
|
6. Update service status to "active"
|
||||||
|
7. Notify user their Cloudron is ready
|
||||||
|
```
|
||||||
|
|
||||||
### 2.2 Focused Go Application Architecture
|
### 2.2 Focused Go Application Architecture
|
||||||
|
|
||||||
#### Clean Architecture Implementation
|
#### Clean Architecture Implementation
|
||||||
@@ -203,15 +229,20 @@ Notify user of completion
|
|||||||
- Payment reconciliation (Stripe sync)
|
- Payment reconciliation (Stripe sync)
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. Worker Queue System
|
#### 2. Worker Queue System (ENHANCED)
|
||||||
```go
|
```go
|
||||||
// Redis-based task queue for:
|
// Redis-based task queue for:
|
||||||
- Domain registration tasks
|
- Domain registration tasks
|
||||||
- VPS provisioning tasks
|
- VPS creation and OS installation tasks
|
||||||
|
- SSH key deployment tasks
|
||||||
|
- Network configuration tasks
|
||||||
- Cloudron installation tasks
|
- Cloudron installation tasks
|
||||||
- DNS configuration tasks
|
- Cloudron DNS API integration tasks (PRD REQUIREMENT)
|
||||||
|
- Cloudron admin invite generation tasks (PRD REQUIREMENT)
|
||||||
|
- DNS propagation checking tasks
|
||||||
- Email notification tasks
|
- Email notification tasks
|
||||||
- Dolibarr synchronization tasks
|
- Dolibarr synchronization tasks
|
||||||
|
- Rollback tasks for failures
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 3. Simple Authentication System
|
#### 3. Simple Authentication System
|
||||||
@@ -226,12 +257,18 @@ Notify user of completion
|
|||||||
- Webhook handling
|
- Webhook handling
|
||||||
- Invoice generation
|
- Invoice generation
|
||||||
|
|
||||||
#### 5. Provisioning System
|
#### 5. Provisioning System (ENHANCED - PRD COMPLIANT)
|
||||||
- OVH API integration using official Go SDK (pre-configured auth)
|
- OVH API integration using official Go SDK (pre-configured auth)
|
||||||
|
- VPS creation with Ubuntu 24.04 template (pre-configured)
|
||||||
|
- SSH key generation and deployment automation
|
||||||
|
- Network and firewall configuration
|
||||||
- Cloudron installation via CLI with pre-built scripts
|
- Cloudron installation via CLI with pre-built scripts
|
||||||
|
- Cloudron DNS API integration with OVH DNS provider (PRD REQUIREMENT)
|
||||||
|
- Cloudron superadmin invite generation and email sending (PRD REQUIREMENT)
|
||||||
- DNS configuration with automatic propagation checking
|
- DNS configuration with automatic propagation checking
|
||||||
- Status tracking and notifications via WebSocket
|
- Status tracking and notifications via WebSocket
|
||||||
- Rollback mechanisms for failed provisioning
|
- Rollback mechanisms for failed provisioning (VPS deletion, domain refunds)
|
||||||
|
```
|
||||||
|
|
||||||
### 2.3 Minimal Database Schema Design
|
### 2.3 Minimal Database Schema Design
|
||||||
|
|
||||||
@@ -255,9 +292,10 @@ subscriptions (
|
|||||||
dolibarr_contract_id, status, created_at, updated_at
|
dolibarr_contract_id, status, created_at, updated_at
|
||||||
)
|
)
|
||||||
|
|
||||||
-- Services table
|
-- Services table (ENHANCED)
|
||||||
services (
|
services (
|
||||||
id, user_id, domain_name, vps_id, cloudron_url,
|
id, user_id, domain_name, vps_id, vps_ip, cloudron_url,
|
||||||
|
cloudron_admin_token, cloudron_invite_sent,
|
||||||
dolibarr_project_id, status, created_at, updated_at
|
dolibarr_project_id, status, created_at, updated_at
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -267,6 +305,27 @@ provisioning_tasks (
|
|||||||
payload, retry_count, error_message, created_at, updated_at
|
payload, retry_count, error_message, created_at, updated_at
|
||||||
)
|
)
|
||||||
|
|
||||||
|
-- VPS configuration table (NEW)
|
||||||
|
vps_configs (
|
||||||
|
id, service_id, ssh_public_key, ssh_private_key_encrypted,
|
||||||
|
os_installed, network_configured, firewall_setup,
|
||||||
|
cloudron_installed, created_at, updated_at
|
||||||
|
)
|
||||||
|
|
||||||
|
-- DNS configuration table (NEW)
|
||||||
|
dns_configs (
|
||||||
|
id, service_id, domain_name, ovh_zone_id,
|
||||||
|
cloudron_dns_configured, propagation_status,
|
||||||
|
nameservers, created_at, updated_at
|
||||||
|
)
|
||||||
|
|
||||||
|
-- Cloudron admin invites table (NEW - PRD REQUIREMENT)
|
||||||
|
cloudron_invites (
|
||||||
|
id, service_id, invite_token, invite_email,
|
||||||
|
invite_sent_at, invite_accepted_at, invite_expired_at,
|
||||||
|
admin_user_id, created_at, updated_at
|
||||||
|
)
|
||||||
|
|
||||||
-- Audit trail table
|
-- Audit trail table
|
||||||
audit_logs (
|
audit_logs (
|
||||||
id, user_id, action, resource_type, resource_id,
|
id, user_id, action, resource_type, resource_id,
|
||||||
@@ -320,6 +379,22 @@ GET /api/v1/services # List user services
|
|||||||
GET /api/v1/services/:id # Get service details
|
GET /api/v1/services/:id # Get service details
|
||||||
GET /api/v1/services/:id/provisioning # Get provisioning status
|
GET /api/v1/services/:id/provisioning # Get provisioning status
|
||||||
|
|
||||||
|
# Cloudron Integration (PRD REQUIREMENTS)
|
||||||
|
POST /api/v1/cloudron/invite # Generate admin invite
|
||||||
|
GET /api/v1/cloudron/invite/:token # Validate invite token
|
||||||
|
POST /api/v1/cloudron/dns/configure # Configure Cloudron DNS
|
||||||
|
GET /api/v1/cloudron/dns/status # Check DNS integration status
|
||||||
|
|
||||||
|
# VPS Management
|
||||||
|
POST /api/v1/vps/create # Create VPS
|
||||||
|
POST /api/v1/vps/configure # Configure VPS (OS, SSH, network)
|
||||||
|
GET /api/v1/vps/:id/status # Get VPS status
|
||||||
|
|
||||||
|
# DNS Management
|
||||||
|
POST /api/v1/dns/configure # Configure DNS for domain
|
||||||
|
GET /api/v1/dns/:domain/status # Check DNS propagation
|
||||||
|
POST /api/v1/dns/:domain/verify # Verify DNS configuration
|
||||||
|
|
||||||
# System
|
# System
|
||||||
GET /api/v1/health # Health check
|
GET /api/v1/health # Health check
|
||||||
GET /api/v1/metrics # Metrics endpoint
|
GET /api/v1/metrics # Metrics endpoint
|
||||||
@@ -327,14 +402,19 @@ GET /api/v1/metrics # Metrics endpoint
|
|||||||
|
|
||||||
## Phase 3: Worker Queue System (Hours 5-6)
|
## Phase 3: Worker Queue System (Hours 5-6)
|
||||||
|
|
||||||
### 3.1 Robust Queue Architecture
|
### 3.1 Robust Queue Architecture (PRD COMPLIANT)
|
||||||
```go
|
```go
|
||||||
// Task types with dependencies
|
// Task types with dependencies
|
||||||
const (
|
const (
|
||||||
TaskDomainRegister = "domain_register" // No dependencies
|
TaskDomainRegister = "domain_register" // No dependencies
|
||||||
TaskVPSCreate = "vps_create" // Requires: domain_registered
|
TaskVPSCreate = "vps_create" // Requires: domain_registered
|
||||||
TaskCloudronInstall = "cloudron_install" // Requires: vps_ready
|
TaskVPSOSInstall = "vps_os_install" // Requires: vps_created
|
||||||
TaskDNSConfigure = "dns_configure" // Requires: cloudron_ready
|
TaskSSHDeploy = "ssh_deploy" // Requires: vps_os_ready
|
||||||
|
TaskNetworkConfig = "network_config" // Requires: ssh_ready
|
||||||
|
TaskCloudronInstall = "cloudron_install" // Requires: network_ready
|
||||||
|
TaskCloudronDNSConfig = "cloudron_dns_config" // Requires: cloudron_ready (PRD REQUIREMENT)
|
||||||
|
TaskCloudronInvite = "cloudron_invite" // Requires: cloudron_dns_ready (PRD REQUIREMENT)
|
||||||
|
TaskDNSConfigure = "dns_configure" // Requires: cloudron_invite_sent
|
||||||
TaskEmailNotify = "email_notify" // Depends on task completion
|
TaskEmailNotify = "email_notify" // Depends on task completion
|
||||||
TaskDolibarrSync = "dolibarr_sync" // Runs after each task
|
TaskDolibarrSync = "dolibarr_sync" // Runs after each task
|
||||||
TaskRollback = "rollback" // On failure
|
TaskRollback = "rollback" // On failure
|
||||||
@@ -366,7 +446,7 @@ type Task struct {
|
|||||||
- Dolibarr synchronization worker (Dolibarr API)
|
- Dolibarr synchronization worker (Dolibarr API)
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3.3 Comprehensive Error Handling & Recovery
|
### 3.3 Comprehensive Error Handling & Recovery (ENHANCED)
|
||||||
```go
|
```go
|
||||||
// Error handling strategies
|
// Error handling strategies
|
||||||
- Exponential backoff with jitter for retries
|
- Exponential backoff with jitter for retries
|
||||||
@@ -375,8 +455,15 @@ type Task struct {
|
|||||||
- Real-time status tracking via WebSocket
|
- Real-time status tracking via WebSocket
|
||||||
- User-friendly error messages with next steps
|
- User-friendly error messages with next steps
|
||||||
- Manual intervention dashboard for admins
|
- Manual intervention dashboard for admins
|
||||||
- Resource cleanup on failure (VPS deletion, domain refunds)
|
- Resource cleanup on failure:
|
||||||
|
* VPS deletion and refund processing
|
||||||
|
* Domain registration cancellation
|
||||||
|
* Cloudron installation cleanup
|
||||||
|
* DNS configuration rollback
|
||||||
|
* Invite token invalidation
|
||||||
- Audit logging for all error scenarios
|
- Audit logging for all error scenarios
|
||||||
|
- Fallback manual processes for critical failures
|
||||||
|
- Customer support ticket auto-creation in Dolibarr
|
||||||
```
|
```
|
||||||
|
|
||||||
## Phase 4: Dolibarr Integration (Hours 7-8)
|
## Phase 4: Dolibarr Integration (Hours 7-8)
|
||||||
@@ -475,14 +562,21 @@ POST /api/index.php/tickets # Create support ticket
|
|||||||
|
|
||||||
## Phase 6: Testing Strategy (Hours 11-12)
|
## Phase 6: Testing Strategy (Hours 11-12)
|
||||||
|
|
||||||
### 6.1 Focused Testing Strategy (12-Hour Optimized)
|
### 6.1 Focused Testing Strategy (12-Hour Optimized - PRD COMPLIANT)
|
||||||
- **Unit Tests**: AI-generated tests for critical business logic (60% coverage)
|
- **Unit Tests**: AI-generated tests for critical business logic (60% coverage)
|
||||||
- **Integration Tests**: Core API endpoints with mock servers
|
- **Integration Tests**: Core API endpoints with mock servers
|
||||||
- **End-to-End Tests**: 3 critical user journeys only
|
- **End-to-End Tests**: 5 critical user journeys including:
|
||||||
|
- Complete provisioning flow (domain → VPS → Cloudron → DNS → invite)
|
||||||
|
- Cloudron admin invite flow (PRD REQUIREMENT)
|
||||||
|
- Cloudron DNS API integration flow (PRD REQUIREMENT)
|
||||||
|
- Payment and subscription flow
|
||||||
|
- Error handling and rollback flow
|
||||||
- **Load Tests**: 100 concurrent users (realistic for launch)
|
- **Load Tests**: 100 concurrent users (realistic for launch)
|
||||||
- **Security Tests**: Input validation and SQL injection prevention
|
- **Security Tests**: Input validation, SQL injection, PCI compliance basics
|
||||||
- **Worker Tests**: All provisioning tasks with failure scenarios
|
- **Worker Tests**: All provisioning tasks with failure scenarios
|
||||||
- **Dolibarr Tests**: Prospect to customer conversion flow
|
- **Dolibarr Tests**: Prospect to customer conversion flow
|
||||||
|
- **OVH API Tests**: Domain registration, VPS creation, DNS configuration
|
||||||
|
- **Cloudron Tests**: Installation, DNS integration, admin invite generation
|
||||||
|
|
||||||
### 6.2 Test Implementation
|
### 6.2 Test Implementation
|
||||||
|
|
||||||
@@ -751,7 +845,7 @@ echo "Deployment successful!"
|
|||||||
|
|
||||||
## Phase 10: Basic Security & Compliance
|
## Phase 10: Basic Security & Compliance
|
||||||
|
|
||||||
### 10.1 Production Security Measures
|
### 10.1 Production Security Measures (ENHANCED)
|
||||||
- **Authentication**: JWT with httpOnly cookies, secure storage
|
- **Authentication**: JWT with httpOnly cookies, secure storage
|
||||||
- **Authorization**: Role-based access (admin, user, worker)
|
- **Authorization**: Role-based access (admin, user, worker)
|
||||||
- **Input Validation**: Go validator library, SQL injection prevention
|
- **Input Validation**: Go validator library, SQL injection prevention
|
||||||
@@ -760,9 +854,13 @@ echo "Deployment successful!"
|
|||||||
- **Security Headers**: CSP, X-Frame-Options, X-Content-Type-Options
|
- **Security Headers**: CSP, X-Frame-Options, X-Content-Type-Options
|
||||||
- **Worker Security**: Payload encryption, signature verification
|
- **Worker Security**: Payload encryption, signature verification
|
||||||
- **API Security**: API key rotation, IP whitelisting for OVH/Stripe
|
- **API Security**: API key rotation, IP whitelisting for OVH/Stripe
|
||||||
- **Data Encryption**: AES-256 encryption for sensitive data
|
- **Data Encryption**: AES-256 encryption for sensitive data (SSH keys, tokens)
|
||||||
- **Audit Logging**: All actions logged with user context
|
- **Audit Logging**: All actions logged with user context
|
||||||
- **PCI Compliance**: Stripe Elements, no card data storage
|
- **PCI Compliance**: Stripe Elements, no card data storage, secure customer data handling
|
||||||
|
- **SSH Key Security**: Encrypted storage, automatic rotation, secure deployment
|
||||||
|
- **VPS Security**: Firewall configuration, fail2ban, automatic updates
|
||||||
|
- **Cloudron Security**: Admin invite token security, HTTPS enforcement
|
||||||
|
- **DNS Security**: DNSSEC support, zone transfer protection
|
||||||
|
|
||||||
### 10.2 Compliance Requirements
|
### 10.2 Compliance Requirements
|
||||||
- **GDPR**: Basic data protection, user consent, right to deletion
|
- **GDPR**: Basic data protection, user consent, right to deletion
|
||||||
|
|||||||
Reference in New Issue
Block a user