kolaente
21d7c79d5a
feat(mcp): register mcp:access api token scope
...
Adds the mcp scope group with a single access permission so it shows up
in GET /api/v1/routes (and therefore in the frontend token form).
Adds APIToken.HasMCPAccess() mirroring the caldav/feeds helpers.
The MCP endpoint will use POST, GET, and DELETE on the same path for the
streamable-HTTP transport, which CanDoAPIRoute's exact (method, path)
match cannot gate. The token middleware therefore skips the route check
for /api/v1/mcp and any sub-path; the actual authorization is delegated
to an inline HasMCPAccess() call in the MCP handler (added in the next
task).
Fixtures gain two MCP tokens for user 1: one mcp-only and one with
mcp:access plus projects read scopes for the per-tool scope filter tests.
2026-08-28 23:53:24 +02:00
..
2026-07-03 16:56:03 +00:00
2026-07-07 11:38:33 +02:00
2026-07-03 16:56:03 +00:00
2026-07-03 16:56:03 +00:00
2026-07-03 16:56:03 +00:00
2026-08-28 23:53:24 +02:00
2026-08-28 23:53:24 +02:00
2026-08-18 09:44:49 +02:00
2026-08-18 09:44:49 +02:00
2026-07-19 18:59:34 +02:00
2026-08-28 23:53:24 +02:00
2026-08-28 23:53:24 +02:00
2026-08-04 13:40:11 +02:00
2026-08-04 13:40:11 +02:00
2026-08-02 16:21:50 +02:00
2026-08-02 16:21:50 +02:00
2026-07-18 13:41:15 +00:00
2026-08-20 11:58:06 +02:00
2026-08-02 16:21:50 +02:00
2026-08-16 17:57:52 +02:00
2026-08-16 17:57:52 +02:00
2026-08-20 11:58:06 +02:00
2026-07-03 23:18:00 +02:00
2026-08-02 16:21:50 +02:00
2026-08-20 11:58:06 +02:00
2026-08-04 01:09:10 +02:00
2026-08-27 21:55:14 +02:00
2026-08-27 22:28:51 +02:00
2026-08-27 22:28:51 +02:00
2026-08-27 21:55:14 +02:00
2026-08-04 13:40:11 +02:00
2026-08-04 13:40:11 +02:00
2026-08-27 15:41:58 +02:00
2026-08-27 15:41:58 +02:00
2026-07-07 11:38:33 +02:00
2026-07-29 07:58:17 +00:00
2026-08-27 15:41:58 +02:00
2026-08-27 15:41:58 +02:00
2026-07-29 07:58:17 +00:00
2026-08-27 15:41:58 +02:00
2026-08-18 16:38:00 +00:00
2026-08-27 15:41:58 +02:00
2026-08-28 23:49:27 +02:00
2026-08-28 23:49:27 +02:00
2026-06-19 10:15:58 +02:00
2026-08-16 17:57:52 +02:00
2026-07-26 09:39:41 +00:00
2026-08-28 23:49:27 +02:00
2026-08-28 23:49:27 +02:00
2026-08-20 11:58:06 +02:00
2026-07-19 18:59:34 +02:00
2026-07-19 18:59:34 +02:00
2026-07-29 22:53:46 +02:00
2026-08-20 11:58:06 +02:00
2026-06-18 20:57:05 +00:00
2026-07-19 18:59:34 +02:00
2026-08-04 01:09:10 +02:00
2026-08-04 01:09:10 +02:00
2026-08-28 23:49:27 +02:00
2026-07-19 18:59:34 +02:00
2026-08-02 16:21:50 +02:00
2026-08-04 13:40:11 +02:00
2026-08-04 13:40:11 +02:00
2026-07-19 18:59:34 +02:00
2026-07-29 07:33:35 +00:00
2026-07-29 22:28:31 +02:00
2026-06-18 20:57:05 +00:00
2026-06-18 20:57:05 +00:00
2026-08-16 17:57:52 +02:00
2026-08-16 17:57:52 +02:00
2026-07-28 23:41:49 +02:00
2026-07-28 23:41:49 +02:00
2026-07-06 15:45:55 +00:00
2026-07-30 12:03:30 +02:00
2026-07-19 18:59:34 +02:00
2026-08-04 13:40:11 +02:00
2026-08-27 15:41:58 +02:00
2026-07-07 11:57:04 +00:00
2026-07-07 11:57:04 +00:00
2026-08-20 11:58:06 +02:00
2026-08-20 11:58:06 +02:00
2026-07-03 19:58:39 +02:00
2026-08-02 16:21:50 +02:00
2026-08-18 16:38:00 +00:00
2026-08-18 16:38:00 +00:00
2026-06-17 21:16:41 +00:00
2026-07-06 15:45:55 +00:00
2026-07-19 14:16:07 +00:00
2026-07-19 18:59:34 +02:00
2026-08-27 22:00:32 +02:00
2026-08-27 22:00:32 +02:00
2026-08-04 13:40:11 +02:00
2026-06-18 20:57:05 +00:00
2026-08-04 13:40:11 +02:00
2026-08-20 15:32:23 +00:00
2026-08-20 15:32:23 +00:00
2026-07-07 11:38:33 +02:00
2026-07-29 07:33:35 +00:00
2026-07-19 18:59:34 +02:00
2026-07-19 18:59:34 +02:00
2026-07-02 19:39:00 +02:00
2026-06-18 20:57:05 +00:00
2026-08-20 11:58:06 +02:00
2026-07-28 17:25:57 +02:00
2026-08-04 13:40:11 +02:00