diff --git a/web/src/components/ServicesComponent.tsx b/web/src/components/ServicesComponent.tsx index b28a932..e1cee43 100644 --- a/web/src/components/ServicesComponent.tsx +++ b/web/src/components/ServicesComponent.tsx @@ -21,20 +21,22 @@ import { usePageHelp } from '../hooks/usePageHelp'; import type { RegisteredService } from '../services/api/networking'; import { servicesApi, haproxyApi } from '../services/api/networking'; -function StatusDot({ status, label }: { status: 'ok' | 'warning' | 'na'; label: string }) { +function StatusDot({ status, label }: { status: 'ok' | 'error' | 'na'; label: string }) { return ( {status === 'ok' && } - {status === 'warning' && } - {status === 'na' && } + {status === 'error' && } + {status === 'na' && } {label} ); } -function getTlsStatus(service: RegisteredService, certDomains: Set): 'ok' | 'warning' | 'na' { - if (service.tls === 'passthrough' || service.backend.type === 'tcp-passthrough') return 'ok'; - return certDomains.has(service.domain) ? 'ok' : 'warning'; +function getTlsStatus(service: RegisteredService, certDomains: Set): 'ok' | 'error' | 'na' { + // Passthrough: Central doesn't handle TLS — grey (not applicable) + if (service.tls === 'passthrough' || service.backend.type === 'tcp-passthrough') return 'na'; + // Terminate: Central handles TLS — green if cert exists, red if missing + return certDomains.has(service.domain) ? 'ok' : 'error'; } function getProxyLabel(service: RegisteredService): string {