Redesign
This commit is contained in:
98
docs/redesign/PHASE-02-REMOVE-TENANT.md
Normal file
98
docs/redesign/PHASE-02-REMOVE-TENANT.md
Normal file
@@ -0,0 +1,98 @@
|
||||
# Phase 2: Remove Multi-Tenant Architecture
|
||||
|
||||
## Agent Assignment
|
||||
**Primary Agent:** backend-agent
|
||||
**Duration:** 20 minutes
|
||||
|
||||
## Prerequisites
|
||||
- Phase 4 (Config Cleanup) must be complete
|
||||
- Backend container accessible
|
||||
|
||||
## Objectives
|
||||
1. Delete all tenant-related code files
|
||||
2. Remove tenant middleware from application
|
||||
3. Remove tenant context from features
|
||||
4. Simplify JWT claims to user-only
|
||||
|
||||
## Step-by-Step Instructions
|
||||
|
||||
### Step 1: Delete Tenant Files
|
||||
```bash
|
||||
# Delete tenant middleware
|
||||
rm backend/src/core/middleware/tenant.ts
|
||||
|
||||
# Delete tenant configuration
|
||||
rm backend/src/core/config/tenant.ts
|
||||
|
||||
# Delete tenant-management feature
|
||||
rm -rf backend/src/features/tenant-management/
|
||||
```
|
||||
|
||||
### Step 2: Update backend/src/app.ts
|
||||
Remove tenant imports and registration:
|
||||
```typescript
|
||||
// REMOVE these lines:
|
||||
import { tenantMiddleware } from './core/middleware/tenant';
|
||||
fastify.register(tenantMiddleware);
|
||||
fastify.register(tenantManagementRoutes, { prefix: '/api/tenant-management' });
|
||||
```
|
||||
|
||||
### Step 3: Update backend/src/core/plugins/auth.plugin.ts
|
||||
Simplify JWT payload extraction:
|
||||
```typescript
|
||||
// REMOVE tenant claim extraction:
|
||||
// const tenantId = request.user?.['https://motovaultpro.com/tenant_id'];
|
||||
|
||||
// KEEP only:
|
||||
request.user = {
|
||||
sub: payload.sub, // user ID
|
||||
roles: payload['https://motovaultpro.com/roles'] || []
|
||||
};
|
||||
```
|
||||
|
||||
### Step 4: Verify No Tenant References in Features
|
||||
```bash
|
||||
cd backend/src/features
|
||||
grep -r "tenant_id" .
|
||||
grep -r "tenantId" .
|
||||
# Expected: 0 results
|
||||
```
|
||||
|
||||
### Step 5: Rebuild Backend
|
||||
```bash
|
||||
cd backend
|
||||
npm run build
|
||||
# Expected: No errors
|
||||
```
|
||||
|
||||
### Step 6: Update Tests
|
||||
```bash
|
||||
# Remove tenant-management tests
|
||||
rm -rf backend/src/features/tenant-management/tests/
|
||||
|
||||
# Update other test files
|
||||
grep -r "tenant" backend/src/features/*/tests/
|
||||
# Fix any remaining references
|
||||
```
|
||||
|
||||
## Validation Criteria
|
||||
- [ ] backend/src/core/middleware/tenant.ts deleted
|
||||
- [ ] backend/src/core/config/tenant.ts deleted
|
||||
- [ ] backend/src/features/tenant-management/ deleted
|
||||
- [ ] No tenant imports in app.ts
|
||||
- [ ] JWT only extracts sub and roles
|
||||
- [ ] Backend builds successfully
|
||||
- [ ] No tenant_id references in features
|
||||
|
||||
**Validation Command:**
|
||||
```bash
|
||||
npm run build && grep -r "tenant_id" backend/src/features/ | wc -l
|
||||
# Expected: 0
|
||||
```
|
||||
|
||||
## Update EXECUTION-STATE.json
|
||||
```json
|
||||
{
|
||||
"phases": {"2": {"status": "completed", "validation_passed": true}}
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user