feat(api, web): integrate health status management for services and domains
Build, Test, and Push CFDM Docker Image / test (push) Successful in 10m17s
Build, Test, and Push CFDM Docker Image / build-and-push (push) Successful in 1m48s
Build, Test, and Push CFDM Docker Image / update-wiki (push) Successful in 6s
Build, Test, and Push CFDM Docker Image / create-release (push) Has been skipped

- Added health status and latency fields to service and domain schemas, enhancing monitoring capabilities.
- Implemented health status aggregation for services in the API, allowing for improved health checks and reporting.
- Updated web components to display health status using HealthCheckBadge, improving user visibility of service health.
- Refactored service and domain management components to incorporate health status in various views, enhancing overall functionality.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
DenozordecandCursor committed 2026-07-17 02:55:49 +07:00
1 parent 64585ccd47
commit 1f710bbe8b
48 files changed
+4258 -246

No files matched your search

+4
View File
@@ -132,10 +132,14 @@ export const serviceViewSchema = serviceSchema.extend({
enabled: z.coerce.boolean().default(false),
ips: z.array(z.string()).default([]),
domains: z.array(serviceDomainBindingSchema).default([]),
health_status: ipHealthStateSchema.default('unknown'),
health_latency_ms: z.number().nullable().default(null),
})
export const serviceGroupViewSchema = serviceGroupSchema.extend({
services: z.array(serviceViewSchema).default([]),
health_status: ipHealthStateSchema.default('unknown'),
health_latency_ms: z.number().nullable().default(null),
})
export const serviceGroupsResponseSchema = z.object({
+4
View File
@@ -27,6 +27,8 @@ export interface ServiceGroup {
export interface ServiceGroupView extends ServiceGroup {
services: ServiceView[];
health_status: IpHealthState;
health_latency_ms: number | null;
}
export interface ServiceGroupsResponse {
@@ -185,6 +187,8 @@ export interface ServiceView {
updated_at: string;
ips: string[];
domains: ServiceDomainBindingView[];
health_status: IpHealthState;
health_latency_ms: number | null;
}
export interface GroupWithStats extends Group {