Commit bc03c56
authored
fix(api): decode %2F in /servers/{id}/* path param via middleware (MCP-1118) (#624)
All /api/v1/servers/{id}/* sub-resource handlers were receiving the raw
percent-encoded {id} param from chi (e.g. io.github.owner%2Frepo for a
slash-name official-registry server). This caused 404s for the Tools and
Logs tabs in the Web UI and for CLI sub-resource commands on slash-name
servers, since exact-match server lookups never found the encoded literal.
Fix: add decodeServerIDParam middleware to the /servers/{id} route group.
It decodes {id} in the chi route context once, so every handler in the
subtree (tools, logs, restart, approve, scan, …) receives the real name
without each one needing an explicit decodePathParam call.
Also remove the now-redundant per-handler decodePathParam in
handleGetServerLogs (was the only handler previously fixed individually).
Same root cause as MCP-1056 (registry add-server slash ids, PR #591).
Tests: TestServerSubresource_SlashServerIDUnescaped (tools/restart/tool-calls)
TestGetServerLogs_SlashServerIDUnescaped (existing, still passes)1 parent efbdd0e commit bc03c56
2 files changed
Lines changed: 132 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
602 | 602 | | |
603 | 603 | | |
604 | 604 | | |
| 605 | + | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
605 | 614 | | |
606 | 615 | | |
607 | 616 | | |
| |||
2678 | 2687 | | |
2679 | 2688 | | |
2680 | 2689 | | |
2681 | | - | |
2682 | | - | |
2683 | | - | |
2684 | | - | |
| 2690 | + | |
| 2691 | + | |
| 2692 | + | |
| 2693 | + | |
2685 | 2694 | | |
2686 | 2695 | | |
2687 | 2696 | | |
| |||
4168 | 4177 | | |
4169 | 4178 | | |
4170 | 4179 | | |
| 4180 | + | |
| 4181 | + | |
| 4182 | + | |
| 4183 | + | |
| 4184 | + | |
| 4185 | + | |
| 4186 | + | |
| 4187 | + | |
| 4188 | + | |
| 4189 | + | |
| 4190 | + | |
| 4191 | + | |
| 4192 | + | |
| 4193 | + | |
| 4194 | + | |
| 4195 | + | |
| 4196 | + | |
| 4197 | + | |
| 4198 | + | |
| 4199 | + | |
4171 | 4200 | | |
4172 | 4201 | | |
4173 | 4202 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
0 commit comments