本计划将 CloudShell 扫描器功能分解为可执行的编码任务,包括独立的 Python 扫描脚本、前端上传组件、后端 API 和数据处理服务。
[x] 1. 创建 CloudShell 扫描脚本
cloudshell_scanner.py 基础结构需求: 1.1, 1.2, 1.7
[x] 1.2 实现 VPC 相关服务扫描
实现 VPC、Subnet、Route Table、Internet Gateway 扫描
实现 NAT Gateway、Security Group、VPC Endpoint 扫描
实现 VPC Peering、Customer Gateway、VPN Connection 扫描
需求: 1.5
[x] 1.3 实现 EC2 和计算服务扫描
实现 EC2 实例、Elastic IP 扫描
实现 Auto Scaling Group、ELB、Target Group 扫描
实现 Lambda、EKS 扫描
需求: 1.5
[x] 1.4 实现数据库和存储服务扫描
实现 RDS、ElastiCache 扫描
实现 S3 Bucket、S3 Event Notification 扫描
需求: 1.5
[x] 1.5 实现全局和监控服务扫描
实现 CloudFront、Route53、ACM、WAF 扫描
实现 SNS、CloudWatch、EventBridge、CloudTrail、Config 扫描
需求: 1.5
[x] 1.6 实现区域过滤和错误处理
实现区域列表获取和过滤逻辑
实现错误捕获和继续扫描逻辑
实现重试机制(指数退避)
需求: 1.3, 1.4, 1.8
[x] 1.7 实现 JSON 导出功能
实现 ScanData 数据结构
实现 JSON 序列化和文件导出
添加元数据字段(account_id, timestamp, regions, services)
需求: 1.6, 2.1, 2.2, 2.3, 2.4
[ ]* 1.8 编写属性测试:JSON 往返一致性
Property 1: JSON 数据往返一致性
验证: 需求 2.4, 2.5
[ ]* 1.9 编写属性测试:服务类型一致性
Property 4: 服务类型一致性
验证: 需求 1.5
[x] 2. 检查点 - 确保 CloudShell 扫描脚本可用
[x] 3. 扩展后端数据模型
需求: 4.3
[x] 3.2 创建 ScanDataProcessor 服务
创建 backend/app/services/scan_data_processor.py
实现 validate_scan_data 方法
实现 convert_to_scan_result 方法
需求: 4.2, 5.1
[ ]* 3.3 编写属性测试:JSON 验证完整性
Property 6: JSON 验证完整性
验证: 需求 3.4, 4.2, 6.2
[ ]* 3.4 编写属性测试:无效 JSON 错误处理
Property 7: 无效 JSON 错误处理
验证: 需求 3.3, 3.5, 4.5
[x] 4. 创建后端上传 API
需求: 4.1, 4.2, 4.5, 4.6
[x] 4.2 实现任务创建和 Worker 触发
创建任务记录(source='upload')
保存上传的 JSON 数据
触发 Celery Worker 处理任务
需求: 4.3, 4.4
[x] 4.3 创建上传数据处理 Celery 任务
创建 process_uploaded_scan 任务
集成 ScanDataProcessor 和 ReportGenerator
实现任务状态更新和错误处理
需求: 5.1, 5.2, 5.3, 5.5
[ ]* 4.4 编写单元测试:上传 API
测试有效数据上传
测试无效数据错误响应
测试文件大小限制
需求: 4.1, 4.5, 4.6
[x] 5. 检查点 - 确保后端 API 可用
[x] 6. 创建前端上传组件
frontend/src/utils/scanDataValidator.ts需求: 3.3, 3.4
[x] 6.2 创建 JsonUploader 组件
创建 frontend/src/components/Upload/JsonUploader.tsx
实现文件拖拽和选择上传
实现上传前验证和错误提示
需求: 3.2, 3.5
[x] 6.3 修改任务创建页面
在 Tasks.tsx 中添加数据来源选择
集成 JsonUploader 组件
实现上传模式的表单提交
需求: 3.1, 3.6
[ ]* 6.4 编写前端单元测试
测试 JSON 验证函数
测试 JsonUploader 组件
需求: 3.3, 3.4, 3.5
[x] 7. 集成和端到端测试
需求: 5.1, 5.2, 5.4
[ ]* 7.2 编写属性测试:报告生成一致性
Property 8: 报告生成一致性
验证: 需求 5.1, 5.2
[x] 8. 最终检查点 - 确保所有功能正常
* 的任务为可选任务,可以跳过以加快 MVP 开发