v0.25.21

upstash/context7v0.25.21Jun 20, 2026by abouolia

AI Summary

Security fixes for attachments, financial reports, and localized exports.

Key Highlights

  • Cross-tenant attachment access prevention
  • Correct base currency in financial reports
  • Localized CSV/XLSX/PDF export headers
  • CSPRNG for attachment S3 keys

New Features

  • Handle missing ContentType in attachment download
  • Correct base currency in financial reports
  • Localized i18n column headers in exports
  • Prevent cross-tenant attachment access
  • CSPRNG for attachment S3 keys
  • SQL injection fix via sortOrder
  • Plaid webhook signature verification

Full Release Notes

## What's Changed
* fix(server): handle missing ContentType in attachment download by @Y8C68 in https://github.com/bigcapitalhq/bigcapital/pull/1063
* fix(server): use correct base currency in financial reports by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1074
* fix(server): localize i18n column headers in CSV/XLSX/PDF exports by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1075
* fix(server): correct "Liabilties" typo to "Liabilities" in balance sheet by @rebekah-create in https://github.com/bigcapitalhq/bigcapital/pull/1090
* Fix pagination params silently ignored on collection GET endpoints by @c-premus in https://github.com/bigcapitalhq/bigcapital/pull/1089
* chore(sdk): update OpenAPI spec and generated types by @github-actions[bot] in https://github.com/bigcapitalhq/bigcapital/pull/1091
* fix(server): prevent cross-tenant attachment access (IDOR) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1093
* fix(server): prevent cross-tenant access via organization-id header by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1094
* fix(server): use CSPRNG for attachment S3 keys (GHSA-gj48-p5ff-g67f) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1096
* fix(server): prevent SQL injection via sortOrder in DynamicListing (GHSA-hcp2-qqg6-jjpm) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1097
* feat(ee): audit logs domain level by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1076
* chore(sdk): update OpenAPI spec and generated types by @github-actions[bot] in https://github.com/bigcapitalhq/bigcapital/pull/1098
* fix(server): verify Plaid webhook signatures (GHSA-g56w-g54f-whq5) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1095
* feat(ee): add multi-organization workspaces feature by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1078
* feat(ee): add workspaces feature by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1049
* refactor(webapp): rename store files and folders to kebab-case by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1100
* refactor(webapp): standardize withX HOC types with shared MapState generic and props interfaces by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1101
* fix(server): resolve all TypeScript errors without unsafe type casts by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1102
* refactor(webapp): rename query hooks to kebab-case convention by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1018
* feat(sdk): add table accept header to report fetchers and refactor audit log hooks by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1104
* refactor: convert containers default exports to named exports by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1105
* refactor(typescript): add proper types to Preferences container files by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1106
* ci: add Prettier format check GitHub Action by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1107
* chore(sdk): update OpenAPI spec and generated types by @github-actions[bot] in https://github.com/bigcapitalhq/bigcapital/pull/1108
* refactor: remove Project Profitability Summary report by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1110
* fix(webapp): resolve TypeScript errors across components and financial statements by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1109
* refactor(server): replace direct TenancyContext/TransformerInjectable providers with TenancyModule import by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1113
* fix(auth): add ownership check to API key revocation to prevent IDOR (GHSA-xc3g-x39m-684g) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1114
* fix(import): enforce file type validation to prevent unrestricted upload (GHSA-4c3x-fp46-xp4r) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1115
* fix(auth): replace weak uniqid reset token with crypto.randomBytes and fix broken expiry check (GHSA-qx24-x69m-97wr) by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1116
* refactor(webapp): simplify financial statements export progress toast by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1119
* feat(payment-services): add OpenAPI DTOs and derive SDK types from schema by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1122
* refactor(webapp): add proper TypeScript types to infinite-query hooks by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1123
* fix(webapp): dynamically load moment.js locales by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1124
* refactor(server): convert DTO properties to camelCase and add Vendor response DTOs by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1125
* refactor(server): add OpenAPI schema for vendor/import endpoints and derive SDK types by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1126
* fix(server): unify FinancialStatements number format DTOs by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1127
* fix(server): add OpenAPI schema for contacts auto-complete endpoint by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1128
* chore: format all packages by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1129
* fix(server): document numberFormat query param via @ApiQuery by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1130
* refactor: FS query type-safety and response DTO ids by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1131
* fix(webapp): extract flattenInfinityPages utility and harden Account select types by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1132
* fix(server): only pass SMTP auth when credentials are configured by @DogInfantry in https://github.com/bigcapitalhq/bigcapital/pull/1135
* refactor(webapp): tighten query types across banking, cashflow and items by @abouolia in https://github.com/bigcapitalhq/bigcapital/pull/1136

## New Contributors
* @Y8C68 made their first contribution in https://github.com/bigcapitalhq/bigcapital/pull/1063
* @rebekah-create made their first contribution in https://github.com/bigcapitalhq/bigcapital/pull/1090
* @c-premus made their first contribution in https://github.com/bigcapitalhq/bigcapital/pull/1089
* @DogInfantry made their first contribution in https://github.com/bigcapitalhq/bigcapital/pull/1135

**Full Changelog**: https://github.com/bigcapitalhq/bigcapital/compare/v0.25.20...v0.25.21