Welcome to Part 1 of our SDF Deployment tutorial series. The SuiteCloud Development Framework (SDF) is NetSuite’s official way to manage customizations as code β letting you version, review, and deploy scripts, workflows, custom records, fields, forms, roles, and more across environments. In this opening guide, we’ll explain what SDF is, why you should care, and how to set up a clean local development environment ready for the rest of the series.
What This Series Covers
- Part 1 (this page): Introduction to SDF and environment setup.
- Part 2: Creating your first SDF project and understanding project structure.
- Part 3: Importing objects from a NetSuite account into your SDF project.
- Part 4: Deploying SDF projects to sandbox and production.
- Part 5: Advanced SDF β CI/CD pipelines, version control, and best practices.
What is SDF?
SDF is a NetSuite-provided framework that represents customizations as XML and JavaScript files in a structured project. Instead of clicking through the NetSuite UI to copy customizations between accounts, you describe them in code, store them in source control, and deploy them with a single command.
- Repeatable deployments across sandbox, UAT, and production.
- Version control with Git so you can review, branch, and roll back.
- Automation-friendly: works with CI/CD systems like GitHub Actions, GitLab CI, Jenkins, and Azure DevOps.
- Standardization across teams β everyone develops the same way.
Account Customization Projects vs SuiteApp Projects
SDF supports two project types. Choose the one that matches your goal:
- Account Customization Project (ACP): Internal customizations for a single NetSuite account or set of accounts you control. Most internal teams use this.
- SuiteApp Project: Distributable bundles published to other NetSuite customers β typically used by ISVs.
Throughout this series, we’ll focus on ACPs since that’s what most NetSuite teams need.
Prerequisites
- Administrator or a role with the SuiteCloud Development Framework permission in NetSuite.
- A NetSuite sandbox or development account to deploy to.
- Java JDK 17 (or version supported by the latest SuiteCloud CLI).
- Node.js 18 LTS or later.
- Git installed locally.
- An IDE β Visual Studio Code is recommended because it has an official SuiteCloud Extension.
Step 1 β Enable SuiteCloud Development Framework in NetSuite
- Go to Setup > Company > Enable Features.
- Open the SuiteCloud subtab.
- Enable SuiteCloud Development Framework, Server SuiteScript, and Client SuiteScript.
- Click Save and accept any terms of service.
Step 2 β Create a Token-Based Authentication (TBA) Integration Record
SDF authenticates to NetSuite using TBA or OAuth 2.0. For local development, the easiest option is the SuiteCloud CLI’s built-in browser-based login, but for CI/CD you’ll need TBA tokens.
- Navigate to Setup > Integration > Manage Integrations > New.
- Name it
SDF CLI, enable Token-Based Authentication, and disable TBA: Authorization Flow. - Save and record the Consumer Key and Consumer Secret (you can only view them once).
Step 3 β Install the SuiteCloud CLI
The SuiteCloud CLI (often called suitecloud) is the command-line tool that powers SDF deployments. Install it via npm:
npm install -g @oracle/suitecloud-cli suitecloud -v
Verify that Java is on your PATH:
java -version
Step 4 β Install the VS Code SuiteCloud Extension (Optional)
- Open VS Code and go to Extensions.
- Search for SuiteCloud Extension for Visual Studio Code by Oracle + NetSuite.
- Install it. You’ll get command-palette shortcuts for every CLI action.
Step 5 β Set Up Your Authentication ID
Each NetSuite account you work with becomes an authID in the CLI. Run:
suitecloud account:setup
Pick Browser-Based authentication for local work. The CLI will open a browser, log you into NetSuite, and securely store the credentials under an authID of your choice (e.g., sandbox-dev).
Step 6 β Verify Your Setup
suitecloud account:manageauth --list
You should see your newly created authID and the linked NetSuite account ID. If you do, you’re ready for Part 2.
Common Setup Issues
- “java: command not found” β Install JDK 17 and add it to PATH.
- “npm permission denied” β Use a Node version manager (nvm) instead of installing Node globally as root.
- “Account does not have SDF enabled” β Re-check Step 1; some sandboxes need a refresh from production.
- Browser login loops β Clear cookies for
netsuite.comand try again.
Up Next
In Part 2, we’ll create your first Account Customization Project, walk through the folder structure SDF generates, and add a simple custom record to the project. See you there!