> ## Documentation Index
> Fetch the complete documentation index at: https://docs.activeviam.com/llms.txt
> Use this file to discover all available pages before exploring further.

# atoti.Session

### *final class* atoti.Session

The entry point to interact with Atoti applications.

A session holds data in [`tables`](./atoti.Session.tables#atoti.Session.tables) and aggregates it in [`cubes`](./atoti.Session.cubes#atoti.Session.cubes).
It also serves a web app for data exploration accessible with [`link`](./atoti.Session.link#atoti.Session.link).

It can be created with either [`start()`](./atoti.Session.start#atoti.Session.start) or [`connect()`](./atoti.Session.connect#atoti.Session.connect).

| [`add_external_table`](./atoti.Session.add_external_table#atoti.Session.add_external_table)                               | Add a table from an external database to the session.                         |
| ------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------- |
| [`client`](./atoti.Session.client#atoti.Session.client)                                                                   | The lower level client used by this session to communicate with Atoti Server. |
| [`close`](./atoti.Session.close#atoti.Session.close)                                                                      | Close this session and free all associated resources.                         |
| [`clusters`](./atoti.Session.clusters#atoti.Session.clusters)                                                             | The clusters that this session contribute to.                                 |
| [`connect`](./atoti.Session.connect#atoti.Session.connect)                                                                | Connect to an existing session.                                               |
| [`connect_to_external_database`](./atoti.Session.connect_to_external_database#atoti.Session.connect_to_external_database) | Connect to an external database using DirectQuery.                            |
| [`create_cube`](./atoti.Session.create_cube#atoti.Session.create_cube)                                                    | Create a cube based on the passed table.                                      |
| [`create_scenario`](./atoti.Session.create_scenario#atoti.Session.create_scenario)                                        | Create a new source scenario.                                                 |
| [`create_table`](./atoti.Session.create_table#atoti.Session.create_table)                                                 | Create an empty table with columns of the given *data\_types*.                |
| [`cubes`](./atoti.Session.cubes#atoti.Session.cubes)                                                                      | The cubes in this session.                                                    |
| [`data_model_transaction`](./atoti.Session.data_model_transaction#atoti.Session.data_model_transaction)                   | Create a data model transaction to batch multiple data model changes.         |
| [`delete_scenario`](./atoti.Session.delete_scenario#atoti.Session.delete_scenario)                                        | Delete the source scenario with the provided name if it exists.               |
| [`endpoint`](./atoti.Session.endpoint#atoti.Session.endpoint)                                                             | Create a custom endpoint at `f"/proxy/{route}"`.                              |
| [`export_translations_template`](./atoti.Session.export_translations_template#atoti.Session.export_translations_template) | Export a template containing all translatable values in the session's cubes.  |
| [`link`](./atoti.Session.link#atoti.Session.link)                                                                         | Link to the session.                                                          |
| [`logs_path`](./atoti.Session.logs_path#atoti.Session.logs_path)                                                          | Path to the session logs file.                                                |
| [`proxy`](./atoti.Session.proxy#atoti.Session.proxy)                                                                      |                                                                               |
| [`query_mdx`](./atoti.Session.query_mdx#atoti.Session.query_mdx)                                                          | Execute an MDX query.                                                         |
| [`read_arrow`](./atoti.Session.read_arrow#atoti.Session.read_arrow)                                                       | Read an Arrow table into an Atoti table.                                      |
| [`read_csv`](./atoti.Session.read_csv#atoti.Session.read_csv)                                                             | Read a CSV file into a table.                                                 |
| [`read_pandas`](./atoti.Session.read_pandas#atoti.Session.read_pandas)                                                    | Read a pandas DataFrame into a table.                                         |
| [`ready`](./atoti.Session.ready#atoti.Session.ready)                                                                      | Whether the session is ready or not.                                          |
| [`scenarios`](./atoti.Session.scenarios#atoti.Session.scenarios)                                                          | Names of the source scenarios of the session.                                 |
| [`security`](./atoti.Session.security#atoti.Session.security)                                                             |                                                                               |
| [`start`](./atoti.Session.start#atoti.Session.start)                                                                      | Start a new Atoti server subprocess and connect to it.                        |
| [`tables`](./atoti.Session.tables#atoti.Session.tables)                                                                   |                                                                               |
| [`url`](./atoti.Session.url#atoti.Session.url)                                                                            | URL of the session.                                                           |
| [`user`](./atoti.Session.user#atoti.Session.user)                                                                         | The user behind this session.                                                 |
| [`wait`](./atoti.Session.wait#atoti.Session.wait)                                                                         | Wait for the underlying server subprocess to terminate.                       |
| [`widget`](./atoti.Session.widget#atoti.Session.widget)                                                                   | Widget to visualize the data in the session interactively.                    |
