Files
motovaultpro/docs/redesign/VALIDATION-CHECKLIST.md
Eric Gullickson 046c66fc7d Redesign
2025-11-01 21:27:42 -05:00

10 KiB

Validation Checklist - Success Criteria

Per-Phase Validation

Phase 1: Docker Compose (infra-agent)

Container Renaming:

  • traefik → mvp-traefik
  • admin-frontend → mvp-frontend
  • admin-backend → mvp-backend
  • admin-postgres → mvp-postgres
  • admin-redis → mvp-redis
  • mvp-platform-vehicles-api → mvp-platform

Service Removal:

  • admin-minio removed
  • mvp-platform-landing removed
  • mvp-platform-tenants removed
  • platform-postgres removed
  • platform-redis removed
  • mvp-platform-vehicles-db removed
  • mvp-platform-vehicles-redis removed
  • mvp-platform-vehicles-etl removed

Configuration:

  • docker-compose.yml validates: docker compose config
  • Volume mount added: ./data/documents:/app/data/documents
  • Network count reduced from 5 to 3
  • All Traefik labels updated with new service names

Validation Commands:

docker compose config  # Should validate without errors
docker compose ps      # Should show 6 services only

Phase 2: Remove Tenant (backend-agent)

Code Deletion:

  • backend/src/core/middleware/tenant.ts deleted
  • backend/src/core/config/tenant.ts deleted
  • backend/src/features/tenant-management/ deleted

Code Modification:

  • backend/src/app.ts - No tenant middleware import
  • backend/src/app.ts - No tenant middleware registration
  • backend/src/app.ts - No tenant-management routes
  • backend/src/core/plugins/auth.plugin.ts - No tenant_id claim extraction

No Tenant References:

# Should return 0 results in application code
grep -r "tenant_id" backend/src/features/
grep -r "tenantId" backend/src/features/
grep -r "tenant-management" backend/src/

Build Check:

cd backend
npm run build  # Should compile without errors

Phase 3: Filesystem Storage (storage-agent)

New Files:

  • backend/src/core/storage/adapters/filesystem.adapter.ts created
  • Implements StorageService interface correctly
  • data/documents/ directory exists

Modified Files:

  • backend/src/core/storage/storage.service.ts uses FilesystemAdapter
  • backend/src/features/documents/ updated for filesystem

No MinIO References:

# Should return 0 results
grep -r "minio" backend/src/
grep -r "MinIO" backend/src/
grep -r "s3" backend/src/core/storage/

Functional Test:

# Test document upload/download
curl -X POST http://localhost:3001/api/documents/upload \
  -H "Authorization: Bearer $TOKEN" \
  -F "file=@test.pdf"

# Verify file exists in ./data/documents/{userId}/

Phase 4: Config Cleanup (config-agent)

Config File Updates:

  • config/app/production.yml - No MinIO section
  • config/app/production.yml - No platform tenant API
  • config/app/production.yml - Platform vehicles URL = http://mvp-platform:8000

Environment Updates:

  • .env - No MINIO_* variables
  • .env - No PLATFORM_VEHICLES_API_KEY
  • .env - DATABASE_URL uses mvp-postgres
  • .env - REDIS_URL uses mvp-redis

Secrets Deletion:

  • secrets/app/minio-access-key.txt deleted
  • secrets/app/minio-secret-key.txt deleted
  • secrets/app/platform-vehicles-api-key.txt deleted
  • secrets/platform/ directory deleted

Validation:

# No sensitive references should remain
grep -r "minio" config/
grep -r "platform-vehicles-api-key" config/

Phase 5: Network Simplification (infra-agent)

Network Configuration:

  • Only 3 networks: frontend, backend, database
  • platform network removed
  • egress network removed

Service Network Assignments:

  • mvp-traefik: frontend
  • mvp-frontend: frontend, backend
  • mvp-backend: backend, database
  • mvp-postgres: database
  • mvp-redis: database
  • mvp-platform: backend, database

Validation:

docker network ls | grep motovaultpro
# Should show only 3 networks

docker compose config | grep -A5 "networks:"
# Verify correct network assignments

Phase 6: Backend Updates (backend-agent)

Service References:

No Old Container Names:

grep -r "admin-postgres" backend/src/
grep -r "admin-redis" backend/src/
grep -r "admin-backend" backend/src/
# Should all return 0 results

Build and Start:

make rebuild
make logs-backend  # No errors

Phase 7: Database Updates (infra-agent)

Connection Strings:

  • Application uses mvp-postgres
  • Platform service uses mvp-postgres

Schema Validation:

# Connect to database
make db-shell-app

# Verify tables exist
\dt

# Verify no tenant_id columns (only user_id)
SELECT column_name FROM information_schema.columns
WHERE table_schema = 'public' AND column_name = 'tenant_id';
# Should return 0 rows

Phase 8: Platform Service (platform-agent)

Service Simplification:

  • No MSSQL dependencies
  • No ETL container
  • Uses mvp-postgres and mvp-redis
  • Single container deployment

