Workspaces
Securo now supports multiple workspaces per user. Every workspace is a fully isolated container — its own accounts, transactions, categories, budgets, goals, assets, groups, splits, rules — so multi-context users can keep family / freelance / small business / personal money strictly separated instead of mixing everything into one ledger. It also lays the groundwork for shared workspaces (couples, accountants helping clients, family members on viewer access) and for context-specific behavior down the road.
What's new
- Personal workspace auto-created at registration; existing users are migrated in without any action on their part.
- Workspace switcher in the sidebar — each workspace gets its own icon + color.
- Settings page with identity, stats, members + role controls, currency/locale, archive action.
- Roles:
owner(everything),editor(data CRUD only — no membership / archive),viewer(read-only). - Manager pattern — provision and operate a workspace on behalf of someone else (
managed_by_user_id) without being a member, useful for accountants running client books. - Default categories + rules seeded into every new workspace so you don't land on an empty Categories page.
- Splitwise across workspaces — shared transactions surface in linked members' lists with a
viewer_sharefield; settlements create matching ledger entries on both sides. - Agents are workspace-scoped — runtime, RAG knowledge, MCP tools, and external MCP tokens all respect the active workspace.
Migration
Migrations 052 → 054 add the workspaces + workspace_members tables and a workspace_id column on every financial table. The backfill creates one Personal workspace per existing user (localized from their currency/language prefs) and stamps every existing row onto it. Zero data loss — validated end-to-end. Just docker compose up -d and log in with your existing credentials.
Full changelog: v0.11.4...v0.12.0