# Reference

The `redivis` R package provides an interface to construct representations of Redivis entities and to create, modify, read, and delete them.&#x20;

Resources are generally constructed by chaining together multiple constructor methods, reflecting the hierarchical nature of entities in Redivis. For example, to list all variables on table (which belongs to a dataset in an organization), we would write:

```r
library("redivis") 

variables = (
    redivis$organization("Demo")      # Returns an instance of an Organization
    $dataset("CMS 2014 Medicare Data"  # Returns an instance of a Dataset
    $table("Home health agencies")     # Returns an instance of a Table
    $list_variables()                  # Retuns a list of Variable instances
)
```

## Interfaces

| [**`redivis`**](https://docs.redivis.com/api/client-libraries/redivis-r)                             | The redivis namespace. Provides constructor methods for most of the other classes.                                                                                                     |
| ---------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**`Dataset`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/dataset)           | Class representing a Redivis dataset. Provides constructor methods for Tables and Queries scoped to a given dataset, as well as methods for creating, deleting, and updating datasets. |
| [**`File`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/file)                 | Class representing a non-tabular file on Redivis.                                                                                                                                      |
| [**`Organization`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/organization) | Class representing a Redivis organization. Provides constructor methods for Datasets and Workflows scoped to a given organization.                                                     |
| [**`Workflow`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/workflow)         | Class representing a Redivis workflow. Provides constructor methods for Tables and Queries scoped to a given workflow.                                                                 |
| [**`Query`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/query)               | Class representing a running SQL query that references tables on Redivis.                                                                                                              |
| [**`Table`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/table)               | Class representing a Redivis table. Numerous methods available for reading data from the table, as well as uploading data and metadata.                                                |
| [**`User`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/user)                 | Class representing a Redivis user. Provides constructor methods for Datasets and Workflows scoped to a given user.                                                                     |
| [**`Variable`**](https://docs.redivis.com/api/client-libraries/redivis-r/reference/variable)         | Class representing a specific variable with a Table.                                                                                                                                   |

## Environment variables

The following [environment variables](https://www.twilio.com/blog/environment-variables-python) may be set to modify the behavior of the `redivis-r` client.&#x20;

#### REDIVIS\_API\_TOKEN

If using this library in an external environment, you'll need set this env variable to your [API token](https://docs.redivis.com/api/rest-api/authorization) in order to authenticate.&#x20;

{% hint style="warning" %}
**Important:** this token acts as a password, and should never be inlined in your code, committed to source control, or otherwise published.
{% endhint %}

#### REDIVIS\_DEFAULT\_WORKFLOW

If set, tables referenced via `redivis$table()` and unqualified table names in `redivis$query()` will be assumed to be within the default workflow.&#x20;

Takes the form `user_name.workflow_name`. All notebooks on Redivis automatically set the default workflow to that notebook's workflow. [Learn more about referencing resource >](https://docs.redivis.com/api/referencing-resources)

#### REDIVIS\_DEFAULT\_DATASET

If set, tables referenced via `redivis$table()` and unqualified table names in `redivis$query()` will be assumed to be within the default dataset.&#x20;

Takes the form `owner_name.dataset_name`. If both a default dataset and workflow are set, the default workflow will supersede the dataset. [Learn more about referencing resource >](https://docs.redivis.com/api/referencing-resources)

#### REDIVIS\_TMPDIR

If set, this directory will be used to temporarily store data for disk-backed data objects (e.g., see [Table$to\_arrow\_dataset](https://docs.redivis.com/api/client-libraries/redivis-r/reference/table/tableusdto_arrow_dataset)). Otherwise, the default OS temp directory will be used.
