---
sourceDocument: Yokohama Build or modify applications
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/yokohama/application-development

 Release :

    - yokohama

ft:locale :

    - en-US

ft:publication_title :

    - Yokohama Build or modify applications

ft:clusterId :

    - cadev

bundleId :

    - cadev

workflow :

    - Development, Data, and Analytics


---

# Property API

# Property API - ServiceNow Fluent {#ariaid-title1}

* Release version: Yokohama
* 
* Updated March 12, 2026
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 3 minutes to read

The Property API defines system properties \[sys_properties\] that control instance behavior.
Note:  
For the latest ServiceNow Fluent API documentation and examples, see the [ServiceNow Fluent API reference](https://servicenow.github.io/sdk/) and [ServiceNow SDK examples repository](https://github.com/ServiceNow/sdk-examples) on GitHub.

For general information about system properties, see [Add a system property](https://www.servicenow.com/docs/access?context=t_AddAPropertyUsingSysPropsList&version=yokohama&pubname=yokohama-platform-administration&ft:locale=en-US).
**Related concepts**   

* [ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/~uRaWXiuRJuyUsvJypBknQ "Define application metadata in source code using the ServiceNow Fluent domain-specific programming language.")

## Property object {#ariaid-title2}

Add a system property \[sys_properties\] for configuring an aspect of an application.
{#property-object-now-ts__table_vy2_525_jq__entry__3}{#property-object-now-ts__now-id-desc2}

| Name | Type | Description |
|-|-|-|
| $id | String or Number | Required. A unique ID for the metadata object. When you build the application, this ID is hashed into a unique sys_id. For more information, see [ServiceNow Fluent language constructs](https://servicenow-prod.fluidtopics.net/3RTnzOESnTILKQIIO7V1sg "ServiceNow Fluent language constructs provide additional functionality for development in source code with ServiceNow Fluent APIs."). Format: `Now.ID['String' or Number]` |
| name | String | Required. The name of the property beginning with the application scope in the following format: <kbd class="ph userinput">&lt;scope&gt;.&lt;name&gt;</kbd>. |
| value | Any | A value for the property. The value must be the correct data type. All property values are stored as strings. When retrieving properties via the gs.getProperty() method, treat the results as strings. For example, a true\|false property returns 'true' or 'false' (strings), not the Boolean equivalent. |
| type | String | A data type for the property value. Valid values: string, integer, boolean, choicelist, color, date_format, image, password, password2, short_string, time_format, timezone, uploaded_image |
| description | String | A description of what the property does. |
| choices | Array | A comma-separated list of choice values. This property only applies if the type property is set to `choicelist`. If you need a different choice label and value, use an equal sign (=) to separate the label from the value. For example, `['Blue=0000FF', 'Red=FF0000', 'Green=00FF00']` displays Blue, Red, and Green in the list, and saves the corresponding hex value in the property value field. |
| roles | Object | The variable identifiers of Role objects or names of roles that have read or write access to the property. For example: roles: { read: [activity_admin, 'app_user'], write: [admin] } For more information, see [Role API - ServiceNow Fluent](https://servicenow-prod.fluidtopics.net/hdrGz27sawyUt1lx7pLLJA#role-api-now-ts "The Role API defines roles [sys_user_role] that grant specific permissions to users of an application."). |
| ignoreCache | Boolean | Flag that indicates whether to cache flush when the value of the property is set. The system stores system property values in server-side caches to avoid querying the database for configuration settings. When you change a system property value, the system flushes the cache for the System Properties \[sys_properties\] table. Use this field to determine whether to flush this property's value from all other server-side caches. Valid values: * true: The system ignores flushing some server-side caches, thus flushing only the cache for the System Properties \[sys_properties\] table and preserving the prior property value in all other caches. This option avoids the performance cost of flushing all caches and retrieving new property values. Generally, you should only set this property to `true` when you have a system property that changes more frequently than once a month, and the property value is only stored in the System Properties \[sys_properties\] table table. * false: The system flushes all server-side caches and retrieves the current property value from the database. Set this property to `false` for all caches to have the current property value. {#property-object-now-ts__ul_pcb_vss_pbc} Default: false |
| isPrivate | Boolean | Flag that indicates whether to exclude the property from being imported via update sets. Keeping system properties private helps prevent settings in one instance from overwriting values in another instance. For example, you might not want a system property in a development instance to use the same value as a production instance. Valid values: * true: The property isn't included in update sets. * false: The property is included in update sets. {#property-object-now-ts__ul_grl_bts_pbc} Default: false |
| $meta | Object | Metadata for the application metadata. With the installMethod property, you can map the application metadata to an output directory that loads only in specific circumstances. $meta: { installMethod: 'String' } Valid values for installMethod: * demo: Outputs the application metadata to the metadata/unload.demo directory to be installed with the application when the Load demo data option is selected. * first install: Outputs the application metadata to the metadata/unload directory to be installed only the first time an application is installed on an instance. {#property-object-now-ts__ul_n3q_y3s_42c} |
[Table 1. Properties]

{#property-object-now-ts__table_vy2_525_jq}  

    import { Property } from '@servicenow/sdk/core'

    Property({
       $id: Now.ID['1234'],
       name: 'x_snc_app.some.new.prop',
       type: 'string',
       value: 'hello',
       description: 'A new property',
       roles: {
          read: ['admin'],
          write: [adminRole, managerRole],
       },
       ignoreCache: false,
       isPrivate: false,
    })

The roles referenced are defined using the Role object:

    import { Role } from "@servicenow/sdk/core";

    const managerRole = Role({ 
       $id: Now.ID['manager_role'], 
       name: 'x_snc_example.manager' 
    })

    const adminRole = Role({ 
       $id: Now.ID['admin_role'], 
       name: 'x_snc_example.admin', 
       containsRoles: [managerRole] 
    })


