Appendix E — Data Dictionary
This appendix describes the tables and columns in RStudio Workbench’s internal database. Note that this database is intended for internal product usage only; the schema and columns may change between releases of RStudio Workbench.
The fields which have the Integer/Boolean field are Integer type if SQLite is used and Boolean type if PostgreSQL is used, due to differences in the two database systems.
licensed_users
The licensed_users table tracks the last sign in time of every user of RStudio Workbench. It also keeps track of whether a particular user has administrator privileges, and whether a user is locked from the system.
| Column Name | Type | Can be Null | Description |
|---|---|---|---|
| user_name | Text | No | The username associated with the user. |
| locked | Integer/Boolean | No | Whether or not the user is locked (disabled from signing in). |
| last_sign_in† | Text | No | The date and time (UTC) when the user last signed in. |
| is_admin | Integer/Boolean | No | Indicates if the user is an admin. |
| user_id | Integer | No | The POSIX/Operating-System-Level ID of the user |
| id⁕ | Integer | No | Auto incrementing ID for each user for internal foreign key relationships |
⁕ Primary Key † Indexed Column
licensed_users_metadata
The licensed_users_metadata table stores metadata associated with the current licensed users, used for quickly looking up known users.
| Column Name | Type | Can be Null | Description |
|---|---|---|---|
| uid | Text | No | Randomly generated unique ID associated with the current locked users. |
schema_version
The schema_version table is used to keep track of the version of the database schema currently in use, for the purposes of managing changes to the database schema over time.
| Column Name | Type | Can be Null | Description |
|---|---|---|---|
| current_version | Text | No | The schema version, which is derived from the date and time on which it was created. |
| release_name | Text | No | The code name of the release to which this version of the schema belongs. |
PostgreSQL-Only Tables
The cluster and node tables are only available in PostgreSQL, since SQLite cannot be used in load-balanced configurations.
cluster
The cluster table stores information about a cluster in a load-balanced configuration.
| Column Name | Type | Can be Null | Description |
|---|---|---|---|
| id⁕ | Text | No | A unique ID representing the cluster. |
| key_hash | Text | Yes | A hash of the cluster’s secure-cookie-key value. Used to ensure that all nodes in the cluster have matching keys. |
| protocol | Text | Yes | The protocol used to communicate among nodes in the cluster. Must be one of http, https, or https no verify. |
⁕ Primary Key
node
The node table stores information about a single node in a load-balanced cluster.
| Column Name | Type | Can be Null | Description |
|---|---|---|---|
| id⁕ | Text | No | A unique ID representing the node. |
| cluster_id‡ | Text | No | The ID of the cluster to which the node belongs. Corresponds (via foreign key) to id in the cluster table |
| host | Text | Yes | The node’s hostname, or its raw IP address. |
| port | Text | Yes | The port to connect to; defaults to 443 for https and 8787 for http. |
| ipv4 | Text | Yes | The resolved IPv4 address of the host, if applicable. |
| last_seen | Text | Yes | The date and time (UTC) the node was last seen; the node updates this every 5 minutes while it’s healthy. |
| status | Text | Yes | The node’s status (starting, failed to resolve, online, or offline) |
⁕ Primary Key ‡ Foreign Key