mirror of
https://github.com/Silentely/eSIM-Tools.git
synced 2026-09-06 15:58:25 +08:00
- 新增统一的中间件模块,提供鉴权、CORS和错误处理功能 - 重构所有Functions使用withAuth中间件简化代码结构 - 添加安全存储模块替代localStorage,防御XSS攻击 - 引入HTML清理工具,自动转义特殊字符和验证URL安全性 - 创建代码质量检查脚本,验证语法、环境变量和依赖完整性 - 添加构建日志工具和重构脚本,统一替换console.log为Logger - 引入ESLint配置,提升代码质量和一致性 - 重构Giffgaff相关API,统一错误处理和验证逻辑 - 优化构建脚本,添加压缩和图片优化功能 - 新增健康检查端点,用于服务监控和状态报告
49 lines
1.3 KiB
JavaScript
49 lines
1.3 KiB
JavaScript
/**
|
|
* Netlify Function: Health Check
|
|
* 提供健康检查端点,用于监控服务状态
|
|
*/
|
|
|
|
exports.handler = async (event, context) => {
|
|
const health = {
|
|
status: 'healthy',
|
|
timestamp: new Date().toISOString(),
|
|
service: 'eSIM-Tools',
|
|
version: process.env.APP_VERSION || '2.0.0',
|
|
environment: process.env.NODE_ENV || 'production',
|
|
uptime: process.uptime(),
|
|
checks: {
|
|
accessKey: !!process.env.ACCESS_KEY,
|
|
giffgaffClientId: !!process.env.GIFFGAFF_CLIENT_ID,
|
|
giffgaffClientSecret: !!process.env.GIFFGAFF_CLIENT_SECRET
|
|
}
|
|
};
|
|
|
|
// 检查关键环境变量
|
|
const missingConfigs = [];
|
|
if (!process.env.ACCESS_KEY) {
|
|
missingConfigs.push('ACCESS_KEY');
|
|
}
|
|
if (!process.env.GIFFGAFF_CLIENT_ID) {
|
|
missingConfigs.push('GIFFGAFF_CLIENT_ID');
|
|
}
|
|
if (!process.env.GIFFGAFF_CLIENT_SECRET) {
|
|
missingConfigs.push('GIFFGAFF_CLIENT_SECRET');
|
|
}
|
|
|
|
if (missingConfigs.length > 0) {
|
|
health.status = 'degraded';
|
|
health.warnings = missingConfigs.map(key => `${key} not configured`);
|
|
}
|
|
|
|
const statusCode = health.status === 'healthy' ? 200 : 503;
|
|
|
|
return {
|
|
statusCode,
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Cache-Control': 'no-cache, no-store, must-revalidate'
|
|
},
|
|
body: JSON.stringify(health, null, 2)
|
|
};
|
|
};
|