SuiteCloud Platform
NetSuite 2026.1
2026-02-23

SDF Gets Undeploy Hooks, .ss/.ssp File Permissions, and Toolset Object Rename

NetSuite 2026.1 adds a beforeUndeploy lifecycle hook for SuiteApps, lets you define file permissions for .ss and .ssp files directly in SDF XML, and renames the custom tool SDF object from 'tool' to 'toolset' with breaking scriptid and attribute changes.

Affects:SDFSuiteApp ProjectsSuiteScript SSP ApplicationsCustom Tool ScriptsAI Connector

What changed

1. New beforeUndeploy Installation Hook

SDF now supports a beforeUndeploy lifecycle hook that fires before a SuiteApp is uninstalled from a target account. This gives you a place to run teardown logic — deleting custom records, files, folders, or other objects that would otherwise be orphaned after uninstall.

The hook is declared in a new optional file called application.xml, placed at the SuiteApp project root alongside manifest.xml and deploy.xml. Inside it, you add a <beforeUndeploy> element under <hooks> and reference one or more SDF installation scripts containing your cleanup logic.

2. File Permissions for .ss and .ssp Files in SDF XML

Previously, setting permissions on SuiteScript Server Pages (.ss and .ssp files) required manual configuration in the NetSuite UI. You can now declare permissions directly in your SDF project's file XML definitions using the existing <permission> tag inside the <file> element. This brings SSP file permissions under version control and eliminates a common post-deploy manual step.

3. Custom Tool SDF Object Renamed from tool to toolset

The SDF custom object for custom tool scripts has breaking changes:

  • Object name changed: tooltoolset
  • Script ID prefix changed: customtool_custtoolset_
  • Attribute renamed: exposeto3rdpartyagentsexposetoaiconnector

These changes are required to use the new execution log feature for custom tools. If you have existing custom tool scripts, their XML definitions and any references to the old customtool_ script IDs will need to be updated.

What to do

  1. If you distribute SuiteApps and need uninstall cleanup: Create an application.xml file at your project root. Define a <hooks><beforeUndeploy> section referencing an SDF installation script with your teardown logic. See Oracle's Lifecycle Hooks documentation for the schema.
  2. If you deploy .ss or .ssp files: Add <permission> elements to the corresponding <file> definitions in your SDF project XML. Remove any manual post-deploy permission steps from your runbooks.
  3. If you have custom tool scripts: This is a breaking change. Update your SDF XML definitions — rename the object from tool to toolset, change all customtool_ prefixed script IDs to custtoolset_, and rename any exposeto3rdpartyagents attributes to exposetoaiconnector. Review SuiteAnswers ID 1024036 for Oracle's migration guide. Search your codebase for any SuiteScript or integration code that references the old customtool_ script IDs and update those references.
  4. Validate in Sandbox first. Deploy updated SDF projects to a sandbox account before production, especially for the toolset rename — any missed reference to the old script ID prefix will break at deploy or runtime.