前端权限管理:实现接口级权限管理UI和监控仪表板
新增功能: - 新增 ApiPermissions.vue 主页面,支持模块级/接口级权限切换 - 新增 ProjectPermissionsModule.vue 组件,展示模块级权限矩阵 - 新增 ApiEndpointPermissions.vue 组件,展示接口级权限矩阵 - 新增 PermissionMonitoring.vue 组件,展示权限系统监控仪表板 - 更新 projectPermissions.ts API 客户端,支持接口级权限和监控API - 新增权限相关的 TypeScript 类型定义 - 更新路由配置,添加接口级权限管理路由 - 更新国际化文本,添加权限管理相关的中文文本 API 客户端新增函数: - fetchApiEndpointPermissions: 获取接口级权限矩阵 - updateApiEndpointPermissions: 更新接口级权限矩阵 - fetchPermissionMetrics: 获取权限检查指标 - fetchCacheStats: 获取缓存统计 - fetchPermissionAlerts: 获取告警列表 - fetchPermissionHealth: 获取系统健康状态 - resetPermissionMetrics: 重置指标 - clearPermissionAlerts: 清除告警 Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -152,3 +152,78 @@ export interface ProjectRolePermissionsResponse {
|
||||
export interface ProjectRolePermissionsUpdate {
|
||||
roles: ProjectPermissionMatrix;
|
||||
}
|
||||
|
||||
// 接口级权限
|
||||
export interface ApiEndpointPermissionsResponse {
|
||||
[role: string]: {
|
||||
[endpoint_key: string]: {
|
||||
allowed: boolean;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
export interface ApiEndpointPermissionsUpdate {
|
||||
[role: string]: {
|
||||
[endpoint_key: string]: boolean;
|
||||
};
|
||||
}
|
||||
|
||||
// 监控指标
|
||||
export interface PermissionCheckMetrics {
|
||||
total_checks: number;
|
||||
allowed_checks: number;
|
||||
denied_checks: number;
|
||||
total_time: number;
|
||||
min_time: number;
|
||||
max_time: number;
|
||||
avg_time: number;
|
||||
allow_rate: number;
|
||||
deny_rate: number;
|
||||
error_rate: number;
|
||||
errors: number;
|
||||
}
|
||||
|
||||
export interface CacheMetrics {
|
||||
total_accesses: number;
|
||||
cache_hits: number;
|
||||
cache_misses: number;
|
||||
cache_invalidations: number;
|
||||
hit_rate: number;
|
||||
miss_rate: number;
|
||||
}
|
||||
|
||||
export interface PermissionMetricsResponse {
|
||||
check_metrics: PermissionCheckMetrics;
|
||||
cache_metrics: CacheMetrics;
|
||||
uptime_seconds: number;
|
||||
}
|
||||
|
||||
export interface CacheStatsResponse {
|
||||
cache_items: {
|
||||
project_permissions_count: number;
|
||||
member_role_count: number;
|
||||
total_count: number;
|
||||
};
|
||||
cache_metrics: CacheMetrics;
|
||||
}
|
||||
|
||||
export interface Alert {
|
||||
timestamp: number;
|
||||
level: "info" | "warning" | "error";
|
||||
type: string;
|
||||
message: string;
|
||||
data: Record<string, any>;
|
||||
}
|
||||
|
||||
export interface AlertsResponse {
|
||||
total: number;
|
||||
alerts: Alert[];
|
||||
}
|
||||
|
||||
export interface HealthResponse {
|
||||
status: "healthy" | "degraded" | "unhealthy";
|
||||
health_score: number;
|
||||
issues: string[];
|
||||
metrics: PermissionMetricsResponse;
|
||||
cache_stats: CacheStatsResponse;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user