mirror of
https://github.com/VectifyAI/PageIndex.git
synced 2026-07-18 21:21:05 +02:00
fix: patch three critical defects from the SDK review
- local delete_collection: validate the collection name before rmtree. An unvalidated name like "../.." escaped files_dir and deleted arbitrary directories (path traversal). - legacy page_index(): restore the node_id/summary/text/description enhancements. IndexConfig now carries booleans (pydantic coerces the legacy 'yes'/'no' strings at the boundary), but page_index_main still compared `opt.if_add_node_id == 'yes'` — always False — so every enhancement was silently skipped for legacy-API callers. Conditions now branch on the booleans, matching pageindex/index/page_index.py. - LegacyCloudAPI._request: bound every request with a timeout (30s, 120s read timeout for streamed responses) so a dead connection can't hang legacy submit/poll/chat callers forever. The legacy contract tests pinned the missing timeout; updated to pin its presence instead. Adds regression tests: path-traversal rejection, 'yes'/'no' -> bool coercion, and timeout assertions. Claude-Session: https://claude.ai/code/session_01Kx5DgKbhK1N8autqXH8SmS
This commit is contained in:
parent
284ce005f5
commit
6a73279c0c
6 changed files with 38 additions and 9 deletions
|
|
@ -21,6 +21,10 @@ class LegacyCloudAPI:
|
|||
return {"api_key": self.api_key}
|
||||
|
||||
def _request(self, method: str, path: str, error_prefix: str, **kwargs) -> requests.Response:
|
||||
# Always bound the request so a dead connection can't hang callers
|
||||
# forever. Streamed responses get a longer read timeout since it
|
||||
# applies between chunks, not to the whole response.
|
||||
kwargs.setdefault("timeout", 120 if kwargs.get("stream") else 30)
|
||||
try:
|
||||
response = requests.request(
|
||||
method,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue