Database
Database
The Runner keeps a local database for the run queue, schedule records and WhatsApp messages. The Database tab is where you choose which database it uses and clear out what has piled up.
Database types
Internal
The Runner uses an embedded database it manages itself. Nothing else to configure — the simplest option, and the right one for most cases.
External
The Runner connects to a database already installed on the machine or on another server. Use this when:
- Your organisation already runs managed database infrastructure
- You need more control over the data (backups, monitoring, and so on)
- The environment requires a database shared between several services
Supported external databases:
| Database | Default port |
|---|---|
| MySQL | 3306 |
| MariaDB | 3306 |
| PostgreSQL | 5432 |
| SQL Server | 1433 |
What is stored
Whichever type you choose, the Runner always uses a database called roberty, with three tables:
runs — run history
| Column | What it is |
|---|---|
id | The run's identifier |
robotKey | The robot that ran |
instanceId | The robot instance/configuration that ran |
status | Not started, Running or Finished |
scheduled | Whether a schedule started it (true) or a person did (false) |
exitCode | The process' exit code (0 = success) |
error | The error message, if the run failed |
startedAt / finishedAt | When the run began and ended |
stdout / stderr | Standard and error output during the run |
stdoutFilePath / stderrFilePath | Path to the file with the full log |
errorScreenshotPath | Screenshot taken at the moment of the error |
argsFilePath | Path to the file with the arguments the run used |
uploadStatus | Tracks sending the run to Roberty Studio: Not sent, Sending or Sent |
uploadError | The error raised while sending the data to the Studio |
createdAt / updatedAt | When the record was created and last changed |
schedules — scheduling rules
| Column | What it is |
|---|---|
id | The rule's identifier |
robotKey | The robot the rule belongs to |
instanceId | The instance the rule belongs to |
rules | The list of rules — days (of the week, of the month, or specific dates) and time (a window, a fixed interval, or specific times) |
createdAt / updatedAt | When it was created and last changed |
whatsapp_messages — the WhatsApp message queue
| Column | What it is |
|---|---|
id | The message's identifier |
to | The destination number |
type | text or media |
content | The message text (or the caption, for media) |
mediaPath | Path to the media file, when type is media |
instanceName | The WhatsApp instance/connection that sent it |
status | Pending, Queued or Processed |
error | The sending error, if there was one |
sentAt | When it was sent |
createdAt / updatedAt | When it was created and last changed |
Records removed — by hand or by the database cleanup — are not actually erased: they are marked as deleted but stay stored.
Configuring the database
Internal
- In the admin panel, open the Database tab.
- Under Database type, choose Internal.
- Click Save.
External
- Under Database type, choose External.
- Pick the database in the dropdown (MySQL, MariaDB, PostgreSQL or SQL Server).
- Fill in the connection fields:
| Field | What it is |
|---|---|
| Port | The database's port |
| User | A user with access to the database |
| Password | That user's password |
| Host | The server's address (e.g. localhost or an IP) |
- Click Save.
Database changes only take effect after the Runner is restarted.
Connecting to the database directly
The tables above can be queried directly, from any database client (DBeaver, HeidiSQL, MySQL Workbench, SQL Server Management Studio, and so on) or even from a Roberty robot — useful for custom reports, or for joining this data with other systems, without going through Roberty Studio.
External database
Use the same connection details you configured on the Database tab (host, port, user and password) and the database name roberty.
Internal database
Even in Internal mode the Runner runs a real MariaDB server on the machine — it is not a sealed box. The connection details are:
| Field | Value |
|---|---|
| Host | localhost (reachable only on the machine where the Runner is installed) |
| Port | The port shown in the Port field of the Database tab |
| User | root |
| Password | Blank (no password) |
| Database | roberty |
Reading directly is safe, but avoid editing or deleting records through the tables. The status and uploadStatus fields are managed internally by the Runner — changing them by hand can jam the run queue or stop the data from reaching the Studio. To remove old data, use Clear the database, below.
Current database size
The panel shows the current database size live (B, KB, MB or GB). Use it to keep an eye on how the data grows over time.
Clearing the database
If the database grows large, or you want to drop data you no longer need, use the cleanup.
- Click Clear the database.
- In the confirmation modal, choose what to clear:
- Run queue (finished records) — removes the records of runs that have already ended
- WhatsApp message queue — removes processed WhatsApp messages
- Click Yes, clear to confirm.
Data removed by the cleanup is deleted permanently. Make sure you no longer need those records before confirming. Consider exporting them, or checking the run history in the Designer, first.