API Functionality:

# Test platform service endpoints
curl http://localhost:8000/health
curl http://localhost:8000/vehicles/makes?year=2024

No Old Dependencies:

grep -r "mssql" mvp-platform-services/vehicles/
grep -r "pyodbc" mvp-platform-services/vehicles/
# Should return 0 results

Phase 9: Documentation (docs-agent)

Documentation Updates:

  • README.md reflects 6-container architecture
  • CLAUDE.md no multi-tenant guidance
  • AI-INDEX.md updated
  • .ai/context.json updated
  • docs/PLATFORM-SERVICES.md updated
  • docs/TESTING.md updated
  • Makefile uses mvp-* container names

Consistency Check:

# No old container names in docs
grep -r "admin-backend" docs/ README.md CLAUDE.md Makefile
grep -r "admin-frontend" docs/ README.md CLAUDE.md Makefile
# Should return 0 results

Phase 10: Frontend Updates (frontend-agent)

Code Updates:

  • No tenant selection UI
  • No tenant context provider
  • Auth0 integration updated (no tenant claims)
  • API clients work

Build Check:

cd frontend
npm run build  # Should build without errors

No Tenant References:

grep -r "tenant" frontend/src/
# Should return minimal/no results

Phase 11: Testing (test-agent)

Container Health:

  • All 6 containers running
  • All containers healthy status

Test Suite:

  • Backend tests pass: make test
  • Frontend tests pass
  • Integration tests pass
  • No regressions

Validation Commands:

docker compose ps
# Should show 6 services, all healthy

make test
# All tests should pass

Integration Validation

Cross-Phase Validation

Architecture Consistency:

  • 6 containers total (no more, no less)
  • 3 networks configured
  • mvp-* naming consistent everywhere
  • No tenant code remaining
  • No MinIO references
  • No old platform services

Functional Validation:

  • Authentication works (Auth0)
  • Vehicle operations work
  • Fuel logs CRUD works
  • Maintenance logs work
  • Stations work
  • Document upload/download works

Performance Validation:

  • Application starts in reasonable time
  • API response times acceptable
  • No memory leaks
  • No excessive logging

Final Acceptance Criteria

Must-Pass Criteria

Infrastructure:

# 1. All containers healthy
docker compose ps
# Expected: 6 services, all "running (healthy)"

# 2. Networks correct
docker network ls | grep motovaultpro | wc -l
# Expected: 3

# 3. Volumes correct
docker volume ls | grep motovaultpro | wc -l
# Expected: 2 (postgres_data, redis_data)

Build and Tests:

# 4. Clean rebuild succeeds
make clean && make setup
# Expected: All services start successfully

# 5. All tests pass
make test
# Expected: 0 failures

# 6. Linting passes
cd backend && npm run lint
cd frontend && npm run lint
# Expected: No errors

Code Quality:

# 7. No tenant references in application
grep -r "tenant_id" backend/src/features/ | wc -l
# Expected: 0

# 8. No old container names
grep -r "admin-backend" backend/ frontend/ docs/ | wc -l
# Expected: 0

# 9. No MinIO references
grep -r "minio" backend/src/ | wc -l
# Expected: 0

Functionality:

  • 10. Can log in via Auth0
  • 11. Can create vehicle
  • 12. Can upload document
  • 13. Can create fuel log
  • 14. Can create maintenance log
  • 15. Can search stations

Mobile Compatibility:

  • 16. Frontend responsive on mobile
  • 17. All features work on mobile
  • 18. No mobile-specific errors

Nice-to-Have Criteria

  • Documentation comprehensive
  • Code comments updated
  • Performance improved vs. before
  • Memory usage reduced
  • Startup time faster

Validation Responsibility Matrix

Validation Agent Phase Critical
Container rename infra-agent 1 Yes
Service removal infra-agent 1 Yes
Tenant code deleted backend-agent 2 Yes
Filesystem storage storage-agent 3 Yes
Config cleanup config-agent 4 Yes
Network simplification infra-agent 5 Yes
Service references backend-agent 6 Yes
Database updates infra-agent 7 Yes
Platform simplification platform-agent 8 Yes
Documentation docs-agent 9 No
Frontend updates frontend-agent 10 Yes
Full integration test-agent 11 Yes

Rollback Triggers

Rollback if:

  • Any critical validation fails
  • Tests have >10% failure rate
  • Containers fail to start
  • Data loss detected
  • Security issues introduced
  • Production blockers identified

See ROLLBACK-STRATEGY.md for procedures.


Sign-Off Checklist

Project Lead:

  • All critical validations passed
  • Architecture simplified as intended
  • No functionality regressions
  • Documentation complete
  • Team trained on new architecture

Technical Lead:

  • Code quality maintained
  • Tests comprehensive
  • Performance acceptable
  • Security not compromised

DevOps Lead:

  • Containers deploy successfully
  • Networks configured correctly
  • Volumes persistent
  • Monitoring operational

Final Approval:

  • Ready for production deployment
  • Rollback plan documented
  • Team informed of changes