Skip to content

fix: validate server URL has a host #57

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Feb 18, 2025
Merged

Conversation

ethanndickson
Copy link
Member

@ethanndickson ethanndickson commented Feb 18, 2025

Closes #53.

The linked issue was caused by a subtle difference in how we add paths to the server URLs in Go and Swift

In both languages, the (erroneous) url https:/dev.coder.com is parsed the same:

  • Scheme: https
  • Host: "" / nil
  • Relative Path: /dev.coder.com

However, in Swift, when we transform a server URL into a specific route on that server, such as /api/v2/users/me, we don't replace any existing part of the relative path, we just append to it, producing http:/dev.coder.com/api/v2/users/me, which gets sent, and the server responds to, just fine.

In Go, when we do the same transformation, we call svrURL.Parse("/api/v2/users/me"), which replaces the existing relative path, /dev.coder.com, leading to the error in the linked issue, which has no dev.coder.com portion at all.

Previously, we were only ensuring that the link was a valid URL, and that the scheme was https.
Now, we'll require that all server URLs have a host component. This means http:/dev.coder.com fails to validate with a better error message.

Copy link
Member Author

This stack of pull requests is managed by Graphite. Learn more about stacking.

@ethanndickson ethanndickson marked this pull request as ready for review February 18, 2025 05:21
@ethanndickson ethanndickson merged commit 393d240 into main Feb 18, 2025
4 checks passed
@ethanndickson ethanndickson deleted the ethan/validate-url-host branch February 18, 2025 11:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

App does not validate server URLs
2 participants