From 920f5b1a582600c39aad53537b0519a978aec418 Mon Sep 17 00:00:00 2001 From: yusing Date: Wed, 7 Jan 2026 00:58:55 +0800 Subject: [PATCH] feat(agent): add optional StreamPort to agent creation API - Introduced `StreamPort` field in `NewAgentRequest` for agent configuration. - Implemented default behavior for `StreamPort` to be `Port + 1` if not specified. - Added validation to ensure `StreamPort` is within the valid range (1-65535). --- internal/api/v1/agent/create.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/api/v1/agent/create.go b/internal/api/v1/agent/create.go index 225240ea..c7f2dc2e 100644 --- a/internal/api/v1/agent/create.go +++ b/internal/api/v1/agent/create.go @@ -16,6 +16,7 @@ type NewAgentRequest struct { Name string `json:"name" binding:"required"` Host string `json:"host" binding:"required"` Port int `json:"port" binding:"required,min=1,max=65535"` + StreamPort int `json:"stream_port" binding:"omitempty,min=1,max=65535"` Type string `json:"type" binding:"required,oneof=docker system"` Nightly bool `json:"nightly" binding:"omitempty"` ContainerRuntime agent.ContainerRuntime `json:"container_runtime" binding:"omitempty,oneof=docker podman" default:"docker"` @@ -68,9 +69,18 @@ func Create(c *gin.Context) { return } + if request.StreamPort <= 0 { + request.StreamPort = request.Port + 1 + if request.StreamPort > 65535 { + c.JSON(http.StatusBadRequest, apitypes.Error("stream port is out of range")) + return + } + } + var cfg agent.Generator = &agent.AgentEnvConfig{ Name: request.Name, Port: request.Port, + StreamPort: request.StreamPort, CACert: ca.String(), SSLCert: srv.String(), ContainerRuntime: request.ContainerRuntime,