github securo-finance/securo v0.14.4

3 hours ago

In this release we brought investment orders into Securo as a proper import, with a single Import page that keeps a history and can undo an order import, gave rules nested condition groups so AND and OR can finally be mixed, added an optional password that encrypts a workspace backup, and closed a set of gaps around ignored transactions, delete confirmations and regex rules.

Features

  • Import investment orders from a broker CSV. Ticker, date, quantity and price per row, a negative quantity read as a sale, tickers resolved against the price provider in one batch, and a preview that warns before a second position is created for something already held. Closes #615 (#646)
  • One place to import, with history and undo for orders. Statements and orders now live behind the single Import entry as two tabs, each keeping its own run history, and an order import can be undone: the orders are deleted, the positions they touched are recalculated and the holdings the import created are removed with them (#651)
  • Rules mix AND and OR with nested condition groups. A rule can hold groups of conditions, each with its own operator, so contains "UBER" AND (contains "EATS" OR contains "TRIP") is now expressible without splitting it into several rules. Closes #608, by @paulovitor6 (#645) ๐ŸŽ‰
  • Password-protected workspace backups. An optional password encrypts the backup with AES-256 rather than the legacy ZipCrypto that "password-protected zip" usually means. Left empty, the result is byte for byte the plain zip Securo already produced. Closes #617 (#639)
  • The transaction list can hide ignored rows. A filter that survives in the URL, so a filtered list stays shareable and bookmarkable. Closes #632 (#640)
  • More currencies. Vietnamese Dong, closes #635 (#638) ยท Singapore Dollar, closes #641 (#644) ยท and the currencies already supported by the backend but missing from the setup and register pickers, by @ssrahul96 (#631) ๐ŸŽ‰

Fixes

  • Deletes had no confirmation step. Categories, budgets, accounts, transactions and rules could be deleted in one click. Each now confirms first, naming what is being deleted and what will remain, and a category the API refuses to delete reports why in the interface language instead of passing the backend's English through. Closes #604, by @seraphblade2010 (#643) ๐ŸŽ‰
  • Unsafe regex rule patterns are rejected. A rule could be saved with a pattern that fails to compile, or one matching the empty string, which silently matched every transaction. Both are now refused when the rule is saved rather than at match time. Closes #565, by @seraphblade2010 (#663) ๐ŸŽ‰
  • Pluggy savings accounts imported as checking. Pluggy reports both as BANK and carries the distinction in the subtype, which the mapping ignored. Closes #660, by @vhsantos26 (#662) ๐ŸŽ‰

Under the hood

Migration 073 runs automatically on upgrade, giving import_logs an entity so a row can describe an order import, making account_id nullable and adding the import_id that makes the undo possible ยท OIDC_EXISTING_USER_LINK_MODE is now documented in the README and .env.example (#637) ยท pyzipper was added as a dependency, since the stdlib zipfile cannot write an encrypted archive at all.

Thanks @paulovitor6, @seraphblade2010, @ssrahul96 and @vhsantos26 for the code and the reviews, and @lsamoieda, @axxml, @filipeth, @lethanhviet and @krzbanas for the reports ๐Ÿ’œ

Full Changelog: v0.14.3...v0.14.4

Don't miss a new securo release

NewReleases is sending notifications on new releases.