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.

Note

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