Improve stdio transport validation and function naming (#365)

## Summary
- Add validation that URL must be empty for stdio transport types
- Rename `validateTransport` to `validateRemoteTransport` for better
clarity
- Update corresponding test case to expect error when stdio transport
has URL

## Context
This addresses two specific feedback comments from @domdomegg on PR
#345:
1. "do we want to validate the the url _is_ empty?" - Now validates URL
is empty for stdio
2. "maybe rename validateRemoteTransport or something?" - Renamed
function for clarity

The changes enforce stricter validation while improving code readability
through better naming.
This commit is contained in:
adam jones 2025-09-06 00:51:23 +01:00 • committed by GitHub
commit e9884c1d7b
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -34,7 +34,7 @@ func ValidateServerJSON(serverJSON *apiv0.ServerJSON) error {
// Validate all remotes
for _, remote := range serverJSON.Remotes {
if err := validateTransport(&remote); err != nil {
if err := validateRemoteTransport(&remote); err != nil {
return err
}
}
@ -178,7 +178,10 @@ func validatePackageTransport(transport *model.Transport, availableVariables []s
// Validate transport type is supported
switch transport.Type {
case model.TransportTypeStdio:
// No additional validation needed for stdio - URL should be empty
// Validate that URL is empty for stdio transport
if transport.URL != "" {
return fmt.Errorf("url must be empty for %s transport type, got: %s", transport.Type, transport.URL)
}
return nil
case model.TransportTypeStreamableHTTP, model.TransportTypeSSE:
// URL is required for streamable-http and sse
@ -201,8 +204,8 @@ func validatePackageTransport(transport *model.Transport, availableVariables []s
}
}
// validateTransport validates a remote transport (no templating allowed)
func validateTransport(obj *model.Transport) error {
// validateRemoteTransport validates a remote transport (no templating allowed)
func validateRemoteTransport(obj *model.Transport) error {
// Validate transport type is supported - remotes only support streamable-http and sse
switch obj.Type {
case model.TransportTypeStreamableHTTP, model.TransportTypeSSE: