# File Manifest - Complete File Change Inventory ## Summary | Action | Count | Agent | |--------|-------|-------| | DELETE | 23 files + 1 directory | config-agent, backend-agent | | MODIFY | 45 files | All agents | | CREATE | 4 files | storage-agent | | **TOTAL** | **72 file operations** | **8 agents** | ## Files to DELETE (23 files + 1 directory) ### Backend Files (Agent: backend-agent, Phase 2) ``` backend/src/core/middleware/tenant.ts backend/src/core/config/tenant.ts backend/src/features/tenant-management/ (entire directory) ├── index.ts ├── tenant.controller.ts ├── tenant.service.ts ├── tenant.routes.ts ├── tenant.types.ts └── tests/ ├── tenant.test.ts └── fixtures/ ``` ### Configuration & Secrets (Agent: config-agent, Phase 4) ``` secrets/app/minio-access-key.txt secrets/app/minio-secret-key.txt secrets/app/platform-vehicles-api-key.txt secrets/platform/ (entire directory) ├── postgres-password.txt ├── redis-password.txt └── api-keys/ ``` ### Docker Services (Agent: infra-agent, Phase 1) **Note:** These are removed from docker-compose.yml, not file deletions ``` Services removed: - admin-minio - mvp-platform-landing - mvp-platform-tenants - platform-postgres - platform-redis - mvp-platform-vehicles-db - mvp-platform-vehicles-redis - mvp-platform-vehicles-etl ``` --- ## Files to CREATE (4 files) ### Storage Adapter (Agent: storage-agent, Phase 3) ``` backend/src/core/storage/adapters/filesystem.adapter.ts (NEW) data/documents/.gitkeep (NEW - directory marker) ``` ### Volume Mount ``` ./data/documents/ (directory created by Docker) ``` --- ## Files to MODIFY (45 files) ### Phase 1: Docker Compose (Agent: infra-agent) #### docker-compose.yml **Lines:** Entire file restructure **Changes:** - Rename all services: admin-* → mvp-*, mvp-platform-vehicles-api → mvp-platform - Remove 8 service definitions - Add volume mount: `./data/documents:/app/data/documents` - Update network assignments (5 → 3 networks) - Update service discovery labels --- ### Phase 2: Remove Tenant (Agent: backend-agent) #### backend/src/app.ts **Lines:** ~30-45, ~120-130 **Changes:** - Remove tenant middleware import - Remove tenant middleware registration - Remove tenant-management feature registration #### backend/src/core/plugins/auth.plugin.ts **Lines:** ~55-75 **Changes:** - Remove `https://motovaultpro.com/tenant_id` claim extraction - Simplify JWT payload to only extract `sub` and `roles` #### backend/src/features/vehicles/domain/vehicles.service.ts **Lines:** Various **Changes:** - Remove tenant context from function signatures (if any) - Ensure only user_id is used for data isolation #### backend/src/features/vehicles/domain/platform-integration.service.ts **Lines:** ~20-30, ~100-120 **Changes:** - Remove tenant context - Update platform client URL to use mvp-platform #### backend/src/features/fuel-logs/*.ts **Changes:** - Remove tenant references (verify user_id only) #### backend/src/features/maintenance/*.ts **Changes:** - Remove tenant references (verify user_id only) #### backend/src/features/stations/*.ts **Changes:** - Remove tenant references (verify user_id only) #### backend/src/features/documents/*.ts **Changes:** - Remove tenant references (verify user_id only) --- ### Phase 3: Filesystem Storage (Agent: storage-agent) #### backend/src/core/storage/storage.service.ts **Lines:** ~10-25 **Changes:** - Update factory function to return FilesystemAdapter - Remove MinIO configuration check #### backend/src/features/documents/documents.controller.ts **Lines:** ~176-269 (upload), ~271-319 (download), ~129-174 (delete) **Changes:** - No changes needed (uses StorageService interface) - Verify file paths work with filesystem adapter #### backend/src/features/documents/documents.service.ts **Lines:** ~40-80 **Changes:** - Update storage_key format for filesystem paths - Add filesystem-specific error handling --- ### Phase 4: Config Cleanup (Agent: config-agent) #### config/app/production.yml **Lines:** Remove entire sections **Changes:** - Remove `platform_vehicles_api_url` (add internal: `http://mvp-platform:8000`) - Remove `platform_vehicles_api_key` - Remove `platform_tenants_api_url` - Remove MinIO configuration section - Remove tenant-specific database URLs #### .env **Lines:** Remove variables **Changes:** - Remove `PLATFORM_VEHICLES_API_KEY` - Remove `MINIO_ENDPOINT`, `MINIO_ACCESS_KEY`, `MINIO_SECRET_KEY` - Update `PLATFORM_VEHICLES_API_URL=http://mvp-platform:8000` - Update `DATABASE_URL` to use mvp-postgres - Update `REDIS_URL` to use mvp-redis #### .env.development (if exists) **Changes:** Same as .env --- ### Phase 5: Network Simplification (Agent: infra-agent) #### docker-compose.yml **Lines:** Networks section **Changes:** - Remove `platform` network - Remove `egress` network - Keep `frontend`, `backend`, `database` - Update service network assignments --- ### Phase 6: Backend Updates (Agent: backend-agent) #### backend/src/core/config/config-loader.ts **Lines:** ~50-80 **Changes:** - Update database URL to use mvp-postgres - Update Redis URL to use mvp-redis - Remove tenant-specific config loading #### backend/src/features/vehicles/external/platform-vehicles/platform-vehicles.client.ts **Lines:** ~15-25 **Changes:** - Update base URL to http://mvp-platform:8000 - Remove API key authentication (same network) #### backend/src/index.ts **Changes:** - Verify service startup with new config --- ### Phase 7: Database Updates (Agent: infra-agent) #### backend/src/_system/migrations/ **Changes:** - Review migrations for tenant references (should be none) - Verify user_id isolation only #### docker-compose.yml **Lines:** mvp-postgres service **Changes:** - Verify connection string - Add volumes_platform schema initialization (if needed) --- ### Phase 8: Platform Service (Agent: platform-agent) #### mvp-platform-services/vehicles/ **Entire service restructure:** **mvp-platform-services/vehicles/Dockerfile** - Remove MSSQL dependencies - Simplify to single-container deployment **mvp-platform-services/vehicles/main.py** - Update database connection to use mvp-postgres - Update cache connection to use mvp-redis - Remove ETL imports and endpoints **mvp-platform-services/vehicles/config.py** - Update DATABASE_URL - Update REDIS_URL **mvp-platform-services/vehicles/requirements.txt** - Remove MSSQL drivers (pymssql, pyodbc) - Keep PostgreSQL (psycopg2) --- ### Phase 9: Documentation (Agent: docs-agent) #### README.md **Lines:** ~1-30 **Changes:** - Update architecture description (14 → 6 containers) - Update service names (admin-* → mvp-*) - Update quick start instructions #### CLAUDE.md **Lines:** Various **Changes:** - Remove multi-tenant architecture guidance - Remove platform service development instructions - Update container names in examples #### AI-INDEX.md **Lines:** ~3-24 **Changes:** - Update architecture description - Remove platform services section - Update URLs and container names #### .ai/context.json **Lines:** Entire file **Changes:** - Update architecture metadata (hybrid → simplified) - Update service list (14 → 6) - Remove tenant-management feature - Update platform service description #### docs/PLATFORM-SERVICES.md **Lines:** Entire file restructure **Changes:** - Document single mvp-platform service - Remove tenant service documentation - Remove landing service documentation - Update architecture diagrams #### docs/TESTING.md **Lines:** ~24-60 **Changes:** - Update container names (admin-* → mvp-*) - Remove platform service test setup - Update integration test patterns #### docs/DATABASE-SCHEMA.md **Changes:** - Verify no tenant references - Document vehicles_platform schema (if added) #### Makefile **Lines:** All commands **Changes:** ```diff - docker compose exec admin-backend + docker compose exec mvp-backend - docker compose exec admin-frontend + docker compose exec mvp-frontend - docker compose exec admin-postgres + docker compose exec mvp-postgres ``` #### backend/src/features/*/README.md (5 files) **Changes:** - Update container names in examples - Remove tenant context from feature descriptions - Update testing instructions --- ### Phase 10: Frontend Updates (Agent: frontend-agent) #### frontend/src/App.tsx **Changes:** - Remove tenant selection UI (if exists) - Remove tenant context provider (if exists) #### frontend/src/core/auth/ **Changes:** - Update Auth0 integration - Remove tenant_id claim extraction - Verify user authentication still works #### frontend/src/core/api/ **Changes:** - Remove tenant management API client (if exists) - Update API base URLs (if hardcoded) #### frontend/src/features/*/ **Changes:** - Remove any tenant-related components - Verify API calls work with new backend --- ### Phase 11: Testing (Agent: test-agent) #### backend/src/features/*/tests/ **Changes:** - Update container name references in test helpers - Remove tenant context from test fixtures - Update integration tests #### frontend/src/features/*/tests/ **Changes:** - Update component tests - Remove tenant-related test cases --- ## File Conflict Resolution ### Potential Conflicts | File | Agents | Resolution | |------|--------|------------| | docker-compose.yml | infra-agent (Phases 1, 5) | Sequential phases - no conflict | | backend/src/app.ts | backend-agent (Phases 2, 6) | Sequential phases - no conflict | | config/app/production.yml | config-agent (Phase 4) | Single agent - no conflict | | Makefile | docs-agent (Phase 9) | Single agent - no conflict | **No actual conflicts** - All multi-phase modifications are by same agent in sequence. ### Lock File Locations If conflicts arise (they shouldn't), lock files would be created in: ``` docs/redesign/locks/ ├── docker-compose.yml.lock ├── app.ts.lock ├── production.yml.lock └── Makefile.lock ``` ## File Change Statistics ### By Agent | Agent | DELETE | MODIFY | CREATE | Total | |-------|--------|--------|--------|-------| | config-agent | 6 files | 3 files | 0 | 9 | | backend-agent | 7 files + 1 dir | 12 files | 0 | 19 | | storage-agent | 0 | 3 files | 2 files | 5 | | infra-agent | 0 (service removal) | 8 files | 0 | 8 | | platform-agent | 0 | 6 files | 0 | 6 | | docs-agent | 0 | 10 files | 0 | 10 | | frontend-agent | 0 | 8 files | 0 | 8 | | test-agent | 0 | 7 files | 0 | 7 | | **TOTAL** | **13 + 1 dir** | **57** | **2** | **72** | ### By File Type | Type | DELETE | MODIFY | CREATE | |------|--------|--------|--------| | .ts/.tsx | 7 | 35 | 2 | | .yml/.yaml | 0 | 2 | 0 | | .md | 0 | 10 | 0 | | .json | 0 | 1 | 0 | | .txt (secrets) | 6 | 0 | 0 | | .py | 0 | 6 | 0 | | Makefile | 0 | 1 | 0 | | .env | 0 | 2 | 0 | ## Version Control Strategy ### Branch Strategy ```bash # Main branch git checkout main # Create feature branch git checkout -b simplify-architecture # Each agent works on sub-branch git checkout -b simplify/phase-1 git checkout -b simplify/phase-2 ... # Merge phases sequentially # Or merge all at once after validation ``` ### Commit Strategy **Option A: Per-Phase Commits** ``` git commit -m "Phase 1: Rename containers and update docker-compose" git commit -m "Phase 2: Remove multi-tenant architecture" ... ``` **Option B: Per-Agent Commits** ``` git commit -m "config-agent: Clean up configuration and secrets" git commit -m "backend-agent: Remove tenant code and update services" ... ``` **Recommended:** Per-Phase commits for better rollback granularity. ## Backup Strategy Before starting: ```bash # Create backup branch git checkout -b backup-before-simplification # Tag current state git tag -a pre-simplification -m "State before architecture simplification" # Export docker volumes docker run --rm -v mvp_postgres_data:/data -v $(pwd):/backup \ alpine tar czf /backup/postgres-backup.tar.gz /data ``` ## File Verification Checklist After all changes: - [ ] No references to `admin-backend` (should be `mvp-backend`) - [ ] No references to `admin-frontend` (should be `mvp-frontend`) - [ ] No references to `admin-postgres` (should be `mvp-postgres`) - [ ] No references to `tenant_id` in application code - [ ] No references to MinIO in backend code - [ ] No platform service API keys in config - [ ] All tests updated for new container names - [ ] All documentation reflects 6-container architecture