185 lines
3.9 KiB
TypeScript
185 lines
3.9 KiB
TypeScript
/**
|
||
* 管理员模块常量定义
|
||
*
|
||
* 功能描述:
|
||
* - 定义管理员模块使用的所有常量
|
||
* - 统一管理配置参数和限制值
|
||
* - 避免魔法数字的使用
|
||
* - 提供类型安全的常量访问
|
||
*
|
||
* 职责分离:
|
||
* - 常量集中管理
|
||
* - 配置参数定义
|
||
* - 限制值设定
|
||
* - 敏感字段标识
|
||
*
|
||
* 最近修改:
|
||
* - 2026-01-08: 代码质量优化 - 添加日志查询限制和请求ID配置常量,补充用户查询限制常量 (修改者: moyin)
|
||
* - 2026-01-08: 功能新增 - 创建管理员模块常量定义文件 (修改者: moyin)
|
||
*
|
||
* @author moyin
|
||
* @version 1.2.0
|
||
* @since 2026-01-08
|
||
* @lastModified 2026-01-08
|
||
*/
|
||
|
||
/**
|
||
* 分页限制常量
|
||
*/
|
||
export const PAGINATION_LIMITS = {
|
||
/** 默认每页数量 */
|
||
DEFAULT_LIMIT: 20,
|
||
/** 默认偏移量 */
|
||
DEFAULT_OFFSET: 0,
|
||
/** 用户列表最大每页数量 */
|
||
USER_LIST_MAX_LIMIT: 100,
|
||
/** 搜索结果最大每页数量 */
|
||
SEARCH_MAX_LIMIT: 50,
|
||
/** 日志列表最大每页数量 */
|
||
LOG_LIST_MAX_LIMIT: 200,
|
||
/** 批量操作最大数量 */
|
||
BATCH_OPERATION_MAX_SIZE: 100
|
||
} as const;
|
||
|
||
/**
|
||
* 请求ID前缀常量
|
||
*/
|
||
export const REQUEST_ID_PREFIXES = {
|
||
/** 通用请求 */
|
||
GENERAL: 'req',
|
||
/** 错误请求 */
|
||
ERROR: 'err',
|
||
/** 管理员操作 */
|
||
ADMIN_OPERATION: 'admin',
|
||
/** 数据库操作 */
|
||
DATABASE_OPERATION: 'db',
|
||
/** 健康检查 */
|
||
HEALTH_CHECK: 'health',
|
||
/** 日志操作 */
|
||
LOG_OPERATION: 'log'
|
||
} as const;
|
||
|
||
/**
|
||
* 敏感字段列表
|
||
*/
|
||
export const SENSITIVE_FIELDS = [
|
||
'password',
|
||
'password_hash',
|
||
'newPassword',
|
||
'oldPassword',
|
||
'token',
|
||
'api_key',
|
||
'secret',
|
||
'private_key',
|
||
'zulipApiKeyEncrypted'
|
||
] as const;
|
||
|
||
/**
|
||
* 日志保留策略常量
|
||
*/
|
||
export const LOG_RETENTION = {
|
||
/** 默认保留天数 */
|
||
DEFAULT_DAYS: 90,
|
||
/** 最少保留天数 */
|
||
MIN_DAYS: 7,
|
||
/** 最多保留天数 */
|
||
MAX_DAYS: 365,
|
||
/** 敏感操作日志保留天数 */
|
||
SENSITIVE_OPERATION_DAYS: 180
|
||
} as const;
|
||
|
||
/**
|
||
* 操作类型常量
|
||
*/
|
||
export const OPERATION_TYPES = {
|
||
CREATE: 'CREATE',
|
||
UPDATE: 'UPDATE',
|
||
DELETE: 'DELETE',
|
||
QUERY: 'QUERY',
|
||
BATCH: 'BATCH'
|
||
} as const;
|
||
|
||
/**
|
||
* 目标类型常量
|
||
*/
|
||
export const TARGET_TYPES = {
|
||
USERS: 'users',
|
||
USER_PROFILES: 'user_profiles',
|
||
ZULIP_ACCOUNTS: 'zulip_accounts',
|
||
ADMIN_LOGS: 'admin_logs'
|
||
} as const;
|
||
|
||
/**
|
||
* 操作结果常量
|
||
*/
|
||
export const OPERATION_RESULTS = {
|
||
SUCCESS: 'SUCCESS',
|
||
FAILED: 'FAILED'
|
||
} as const;
|
||
|
||
/**
|
||
* 错误码常量
|
||
*/
|
||
export const ERROR_CODES = {
|
||
BAD_REQUEST: 'BAD_REQUEST',
|
||
UNAUTHORIZED: 'UNAUTHORIZED',
|
||
FORBIDDEN: 'FORBIDDEN',
|
||
NOT_FOUND: 'NOT_FOUND',
|
||
CONFLICT: 'CONFLICT',
|
||
UNPROCESSABLE_ENTITY: 'UNPROCESSABLE_ENTITY',
|
||
TOO_MANY_REQUESTS: 'TOO_MANY_REQUESTS',
|
||
INTERNAL_SERVER_ERROR: 'INTERNAL_SERVER_ERROR',
|
||
BAD_GATEWAY: 'BAD_GATEWAY',
|
||
SERVICE_UNAVAILABLE: 'SERVICE_UNAVAILABLE',
|
||
GATEWAY_TIMEOUT: 'GATEWAY_TIMEOUT',
|
||
UNKNOWN_ERROR: 'UNKNOWN_ERROR'
|
||
} as const;
|
||
|
||
/**
|
||
* HTTP状态码常量
|
||
*/
|
||
export const HTTP_STATUS = {
|
||
OK: 200,
|
||
CREATED: 201,
|
||
BAD_REQUEST: 400,
|
||
UNAUTHORIZED: 401,
|
||
FORBIDDEN: 403,
|
||
NOT_FOUND: 404,
|
||
CONFLICT: 409,
|
||
UNPROCESSABLE_ENTITY: 422,
|
||
TOO_MANY_REQUESTS: 429,
|
||
INTERNAL_SERVER_ERROR: 500,
|
||
BAD_GATEWAY: 502,
|
||
SERVICE_UNAVAILABLE: 503,
|
||
GATEWAY_TIMEOUT: 504
|
||
} as const;
|
||
|
||
/**
|
||
* 缓存键前缀常量
|
||
*/
|
||
export const CACHE_KEYS = {
|
||
USER_LIST: 'admin:users:list',
|
||
USER_PROFILE_LIST: 'admin:profiles:list',
|
||
ZULIP_ACCOUNT_LIST: 'admin:zulip:list',
|
||
STATISTICS: 'admin:stats'
|
||
} as const;
|
||
|
||
/**
|
||
* 日志查询限制常量
|
||
*/
|
||
export const LOG_QUERY_LIMITS = {
|
||
/** 默认日志查询每页数量 */
|
||
DEFAULT_LOG_QUERY_LIMIT: 50,
|
||
/** 敏感操作日志默认查询数量 */
|
||
SENSITIVE_LOG_DEFAULT_LIMIT: 50
|
||
} as const;
|
||
|
||
/**
|
||
* 用户查询限制常量
|
||
*/
|
||
export const USER_QUERY_LIMITS = {
|
||
/** 用户状态统计查询的最大用户数 */
|
||
MAX_USERS_FOR_STATS: 10000,
|
||
/** 管理员操作历史默认查询数量 */
|
||
ADMIN_HISTORY_DEFAULT_LIMIT: 20
|
||
} as const; |