Skip to content

fix: app hardening - IDOR guards, financial bugs, pagination, estimat…#185

Merged
bllr777 merged 1 commit intomainfrom
feature/AppHardening
Apr 14, 2026
Merged

fix: app hardening - IDOR guards, financial bugs, pagination, estimat…#185
bllr777 merged 1 commit intomainfrom
feature/AppHardening

Conversation

@bllr777
Copy link
Copy Markdown
Collaborator

@bllr777 bllr777 commented Apr 14, 2026

…e sequence, invoice aggregation

  • Add org-scope IDOR checks to Invoice, Job, Inventory, PriceBook controllers
  • Fix MarkPaidAsync overwrite (= to +=), add over-refund guard
  • InvoiceLineItem.Quantity int to decimal, refund status support
  • PriceBookItem Update: preserve Price/Cost fields
  • SupportHubInviteService: Random to RandomNumberGenerator
  • Cursor pagination: keyset+offset hybrid for non-CreatedAt sorts
  • EstimateNumberGenerator: serializable transaction replacing COUNT race
  • Estimate edit guard: block updates after Sent/Accepted/Declined
  • Invoice summary: server-side aggregation endpoint + expanded DTO
  • EF migration: AppHardeningSchemaChanges

…e sequence, invoice aggregation

- Add org-scope IDOR checks to Invoice, Job, Inventory, PriceBook controllers
- Fix MarkPaidAsync overwrite (= to +=), add over-refund guard
- InvoiceLineItem.Quantity int to decimal, refund status support
- PriceBookItem Update: preserve Price/Cost fields
- SupportHubInviteService: Random to RandomNumberGenerator
- Cursor pagination: keyset+offset hybrid for non-CreatedAt sorts
- EstimateNumberGenerator: serializable transaction replacing COUNT race
- Estimate edit guard: block updates after Sent/Accepted/Declined
- Invoice summary: server-side aggregation endpoint + expanded DTO
- EF migration: AppHardeningSchemaChanges
@bllr777 bllr777 merged commit 9aac999 into main Apr 14, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant