> For the complete documentation index, see [llms.txt](https://docs.qyrus.com/device-farm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.qyrus.com/device-farm/project-creation-and-setup.md).

# Project Creation & Setup

* [Project Setup & Configuration](#project-setup--configuration)
  * [Application Management](#application-management)
  * [Authentication Management](#authentication-management)
  * [Integrations Management](#integrations-management)
  * [Network Profiles Management](#network-profiles-management)
  * [Remote Devices Management](#remote-devices-management)
  * [Swagger Documentation](#swagger-documentation)

## **Project Setup & Configuration**

Click the **‘Project Setup’** button on any project card to configure foundational settings across Applications, Tokens, Integrations, Network Profiles, Remote Devices, and Swagger API Documentation.

***

### **Application Management**

The Application Management screen allows you to upload, organize, and manage mobile application binaries for testing on the Device Farm platform.

#### Supported Application Types:

* **APK**: Android Package files (`.apk`)
* **IPA**: iOS Application Archive files (`.ipa`)
* **APKS**: Android Package Set files (`.apks`)
* **AAB**: Android App Bundle files (`.aab`)

#### 1. Uploading Application Files:

* Navigate to the **Application Files** tab inside Project Setup.
* Click on the **‘Upload File’** button.
* Choose your binary file or use the drag-and-drop area.
* *Multipart Upload:* The platform automatically utilizes optimized multipart upload strategies for large build files to ensure fast and resilient uploads.
* A progress bar tracks the upload progress in real time.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-9a75a0b372221a452ab34e362d7be7494947a9fc%2FAspose.Words.a5ba35ee-3494-4720-8f8c-7cedbeae1812.004.png?alt=media) ![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-fbe5ecb2ae479a968b887d56c8a1041899272cac%2FUpload-File.gif?alt=media)

#### 2. Managing Uploaded Applications:

* Uploaded binaries appear in the applications table with details such as File Name, Artifact Type, Size, Upload Date, and Status.
* **Upload Status:** When a file is first uploaded, its status shows as `Processing`. Once internal validation and activity extraction are complete, the status turns to `Completed`.
* **Deleting Application Files:** You can delete an uploaded file by clicking the Delete icon. A confirmation modal will ask for confirmation before permanent deletion.

> [Click here to learn more about using uploaded applications in Manual Testing](/device-farm/manual.md#choose-the-application-to-test-from-the-dropdown-list)

***

### **Authentication Management**

Authentication is critical for securing your Qyrus Device Farm account and protecting your testing data.

#### 1. Token Types:

* **Project Token:** A unique key representing the specific Project. This token is required when executing automation test scripts (such as Appium capabilities) and making project-scoped REST API calls.
* **User Token (API Key):** A unique key tied to your user account. It is passed as the `Custom` header in API requests and Appium authentication capabilities.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-08ba0bec5367e987b90192675389092590b6d43f%2FDF-auth-page.png?alt=media)

#### 2. Enhanced API Security & User Token Management:

* **Consolidated User Tokens:** User API tokens are centrally managed. You can view, activate, deactivate, or refresh them from your **Profile** page or the Authentication tab.
* **Active / Inactive Status Switch:** You can toggle your user token status between *Active* and *Inactive* at any time using the status switch.
* **Deprecation of Basic Auth:** Basic Auth (username/password) has been phased out in favor of secure token-based authentication.

#### 3. Token Generation & Regeneration Safety Modal:

* **Generate Token:** Click **‘Generate Token’** to create your initial token.
* **Copy Token:** Use the **‘Copy Token’** button to quickly copy the token to your clipboard.
* **Regenerate Token Safety Confirmation:** To regenerate a token, click the refresh button. A security confirmation modal will appear explaining that your existing key will be permanently invalidated. You must type `"Generate"` into the confirmation field before the key is regenerated.

***

### **Integrations Management**

Integrations empower you to streamline bug reporting and collaborate efficiently. By connecting Qyrus Device Farm with your issue tracking systems, you can create defect tickets directly from active sessions and test reports.

#### Steps to Configure Jira Integration:

1. Navigate to **Project Setup** > **Integrations** tab, or access the centralized Jira configuration directly from the global integrations dashboard.
2. Click on **Add Configuration**.
3. Fill in the integration details:
   * **Configuration Name:** Enter a descriptive identifier for this connection.
   * **Domain URL:** Enter the valid base URL of your Jira instance (e.g., `https://yourdomain.atlassian.net`).
   * **User Email & API Token:** Provide your Jira user email and API token ([Click here to learn how to generate an Atlassian API Token](https://support.atlassian.com/atlassian-account/docs/manage-api-tokens-for-your-atlassian-account/)).
4. **Test Connection:** Click **‘Test Connection’** to verify credentials and connectivity with Jira.
5. **Team & Project Mapping:** Select the Team, Service Store, and Projects that will utilize this Jira configuration.
6. Click **Create / Update Configuration** to save.

![Jira Configuration From setup Page](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-2906007bebe04114804b480b9be204917c8a29a2%2Fdf_jira_config.gif?alt=media) ![Jira Configuration From Dashboard](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-e36ca8e1826b7be315045f03035b151a93a2954b%2Fdashboard_jira_config.gif?alt=media)

***

### **Network Profiles Management**

Network profiles in Qyrus Device Farm allow you to simulate different real-world network conditions. You can control bandwidth, latency (delay), and packet loss to ensure your mobile apps perform reliably under varying network conditions.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-15bf6afd4f5cb1db2e6e4641b71cabf9576b142f%2FAspose.Words.a5ba35ee-3494-4720-8f8c-7cedbeae1812.008.png?alt=media) ![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-f672f12d05fbc2b7cd2f900638a3b21b5b0c942e%2FAspose.Words.a5ba35ee-3494-4720-8f8c-7cedbeae1812.009.png?alt=media)

#### 1. Predefined Presets vs Custom Profiles:

* **Preset Profiles:** Built-in standard profiles representing typical network environments (2G, 3G, 4G, Good, Poor, High Latency).
* **Custom Profiles:** Create custom network profiles tailored to your specific test scenarios.

#### 2. Creating a Custom Network Profile:

1. In the **Network Profiles** tab, click **‘New Profile’**.
2. Enter the profile parameters:
   * **Profile Name (Required):** A descriptive name for the profile.
   * **Bandwidth (Required):** Set the connection speed (in `mbps`, range: 1 to 100).
   * **Delay (Required):** Define the simulated latency (in `ms`, range: 0 to 1000).
   * **Packet Loss (Required):** Specify the packet loss percentage (`%`, range: 0 to 100).
3. Click **‘Add Profile’** to save.

#### 3. Editing and Deleting Profiles:

* Click the edit or delete icon next to any custom profile in the network profiles table to adjust its values or remove it.

***

### **Remote Devices Management**

Remote devices allow you to generate JSON capability configurations for Appium automation sessions and connect devices directly to your automated testing scripts.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-c205f68f887ca0deeaf8bb30d603234df18f86da%2FAspose.Words.a5ba35ee-3494-4720-8f8c-7cedbeae1812.010.png?alt=media)

#### Steps to Generate JSON Data for Automation:

1. **Filter and Select Device:** Filter by **Region** and **Platform** (`All`, `iOS`, `Android`, or `Cloud`). Select the target device.
2. **Select Application File:** Choose the uploaded binary from the dropdown. For Android, the system automatically detects the **App Package** and launch **App Activity**. Click **‘Copy URL’** to copy the binary endpoint.
3. **Generate JSON Capabilities:** Click **‘Generate JSON’** (or *‘Generate Payload JSON’* for cloud devices). Copy the formatted JSON capabilities into your test framework.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-9d18d12e2b0b64c82647ffbbddeb734df3971cc2%2FAspose.Words.a5ba35ee-3494-4720-8f8c-7cedbeae1812.011.png?alt=media)

#### Cloud Device Farm (AWS) Automation Workflow:

* **Start Session Endpoint:** `POST /device-farm/automation/provider/start?projectId={projectId}`
* **Stop Session Endpoint:** `POST /device-farm/automation/provider/stop?projectId={projectId}`

***

### **Swagger Documentation**

Device Farm provides an interactive Swagger UI built right into the platform. This documentation exposes all available REST APIs for developers to automate session management, network speed adjustments, device queries, and artifacts management.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-790d4a1058c45391cfc28a59ab1be21f8c7e27de%2FSwagger.png?alt=media) ![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-2b26270c5d188fd2214c7741900929c725655ba0%2FSwagger-1.png?alt=media)

#### Key Authentication Headers and Parameters:

* **`projectId` / `projectUUID`:** Your unique Project Token.
* **`Custom`:** Your User API Token.
* **`sessionId` / `sessionUUID`:** The unique session identifier (in Appium: `driver.getSessionId()`).
* **`profileName`:** Name of the network profile to apply.

#### Interactive API Testing:

* Click on any endpoint in the Swagger Docs tab.
* Click **‘Try it out’**, enter parameters, and click **‘Execute’** to test API behavior and view live response payloads.

![Alt text](https://2346916530-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkSZu8cT8D2Zwayrr4I91%2Fuploads%2Fgit-blob-29741e83d930cb6ad3d9e53041528b60951edded%2FSwagger.gif?alt=media)

***
