diff --git a/docs/basics/acct-team-mgmt-hub.md b/docs/basics/acct-team-mgmt-hub.md
index bad9e099c6..184b7ae570 100644
--- a/docs/basics/acct-team-mgmt-hub.md
+++ b/docs/basics/acct-team-mgmt-hub.md
@@ -1,10 +1,10 @@
---
id: acct-team-mgmt-hub
-title: Account and Team Management
+title: Account and Organization Management
sidebar_label: Getting Started
---
-The Account area in Sauce Labs provides several options for you to configure your teams, users, and accounts.
+The Account area in Sauce Labs provides several options for you to configure your teams, users, and service accounts.
@@ -12,9 +12,10 @@ The Account area in Sauce Labs provides several options for you to configure you
Settings and Accounts
Sauce Labs offers a number of features to set up additional team members who can share your account.
diff --git a/docs/basics/acct-team-mgmt/adding-deleting-teams.md b/docs/basics/acct-team-mgmt/adding-deleting-teams.md
index dc869a28a2..c1435207ef 100644
--- a/docs/basics/acct-team-mgmt/adding-deleting-teams.md
+++ b/docs/basics/acct-team-mgmt/adding-deleting-teams.md
@@ -29,6 +29,11 @@ If you are an organization admin, you can create and delete teams and assign con
## Deleting Teams
+:::note
+Teams that contain service accounts cannot be deleted. Remove all service accounts before attempting to delete the team.
+However, if a team only contains user accounts, you can delete it by selecting a target team to which the users will be reassigned.
+:::
+
1. On Sauce Labs, click **ACCOUNT** and then click **Organization Management**.
2. On the **TEAMS** tab, select the checkbox of the team or teams you want to delete.
3. Next to **TEAMS SELECTED**, in the **Action** dropdown, click **Delete team**.
diff --git a/docs/basics/acct-team-mgmt/managing-service-accounts.md b/docs/basics/acct-team-mgmt/managing-service-accounts.md
new file mode 100644
index 0000000000..65391064dd
--- /dev/null
+++ b/docs/basics/acct-team-mgmt/managing-service-accounts.md
@@ -0,0 +1,149 @@
+---
+id: managing-service-accounts
+title: Managing Service Accounts
+sidebar_label: Managing Service Accounts
+---
+
+import useBaseUrl from '@docusaurus/useBaseUrl';
+import Tabs from '@theme/Tabs';
+import TabItem from '@theme/TabItem';
+
+Paid Plans Only
+
+:::note
+Service accounts are available only on paid plans. Free trial accounts cannot create service accounts.
+:::
+
+## Overview
+
+Service accounts are non-human accounts designed for automated processes such as CI/CD pipelines and integrations.
+
+:::tip
+Throughout this documentation, non-human accounts will always be referred to as **service accounts**. In contrast, accounts associated with individual users and linked to an email address will be referred to as **users** or **user accounts**.
+:::
+
+Service accounts can be managed by any team administrator in their active team or any organization administrator.
+
+Unlike user accounts, service accounts:
+
+- Are not tied to a specific user and remain functional even if the creator is deleted.
+- Cannot switch teams after creation.
+
+Key characteristics:
+
+- **No UI or SAML SSO Sign-In:** Service accounts cannot log in to the Sauce Labs UI or via SAML Single Sign-On.
+- **No Email Notifications:** They do not have an email address and will not receive notifications.
+- **Credentials for Automation:** They use a username and access key for API access and running tests as user accounts.
+- **Team Assignment:** Once created, a service account is tied to a specific team and cannot be reassigned.
+- **Limited Permissions:** Service accounts have limited permissions compared to user accounts, amongst others they **cannot**:
+ - manage teams and accounts ([Accounts API](/dev/api/accounts/))
+ - manage tunnels with Sauce Trusted Connection ([Sauce Connect API](/dev/api/connect/), [SC CLI 4](/dev/cli/sauce-connect-proxy), [SC CLI 5](/dev/cli/sauce-connect-5))
+ - manage private real devices ([Private Real Device API](/dev/api/rdc/#private-real-device-management))
+ - use the [API Testing API](/dev/api/api-testing/)
+ - submit a crash in the [Crash/Error Reporting](/dev/api/error-reporting/)
+ - use the [Sauce Orchestrate](/orchestrate)
+ - use the [Virtual USB CLI](/dev/cli/virtual-usb/)
+
+## Creating a Service Account
+
+### As a Team Administrator
+
+1. Click the **Account icon**
in the top-right corner and select **Team management**.
+2. Navigate to the **Service Accounts** tab.
+3. Click **+ New Service Account**.
+4. Enter a **Display name** and verify the **Assigned Team**:
+ - The username is auto-generated based on the display name.
+ - You can update the display name later, but the username remains fixed.
+ - The service account is automatically assigned to your active team and cannot be reassigned later.
+
+5. Copy and securely store the username and the access key.
+ - **Important:** The access key is available only during this step and cannot be retrieved later.
+
+
+### As an Organization Administrator
+
+1. Click the **Account icon**
in the top-right corner and select **Organization management**.
+2. Click the **Service Accounts** tab to manage all service accounts across your entire organization.
+ - Alternatively, to manage service accounts for a specific team, select that team from the **Teams** tab and then click the **Service Accounts** tab.
+3. Click **+ New Service Account**.
+4. Enter a **Display name** and choose the appropriate **Assigned Team**:
+ - The username is auto-generated based on the display name.
+ - You can update the display name later, but the username remains fixed.
+ - When managing service accounts at the organization level, you can assign the account to any team but it cannot be reassigned later.
+
+5. Copy and securely store the username and the access key.
+ - **Important:** The access key is available only during this step and cannot be retrieved later.
+
+
+## Managing Service Accounts
+
+### Accessing the Service Account Details View
+
+- **Team Administrators:** Can manage service accounts only in their active team. Use [the team assignment dropdown list](/basics/acct-team-mgmt/switching-active-team) to switch teams.
+- **Organization Administrators:** Can manage service accounts across any team.
+
+#### As a Team Administrator
+
+1. Click the **Account icon**
in the top-right corner and select **Team management**.
+2. Click the **Service Account** tab.
+3. Click on the username of the service account you want to manage.
+
+#### As an Organization Administrator
+
+1. Click the **Account icon**
in the top-right corner and select **Organization management**.
+2. Click the **Service Accounts** tab to manage all service accounts across your entire organization.
+ - Alternatively, to manage service accounts for a specific team, select that team from the **Teams** tab and then click the **Service Accounts**
+3. Click on the username of the service account you want to manage.
+
+### Deleting a Service Account
+
+1. Open the [service account details view](#accessing-the-service-account-details-view).
+2. Click the delete button.
+
+3. Confirm the deletion.
+
+### Deleting Service Accounts in Bulk
+
+1. Open the [service account details view](#accessing-the-service-account-details-view).
+2. Select the checkboxes next to the service accounts you want to delete.
+3. From the dropdown menu, choose **Delete service accounts**.
+
+
+### Resetting the Access Key
+
+1. Open the [service account details view](#accessing-the-service-account-details-view).
+2. Click the reset access key button.
+
+3. Confirm the reset action.
+4. Copy and securely store the new access key.
+ - **Important:** The access key is available only during this step and cannot be retrieved later.
+
+
+### Updating the Display Name
+
+1. Open the [service account details view](#accessing-the-service-account-details-view).
+2. Edit the display name field.
+
+3. Click the **Update** to save your changes.
+
+
+:::note
+Changing the display name does not affect the auto-generated username.
+:::
+
+## Running Tests as a Service Account
+
+You can run tests as a service account in the same way you would with a user account - use the service account's username and access key.
+
+### Viewing Test Results
+
+Jobs run by service accounts are displayed on the [Automated Test Results page](/test-results/viewing-test-results/#automated-test-results). The visibility and permissions for jobs and builds run by service accounts are the same as those for user accounts:
+
+- **When "Job Visibility Across Teams" is enabled** in the [Organization Security Settings](/basics/acct-team-mgmt/org-settings/#security-settings):
+ Users and service accounts across all teams in your organization can view jobs and builds from any team.
+- **When "Job Visibility Across Teams" is disabled:**
+ Users and service accounts can only view jobs and builds associated with their active team.
+
+### Using Sauce Connect Proxy with a Service Account
+
+If you plan to run tests through a [Sauce Connect Proxy tunnel](/secure-connections/), be mindful of tunnel sharing options. Service accounts cannot create or manage tunnels, so you must use a tunnel that has been shared with the service account’s assigned team. For detailed configuration instructions, refer to the [shared tunnels section](/secure-connections/sauce-connect-5/operation/overview/#shared-tunnels).
diff --git a/docs/basics/acct-team-mgmt/managing-user-info.md b/docs/basics/acct-team-mgmt/managing-user-info.md
index 35accb686f..4181d4c69e 100644
--- a/docs/basics/acct-team-mgmt/managing-user-info.md
+++ b/docs/basics/acct-team-mgmt/managing-user-info.md
@@ -96,11 +96,11 @@ Regenerating your access key will update the access key throughout your configur
## User Roles
-| Role | Permissions |
-| ------------------ |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Organization Admin | - Create and delete teams, and move teams within an organization
- Manage Organization Settings
- Manage users across the organization:
- Add and deactivate users
- Reset user passwords
- Change email addresses and names
- Assign user roles
- Move users between teams
- View user activity
- Set concurrency allocation for teams
- Sauce Connect Proxy tunnels:
- Create tunnels for users across the organization to share
- Limit access to shared tunnels
- Stop any and all tunnels
- View all jobs in the organization
- Modify Real Device App Settings
|
-| Team Admin | - Only a user assigned to a team can become a team admin
- Manage the team and users on the team
- View team usage and users assigned to the team
- Sauce Connect Proxy Team tunnels:
- View shared tunnels and non-shared tunnels created by team members
- Start shared tunnels
- Stop tunnels they have started
- Manage users on the team:
- Reset user passwords
- Change email addresses and names
- Move users between their team and the list of users who are not assigned to any team
- View user activity
- View jobs that were run by team members
- View jobs that were run by members of other teams
- Modify Real Device App Settings
|
-| Team Member | - Edit personal information such as name, password, and email address
- View jobs that were run by other team members
- View jobs that were run by members of other teams in the organization
- Sauce Connect Proxy tunnels:
- Start tunnels for individual use or to be shared with other team members
- Stop tunnels they have started
|
+| Role | Permissions |
+| ------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Organization Admin | - Create and delete teams, and move teams in an organization
- Manage Organization Settings
- Manage users across the organization:
- Add and deactivate users
- Reset user passwords
- Change email addresses and names
- Assign user roles
- Move users between teams
- View user activity
- Manage service accounts across the organization
- Set concurrency allocation for teams
- Sauce Connect Proxy tunnels:
- Create tunnels for users across the organization to share
- Limit access to shared tunnels
- Stop any and all tunnels
- View all jobs in the organization
- Modify Real Device App Settings
|
+| Team Admin | - Only a user assigned to a team can become a team admin
- Manage the team
- View team usage and users assigned to the team
- Sauce Connect Proxy Team tunnels:
- View shared tunnels and non-shared tunnels created by team members
- Start shared tunnels
- Stop tunnels they have started
- Manage users on the team:
- Reset user passwords
- Change email addresses and names
- Move users between their team and the list of users who are not assigned to any team
- View user activity
- Manage service accounts in the team
- View jobs that were run by team members (users and service accounts)
- View jobs that were run by members of other teams (if the [Job Visibility Across Teams](/basics/acct-team-mgmt/org-settings/#security-settings) is enabled)
- Modify Real Device App Settings
|
+| Team Member | - Edit personal information such as name, password, and email address
- View jobs that were run by other team members (users and service accounts)
- View jobs that were run by members of other teams in the organization (if the [Job Visibility Across Teams](/basics/acct-team-mgmt/org-settings/#security-settings) is enabled)
- Sauce Connect Proxy tunnels:
- Start tunnels for individual use or to be shared with other team members
- Stop tunnels they have started
|
In every organization, multiple Organization Admins and/or Team Admins can exist. However, users can only be part of one organization.
diff --git a/docs/basics/acct-team-mgmt/org-settings.md b/docs/basics/acct-team-mgmt/org-settings.md
index 43bc81250f..33553cdae9 100644
--- a/docs/basics/acct-team-mgmt/org-settings.md
+++ b/docs/basics/acct-team-mgmt/org-settings.md
@@ -29,7 +29,7 @@ To access General settings:
## Security Settings
Enterprise Plans only
-Sauce Labs security settings allow organization admins to manage how users in their enterprise can run tests.
+Sauce Labs security settings allow organization admins to manage how users and service accounts in their enterprise can run tests.
To access Security settings:
@@ -40,14 +40,14 @@ To access Security settings:
3. On the **Security** tab, you have the following options:
-| Option | Description |
-| -------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Require Sauce Connect Proxy/VPN | Sauce Connect Proxy and IPSec VPN provide a secure connection between the Sauce Labs cloud and apps under test that are typically behind a firewall or on a local machine.
When this option is set to **Enabled**:- All network traffic from real devices, virtual platforms (browsers, emulators, and simulators) MUST go through a Sauce Connect Proxy or IPSec VPN tunnel.
- No network traffic can occur outside the tunnel, unless intentionally directed by the user (i.e., exceptions for specific domains can be made with certain Sauce Connect Proxy commands).
- If no Sauce Connect Proxy or IPSec VPN tunnels are available, all tests on real devices, virtual browsers, emulators, and simulators will fail.
This feature is disabled by default.
|
-| Allow Only Organization Admins to Start Sauce Connect Proxy Tunnels | When this option is set to **Enabled**, all users except organization admins will be prevented from starting new Sauce Connect Proxy tunnels. Users would need to run tests using existing, shared Sauce Connect Proxy tunnels.
This feature is disabled by default. |
-| Enable Sauce Connect Proxy/VPN for Public Cloud Devices RDC PUBLIC DEVICES ONLY
| When this option is set to **Enabled**:- An organization admin must accept the waiver before toggling this option on.
- All users will be allowed to use Sauce Connect Proxy tunnels for the Real Device Public Cloud.
This feature is disabled by default because a waiver must be accepted by an organization admin in order to enable it. |
-| Enable Job Visibility Across Teams | When this option is set to **Enabled**, users across teams will be able to see jobs and builds from all other teams in your organization. If disabled, users will only be able to see jobs and builds from their team.
This feature is enabled by default. |
-| Logout URL | This option allows you to run custom processes after the user logs out. You can define a secure https:// URL to redirect the user to that URL on logout or if a session times out. If this field is empty, users will be redirected to the default login page.
Should you decide to use this, you must enter a URL starting with **HTTPS** (HTTP will not work). |
-| Reset All Access Keys | All users have a unique access key that they use to authenticate to Sauce Labs, which is usually integrated into their test scripts. Clicking **Reset All Access Keys** will invalidate all access keys for your organization, and require users to update their tests scripts with new access keys.
If a user attempts to run a script containing an invalidated access key, the test and any build that contains it will fail. You should only click **Reset All Access Keys** in the event of a major security issue. |
+| Option | Description |
+| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Require Sauce Connect Proxy/VPN | Sauce Connect Proxy and IPSec VPN provide a secure connection between the Sauce Labs cloud and apps under test that are typically behind a firewall or on a local machine.
When this option is set to **Enabled**:- All network traffic from real devices, virtual platforms (browsers, emulators, and simulators) MUST go through a Sauce Connect Proxy or IPSec VPN tunnel.
- No network traffic can occur outside the tunnel, unless intentionally directed by the user (i.e., exceptions for specific domains can be made with certain Sauce Connect Proxy commands).
- If no Sauce Connect Proxy or IPSec VPN tunnels are available, all tests on real devices, virtual browsers, emulators, and simulators will fail.
This feature is disabled by default.
|
+| Allow Only Organization Admins to Start Sauce Connect Proxy Tunnels | When this option is set to **Enabled**, all users except organization admins will be prevented from starting new Sauce Connect Proxy tunnels. Users would need to run tests using existing, shared Sauce Connect Proxy tunnels.
This feature is disabled by default. |
+| Enable Sauce Connect Proxy/VPN for Public Cloud Devices RDC PUBLIC DEVICES ONLY
| When this option is set to **Enabled**:- An organization admin must accept the waiver before toggling this option on.
- All users will be allowed to use Sauce Connect Proxy tunnels for the Real Device Public Cloud.
This feature is disabled by default because a waiver must be accepted by an organization admin in order to enable it. |
+| Enable Job Visibility Across Teams | When this option is set to **Enabled**, users and service accounts across teams will be able to see jobs and builds from all other teams in your organization. If **Disabled**, users and service accounts will only be able to see jobs and builds from their team.
This feature is enabled by default. |
+| Logout URL | This option allows you to run custom processes after the user logs out. You can define a secure https:// URL to redirect the user to that URL on logout or if a session times out. If this field is empty, users will be redirected to the default login page.
Should you decide to use this, you must enter a URL starting with **HTTPS** (HTTP will not work). |
+| Reset All Access Keys | All users have a unique access key that they use to authenticate to Sauce Labs, which is usually integrated into their test scripts. Clicking **Reset All Access Keys** will invalidate access keys for all users in your organization, and require users to update their tests scripts with new access keys. You should only click **Reset All Access Keys** in the event of a major security issue.
**Note:** This action does not affect [service accounts](/basics/acct-team-mgmt/managing-service-accounts/). It will only rotate access keys for user accounts. |
## Single Sign-On Settings (Deprecated Flow)
diff --git a/docs/basics/acct-team-mgmt/sauce-connect-proxy-tunnels.md b/docs/basics/acct-team-mgmt/sauce-connect-proxy-tunnels.md
index 1365875522..a729b2f3c0 100644
--- a/docs/basics/acct-team-mgmt/sauce-connect-proxy-tunnels.md
+++ b/docs/basics/acct-team-mgmt/sauce-connect-proxy-tunnels.md
@@ -6,7 +6,10 @@ sidebar_label: Sharing Sauce Connect Proxy Tunnels
You can share Sauce Connect Proxy tunnels based on the hierarchical structure of your [user roles](/basics/acct-team-mgmt/managing-user-info/#user-roles). You can also verify which tunnels are available on the **Tunnels** page in Sauce Labs.
-| Role Creating Tunnel | Sharing Options (live testing or test automation) | Use Tunnels (live testing or test automation) | Stop options (from tunnels page) |
-| -------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------- |
-| Organization Admin | Tunnels available for all users. | Any tunnel. | Any tunnel. |
+For instructions on running a job using a shared tunnel, refer to the [shared tunnels guide](/secure-connections/sauce-connect-5/operation/overview/#shared-tunnels).
+
+| Role Creating Tunnel | Sharing Options (live testing or test automation) | Use Tunnels (live testing or test automation) | Stop options (from tunnels page) |
+| -------------------- | ----------------------------------------------------------------------------------------- | ---------------------------------------------------------- | ------------------------------------------------- |
+| Organization Admin | Tunnels available for all users. | Any tunnel. | Any tunnel. |
| Team Member | Can create tunnels for individual use. Tunnels available for all users within their team. | Tunnels they created, or tunnels shared to **their** team. | Only the owner (the user who created the tunnel). |
+| Service Account | Cannot start tunnels. | Only tunnels shared with **their** team. | Cannot stop any tunnel. |
diff --git a/docs/basics/environment-variables.md b/docs/basics/environment-variables.md
index 764cc19234..075e48c23d 100644
--- a/docs/basics/environment-variables.md
+++ b/docs/basics/environment-variables.md
@@ -15,7 +15,8 @@ For a list of Sauce Connect Proxy environment variables, see [Environment Variab
## What You’ll Need
- A Sauce Labs account ([Log in](https://accounts.saucelabs.com/am/XUI/#login/) or sign up for a [free trial license](https://saucelabs.com/sign-up))
-- Your Sauce Labs [Username and Access Key](https://app.saucelabs.com/user-settings)
+- [Username and access key](https://app.saucelabs.com/user-settings) of your Sauce Labs user account.
+ - Alternatively, you can use the credentials of a [service account](/basics/acct-team-mgmt/managing-service-accounts). The username and access key for a service account are provided during [its creation](/basics/acct-team-mgmt/managing-service-accounts/#creating-a-service-account).
## Setting Up Environment Variables
diff --git a/docs/dev/api.md b/docs/dev/api.md
index 3f6bc91a3e..3b28f5a173 100644
--- a/docs/dev/api.md
+++ b/docs/dev/api.md
@@ -17,7 +17,8 @@ You can check the current accessibility of any Sauce Labs system on the [Sauce L
## What You'll Need
- A Sauce Labs account ([Log in](https://accounts.saucelabs.com/am/XUI/#login/) or sign up for a [free trial license](https://saucelabs.com/sign-up))
-- Your Sauce Labs [Username and Access Key](https://app.saucelabs.com/user-settings)
+- [Username and access key](https://app.saucelabs.com/user-settings) of your Sauce Labs user account.
+ - Alternatively, you can use the credentials of a [service account](/basics/acct-team-mgmt/managing-service-accounts). The username and access key for a service account are provided during [its creation](/basics/acct-team-mgmt/managing-service-accounts/#creating-a-service-account).
## Accessing the APIs
@@ -39,6 +40,8 @@ The request examples throughout the API documentation utilize variables in place
The Sauce Labs API uses API keys to authenticate requests. You can view and manage your API key under your [Sauce Labs User Settings](https://app.saucelabs.com/user-settings).
+Alternatively, you can use the username and access key of a [service account](/basics/acct-team-mgmt/managing-service-accounts) to authenticate API requests. Service account credentials are generated during [account creation](/basics/acct-team-mgmt/managing-service-accounts/#creating-a-service-account).
+
Authentication to the API is performed via [HTTP Basic Auth](http://en.wikipedia.org/wiki/Basic_access_authentication). Provide your username and API key as the basic auth username and password values, respectively. All requests must be made over HTTPS. Calls made over HTTP or without proper authentication will fail.
You can provide your authentication credentials as inline parameters of your request or using a Basic Header.
@@ -115,7 +118,7 @@ The Sauce Labs REST API places rate limits on some endpoints in order to prevent
For example:
-- Incoming authenticated API requests have rate limits imposed against the individual user accounts.
+- Incoming authenticated API requests have rate limits imposed against the individual account.
- Incoming unauthenticated API requests have rate limits imposed against the IP addresses.
Requests received after the rate limit is reached return a [429 response code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/429#:~:text=The%20HTTP%20429%20Too%20Many,before%20making%20a%20new%20request) indicating that the number of allowable requests has been exceeded.
diff --git a/docs/dev/api/accounts.md b/docs/dev/api/accounts.md
index 783f4ad0a4..4e735f42d9 100644
--- a/docs/dev/api/accounts.md
+++ b/docs/dev/api/accounts.md
@@ -2650,3 +2650,579 @@ curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
```
+
+---
+
+## Service account
+
+### Lookup Service Accounts
+
+
+GET /team-management/v1/service-accounts/
+
+
+Lists existing service accounts in your organization. You can filter the results using the query parameters below.
+
+#### Parameters
+
+
+
+
+ id |
+ | QUERY | OPTIONAL | STRING | Comma-separated service account IDs. |
+
+
+
+
+ username |
+ | QUERY | OPTIONAL | STRING | Substring username search phrase. |
+
+
+
+
+ teams |
+ | QUERY | OPTIONAL | STRING | Comma-separated team IDs. |
+
+
+
+
+ limit |
+ | QUERY | OPTIONAL | INTEGER | Number of results to return per page. |
+
+
+
+
+ offset |
+ | QUERY | OPTIONAL | INTEGER | The initial index from which to return the results. |
+
+
+
+
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request GET 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/?limit=100&offset=0' | json_pp
+```
+
+```jsx title="Sample Request with Filters"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request GET 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/?id=7ddb81628f5f4e77b5f74d9dec4980db,8ec1b3d47a5e4f25a7b6c8e9f0123456&username=bot-automation&teams=bd8466c7c94f4f2a8641a1fd4ac1a89d,c7a2b3d4e5f67890abcdef1234567890&limit=10&offset=0' | json_pp
+```
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request GET 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts/?limit=100&offset=0' | json_pp
+```
+
+```jsx title="Sample Request with Filters"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request GET 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts/?id=7ddb81628f5f4e77b5f74d9dec4980db,8ec1b3d47a5e4f25a7b6c8e9f0123456&username=bot-automation&teams=bd8466c7c94f4f2a8641a1fd4ac1a89d,c7a2b3d4e5f67890abcdef1234567890&limit=10&offset=0' | json_pp
+```
+
+
+
+
+#### Responses
+
+
+
+
+ 200 |
+ Success. Service account list returned. |
+
+
+ 403 |
+ Forbidden. You do not have permission to look up service accounts. |
+
+
+
+
+
+```jsx title="Sample Response"
+{
+ "count": 2,
+ "links": {
+ "first": "https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/?limit=10&offset=0",
+ "last": "https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/?limit=10&offset=0",
+ "next": null,
+ "previous": null
+ },
+ "results": [
+ {
+ "id": "7ddb81628f5f4e77b5f74d9dec4980db",
+ "username": "bot-automation-service-account-d2164",
+ "name": "Automation Service Account",
+ "team": {
+ "id": "bd8466c7c94f4f2a8641a1fd4ac1a89d",
+ "name": "QA Automation Team"
+ },
+ "creator": {
+ "id": "504e6c7223fd4159815a08c38f677701",
+ "username": "john.doe",
+ "email": "john.doe@example.com"
+ }
+ },
+ {
+ "id": "8ec1b3d47a5e4f25a7b6c8e9f0123456",
+ "username": "bot-automation-service-account-565ad",
+ "name": "Staging Automation Account",
+ "team": {
+ "id": "c7a2b3d4e5f67890abcdef1234567890",
+ "name": "Staging Team"
+ },
+ "creator": {
+ "id": "e1f2g3h4i5j6k7l8m9n0o1p2q3r4s5t6",
+ "username": "jane.doe",
+ "email": "jane.doe@example.com"
+ }
+ }
+ ]
+}
+```
+
+
+
+---
+
+### Get a Specific Service Account
+
+
+GET /team-management/v1/service-accounts/{uuid}/
+
+
+Retrieves details of the specified service account.
+
+#### Parameters
+
+
+
+
+ uuid |
+ | PATH | REQUIRED | STRING | The unique identifier of the service account. You can find the uuid in the URL of the [service account details view](/basics/acct-team-mgmt/managing-service-accounts/#accessing-the-service-account-details-view) in the Sauce Labs UI. You can also look up the uuid using the [Lookup Service Accounts](#lookup-service-accounts) endpoint. |
+
+
+
+
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request GET 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/' | json_pp
+```
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request GET 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts/' | json_pp
+```
+
+
+
+
+#### Responses
+
+
+
+
+ 200 |
+ Success. Service account details returned. |
+
+
+
+
+ 403 |
+ Forbidden. You do not have permission to access this resource. |
+
+
+
+
+ 404 |
+ Not found. The specified service account does not exist. |
+
+
+
+
+```jsx title="Sample Response"
+{
+ "id": "7ddb81628f5f4e77b5f74d9dec4980db",
+ "username": "bot-automation-service-account-d2164",
+ "name": "Automation Service Account",
+ "created_at": "2024-10-24T14:45:43.606414Z",
+ "updated_at": "2025-01-23T15:57:32.520638Z",
+ "last_activity_time": "2025-02-15T11:22:10.123456Z",
+ "creator": {
+ "id": "504e6c7223fd4159815a08c38f677701",
+ "username": "john.doe",
+ "email": "john.doe@example.com"
+ },
+ "team": {
+ "id": "bd8466c7c94f4f2a8641a1fd4ac1a89d",
+ "name": "QA Automation Team"
+ }
+}
+```
+
+
+
+---
+
+### Create a Service Account
+
+
+POST /team-management/v1/service-accounts/
+
+
+Creates a new service account. Provide the required fields to generate a service account with an automatically generated username and access key.
+
+#### Parameters
+
+
+
+
+ name |
+
+ | BODY | REQUIRED | STRING |
+
+ A user-friendly display name for the service account. The name must be between 1 and 128 characters and may include: - letters
- digits
- the following special characters:
', . - _ ~ ! @ # $ % ^ & * ( ) = + | / ? : ; [ ] { }
+
+ |
+
+
+ team_uuid |
+ | BODY | REQUIRED | STRING | The unique identifier of the team to which the service account will be assigned. You can look up team IDs using the [Lookup Teams](#lookup-teams) endpoint. Note: Team admins can only create accounts in their [active team](/basics/acct-team-mgmt/switching-active-team/). |
+
+
+
+
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request POST 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "name": "Team A bot",
+ "team_uuid": "bd8466c7c94f4f2a8641a1fd4ac1a89d"
+}' | json_pp
+```
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request POST 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts/' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "name": "Team A bot",
+ "team_uuid": "bd8466c7c94f4f2a8641a1fd4ac1a89d"
+}' | json_pp
+```
+
+
+
+
+#### Responses
+
+
+
+
+ 201 |
+ Success. Service account created successfully. |
+
+
+ 403 |
+ Forbidden. You do not have permission to create a service account. |
+
+
+
+
+```jsx title="Sample Response"
+{
+ "id": "7ddb81628f5f4e77b5f74d9dec4980db",
+ "access_key": "8e27aba8-be73-4ef3-9c2b-20f796b5ebff",
+ "username": "bot-automation-service-account-d2164"
+}
+```
+
+
+
+---
+
+### Update a Service Account
+
+
+PATCH /team-management/v1/service-accounts/{uuid}/
+
+
+Updates the details of an existing service account. You can only update the **name** field, which is a user-friendly, editable display name. The username remains immutable.
+
+#### Parameters
+
+
+
+
+ uuid |
+
+ | PATH | REQUIRED | STRING |
+ The unique identifier of the service account. You can find the uuid in the URL of the [service account details view](/basics/acct-team-mgmt/managing-service-accounts/#accessing-the-service-account-details-view) in the Sauce Labs UI. You can also look up the uuid using the [Lookup Service Accounts](#lookup-service-accounts) endpoint.
+ |
+
+
+
+
+ name |
+
+ | BODY | REQUIRED | STRING |
+
+ A user-friendly display name for the service account. The name must be between 1 and 128 characters and may include: - letters
- digits
- the following special characters:
', . - _ ~ ! @ # $ % ^ & * ( ) = + | / ? : ; [ ] { }
+
+ |
+
+
+
+
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request PATCH 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "name": "Bot Foo Bar"
+}' | json_pp
+```
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request PATCH 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts/' \
+--header 'Content-Type: application/json' \
+--data-raw '{
+ "name": "Bot Foo Bar"
+}' | json_pp
+```
+
+
+
+
+#### Responses
+
+
+
+
+ 200 |
+ Success. Service account updated successfully. |
+
+
+ 403 |
+ Forbidden. You do not have permission to update this service account. |
+
+
+ 404 |
+ Not found. The specified service account does not exist. |
+
+
+
+
+```jsx title="Sample Response"
+{
+ "id": "7ddb81628f5f4e77b5f74d9dec4980db",
+ "username": "bot-automation-service-account-d2164",
+ "name": "Bot Foo Bar",
+}
+```
+
+
+
+---
+
+### Delete a Service Account
+
+
+DELETE /team-management/v1/service-accounts/{uuid}/
+
+
+Deletes the specified service account from your organization.
+
+#### Parameters
+
+
+
+
+ uuid |
+
+ | PATH | REQUIRED | STRING |
+ The unique identifier of the service account. You can find the uuid in the URL of the [service account details view](/basics/acct-team-mgmt/managing-service-accounts/#accessing-the-service-account-details-view) in the Sauce Labs UI. You can also look up the uuid using the [Lookup Service Accounts](#lookup-service-accounts) endpoint.
+ |
+
+
+
+
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request DELETE 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts/'
+```
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request DELETE 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts/'
+```
+
+
+
+
+#### Responses
+
+
+
+
+ 204 |
+ Success. Service account deleted successfully. No content returned. |
+
+
+ 403 |
+ Forbidden. You do not have permission to delete this service account. |
+
+
+ 404 |
+ Not found. The specified service account does not exist. |
+
+
+
+
+
+
+---
+
+### Reset Service Account Access Key
+
+
+POST /team-management/v1/service-accounts/{uuid}/reset-access-key/
+
+
+Resets the access key for the specified service account. A new access key is generated and returned in the response.
+
+:::warning
+Regenerating an access key invalidates the previous key. Any tests or configurations using the previous key will fail, so make sure to update all tests and credential environment variables with the new key.
+:::
+
+#### Parameters
+
+
+
+
+ uuid |
+
+ | PATH | REQUIRED | STRING |
+ The unique identifier of the service account. You can find the uuid in the URL of the [service account details view](/basics/acct-team-mgmt/managing-service-accounts/#accessing-the-service-account-details-view) in the Sauce Labs UI. You can also look up the uuid using the [Lookup Service Accounts](#lookup-service-accounts) endpoint.
+ |
+
+
+
+
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request POST 'https://api.us-west-1.saucelabs.com/team-management/v1/service-accounts//reset-access-key/' | json_pp
+```
+
+
+
+
+```jsx title="Sample Request"
+curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
+--request POST 'https://api.eu-central-1.saucelabs.com/team-management/v1/service-accounts//reset-access-key/' | json_pp
+```
+
+
+
+
+#### Responses
+
+
+
+
+ 200 |
+ Success. Service account access key was rotated. |
+
+
+ 403 |
+ Forbidden. You do not have permission to reset the access key for this service account. |
+
+
+ 404 |
+ Not found. The specified service account does not exist. |
+
+
+
+
+```jsx title="Sample Response"
+{
+ "access_key": "3f78c473-3396-432d-b6d1-48e2dd7c57b1"
+}
+```
+
+
diff --git a/docs/dev/glossary.md b/docs/dev/glossary.md
index c565d3679a..8057cd4979 100644
--- a/docs/dev/glossary.md
+++ b/docs/dev/glossary.md
@@ -11,6 +11,10 @@ description: A glossary of terminology used across Sauce Labs products.
## **A**
+### Account
+
+An account in Sauce Labs refers to an entity that allows access to Sauce Labs services. It can represent either a [user account](#user-user-account) (associated with an individual) or a [service account](#service-account) (a non-human account designed for automated processes).
+
### Action RPG (ARPG)
This is typically a smaller role-playing game, usually small parties of 1-10 players, without all the depth of play offered by a full-fledged RPG. ARPGs will have tight, compact game experiences, where you have characters and loot that "persist" from session to session, but where the world the user plays in will be auto-generated at run-time.
@@ -123,7 +127,7 @@ See also: [http client](#http-client).
### Concurrency Limit
-The maximum number of total Sauce Labs tests -- both automated and manual -- that you can run simultaneously across all user accounts within your organization. Concurrency limits vary according to pricing plan. Once you and/or your teammates have used all concurrency slots, additional tests will not launch until an existing test has finished. More information: [Managing Concurrency](/basics/acct-team-mgmt/concurrency/managing-concurrency).
+The maximum number of total Sauce Labs tests -- both automated and manual -- that you can run simultaneously across all user and service accounts in your organization. Concurrency limits vary according to pricing plan. After you and/or your teammates have used all concurrency slots, additional tests will not launch until an existing test has finished. More information: [Managing Concurrency](/basics/acct-team-mgmt/concurrency/managing-concurrency).
### Continuous Deployment (CD)
@@ -378,7 +382,7 @@ See: _[Playtest](#playtest)_.
### Organization Admin
-The Sauce Labs account admin role that can manage permissions levels for all users, oversee Sauce Labs test settings and activity for their organization, create Teams and Team Admins, designate other Organization Admins, and set concurrency allocations among different Teams. More information: [Account and Organization Management](/basics/acct-team-mgmt-hub).
+The Sauce Labs account admin role that can manage permissions levels for all users and service accounts, oversee Sauce Labs test settings and activity for their organization, create Teams and Team Admins, designate other Organization Admins, and set concurrency allocations among different Teams. More information: [Account and Organization Management](/basics/acct-team-mgmt-hub).
See also: _[team admin](#team-admin)_.
@@ -546,7 +550,9 @@ The Sauce Labs framework agnostic test orchestrator CLI (command line interface)
### Sauce Labs Access Key
-A randomly generated string of alphanumeric characters assigned to your Sauce Labs account that you must include in your test scripts along with your Sauce Labs username to authenticate your request and allow access to the resources on your Sauce Labs account. Also known as Access Key in [Sauce Labs](https://app.saucelabs.com/user-settings) and `SAUCE_ACCESS_KEY` as an environment variable.
+A randomly generated string of alphanumeric characters assigned to your Sauce Labs account that you must include in your test scripts along with your Sauce Labs username to authenticate your request and allow access to the resources on your Sauce Labs account. Both [user accounts](#user-user-account) and [service accounts](#service-account) have an access key.
+
+Also known as Access Key in [Sauce Labs](https://app.saucelabs.com/user-settings) and `SAUCE_ACCESS_KEY` as an environment variable.
### Sauce Labs Continuous Testing Benchmark
@@ -554,7 +560,9 @@ A Sauce Labs white paper – compiled periodically – that leverages anonymized
### Sauce Labs User Name
-An ID name that you define when you create your Sauce Labs account. You must include this (along with your Sauce Labs Access Key) in your test scripts to authenticate your request and allow access to the resources on your Sauce Labs account. Also known as Username in [Sauce Labs](https://app.saucelabs.com/user-settings) and `SAUCE_USERNAME` as an environment variable.
+An ID name assigned to your Sauce Labs account, used alongside your Sauce Labs Access Key to authenticate requests and access account resources. For [user accounts](#user-user-account), this username is defined during account creation. For [service accounts](#service-account), the username is automatically generated based on the display name provided during account creation.
+
+Also known as Username in [Sauce Labs](https://app.saucelabs.com/user-settings) and `SAUCE_USERNAME` as an environment variable.
### Selenium
@@ -588,6 +596,10 @@ More information: [Sauce Labs Pricing](https://saucelabs.com/pricing).
See also: _[unmanaged customer](#unmanaged-customer)_.
+### Service Account
+
+A service account is a non-human account designed for automated processes, such as CI/CD pipelines and integrations. Service accounts are not associated with a specific user or email address and cannot sign in to the Sauce Labs UI. They are used primarily for running tests and API access using a username and access key.
+
### Simulator
A virtual machine environment used to mimic the overall behavior (i.e., software variables, configurations) of the iOS mobile app you're testing in Sauce Labs.
@@ -647,6 +659,8 @@ See also: _[organization admin](#organization-admin), [team admin](#team-admin),
A Sauce Labs user with permission to edit their own user info, run tests, and view tests run by teammates. Depending on their Organization Admin's Team Job Sharing settings, they can also view jobs that were run by members of other teams.
+[Service accounts](#service-account) assigned to the team have the same visibility permissions as Team Members but, among other limitations, cannot access the Sauce Labs UI.
+
See also: _[organization admin](#organization-admin), [team admin](#team-admin)_.
### Test Runner
@@ -731,6 +745,10 @@ See also: _[Game Engine](#game-engine)_.
See: _[systemd](#systemd)_.
+### User (User Account)
+
+A user account is an account tied to an individual person and linked to an email address. User accounts are used to access the Sauce Labs UI, manage settings, run tests, and perform administrative tasks depending on the assigned role.
+
## **V**
### Vault
diff --git a/docs/dev/test-configuration-options.md b/docs/dev/test-configuration-options.md
index 8a8b055401..6627373dc9 100644
--- a/docs/dev/test-configuration-options.md
+++ b/docs/dev/test-configuration-options.md
@@ -1817,6 +1817,8 @@ You can either set `"username"` in capabilities or specify it in the Sauce URL a
:::tip
You can find your `username` value under **Account** > **User Settings**.
+
+Alternatively, you can use the `username` of a [service account](/basics/acct-team-mgmt/managing-service-accounts) for running tests.
:::
:::warning
@@ -1843,6 +1845,8 @@ You can either set `"accessKey"` in capabilities or specify it in the Sauce URL
:::tip
You can find your `accessKey` value under **Account** > **User Settings**.
+
+Alternatively, you can use the `accessKey` of a [service account](/basics/acct-team-mgmt/managing-service-accounts) for running tests.
:::
:::warning
@@ -2156,14 +2160,14 @@ Provide a valid time zone identifier to `appium:timeZone` capability.
The time zone identifier must be a valid name from the list of
[available time zone identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones),
for example `America/New_York`.
-The time zone is changed instantly on the *per-device* basis and is preserved until the next change.
+The time zone is changed instantly on the _per-device_ basis and is preserved until the next change.
**iOS Devices**
Provide a valid time zone identifier to `appium:appTimeZone` capability.
The time zone identifier must be a valid name from the list of
[available time zone identifiers](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), for example `America/New_York`.
-The time zone is changed on the *per-application* basis and is only valid for the application under test.
+The time zone is changed on the _per-application_ basis and is only valid for the application under test.
The same behavior could be achieved by providing a custom value to the
[TZ](https://developer.apple.com/forums/thread/86951#263395) environment variable via the `appium:processArguments` capability.
diff --git a/docs/orchestrate/faq.md b/docs/orchestrate/faq.md
index 27a69dbed0..2ab3559cd8 100644
--- a/docs/orchestrate/faq.md
+++ b/docs/orchestrate/faq.md
@@ -8,6 +8,10 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
If you're new to Sauce Orchestrate, this list of frequently asked questions can help you with what you need to know.
+## Can I Run Rests in Sauce Orchestrate Using Service Account Credentials?
+
+No, Sauce Orchestrate does not support service accounts. Only user accounts are supported. For more information, refer to the [Service Accounts](/basics/acct-team-mgmt/managing-service-accounts) page.
+
## Will Sauce Connect Continue to Work?
Yes, Sauce Connect will continue to work. Sauce Orchestrate is all about running your test scripts from in the Sauce Labs grid and does not change anything about the connection between the underlying Virtual Machine or Real Device and your Application Under Test (AUT).
diff --git a/docs/orchestrate/getting-started.md b/docs/orchestrate/getting-started.md
index 3d04aa21ac..b5f1859e3e 100644
--- a/docs/orchestrate/getting-started.md
+++ b/docs/orchestrate/getting-started.md
@@ -26,6 +26,10 @@ Make sure your organization is enrolled to use Sauce Orchestrate, otherwise you
## How It Works
+:::note
+[Service accounts](/basics/acct-team-mgmt/managing-service-accounts/) are not supported in Sauce Orchestrate. Only user accounts can use this feature.
+:::
+
Sauce Orchestrate utilizes container technology to package and run your tests in the Sauce Labs cloud.
To use Sauce Orchestrate:
diff --git a/docs/secure-connections/sauce-connect-5/operation/overview.md b/docs/secure-connections/sauce-connect-5/operation/overview.md
index 28ae72cd9e..1de46b32b7 100644
--- a/docs/secure-connections/sauce-connect-5/operation/overview.md
+++ b/docs/secure-connections/sauce-connect-5/operation/overview.md
@@ -8,6 +8,10 @@ import useBaseUrl from '@docusaurus/useBaseUrl';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
+:::note
+[Service accounts](/basics/acct-team-mgmt/managing-service-accounts) are not supported by Sauce Connect Proxy and cannot start or manage tunnels. Only user accounts can manage tunnels.
+:::
+
Sauce Connect Proxy operations and administration involve everything required to install, configure, maintain and use secure connections.
## Installation and Configuration
diff --git a/docs/secure-connections/sauce-connect/setup-configuration/basic-setup.md b/docs/secure-connections/sauce-connect/setup-configuration/basic-setup.md
index f3a02ecce6..c5041da39e 100644
--- a/docs/secure-connections/sauce-connect/setup-configuration/basic-setup.md
+++ b/docs/secure-connections/sauce-connect/setup-configuration/basic-setup.md
@@ -15,7 +15,8 @@ It is also a key step for any Sauce Connect Proxy deployment as a way to verify
## What You'll Need
- A Sauce Labs account ([Log in](https://accounts.saucelabs.com/am/XUI/#login/) or sign up for a [free trial license](https://saucelabs.com/sign-up)).
-- Your Sauce Labs [Username and Access Key](https://app.saucelabs.com/user-settings).
+- [Username and access key](https://app.saucelabs.com/user-settings) of you Sauce Labs user.
+ - Only user accounts can manage tunnels. [Service accounts](/basics/acct-team-mgmt/managing-service-accounts) are not supported by Sauce Connect Proxy and cannot start or manage tunnels.
- Have Sauce Connect Proxy [installed on your local machine](/secure-connections/sauce-connect/installation). Make sure it's the latest version - otherwise, you may run into technical issues.
- Review [Sauce Connect Proxy System and Network Requirements](/secure-connections/sauce-connect/system-requirements) to confirm that your system and network architecture will be compatible with Sauce Connect Proxy.
- Know your regional [Sauce Labs Data Center](/dev/cli/sauce-connect-proxy/#--region).
diff --git a/docs/test-results/sharing-test-results.md b/docs/test-results/sharing-test-results.md
index 14f8d4208a..668a9e32fe 100644
--- a/docs/test-results/sharing-test-results.md
+++ b/docs/test-results/sharing-test-results.md
@@ -14,7 +14,7 @@ The ability to share test results is currently only supported for virtual device
Once your test has run and generated a **Test Details** page, you have several options for sharing a link to that page with others.
-1. On Sauce Labs, in the left panel, click **Live** or **Automaed**, and then click **Test Results**.
+1. On Sauce Labs, in the left panel, click **Live** or **Automated**, and then click **Test Results**.
2. On the **Test Results** page, click a test in the list to view the test details.
3. In the **Visibility** dropdown list, select a sharing option for the test results.
diff --git a/docs/test-results/test-status.md b/docs/test-results/test-status.md
index f503ccd1f8..52007f596c 100644
--- a/docs/test-results/test-status.md
+++ b/docs/test-results/test-status.md
@@ -127,7 +127,8 @@ you can still use the [Sauce Labs REST API](/dev/api/) to update the test status
## What You'll Need
- A Sauce Labs account ([Log in](https://accounts.saucelabs.com/am/XUI/#login/) or sign up for a [free trial license](https://saucelabs.com/sign-up))
-- Your Sauce Labs [Username and Access Key](https://app.saucelabs.com/user-settings)
+- [Username and access key](https://app.saucelabs.com/user-settings) of your Sauce Labs user account.
+ - Alternatively, you can use the credentials of a [service account](/basics/acct-team-mgmt/managing-service-accounts). The username and access key for a service account are provided during [its creation](/basics/acct-team-mgmt/managing-service-accounts/#creating-a-service-account).
- The JOB_ID for the test you wish to update
Call the `update_jobs` REST API and pass the parameter "passed" with a value of "true" or "false".
diff --git a/docs/test-results/viewing-test-results.md b/docs/test-results/viewing-test-results.md
index fe85a9b595..0877cfe60b 100644
--- a/docs/test-results/viewing-test-results.md
+++ b/docs/test-results/viewing-test-results.md
@@ -53,17 +53,17 @@ If you have set up your tests to report whether they have passed or failed, thos
-| Filter | Description |
-| :------------- | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Search by name | Filter test results by name. |
-| Device Type | Filter test results by: - Virtual Devices
- Real Devices
|
-| Time Range | Filter test results by: - Today
- Last 7 days
- Last 14 days
- Last 30 days
- All Time
|
-| Owner | Filter test results by: - Tests that you have run
- Tests your team has run
- Tests your organization has run
- Tests run by another user or team from your organization
|
-| Status | Filter tests by: - Passed
- Failed
- Completed (the test completed but was not assigned a Pass/Fail status)
- In Progress
- Errored
- Queued
|
-| Build | Filter test results by tests that belong to a specific build. |
-| Platform | Filter test results by tests that ran on one or multiple operating systems. |
-| Browser | Filter test results by browser (Only for Virtual Devices). |
-| Device | Filter test results by tests that ran on a specific device. |
+| Filter | Description |
+| :------------- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Search by name | Filter test results by name. |
+| Device Type | Filter test results by: - Virtual Devices
- Real Devices
|
+| Time Range | Filter test results by: - Today
- Last 7 days
- Last 14 days
- Last 30 days
- All Time
|
+| Owner | Filter test results by: - Tests that you have run
- Tests your team has run
- Tests your organization has run
- Tests run by another user
- Tests run by a service account
- Tests run by accounts from a specific team
|
+| Status | Filter tests by: - Passed
- Failed
- Completed (the test completed but was not assigned a Pass/Fail status)
- In Progress
- Errored
- Queued
|
+| Build | Filter test results by tests that belong to a specific build. |
+| Platform | Filter test results by tests that ran on one or multiple operating systems. |
+| Browser | Filter test results by browser (Only for Virtual Devices). |
+| Device | Filter test results by tests that ran on a specific device. |
## Automated Builds Results
@@ -77,10 +77,10 @@ To view automated build results, follow these steps:
You can use the following filters to narrow down the build results:
-| Filter | Description |
-| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| Owner | Filter builds by: - Builds that you have run
- All the builds for your organization
- Builds run by one of your selected sub-accounts
|
-| Status | Filter builds by: - Success
- Failed
- Complete (the test completed but was not assigned a Pass/Fail status)
- Running
- Error
|
+| Filter | Description |
+| ------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| Owner | Filter builds by: - Builds that you have run
- All the builds for your organization
- Tests run by another user
- Tests run by a service account
|
+| Status | Filter builds by: - Success
- Failed
- Complete (the test completed but was not assigned a Pass/Fail status)
- Running
- Error
|
## Screenshots, Commands, Logs, and Metadata
@@ -99,8 +99,8 @@ Your test assets, including videos, screenshots, and logs, are retained for 30 d
- Click the **Video** tab to view the video of the test. You can download the video from this tab. Audio is available for automated tests on real devices. Additional configurations are required to record audio with your tests. For more information, see [Audio Capture](/mobile-apps/features/audio-capture/).
- Click the **Screenshots** tab to view screenshots. You can download the screenshots from this tab and view them in full screen.
- Click the **Logs** tab to see the logs generated by your test. The logs you can view are determined by the type of test you ran. For example, web app tests will include a Selenium log, while mobile app tests will contain an Appium log.
- - Only the following file types will be visible in the logs viewer: .zip, .log, .json, .xml, .txt, .yml, and .har. Assets of other types
- can be accessed via the [Sauce REST API](/dev/api/jobs/#get-a-job-asset-file).
+ - Only the following file types will be visible in the logs viewer: .zip, .log, .json, .xml, .txt, .yml, and .har. Assets of other types
+ can be accessed via the [Sauce REST API](/dev/api/jobs/#get-a-job-asset-file).
### Appium Logs
@@ -119,12 +119,12 @@ and tag your tests with relevant information.
-| Field | Description | Tag Pattern |
-|------------|----------------------------|-----------------------|
-| URL | URL of the repository | `ci:url:{repo_url}` |
-| Repo | Name of the repository | `ci:repo:{repo_name}` |
-| Ref | Branch or tag | `ci:ref:{ref}` |
-| Commit SHA | Short SHA of the commit | `ci:ssha:{short_sha}` |
+| Field | Description | Tag Pattern |
+| ---------- | ----------------------- | --------------------- |
+| URL | URL of the repository | `ci:url:{repo_url}` |
+| Repo | Name of the repository | `ci:repo:{repo_name}` |
+| Ref | Branch or tag | `ci:ref:{ref}` |
+| Commit SHA | Short SHA of the commit | `ci:ssha:{short_sha}` |
:::note
`saucectl` supports automatic detection on a variety of CI platforms, including: AppVeyor, AWS, Azure, Bamboo, Bitbucket, BuildKite, Buddy, CircleCI, Codeship, Drone, GitHub, GitLab, Gitpod, Jenkins, Semaphore, Travis, and TeamCity.
diff --git a/docs/testfairy/security/acct-settings.md b/docs/testfairy/security/acct-settings.md
index 88160d42af..7e84708e82 100644
--- a/docs/testfairy/security/acct-settings.md
+++ b/docs/testfairy/security/acct-settings.md
@@ -44,8 +44,6 @@ You can integrate your TestFairy account with different services to customize an
- Slack - See [Slack](/testfairy/integrations/slack) for information about integrating your Slack account with TestFairy.
-- Zendesk - See [ZenDesk](/testfairy/integrations/zendesk) for information about integrating your Zendesk account with TestFairy.
-
- Webhooks - You can use TestFairy webhooks to connect to services. See [Microsoft Teams](/testfairy/integrations/ms-teams) for more information.
diff --git a/sidebars.js b/sidebars.js
index 1000a49db3..41d7de6d54 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -893,7 +893,7 @@ module.exports = {
'basics/acct-team-mgmt/org-settings',
{
type: 'category',
- label: 'Managing Users and Accounts',
+ label: 'Managing Users',
collapsed: true,
items: [
'basics/acct-team-mgmt/adding-deactivating-users',
@@ -902,6 +902,7 @@ module.exports = {
'basics/acct-team-mgmt/switching-active-team',
],
},
+ 'basics/acct-team-mgmt/managing-service-accounts',
'basics/acct-team-mgmt/concurrency/managing-concurrency',
{
type: 'category',
@@ -1210,14 +1211,9 @@ module.exports = {
label: 'Integrations',
collapsed: true,
items: [
- 'testfairy/integrations/centercode',
- 'testfairy/integrations/coralogix',
'testfairy/integrations/slack',
'testfairy/integrations/smtp-gmail',
- 'testfairy/integrations/splunk',
- 'testfairy/integrations/zendesk',
'testfairy/integrations/ms-teams',
- 'testfairy/integrations/google-cloud',
'testfairy/integrations/apple-uploading',
'testfairy/integrations/google-uploading',
],
@@ -1227,12 +1223,10 @@ module.exports = {
label: 'CI Tools',
collapsed: true,
items: [
- 'testfairy/ci-tools/bamboo',
'testfairy/ci-tools/bitbucket',
'testfairy/ci-tools/circle-ci',
'testfairy/ci-tools/fastlane',
'testfairy/ci-tools/gitlab',
- 'testfairy/ci-tools/ms-app-ctr',
'testfairy/ci-tools/team-city',
'testfairy/ci-tools/vs-team',
],
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/account-icon.png b/static/img/basics/acct-team-mgmt/service-accounts/account-icon.png
new file mode 100644
index 0000000000..3d12ea2252
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/account-icon.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-org-admin-step-1.png b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-org-admin-step-1.png
new file mode 100644
index 0000000000..9c5f28bf7b
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-org-admin-step-1.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-org-admin-step-2.png b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-org-admin-step-2.png
new file mode 100644
index 0000000000..1c6256aa01
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-org-admin-step-2.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-team-admin-step-1.png b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-team-admin-step-1.png
new file mode 100644
index 0000000000..6edb908a63
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-team-admin-step-1.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-team-admin-step-2.png b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-team-admin-step-2.png
new file mode 100644
index 0000000000..dbf5c9bcdb
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/creation-modal-team-admin-step-2.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/delete-button.png b/static/img/basics/acct-team-mgmt/service-accounts/delete-button.png
new file mode 100644
index 0000000000..a0f6272bea
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/delete-button.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/delete-service-accounts-dropdown.png b/static/img/basics/acct-team-mgmt/service-accounts/delete-service-accounts-dropdown.png
new file mode 100644
index 0000000000..17e739dd4b
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/delete-service-accounts-dropdown.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/reset-access-key-button.png b/static/img/basics/acct-team-mgmt/service-accounts/reset-access-key-button.png
new file mode 100644
index 0000000000..a28df27391
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/reset-access-key-button.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/reset-access-key-step-2.png b/static/img/basics/acct-team-mgmt/service-accounts/reset-access-key-step-2.png
new file mode 100644
index 0000000000..42f6d132ca
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/reset-access-key-step-2.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/update-button.png b/static/img/basics/acct-team-mgmt/service-accounts/update-button.png
new file mode 100644
index 0000000000..6f096bc153
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/update-button.png differ
diff --git a/static/img/basics/acct-team-mgmt/service-accounts/update-display-name.png b/static/img/basics/acct-team-mgmt/service-accounts/update-display-name.png
new file mode 100644
index 0000000000..128c409cfd
Binary files /dev/null and b/static/img/basics/acct-team-mgmt/service-accounts/update-display-name.png differ