---
title: "Solutions in the SDK"
canonical: https://trickest.com/docs/developer-tools/sdk/solutions
description: "client.solutions; solutions, datasets, and their relationship to Live Tables."
---

# Solutions in the SDK

## List solutions and datasets

Examples use a server-side `client` from
[Client setup](/docs/developer-tools/sdk/client-setup), and resource IDs supplied
by your application.

| Method                                    | Description                |
| ----------------------------------------- | -------------------------- |
| `list(options?)`                          | `AsyncGenerator<Solution>` |
| `listPage(options?)`                      | One page                   |
| `get(id, options?)`                       | Solution details           |
| `create(data, options?)`                  | New solution               |
| `update(id, data, options?)`              | Update metadata            |
| `delete(id, options?)`                    | Delete                     |
| `listDatasets(solutionId?, options?)`     | Datasets generator         |
| `listDatasetsPage(solutionId?, options?)` | Datasets page              |

```ts
for await (const solution of client.solutions.list()) {
  console.log(solution.name, solution.id);
  for await (const dataset of client.solutions.listDatasets(solution.id)) {
    console.log(dataset.name, dataset.id);
  }
}
```

A solution groups datasets. Dataset IDs are not database table IDs. Resolve the
corresponding table with `client.database` before calling its query methods.
This example reads every solution and then its datasets; use a known solution
ID to avoid listing unrelated data.

Query resulting Live Tables via [`client.database`](/docs/developer-tools/sdk/database).

**Types:** `Solution`, `Dataset`

<Info>
  **Concepts:** [Solutions & Database](/docs/key-concepts/solutions-database).
  **CLI:** [Solutions](/docs/developer-tools/cli/solutions).
</Info>

---
_Markdown source of https://trickest.com/docs/developer-tools/sdk/solutions._
