You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: invert auth model — all routes protected, whitelist public paths
- Everything requires token by default when auth is enabled
- New WEB2API_PUBLIC_PATHS env var for whitelisting (glob patterns)
- Only / and /health are public by default
- Updated README with new auth model and examples
- Updated tests for new auth behavior
When token auth is enabled, the built-in web UI shows an access-token input and stores the token in
139
-
browser local storage for repository/MCP actions.
154
+
browser local storage for protected browser actions.
140
155
141
156
## CLI
142
157
@@ -387,15 +402,15 @@ A simpler HTTP-based tool bridge is also available for non-MCP clients:
387
402
388
403
| Endpoint | Description |
389
404
|---|---|
390
-
|`GET /`| HTML index listing all recipes and endpoints |
391
-
|`GET /health`| Service, browser pool, and cache health |
392
-
|`GET /api/sites`| JSON list of all recipes with endpoint metadata |
393
-
|`GET /api/recipes/manage`| JSON catalog + installed recipe state for UI/automation (protected when token auth is enabled) |
394
-
|`POST /api/recipes/manage/install/{name}`| Install recipe by catalog entry name (protected when token auth is enabled) |
395
-
|`POST /api/recipes/manage/update/{slug}`| Update installed managed recipe (protected when token auth is enabled) |
396
-
|`POST /api/recipes/manage/uninstall/{slug}`| Uninstall recipe (add `?force=true` for unmanaged local recipes, protected when token auth is enabled) |
397
-
|`POST /api/recipes/manage/enable/{slug}`| Enable installed recipe (protected when token auth is enabled) |
398
-
|`POST /api/recipes/manage/disable/{slug}`| Disable installed recipe (protected when token auth is enabled) |
405
+
|`GET /`| HTML index listing all recipes and endpoints (always public) |
406
+
|`GET /health`| Service, browser pool, and cache health (always public) |
407
+
|`GET /api/sites`| JSON list of all recipes with endpoint metadata (protected by default when token auth is enabled) |
408
+
|`GET /api/recipes/manage`| JSON catalog + installed recipe state for UI/automation (protected by default when token auth is enabled) |
409
+
|`POST /api/recipes/manage/install/{name}`| Install recipe by catalog entry name (protected by default when token auth is enabled) |
410
+
|`POST /api/recipes/manage/update/{slug}`| Update installed managed recipe (protected by default when token auth is enabled) |
411
+
|`POST /api/recipes/manage/uninstall/{slug}`| Uninstall recipe (add `?force=true` for unmanaged local recipes, protected by default when token auth is enabled) |
412
+
|`POST /api/recipes/manage/enable/{slug}`| Enable installed recipe (protected by default when token auth is enabled) |
413
+
|`POST /api/recipes/manage/disable/{slug}`| Disable installed recipe (protected by default when token auth is enabled) |
399
414
400
415
`GET /api/recipes/manage` includes:
401
416
-`catalog`: entries from the current catalog source
@@ -405,6 +420,7 @@ A simpler HTTP-based tool bridge is also available for non-MCP clients:
405
420
### Recipe Endpoints
406
421
407
422
All recipe endpoints follow the pattern: `GET /{slug}/{endpoint}?page=1&q=...`
423
+
and require the access token by default when token auth is enabled.
408
424
409
425
-`page` — pagination (default: 1)
410
426
-`q` — query text (required when `requires_query: true`)
0 commit comments