[boolean-expression]
Field | Description | Required
:--- | :--- |:---
-`search` | Specifies search keywords. | Yes
-`index` | Specifies which index to query from. | No
+`index` | Specifies the index to query. | No
`bool-expression` | Specifies an expression that evaluates to a Boolean value. | No
## Examples
diff --git a/_search-plugins/ubi/data-structures.md b/_search-plugins/ubi/data-structures.md
new file mode 100644
index 0000000000..0c64c3254b
--- /dev/null
+++ b/_search-plugins/ubi/data-structures.md
@@ -0,0 +1,204 @@
+---
+layout: default
+title: UBI client data structures
+parent: User Behavior Insights
+has_children: false
+nav_order: 10
+---
+
+# UBI client data structures
+
+Data structures are used to create events that follow the [User Behavior Insights (UBI) event schema specification](https://github.com/o19s/ubi).
+For more information about the schema, see [UBI index schemas]({{site.url}}{{site.baseurl}}/search-plugins/ubi/schemas/).
+
+
+You must provide an implementation for the following functions:
+- `getClientId()`
+- `getQueryId()`
+
+You can also optionally provide an implementation for the following functions:
+- `getSessionId()`
+- `getPageId()`
+
+
+The following JavaScript structures can be used as a starter implementation to serialize UBI events into schema-compatible JSON:
+```js
+/*********************************************************************************************
+ * Ubi Event data structures
+ * The following structures help ensure adherence to the UBI event schema
+ *********************************************************************************************/
+
+
+
+export class UbiEventData {
+ constructor(object_type, id=null, description=null, details=null) {
+ this.object_id_field = object_type;
+ this.object_id = id;
+ this.description = description;
+ this.object_detail = details;
+ }
+}
+export class UbiPosition{
+ constructor({ordinal=null, x=null, y=null, trail=null}={}) {
+ this.ordinal = ordinal;
+ this.x = x;
+ this.y = y;
+ if(trail)
+ this.trail = trail;
+ else {
+ const trail = getTrail();
+ if(trail && trail.length > 0)
+ this.trail = trail;
+ }
+ }
+}
+
+
+export class UbiEventAttributes {
+ /**
+ * Tries to prepopulate common event attributes
+ * The developer can add an `object` that the user interacted with and
+ * the site `position` information relevant to the event
+ *
+ * Attributes, other than `object` or `position` can be added in the form:
+ * attributes['item1'] = 1
+ * attributes['item2'] = '2'
+ *
+ * @param {*} attributes: object with general event attributes
+ * @param {*} object: the data object the user interacted with
+ * @param {*} position: the site position information
+ */
+ constructor({attributes={}, object=null, position=null}={}) {
+ if(attributes != null){
+ Object.assign(this, attributes);
+ }
+ if(object != null && Object.keys(object).length > 0){
+ this.object = object;
+ }
+ if(position != null && Object.keys(position).length > 0){
+ this.position = position;
+ }
+ this.setDefaultValues();
+ }
+
+ setDefaultValues(){
+ try{
+ if(!this.hasOwnProperty('dwell_time') && typeof TimeMe !== 'undefined'){
+ this.dwell_time = TimeMe.getTimeOnPageInSeconds(window.location.pathname);
+ }
+
+ if(!this.hasOwnProperty('browser')){
+ this.browser = window.navigator.userAgent;
+ }
+
+ if(!this.hasOwnProperty('page_id')){
+ this.page_id = window.location.pathname;
+ }
+ if(!this.hasOwnProperty('session_id')){
+ this.session_id = getSessionId();
+ }
+
+ if(!this.hasOwnProperty('page_id')){
+ this.page_id = getPageId();
+ }
+
+ if(!this.hasOwnProperty('position') || this.position == null){
+ const trail = getTrail();
+ if(trail.length > 0){
+ this.position = new UbiPosition({trail:trail});
+ }
+ }
+ // ToDo: set IP
+ }
+ catch(error){
+ console.log(error);
+ }
+ }
+}
+
+
+
+export class UbiEvent {
+ constructor(action_name, {message_type='INFO', message=null, event_attributes={}, data_object={}}={}) {
+ this.action_name = action_name;
+ this.client_id = getClientId();
+ this.query_id = getQueryId();
+ this.timestamp = Date.now();
+
+ this.message_type = message_type;
+ if( message )
+ this.message = message;
+
+ this.event_attributes = new UbiEventAttributes({attributes:event_attributes, object:data_object});
+ }
+
+ /**
+ * Use to suppress null objects in the json output
+ * @param key
+ * @param value
+ * @returns
+ */
+ static replacer(key, value){
+ if(value == null ||
+ (value.constructor == Object && Object.keys(value).length === 0)) {
+ return undefined;
+ }
+ return value;
+ }
+
+ /**
+ *
+ * @returns json string
+ */
+ toJson() {
+ return JSON.stringify(this, UbiEvent.replacer);
+ }
+}
+```
+{% include copy.html %}
+
+# Sample usage
+
+```js
+export function logUbiMessage(event_type, message_type, message){
+ let e = new UbiEvent(event_type, {
+ message_type:message_type,
+ message:message
+ });
+ logEvent(e);
+}
+
+export function logDwellTime(action_name, page, seconds){
+ console.log(`${page} => ${seconds}`);
+ let e = new UbiEvent(action_name, {
+ message:`On page ${page} for ${seconds} seconds`,
+ event_attributes:{
+ session_id: getSessionId()},
+ dwell_seconds:seconds
+ },
+ data_object:TimeMe
+ });
+ logEvent(e);
+}
+
+/**
+ * ordinal is the number within a list of results
+ * for the item that was clicked
+ */
+export function logItemClick(item, ordinal){
+ let e = new UbiEvent('item_click', {
+ message:`Item ${item['object_id']} was clicked`,
+ event_attributes:{session_id: getSessionId()},
+ data_object:item,
+ });
+ e.event_attributes.position.ordinal = ordinal;
+ logEvent(e);
+}
+
+export function logEvent( event ){
+ // some configured http client
+ return client.index( index = 'ubi_events', body = event.toJson());
+}
+
+```
+{% include copy.html %}
diff --git a/_search-plugins/ubi/dsl-queries.md b/_search-plugins/ubi/dsl-queries.md
new file mode 100644
index 0000000000..0802680dc9
--- /dev/null
+++ b/_search-plugins/ubi/dsl-queries.md
@@ -0,0 +1,101 @@
+---
+layout: default
+title: Example UBI query DSL queries
+parent: User Behavior Insights
+has_children: false
+nav_order: 15
+---
+
+# Example UBI query DSL queries
+
+You can use the OpenSearch search query language, [query DSL]({{site.url}}{{site.baseurl}}/opensearch/query-dsl/), to write User Behavior Insights (UBI) queries. The following example returns the number of times that each `action_name` event occurs.
+For more extensive analytic queries, see [Example UBI SQL queries]({{site.url}}{{site.baseurl}}/search-plugins/ubi/sql-queries/).
+#### Example request
+```json
+GET ubi_events/_search
+{
+ "size":0,
+ "aggs":{
+ "event_types":{
+ "terms": {
+ "field":"action_name",
+ "size":10
+ }
+ }
+ }
+}
+```
+{% include copy.html %}
+
+#### Example response
+
+```json
+{
+ "took": 1,
+ "timed_out": false,
+ "_shards": {
+ "total": 1,
+ "successful": 1,
+ "skipped": 0,
+ "failed": 0
+ },
+ "hits": {
+ "total": {
+ "value": 10000,
+ "relation": "gte"
+ },
+ "max_score": null,
+ "hits": []
+ },
+ "aggregations": {
+ "event_types": {
+ "doc_count_error_upper_bound": 0,
+ "sum_other_doc_count": 0,
+ "buckets": [
+ {
+ "key": "brand_filter",
+ "doc_count": 3084
+ },
+ {
+ "key": "product_hover",
+ "doc_count": 3068
+ },
+ {
+ "key": "button_click",
+ "doc_count": 3054
+ },
+ {
+ "key": "product_sort",
+ "doc_count": 3012
+ },
+ {
+ "key": "on_search",
+ "doc_count": 3010
+ },
+ {
+ "key": "type_filter",
+ "doc_count": 2925
+ },
+ {
+ "key": "login",
+ "doc_count": 2433
+ },
+ {
+ "key": "logout",
+ "doc_count": 1447
+ },
+ {
+ "key": "new_user_entry",
+ "doc_count": 207
+ }
+ ]
+ }
+ }
+}
+```
+{% include copy.html %}
+
+You can run the preceding queries in the OpenSearch Dashboards [Query Workbench]({{site.url}}{{site.baseurl}}/search-plugins/sql/workbench/).
+
+A demo workbench with sample data can be found here:
+[http://chorus-opensearch-edition.dev.o19s.com:5601/app/OpenSearch-query-workbench](http://chorus-OpenSearch-edition.dev.o19s.com:5601/app/OpenSearch-query-workbench).
diff --git a/_search-plugins/ubi/index.md b/_search-plugins/ubi/index.md
new file mode 100644
index 0000000000..bdf09a632b
--- /dev/null
+++ b/_search-plugins/ubi/index.md
@@ -0,0 +1,50 @@
+---
+layout: default
+title: User Behavior Insights
+has_children: true
+nav_order: 90
+redirect_from:
+ - /search-plugins/ubi/
+---
+# User Behavior Insights
+
+**Introduced 2.15**
+{: .label .label-purple }
+
+**References UBI Specification 1.0.0**
+{: .label .label-purple }
+
+User Behavior Insights (UBI) is a plugin that captures client-side events and queries for the purposes of improving search relevance and the user experience.
+It is a causal system, linking a user's query to all of their subsequent interactions with your application until they perform another search.
+
+UBI includes the following elements:
+* A machine-readable [schema](https://github.com/o19s/ubi) that faciliates interoperablity of the UBI specification.
+* An OpenSearch [plugin](https://github.com/opensearch-project/user-behavior-insights) that facilitates the storage of client-side events and queries.
+* A client-side JavaScript [example reference implementation]({{site.url}}{{site.baseurl}}/search-plugins/ubi/data-structures/) that shows how to capture events and send them to the OpenSearch UBI plugin.
+
+
+
+The UBI documentation is organized into two categories: *Explanation and reference* and *Tutorials and how-to guides*:
+
+*Explanation and reference*
+
+| Link | Description |
+| :--------- | :------- |
+| [UBI Request/Response Specification](https://github.com/o19s/ubi/) | The industry-standard schema for UBI requests and responses. The current version references UBI Specification 1.0.0. |
+| [UBI index schema]({{site.url}}{{site.baseurl}}/search-plugins/ubi/schemas/) | Documentation on the individual OpenSearch query and event stores. |
+
+
+*Tutorials and how-to guides*
+
+| Link | Description |
+| :--------- | :------- |
+| [UBI plugin](https://github.com/opensearch-project/user-behavior-insights) | How to install and use the UBI plugin. |
+| [UBI client data structures]({{site.url}}{{site.baseurl}}/search-plugins/ubi/data-structures/) | Sample JavaScript structures for populating the event store. |
+| [Example UBI query DSL queries]({{site.url}}{{site.baseurl}}/search-plugins/ubi/dsl-queries/) | How to write queries for UBI data in OpenSearch query DSL. |
+| [Example UBI SQL queries]({{site.url}}{{site.baseurl}}/search-plugins/ubi/sql-queries/) | How to write analytic queries for UBI data in SQL. |
+| [UBI dashboard tutorial]({{site.url}}{{site.baseurl}}/search-plugins/ubi/ubi-dashboard-tutorial/) | How to build a dashboard containing UBI data. |
+| [Chorus Opensearch Edition](https://github.com/o19s/chorus-opensearch-edition/?tab=readme-ov-file#structured-learning-using-chorus-opensearch-edition) katas | A series of structured tutorials that teach you how to use UBI with OpenSearch through a demo e-commerce store. |
+
+
+The documentation categories were adapted using concepts based on [Diátaxis](https://diataxis.fr/).
+{: .tip }
diff --git a/_search-plugins/ubi/schemas.md b/_search-plugins/ubi/schemas.md
new file mode 100644
index 0000000000..d8398e43bc
--- /dev/null
+++ b/_search-plugins/ubi/schemas.md
@@ -0,0 +1,223 @@
+---
+layout: default
+title: UBI index schemas
+parent: User Behavior Insights
+has_children: false
+nav_order: 5
+---
+
+# UBI index schemas
+
+The User Behavior Insights (UBI) data collection process involves tracking and recording the queries submitted by users as well as monitoring and logging their subsequent actions or events after receiving the search results. There are two UBI index schemas involved in the data collection process:
+* The [query index](#ubi-queries-index), which stores the searches and results.
+* The [event index](#ubi-events-index), which stores all subsequent user actions after the user's query.
+
+## Key identifiers
+
+For UBI to function properly, the connections between the following fields must be consistently maintained within an application that has UBI enabled:
+
+- [`object_id`](#object_id) represents an ID for whatever object the user receives in response to a query. For example, if you search for books, it might be an ISBN code of a book, such as `978-3-16-148410-0`.
+- [`query_id`](#query_id) is a unique ID for the raw query language executed and the `object_id` values of the _hits_ returned by the user's query.
+- [`client_id`](#client_id) represents a unique query source. This is typically a web browser used by a unique user.
+- [`object_id_field`](#object_id_field) specifies the name of the field in your index that provides the `object_id`. For example, if you search for books, the value might be `isbn_code`.
+- [`action_name`](#action_name), though not technically an ID, specifies the exact user action (such as `click`, `add_to_cart`, `watch`, `view`, or `purchase`) that was taken (or not taken) for an object with a given `object_id`.
+
+To summarize, the `query_id` signals the beginning of a unique search for a client tracked through a `client_id`. The search returns various objects, each with a unique `object_id`. The `action_name` specifies what action the user is performing and is connected to the objects, each with a specific `object_id`. You can differentiate between types of objects by inspecting the `object_id_field`.
+
+Typically, you can infer the user's overall search history by retrieving all the data for the user's `client_id` and inspecting the individual `query_id` data. Each application determines what constitutes a search session by examining the backend data
+
+## Important UBI roles
+
+The following diagram illustrates the process by which the **user** interacts with the **Search client** and **UBI client**
+and how those, in turn, interact with the **OpenSearch cluster**, which houses the **UBI events** and **UBI queries** indexes.
+
+Blue arrows illustrate standard search, bold, dashed lines illustrate UBI-specific additions, and
+red arrows illustrate the flow of the `query_id` to and from OpenSearch.
+
+
+
+
+{% comment %}
+The mermaid source below is converted into a PNG under
+.../images/ubi/ubi-schema-interactions.png
+
+
+```mermaid
+graph LR
+style L fill:none,stroke-dasharray: 5 5
+subgraph L["`*Legend*`"]
+ style ss height:150px
+ subgraph ss["Standard Search"]
+ direction LR
+
+ style ln1a fill:blue
+ ln1a[ ]--->ln1b[ ];
+ end
+ subgraph ubi-leg["UBI data flow"]
+ direction LR
+
+ ln2a[ ].->|"`**UBI interaction**`"|ln2b[ ];
+ style ln1c fill:red
+ ln1c[ ]-->|query_id flow|ln1d[ ];
+ end
+end
+linkStyle 0 stroke-width:2px,stroke:#0A1CCF
+linkStyle 2 stroke-width:2px,stroke:red
+```
+```mermaid
+%%{init: {
+ "flowchart": {"htmlLabels": false},
+
+ }
+}%%
+graph TB
+
+User--1) raw search string-->Search;
+Search--2) search string-->Docs
+style OS stroke-width:2px, stroke:#0A1CCF, fill:#62affb, opacity:.5
+subgraph OS[OpenSearch Cluster fa:fa-database]
+ style E stroke-width:1px,stroke:red
+ E[( UBI Events )]
+ style Docs stroke-width:1px,stroke:#0A1CCF
+ style Q stroke-width:1px,stroke:red
+ Docs[(Document Index)] -."3) {DSL...} & [object_id's,...]".-> Q[( UBI Queries )];
+ Q -.4) query_id.-> Docs ;
+end
+
+Docs -- "5) return both query_id & [objects,...]" --->Search ;
+Search-.6) query_id.->U;
+Search --7) [results, ...]--> User
+
+style *client-side* stroke-width:1px, stroke:#D35400
+subgraph "`*client-side*`"
+ style User stroke-width:4px, stroke:#EC636
+ User["`**User**`" fa:fa-user]
+ App
+ Search
+ U
+ style App fill:#D35400,opacity:.35, stroke:#0A1CCF, stroke-width:2px
+ subgraph App[ UserApp fa:fa-store]
+ style Search stroke-width:2px, stroke:#0A1CCF
+ Search( Search Client )
+ style U stroke-width:1px,stroke:red
+ U( UBI Client )
+ end
+end
+
+User -.8) selects object_id:123.->U;
+U-."9) index event:{query_id, onClick, object_id:123}".->E;
+
+linkStyle 1,2,0,6 stroke-width:2px,fill:none,stroke:#0A1CCF
+linkStyle 3,4,5,8 stroke-width:2px,fill:none,stroke:red
+```
+{% endcomment %}
+Here are some key points regarding the roles:
+- The **Search client** is in charge of searching and then receiving *objects* from an OpenSearch document index (1, 2, **5**, and 7 in the preceding diagram).
+
+Step **5** is in bold because it denotes UBI-specific additions, like `query_id`, to standard OpenSearch interactions.
+ {: .note}
+- If activated in the `ext.ubi` stanza of the search request, the **User Behavior Insights** plugin manages the **UBI queries** store in the background, indexing each query, ensuring a unique `query_id` for all returned `object_id` values, and then passing the `query_id` back to the **Search client** so that events can be linked to the query (3, 4, and **5** in preceding diagram).
+- **Objects** represent the items that the user searches for using the queries. Activating UBI involves mapping your real-world objects (using their identifiers, such as an `isbn` or `sku`) to the `object_id` fields in the index that is searched.
+- The **Search client**, if separate from the **UBI client**, forwards the indexed `query_id` to the **UBI client**.
+ Even though the *search* and *UBI event indexing* roles are separate in this diagram, many implementations can use the same OpenSearch client instance for both roles (6 in the preceding diagram).
+- The **UBI client** then indexes all user events with the specified `query_id` until a new search is performed. At this time, a new `query_id` is generated by the **User Behavior Insights** plugin and passed back to the **UBI client**.
+- If the **UBI client** interacts with a result **object**, such as during an **add to cart** event, then the `object_id`, `add_to_cart` `action_name`, and `query_id` are all indexed together, signaling the causal link between the *search* and the *object* (8 and 9 in the preceding diagram).
+
+
+
+## UBI stores
+
+There are two separate stores involved in supporting UBI data collection:
+* UBI queries
+* UBI events
+
+### UBI queries index
+
+All underlying query information and results (`object_ids`) are stored in the `ubi_queries` index and remain largely invisible in the background.
+
+
+The `ubi_queries` index [schema](https://github.com/OpenSearch-project/user-behavior-insights/tree/main/src/main/resources/queries-mapping.json) includes the following fields:
+
+- `timestamp` (events and queries): A UNIX timestamp indicating when the query was received.
+
+- `query_id` (events and queries): The unique ID of the query provided by the client or generated automatically. Different queries with the same text generate different `query_id` values.
+
+- `client_id` (events and queries): A user/client ID provided by the client application.
+
+- `query_response_objects_ids` (queries): An array of object IDs. An ID can have the same value as the `_id`, but it is meant to be the externally valid ID of a document, item, or product.
+
+Because UBI manages the `ubi_queries` index, you should never have to write directly to this index (except when importing data).
+
+### UBI events index
+
+The client side directly indexes events to the `ubi_events` index, linking the event [`action_name`](#action_name), objects (each with an `object_id`), and queries (each with a `query_id`), along with any other important event information.
+Because this schema is dynamic, you can add any new fields or structures (such as user information or geolocation information) that are not in the current **UBI events** [schema](https://github.com/opensearch-project/user-behavior-insights/tree/main/src/main/resources/events-mapping.json) at index time.
+
+Developers may define new fields under [`event_attributes`](#event_attributes).
+{: .note}
+
+The following are the predefined, minimal fields in the `ubi_events` index:
+
+
+
+- `application` (size 100): The name of the application that tracks UBI events (for example, `amazon-shop` or `ABC-microservice`).
+
+
+
+- `action_name` (size 100): The name of the action that triggered the event. The UBI specification defines some common action names, but you can use any name.
+
+
+
+- `query_id` (size 100): The unique identifier of a query, which is typically a UUID but can be any string.
+ The `query_id` is either provided by the client or generated at index time by the UBI plugin. The `query_id` values in both the **UBI queries** and **UBI events** indexes must be consistent.
+
+
+
+- `client_id`: The client that issues the query. This is typically a web browser used by a unique user.
+ The `client_id` in both the **UBI queries** and **UBI events** indexes must be consistent.
+
+- `timestamp`: When the event occurred, either in UNIX format or formatted as `2018-11-13T20:20:39+00:00`.
+
+- `message_type` (size 100): A logical bin for grouping actions (each with an `action_name`). For example, `QUERY` or `CONVERSION`.
+
+- `message` (size 1,024): An optional text message for the log entry. For example, for a `message_type` `QUERY`, the `message` can contain the text related to a user's search.
+
+
+
+- `event_attributes`: An extensible structure that describes important context about the event. This structure consists of two primary structures: `position` and `object`. The structure is extensible, so you can add custom information about the event, such as the event's timing, user, or session.
+
+ Because the `ubi_events` index is configured to perform dynamic mapping, the index can become bloated with many new fields.
+ {: .warning}
+
+ - `event_attributes.position`: A structure that contains information about the location of the event origin, such as screen x, y coordinates, or the object's position in the list of results:
+
+ - `event_attributes.position.ordinal`: Tracks the list position that a user can select (for example, selecting the third element can be described as `event{onClick, results[4]}`).
+
+ - `event_attributes.position.{x,y}`: Tracks x and y values defined by the client.
+
+ - `event_attributes.position.page_depth`: Tracks the page depth of the results.
+
+ - `event_attributes.position.scroll_depth`: Tracks the scroll depth of the page results.
+
+ - `event_attributes.position.trail`: A text field that tracks the path/trail that a user took to get to this location.
+
+ - `event_attributes.object`: Contains identifying information about the object returned by the query (for example, a book, product, or post).
+ The `object` structure can refer to the object by internal ID or object ID. The `object_id` is the ID that links prior queries to this object. This field comprises the following subfields:
+
+ - `event_attributes.object.internal_id`: A unique ID that OpenSearch can use to internally index the object, for example, the `_id` field in the indexes.
+
+
+
+ - `event_attributes.object.object_id`: An ID by which a user can find the object instance in the **document corpus**. Examples include `ssn`, `isbn`, or `ean`. Variants need to be incorporated in the `object_id`, so a red T-shirt's `object_id` should be its SKU.
+ Initializing UBI requires mapping the document index's primary key to this `object_id`.
+
+
+
+
+ - `event_attributes.object.object_id_field`: Indicates the type/class of the object and the name of the search index field that contains the `object_id`.
+
+ - `event_attributes.object.description`: An optional description of the object.
+
+ - `event_attributes.object.object_detail`: Optional additional information about the object.
+
+ - *extensible fields*: Be aware that any new indexed fields in the `object` will dynamically expand this schema.
diff --git a/_search-plugins/ubi/sql-queries.md b/_search-plugins/ubi/sql-queries.md
new file mode 100644
index 0000000000..517c81e1d6
--- /dev/null
+++ b/_search-plugins/ubi/sql-queries.md
@@ -0,0 +1,388 @@
+---
+layout: default
+title: Sample UBI SQL queries
+parent: User Behavior Insights
+has_children: false
+nav_order: 20
+---
+
+# Sample UBI SQL queries
+
+You can run sample User Behavior Insights (UBI) SQL queries in the OpenSearch Dashboards [Query Workbench]({{site.url}}{{site.baseurl}}/dashboards/query-workbench/).
+
+To query a demo workbench with synthetic data, see
+[http://chorus-opensearch-edition.dev.o19s.com:5601/app/opensearch-query-workbench](http://chorus-opensearch-edition.dev.o19s.com:5601/app/opensearch-query-workbench).
+
+## Queries with zero results
+
+Queries can be executed on events on either the server (`ubi_queries`) or client (`ubi_events`) side.
+
+### Server-side queries
+
+The UBI-activated search server logs the queries and their results, so in order to find all queries with *no* results, search for empty `query_response_hit_ids`:
+
+```sql
+select
+ count(*)
+from ubi_queries
+where query_response_hit_ids is null
+
+```
+
+### Client-side events
+
+Although it's relatively straightforward to find queries with no results on the server side, you can also get the same result by querying the *event attributes* that were logged on the client side.
+Both client- and server-side queries return the same results. Use the following query to search for queries with no results:
+
+```sql
+select
+ count(0)
+from ubi_events
+where event_attributes.result_count > 0
+```
+
+
+
+
+## Trending queries
+
+Trending queries can be found by using either of the following queries.
+
+### Server-side
+
+```sql
+select
+ user_query, count(0) Total
+from ubi_queries
+group by user_query
+order by Total desc
+```
+
+### Client-side
+
+```sql
+select
+ message, count(0) Total
+from ubi_events
+where
+ action_name='on_search'
+group by message
+order by Total desc
+```
+
+Both queries return the distribution of search strings, as shown in the following table.
+
+Message|Total
+|---|---|
+User Behavior Insights|127
+best Laptop|78
+camera|21
+backpack|17
+briefcase|14
+camcorder|11
+cabinet|9
+bed|9
+box|8
+bottle|8
+calculator|8
+armchair|7
+bench|7
+blackberry|6
+bathroom|6
+User Behavior Insights Mac|5
+best Laptop Dell|5
+User Behavior Insights VTech|5
+ayoolaolafenwa|5
+User Behavior Insights Dell|4
+best Laptop Vaddio|4
+agrega modelos intuitivas|4
+bеуоnd|4
+abraza metodologías B2C|3
+
+
+
+## Event type distribution counts
+
+To create a pie chart widget visualizing the most common events, run the following query:
+
+```sql
+select
+ action_name, count(0) Total
+from ubi_events
+group by action_name
+order by Total desc
+```
+
+The results include a distribution across actions, as shown in the following table.
+
+action_name|Total
+|---|---|
+on_search|5425
+brand_filter|3634
+global_click|3571
+view_search_results|3565
+product_sort|3558
+type_filter|3505
+product_hover|820
+item_click|708
+purchase|407
+declined_product|402
+add_to_cart|373
+page_exit|142
+user_feedback|123
+404_redirect|123
+
+The following query shows the distribution of margins across user actions:
+
+
+```sql
+select
+ action_name,
+ count(0) total,
+ AVG( event_attributes.object.object_detail.cost ) average_cost,
+ AVG( event_attributes.object.object_detail.margin ) average_margin
+from ubi_events
+group by action_name
+order by average_cost desc
+```
+
+The results include actions and the distribution across average costs and margins, as shown in the following table.
+
+action_name|total|average_cost|average_margin
+---|---|---|---
+declined_product|395|8457.12|6190.96
+item_click|690|7789.40|5862.70
+add_to_cart|374|6470.22|4617.09
+purchase|358|5933.83|5110.69
+global_click|3555||
+product_sort|3711||
+product_hover|779||
+page_exit|107||
+on_search|5438||
+brand_filter|3722||
+user_feedback|120||
+404_redirect|110||
+view_search_results|3639||
+type_filter|3691||
+
+## Sample search journey
+
+To find a search in the query log, run the following query:
+
+```sql
+select
+ client_id, query_id, user_query, query_response_hit_ids, query_response_id, timestamp
+from ubi_queries where query_id = '7ae52966-4fd4-4ab1-8152-0fd0b52bdadf'
+```
+
+The following table shows the results of the preceding query.
+
+client_id|query_id|user_query|query_response_hit_ids|query_response_id|timestamp
+---|---|---|---|---|---
+a15f1ef3-6bc6-4959-9b83-6699a4d29845|7ae52966-4fd4-4ab1-8152-0fd0b52bdadf|notebook|0882780391659|6e92c90c-1eee-4dd6-b820-c522fd4126f3|2024-06-04 19:02:45.728
+
+The `query` field in `query_id` has the following nested structure:
+
+```json
+{
+ "query": {
+ "size": 25,
+ "query": {
+ "query_string": {
+ "query": "(title:\"notebook\" OR attr_t_device_type:\"notebook\" OR name:\"notebook\")",
+ "fields": [],
+ "type": "best_fields",
+ "default_operator": "or",
+ "max_determinized_states": 10000,
+ "enable_position_increments": true,
+ "fuzziness": "AUTO",
+ "fuzzy_prefix_length": 0,
+ "fuzzy_max_expansions": 50,
+ "phrase_slop": 0,
+ "analyze_wildcard": false,
+ "escape": false,
+ "auto_generate_synonyms_phrase_query": true,
+ "fuzzy_transpositions": true,
+ "boost": 1.0
+ }
+ },
+ "ext": {
+ "query_id": "7ae52966-4fd4-4ab1-8152-0fd0b52bdadf",
+ "user_query": "notebook",
+ "client_id": "a15f1ef3-6bc6-4959-9b83-6699a4d29845",
+ "object_id_field": "primary_ean",
+ "query_attributes": {
+ "application": "ubi-demo"
+ }
+ }
+ }
+}
+```
+
+In the event log, `ubi_events`, search for the events that correspond to the preceding query (whose query ID is `7ae52966-4fd4-4ab1-8152-0fd0b52bdadf`):
+
+```sql
+select
+ application, query_id, action_name, message_type, message, client_id, timestamp
+from ubi_events
+where query_id = '7ae52966-4fd4-4ab1-8152-0fd0b52bdadf'
+order by timestamp
+```
+
+
+
+The results include all events associated with the user's query, as shown in the following table.
+
+application|query_id|action_name|message_type|message|client_id|timestamp
+---|---|---|---|---|---|---
+ubi-demo|7ae52966-4fd4-4ab1-8152-0fd0b52bdadf|on_search|QUERY|notebook|a15f1ef3-6bc6-4959-9b83-6699a4d29845|2024-06-04 19:02:45.777
+ubi-demo|7ae52966-4fd4-4ab1-8152-0fd0b52bdadf|product_hover|INFO|orquesta soluciones uno-a-uno|a15f1ef3-6bc6-4959-9b83-6699a4d29845|2024-06-04 19:02:45.816
+ubi-demo|7ae52966-4fd4-4ab1-8152-0fd0b52bdadf|item_click|INFO|innova relaciones centrado al usuario|a15f1ef3-6bc6-4959-9b83-6699a4d29845|2024-06-04 19:02:45.86
+ubi-demo|7ae52966-4fd4-4ab1-8152-0fd0b52bdadf|add_to_cart|CONVERSION|engineer B2B platforms|a15f1ef3-6bc6-4959-9b83-6699a4d29845|2024-06-04 19:02:45.905
+ubi-demo|7ae52966-4fd4-4ab1-8152-0fd0b52bdadf|purchase|CONVERSION|Purchase item 0884420136132|a15f1ef3-6bc6-4959-9b83-6699a4d29845|2024-06-04 19:02:45.913
+
+
+
+
+## User sessions
+
+To find more of the same user's sessions (with the client ID `a15f1ef3-6bc6-4959-9b83-6699a4d29845`), run the following query:
+
+```sql
+select
+ application, event_attributes.session_id, query_id,
+ action_name, message_type, event_attributes.dwell_time,
+ event_attributes.object.object_id,
+ event_attributes.object.description,
+ timestamp
+from ubi_events
+where client_id = 'a15f1ef3-6bc6-4959-9b83-6699a4d29845'
+order by query_id, timestamp
+```
+
+The results are truncated to show a sample of sessions, as shown in the following table.
+
+
+application|event_attributes.session_id|query_id|action_name|message_type|event_attributes.dwell_time|event_attributes.object.object_id|event_attributes.object.description|timestamp
+---|---|---|---|---|---|---|---|---
+ubi-demo|00731779-e290-4709-8af7-d495ae42bf48|0254a9b7-1d83-4083-aa46-e12dff86ec98|on_search|QUERY|46.6398|||2024-06-04 19:06:36.239
+ubi-demo|00731779-e290-4709-8af7-d495ae42bf48|0254a9b7-1d83-4083-aa46-e12dff86ec98|product_hover|INFO|53.681877|0065030834155|USB 2.0 S-Video and Composite Video Capture Cable|2024-06-04 19:06:36.284
+ubi-demo|00731779-e290-4709-8af7-d495ae42bf48|0254a9b7-1d83-4083-aa46-e12dff86ec98|item_click|INFO|40.699997|0065030834155|USB 2.0 S-Video and Composite Video Capture Cable|2024-06-04 19:06:36.334
+ubi-demo|00731779-e290-4709-8af7-d495ae42bf48|0254a9b7-1d83-4083-aa46-e12dff86ec98|declined_product|REJECT|5.0539055|0065030834155|USB 2.0 S-Video and Composite Video Capture Cable|2024-06-04 19:06:36.373
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|on_search|QUERY|26.422775|||2024-06-04 19:04:40.832
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|on_search|QUERY|17.1094|||2024-06-04 19:04:40.837
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|brand_filter|FILTER|40.090374|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:04:40.852
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|type_filter|INFO|37.658962|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:04:40.856
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|product_sort|SORT|3.6380951|||2024-06-04 19:04:40.923
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|view_search_results|INFO|46.436115|||2024-06-04 19:04:40.942
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|view_search_results|INFO|46.436115|||2024-06-04 19:04:40.959
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|type_filter|INFO|37.658962|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:04:40.972
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|brand_filter|FILTER|40.090374|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:04:40.997
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|type_filter|INFO|37.658962|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:04:41.006
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|product_sort|SORT|3.6380951|||2024-06-04 19:04:41.031
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|product_sort|SORT|3.6380951|||2024-06-04 19:04:41.091
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|type_filter|INFO|37.658962|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:04:41.164
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|brand_filter|FILTER|40.090374|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:04:41.171
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|view_search_results|INFO|46.436115|||2024-06-04 19:04:41.179
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|global_click|INFO|42.45651|OBJECT-d350cc2d-b979-4aca-bd73-71709832940f|(96, 127)|2024-06-04 19:04:41.224
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|view_search_results|INFO|46.436115|||2024-06-04 19:04:41.24
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|view_search_results|INFO|46.436115|||2024-06-04 19:04:41.285
+ubi-demo|844ca4b5-b6f8-4f7b-a5ec-7f6d95788e0b|0cf185be-91a8-49cf-9401-92ad079ce43b|global_click|INFO|42.45651|OBJECT-d350cc2d-b979-4aca-bd73-71709832940f|(96, 127)|2024-06-04 19:04:41.328
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|on_search|QUERY|52.721157|||2024-06-04 19:03:50.8
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|view_search_results|INFO|26.600422|||2024-06-04 19:03:50.802
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|product_sort|SORT|14.839713|||2024-06-04 19:03:50.875
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|brand_filter|FILTER|20.876852|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:03:50.927
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|type_filter|INFO|15.212905|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:03:50.997
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|view_search_results|INFO|26.600422|||2024-06-04 19:03:51.033
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|global_click|INFO|11.710514|OBJECT-d350cc2d-b979-4aca-bd73-71709832940f|(96, 127)|2024-06-04 19:03:51.108
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|product_sort|SORT|14.839713|||2024-06-04 19:03:51.144
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|global_click|INFO|11.710514|OBJECT-d350cc2d-b979-4aca-bd73-71709832940f|(96, 127)|2024-06-04 19:03:51.17
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|brand_filter|FILTER|20.876852|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:03:51.205
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|type_filter|INFO|15.212905|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:03:51.228
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|product_sort|SORT|14.839713|||2024-06-04 19:03:51.232
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|type_filter|INFO|15.212905|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:03:51.292
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|2071e273-513f-46be-b835-89f452095053|type_filter|INFO|15.212905|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:03:51.301
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|23f0149a-13ae-4977-8dc9-ef61c449c140|on_search|QUERY|16.93674|||2024-06-04 19:03:50.62
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|23f0149a-13ae-4977-8dc9-ef61c449c140|global_click|INFO|25.897957|OBJECT-d350cc2d-b979-4aca-bd73-71709832940f|(96, 127)|2024-06-04 19:03:50.624
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|23f0149a-13ae-4977-8dc9-ef61c449c140|product_sort|SORT|44.345097|||2024-06-04 19:03:50.688
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|23f0149a-13ae-4977-8dc9-ef61c449c140|brand_filter|FILTER|19.54417|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:03:50.696
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|23f0149a-13ae-4977-8dc9-ef61c449c140|type_filter|INFO|48.79312|OBJECT-32d9bb39-b17d-4611-82c1-5aaa14368060|filter_product_type|2024-06-04 19:03:50.74
+ubi-demo|33bd0ee2-60b7-4c25-b62c-1aa1580da73c|23f0149a-13ae-4977-8dc9-ef61c449c140|brand_filter|FILTER|19.54417|OBJECT-6c91da98-387b-45cb-8275-e90d1ea8bc54|supplier_name|2024-06-04 19:03:50.802
+
+
+## List user sessions for users who logged out without submitting any queries
+
+The following query searches for users who don't have an associated `query_id`. Note that this may happen if the client side does not pass the returned query to other events.
+
+```sql
+select
+ client_id, session_id, count(0) EventTotal
+from ubi_events
+where action_name='logout' and query_id is null
+group by client_id, session_id
+order by EventTotal desc
+```
+
+
+
+The following table shows the client ID, session ID, and that there was 1 event,`logout`.
+
+client_id|session_id|EventTotal
+---|---|---
+100_15c182f2-05db-4f4f-814f-46dc0de6b9ea|1c36712c-44b8-4fdd-8f0d-fdfeab5bd794_1290|1
+175_e5f262f1-0db3-4948-b349-c5b95ff31259|816f94d6-8966-4a8b-8984-a2641d5865b2_2251|1
+175_e5f262f1-0db3-4948-b349-c5b95ff31259|314dc1ff-ef38-4da4-b4b1-061f62dddcbb_2248|1
+175_e5f262f1-0db3-4948-b349-c5b95ff31259|1ce5dc30-31bb-4759-9451-5a99b28ba91b_2255|1
+175_e5f262f1-0db3-4948-b349-c5b95ff31259|10ac0fc0-409e-4ba0-98e9-edb323556b1a_2249|1
+174_ab59e589-1ae4-40be-8b29-8efd9fc15380|dfa8b38a-c451-4190-a391-2e1ec3c8f196_2228|1
+174_ab59e589-1ae4-40be-8b29-8efd9fc15380|68666e11-087a-4978-9ca7-cbac6862273e_2233|1
+174_ab59e589-1ae4-40be-8b29-8efd9fc15380|5ca7a0df-f750-4656-b9a5-5eef1466ba09_2234|1
+174_ab59e589-1ae4-40be-8b29-8efd9fc15380|228c1135-b921-45f4-b087-b3422e7ed437_2236|1
+173_39d4cbfd-0666-4e77-84a9-965ed785db49|f9795e2e-ad92-4f15-8cdd-706aa1a3a17b_2206|1
+173_39d4cbfd-0666-4e77-84a9-965ed785db49|f3c18b61-2c8a-41b3-a023-11eb2dd6c93c_2207|1
+173_39d4cbfd-0666-4e77-84a9-965ed785db49|e12f700c-ffa3-4681-90d9-146022e26a18_2210|1
+173_39d4cbfd-0666-4e77-84a9-965ed785db49|da1ff1f6-26f1-49d4-bd0d-d32d199e270e_2208|1
+173_39d4cbfd-0666-4e77-84a9-965ed785db49|a1674e9d-d2dd-4da9-a4d1-dd12a401e8e7_2216|1
+172_875f04d6-2c35-45f4-a8ac-bc5b675425f6|cc8e6174-5c1a-48c5-8ee8-1226621fe9f7_2203|1
+171_7d810730-d6e9-4079-ab1c-db7f98776985|927fcfed-61d2-4334-91e9-77442b077764_2189|1
+16_581fe410-338e-457b-a790-85af2a642356|83a68f57-0fbb-4414-852b-4c4601bf6cf2_156|1
+16_581fe410-338e-457b-a790-85af2a642356|7881141b-511b-4df9-80e6-5450415af42c_162|1
+16_581fe410-338e-457b-a790-85af2a642356|1d64478e-c3a6-4148-9a64-b6f4a73fc684_158|1
+
+
+
+You may want to identify users who logged out multiple times without submitting a query. The following query lets you see which users do this the most:
+
+```sql
+select
+ client_id, count(0) EventTotal
+from ubi_events
+where action_name='logout' and query_id is null
+group by client_id
+order by EventTotal desc
+```
+
+The following table shows user client IDs and the number of logouts without any queries.
+
+client_id|EventTotal
+---|---
+87_5a6e1f8c-4936-4184-a24d-beddd05c9274|8
+127_829a4246-930a-4b24-8165-caa07ee3fa47|7
+49_5da537a3-8d94-48d1-a0a4-dcad21c12615|6
+56_6c7c2525-9ca5-4d5d-8ac0-acb43769ac0b|6
+140_61192c8e-c532-4164-ad1b-1afc58c265b7|6
+149_3443895e-6f81-4706-8141-1ebb0c2470ca|6
+196_4359f588-10be-4b2c-9e7f-ee846a75a3f6|6
+173_39d4cbfd-0666-4e77-84a9-965ed785db49|5
+52_778ac7f3-8e60-444e-ad40-d24516bf4ce2|5
+51_6335e0c3-7bea-4698-9f83-25c9fb984e12|5
+175_e5f262f1-0db3-4948-b349-c5b95ff31259|5
+61_feb3a495-c1fb-40ea-8331-81cee53a5eb9|5
+181_f227264f-cabd-4468-bfcc-4801baeebd39|5
+185_435d1c63-4829-45f3-abff-352ef6458f0e|5
+100_15c182f2-05db-4f4f-814f-46dc0de6b9ea|5
+113_df32ed6e-d74a-4956-ac8e-6d43d8d60317|5
+151_0808111d-07ce-4c84-a0fd-7125e4e33020|5
+204_b75e374c-4813-49c4-b111-4bf4fdab6f26|5
+29_ec2133e5-4d9b-4222-aa7c-2a9ae0880ddd|5
+41_f64abc69-56ea-4dd3-a991-7d1fd292a530|5
diff --git a/_search-plugins/ubi/ubi-dashboard-tutorial.md b/_search-plugins/ubi/ubi-dashboard-tutorial.md
new file mode 100644
index 0000000000..ac6cd72186
--- /dev/null
+++ b/_search-plugins/ubi/ubi-dashboard-tutorial.md
@@ -0,0 +1,94 @@
+---
+layout: default
+title: UBI dashboard tutorial
+parent: User Behavior Insights
+has_children: false
+nav_order: 25
+---
+
+
+# UBI dashboard tutorial
+
+Whether you've been collecting user events and queries for a while or [you've uploaded some sample events](https://github.com/o19s/chorus-OpenSearch-edition/blob/main/katas/003_import_preexisting_event_data.md), you're now ready to visualize the data collected through User Behavior Insights (UBI) in a dashboard in OpenSearch.
+
+To quickly view a dashboard without completing the full tutorial, do the following:
+1. Download and save the [sample UBI dashboard]({{site.url}}{{site.baseurl}}/assets/examples/ubi-dashboard.ndjson).
+1. On the top menu, go to **Management > Dashboard Management**.
+1. In the **Dashboards** panel, choose **Saved objects**.
+1. In the upper-right corner, select **Import**.
+1. In the **Select file** panel, choose **Import**.
+1. Select the UBI dashboard file that you downloaded and select the **Import** button.
+
+## 1. Start OpenSearch Dashboards
+
+Start OpenSearch Dashboards. For example, go to `http://{server}:5601/app/home#/`. For more information, see [OpenSearch Dashboards]({{site.url}}{{site.baseurl}}/dashboards/). The following image shows the home page.
+![Dashboard Home]({{site.url}}{{site.baseurl}}/images/ubi/home.png "Dashboards")
+
+## 2. Create an index pattern
+
+In OpenSearch Management, navigate to **Dashboards Management > Index patterns** or navigate using a URL, such as `http://{server}:5601/app/management/OpenSearch-dashboards/indexPatterns`.
+
+OpenSearch Dashboards accesses your indexes using index patterns. To visualize your users' online search behavior, you must create an index pattern in order to access the indexes that UBI creates. For more information, see [Index patterns]({{site.url}}{{site.baseurl}}/dashboards/management/index-patterns/).
+
+After you select **Create index pattern**, a list of indexes in your OpenSearch instance is displayed. The UBI stores may be hidden by default, so make sure to select **Include system and hidden indexes**, as shown in the following image.
+![Index Patterns]({{site.url}}{{site.baseurl}}/images/ubi/index_pattern2.png "Index Patterns")
+
+You can group indexes into the same data source for your dashboard using wildcards. For this tutorial you'll combine the query and event stores into the `ubi_*` pattern.
+
+OpenSearch Dashboards prompts you to filter on any `date` field in your schema so that you can look at things like trending queries over the last 15 minutes. However, for your first dashboard, select **I don't want to use the time filter**, as shown in the following image.
+
+
+
+After selecting **Create index pattern**, you're ready to start building a dashboard that displays the UBI store data.
+
+## 3. Create a new dashboard
+
+To create a new dashboard, on the top menu, select **OpenSearch Dashboards > Dashboards** and then **Create > Dashboard** > **Create new**.
+If you haven't previously created a dashboard, you are presented with the option to create a new dashboard. Otherwise, previously created dashboards are displayed.
+
+
+In the **New Visualization** window, select **Pie** to create a new pie chart. Then select the index pattern you created in step 2.
+
+Most visualizations require some sort of aggregate function on a bucket/facet/aggregatable field (numeric or keyword). You'll add a `Terms` aggregation to the `action_name` field so that you can view the distribution of event names. Change the **Size** to the number of slices you want to display, as shown in the following image.
+![Pie Chart]({{site.url}}{{site.baseurl}}/images/ubi/pie.png "Pie Chart")
+
+Save the visualization so that it's added to your new dashboard. Now that you have a visualization displayed on your dashboard, you can save the dashboard.
+
+## 4. Add a tag cloud visualization
+
+Now you'll add a word cloud for trending searches by creating a new visualization, similarly to the previous step.
+
+In the **New Visualization** window, select **Tag Cloud**, and then select the index pattern you created in step 2. Choose the tag cloud visualization of the terms in the `message` field where the JavaScript client logs the raw search text. Note: The true query, as processed by OpenSearch with filters, boosting, and so on, resides in the `ubi_queries` index. However, you'll view the `message` field of the `ubi_events` index, where the JavaScript client captures the text that the user actually typed.
+
+The following image shows the tag cloud visualization on the `message` field.
+![Word Cloud]({{site.url}}{{site.baseurl}}/images/ubi/tag_cloud1.png "Word Cloud")
+
+The underlying queries can be found at [SQL trending queries]({{site.url}}{{site.baseurl}}/search-plugins/ubi/sql-queries/#trending-queries).
+{: .note}
+
+
+The resulting visualization may contain different information than you're looking for. The `message` field is updated with every event, and as a result, it can contain error messages, debug messages, click information, and other unwanted data.
+To view only search terms for query events, you need to add a filter to your visualization. Because during setup you provided a `message_type` of `QUERY` for each search event, you can filter by that message type to isolate the specific users' searches. To do this, select **Add filter** and then select **QUERY** in the **Edit filter** panel, as shown in the following image.
+![Word Cloud]({{site.url}}{{site.baseurl}}/images/ubi/tag_cloud2.png "Word Cloud")
+
+There should now be two visualizations (the pie chart and the tag cloud) displayed on your dashboard, as shown in the following image.
+![UBI Dashboard]({{site.url}}{{site.baseurl}}/images/ubi/dashboard2.png "UBI Dashboard")
+
+## 5. Add a histogram of item clicks
+
+Now you'll add a histogram visualization to your dashboard, similarly to the previous step. In the **New Visualization** window, select **Vertical Bar**. Then select the index pattern you created in step 2.
+
+Examine the `event_attributes.position.ordinal` data field. This field contains the position of the item in a list selected by the user. For the histogram visualization, the x-axis represents the ordinal number of the selected item (n). The y-axis represents the number of times that the nth item was clicked, as shown in the following image.
+
+![Vertical Bar Chart]({{site.url}}{{site.baseurl}}/images/ubi/histogram.png "Vertical Bar Chart")
+
+## 6) Filter the displayed data
+
+Now you can further filter the displayed data. For example, you can see how the click position changes when a purchase occurs. Select **Add filter** and then select the `action_name:product_purchase` field, as shown in the following image.
+![Product Purchase]({{site.url}}{{site.baseurl}}/images/ubi/product_purchase.png "Product Purchase")
+
+
+You can filter event messages containing the word `*laptop*` by adding wildcards, as shown in the following image.
+![Laptop]({{site.url}}{{site.baseurl}}/images/ubi/laptop.png "Laptop").
+
+
diff --git a/_search-plugins/vector-search.md b/_search-plugins/vector-search.md
new file mode 100644
index 0000000000..862b26b375
--- /dev/null
+++ b/_search-plugins/vector-search.md
@@ -0,0 +1,283 @@
+---
+layout: default
+title: Vector search
+nav_order: 22
+has_children: false
+has_toc: false
+---
+
+# Vector search
+
+OpenSearch is a comprehensive search platform that supports a variety of data types, including vectors. OpenSearch vector database functionality is seamlessly integrated with its generic database function.
+
+In OpenSearch, you can generate vector embeddings, store those embeddings in an index, and use them for vector search. Choose one of the following options:
+
+- Generate embeddings using a library of your choice before ingesting them into OpenSearch. Once you ingest vectors into an index, you can perform a vector similarity search on the vector space. For more information, see [Working with embeddings generated outside of OpenSearch](#working-with-embeddings-generated-outside-of-opensearch).
+- Automatically generate embeddings within OpenSearch. To use embeddings for semantic search, the ingested text (the corpus) and the query need to be embedded using the same model. [Neural search]({{site.url}}{{site.baseurl}}/search-plugins/neural-search/) packages this functionality, eliminating the need to manage the internal details. For more information, see [Generating vector embeddings within OpenSearch](#generating-vector-embeddings-in-opensearch).
+
+## Working with embeddings generated outside of OpenSearch
+
+After you generate vector embeddings, upload them to an OpenSearch index and search the index using vector search. For a complete example, see [Example](#example).
+
+### k-NN index
+
+To build a vector database and use vector search, you must specify your index as a [k-NN index]({{site.url}}{{site.baseurl}}/search-plugins/knn/knn-index/) when creating it by setting `index.knn` to `true`:
+
+```json
+PUT test-index
+{
+ "settings": {
+ "index": {
+ "knn": true,
+ "knn.algo_param.ef_search": 100
+ }
+ },
+ "mappings": {
+ "properties": {
+ "my_vector1": {
+ "type": "knn_vector",
+ "dimension": 1024,
+ "method": {
+ "name": "hnsw",
+ "space_type": "l2",
+ "engine": "nmslib",
+ "parameters": {
+ "ef_construction": 128,
+ "m": 24
+ }
+ }
+ }
+ }
+ }
+}
+```
+{% include copy-curl.html %}
+
+### k-NN vector
+
+You must designate the field that will store vectors as a [`knn_vector`]({{site.url}}{{site.baseurl}}/field-types/supported-field-types/knn-vector/) field type. OpenSearch supports vectors of up to 16,000 dimensions, each of which is represented as a 32-bit or 16-bit float.
+
+To save storage space, you can use `byte` vectors. For more information, see [Lucene byte vector]({{site.url}}{{site.baseurl}}/field-types/supported-field-types/knn-vector#lucene-byte-vector).
+
+### k-NN vector search
+
+Vector search finds the vectors in your database that are most similar to the query vector. OpenSearch supports the following search methods:
+
+- [Approximate search](#approximate-search) (approximate k-NN, or ANN): Returns approximate nearest neighbors to the query vector. Usually, approximate search algorithms sacrifice indexing speed and search accuracy in exchange for performance benefits such as lower latency, smaller memory footprints, and more scalable search. For most use cases, approximate search is the best option.
+
+- Exact search (exact k-NN): A brute-force, exact k-NN search of vector fields. OpenSearch supports the following types of exact search:
+ - [Exact k-NN with scoring script]({{site.url}}{{site.baseurl}}/search-plugins/knn/knn-score-script/): Using the k-NN scoring script, you can apply a filter to an index before executing the nearest neighbor search.
+ - [Painless extensions]({{site.url}}{{site.baseurl}}/search-plugins/knn/painless-functions/): Adds the distance functions as Painless extensions that you can use in more complex combinations. You can use this method to perform a brute-force, exact k-NN search of an index, which also supports pre-filtering.
+
+### Approximate search
+
+OpenSearch supports several algorithms for approximate vector search, each with its own advantages. For complete documentation, see [Approximate search]({{site.url}}{{site.baseurl}}/search-plugins/knn/approximate-knn/). For more information about the search methods and engines, see [Method definitions]({{site.url}}{{site.baseurl}}/search-plugins/knn/knn-index/#method-definitions). For method recommendations, see [Choosing the right method]({{site.url}}{{site.baseurl}}/search-plugins/knn/knn-index/#choosing-the-right-method).
+
+To use approximate vector search, specify one of the following search methods (algorithms) in the `method` parameter:
+
+- Hierarchical Navigable Small World (HNSW)
+- Inverted File System (IVF)
+
+Additionally, specify the engine (library) that implements this method in the `engine` parameter:
+
+- [Non-Metric Space Library (NMSLIB)](https://github.com/nmslib/nmslib)
+- [Facebook AI Similarity Search (Faiss)](https://github.com/facebookresearch/faiss)
+- Lucene
+
+The following table lists the combinations of search methods and libraries supported by the k-NN engine for approximate vector search.
+
+Method | Engine
+:--- | :---
+HNSW | NMSLIB, Faiss, Lucene
+IVF | Faiss
+
+### Engine recommendations
+
+In general, select NMSLIB or Faiss for large-scale use cases. Lucene is a good option for smaller deployments and offers benefits like smart filtering, where the optimal filtering strategy—pre-filtering, post-filtering, or exact k-NN—is automatically applied depending on the situation. The following table summarizes the differences between each option.
+
+| | NMSLIB/HNSW | Faiss/HNSW | Faiss/IVF | Lucene/HNSW |
+|:---|:---|:---|:---|:---|
+| Max dimensions | 16,000 | 16,000 | 16,000 | 1,024 |
+| Filter | Post-filter | Post-filter | Post-filter | Filter during search |
+| Training required | No | No | Yes | No |
+| Similarity metrics | `l2`, `innerproduct`, `cosinesimil`, `l1`, `linf` | `l2`, `innerproduct` | `l2`, `innerproduct` | `l2`, `cosinesimil` |
+| Number of vectors | Tens of billions | Tens of billions | Tens of billions | Less than 10 million |
+| Indexing latency | Low | Low | Lowest | Low |
+| Query latency and quality | Low latency and high quality | Low latency and high quality | Low latency and low quality | High latency and high quality |
+| Vector compression | Flat | Flat
Product quantization | Flat
Product quantization | Flat |
+| Memory consumption | High | High
Low with PQ | Medium
Low with PQ | High |
+
+### Example
+
+In this example, you'll create a k-NN index, add data to the index, and search the data.
+
+#### Step 1: Create a k-NN index
+
+First, create an index that will store sample hotel data. Set `index.knn` to `true` and specify the `location` field as a `knn_vector`:
+
+```json
+PUT /hotels-index
+{
+ "settings": {
+ "index": {
+ "knn": true,
+ "knn.algo_param.ef_search": 100,
+ "number_of_shards": 1,
+ "number_of_replicas": 0
+ }
+ },
+ "mappings": {
+ "properties": {
+ "location": {
+ "type": "knn_vector",
+ "dimension": 2,
+ "method": {
+ "name": "hnsw",
+ "space_type": "l2",
+ "engine": "lucene",
+ "parameters": {
+ "ef_construction": 100,
+ "m": 16
+ }
+ }
+ }
+ }
+ }
+}
+```
+{% include copy-curl.html %}
+
+#### Step 2: Add data to your index
+
+Next, add data to your index. Each document represents a hotel. The `location` field in each document contains a vector specifying the hotel's location:
+
+```json
+POST /_bulk
+{ "index": { "_index": "hotels-index", "_id": "1" } }
+{ "location": [5.2, 4.4] }
+{ "index": { "_index": "hotels-index", "_id": "2" } }
+{ "location": [5.2, 3.9] }
+{ "index": { "_index": "hotels-index", "_id": "3" } }
+{ "location": [4.9, 3.4] }
+{ "index": { "_index": "hotels-index", "_id": "4" } }
+{ "location": [4.2, 4.6] }
+{ "index": { "_index": "hotels-index", "_id": "5" } }
+{ "location": [3.3, 4.5] }
+```
+{% include copy-curl.html %}
+
+#### Step 3: Search your data
+
+Now search for hotels closest to the pin location `[5, 4]`. This location is labeled `Pin` in the following image. Each hotel is labeled with its document number.
+
+![Hotels on a coordinate plane]({{site.url}}{{site.baseurl}}/images/k-nn-search-hotels.png/)
+
+To search for the top three closest hotels, set `k` to `3`:
+
+```json
+POST /hotels-index/_search
+{
+ "size": 3,
+ "query": {
+ "knn": {
+ "location": {
+ "vector": [
+ 5,
+ 4
+ ],
+ "k": 3
+ }
+ }
+ }
+}
+```
+{% include copy-curl.html %}
+
+The response contains the hotels closest to the specified pin location:
+
+```json
+{
+ "took": 1093,
+ "timed_out": false,
+ "_shards": {
+ "total": 1,
+ "successful": 1,
+ "skipped": 0,
+ "failed": 0
+ },
+ "hits": {
+ "total": {
+ "value": 3,
+ "relation": "eq"
+ },
+ "max_score": 0.952381,
+ "hits": [
+ {
+ "_index": "hotels-index",
+ "_id": "2",
+ "_score": 0.952381,
+ "_source": {
+ "location": [
+ 5.2,
+ 3.9
+ ]
+ }
+ },
+ {
+ "_index": "hotels-index",
+ "_id": "1",
+ "_score": 0.8333333,
+ "_source": {
+ "location": [
+ 5.2,
+ 4.4
+ ]
+ }
+ },
+ {
+ "_index": "hotels-index",
+ "_id": "3",
+ "_score": 0.72992706,
+ "_source": {
+ "location": [
+ 4.9,
+ 3.4
+ ]
+ }
+ }
+ ]
+ }
+}
+```
+
+### Vector search with filtering
+
+For information about vector search with filtering, see [k-NN search with filters]({{site.url}}{{site.baseurl}}/search-plugins/knn/filter-search-knn/).
+
+## Generating vector embeddings in OpenSearch
+
+[Neural search]({{site.url}}{{site.baseurl}}/search-plugins/neural-search/) encapsulates the infrastructure needed to perform semantic vector searches. After you integrate an inference (embedding) service, neural search functions like lexical search, accepting a textual query and returning relevant documents.
+
+When you index your data, neural search transforms text into vector embeddings and indexes both the text and its vector embeddings in a vector index. When you use a neural query during search, neural search converts the query text into vector embeddings and uses vector search to return the results.
+
+### Choosing a model
+
+The first step in setting up neural search is choosing a model. You can upload a model to your OpenSearch cluster, use one of the pretrained models provided by OpenSearch, or connect to an externally hosted model. For more information, see [Integrating ML models]({{site.url}}{{site.baseurl}}/ml-commons-plugin/integrating-ml-models/).
+
+### Neural search tutorial
+
+For a step-by-step tutorial, see [Neural search tutorial]({{site.url}}{{site.baseurl}}/search-plugins/neural-search-tutorial/).
+
+### Search methods
+
+Choose one of the following search methods to use your model for neural search:
+
+- [Semantic search]({{site.url}}{{site.baseurl}}/search-plugins/semantic-search/): Uses dense retrieval based on text embedding models to search text data.
+
+- [Hybrid search]({{site.url}}{{site.baseurl}}/search-plugins/hybrid-search/): Combines lexical and neural search to improve search relevance.
+
+- [Multimodal search]({{site.url}}{{site.baseurl}}/search-plugins/multimodal-search/): Uses neural search with multimodal embedding models to search text and image data.
+
+- [Neural sparse search]({{site.url}}{{site.baseurl}}/search-plugins/neural-sparse-search/): Uses neural search with sparse retrieval based on sparse embedding models to search text data.
+
+- [Conversational search]({{site.url}}{{site.baseurl}}/search-plugins/conversational-search/): With conversational search, you can ask questions in natural language, receive a text response, and ask additional clarifying questions.
diff --git a/_security/access-control/document-level-security.md b/_security/access-control/document-level-security.md
index 08de85bbf7..352fe06a61 100644
--- a/_security/access-control/document-level-security.md
+++ b/_security/access-control/document-level-security.md
@@ -191,6 +191,10 @@ Adaptive | `adaptive-level` | The default setting that allows OpenSearch to auto
OpenSearch combines all DLS queries with the logical `OR` operator. However, when a role that uses DLS is combined with another security role that doesn't use DLS, the query results are filtered to display only documents matching the DLS from the first role. This filter rule also applies to roles that do not grant read documents.
+### DLS and write permissions
+
+Make sure that a user that has DLS-configured roles does not have write permissions. If write permissions are added, the user will be able to index documents which they will not be able to retrieve due to DLS filtering.
+
### When to enable `plugins.security.dfm_empty_overrides_all`
When to enable the `plugins.security.dfm_empty_overrides_all` setting depends on whether you want to restrict user access to documents without DLS.
diff --git a/_security/audit-logs/storage-types.md b/_security/audit-logs/storage-types.md
index c0707ff424..719287ad7f 100644
--- a/_security/audit-logs/storage-types.md
+++ b/_security/audit-logs/storage-types.md
@@ -53,8 +53,8 @@ If you use `external_opensearch` and the remote cluster also uses the Security p
Name | Data type | Description
:--- | :--- | :---
-`plugins.security.audit.config.enable_ssl` | Boolean | If you enabled SSL/TLS on the receiving cluster, set to true. The default is false.
-`plugins.security.audit.config.verify_hostnames` | Boolean | Whether to verify the hostname of the SSL/TLS certificate of the receiving cluster. Default is true.
+`plugins.security.audit.config.enable_ssl` | Boolean | If you enabled SSL/TLS on the receiving cluster, set to true. The Default is `false`.
+`plugins.security.audit.config.verify_hostnames` | Boolean | Whether to verify the hostname of the SSL/TLS certificate of the receiving cluster. Default is `true`.
`plugins.security.audit.config.pemtrustedcas_filepath` | String | The trusted root certificate of the external OpenSearch cluster, relative to the `config` directory.
`plugins.security.audit.config.pemtrustedcas_content` | String | Instead of specifying the path (`plugins.security.audit.config.pemtrustedcas_filepath`), you can configure the Base64-encoded certificate content directly.
`plugins.security.audit.config.enable_ssl_client_auth` | Boolean | Whether to enable SSL/TLS client authentication. If you set this to true, the audit log module sends the node's certificate along with the request. The receiving cluster can use this certificate to verify the identity of the caller.
diff --git a/_security/authentication-backends/jwt.md b/_security/authentication-backends/jwt.md
index b6b08388b5..3f28dfecfd 100644
--- a/_security/authentication-backends/jwt.md
+++ b/_security/authentication-backends/jwt.md
@@ -122,7 +122,7 @@ Name | Description
`jwt_url_parameter` | If the token is not transmitted in the HTTP header but rather as an URL parameter, define the name of the parameter here.
`subject_key` | The key in the JSON payload that stores the username. If not set, the [subject](https://tools.ietf.org/html/rfc7519#section-4.1.2) registered claim is used.
`roles_key` | The key in the JSON payload that stores the user's roles. The value of this key must be a comma-separated list of roles.
-`required_audience` | The name of the audience which the JWT must specify. This corresponds [`aud` claim of the JWT](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3).
+`required_audience` | The name of the audience that the JWT must specify. You can set a single value (for example, `project1`) or multiple comma-separated values (for example, `project1,admin`). If you set multiple values, the JWT must have at least one required audience. This parameter corresponds to the [`aud` claim of the JWT](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.3).
`required_issuer` | The target issuer of JWT stored in the JSON payload. This corresponds to the [`iss` claim of the JWT](https://datatracker.ietf.org/doc/html/rfc7519#section-4.1.1).
`jwt_clock_skew_tolerance_seconds` | Sets a window of time, in seconds, to compensate for any disparity between the JWT authentication server and OpenSearch node clock times, thereby preventing authentication failures due to the misalignment. Security sets 30 seconds as the default. Use this setting to apply a custom value.
diff --git a/_security/authentication-backends/ldap.md b/_security/authentication-backends/ldap.md
index 49b01e332b..9f98f7f5b0 100755
--- a/_security/authentication-backends/ldap.md
+++ b/_security/authentication-backends/ldap.md
@@ -61,8 +61,21 @@ We provide a fully functional example that can help you understand how to use an
To enable LDAP authentication and authorization, add the following lines to `config/opensearch-security/config.yml`:
+The internal user database authentication should also be enabled because OpenSearch Dashboards connects to OpenSearch using the `kibanaserver` internal user.
+{: .note}
+
```yml
authc:
+ internal_auth:
+ order: 0
+ description: "HTTP basic authentication using the internal user database"
+ http_enabled: true
+ transport_enabled: true
+ http_authenticator:
+ type: basic
+ challenge: false
+ authentication_backend:
+ type: internal
ldap:
http_enabled: true
transport_enabled: true
diff --git a/_security/authentication-backends/openid-connect.md b/_security/authentication-backends/openid-connect.md
index 8efb66fbb6..8e785a9e65 100755
--- a/_security/authentication-backends/openid-connect.md
+++ b/_security/authentication-backends/openid-connect.md
@@ -181,8 +181,8 @@ config:
Name | Description
:--- | :---
-`enable_ssl` | Whether to use TLS. Default is false.
-`verify_hostnames` | Whether to verify the hostnames of the IdP's TLS certificate. Default is true.
+`enable_ssl` | Whether to use TLS. Default is `false`.
+`verify_hostnames` | Whether to verify the hostnames of the IdP's TLS certificate. Default is `true`.
### Certificate validation
@@ -252,7 +252,7 @@ config:
Name | Description
:--- | :---
-`enable_ssl_client_auth` | Whether to send the client certificate to the IdP server. Default is false.
+`enable_ssl_client_auth` | Whether to send the client certificate to the IdP server. Default is `false`.
`pemcert_filepath` | Absolute path to the client certificate.
`pemcert_content` | The content of the client certificate. Cannot be used when `pemcert_filepath` is set.
`pemkey_filepath` | Absolute path to the file containing the private key of the client certificate.
diff --git a/_security/authentication-backends/proxy.md b/_security/authentication-backends/proxy.md
index bb7d1f0151..7716b1d6d2 100644
--- a/_security/authentication-backends/proxy.md
+++ b/_security/authentication-backends/proxy.md
@@ -40,7 +40,7 @@ You can configure the following settings:
Name | Description
:--- | :---
-`enabled` | Enables or disables proxy support. Default is false.
+`enabled` | Enables or disables proxy support. Default is `false`.
`internalProxies` | A regular expression containing the IP addresses of all trusted proxies. The pattern `.*` trusts all internal proxies.
`remoteIpHeader` | Name of the HTTP header field that has the hostname chain. Default is `x-forwarded-for`.
diff --git a/_security/authentication-backends/saml.md b/_security/authentication-backends/saml.md
index a4511a5325..652345ccdc 100755
--- a/_security/authentication-backends/saml.md
+++ b/_security/authentication-backends/saml.md
@@ -244,7 +244,7 @@ If you are loading the IdP metadata from a URL, we recommend that you use SSL/TL
Name | Description
:--- | :---
-`idp.enable_ssl` | Whether to enable the custom TLS configuration. Default is false (JDK settings are used).
+`idp.enable_ssl` | Whether to enable the custom TLS configuration. Default is `false` (JDK settings are used).
`idp.verify_hostnames` | Whether to verify the hostnames of the server's TLS certificate.
Example:
@@ -302,7 +302,7 @@ The Security plugin can use TLS client authentication when fetching the IdP meta
Name | Description
:--- | :---
-`idp.enable_ssl_client_auth` | Whether to send a client certificate to the IdP server. Default is false.
+`idp.enable_ssl_client_auth` | Whether to send a client certificate to the IdP server. Default is `false`.
`idp.pemcert_filepath` | Path to the PEM file containing the client certificate. The file must be placed under the OpenSearch `config` directory, and the path must be specified relative to the `config` directory.
`idp.pemcert_content` | The content of the client certificate. Cannot be used when `pemcert_filepath` is set.
`idp.pemkey_filepath` | Path to the private key of the client certificate. The file must be placed under the OpenSearch `config` directory, and the path must be specified relative to the `config` directory.
diff --git a/_security/configuration/security-admin.md b/_security/configuration/security-admin.md
index ed293b7e91..77d3711385 100755
--- a/_security/configuration/security-admin.md
+++ b/_security/configuration/security-admin.md
@@ -201,7 +201,7 @@ Name | Description
`-cn` | Cluster name. Default is `opensearch`.
`-icl` | Ignore cluster name.
`-sniff` | Sniff cluster nodes. Sniffing detects available nodes using the OpenSearch `_cluster/state` API.
-`-arc,--accept-red-cluster` | Execute `securityadmin.sh` even if the cluster state is red. Default is false, which means the script will not execute on a red cluster.
+`-arc,--accept-red-cluster` | Execute `securityadmin.sh` even if the cluster state is red. Default is `false`, which means the script will not execute on a red cluster.
### Certificate validation settings
@@ -210,7 +210,7 @@ Use the following options to control certificate validation.
Name | Description
:--- | :---
-`-nhnv` | Do not validate hostname. Default is false.
+`-nhnv` | Do not validate hostname. Default is `false`.
`-nrhn` | Do not resolve hostname. Only relevant if `-nhnv` is not set.
diff --git a/_security/configuration/tls.md b/_security/configuration/tls.md
index d06b16a47e..a4115b8c25 100755
--- a/_security/configuration/tls.md
+++ b/_security/configuration/tls.md
@@ -52,11 +52,11 @@ The following settings configure the location and password of your keystore and
Name | Description
:--- | :---
-`plugins.security.ssl.transport.keystore_type` | The type of the keystore file, JKS or PKCS12/PFX. Optional. Default is JKS.
+`plugins.security.ssl.transport.keystore_type` | The type of the keystore file, `JKS` or `PKCS12/PFX`. Optional. Default is `JKS`.
`plugins.security.ssl.transport.keystore_filepath` | Path to the keystore file, which must be under the `config` directory, specified using a relative path. Required.
`plugins.security.ssl.transport.keystore_alias` | The alias name of the keystore. Optional. Default is the first alias.
`plugins.security.ssl.transport.keystore_password` | Keystore password. Default is `changeit`.
-`plugins.security.ssl.transport.truststore_type` | The type of the truststore file, JKS or PKCS12/PFX. Default is JKS.
+`plugins.security.ssl.transport.truststore_type` | The type of the truststore file, `JKS` or `PKCS12/PFX`. Default is `JKS`.
`plugins.security.ssl.transport.truststore_filepath` | Path to the truststore file, which must be under the `config` directory, specified using a relative path. Required.
`plugins.security.ssl.transport.truststore_alias` | The alias name of the truststore. Optional. Default is all certificates.
`plugins.security.ssl.transport.truststore_password` | Truststore password. Default is `changeit`.
@@ -65,7 +65,7 @@ Name | Description
Name | Description
:--- | :---
-`plugins.security.ssl.http.enabled` | Whether to enable TLS on the REST layer. If enabled, only HTTPS is allowed. Optional. Default is false.
+`plugins.security.ssl.http.enabled` | Whether to enable TLS on the REST layer. If enabled, only HTTPS is allowed. Optional. Default is `false`.
`plugins.security.ssl.http.keystore_type` | The type of the keystore file, JKS or PKCS12/PFX. Optional. Default is JKS.
`plugins.security.ssl.http.keystore_filepath` | Path to the keystore file, which must be under the `config` directory, specified using a relative path. Required.
`plugins.security.ssl.http.keystore_alias` | The alias name of the keystore. Optional. Default is the first alias.
@@ -137,7 +137,7 @@ plugins.security.authcz.admin_dn:
For security reasons, you cannot use wildcards or regular expressions as values for the `admin_dn` setting.
-For more information about admin and super admin user roles, see [Admin and super admin roles](https://opensearch.org/docs/latest/security/access-control/users-roles/#admin-and-super-admin-roles) and [Configuring super admin certificates](https://opensearch.org/docs/latest/security/configuration/tls/#configuring-admin-certificates).
+For more information about admin and super admin user roles, see [Admin and super admin roles](https://opensearch.org/docs/latest/security/access-control/users-roles/#admin-and-super-admin-roles).
## (Advanced) OpenSSL
@@ -150,8 +150,8 @@ If OpenSSL is enabled, but for one reason or another the installation does not w
Name | Description
:--- | :---
-`plugins.security.ssl.transport.enable_openssl_if_available` | Enable OpenSSL on the transport layer if available. Optional. Default is true.
-`plugins.security.ssl.http.enable_openssl_if_available` | Enable OpenSSL on the REST layer if available. Optional. Default is true.
+`plugins.security.ssl.transport.enable_openssl_if_available` | Enable OpenSSL on the transport layer if available. Optional. Default is `true`.
+`plugins.security.ssl.http.enable_openssl_if_available` | Enable OpenSSL on the REST layer if available. Optional. Default is `true`.
{% comment %}
1. Install [OpenSSL 1.1.0](https://www.openssl.org/community/binaries.html) on every node.
@@ -179,8 +179,8 @@ In addition, when `resolve_hostname` is enabled, the Security plugin resolves th
Name | Description
:--- | :---
-`plugins.security.ssl.transport.enforce_hostname_verification` | Whether to verify hostnames on the transport layer. Optional. Default is true.
-`plugins.security.ssl.transport.resolve_hostname` | Whether to resolve hostnames against DNS on the transport layer. Optional. Default is true. Only works if hostname verification is also enabled.
+`plugins.security.ssl.transport.enforce_hostname_verification` | Whether to verify hostnames on the transport layer. Optional. Default is `true`.
+`plugins.security.ssl.transport.resolve_hostname` | Whether to resolve hostnames against DNS on the transport layer. Optional. Default is `true`. Only works if hostname verification is also enabled.
## (Advanced) Client authentication
diff --git a/_tuning-your-cluster/availability-and-recovery/snapshots/sm-api.md b/_tuning-your-cluster/availability-and-recovery/snapshots/sm-api.md
index cd3a238f9c..5d89a3747b 100644
--- a/_tuning-your-cluster/availability-and-recovery/snapshots/sm-api.md
+++ b/_tuning-your-cluster/availability-and-recovery/snapshots/sm-api.md
@@ -181,7 +181,7 @@ Parameter | Type | Description
`enabled` | Boolean | Should this SM policy be enabled at creation? Optional.
`snapshot_config` | Object | The configuration options for snapshot creation. Required.
`snapshot_config.date_format` | String | Snapshot names have the format `--`. `date_format` specifies the format for the date in the snapshot name. Supports all date formats supported by OpenSearch. Optional. Default is "yyyy-MM-dd'T'HH:mm:ss".
-`snapshot_config.date_format_timezone` | String | Snapshot names have the format `--`. `date_format_timezone` specifies the time zone for the date in the snapshot name. Optional. Default is UTC.
+`snapshot_config.date_format_timezone` | String | Snapshot names have the format `--`. `date_format_timezone` specifies the time zone for the date in the snapshot name. Optional. Default is `UTC`.
`snapshot_config.indices` | String | The names of the indexes in the snapshot. Multiple index names are separated by `,`. Supports wildcards (`*`). Optional. Default is `*` (all indexes).
`snapshot_config.repository` | String | The repository in which to store snapshots. Required.
`snapshot_config.ignore_unavailable` | Boolean | Do you want to ignore unavailable indexes? Optional. Default is `false`.
@@ -197,7 +197,7 @@ Parameter | Type | Description
`deletion.delete_condition` | Object | Conditions for snapshot deletion. Optional.
`deletion.delete_condition.max_count` | Integer | The maximum number of snapshots to be retained. Optional.
`deletion.delete_condition.max_age` | String | The maximum time a snapshot is retained. Optional.
-`deletion.delete_condition.min_count` | Integer | The minimum number of snapshots to be retained. Optional. Default is one.
+`deletion.delete_condition.min_count` | Integer | The minimum number of snapshots to be retained. Optional. Default is `1`.
`notification` | Object | Defines notifications for SM events. Optional.
`notification.channel` | Object | Defines a channel for notifications. You must [create and configure a notification channel]({{site.url}}{{site.baseurl}}/notifications-plugin/api) before setting up SM notifications. Required.
`notification.channel.id` | String | The channel ID of the channel used for notifications. To get the channel IDs of all created channels, use `GET _plugins/_notifications/configs`. Required.
diff --git a/_tuning-your-cluster/availability-and-recovery/snapshots/snapshot-restore.md b/_tuning-your-cluster/availability-and-recovery/snapshots/snapshot-restore.md
index f35115c95f..812d5104c7 100644
--- a/_tuning-your-cluster/availability-and-recovery/snapshots/snapshot-restore.md
+++ b/_tuning-your-cluster/availability-and-recovery/snapshots/snapshot-restore.md
@@ -475,10 +475,10 @@ POST /_snapshot/my-repository/2/_restore
Request parameters | Description
:--- | :---
`indices` | The indexes you want to restore. You can use `,` to create a list of indexes, `*` to specify an index pattern, and `-` to exclude certain indexes. Don't put spaces between items. Default is all indexes.
-`ignore_unavailable` | If an index from the `indices` list doesn't exist, whether to ignore it rather than fail the restore operation. Default is false.
-`include_global_state` | Whether to restore the cluster state. Default is false.
-`include_aliases` | Whether to restore aliases alongside their associated indexes. Default is true.
-`partial` | Whether to allow the restoration of partial snapshots. Default is false.
+`ignore_unavailable` | If an index from the `indices` list doesn't exist, whether to ignore it rather than fail the restore operation. Default is `false`.
+`include_global_state` | Whether to restore the cluster state. Default is `false`.
+`include_aliases` | Whether to restore aliases alongside their associated indexes. Default is `true`.
+`partial` | Whether to allow the restoration of partial snapshots. Default is `false`.
`rename_pattern` | If you want to rename indexes as you restore them, use this option to specify a regular expression that matches all indexes you want to restore. Use capture groups (`()`) to reuse portions of the index name.
`rename_replacement` | If you want to rename indexes as you restore them, use this option to specify the replacement pattern. Use `$0` to include the entire matching index name, `$1` to include the content of the first capture group, and so on.
`index_settings` | If you want to change [index settings]({{site.url}}{{site.baseurl}}/im-plugin/index-settings/) applied during the restore operation, specify them here. You cannot change `index.number_of_shards`.
diff --git a/_tuning-your-cluster/index.md b/_tuning-your-cluster/index.md
index dbba404af8..99db78565f 100644
--- a/_tuning-your-cluster/index.md
+++ b/_tuning-your-cluster/index.md
@@ -20,7 +20,7 @@ To create and deploy an OpenSearch cluster according to your requirements, it’
There are many ways to design a cluster. The following illustration shows a basic architecture that includes a four-node cluster that has one dedicated cluster manager node, one dedicated coordinating node, and two data nodes that are cluster manager eligible and also used for ingesting data.
- The nomenclature for the master node is now referred to as the cluster manager node.
+ The nomenclature for the cluster manager node is now referred to as the cluster manager node.
{: .note }
![multi-node cluster architecture diagram]({{site.url}}{{site.baseurl}}/images/cluster.png)
diff --git a/assets/examples/ubi-dashboard.ndjson b/assets/examples/ubi-dashboard.ndjson
new file mode 100644
index 0000000000..1ae6562f52
--- /dev/null
+++ b/assets/examples/ubi-dashboard.ndjson
@@ -0,0 +1,14 @@
+{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"action_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"application\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"client_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.browser\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.browser.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.browser\"}}},{\"count\":0,\"name\":\"event_attributes.comment\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.comment.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.comment\"}}},{\"count\":0,\"name\":\"event_attributes.data.internal_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.data.internal_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.data.internal_id\"}}},{\"count\":0,\"name\":\"event_attributes.data.object_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.data.object_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.data.object_id\"}}},{\"count\":0,\"name\":\"event_attributes.data.object_id_field\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.data.object_id_field.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.data.object_id_field\"}}},{\"count\":0,\"name\":\"event_attributes.dwell_time\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.helpful\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.helpful.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.helpful\"}}},{\"count\":0,\"name\":\"event_attributes.ip\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.ip.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.ip\"}}},{\"count\":0,\"name\":\"event_attributes.object.ancestors\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.ancestors.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.ancestors\"}}},{\"count\":0,\"name\":\"event_attributes.object.checkIdleStateRateMs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.content\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.content.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.content\"}}},{\"count\":0,\"name\":\"event_attributes.object.currentIdleTimeMs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.currentPageName\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.currentPageName.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.currentPageName\"}}},{\"count\":0,\"name\":\"event_attributes.object.description\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.description.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.description\"}}},{\"count\":0,\"name\":\"event_attributes.object.docs_version\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.docs_version.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.docs_version\"}}},{\"count\":0,\"name\":\"event_attributes.object.duration\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.hiddenPropName\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.hiddenPropName.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.hiddenPropName\"}}},{\"count\":0,\"name\":\"event_attributes.object.id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.idleTimeoutMs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.internal_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.isUserCurrentlyIdle\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.isUserCurrentlyOnPage\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.cost\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.date_released\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.filter\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.object_detail.filter.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.object_detail.filter\"}}},{\"count\":0,\"name\":\"event_attributes.object.object_detail.isTrusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.margin\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.price\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.supplier\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.object_detail.supplier.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.object_detail.supplier\"}}},{\"count\":0,\"name\":\"event_attributes.object.object_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_id_field\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.results_num\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.search_term\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.search_term.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.search_term\"}}},{\"count\":0,\"name\":\"event_attributes.object.startStopTimes./docs/latest/.startTime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.startStopTimes./docs/latest/.stopTime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.startStopTimes.http://137.184.176.129:4000/docs/latest/.startTime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.title\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.title.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.title\"}}},{\"count\":0,\"name\":\"event_attributes.object.transaction_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.transaction_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.transaction_id\"}}},{\"count\":0,\"name\":\"event_attributes.object.type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.type\"}}},{\"count\":0,\"name\":\"event_attributes.object.url\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.url.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.url\"}}},{\"count\":0,\"name\":\"event_attributes.object.version\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.version.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.version\"}}},{\"count\":0,\"name\":\"event_attributes.object.versionLabel\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.versionLabel.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.versionLabel\"}}},{\"count\":0,\"name\":\"event_attributes.object.visibilityChangeEventName\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.visibilityChangeEventName.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.visibilityChangeEventName\"}}},{\"count\":0,\"name\":\"event_attributes.page_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.page_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.page_id\"}}},{\"count\":0,\"name\":\"event_attributes.position.ordinal\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.page_depth\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.scroll_depth\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.trail\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.position.trail.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.position.trail\"}}},{\"count\":0,\"name\":\"event_attributes.position.x\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.y\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.result_count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.session_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.session_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.session_id\"}}},{\"count\":0,\"name\":\"event_attributes.user_comment\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.user_comment.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.user_comment\"}}},{\"count\":0,\"name\":\"message\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"message_type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"query\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"query_attributes\",\"type\":\"unknown\",\"esTypes\":[\"flat_object\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"query_attributes.\",\"type\":\"unknown\",\"esTypes\":[\"flat_object\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"query_attributes\"}}},{\"count\":0,\"name\":\"query_attributes._value\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"query_attributes\"}}},{\"count\":0,\"name\":\"query_attributes._valueAndPath\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false,\"subType\":{\"multi\":{\"parent\":\"query_attributes\"}}},{\"count\":0,\"name\":\"query_id\",\"type\":\"string\",\"esTypes\":[\"text\",\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"query_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"query_id\"}}},{\"count\":0,\"name\":\"query_response_hit_ids\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"query_response_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"timestamp\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"user_query\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"user_query.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"user_query\"}}}]","title":"ubi_*"},"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-06-18T18:15:17.795Z","version":"WzEsMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"basic pie","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"basic pie\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"action_name\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100}}}"},"id":"2ddbc001-f5ae-4de9-82f3-30b28408bae6","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:15:17.795Z","version":"WzIsMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"click position","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"click position\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"histogram\",\"params\":{\"field\":\"event_attributes.position.ordinal\",\"interval\":1,\"min_doc_count\":false,\"has_extended_bounds\":false,\"extended_bounds\":{\"min\":\"\",\"max\":\"\"},\"customLabel\":\"item number out of searched results that were clicked on\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Count\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"stacked\",\"data\":{\"label\":\"Count\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"}}}"},"id":"7234f759-31ab-467a-942e-d6db8c58477e","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:15:17.795Z","version":"WzMsMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"all ubi messages","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"all ubi messages\",\"type\":\"tagcloud\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"message\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":50,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":true}}"},"id":"78a48652-7423-4517-a869-9ba167afcc47","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:15:17.795Z","version":"WzcsMV0="}
+{"attributes":{"fields":"[{\"count\":0,\"name\":\"_id\",\"type\":\"string\",\"esTypes\":[\"_id\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_index\",\"type\":\"string\",\"esTypes\":[\"_index\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_score\",\"type\":\"number\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_source\",\"type\":\"_source\",\"esTypes\":[\"_source\"],\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"_type\",\"type\":\"string\",\"scripted\":false,\"searchable\":false,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"action_name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"application\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"client_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.browser\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.browser.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.browser\"}}},{\"count\":0,\"name\":\"event_attributes.comment\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.comment.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.comment\"}}},{\"count\":0,\"name\":\"event_attributes.data.internal_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.data.internal_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.data.internal_id\"}}},{\"count\":0,\"name\":\"event_attributes.data.object_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.data.object_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.data.object_id\"}}},{\"count\":0,\"name\":\"event_attributes.data.object_id_field\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.data.object_id_field.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.data.object_id_field\"}}},{\"count\":0,\"name\":\"event_attributes.dwell_time\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.helpful\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.helpful.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.helpful\"}}},{\"count\":0,\"name\":\"event_attributes.ip\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.ip.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.ip\"}}},{\"count\":0,\"name\":\"event_attributes.object.ancestors\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.ancestors.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.ancestors\"}}},{\"count\":0,\"name\":\"event_attributes.object.checkIdleStateRateMs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.content\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.content.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.content\"}}},{\"count\":0,\"name\":\"event_attributes.object.currentIdleTimeMs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.currentPageName\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.currentPageName.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.currentPageName\"}}},{\"count\":0,\"name\":\"event_attributes.object.description\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.description.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.description\"}}},{\"count\":0,\"name\":\"event_attributes.object.docs_version\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.docs_version.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.docs_version\"}}},{\"count\":0,\"name\":\"event_attributes.object.duration\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.hiddenPropName\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.hiddenPropName.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.hiddenPropName\"}}},{\"count\":0,\"name\":\"event_attributes.object.id\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.idleTimeoutMs\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.internal_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.isUserCurrentlyIdle\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.isUserCurrentlyOnPage\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.name\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.cost\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.date_released\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.filter\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.object_detail.filter.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.object_detail.filter\"}}},{\"count\":0,\"name\":\"event_attributes.object.object_detail.isTrusted\",\"type\":\"boolean\",\"esTypes\":[\"boolean\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.margin\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.price\",\"type\":\"number\",\"esTypes\":[\"float\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_detail.supplier\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.object_detail.supplier.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.object_detail.supplier\"}}},{\"count\":0,\"name\":\"event_attributes.object.object_id\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.object_id_field\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.results_num\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.search_term\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.search_term.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.search_term\"}}},{\"count\":0,\"name\":\"event_attributes.object.startStopTimes./docs/latest/.startTime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.startStopTimes./docs/latest/.stopTime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.startStopTimes.http://137.184.176.129:4000/docs/latest/.startTime\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.object.title\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.title.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.title\"}}},{\"count\":0,\"name\":\"event_attributes.object.transaction_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.transaction_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.transaction_id\"}}},{\"count\":0,\"name\":\"event_attributes.object.type\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.type.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.type\"}}},{\"count\":0,\"name\":\"event_attributes.object.url\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.url.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.url\"}}},{\"count\":0,\"name\":\"event_attributes.object.version\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.version.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.version\"}}},{\"count\":0,\"name\":\"event_attributes.object.versionLabel\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.versionLabel.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.versionLabel\"}}},{\"count\":0,\"name\":\"event_attributes.object.visibilityChangeEventName\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.object.visibilityChangeEventName.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.object.visibilityChangeEventName\"}}},{\"count\":0,\"name\":\"event_attributes.page_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.page_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.page_id\"}}},{\"count\":0,\"name\":\"event_attributes.position.ordinal\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.page_depth\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.scroll_depth\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.trail\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.position.trail.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.position.trail\"}}},{\"count\":0,\"name\":\"event_attributes.position.x\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.position.y\",\"type\":\"number\",\"esTypes\":[\"integer\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.result_count\",\"type\":\"number\",\"esTypes\":[\"long\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"event_attributes.session_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.session_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.session_id\"}}},{\"count\":0,\"name\":\"event_attributes.user_comment\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"event_attributes.user_comment.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"event_attributes.user_comment\"}}},{\"count\":0,\"name\":\"message\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"message_type\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true},{\"count\":0,\"name\":\"query_id\",\"type\":\"string\",\"esTypes\":[\"text\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":false,\"readFromDocValues\":false},{\"count\":0,\"name\":\"query_id.keyword\",\"type\":\"string\",\"esTypes\":[\"keyword\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true,\"subType\":{\"multi\":{\"parent\":\"query_id\"}}},{\"count\":0,\"name\":\"timestamp\",\"type\":\"date\",\"esTypes\":[\"date\"],\"scripted\":false,\"searchable\":true,\"aggregatable\":true,\"readFromDocValues\":true}]","title":"ubi_events"},"id":"b8c824c3-6508-4495-a3d0-9f53e6723cdd","migrationVersion":{"index-pattern":"7.6.0"},"references":[],"type":"index-pattern","updated_at":"2024-06-18T18:15:17.795Z","version":"WzQsMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Margin by Vendor (pie chart)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Margin by Vendor (pie chart)\",\"type\":\"pie\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"params\":{\"field\":\"event_attributes.object.object_detail.margin\",\"customLabel\":\"Margin\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"event_attributes.object.object_detail.supplier.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":15,\"otherBucket\":true,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"type\":\"pie\",\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"isDonut\":true,\"labels\":{\"show\":true,\"values\":true,\"last_level\":true,\"truncate\":100}}}"},"id":"cb78bb39-4437-4347-aade-15bc268c6a26","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"b8c824c3-6508-4495-a3d0-9f53e6723cdd","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:15:17.795Z","version":"WzksMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"key\":\"action_name\",\"negate\":false,\"params\":{\"query\":\"on_search\"},\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"action_name\":\"on_search\"}}},{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"key\":\"event_attributes.result_count\",\"negate\":true,\"params\":{\"query\":\"0\"},\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index\"},\"query\":{\"match_phrase\":{\"event_attributes.result_count\":\"0\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"all ubi messages (copy 1)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"all ubi messages (copy 1)\",\"type\":\"tagcloud\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"message\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":50,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":true}}"},"id":"a1840c05-bd0c-4fb2-8a50-7f51395e3d8d","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"},{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"},{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[1].meta.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:15:17.795Z","version":"WzgsMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"key\":\"action_name\",\"negate\":false,\"params\":{\"query\":\"on_search\"},\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"action_name\":\"on_search\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"all ubi messages (copy)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"all ubi messages (copy)\",\"type\":\"tagcloud\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"count\",\"params\":{},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"message\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":50,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\"},\"schema\":\"segment\"}],\"params\":{\"scale\":\"linear\",\"orientation\":\"single\",\"minFontSize\":18,\"maxFontSize\":72,\"showLabel\":true}}"},"id":"4af4cc80-33fd-4ef4-b4f9-7d67ecd84b20","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"},{"id":"2ef89828-d14a-4f51-a90f-e427d2ef941a","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:15:17.795Z","version":"WzYsMV0="}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Longest Session Durations","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Longest Session Durations\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"params\":{\"field\":\"event_attributes.dwell_time\",\"customLabel\":\"Duration in seconds\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"event_attributes.session_id.keyword\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":25,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Session\"},\"schema\":\"group\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Duration in seconds\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Duration in seconds\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"orderBucketsBySum\":true}}"},"id":"1bdad170-2d9f-11ef-9a92-fbd3515fac70","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"b8c824c3-6508-4495-a3d0-9f53e6723cdd","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:18:06.214Z","version":"WzE0LDFd"}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Shortest session durations","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Shortest session durations\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"params\":{\"field\":\"event_attributes.dwell_time\",\"customLabel\":\"Duration in seconds\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"event_attributes.session_id.keyword\",\"orderBy\":\"1\",\"order\":\"asc\",\"size\":25,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Session\"},\"schema\":\"group\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":0,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Duration in seconds\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"histogram\",\"mode\":\"normal\",\"data\":{\"label\":\"Duration in seconds\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"right\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":false},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"orderBucketsBySum\":true}}"},"id":"5ae594e0-2d9f-11ef-9a92-fbd3515fac70","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"b8c824c3-6508-4495-a3d0-9f53e6723cdd","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:22:57.364Z","version":"WzE3LDFd"}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[{\"$state\":{\"store\":\"appState\"},\"meta\":{\"alias\":null,\"disabled\":false,\"key\":\"action_name\",\"negate\":false,\"params\":{\"query\":\"purchase\"},\"type\":\"phrase\",\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index\"},\"query\":{\"match_phrase\":{\"action_name\":\"purchase\"}}}],\"indexRefName\":\"kibanaSavedObjectMeta.searchSourceJSON.index\"}"},"title":"Longest Session Durations (copy)","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Longest Session Durations (copy)\",\"type\":\"histogram\",\"aggs\":[{\"id\":\"1\",\"enabled\":true,\"type\":\"sum\",\"params\":{\"field\":\"event_attributes.object.object_detail.price\",\"customLabel\":\"Price spent\"},\"schema\":\"metric\"},{\"id\":\"2\",\"enabled\":true,\"type\":\"terms\",\"params\":{\"field\":\"client_id\",\"orderBy\":\"1\",\"order\":\"desc\",\"size\":35,\"otherBucket\":false,\"otherBucketLabel\":\"Other\",\"missingBucket\":false,\"missingBucketLabel\":\"Missing\",\"customLabel\":\"Users' client_ids\"},\"schema\":\"segment\"},{\"id\":\"3\",\"enabled\":true,\"type\":\"sum\",\"params\":{\"field\":\"event_attributes.dwell_time\",\"customLabel\":\"dwell time\"},\"schema\":\"radius\"}],\"params\":{\"type\":\"histogram\",\"grid\":{\"categoryLines\":false,\"valueAxis\":\"ValueAxis-1\"},\"categoryAxes\":[{\"id\":\"CategoryAxis-1\",\"type\":\"category\",\"position\":\"bottom\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\"},\"labels\":{\"show\":true,\"filter\":true,\"truncate\":100},\"title\":{}}],\"valueAxes\":[{\"id\":\"ValueAxis-1\",\"name\":\"LeftAxis-1\",\"type\":\"value\",\"position\":\"left\",\"show\":true,\"style\":{},\"scale\":{\"type\":\"linear\",\"mode\":\"normal\"},\"labels\":{\"show\":true,\"rotate\":75,\"filter\":false,\"truncate\":100},\"title\":{\"text\":\"Price spent\"}}],\"seriesParams\":[{\"show\":true,\"type\":\"line\",\"mode\":\"normal\",\"data\":{\"label\":\"Price spent\",\"id\":\"1\"},\"valueAxis\":\"ValueAxis-1\",\"drawLinesBetweenPoints\":true,\"lineWidth\":2,\"showCircles\":true}],\"addTooltip\":true,\"addLegend\":true,\"legendPosition\":\"left\",\"times\":[],\"addTimeMarker\":false,\"labels\":{\"show\":true},\"thresholdLine\":{\"show\":false,\"value\":10,\"width\":1,\"style\":\"full\",\"color\":\"#E7664C\"},\"orderBucketsBySum\":true,\"radiusRatio\":12}}"},"id":"f1c37d80-2da1-11ef-9a92-fbd3515fac70","migrationVersion":{"visualization":"7.10.0"},"references":[{"id":"b8c824c3-6508-4495-a3d0-9f53e6723cdd","name":"kibanaSavedObjectMeta.searchSourceJSON.index","type":"index-pattern"},{"id":"b8c824c3-6508-4495-a3d0-9f53e6723cdd","name":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index","type":"index-pattern"}],"type":"visualization","updated_at":"2024-06-18T18:51:42.469Z","version":"WzI1LDFd"}
+{"attributes":{"description":"","kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"query\":\"\",\"language\":\"kuery\"},\"filter\":[]}"},"title":"Label","uiStateJSON":"{}","version":1,"visState":"{\"title\":\"Label\",\"type\":\"markdown\",\"aggs\":[],\"params\":{\"fontSize\":15,\"openLinksInNewTab\":false,\"markdown\":\"*The larger the circle above, the longer the time the user spent on the site*\"}}"},"id":"757f2cd0-2da4-11ef-9a92-fbd3515fac70","migrationVersion":{"visualization":"7.10.0"},"references":[],"type":"visualization","updated_at":"2024-06-18T18:58:51.608Z","version":"WzI5LDFd"}
+{"attributes":{"description":"","hits":0,"kibanaSavedObjectMeta":{"searchSourceJSON":"{\"query\":{\"language\":\"kuery\",\"query\":\"\"},\"filter\":[]}"},"optionsJSON":"{\"hidePanelTitles\":false,\"useMargins\":true}","panelsJSON":"[{\"embeddableConfig\":{},\"gridData\":{\"h\":15,\"i\":\"4dcf9d77-3294-49c5-9c2e-25be877b34f9\",\"w\":24,\"x\":0,\"y\":0},\"panelIndex\":\"4dcf9d77-3294-49c5-9c2e-25be877b34f9\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_0\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":15,\"i\":\"f6491630-bcdc-4b6e-aa82-ead6aa4ef88c\",\"w\":24,\"x\":24,\"y\":0},\"panelIndex\":\"f6491630-bcdc-4b6e-aa82-ead6aa4ef88c\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_1\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":15,\"i\":\"42b97dac-d467-4f2d-8a4b-9ef82aa04849\",\"w\":24,\"x\":0,\"y\":15},\"panelIndex\":\"42b97dac-d467-4f2d-8a4b-9ef82aa04849\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_2\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":15,\"i\":\"a4e1b903-8480-4be5-86e7-fc5faeb2e998\",\"w\":24,\"x\":24,\"y\":15},\"panelIndex\":\"a4e1b903-8480-4be5-86e7-fc5faeb2e998\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_3\"},{\"embeddableConfig\":{\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"f16f225c-a71f-46c5-ab58-4aed5d54fe16\",\"w\":24,\"x\":0,\"y\":30},\"panelIndex\":\"f16f225c-a71f-46c5-ab58-4aed5d54fe16\",\"title\":\"all searches with at least 1 result\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_4\"},{\"embeddableConfig\":{\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"17d1c62c-8095-49f4-8675-9fae1e3a7896\",\"w\":24,\"x\":24,\"y\":30},\"panelIndex\":\"17d1c62c-8095-49f4-8675-9fae1e3a7896\",\"title\":\"all searches\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_5\"},{\"embeddableConfig\":{\"hidePanelTitles\":false},\"gridData\":{\"h\":15,\"i\":\"8b6f3024-fb97-4e6f-a21b-df9ebf3527bd\",\"w\":24,\"x\":0,\"y\":45},\"panelIndex\":\"8b6f3024-fb97-4e6f-a21b-df9ebf3527bd\",\"title\":\"Longest session durations\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_6\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":15,\"i\":\"6f603293-afc1-4bf6-9f0f-f15379ac78b6\",\"w\":24,\"x\":24,\"y\":45},\"panelIndex\":\"6f603293-afc1-4bf6-9f0f-f15379ac78b6\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_7\"},{\"embeddableConfig\":{\"hidePanelTitles\":false},\"gridData\":{\"h\":28,\"i\":\"7ec6ac3d-fe0d-463e-81a3-0ac77d7590e4\",\"w\":48,\"x\":0,\"y\":60},\"panelIndex\":\"7ec6ac3d-fe0d-463e-81a3-0ac77d7590e4\",\"title\":\"Biggest spenders by time spent on site\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_8\"},{\"embeddableConfig\":{},\"gridData\":{\"h\":4,\"i\":\"8e997144-9142-43eb-b588-9ec863b8aa81\",\"w\":45,\"x\":1,\"y\":88},\"panelIndex\":\"8e997144-9142-43eb-b588-9ec863b8aa81\",\"version\":\"2.14.0\",\"panelRefName\":\"panel_9\"}]","timeRestore":false,"title":"User Behavior Insights","version":1},"id":"084f916a-3f75-4782-8773-4d07fcdbfda4","migrationVersion":{"dashboard":"7.9.3"},"references":[{"id":"2ddbc001-f5ae-4de9-82f3-30b28408bae6","name":"panel_0","type":"visualization"},{"id":"7234f759-31ab-467a-942e-d6db8c58477e","name":"panel_1","type":"visualization"},{"id":"78a48652-7423-4517-a869-9ba167afcc47","name":"panel_2","type":"visualization"},{"id":"cb78bb39-4437-4347-aade-15bc268c6a26","name":"panel_3","type":"visualization"},{"id":"a1840c05-bd0c-4fb2-8a50-7f51395e3d8d","name":"panel_4","type":"visualization"},{"id":"4af4cc80-33fd-4ef4-b4f9-7d67ecd84b20","name":"panel_5","type":"visualization"},{"id":"1bdad170-2d9f-11ef-9a92-fbd3515fac70","name":"panel_6","type":"visualization"},{"id":"5ae594e0-2d9f-11ef-9a92-fbd3515fac70","name":"panel_7","type":"visualization"},{"id":"f1c37d80-2da1-11ef-9a92-fbd3515fac70","name":"panel_8","type":"visualization"},{"id":"757f2cd0-2da4-11ef-9a92-fbd3515fac70","name":"panel_9","type":"visualization"}],"type":"dashboard","updated_at":"2024-06-18T20:01:02.353Z","version":"WzMwLDFd"}
+{"exportedCount":13,"missingRefCount":0,"missingReferences":[]}
\ No newline at end of file
diff --git a/images/dashboards/Add_datasource.gif b/images/dashboards/Add_datasource.gif
new file mode 100644
index 0000000000..789e1a2128
Binary files /dev/null and b/images/dashboards/Add_datasource.gif differ
diff --git a/images/dashboards/add-sample-data.gif b/images/dashboards/add-sample-data.gif
new file mode 100644
index 0000000000..6e569d704d
Binary files /dev/null and b/images/dashboards/add-sample-data.gif differ
diff --git a/images/dashboards/configure-tsvb.gif b/images/dashboards/configure-tsvb.gif
new file mode 100644
index 0000000000..fc91e9e669
Binary files /dev/null and b/images/dashboards/configure-tsvb.gif differ
diff --git a/images/dashboards/configure-vega.gif b/images/dashboards/configure-vega.gif
new file mode 100644
index 0000000000..290ad51416
Binary files /dev/null and b/images/dashboards/configure-vega.gif differ
diff --git a/images/dashboards/create-datasource.gif b/images/dashboards/create-datasource.gif
new file mode 100644
index 0000000000..789e1a2128
Binary files /dev/null and b/images/dashboards/create-datasource.gif differ
diff --git a/images/dashboards/make_tsvb.gif b/images/dashboards/make_tsvb.gif
new file mode 100644
index 0000000000..fc91e9e669
Binary files /dev/null and b/images/dashboards/make_tsvb.gif differ
diff --git a/images/dashboards/tsvb-viz.png b/images/dashboards/tsvb-viz.png
new file mode 100644
index 0000000000..efdf12484c
Binary files /dev/null and b/images/dashboards/tsvb-viz.png differ
diff --git a/images/dashboards/tsvb-with-annotations.png b/images/dashboards/tsvb-with-annotations.png
new file mode 100644
index 0000000000..6cb35632b8
Binary files /dev/null and b/images/dashboards/tsvb-with-annotations.png differ
diff --git a/images/dashboards/tsvb.png b/images/dashboards/tsvb.png
new file mode 100644
index 0000000000..85f55cc3ad
Binary files /dev/null and b/images/dashboards/tsvb.png differ
diff --git a/images/geopolygon-query.png b/images/geopolygon-query.png
new file mode 100644
index 0000000000..16d73628de
Binary files /dev/null and b/images/geopolygon-query.png differ
diff --git a/images/k-nn-search-hotels.png b/images/k-nn-search-hotels.png
new file mode 100644
index 0000000000..f17fd171cf
Binary files /dev/null and b/images/k-nn-search-hotels.png differ
diff --git a/images/make_vega.gif b/images/make_vega.gif
new file mode 100644
index 0000000000..290ad51416
Binary files /dev/null and b/images/make_vega.gif differ
diff --git a/images/ubi/001_screens_side_by_side.png b/images/ubi/001_screens_side_by_side.png
new file mode 100644
index 0000000000..b230204b5a
Binary files /dev/null and b/images/ubi/001_screens_side_by_side.png differ
diff --git a/images/ubi/dashboard2.png b/images/ubi/dashboard2.png
new file mode 100644
index 0000000000..9c00297080
Binary files /dev/null and b/images/ubi/dashboard2.png differ
diff --git a/images/ubi/first_dashboard.png b/images/ubi/first_dashboard.png
new file mode 100644
index 0000000000..7f3d4fabab
Binary files /dev/null and b/images/ubi/first_dashboard.png differ
diff --git a/images/ubi/histogram.png b/images/ubi/histogram.png
new file mode 100644
index 0000000000..799bffc813
Binary files /dev/null and b/images/ubi/histogram.png differ
diff --git a/images/ubi/home.png b/images/ubi/home.png
new file mode 100644
index 0000000000..7c009496ec
Binary files /dev/null and b/images/ubi/home.png differ
diff --git a/images/ubi/index_pattern1.png b/images/ubi/index_pattern1.png
new file mode 100644
index 0000000000..ca69405c7a
Binary files /dev/null and b/images/ubi/index_pattern1.png differ
diff --git a/images/ubi/index_pattern2.png b/images/ubi/index_pattern2.png
new file mode 100644
index 0000000000..b5127ffcfd
Binary files /dev/null and b/images/ubi/index_pattern2.png differ
diff --git a/images/ubi/index_pattern3.png b/images/ubi/index_pattern3.png
new file mode 100644
index 0000000000..201ec4fbf8
Binary files /dev/null and b/images/ubi/index_pattern3.png differ
diff --git a/images/ubi/laptop.png b/images/ubi/laptop.png
new file mode 100644
index 0000000000..6407139b36
Binary files /dev/null and b/images/ubi/laptop.png differ
diff --git a/images/ubi/new_widget.png b/images/ubi/new_widget.png
new file mode 100644
index 0000000000..5ba188c6a2
Binary files /dev/null and b/images/ubi/new_widget.png differ
diff --git a/images/ubi/pie.png b/images/ubi/pie.png
new file mode 100644
index 0000000000..7602d6a3aa
Binary files /dev/null and b/images/ubi/pie.png differ
diff --git a/images/ubi/product_purchase.png b/images/ubi/product_purchase.png
new file mode 100644
index 0000000000..7121c1fb4e
Binary files /dev/null and b/images/ubi/product_purchase.png differ
diff --git a/images/ubi/query_id.png b/images/ubi/query_id.png
new file mode 100644
index 0000000000..7051c8abb8
Binary files /dev/null and b/images/ubi/query_id.png differ
diff --git a/images/ubi/tag_cloud1.png b/images/ubi/tag_cloud1.png
new file mode 100644
index 0000000000..32db3ebadc
Binary files /dev/null and b/images/ubi/tag_cloud1.png differ
diff --git a/images/ubi/tag_cloud2.png b/images/ubi/tag_cloud2.png
new file mode 100644
index 0000000000..bdd01d3516
Binary files /dev/null and b/images/ubi/tag_cloud2.png differ
diff --git a/images/ubi/ubi-schema-interactions.png b/images/ubi/ubi-schema-interactions.png
new file mode 100644
index 0000000000..f2319bb2c1
Binary files /dev/null and b/images/ubi/ubi-schema-interactions.png differ
diff --git a/images/ubi/ubi-schema-interactions_legend.png b/images/ubi/ubi-schema-interactions_legend.png
new file mode 100644
index 0000000000..91cae04c74
Binary files /dev/null and b/images/ubi/ubi-schema-interactions_legend.png differ
diff --git a/images/ubi/ubi.png b/images/ubi/ubi.png
new file mode 100644
index 0000000000..c24ff6f4ab
Binary files /dev/null and b/images/ubi/ubi.png differ
diff --git a/images/ubi/visualizations.png b/images/ubi/visualizations.png
new file mode 100644
index 0000000000..9f06148686
Binary files /dev/null and b/images/ubi/visualizations.png differ
diff --git a/images/ubi/visualizations2.png b/images/ubi/visualizations2.png
new file mode 100644
index 0000000000..c54920023f
Binary files /dev/null and b/images/ubi/visualizations2.png differ
diff --git a/images/vega.png b/images/vega.png
new file mode 100644
index 0000000000..ae7ea76c9d
Binary files /dev/null and b/images/vega.png differ