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-keyvalue. 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, orhttps 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 idin theclustertable | 
| host | Text | Yes | The node’s hostname, or its raw IP address. | 
| port | Text | Yes | The port to connect to; defaults to 443for https and8787for 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, oroffline) | 
⁕ Primary Key ‡ Foreign Key