Skip to content

feat(netsuite): add Oracle NetSuite integration - #6476

Open
BillLeoutsakosvl346 wants to merge 17 commits into
stagingfrom
feat/oracle-netsuite-integration
Open

feat(netsuite): add Oracle NetSuite integration#6476
BillLeoutsakosvl346 wants to merge 17 commits into
stagingfrom
feat/oracle-netsuite-integration

Conversation

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor

Summary

  • add an Oracle NetSuite block with 27 SuiteTalk operations
  • support OAuth 2.0 client-credentials authentication with certificate signing
  • add the official NetSuite icon, templates, skills, catalog metadata, tests, and setup documentation
  • exclude RESTlets, arbitrary API requests, and triggers

Type of Change

  • Feature

Testing

  • 30 focused NetSuite tests
  • full lint and type-check
  • all 22 repository audits
  • block registry, tool metadata, integration catalog, icon, and registry-boundary checks
  • independent integration validation

Checklist

  • Code follows project style guidelines
  • Self-reviewed my changes
  • Tests added/updated and passing
  • No new warnings introduced
  • I confirm that I have read and agree to the terms outlined in the Contributor License Agreement (CLA)

@vercel

vercel Bot commented Aug 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
docs Skipped Skipped Aug 12, 2026 12:32am

Request Review

@cursor

cursor Bot commented Aug 9, 2026

Copy link
Copy Markdown

PR Summary

High Risk
Introduces certificate/private-key OAuth auth and a large ERP write surface (create/update/delete/batch), so credential handling and record mutation paths are security- and data-critical.

Overview
Adds an Oracle NetSuite integration for SuiteTalk REST Web Services, covering 27 operations for records, SuiteQL, SuiteAnalytics datasets, async batches, metadata, and job monitoring.

Auth uses OAuth 2.0 client credentials with RSA/EC certificate signing (accountId, clientId, certificateId, private key). The block keeps record bodies as dynamic JSON, scopes params per operation, and intentionally omits RESTlets, arbitrary requests, and triggers.

Also wires the icon, docs setup guide, registry/catalog entries, seven templates, five skills, and focused block tests.

Reviewed by Cursor Bugbot for commit 6a3b51d. Bugbot is set up for automated code reviews on this repo. Configure here.

@greptile-apps

greptile-apps Bot commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

The PR adds an Oracle NetSuite integration backed by SuiteTalk REST Web Services and OAuth 2.0 client credentials.

  • Adds 27 record, batch, SuiteQL, dataset, metadata, and asynchronous-job operations.
  • Registers the block and tools across the application, generated metadata, integration catalog, and documentation.
  • Adds focused tests for request construction, authentication, cache isolation, response handling, and block configuration.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
apps/sim/tools/netsuite/utils.ts Implements account normalization, OAuth certificate signing, private-key-bound token caching, request construction, response normalization, and error sanitization.
apps/sim/tools/netsuite/utils.test.ts Covers OAuth signing, token-cache isolation by private-key identity, request behavior, and utility validation.
apps/sim/blocks/blocks/netsuite.ts Defines the 27-operation NetSuite block, its credential and operation inputs, parameter coercion, outputs, templates, and skills.
apps/sim/blocks/blocks/netsuite.test.ts Verifies operation routing, required fields, coercion, metadata, and the configured absolute import alias.
apps/sim/tools/netsuite/netsuite.test.ts Exercises the NetSuite tool configurations and operation-specific HTTP request contracts.
apps/sim/tools/registry.ts Registers the new NetSuite tools for runtime dispatch.

Sequence Diagram

sequenceDiagram
  participant Workflow
  participant Block as NetSuite Block
  participant Tool as NetSuite Tool
  participant Cache as Token Cache
  participant OAuth as NetSuite OAuth
  participant API as SuiteTalk REST API
  Workflow->>Block: Execute selected operation
  Block->>Tool: Map and coerce operation parameters
  Tool->>Cache: Lookup by account, client, certificate, and key fingerprint
  alt Valid cached token
    Cache-->>Tool: Bearer token
  else Cache miss
    Tool->>OAuth: Signed client-credentials assertion
    OAuth-->>Tool: Access token
    Tool->>Cache: Store bounded token entry
  end
  Tool->>API: Authenticated SuiteTalk request
  API-->>Tool: Status, data, and location
  Tool-->>Workflow: Normalized operation result
Loading

Reviews (3): Last reviewed commit: "Merge remote-tracking branch 'origin/sta..." | Re-trigger Greptile

Comment thread apps/sim/tools/netsuite/utils.ts
Comment thread apps/sim/blocks/blocks/netsuite.test.ts Outdated
@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit cdd5240. Configure here.

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@greptile

@BillLeoutsakosvl346

Copy link
Copy Markdown
Contributor Author

@cursor review

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 61407f5. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit db5ba8d. Configure here.

Comment thread apps/sim/blocks/blocks/netsuite.ts
…te-integration

# Conflicts:
#	apps/sim/tools/generated/tool-ids.ts
#	apps/sim/tools/generated/tool-metadata.ts
#	apps/sim/tools/generated/tool-outputs.ts
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