Brokerage data sync (Trading 212, Schwab, Fidelity, IMAP-CSV) → Wealthfolio. Image is published as viktor/wealthfolio-sync per the wealthfolio stack convention.
Find a file
Viktor Barzin 1d0769c9e6 Disable typer rich tracebacks to avoid secret leak in logs
Context
-------
Live run of `broker-sync trading212` hit a PermissionError and typer's
rich traceback printed every local variable, including the cleartext
WF_PASSWORD and the T212 api_key strings, into pod logs. Kubernetes
pod logs are world-readable cluster-wide — that's a security incident.

This change
-----------
- Pass `pretty_exceptions_enable=False` to the typer.Typer constructor.
  Plain stdlib tracebacks don't dump frame locals.
- Rich is still available for help text; only crash formatting changes.

Follow-up in infra/stacks/broker-sync: add `security_context.fs_group = 10001`
to every pod spec so the PVC is owned by the broker user (the original
PermissionError that triggered the traceback was the broker user being
unable to write /data/watermarks).

Test plan
---------
## Automated
- poetry run pytest -q  →  70 passed
- poetry run mypy broker_sync tests  →  clean
- poetry run ruff check .  →  clean

## Manual Verification
Re-run the backfill Job after the image is rebuilt + the infra
fsGroup change is applied.
2026-04-17 20:22:30 +00:00
.github/workflows CI: build image from phase-0-scaffold branch too (bootstrap) 2026-04-17 19:51:09 +00:00
.woodpecker Add GHA build + Woodpecker deploy pipelines 2026-04-17 19:32:00 +00:00
broker_sync Disable typer rich tracebacks to avoid secret leak in logs 2026-04-17 20:22:30 +00:00
tests Fix live Wealthfolio login + Dockerfile poetry path 2026-04-17 20:17:24 +00:00
.gitignore Initial scaffold + canonical Activity model 2026-04-17 19:16:11 +00:00
Dockerfile Fix live Wealthfolio login + Dockerfile poetry path 2026-04-17 20:17:24 +00:00
poetry.lock Wire T212 pagination, retries, and click<8.2 pin 2026-04-17 19:45:23 +00:00
pyproject.toml Wire T212 pagination, retries, and click<8.2 pin 2026-04-17 19:45:23 +00:00