Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The NetSuite Pro

The NetSuite Pro Logo The NetSuite Pro Logo

The NetSuite Pro Navigation

  • Home
  • About Us
  • Tutorials
    • NetSuite Scripting
    • NetSuite Customization
    • NetSuite Integration
    • NetSuite Advanced PDF Templates
    • NetSuite Reporting & Analytics Guide
    • Real-World NetSuite Examples
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask A Question
  • Home
  • About Us
  • Tutorials
    • NetSuite Scripting
    • NetSuite Customization
    • NetSuite Integration
    • NetSuite Advanced PDF Templates
    • NetSuite Reporting & Analytics Guide
    • Real-World NetSuite Examples
  • Blog
  • Contact Us
Home/SDF Deployment Tutorial Part 1: Introduction to SuiteCloud Development Framework and Environment Setup

SDF Deployment Tutorial Part 1: Introduction to SuiteCloud Development Framework and Environment Setup

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

  1. Part 1 (this page): Introduction to SDF and environment setup.
  2. Part 2: Creating your first SDF project and understanding project structure.
  3. Part 3: Importing objects from a NetSuite account into your SDF project.
  4. Part 4: Deploying SDF projects to sandbox and production.
  5. 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

  1. Go to Setup > Company > Enable Features.
  2. Open the SuiteCloud subtab.
  3. Enable SuiteCloud Development Framework, Server SuiteScript, and Client SuiteScript.
  4. 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.

  1. Navigate to Setup > Integration > Manage Integrations > New.
  2. Name it SDF CLI, enable Token-Based Authentication, and disable TBA: Authorization Flow.
  3. 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.com and 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!

Share
  • Facebook

Sidebar

Ask A Question

Stats

  • Questions 6
  • Answers 6
  • Best Answers 0
  • Users 5
  • Popular
  • Answers
  • Rocky

    Issue in running a client script in NetSuite SuiteScript 2.0 ...

    • 1 Answer
  • admin

    How can I send an email with an attachment in ...

    • 1 Answer
  • admin

    How do I avoid SSS_USAGE_LIMIT_EXCEEDED in a Map/Reduce script?

    • 1 Answer
  • admin
    admin added an answer The issue is usually caused by following Wrong script file… September 14, 2025 at 10:33 pm
  • admin
    admin added an answer Steps to send an Invoice PDF by email: define(['N/email', 'N/render',… August 28, 2025 at 3:05 am
  • admin
    admin added an answer This error means your script hit NetSuite’s governance usage limit… August 28, 2025 at 3:02 am

Top Members

Rocky

Rocky

  • 1 Question
  • 22 Points
Begginer
Sophie1022

Sophie1022

  • 0 Questions
  • 20 Points
Begginer
jmargoli

jmargoli

  • 0 Questions
  • 20 Points
Begginer

Trending Tags

clientscript netsuite scripting suitescript
  • Advanced PDF Templates in NetSuite: Integrating Saved Searches for Report-Style DocumentsMay 20, 2026
  • Debugging Advanced PDF Templates in NetSuite: Common Errors and How to Fix ThemMay 19, 2026
  • Advanced PDF Templates in NetSuite: Using FreeMarker for Dynamic ContentMay 18, 2026
  • N/email Module in NetSuite: How to Send Emails Programmatically Using SuiteScript 2.1May 18, 2026
  • NetSuite AI in 2026: How Oracle NetSuite AI Features Are Transforming ERP AutomationMay 17, 2026
  • N/file Module in NetSuite: Complete Guide to Reading, Writing & Managing Files in SuiteScript 2.1May 17, 2026
  • N/https Module in NetSuite: Complete Guide to Making HTTP Requests in SuiteScript 2.1May 17, 2026
  • N/format Module in NetSuite: Complete Guide to Date Formatting and Parsing in SuiteScriptMay 17, 2026
  • SuiteScript 2.1 Complete Guide: N/record Module β€” Create, Load, Edit & Delete RecordsMay 16, 2026
  • N/search Module in NetSuite: Complete Guide to Searching Records in SuiteScriptMay 15, 2026

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help

Footer

Menu

  • Home
  • About Us
  • Tutorials
    • NetSuite Scripting
    • NetSuite Customization
    • NetSuite Integration
    • NetSuite Advanced PDF Templates
    • NetSuite Reporting & Analytics Guide
    • Real-World NetSuite Examples
  • Blog
  • Contact Us

Quick Links

  • NetSuite Scripting
  • NetSuite Customization
  • NetSuite Advanced PDF Template
  • NetSuite Integration
  • NetSuite Reporting & Analytics

Subscribe for NetSuite Insights....

Β© 2026 The NetSuite Pro. All Rights Reserved