Skip to main content
Version: 4.5.0

now.config.json

ServiceNow SDK configuration schema.

Required Properties

scope

Scope of the application (example: 'x_myapp' or 'sn_myapp')

  • Type: string
  • Pattern: ^((x|sn)_[a-z0-9_]+|global)$
  • Min length: 4
  • Max length: 18

scopeId

Scope ID of the application (example: 'fc1b5713c3db3110d6489a038a40dd85')

  • Type: string
  • Pattern: ^([0-9a-f]{32}|global$)
  • Max length: 32

Properties

active

Is the application active

  • Type: boolean

appOutputDir

Location to output built application for packaging during fluent build command

  • Type: string
  • Default: "dist/app"

applicationRuntimePolicy

Application Runtime Policy mode. Set to 'tracking' or 'enforcing' to enable policy records. Defaults to 'none' if not specified.

  • Type: "none" | "tracking" | "enforcing"

clientDir

Directory containing client files of the application, such as HTML and TypeScript files. Set to empty to disable the client build.

  • Type: string
  • Default: "src/client"

description

Description of the application

  • Type: string

fluentDir

Directory containing .now.ts fluent files of the application

  • Type: string
  • Default: "src/fluent"
  • Min length: 1

generatedDir

Directory relative to 'fluentDir' where Fluent will generate files, such as keys.ts

  • Type: string
  • Default: "generated"
  • Min length: 1

guidedSetupGuid

SysID of the Guided Setup to start when the application is upgraded

  • Type: string
  • Pattern: ^[0-9a-f]{32}$

ignoreTransformTableList

List of tables to ignore when transforming entities to ServiceNow tables

  • Type: string[]

installedAsDependency

App was installed as a dependency

  • Type: boolean
  • Default: false

jsLevel

JavaScript level for the application

  • Type: "es_latest" | "helsinki_es5" | "traditional"
  • Default: "es_latest"

SysID of the app logo

  • Type: string
  • Pattern: ^[0-9a-f]{32}$

SysID of the application's primary menu for default table modules

  • Type: string
  • Pattern: ^[0-9a-f]{32}$

metadataDir

Directory containing metadata xml for the app

  • Type: string
  • Default: "metadata"

name

Name of the application (example: 'MyApp')

  • Type: string
  • Min length: 3
  • Max length: 100

networkPolicies

Network access policies for the application (sys_arp_network_policy)

  • Type: object[]

npmUpdateCheck

  • Type: number | boolean
  • Default: 10

packOutputDir

Location to output the zip file during build process, to be later installed on the instance during install command

  • Type: string
  • Default: "target"

packageResolverVersion

Rhino module resolver version. Must be 2.0.0+ for Global apps

  • Type: "1.0.0" | "2.0.0"
  • Default: "1.0.0"

serverModulesDir

Directory containing modular files to be built into sys_modules

  • Type: string
  • Default: "src/server"

serverModulesExcludePatterns

Patterns to exclude when building server modules

  • Type: string[]
  • Default: ["**/*.test.ts","**/*.test.js","**/*.d.ts"]

serverModulesIncludePatterns

Patterns to include when building server modules

  • Type: string[]
  • Default: ["**/*.ts","**/*.tsx","**/*.js","**/*.jsx","**/*.cts","**/*.cjs","**/*.mts","**/*.mjs","**/*.json"]

staticContentDir

Directory containing static asset files of the application

  • Type: string
  • Default: "dist/static"
  • Min length: 1

tableDefaultLanguage

BCP 47 language tag for table/column documentation defaults. Used to resolve labels from multi-language documentation arrays (e.g., 'en', 'es', 'fr', 'en-US', 'zh-Hans').

  • Type: string
  • Default: "en"
  • Pattern: ^[a-z]{2,3}(-[a-zA-Z0-9]{2,8})*$
  • Min length: 2

tableOutputFormat

Artifact type built for table definitions. Traditional bootstrap or separate component records.

  • Type: "bootstrap" | "component"
  • Default: "bootstrap"

trustedModules

List of npm module patterns to mark as trusted. Trusted modules will have external_source set to false. Valid patterns: fully qualified package names (e.g., 'lodash', '@servicenow/sdk') or organization prefixes with wildcard (e.g., '@servicenow/'). Blanket wildcards like '' are not allowed.

  • Type: string[]
  • Default: []

