feat(domains): cert error Tooltip mit last_error im Domain-Detail
Abgelaufene und fehlerhafte Zertifikate zeigen jetzt beim Hover den Fehlertext (last_error) aus der DB. TLSCertLite um last_error erweitert. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -60,7 +60,7 @@ import (
|
|||||||
usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users"
|
usersvc "git.netcell-it.de/projekte/edgeguard-native/internal/services/users"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "1.1.143"
|
var version = "1.1.144"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
addr := os.Getenv("EDGEGUARD_API_ADDR")
|
addr := os.Getenv("EDGEGUARD_API_ADDR")
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import (
|
|||||||
"git.netcell-it.de/projekte/edgeguard-native/internal/services/setup"
|
"git.netcell-it.de/projekte/edgeguard-native/internal/services/setup"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "1.1.143"
|
var version = "1.1.144"
|
||||||
|
|
||||||
const usage = `edgeguard-ctl — EdgeGuard CLI
|
const usage = `edgeguard-ctl — EdgeGuard CLI
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ import (
|
|||||||
"git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts"
|
"git.netcell-it.de/projekte/edgeguard-native/internal/services/tlscerts"
|
||||||
)
|
)
|
||||||
|
|
||||||
var version = "1.1.143"
|
var version = "1.1.144"
|
||||||
|
|
||||||
const (
|
const (
|
||||||
// renewTickInterval — how often we re-evaluate expiring certs.
|
// renewTickInterval — how often we re-evaluate expiring certs.
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ interface TLSCertLite {
|
|||||||
domain: string
|
domain: string
|
||||||
status: 'pending' | 'active' | 'renewing' | 'expired' | 'error'
|
status: 'pending' | 'active' | 'renewing' | 'expired' | 'error'
|
||||||
not_after?: string | null
|
not_after?: string | null
|
||||||
|
last_error?: string | null
|
||||||
}
|
}
|
||||||
|
|
||||||
interface HAProxyStat { backend: string; server: string; status: string }
|
interface HAProxyStat { backend: string; server: string; status: string }
|
||||||
@@ -165,8 +166,16 @@ export default function DomainDetailPage() {
|
|||||||
|
|
||||||
const certBadge = () => {
|
const certBadge = () => {
|
||||||
if (!cert) return <Tag icon={<LockOutlined />} color="default">{t('domains.tlsCertNone')}</Tag>
|
if (!cert) return <Tag icon={<LockOutlined />} color="default">{t('domains.tlsCertNone')}</Tag>
|
||||||
if (cert.status === 'expired') return <Tag icon={<LockOutlined />} color="red">{t('domains.tlsCertExpired')}</Tag>
|
if (cert.status === 'expired') return (
|
||||||
if (cert.status === 'error') return <Tag icon={<LockOutlined />} color="red">{t('domains.tlsCertError')}</Tag>
|
<Tooltip title={cert.last_error ?? cert.not_after}>
|
||||||
|
<Tag icon={<LockOutlined />} color="red">{t('domains.tlsCertExpired')}</Tag>
|
||||||
|
</Tooltip>
|
||||||
|
)
|
||||||
|
if (cert.status === 'error') return (
|
||||||
|
<Tooltip title={cert.last_error}>
|
||||||
|
<Tag icon={<LockOutlined />} color="red">{t('domains.tlsCertError')}</Tag>
|
||||||
|
</Tooltip>
|
||||||
|
)
|
||||||
const days = cert.not_after
|
const days = cert.not_after
|
||||||
? Math.round((new Date(cert.not_after).getTime() - Date.now()) / 86_400_000)
|
? Math.round((new Date(cert.not_after).getTime() - Date.now()) / 86_400_000)
|
||||||
: null
|
: null
|
||||||
|
|||||||
Reference in New Issue
Block a user