feat: verify production runtime integrity
This commit is contained in:
Vendored
+8
@@ -2714,6 +2714,14 @@ export interface components {
|
||||
applicable: boolean;
|
||||
/** @enum {string} */
|
||||
deployment_profile: "MISSING" | "demo" | "production";
|
||||
/** @enum {string} */
|
||||
application_environment: "MISSING" | "local" | "test" | "stage" | "prod" | "mixed";
|
||||
/** @enum {string} */
|
||||
identity_service_mode: "MISSING" | "missing" | "development" | "hardened";
|
||||
/** @description API、Callbacks和Worker实际容器环境均为prod时为true。 */
|
||||
application_runtime_ready: boolean;
|
||||
/** @description 身份服务未使用start-dev开发模式时为true。 */
|
||||
identity_service_ready: boolean;
|
||||
/** @description 最近主机报告证明异地备份已启用、已回读验证且未过期。 */
|
||||
offsite_backup_ready: boolean;
|
||||
/** @description 最近主机报告证明真实外部告警接收器已配置且密钥可读。 */
|
||||
|
||||
@@ -149,8 +149,8 @@ function serviceLabel(value:OpsExternalDependency["service_name"]){return ({api:
|
||||
function externalDependencyState(item:OpsExternalDependency){const stale=Date.now()-new Date(item.checked_at).getTime()>item.probe_interval_ms*3;return stale?{label:"结果过期",tone:"warning",stale:true}:item.status==="AVAILABLE"?{label:"可用",tone:"active",stale:false}:{label:"不可用",tone:"danger",stale:false}}
|
||||
function platformHealthState(item:PlatformHealthSnapshot){const stale=Date.now()-new Date(item.observed_at).getTime()>15*60*1000;if(stale)return{label:"上报过期",tone:"danger",stale:true};return item.status==="healthy"?{label:"运行正常",tone:"active",stale:false}:item.status==="warning"?{label:"存在预警",tone:"warning",stale:false}:{label:"严重异常",tone:"danger",stale:false}}
|
||||
function platformHealthCheckStatusLabel(value:PlatformHealthSnapshot["checks"][number]["status"]){return value==="healthy"?"正常":value==="warning"?"预警":"严重"}
|
||||
function platformHealthCheckLabel(value:string){const labels:Record<string,string>={deployment_profile:"部署模式",external_alert_receiver:"外部告警接收器",mock_services:"模拟服务",public_origin:"公网地址",public_https:"HTTPS入口",public_tcp_listeners:"公网监听端口",oidc_issuer:"身份签发地址",backup_freshness:"本地备份",offsite_backup:"异地备份",backup_service:"备份服务","platform-backup.timer":"备份定时器","platform-offsite-backup.timer":"异地备份定时器","certbot-ip-renew.timer":"证书续期定时器",certificate:"HTTPS证书",disk_usage:"磁盘空间",container_postgres:"PostgreSQL",container_redis:"Redis",container_minio:"对象存储",container_keycloak:"身份服务",container_api:"业务API",container_callbacks:"回调服务",container_worker:"后台任务",container_web:"前端页面",container_gateway:"HTTPS网关","container_mock-provider":"模拟语音提供器","container_mock-alert-receiver":"模拟告警接收器"};return labels[value]??value}
|
||||
function platformHealthValueLabel(_name:string,value:string){if(value==="demo")return "演示环境";if(value==="production")return "生产环境";if(value==="not_configured")return "尚未配置";if(value==="configured")return "已配置";if(value==="enabled_for_demo")return "演示模式已启用";if(value==="disabled")return "已关闭";if(value==="unexpected_running")return "生产环境仍在运行模拟服务";if(value==="not_required")return "当前未要求启用";if(value==="issuer_matches")return "签发地址一致";if(value==="http_200")return "公网访问成功";if(value==="enabled/active")return "已启用并运行";if(value==="success")return "最近执行成功";if(value.startsWith("ports="))return `当前对外端口 ${value.slice(6)}`;if(value.startsWith("unexpected_ports="))return `发现未授权端口 ${value.slice(17)}`;if(value.startsWith("age_seconds=")){const seconds=Number(value.slice(12));return Number.isFinite(seconds)?`距最近成功 ${formatDuration(seconds*1000)}`:value}if(value.startsWith("remaining_seconds=")){const seconds=Number(value.slice(18));return Number.isFinite(seconds)?`剩余 ${Math.floor(seconds/86400)} 天` : value}if(value.startsWith("used_percent="))return `已使用 ${value.slice(13)}%`;if(value==="running/healthy"||value==="running/none")return "容器正在运行";return value}
|
||||
function platformHealthCheckLabel(value:string){const labels:Record<string,string>={deployment_profile:"部署模式",application_environment:"应用运行环境",identity_service_mode:"身份服务模式",external_alert_receiver:"外部告警接收器",mock_services:"模拟服务",public_origin:"公网地址",public_https:"HTTPS入口",public_tcp_listeners:"公网监听端口",oidc_issuer:"身份签发地址",backup_freshness:"本地备份",offsite_backup:"异地备份",backup_service:"备份服务","platform-backup.timer":"备份定时器","platform-offsite-backup.timer":"异地备份定时器","certbot-ip-renew.timer":"证书续期定时器",certificate:"HTTPS证书",disk_usage:"磁盘空间",container_postgres:"PostgreSQL",container_redis:"Redis",container_minio:"对象存储",container_keycloak:"身份服务",container_api:"业务API",container_callbacks:"回调服务",container_worker:"后台任务",container_web:"前端页面",container_gateway:"HTTPS网关","container_mock-provider":"模拟语音提供器","container_mock-alert-receiver":"模拟告警接收器"};return labels[value]??value}
|
||||
function platformHealthValueLabel(name:string,value:string){if(name==="application_environment"){if(value==="local")return "本地开发运行环境";if(value==="prod")return "生产运行环境";if(value==="stage")return "预发布运行环境";if(value==="test")return "测试运行环境";if(value==="mixed")return "各进程环境不一致"}if(name==="identity_service_mode"){if(value==="development")return "开发模式";if(value==="hardened")return "加固模式"}if(value==="demo")return "演示环境";if(value==="production")return "生产环境";if(value==="not_configured")return "尚未配置";if(value==="configured")return "已配置";if(value==="enabled_for_demo")return "演示模式已启用";if(value==="disabled")return "已关闭";if(value==="unexpected_running")return "生产环境仍在运行模拟服务";if(value==="not_required")return "当前未要求启用";if(value==="issuer_matches")return "签发地址一致";if(value==="http_200")return "公网访问成功";if(value==="enabled/active")return "已启用并运行";if(value==="success")return "最近执行成功";if(value.startsWith("ports="))return `当前对外端口 ${value.slice(6)}`;if(value.startsWith("unexpected_ports="))return `发现未授权端口 ${value.slice(17)}`;if(value.startsWith("age_seconds=")){const seconds=Number(value.slice(12));return Number.isFinite(seconds)?`距最近成功 ${formatDuration(seconds*1000)}`:value}if(value.startsWith("remaining_seconds=")){const seconds=Number(value.slice(18));return Number.isFinite(seconds)?`剩余 ${Math.floor(seconds/86400)} 天` : value}if(value.startsWith("used_percent="))return `已使用 ${value.slice(13)}%`;if(value==="running/healthy"||value==="running/none")return "容器正在运行";return value}
|
||||
function downloadJSON(value:unknown,filename:string){const blob=new Blob([JSON.stringify(value,null,2)],{type:"application/json"});const url=URL.createObjectURL(blob);const anchor=document.createElement("a");anchor.href=url;anchor.download=filename;anchor.click();URL.revokeObjectURL(url)}
|
||||
function acceptanceGateLabel(value:OpsAcceptanceSnapshot["gates"][number]["code"]){return ({candidate_build_identified:"候选构建",database_migration_clean:"数据库迁移",required_dependencies_available:"必需外部依赖",integration_issues_clear:"高严重度问题",outbox_clear:"可靠任务",critical_alerts_clear:"高严重度告警",platform_health_current:"云端主机健康",production_infrastructure_ready:"生产基础设施"} as Record<OpsAcceptanceSnapshot["gates"][number]["code"],string>)[value]}
|
||||
function acceptanceResourceStateLabel(value:OpsAcceptanceSnapshot["alerts"]["blocking_items"][number]["resource_state"]){return ({PRESENT:"资源存在",MISSING:"资源已不存在,仍需人工复核关闭",AGGREGATE:"聚合队列",UNKNOWN:"未提供自动核对规则"} as Record<OpsAcceptanceSnapshot["alerts"]["blocking_items"][number]["resource_state"],string>)[value]}
|
||||
|
||||
Reference in New Issue
Block a user