tsconfigPath

Path to tsconfig file to be used for transpilation of server module typescript. ServiceNow SDK will emit build errors following the referenced tsconfig. (example: './src/server/tsconfig.json')

  • Type: string

type

Whether this project represents a scoped/global app package or a set of a record changes

  • Type: "package" | "configuration"
  • Default: "package"

accessControls

Manage scoping restrictions and access to the application

PropertyTypeDefaultDescription
canEditInStudiobooleantrueCan the application be opened in developer studio
hideOnUIbooleanfalseApplication hidden in UI
privatebooleanfalseMark the application as private
restrictTableAccessbooleanfalseRestrict design time access to tables from outside the application
runtimeAccessTracking"none" | "permissive" | "enforcing""permissive"Runtime access tracking for the application
scopedAdministrationbooleanfalseIf true, System Admins will be prevented from accessing the application
trackablebooleantrueMark the application as trackable
uninstallBlockedbooleanfalseUninstall blocked for the application
userRolestringRole required for end users to access the application and its tables

dependencies

Reference dependencies on other ServiceNow application tables and entities, organized by scope

Keys match the pattern ^((x|sn)_[a-z0-9_]+|global)$. Each entry can include:

PropertyTypeDefaultDescription
roles"*" | string[]Role definitions from sys_user_role (list of role names or '*' for all)
tables"*" | string[]Table definitions from sys_db_object (list of table names or '*' for all)

Additional keys are also accepted.

Deprecated sub-property: dependencies.applications — DEPRECATED: Use flat scope structure instead. Move scopes directly under 'dependencies'.

licensing

If this application is licensable, set the subscription requirement and model.

PropertyTypeDefaultDescription
enforceLicense"none" | "log" | "enforce""log"Subscription requirement for the application
licensablebooleantrueMark package as licensable
licenseCategory"none" | "general" | "beta""none"License category for the application
licenseModel"none" | "fulfiller" | "producer" | "capacity" | "mixed" | "app_use""none"License model for the application
subscriptionEntitlementstringSysID of the subscription entitlement for the application

modulePaths

Mapping between file glob patterns to resolve imported file paths to valid runtime paths. This is needed if your Fluent files are importing modules from a different location than the runtime modules. For example, if you have a custom TypeScript setup that transpiles modules from a 'src' directory to a 'dist' directory, you would need to specify that mapping here.

Keys match the pattern .*. Values are string.

performancePolicy

Performance (resource limit) configuration (sys_app_resource_limit_template). Only one per scope.

PropertyTypeDefaultDescription
$idstringUnique sys_id for the record
apiTransactionLimitinteger30API Transaction Quota percentage (1-100)
eventHandlerLimitinteger20Event Handler Quota percentage (1-100)
interactiveTransactionLimitinteger30Interactive Transaction Quota percentage (1-100)
mode"disabled" | "logOnly" | "enforced"Enforcement mode for quota thresholds. Auto-derived from applicationRuntimePolicy if not explicitly set: 'none'→disabled, 'tracking'→logOnly, 'enforcing'→enforced
namestringConfiguration name
scheduledJobLimitinteger20Scheduled Job Quota percentage (1-100)

scripts

Define scripts that are executed with the SDK task runner. The task functions are async and are passed APIs for cross-environment compatibility. Use prebuild to run a script before the build process for custom build tasks.

Keys match the pattern .*. Values are string.

staticContentPaths

Mapping of source files to static output paths.

Keys match the pattern .*. Values are string.

taxonomy

Configuration for taxonomy-based file organization

PropertyTypeDefaultDescription
fallbackFolderNamestringFolder name to use when a table doesn't have a mapping (lowercase, no spaces or special chars)
mappingobjectMaps table names to their folder path for organization. Resulting files will be placed in '{generatedDir}/{path}'

wildcardPolicy

Wildcard/exemption policy for the application (sys_arp_segment_policy). Only one per scope.

PropertyTypeDefaultDescription
$idstringUnique sys_id for the record
activebooleanfalseWhether the policy is active
arlobjectARL (Application Resource Limit) pillar configuration
networkobjectNetwork pillar configuration
recordbooleanfalseEnable Record pillar access
scriptingobjectScripting pillar configuration
shortDescriptionstringHuman-readable description of the policy