# Launching a New Race App

The RUFUS Race App is created and managed from **RUFUS Cloud**. Each Race App instance behaves like a virtual device, with its own App ID, access token, expiration window, and session history.

This article explains how to launch a new Race App, manage its access, and understand how sessions and token rotation work.

## Where to Create a Race App

Race Apps are created from:

**RUFUS Cloud → Devices panel**

In the Devices view, you will find the **Launch Race App** section.

![](https://rufus-serverless-v1-shopmediabucket-yqa11v58uwom.s3.us-east-1.amazonaws.com/knowledge/assets/knowledge_asset_24b06de81c2c431a8aa7ec56ca107ef1/imported.png)
_Launch Race App Card_

Launching a Race App creates:

* A virtual device record
* A unique App ID
* An access token
* A token expiration (TTL)
* A Cloud-level audit trail

## Launching a New Race App

To create a Race App:

1. Click **Launch Race App**
2. Enter a friendly alias (device name)
3. Select the **Access Token TTL** (expiration window)

![](https://rufus-serverless-v1-shopmediabucket-yqa11v58uwom.s3.us-east-1.amazonaws.com/knowledge/assets/knowledge_asset_34b8fec5ba5f4d9eba337af0de229431/imported.png)
_Race App Access Information Card_

Once created, Cloud generates:

* **App ID**
`race-app.runonrufus.com/<AppId>`
* **Access Token** (format `JUDGE-XXXXX-YYYYY`)
* **Expiration time** (`race_app_token_until`)

The Race App now appears in your Devices list as a virtual Race App device.

![](https://rufus-serverless-v1-shopmediabucket-yqa11v58uwom.s3.us-east-1.amazonaws.com/knowledge/assets/knowledge_asset_169e082abf0e4d34a2d51b2a67e39b82/imported.png)
_Race App Card_

## Understanding Access Token TTL

The Access Token TTL defines how long the token remains valid.

When the TTL expires:

* The token stops working
* Judges can no longer log in
* A new token must be generated

Best practice:
Set the TTL long enough to cover:

* Setup time
* Full race window
* Post-race buffer

If needed, you can refresh (rotate) the token at any time.

## Sharing Access with Judges

To give access to a judge, you must provide:

* The App link (`race-app.runonrufus.com/<AppId>`)
* The Access Token

Both are required.

At login, the judge must also enter:

* Their name (used for identification and audit)

**Important:**
Only one active judge can use the token at a time. If another judge logs in using the same token, they take over the session.

## Device Details (Race App Device Card)

![](https://rufus-serverless-v1-shopmediabucket-yqa11v58uwom.s3.us-east-1.amazonaws.com/knowledge/assets/knowledge_asset_c5e2c8606b2047e9a7b07e36641b5fb4/imported.png)
_Race App Details_

Opening the Race App device card in Cloud allows you to see:

* App ID
* Direct App link
* Current Access Token
* Token expiration time
* Sessions tied to this token
* Passings recorded
* Race Actions recorded
* App current location (if Location is enabled in the mobile)

This provides an administrative audit view at Cloud level.

**Remember:**
Cloud is the administrative control layer. Race operations are managed inside Race Manager.

## Sessions Explained

A session is tied to the active access token.

A session becomes active when:

* The Race App token is used
* The device is assigned to an event in Race Manager

Important behaviors:

* Only one active judge per token
* Logging out does not erase session history
* Live Activity and Team Chat remain available for the same token
* A completely new session is created only when the token is refreshed

If another judge logs in with the same token:

* The previous judge is automatically logged out
* The new judge continues within the same token session

## Token Rotation (Hard Reset)

The **Refresh access token** button generates a completely new token.

When you rotate the token:

* The previous token is immediately invalidated
* Any active judge session is closed
* A new session lifecycle begins

Use token rotation when:

* Access was shared incorrectly
* A judge should no longer have access
* You need a clean operational reset

After rotation:
You must communicate the new token to the judge. The old one will stop working immediately.

## Assigning the Race App to an Event

Launching the Race App in Cloud does not automatically connect it to an event.

Inside **RUFUS Race Manager**:

1. Open the event
2. Go to Devices
3. Assign the Race App device to:
* The event
* One or more checkpoint(s)

![](https://rufus-serverless-v1-shopmediabucket-yqa11v58uwom.s3.us-east-1.amazonaws.com/knowledge/assets/knowledge_asset_db216b2862794fbdbab829de421ed7c4/imported.png)
_Add Device Dialog in RRM_

Once assigned:

* The Race App can send Manual Timing passings
* Race Actions will appear in Race Notifications
* The session becomes operationally active

## Sessions, Passings and Race Actions (Cloud View)

From the Cloud device card, you can audit:

### Sessions

Event-bound operational sessions tied to the token.

### Passings

Generated from Manual Timing.

### Race Actions

Generated from:

* Penalty & Bonus
* Status changes
* Race Alerts
* Team Chat

Cloud acts as the control plane and audit layer, while Race Manager handles live race operations.

## Operational Best Practices

Before race day:

* Launch the Race App early.
* Set an appropriate TTL.
* Assign the device to checkpoints in Race Manager.
* Share link and token with judges.

During race day:

* Monitor sessions in Cloud.
* Rotate token if access needs to be reset.
* Verify device assignment in Race Manager.

After race day:

* Review audit history if needed.
* Rotate the token if the device should no longer be accessible.

## Summary

Launching a Race App in RUFUS Cloud creates a controlled, token-based virtual device that judges use during race operations.

The Access Token defines who can log in, the TTL defines how long it remains valid, and token rotation provides a secure reset mechanism.

Cloud manages access and audit. Race Manager handles operational execution.
