Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions docs/guides/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,23 +134,23 @@

## UI Components

* [Seam Components](seam-components/overview/README.md)
* [Getting Started with Seam Components](seam-components/overview/getting-started-with-seam-components.md)
* [Get Started with React](seam-components/overview/get-started-with-react-components-and-client-session-tokens.md)
* [Get started with Angular](seam-components/overview/angular.md)
* [Get started with Vue](seam-components/overview/vue.md)
* [Get started with Client Side Components](seam-components/overview/get-started-with-client-side-components.md)
* [Components](seam-components/react-components/README.md)
* [Device Details](seam-components/react-components/device-details.md)
* [Device Table](seam-components/react-components/device-table.md)
* [Access Code Table](seam-components/react-components/access-code-table.md)
* [Access Code Details](seam-components/react-components/access-code-details.md)
* [Create Access Code Form](seam-components/react-components/create-access-code-form.md)
* [Update Access Code Form](seam-components/react-components/update-access-code-form.md)
* [Supported Devices Table](seam-components/react-components/supported-devices-table.md)
* [Seam Provider](seam-components/react-components/seam-provider.md)
* [Connect Account Button](seam-components/react-components/connect-account-button.md)
* [Make a Supported Devices Page](seam-components/make-a-supported-devices-page.md)
* [Seam Components](ui-components/overview/README.md)
* [Getting Started with Seam Components](ui-components/overview/getting-started-with-seam-components/README.md)
* [Get Started with React](ui-components/overview/getting-started-with-seam-components/get-started-with-react-components-and-client-session-tokens.md)
* [Get started with Angular](ui-components/overview/getting-started-with-seam-components/angular.md)
* [Get started with Vue](ui-components/overview/getting-started-with-seam-components/vue.md)
* [Get started with Client Side Components](ui-components/overview/getting-started-with-seam-components/get-started-with-client-side-components.md)
* [Components](ui-components/overview/react-components/README.md)
* [Device Details](ui-components/overview/react-components/device-details.md)
* [Device Table](ui-components/overview/react-components/device-table.md)
* [Access Code Table](ui-components/overview/react-components/access-code-table.md)
* [Access Code Details](ui-components/overview/react-components/access-code-details.md)
* [Create Access Code Form](ui-components/overview/react-components/create-access-code-form.md)
* [Update Access Code Form](ui-components/overview/react-components/update-access-code-form.md)
* [Supported Devices Table](ui-components/overview/react-components/supported-devices-table.md)
* [Seam Provider](ui-components/overview/react-components/seam-provider.md)
* [Connect Account Button](ui-components/overview/react-components/connect-account-button.md)
* [Make a Supported Devices Page](ui-components/overview/make-a-supported-devices-page.md)
* [Using User Identities to Scope Users' Device Access](ui-components/overview/using-user-identities-to-scope-users-device-access.md)
* [Seam Mobile Components](ui-components/seam-mobile-components/README.md)
* [Seam Mobile Components for iOS](ui-components/seam-mobile-components/seam-mobile-components-for-ios/README.md)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: Learn about device and system capabilities, as well as capability f

Each device that you connect to Seam has a specific set of capabilities. These capabilities define the Seam API actions that you can use. For example, some devices support [remote unlock actions](../capability-guides/smart-locks/lock-and-unlock.md), while others support [programming access codes](../capability-guides/smart-locks/access-codes/). Some devices support both of these capabilities. When developing your application, it is imperative to be able to identify the capabilities of each device.

For example, if a device supports programming online access codes, your app can present the [`CreateAccessCodeForm` Seam Component](../seam-components/react-components/create-access-code-form.md) to your user. On the other hand, if a connected device does not support the remote unlock action, you'll likely want to disable or not display the unlock functionality for your app user.
For example, if a device supports programming online access codes, your app can present the [`CreateAccessCodeForm` Seam Component](../ui-components/overview/react-components/create-access-code-form.md) to your user. On the other hand, if a connected device does not support the remote unlock action, you'll likely want to disable or not display the unlock functionality for your app user.

## Capability Flags

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ A client session enables a client, such as a web browser or mobile phone, to acc

Once you create a client session on the backend, you can pass the resulting generated client session token from the backend to the frontend (that is, to the client). Using client session tokens on the frontend eliminates the need for your user's browser to communicate with your backend server. Instead, the client makes requests directly to the Seam API.

Client sessions make it easy to control your users' access to devices. When you create a client session, you can specify [your own internal user ID for a desired user](../../../seam-components/overview/get-started-with-client-side-components.md#id-3-select-a-user-identifier-key), along with the [connected accounts](https://docs.seam.co/latest/api/connected_accounts/) associated with this user. Then, you can [use client sessions on the backend to limit your users to only the devices that they own](implementing-client-sessions-for-device-management-in-the-backend.md).
Client sessions make it easy to control your users' access to devices. When you create a client session, you can specify [your own internal user ID for a desired user](../../../ui-components/overview/get-started-with-client-side-components.md#id-3-select-a-user-identifier-key), along with the [connected accounts](https://docs.seam.co/latest/api/connected_accounts/) associated with this user. Then, you can [use client sessions on the backend to limit your users to only the devices that they own](implementing-client-sessions-for-device-management-in-the-backend.md).

{% hint style="info" %}
If you are just getting started with Seam, see [Seam Components](../../../seam-components/overview/). In only a few minutes and with just a few lines of code, you can start controlling devices from your web application without interacting with the backend.
If you are just getting started with Seam, see [Seam Components](../../../ui-components/overview/). In only a few minutes and with just a few lines of code, you can start controlling devices from your web application without interacting with the backend.
{% endhint %}

<figure><img src="../../../.gitbook/assets/client-session-flow.png" alt="Client sessions and client session tokens increase efficiency by enabling your user&#x27;s browser to communicate directly with the Seam backend server."><figcaption></figcaption></figure>
Expand All @@ -25,13 +25,13 @@ You can only use a client session token in a browser context through the Seam Ja
You can use client sessions in the following two ways:

* Create a client session on the backend and pass the resulting generated client session token to your frontend. You use this client session token in the frontend with the Seam JavaScript SDK or Seam Components.
* Manage client sessions entirely on the frontend by using a [publishable key with the JavaScript SDK or Seam Components](../../../seam-components/overview/get-started-with-client-side-components.md).
* Manage client sessions entirely on the frontend by using a [publishable key with the JavaScript SDK or Seam Components](../../../ui-components/overview/get-started-with-client-side-components.md).

***

## Create a Client Session for an Existing User and Retrieve the Session Token

To [create a client session](https://docs.seam.co/latest/api/client_sessions/create) for an existing user with connected accounts in your workspace, include the IDs of the user's connected accounts (`connected_account_ids`) and [provide your own unique internal user ID (`user_identifier_key`)](../../../seam-components/overview/get-started-with-client-side-components.md#id-3-select-a-user-identifier-key). Then, use the generated client session token to retrieve and manage the resources authorized through the connected accounts associated with this client session.
To [create a client session](https://docs.seam.co/latest/api/client_sessions/create) for an existing user with connected accounts in your workspace, include the IDs of the user's connected accounts (`connected_account_ids`) and [provide your own unique internal user ID (`user_identifier_key`)](../../../ui-components/overview/get-started-with-client-side-components.md#id-3-select-a-user-identifier-key). Then, use the generated client session token to retrieve and manage the resources authorized through the connected accounts associated with this client session.

{% tabs %}
{% tab title="JavaScript" %}
Expand Down Expand Up @@ -168,5 +168,5 @@ await seam.clientSessions.delete({

## Next Steps

* Learn about using [client session tokens with Seam Components](../../../seam-components/overview/).
* Learn about using [client session tokens with Seam Components](../../../ui-components/overview/).
* Learn more about [Connect Webviews](../../connect-webviews/).
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ To display the health—that is, the online/offline status—of your end users'
Seam polls connected devices and accounts every ten minutes and updates the Boolean [`device.properties.online`](https://docs.seam.co/latest/api/devices/#device.properties) property accordingly. Use a [Get Device](https://docs.seam.co/latest/api/devices/get) request to retrieve the current online/offline status of a device. Then, display the device status in your app.

{% hint style="info" %}
You can also use the prebuilt [device details Seam Component](../../seam-components/react-components/device-details.md), which includes a device status display.
You can also use the prebuilt [device details Seam Component](../../ui-components/overview/react-components/device-details.md), which includes a device status display.
{% endhint %}

{% tabs %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ Seam polls connected devices and accounts every ten minutes and updates the foll
Use a [Get Device](https://docs.seam.co/latest/api/devices/get) request to retrieve the current power status of a device. First, determine whether the device is wired. If the device is battery-powered (that is, not wired), get the battery level and status. Then, display the retrieved device power status in your app.

{% hint style="info" %}
You can also use the prebuilt [device details Seam Component](../../seam-components/react-components/device-details.md), which includes a device power status display.
You can also use the prebuilt [device details Seam Component](../../ui-components/overview/react-components/device-details.md), which includes a device power status display.
{% endhint %}

{% tabs %}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ Interact with the Seam CLI using any combination of interactive and typed comman

The Seam CLI supports the following command stubs:

<table><thead><tr><th width="286">Command Stub</th><th>Description</th></tr></thead><tbody><tr><td><code>seam</code></td><td>Access all Seam CLI commands in an interactive manner.</td></tr><tr><td><code>seam access-codes</code></td><td>Manage <a href="../../capability-guides/smart-locks/access-codes/">access codes</a>.</td></tr><tr><td><code>seam acs</code></td><td>Manage <a href="../../capability-guides/access-systems/">Access Control Systems</a> (ACSs), including associated objects, such as systems, users, access groups, and credentials.</td></tr><tr><td><code>seam action-attempts</code></td><td>List and get <a href="../action-attempts.md">action attempts</a> to poll the status of attempted actions, such as <a href="../../capability-guides/smart-locks/lock-and-unlock.md">unlock</a> and <a href="../../capability-guides/smart-locks/access-codes/creating-access-codes/">create access code</a>.</td></tr><tr><td><code>seam client-sessions</code></td><td>Manage <a href="../../seam-components/overview/get-started-with-react-components-and-client-session-tokens.md#what-is-a-client-session-token">client sessions</a> that enable you to restrict users' interactions to include only the devices that they own.</td></tr><tr><td><code>seam connect-webviews</code></td><td>Manage <a href="../connect-webviews/">Connect Webviews</a> that enable users to connect their devices to Seam.</td></tr><tr><td><code>seam connected-accounts</code></td><td>Manage <a href="../../api/connected_accounts/">connected accounts</a> that represent external, third-party accounts to which users have authorized Seam to access.</td></tr><tr><td><code>seam devices</code></td><td>Manage devices, including both <a href="../devices/managed-and-unmanaged-devices.md">"managed" and "unmanaged" devices</a>.</td></tr><tr><td><code>seam events</code></td><td>Retrieve <a href="../../api/events/">events</a>.</td></tr><tr><td><code>seam locks</code></td><td>Retrieve, lock, and unlock <a href="../../capability-guides/smart-locks/">smart locks</a>.</td></tr><tr><td><code>seam login</code></td><td>Log back in to the Seam CLI or change your authorization to use a different <a href="../authentication/api-keys.md">API key</a> or <a href="../authentication/personal-access-tokens.md">Personal Access Token</a>.</td></tr><tr><td><code>seam logout</code></td><td>Log out of the Seam CLI.</td></tr><tr><td><code>seam noise-sensors</code></td><td>Manage <a href="../../capability-guides/noise-sensors/#what-is-a-threshold">noise thresholds</a> for <a href="../../capability-guides/noise-sensors/">noise sensors</a> and simulate triggering noise threshold alerts.</td></tr><tr><td><code>seam select</code></td><td>Select the desired <a href="../workspaces/">workspace</a> or server.</td></tr><tr><td><code>seam thermostats</code></td><td>Manage <a href="../../capability-guides/thermostats/">thermostats</a>, including <a href="../../capability-guides/thermostats/configure-current-climate-settings.md">current climate settings</a>.</td></tr><tr><td><code>seam user-identities</code></td><td>Manage <a href="../../capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities.md#what-is-a-user-identity">user identities</a> that enable you to issue and manage mobile credentials and access permissions for users.</td></tr><tr><td><code>seam webhooks</code></td><td>Manage <a href="../webhooks.md">webhook</a> endpoints that enable you to receive notifications of Seam-related events.</td></tr><tr><td><code>seam workspaces</code></td><td>Manage your <a href="../workspaces/">workspaces</a>, including creating new workspaces, retrieving existing workspaces, and resetting your sandbox workspaces.</td></tr></tbody></table>
<table><thead><tr><th width="286">Command Stub</th><th>Description</th></tr></thead><tbody><tr><td><code>seam</code></td><td>Access all Seam CLI commands in an interactive manner.</td></tr><tr><td><code>seam access-codes</code></td><td>Manage <a href="../../capability-guides/smart-locks/access-codes/">access codes</a>.</td></tr><tr><td><code>seam acs</code></td><td>Manage <a href="../../capability-guides/access-systems/">Access Control Systems</a> (ACSs), including associated objects, such as systems, users, access groups, and credentials.</td></tr><tr><td><code>seam action-attempts</code></td><td>List and get <a href="../action-attempts.md">action attempts</a> to poll the status of attempted actions, such as <a href="../../capability-guides/smart-locks/lock-and-unlock.md">unlock</a> and <a href="../../capability-guides/smart-locks/access-codes/creating-access-codes/">create access code</a>.</td></tr><tr><td><code>seam client-sessions</code></td><td>Manage <a href="../../ui-components/overview/get-started-with-react-components-and-client-session-tokens.md#what-is-a-client-session-token">client sessions</a> that enable you to restrict users' interactions to include only the devices that they own.</td></tr><tr><td><code>seam connect-webviews</code></td><td>Manage <a href="../connect-webviews/">Connect Webviews</a> that enable users to connect their devices to Seam.</td></tr><tr><td><code>seam connected-accounts</code></td><td>Manage <a href="../../api/connected_accounts/">connected accounts</a> that represent external, third-party accounts to which users have authorized Seam to access.</td></tr><tr><td><code>seam devices</code></td><td>Manage devices, including both <a href="../devices/managed-and-unmanaged-devices.md">"managed" and "unmanaged" devices</a>.</td></tr><tr><td><code>seam events</code></td><td>Retrieve <a href="../../api/events/">events</a>.</td></tr><tr><td><code>seam locks</code></td><td>Retrieve, lock, and unlock <a href="../../capability-guides/smart-locks/">smart locks</a>.</td></tr><tr><td><code>seam login</code></td><td>Log back in to the Seam CLI or change your authorization to use a different <a href="../authentication/api-keys.md">API key</a> or <a href="../authentication/personal-access-tokens.md">Personal Access Token</a>.</td></tr><tr><td><code>seam logout</code></td><td>Log out of the Seam CLI.</td></tr><tr><td><code>seam noise-sensors</code></td><td>Manage <a href="../../capability-guides/noise-sensors/#what-is-a-threshold">noise thresholds</a> for <a href="../../capability-guides/noise-sensors/">noise sensors</a> and simulate triggering noise threshold alerts.</td></tr><tr><td><code>seam select</code></td><td>Select the desired <a href="../workspaces/">workspace</a> or server.</td></tr><tr><td><code>seam thermostats</code></td><td>Manage <a href="../../capability-guides/thermostats/">thermostats</a>, including <a href="../../capability-guides/thermostats/configure-current-climate-settings.md">current climate settings</a>.</td></tr><tr><td><code>seam user-identities</code></td><td>Manage <a href="../../capability-guides/mobile-access/managing-mobile-app-user-accounts-with-user-identities.md#what-is-a-user-identity">user identities</a> that enable you to issue and manage mobile credentials and access permissions for users.</td></tr><tr><td><code>seam webhooks</code></td><td>Manage <a href="../webhooks.md">webhook</a> endpoints that enable you to receive notifications of Seam-related events.</td></tr><tr><td><code>seam workspaces</code></td><td>Manage your <a href="../workspaces/">workspaces</a>, including creating new workspaces, retrieving existing workspaces, and resetting your sandbox workspaces.</td></tr></tbody></table>

## Copying and Pasting in the Seam CLI

Expand Down
Loading
Loading