58 lines
2.3 KiB
Markdown
58 lines
2.3 KiB
Markdown
# jnj_mailbox_sync v1.2.0
|
|
|
|
**Soubor:** `jnj_mailbox_sync_v1.2.py`
|
|
**Datum:** 2026-06-10
|
|
**Autor:** vladimir.buzalka
|
|
**Běží:** JNJ stroj (Outlook MAPI), Python z Thonny.
|
|
|
|
## Co to je
|
|
|
|
Synchronizace JNJ Outlooku (MAPI) → osobní schránka (přes msgreceiver) + bookkeeping
|
|
v SQLite (`C:\Users\vbuzalka\SQLITE\jnjemails.db`). Sleduje přesuny e-mailů mezi
|
|
složkami a příznak „už není ve schránce" — bez opětovného přenosu těla.
|
|
Skenované složky: **Inbox + Sent Items + Deleted Items** (vč. podsložek).
|
|
|
|
## Novinka v1.2 — komprimovaný + šifrovaný upload SQLite
|
|
|
|
Dřív se ~37 MB SQLite posílalo na `/upload-db` **plain** (jen HTTPS+token).
|
|
Teď `upload_db()`:
|
|
|
|
1. **Komprese na max** — `lzma` (xz), `preset 9 | PRESET_EXTREME` (stdlib).
|
|
2. **Šifrování** — stávající Fernet (klíč odvozený z TOKENu, `sha256 → urlsafe_b64`).
|
|
3. Upload jako `jnjemails_<ts>.db.xz.enc`.
|
|
|
|
Přijímací **msgreceiver `/upload-db` (app.py ≥ v2.1)** soubor Fernetem dešifruje,
|
|
lzma rozbalí a uloží plain `.db` do `/msgs/db`. Domácí `jnj_tower_ingest` tím pádem
|
|
**zůstává beze změny** (čte nejnovější plain `.db` read-only).
|
|
|
|
Důvod šifrování: bezpečný průchod přes JNJ proxy (Zscaler/DLP) — stejný vzor jako
|
|
`.emsg` u jednotlivých `.msg`. Round-trip ověřen (bajt na bajt).
|
|
|
|
## Závislost na serveru
|
|
|
|
⚠️ Vyžaduje **msgreceiver app.py ≥ v2.1**. Server bere `.db.xz.enc` i starý plain `.db`,
|
|
takže nasazovací pořadí je **server → JNJ** bez výpadku.
|
|
|
|
## Argumenty
|
|
|
|
`--mode {capture,update-paths,full-update}` (default capture), `--days N`
|
|
(0 = celé), `--dry-run`, `--limit N`, `--no-db-upload`.
|
|
|
|
## Spouštění (JNJ stroj, plné cesty)
|
|
|
|
```
|
|
"C:\Users\vbuzalka\AppData\Local\Programs\Thonny\python.exe" "c:\Users\vbuzalka\OneDrive - JNJ\##JNJPrenos\Python\jnj_mailbox_sync_v1.2.py" --mode full-update --days 30
|
|
```
|
|
|
|
## Revert
|
|
|
|
Stará verze: `Trash/jnj_mailbox_sync_v1.1.py` (plain DB upload). Server zůstává
|
|
zpětně kompatibilní, takže revert na JNJ straně nevyžaduje zásah na serveru.
|
|
|
|
## Historie
|
|
|
|
- **1.0.0** — režimy capture/update-paths/full-update, sledování přesunů, updated_at.
|
|
- **1.1.0** — + Deleted Items do skenovaných složek.
|
|
- **1.2.0** — upload SQLite komprimován (lzma/xz max) + šifrován (Fernet) → `.db.xz.enc`;
|
|
vyžaduje msgreceiver app.py ≥ v2.1.
|