v0.0.46: удалён тестовый API process_names (нельзя указывать локальные файлы — сервер не видит машину клиента)
Deploy drhider / validate (push) Canceled after 0s
Deploy drhider / validate (push) Canceled after 0s
This commit is contained in:
@@ -1,57 +0,0 @@
|
||||
# v0.0.45 — тестовый API process_names (обфускация по именам файлов) — 2026-08-19
|
||||
|
||||
**Дата:** 2026-08-19
|
||||
**Версия:** 0.0.44 → 0.0.45
|
||||
|
||||
---
|
||||
|
||||
## Суть
|
||||
|
||||
Тестовый endpoint для curl: обфускация файлов по ИМЕНАМ из локальной папки
|
||||
сервера (не таскать файлы каждый раз).
|
||||
|
||||
## Использование
|
||||
|
||||
```bash
|
||||
# На сервере задана папка TEST_INPUT_DIR (env), в ней лежат входные файлы.
|
||||
curl -X POST https://drhider.../api/process_names \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{"files": ["0144-03-2023_отчет об оценке.pdf", "test.pdf"]}' \
|
||||
-o result.zip
|
||||
```
|
||||
|
||||
Ответ: ZIP с обфусцированными .md + mapping.csv.
|
||||
|
||||
## Поведение (по требованию)
|
||||
|
||||
- **Если `TEST_INPUT_DIR` не задан ИЛИ невалиден (не директория) — endpoint
|
||||
возвращает 404** (как будто API нет).
|
||||
- Имена файлов — только **basename** (защита от path traversal).
|
||||
- Файл читается из `TEST_INPUT_DIR/<basename>`; если нет → 404.
|
||||
|
||||
## Изменения
|
||||
|
||||
### `site/routes/api_bp.py`
|
||||
- `import os` добавлен.
|
||||
- Глобальные `TEST_INPUT_DIR = os.environ.get("TEST_INPUT_DIR", "").strip()`
|
||||
и `_TEST_API_ENABLED = bool(TEST_INPUT_DIR) and os.path.isdir(TEST_INPUT_DIR)`.
|
||||
- Endpoint `POST /api/process_names`:
|
||||
- 404 если `_TEST_API_ENABLED` false;
|
||||
- читает JSON `{"files": [...]}`;
|
||||
- basename + проверка файла в TEST_INPUT_DIR;
|
||||
- `obfuscate_files(all_files, llm_client=LLMClient())`;
|
||||
- возврат ZIP (`send_file`).
|
||||
|
||||
### `site/app.py`
|
||||
- `VERSION = "0.0.45"`.
|
||||
|
||||
## Проверка
|
||||
- Без `TEST_INPUT_DIR` → 404.
|
||||
- С валидной папкой → 200, ZIP `['t.md', 'mapping.csv']`.
|
||||
- Path traversal (`../../etc/passwd`) → 404 «файл не найден».
|
||||
- Невалидная папка → 404.
|
||||
- `py_compile` — OK.
|
||||
|
||||
## Примечание
|
||||
- Endpoint тестовый. На проде включать только при необходимости (задать TEST_INPUT_DIR).
|
||||
- В тесте локально LLM недоступен (нет ключа) — «LLM NER failed» ожидаемо; на проде ключ есть.
|
||||
Reference in New Issue
Block a user