The NestJS app requires database and Redis connections to bootstrap.
Added GitHub Actions services for MySQL and Redis with necessary
environment variables for the openapi:export command to work.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The server depends on @bigcapital/email-components and other shared
packages. Build them before running openapi:export to fix module
resolution errors.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds workflow that triggers on server code changes to:
- Export OpenAPI spec from NestJS Swagger module
- Generate TypeScript types with openapi-typescript
- Build the SDK package
- Create PR with changes if any exist
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add fetchLatestExchangeRate function to retrieve exchange rates
- Add ExchangeRateLatestQuery and ExchangeRateLatestResponse types
- Export exchange-rates module from SDK index
Refactor the GetRefundCreditNoteTransaction service to use TransformerInjectable
instead of directly injecting RefundCreditNoteTransformer, following the standard
NestJS DI pattern used throughout the codebase.
Also includes SDK TypeScript updates:
- Add new type exports for bank-rules operations
- Update organization SDK utilities with proper types
- Add accounts list filtering params to schema (customViewId, filterRoles, etc.)
- Remove export module from SDK index
- Sync openapi.json with latest API changes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Updated Dockerfiles for server and webapp to copy all shared packages in a single command, improving maintainability.
- Removed individual package copy commands for bigcapital-utils, pdf-templates, and email-components.
- Ensured that all shared packages are included automatically during the build process.
The CurrencySelectList component was using 'id' as the valueAccessor,
which caused the component to return the numeric currency ID (e.g., 1007)
instead of the currency code string (e.g., 'THB').
This fix changes the valueAccessor from 'id' to 'currency_code' so that
the currency code string is correctly sent to the backend, which expects
@IsString() for the currencyCode field.
Fixes#1025
Add missing viewSlug, filterRoles, stringifiedFilterRoles, searchKeyword,
columnSortBy, sortOrder, customViewId, page, and pageSize properties to
GetAccountsQueryDto to enable proper filtering when selecting table views
(Assets, Liabilities, Equity, Income, Expenses) on the Accounts Chart page.
Previously, the API received view_slug but didn't process it because the
DTO lacked these properties, causing all accounts to be returned instead
of filtering by the view's root_type.
Fixes#1023
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Change @IsInt() to @IsNumber() for paymentAmount field in PaymentReceivedEntryDto
to allow recording payments with cents (e.g., $1,679.80).
Fixes#1016
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Introduced new DTOs for various financial reports including Balance Sheet, Cash Flow Statement, and Aging Summaries.
- Updated existing controllers to utilize the new DTOs and enhance OpenAPI documentation with proper schema references.
- Removed unnecessary query parameters from the Bank Accounts controller.
- Enhanced response structures for better data representation in reports.
- Added new authentication routes for user sign-in, sign-up, and password reset functionalities.
- Updated account management routes to include bulk delete and validation for accounts.
- Refactored type definitions to utilize utility functions for better type safety and clarity.
- Introduced new methods for handling user authentication and account operations in the SDK.