Timeline schema
Serverless Security Stack
The Timeline schema lists all the JSON fields and objects required to create a Timeline or a Timeline template using the Create Timeline API.
Important
All column, dropzone, and filter fields must be ECS fields.
This screenshot maps the Timeline UI components to their JSON objects:
- Title (
title
) - Global notes (
globalNotes
) - Data view (
dataViewId
) - KQL bar query (
kqlQuery
) - Time filter (
dateRange
) - Additional filters (
filters
) - KQL bar mode (
kqlMode
) - Dropzone (each clause is contained in its own
dataProviders
object) - Column headers (
columns
) - Event-specific notes (
eventNotes
)
Name | Type | Description |
---|---|---|
columns | columns[] | The Timeline’scolumns. |
created | Float | The time the Timeline was created, using a 13-digit Epochtimestamp. |
createdBy | String | The user who created the Timeline. |
dataProviders | dataProviders[] | Object containing dropzone queryclauses. |
dataViewId | String | ID of the Timeline’s Data View, for example: "dataViewId":"security-solution-default" . |
dateRange | dateRange | The Timeline’s search period: - end : The time up to which events are searched, using a 13-digit Epoch timestamp.- start : The time from which events are searched, using a 13-digit Epoch timestamp. |
description | String | The Timeline’s description. |
eventNotes | eventNotes[] | Notes added to specific events in the Timeline. |
eventType | String | Event types displayed in the Timeline, which can be: - All data sources - Events : Event sources only- Detection Alerts : Detection alerts only |
favorite | favorite[] | Indicates when and who marked aTimeline as a favorite. |
filters | filters[] | Filters usedin addition to the dropzone query. |
globalNotes | globalNotes[] | Global notes added to the Timeline. |
kqlMode | String | Indicates whether the KQL bar filters the dropzone query results or searches for additional results, where: - filter : filters dropzone query results- search : displays additional search results |
kqlQuery | kqlQuery | KQL barquery. |
pinnedEventIds | pinnedEventIds[] | IDs of events pinned to the Timeline’ssearch results. |
savedObjectId | String | The Timeline’s saved object ID. |
savedQueryId | String | If used, the saved query ID used to filter or searchdropzone query results. |
sort | sort | Object indicating how rows are sorted in the Timeline’s grid: - columnId (string): The ID of the column used to sort results.- sortDirection (string): The sort direction, which can be either desc or asc . |
templateTimelineId | String | A unique ID (UUID) for Timeline templates. For Timelines, the value is null . |
templateTimelineVersion | Integer | Timeline template version number. ForTimelines, the value is null . |
timelineType | String | Indicates whether the Timeline is a template or not, where: - default : Indicates a Timeline used to actively investigate events.- template : Indicates a Timeline template used when detection rule alerts are investigated in Timeline. |
title | String | The Timeline’s title. |
updated | Float | The last time the Timeline was updated, using a13-digit Epoch timestamp. |
updatedBy | String | The user who last updated the Timeline. |
version | String | The Timeline’s version. |
Name | Type | Description |
---|---|---|
aggregatable | Boolean | Indicates whether the field can be aggregated acrossall indices (used to sort columns in the UI). |
category | String | The ECS field set to which the field belongs. |
description | String | UI column field description tooltip. |
example | String | UI column field example tooltip. |
indexes | String | Security indices in which the field exists and has the sameElasticsearch type. null when all the security indices have the field with the sametype. |
id | String | ECS field name, displayed as the column header in the UI. |
type | String | The field’s type. |
Name | Type | Description |
---|---|---|
and | dataProviders[] | Array containing dropzone query clauses using AND logic. |
enabled | Boolean | Indicates if the dropzone query clause is enabled. |
excluded | Boolean | Indicates if the dropzone query clause uses NOT logic. |
id | String | The dropzone query clause’s unique ID. |
name | String | The dropzone query clause’s name (the clause’s valuewhen Timelines are exported from the UI). |
queryMatch | queryMatch | The dropzone query clause: - field (string): The field used to search Security indices.- operator (string): The clause’s operator, which can be:- : - The field has the specified value .- :* - The field exists.- value (string): The field’s value used to match results. |
Name | Type | Description |
---|---|---|
created | Float | The time the note was created, using a 13-digit Epochtimestamp. |
createdBy | String | The user who added the note. |
eventId | String | The ID of the event to which the note was added. |
note | String | The note’s text. |
noteId | String | The note’s ID |
timelineId | String | The ID of the Timeline to which the note was added. |
updated | Float | The last time the note was updated, using a13-digit Epoch timestamp. |
updatedBy | String | The user who last updated the note. |
version | String | The note’s version. |
Name | Type | Description |
---|---|---|
favoriteDate | Float | The time the Timeline was marked as a favorite, using a13-digit Epoch timestamp. |
fullName | String | The full name of the user who marked the Timeline asa favorite. |
keySearch | String | userName encoded in Base64. |
userName | String | The Kibana username of the user who marked theTimeline as a favorite. |
Name | Type | Description |
---|---|---|
exists | String | Exists term query for thespecified field (null when undefined). For example, {"field":"user.name"} . |
meta | meta | Filter details: - alias (string): UI filter name.- disabled (boolean): Indicates if the filter is disabled.- key (string): Field name or unique string ID.- negate (boolean): Indicates if the filter query clause uses NOT logic.- params (string): Value of phrase filter types.- type (string): Type of filter. For example, exists and range . For more information about filtering, see Query DSL. |
match_all | String | Match all term queryfor the specified field (null when undefined). |
query | String | DSL query (null when undefined). Forexample, {"match_phrase":{"ecs.version":"1.4.0"}} . |
range | String | Range query (null whenundefined). For example, {"@timestamp":{"gte":"now-1d","lt":"now"}}" . |
Name | Type | Description |
---|---|---|
created | Float | The time the note was created, using a 13-digit Epochtimestamp. |
createdBy | String | The user who added the note. |
note | String | The note’s text. |
noteId | String | The note’s ID |
timelineId | String | The ID of the Timeline to which the note was added. |
updated | Float | The last time the note was updated, using a13-digit Epoch timestamp. |
updatedBy | String | The user who last updated the note. |
version | String | The note’s version. |
Name | Type | Description |
---|---|---|
filterQuery | filterQuery | Object containing query details: - kuery : Object containing the query’s clauses and type:- expression (string): The query’s clauses.- kind (string): The type of query, which can be kuery or lucene .- serializedQuery (string): The query represented in JSON format. |