feat(quickbooks): add master data and simple CRUD - #6119
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
PR SummaryMedium Risk Overview API: New internal tool routes implement download transaction PDF, add attachment (note JSON or multipart file with workspace file authorization and size caps), and download attachment (short-lived Intuit URL via DNS-validated pinned fetch, then store as execution or copilot files). Responses expose file metadata without raw bytes; faults are sanitized. Vitest coverage exercises auth order, PDF validation, multipart upload, SSRF-safe downloads, abort signals, and 413 limits. Reviewed by Cursor Bugbot for commit 6e42e48. Bugbot is set up for automated code reviews on this repo. Configure here. |
Greptile SummaryAdds consolidated QuickBooks master-data reads and explicit customer, vendor, and item mutations.
Confidence Score: 4/5This PR should not merge until legacy vendor-list workflows remain executable and Employee responses are filtered before entering workflow or agent output. Removing the persisted operation ID creates wrong-tool or missing-tool execution paths, and raw Employee API objects can propagate sensitive fields that the public output schema intentionally omits. Files Needing Attention: apps/sim/blocks/blocks/quickbooks.ts, apps/sim/tools/quickbooks/read_master_data.ts, apps/sim/tools/quickbooks/utils.ts, apps/sim/tools/quickbooks/types.ts
|
| Filename | Overview |
|---|---|
| apps/sim/blocks/blocks/quickbooks.ts | Expands the block to ten operations and maps their inputs, but removing the legacy vendor-list operation breaks persisted workflows. |
| apps/sim/tools/quickbooks/read_master_data.ts | Adds list and by-ID reads for five entity types, including Employee records whose raw sensitive properties are not sanitized. |
| apps/sim/tools/quickbooks/utils.ts | Adds shared entity, mutation, parsing, and validation helpers; the entity transform passes complete provider objects through unchanged. |
| apps/sim/tools/quickbooks/create_customer.ts | Adds a bounded, non-retrying customer creation request with normalized optional fields. |
| apps/sim/tools/quickbooks/update_customer.ts | Adds explicit SyncToken-based sparse customer updates and active-status changes. |
| apps/sim/tools/quickbooks/create_vendor.ts | Adds vendor creation with normalized contact, address, account, and 1099 fields. |
| apps/sim/tools/quickbooks/update_vendor.ts | Adds explicit SyncToken-based sparse vendor updates and active-status changes. |
| apps/sim/tools/quickbooks/create_item.ts | Adds Service and Non-inventory item creation with account-reference and purchase-field validation. |
| apps/sim/tools/quickbooks/update_item.ts | Adds sparse item updates with SyncToken concurrency control and numeric validation. |
| apps/sim/tools/quickbooks/types.ts | Expands QuickBooks entity and output types, including sensitive Employee properties that can remain present at runtime. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
Workflow[QuickBooks block] --> Selector{Operation}
Selector --> Read[Master-data read]
Selector --> Mutate[Customer, vendor, or item mutation]
Read --> QB[QuickBooks Online API]
Mutate --> QB
QB --> Transform[Response transform]
Transform --> Output[Workflow output]
Reviews (1): Last reviewed commit: "docs(quickbooks): document master data a..." | Re-trigger Greptile
6ccec84 to
f62cd5f
Compare
f62cd5f to
bf2a856
Compare
2bb5623 to
30c9e12
Compare
924d9e6 to
e429ad5
Compare
7e3f321 to
21de012
Compare
64f660b to
74ad283
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 74ad283. Configure here.
* feat(quickbooks): add bounded sales transaction reads * feat(quickbooks): add sales and receivables mutations * feat(quickbooks): expose sales operations in the block * fix(quickbooks): address independent sales review * fix(quickbooks): address final integration review * fix(quickbooks): clarify master data output metadata * fix(quickbooks): mark sales pagination outputs optional * fix(quickbooks): validate calculated sales amounts * fix(quickbooks): generate sales arrays correctly * fix(quickbooks): align sales metadata conditions * chore(tools): sync sales metadata * feat(quickbooks): add purchasing and payables (#6159) * feat(quickbooks): add safe purchasing and payables tools * feat(quickbooks): expose purchasing and payables operations * docs(quickbooks): document purchasing and payables tools * fix(quickbooks): require current purchase payment type * fix(quickbooks): allow rounded purchasing line totals * fix(quickbooks): generate purchasing arrays correctly * fix(quickbooks): validate bill payment accounts * fix(quickbooks): validate bill allocations before account lookup * chore(tools): sync purchasing metadata * fix(quickbooks): sanitize bill payment faults * feat(quickbooks): add general accounting operations (#6185) * feat(quickbooks): add accounting transaction tools * feat(quickbooks): expose accounting operations * docs(quickbooks): generate accounting catalog * fix(quickbooks): preserve accounting amount precision * fix(quickbooks): balance journal entries in exact cents * fix(quickbooks): include account in deposit updates * chore(quickbooks): sync accounting catalog * feat(quickbooks): add observable PO-to-bill linking (#6194) * feat(quickbooks): link bills to purchase order lines * docs(quickbooks): document observable bill linking * fix(quickbooks): document purchase order link identifiers * fix(quickbooks): keep shared line example valid * chore(quickbooks): sync bill linking catalog * feat(quickbooks): add accountant-focused financial reports (#6197) * feat(quickbooks): add verified financial report contracts * feat(quickbooks): expose reports in block and catalog * test(quickbooks): cover null report filters * fix(quickbooks): expose report header time * chore(quickbooks): sync reports catalog * feat(quickbooks): add documents and attachments (#6200) * feat(quickbooks): add document and attachment tools * feat(quickbooks): add bounded document file routes * feat(quickbooks): expose document workflows * fix(quickbooks): enforce attachment upload bounds * fix(quickbooks): tighten document handling * fix(quickbooks): align file response limits * test(quickbooks): cover missing PDF content type * test(quickbooks): cover attachment MIME fallback * fix(quickbooks): redact attachment access URLs * fix(quickbooks): store downloaded documents safely * fix(quickbooks): stop cancelled attachment downloads * fix(quickbooks): correct document schemas and upload bytes * chore(quickbooks): sync document catalog * feat(quickbooks): add accountant filters (#6208) * feat(quickbooks): add safe n8n parity tools * feat(quickbooks): expose accountant parity options * fix(quickbooks): address parity review findings * fix(quickbooks): require recipient for payment email * chore(quickbooks): sync parity catalog --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Mac.localdomain> Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Mac.localdomain> Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Mac.localdomain> Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> Co-authored-by: Bill Leoutsakos <billleoutsakos@Mac.localdomain> --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Mac.localdomain> Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> --------- Co-authored-by: Bill Leoutsakos <billleoutsakos@Bills-MacBook-Pro.local> Co-authored-by: Bill Leoutsakos <billleoutsakos@Mac.localdomain>
161c8a7
into
feat/quickbooks-integration

Summary
Adds the first stacked QuickBooks expansion on top of
feat/quickbooks-integration:SyncTokensparse updatesThe block now exposes exactly ten operations. This PR does not add arbitrary queries, filtering infrastructure, remote selectors, inventory/category writes, or new OAuth scopes.
Validation
git diff --checkSyncTokenfaults verifiedSandbox note
The local environment had one connected QuickBooks company, so the existing multi-company isolation behavior was not re-exercised in this child PR. No credentials or unsanitized accounting records are committed.
Stack
feat/quickbooks-integrationat the frozen parent SHA970d3b1e4feat/quickbooks-01-master-dataThis PR must not be merged automatically.