z230
This commit is contained in:
@@ -58,6 +58,30 @@ Bearer token: `13e1bb01-9fd5-44a8-8ce9-4ee27133d340`
|
||||
|
||||
| Endpoint | Přijímá | Chování |
|
||||
|---|---|---|
|
||||
| `POST /upload` | `.msg` | Uloží do `/msgs`, přeskočí pokud existuje |
|
||||
| `POST /upload-db` | `.db` | Smaže všechny staré `.db` v `/msgs/db`, uloží novou |
|
||||
| `POST /upload` | `.msg` / `.emsg` | `.emsg` Fernet dešifruje → uloží `.msg` do `/msgs`, přeskočí pokud existuje; volitelně import do Graphu |
|
||||
| `POST /upload-db` | `.db` / `.db.xz.enc` | **v2.1:** `.db.xz.enc` Fernet dešifruje + lzma rozbalí → plain `.db`; pak smaže staré `.db` v `/msgs/db` a uloží. Plain `.db` bere i nadále (zpětná kompatibilita) |
|
||||
| `POST /upload-dropbox` | cokoliv | Nahraje do Dropboxu (overwrite) |
|
||||
|
||||
> **v2.1 (2026-06-10):** `/upload-db` umí komprimovanou+šifrovanou DB (`.db.xz.enc`)
|
||||
> od `jnj_mailbox_sync >= v1.2`. Staré `.db` se smažou **až po** úspěšném
|
||||
> dešifrování/rozbalení (při chybě zůstane poslední dobrá DB). Vyžaduje `lzma`
|
||||
> (stdlib) — ověřeno v kontejneru. Nasazení = jen restart (app.py je bind-mount),
|
||||
> bez rebuildu.
|
||||
|
||||
> **v2.3 (2026-06-10):** `/item/{token}` — při `Accept: application/json`
|
||||
> (klient `janssenpc_file_receive >= v1.2`) vrací `{"data": "<fernet_b64>"}`
|
||||
> místo binární přílohy. Důvod: JNJ filtr (Zscaler/SiteMinder) blokoval binární
|
||||
> downloady — zachytil odpověď, replay GET bez auth (401 v logu) a klientovi
|
||||
> vrátil 403 + `?_sm_nck=1`. JSON inspekci příloh nespouští. Bez `Accept`
|
||||
> hlavičky zůstává binární režim (zpětná kompatibilita s v1.1).
|
||||
|
||||
> **v2.2 (2026-06-10):** `/item/{token}` — oprava 500 u souborů s ne-ASCII znaky
|
||||
> ve jméně (např. `▲▲...pdf`): `Content-Disposition` je nyní ASCII fallback +
|
||||
> RFC 5987 `filename*` (HTTP hlavičky jsou latin-1, `▲` shazoval Response na
|
||||
> UnicodeEncodeError). Zároveň se přesun do `##Trash` dělá až PO sestavení
|
||||
> odpovědi — pád už neodstraní soubor z fronty. Klient (`janssenpc_file_receive`)
|
||||
> hlavičku nečte, žádná změna na JNJ straně není potřeba.
|
||||
|
||||
> **Pozn. k nasazení:** `app.py` je bind-mountovaný (`/mnt/user/appdata/msgreceiver` → `/app`),
|
||||
> takže pro změnu KÓDU stačí přepsat soubor + `docker restart msgreceiver`.
|
||||
> `docker build` je potřeba jen při změně `requirements.txt`.
|
||||
|
||||
Reference in New Issue
Block a user