Files
janssen/claude-memory/project_python_runner.md
T
2026-06-09 15:46:34 +02:00

36 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
name: python-runner
description: "Docker kontejner na Unraidu s email pipeline — architektura, závislosti, scheduling, hlášení"
metadata:
node_type: memory
type: project
originSessionId: ec13e72a-c0a8-4862-93d9-6da9b29b82f3
---
Email pipeline běží v Docker kontejneru `python-runner` na Unraidu (192.168.1.76).
Skripty jsou v `/mnt/user/Scripts/` (volume → `/scripts/`).
**Pipeline** spouštěna 2× denně cronem (`0 6,18 * * *`) přes `run_pipeline.sh`:
- `1b` — Graph delta sync (nové/změněné emaily → MongoDB)
- `3` — Download attachments
- `4` — Unwrap S/MIME
- `5` — Enrich fulltext → PostgreSQL
**Wrapper:** `0_run_pipeline_v1.0.py`
- Na začátku auto-install: `pip install -q -r /scripts/requirements.txt` — odolné vůči recreate kontejneru
- Na konci email report: HTML tabulka výsledků z `reports@buzalka.cz``vladimir.buzalka@buzalka.cz`; při chybě přiloží log selhavšího kroku
**Závislosti:** `requirements.txt` v `/scripts/` + v repo `Python-runner/requirements.txt`
Klíčové: `msal`, `asn1crypto`, `pymongo`, `psycopg`, `extract-msg`, `beautifulsoup4`
**Incident 2026-06-05:** kontejner byl recreated → ztraceny balíčky → pipeline padala 24h (kroky 1b/3/4 FAIL s ModuleNotFoundError). Opraveno auto-installem.
**Knihovna pro odesílání emailů:** `Knihovny/EmailMessagingGraph.py` (kopie na serveru `/scripts/EmailMessagingGraph.py`)
- SENDER: `reports@buzalka.cz`, tenant TrialHelp s.r.o.
**Logy:** `/mnt/user/Scripts/logs/pipeline_YYYYMMDD_HHMM.log`, symlink `pipeline_latest.log`, retence 30 dní.
**Centrální logging (2026-06-09):** wrapper `0_run_pipeline` posílá do Grafana Loki (přes [[central-logging]] gateway) **každý řádek konzole** každého kroku — `app="email_pipeline"`, pole `logger=step.<id>`. Klient `central_logging*.py` zkopírován do `/scripts/`. Token+gateway NEjsou v kontejneru — dány přes `os.environ.setdefault` přímo ve wrapperu (kroky je dědí jako subprocesy). Grafana dotaz: `{app="email_pipeline"}`.
Souvisí s [[graph-email-import]], [[project-mcp-emaily]].