v0.12.1
Highlights
Enable Banking — European banks (#229)
Securo gains a second bank connector: Enable Banking covers ~2500 European banks across 29 countries via official PSD2 open banking APIs. Pick your country and bank inside Securo, get redirected to the bank's consent page, and accounts + balances + transactions flow back automatically. A single ENABLE_BANKING_OAUTH_REDIRECT_URI env var keeps the redirect provider-specific so future OAuth providers (Tink, GoCardless, …) don't collide. The provider abstraction was extended generically — list_institutions(), flow_params, distinct expired status, optional reauth_url — with no Enable-Banking-specific code leaking into the base interface.
The setup walks through downloading the app PEM, dropping it in ./secrets/, the env vars, and how to handle the free tier's "restricted mode" (where accounts must be pre-linked in the EB portal). Full guide in the docs.
SimpleFIN — US and international banks (#231)
A third bank connector: SimpleFIN Bridge. Different flow shape — paste a single-use Setup Token from the SimpleFIN Bridge, Securo claims an Access URL and stores it encrypted. Read-only by design, no API key, free demo tokens available for evaluating without a real bank. Pulls accounts, balances, transactions and holdings (investment positions land on the Assets page). Introduced a new flow_type = \"token\" alongside the existing widget and oauth, and a generic Token Connect dialog that any future paste-a-token provider can reuse.
Enable with SIMPLEFIN_ENABLED=true and pick SimpleFIN in the connector selector.
Pluggy: fresh data on manual sync (#226 / #230)
Pluggy caches bank data on its own side and only refreshes once per day, which meant clicking Sync in Securo was showing yesterday's snapshot. The manual-sync endpoint now asks Pluggy to pull fresh data from the bank before reading — PATCH /items/{id} then polls until the item leaves UPDATING. Scheduled background syncs keep the lighter read-only behaviour so Pluggy's API quota isn't hammered. MFA-needed Pluggy items surface as a reconnect prompt; MeuPluggy-managed items (which can't be PATCHed) fall back transparently to a cached read.
Resolves #226.
Test stack & coverage
The backend test suite grows by ~6,000 lines covering accounts/assets/budgets/dashboard/goals/groups/reports/settlements/transactions/workspaces APIs and services. Helps the next round of refactors land with much higher confidence.
Thanks
Thanks to everyone who shipped, reported, and discussed the issues that made this release happen 🙏
Issue reports: @victorvieira71
Full changelog: v0.12.0...v0.12.1