Skip to content

Econumo

v1.2.0 Security

This release includes 1 security fix for security teams reviewing exposed deployments.

Published 3d Productivity & Wikis
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →
This release patches 1 known CVE

Topics

budget budget-app expense-tracker money-tracker pfm

Affected surfaces

auth deps

Summary

AI summary

Updates What's new, Fixes & improvements, and English/Russian across a mixed release.

Full changelog

This is Econumo's biggest release yet. It ships single-file deployment (the web UI is now embedded in the binary, so you can run Econumo with no Docker at all), an embedded MCP server that lets AI assistants read and edit your finances, a first-class PostgreSQL path with a one-command SQLite→PostgreSQL importer, and a set of account-security and email features — email verification, self-service email change, and server-side error translation.

What's new

  • Single-binary, Docker-free deployment (#139) — the React SPA is now embedded in the Go binary via go:embed, so each release ships self-contained econumo-linux-{amd64,arm64} binaries plus SHA256SUMS. Run it straight from a systemd unit with no container runtime; a reference unit and a full walkthrough (docs/run-without-docker.md) are included. Instance-specific frontend values are driven entirely through ECONUMO_* env vars, and an econumo version subcommand reports the running build.
  • MCP server (#78, #140) — a built-in /mcp endpoint lets any MCP client (Claude Code, Claude Desktop, Cursor, …) talk to your instance using a personal access token: list accounts with balances, categories, tags, payees, budgets and connections; read and log/edit/delete transactions; move budget elements and create accounts. Ships with log-expense and budget-review prompts. Stateless, sub-second, and behind the same bearer-token auth as the REST API.
  • PostgreSQL support + SQLite→PostgreSQL importer (#147) — run Econumo on PostgreSQL as a first-class engine, and migrate an existing SQLite install in one command: econumo data:import-sqlite /path/to/db.sqlite reads typed rows through both drivers, runs the target migrations, and copies everything (sessions included) in a single transaction with an overwrite guard and a schema-version preflight.
  • Email verification (#137) — opt-in via ECONUMO_EMAIL_VERIFICATION; when enabled, new users confirm ownership of their address with an emailed code before their first sign-in. Off by default, so existing self-hosted instances are unaffected.
  • Self-service email change (#143) — a signed-in user can change their own email, gated on their current password and confirmed with a code sent to the new address, with a notice to the old one. Changing the email revokes other sessions while keeping the current one.
  • Scheduled in-process exchange-rate updates (#148) — set ECONUMO_CURRENCY_UPDATE_INTERVAL (in days) and, when an Open Exchange Rates token is present, serve refreshes rates on a schedule with no external cron. It's DB-aware, so restarts don't burn API quota.
  • App link in transactional emails (#144) — set ECONUMO_URL to your instance's public URL and every transactional email ends with a link back to the app. Unset leaves email bodies unchanged.
  • Server-side error translation (#133) — API error messages are now rendered in the caller's language (English/Russian) server-side, based on the request's Accept-Language and the user's stored language preference.

Fixes & improvements

  • Accept an account-owner's own category/payee/tag on shared accounts (#130).
  • Fix mobile list scrolling.
  • Retire the legacy identifier column — lower(email) is now the canonical user lookup key (#141).
  • Resolve several CodeQL code-scanning alerts (#116).
  • Dependency bumps across the frontend and backend toolchains.

Upgrading

Docker: pull the new image and restart — migrations run on boot.

docker compose pull && docker compose up -d

Docker-free: download the econumo-linux-{amd64,arm64} binary attached to this release (verify with SHA256SUMS) and restart your service; see docs/run-without-docker.md.

Heads-up for API clients: this release only adds endpoints (email verification, email change) and MCP tooling — no existing REST route, field, or format changed, so the wire contract the bundled SPA depends on is unaffected.

The ghcr.io/econumo/econumo:latest image tag points to this build; to pin the exact version use ghcr.io/econumo/econumo:v1.2.0.

Contributors

@dmtrkzntsv — everything above, with Claude (Opus 4.8, Fable 5, Sonnet 5) co-authoring. Dependency updates via @dependabot.

Full changelog: v1.1.1...v1.2.0

Security Fixes

  • Resolved several CodeQL code‑scanning alerts (#116)

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Econumo

Get notified when new releases ship.

Sign up free

About Econumo

Budgeting application for managing personal and family finances, supporting multiple currencies, joint accounts, and budgets.

All releases →

Related context

Earlier breaking changes

  • v1.1.0 Old account‑sharing endpoints (`connection/set-account-access`, `connection/revoke-account-access`) are removed.
  • v1.1.0 Budget sharing now fails closed; only owner/admin can grant/revoke access.

Beta — feedback welcome: [email protected]