> ## Documentation Index
> Fetch the complete documentation index at: https://docs.molesignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# RUM applications

> Create the application that RUM data belongs to, give its client token to an SDK, and choose what is kept with each event.

An application is the website or the app that sends RUM events. Create it before any SDK sends data:
the client token is bound to one application, and MoleSignal refuses an event for an application that
does not exist.

Open **RUM → Applications** to list the applications of the workspace. Creating, changing, and deleting
an application requires `api_tokens.manage`, because an application comes with its client token.
Reading the list requires `streams.query`.

## Create an application

**1. Open the form**

Click **Create application**. A workspace without an application shows the same button on the
explorer.

**2. Name the application**

Enter a **Name** of up to 128 characters that no other application uses, such as `Checkout web`, and choose the **Platform**:
Browser, Android, iOS, Flutter, React Native, or Other. The platform decides which setup
snippet the application shows and nothing else: an event says by its `source` what sent it.

**3. Decide the identifier**

The **Identifier** is the value SDKs are configured with as `applicationId`. Leave it blank to
make it from the name (`checkout-web`) or type one of up to 64 characters from `A-Z`, `a-z`, `0-9`,
`.`, `_`, `:`, and `-`. The identifier cannot change after the application is created.

**4. Click Create**

The application opens with its client token.

Creating an application also creates the seven RUM streams of the workspace when they do not exist yet.

## Client token

Open an application to see its **Client token**. The token has the form `msrum_<prefix>_<secret>`, never expires,
and holds only `rum.write` for this application. It is shown masked. Select **Show the token** or **Copy the token**.

> [!WARNING]
>
> The token ships inside browser and mobile code, where users can read it. Use only this token in client code, and never
> an owner, administrator, or personal token. Deleting the application revokes the token.

The same token is available from the [API](https://docs.molesignal.com/en-US/api/auth/rum-token.md). **Open the setup guide** in the application opens
the **Datasource** guide of the platform with the application chosen: the guide shows the endpoint, the token,
the SDK snippet filled in with the identifier, and a check that data arrives. React Native and Other have no guide: send the
[events](https://docs.molesignal.com/en-US/rum/events.md) with the token directly.

## Collection

The settings of an application decide what is kept with each event. Change them in the application and click **Save**.

| Setting | Default | Effect |
| - | - | - |
| **Keep the IP address** | On | Stores the client address as `network.client.ip`, as the server resolved it. Behind a proxy, set up [client IP recognition](https://docs.molesignal.com/en-US/rum#client-ip-behind-a-proxy) first. |
| **Keep the location** | On | Stores the country, region, and city looked up from the address. The lookup is made even when the address is not kept, and only its result is stored. |
| **Default privacy** | Mask text and inputs | The privacy level the setup snippet suggests for session replay: **Mask text and inputs** or **Record everything shown**. |

A change applies to events that arrive after it. Data already stored does not change.

## Sensitive data and sessions kept

**Sensitive data** has a switch for each kind of text the server takes out of an event before it is stored: tokens, keys, and
passwords; email addresses; phone numbers; payment card numbers; identity numbers; and the values of sensitive URL parameters.
All are on by default. See [RUM privacy](https://docs.molesignal.com/en-US/rum/privacy.md#take-sensitive-text-out-at-intake) for what each takes out.

**Sessions kept** says which sessions the application stores. **Share of sessions kept (%)** keeps that share of the sessions the
application receives, a whole number from `0` to `100`, and a session is kept or dropped as a whole, its replay included.
**Add a filter** gives the sessions it describes (by environment, version, country, browser, and the like) a share of their own, the first
filter that describes a session deciding; the share of the others is then **Share of the other sessions kept (%)**. **Keep every
error** stores the errors of the sessions that are not kept all the same. Pages that show totals scale what was kept up to every
session and say **Estimated**. See [RUM data sampling](https://docs.molesignal.com/en-US/rum/sampling.md#keep-a-share-of-sessions-at-the-server).

## Issues

The **Issues** section sets how many new [issues](https://docs.molesignal.com/en-US/rum/errors.md#new-issues-an-hour) the application opens in an hour.

| Setting | Default | Effect |
| - | - | - |
| **New issues an hour** | 100 | From 1 to 10,000. Past it, the errors that belong to no issue yet are counted together as one issue named **Other errors** until the hour ends. A change applies within half a minute. |

## Delete an application

Click **Delete application** and confirm. The client token stops working at once, and SDKs that use it are refused.
The events the application already sent stay in the streams until their retention ends them, and remain searchable
in the explorer.

> **[RUM event format](https://docs.molesignal.com/en-US/rum/events.md)**
>
> The events a client sends with the token.

> **[Browser RUM SDK](https://docs.molesignal.com/en-US/rum/browser-sdk.md)**
>
> Configure the SDK with the identifier and the token.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.