okami.mom/albedo

git clone https://git.nkp.pet/okami.mom/albedo

Aly Raffaufrefactor(gleam): clean up code and enforce focused lint checksb585313

main
794 B19 linesraw
1// MCP URL validation blocks embedded credentials and unsupported schemes even on trusted networks.
2import gleeunit/should
3
4@external(erlang, "albedo_mcp", "url_allowed")
5fn allowed(url: String) -> Bool
6
7pub fn mcp_http_trusted_network_test() -> Nil {
8  allowed("http://100.64.0.19:8787/mcp") |> should.be_true
9  allowed("http://nas.lan:8787/mcp") |> should.be_true
10  allowed("https://mcp.example.com/mcp") |> should.be_true
11  allowed("http://127.0.0.1:8787/mcp") |> should.be_true
12}
13
14pub fn mcp_url_rejects_embedded_credentials_and_invalid_schemes_test() -> Nil {
15  allowed("http://user:secret@nas.lan/mcp") |> should.be_false
16  allowed("http://nas.lan/mcp#fragment") |> should.be_false
17  allowed("file:///tmp/server") |> should.be_false
18  allowed("http:///missing-host") |> should.be_false
19}