mirror of
https://github.com/pewdiepie-archdaemon/odysseus.git
synced 2026-06-18 10:45:31 -04:00
fix: block app_api access to shell routes (#3225)
This commit is contained in:
+3
-2
@@ -357,7 +357,7 @@ If the user asks for a reminder/alarm before the event, pass `reminder_minutes`
|
||||
```app_api
|
||||
{"action": "call", "method": "GET", "path": "/api/cookbook/gpus"}
|
||||
```
|
||||
GENERIC LOOPBACK to ANY Odysseus internal endpoint. Use this whenever the user wants something the UI can do but there's NO named tool for it. Every UI button hits some /api/* endpoint — you can hit the same one. Auth is handled automatically.
|
||||
GENERIC LOOPBACK to allowed Odysseus internal endpoints. Use this whenever the user wants something the UI can do but there's NO named tool for it. Many UI buttons hit /api/* endpoints — you can hit allowed ones. Auth is handled automatically.
|
||||
|
||||
**Discovery first.** If you're not sure of the path, call `{"action":"endpoints","filter":"<keyword>"}` (e.g. filter='calendar' or 'gallery' or 'theme') to list available endpoints with their methods + summaries. Then call with action='call'.
|
||||
|
||||
@@ -376,12 +376,13 @@ GENERIC LOOPBACK to ANY Odysseus internal endpoint. Use this whenever the user w
|
||||
- Compare: `/api/compare/sessions`, `/api/compare/start`
|
||||
- Email: use named email tools (`list_email_accounts`, `list_emails`, `read_email`, `send_email`, `reply_to_email`). Do NOT use `/api/email/accounts`; it is owner-filtered in tool context and may falsely return empty.
|
||||
- Endpoints (model providers): `/api/endpoints`, `/api/endpoints/{id}`
|
||||
- Shell: do NOT use `app_api` for `/api/shell/*`; use named command tooling instead.
|
||||
|
||||
Body for POST/PUT/PATCH goes in `body` (object). Query params in `query` (object). Returns the parsed JSON of the response.
|
||||
|
||||
**When to prefer named tools over app_api:** if a named wrapper exists (list_email_accounts, list_emails, read_email, manage_calendar, manage_notes, list_served_models, etc.) USE IT — it has nicer output formatting and clearer schema. Reach for `app_api` only when there's no wrapper for what you need.
|
||||
|
||||
Blocked paths (refused for safety): /api/auth/, /api/users/, /api/tokens/, /api/admin/, /api/backup/restore, /api/email/accounts.""",
|
||||
Blocked paths (refused for safety): /api/auth/, /api/users/, /api/tokens/, /api/admin/, /api/shell/, /api/backup/restore, /api/email/accounts.""",
|
||||
}
|
||||
|
||||
def get_builtin_overrides() -> dict:
|
||||
|
||||
Reference in New Issue
Block a user