3.9 KiB
3.9 KiB
Infrastructure Management Module - Action Items
🔴 P0 - CRITICAL (Ngay lập tức)
1. Authorization - Implement Laravel Policies
- Tạo Policy classes cho: vCenter, Datacenter, Host, Datastore, Network, Folder
- Thêm middleware
can:vào tất cả infrastructure routes trongroutes/admin.php - Xóa view-level RBAC checks trong Blade files
- Định nghĩa permission constants thay vì hard-coded strings
2. Database - FK Constraints & Indexes
- Thêm FK constraint cho
module_folder.module_datacenter_id - Thêm index cho
module_network.module_host_id - Thêm index cho
module_datastore.module_host_id - Thêm composite index:
(vcenter_id, status),(datacenter_id, status)
3. Database - Soft Deletes
- Thêm soft deletes cho bảng: module_vcenter, module_datacenter, module_host, module_datastore, module_network, module_folder
- Update Models thêm
SoftDeletestrait - Update Repositories xử lý soft delete queries
🟡 P1 - HIGH PRIORITY (Trong 30 ngày)
4. API Design - Versioning & Authentication
- Tạo API route group
/api/v1/ - Implement API Resources/Transformers cho các entities
- Thêm Sanctum authentication cho API
- Thêm rate limiting cho sync endpoints
5. Performance - Caching & Queries
- Implement Redis cache với tags theo vCenter/datacenter
- Fix cache invalidation khi có updates
- Thêm eager loading
with(['vCenter'])trong controllers - Tạo index cho
findByName(full-text hoặc index)
6. Tree Explorer - Lazy Loading
- Tạo API endpoint cho tree lazy-load:
/api/v1/infrastructure/tree - Implement expand-on-demand pattern
- Cache tree structure với short TTL
🟢 P2 - MEDIUM PRIORITY (Trong 60 ngày)
7. Domain Modeling - Refactoring
- Tạo module/Infrastructure/Resources thay thế presentation logic trong Models
- Di chuyển
getStatus()HTML rendering từ Model sang Resource - Thêm scope methods cho common queries
8. Multi-tenancy Preparation
- Thêm cột
tenant_idvào tất cả infrastructure tables - Tạo global scope cho tenant filtering
- Update repositories handle tenant context
9. Sync Jobs - Event Driven
- Tạo Infrastructure events: DatacenterSynced, HostSynced, etc.
- Implement event listeners cho cache invalidation
- Thêm queue prioritization cho sync jobs
- Implement job locking tránh race conditions
🔵 P3 - FUTURE (60-90 ngày)
10. Technical Debt
- Tạo constants class cho permissions
- Refactor password handling (统一 encryption approach)
- Thêm API documentation (Swagger/OpenAPI)
- Tách biệt Read/Write repositories
11. SPA Migration Preparation
- Tạo dedicated API controllers cho SPA
- Implement proper JSON error responses
- Thêm pagination metadata vào responses
- Tạo API documentation
📊 Progress Tracking
| Category | Total | Completed | In Progress | Pending |
|---|---|---|---|---|
| P0 - Critical | 10 | |||
| P1 - High | 10 | |||
| P2 - Medium | 10 | |||
| P3 - Future | 4 |
📝 Notes
Database Migrations Needed:
1. add_soft_deletes_to_infrastructure_tables.php
2. add_missing_indexes_and_fk.php
3. add_tenant_id_to_infrastructure_tables.php
Files to Create:
app/Policies/vCenterPolicy.php
app/Policies/DatacenterPolicy.php
app/Policies/HostPolicy.php
app/Policies/DatastorePolicy.php
app/Policies/NetworkPolicy.php
app/Policies/FolderPolicy.php
app/Http/Resources/Api/v1/vCenterResource.php
app/Http/Resources/Api/v1/DatacenterResource.php
app/Events/Infrastructure/DatacenterSynced.php
app/Listeners/Infrastructure/InvalidateDatacenterCache.php
Key Dependencies:
- Laravel Sanctum (API auth)
- Redis (caching)
- Spatie Laravel-permission (RBAC) - optionally