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.
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:
tool→toolset - Script ID prefix changed:
customtool_→custtoolset_ - Attribute renamed:
exposeto3rdpartyagents→exposetoaiconnector
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
- If you distribute SuiteApps and need uninstall cleanup: Create an
application.xmlfile 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. - If you deploy
.ssor.sspfiles: Add<permission>elements to the corresponding<file>definitions in your SDF project XML. Remove any manual post-deploy permission steps from your runbooks. - If you have custom tool scripts: This is a breaking change. Update your SDF XML definitions — rename the object from
tooltotoolset, change allcustomtool_prefixed script IDs tocusttoolset_, and rename anyexposeto3rdpartyagentsattributes toexposetoaiconnector. Review SuiteAnswers ID 1024036 for Oracle's migration guide. Search your codebase for any SuiteScript or integration code that references the oldcustomtool_script IDs and update those references. - 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.
Source: Oracle NetSuite Release Notes