From 92f72bfce6e1ac3435093009279f730641d51db9 Mon Sep 17 00:00:00 2001 From: pascal Date: Tue, 3 Feb 2026 17:37:55 +0100 Subject: [PATCH] add reverse proxy meta to api resp --- .../modules/reverseproxy/reverseproxy.go | 10 +++++++ shared/management/http/api/openapi.yml | 30 +++++++++++++++++++ shared/management/http/api/types.gen.go | 28 ++++++++++++++++- 3 files changed, 67 insertions(+), 1 deletion(-) diff --git a/management/internals/modules/reverseproxy/reverseproxy.go b/management/internals/modules/reverseproxy/reverseproxy.go index 200b55344..a7aebe938 100644 --- a/management/internals/modules/reverseproxy/reverseproxy.go +++ b/management/internals/modules/reverseproxy/reverseproxy.go @@ -145,6 +145,15 @@ func (r *ReverseProxy) ToAPIResponse() *api.ReverseProxy { }) } + meta := api.ReverseProxyMeta{ + CreatedAt: r.Meta.CreatedAt, + Status: api.ReverseProxyMetaStatus(r.Meta.Status), + } + + if !r.Meta.CertificateIssuedAt.IsZero() { + meta.CertificateIssuedAt = &r.Meta.CertificateIssuedAt + } + return &api.ReverseProxy{ Id: r.ID, Name: r.Name, @@ -152,6 +161,7 @@ func (r *ReverseProxy) ToAPIResponse() *api.ReverseProxy { Targets: apiTargets, Enabled: r.Enabled, Auth: authConfig, + Meta: meta, } } diff --git a/shared/management/http/api/openapi.yml b/shared/management/http/api/openapi.yml index 573924a44..9fb455b7a 100644 --- a/shared/management/http/api/openapi.yml +++ b/shared/management/http/api/openapi.yml @@ -2855,6 +2855,8 @@ components: description: Whether the reverse proxy is enabled auth: $ref: '#/components/schemas/ReverseProxyAuthConfig' + meta: + $ref: '#/components/schemas/ReverseProxyMeta' required: - id - name @@ -2862,6 +2864,34 @@ components: - targets - enabled - auth + - meta + ReverseProxyMeta: + type: object + properties: + created_at: + type: string + format: date-time + description: Timestamp when the reverse proxy was created + example: "2024-02-03T10:30:00Z" + certificate_issued_at: + type: string + format: date-time + description: Timestamp when the certificate was issued (empty if not yet issued) + example: "2024-02-03T10:35:00Z" + status: + type: string + enum: + - pending + - active + - tunnel_not_created + - certificate_pending + - certificate_failed + - error + description: Current status of the reverse proxy + example: "active" + required: + - created_at + - status ReverseProxyRequest: type: object properties: diff --git a/shared/management/http/api/types.gen.go b/shared/management/http/api/types.gen.go index 2290e7e1f..91253de9b 100644 --- a/shared/management/http/api/types.gen.go +++ b/shared/management/http/api/types.gen.go @@ -275,6 +275,16 @@ const ( ReverseProxyDomainTypeFree ReverseProxyDomainType = "free" ) +// Defines values for ReverseProxyMetaStatus. +const ( + ReverseProxyMetaStatusActive ReverseProxyMetaStatus = "active" + ReverseProxyMetaStatusCertificateFailed ReverseProxyMetaStatus = "certificate_failed" + ReverseProxyMetaStatusCertificatePending ReverseProxyMetaStatus = "certificate_pending" + ReverseProxyMetaStatusError ReverseProxyMetaStatus = "error" + ReverseProxyMetaStatusPending ReverseProxyMetaStatus = "pending" + ReverseProxyMetaStatusTunnelNotCreated ReverseProxyMetaStatus = "tunnel_not_created" +) + // Defines values for ReverseProxyTargetProtocol. const ( ReverseProxyTargetProtocolHttp ReverseProxyTargetProtocol = "http" @@ -1958,7 +1968,8 @@ type ReverseProxy struct { Enabled bool `json:"enabled"` // Id Reverse proxy ID - Id string `json:"id"` + Id string `json:"id"` + Meta ReverseProxyMeta `json:"meta"` // Name Reverse proxy name Name string `json:"name"` @@ -1999,6 +2010,21 @@ type ReverseProxyDomainRequest struct { // ReverseProxyDomainType Type of Reverse Proxy Domain type ReverseProxyDomainType string +// ReverseProxyMeta defines model for ReverseProxyMeta. +type ReverseProxyMeta struct { + // CertificateIssuedAt Timestamp when the certificate was issued (empty if not yet issued) + CertificateIssuedAt *time.Time `json:"certificate_issued_at,omitempty"` + + // CreatedAt Timestamp when the reverse proxy was created + CreatedAt time.Time `json:"created_at"` + + // Status Current status of the reverse proxy + Status ReverseProxyMetaStatus `json:"status"` +} + +// ReverseProxyMetaStatus Current status of the reverse proxy +type ReverseProxyMetaStatus string + // ReverseProxyRequest defines model for ReverseProxyRequest. type ReverseProxyRequest struct { Auth ReverseProxyAuthConfig `json:"auth"`