Administering attachments
Summarize
Summary of Administering attachments
ServiceNow administrators can configure how file attachments are handled within the platform, including uploading, viewing, deleting, and indexing attachments. Attachments generate system events useful for notifications or scripting, and administrators can control attachment behavior through system properties to optimize performance, security, and user experience.
Show less
Attachment Storage and Management
- Attachments metadata is stored in the sysattachment table, while file data is chunked and stored in sysattachmentdoc.
- Uploading, viewing, or deleting attachments triggers a single event per record, regardless of the number of attachments.
- Activity stream thumbnails are scaled automatically via the glide.ui.activitystream.scaleimages property, with a default max size of 525x350 pixels.
- Large image files over 5 MB may cause out-of-memory errors; this is controlled by the com.glide.attachment.maxgetsize property, which can be adjusted to prevent system restarts by skipping scaling and providing links instead.
Attachment Events and Logging
- Key attachment-related events include attachment.read, attachment.uploaded, attachment.deleted, and attachment.renamed.
- Events enable tracking of attachment interactions, such as who downloaded a file and when.
- Attachment read events provide parameters like file name and table name for detailed logging or notification actions.
Debugging and Security
- Attachment indexing debug options are available via properties glide.ts.index.attachment.debug and glide.ts.index.attachment.listterms.debug, which assist in troubleshooting indexing issues.
- For security and performance tuning, administrators can review settings related to attachment processing as part of instance security hardening.
System Property Configuration
- Administrators can disable drag-and-drop attachment uploads while still allowing file browsing uploads.
- Attachment file size limits, allowed file extensions, and upload permissions can be controlled.
- Attachments can be disabled on specific tables to prevent file additions.
- Attachment indexing can be enabled per table to support text search in both records and attachments.
- The [view] link for attachments, which opens files in-browser with JavaScript execution, can be hidden for security reasons, while still allowing access via file names.
- Attachment icons can be customized based on file types to improve user interface clarity.
Administrators can configure system properties for how files are uploaded and attached to records. Uploading, viewing, and deleting file attachments triggers a single event that can be used for notifications or in scripts.
Attachment tables
When you store an attachment to any table, a record is created in the Attachment [sys_attachment] table that contains attachment metadata. The file data is stored in the Attachment Document [sys_attachment_doc] table, in 4k chunks. For example, if you attach a 12k file called My_attachment.pdf, then there is an Attachment entry with three related Attachment Document entries.
To learn how to upload attachments to records, see Add and manage attachments.
Activity stream thumbnail scaling
- Maximum dimensions for thumbnails using this property are 525 pixels width by 350 pixels height. The system favors the pixel height first, so you can end up with images that are wider than 525 pixels.
- Attaching image files over 5 MB can create an out of memory error and cause the instance to restart. An out of memory error and restart occur when the system generates the thumbnail when you attach a new image. The error and restart can also occur the first time you load existing images on a record.
- The administrator can add the com.glide.attachment.max_get_size system property to control the maximum image scaling dimensions.
| Field | Description |
|---|---|
| Name | com.glide.attachment.max_get_size |
| Type | integer |
| Value | 5242880 |
- The base system value is 5242880 bytes (5 MB). You can change the value as necessary.
- With this property set, images that are larger than 5 MB are not scaled and the system creates a link instead. Images smaller than 5 MB are scaled down.
Configure the max image size property for Activity Streams
When attaching an image in an Activity Stream, the system controls the maximum size of the image. Use the com.glide.attachment.max_get_size property to control the maximum image scaling dimensions.
Attachment events and logging
A script action or notification can process attachment events. Only one event is created when action is taken on a record with attachments, even when the record has multiple attachments. The following events are provided.
Only one event is created when action is taken on a record with attachments, even when the record has multiple attachments. The following events are provided.
| Event | Description |
|---|---|
| attachment.read | An attachment has been read or downloaded. |
| attachment.uploaded | An attachment has been uploaded. If multiple attachments are uploaded to a record at one time, only one event is created. |
| attachment.deleted | An attachment has been deleted. This event is also triggered when the record containing the attachment is deleted. If a record is deleted that contains multiple attachments, a separate event is triggered for each attachment in the deleted record. |
| attachment.renamed | An attachment has been renamed. |
Attachment logging
- parm1: File name
- parm2: Table name
Debug attachment indexing
To change debugging options for attachment indexing, add these system properties.
- glide.ts.index.attachment.debug: When the value is set to
true, enables log messages for exceptions that occur when
indexing attachments (default is false).
You can leave this property enabled during normal operations to capture stack trace information about any exceptions.
- glide.ts.index.attachment.list_terms.debug: When the value is set
to true, logs all indexed terms when an attachment is indexed
(default is false).
[Recommended] For optimal performance, set this property to false during normal operations. Only enable this property when you are actively debugging an issue.