Uh oh!
There was an error while loading. Please reload this page.
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. |
Uh oh!
There was an error while loading. Please reload this page.
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
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
6ccec84 to
f62cd5fComparef62cd5f to
bf2a856CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
2bb5623 to
30c9e12CompareUh oh!
There was an error while loading. Please reload this page.
924d9e6 to
e429ad5CompareUh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
7e3f321 to
21de012Compare64f660b to
74ad283CompareThere 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.
Uh oh!
There was an error while loading. Please reload this page.
* 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-integrationUh oh!
There was an error while loading. Please reload this page.

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.