Database Schemas

Intro

This sections showcases the database schemas in detail. This is probably not relevant to most users and can be skipped. If you want to extract data for statistics it’s nice to know what data is located where.

Since OpenOrchestrator uses an ORM to handle SQL transactions and because it’s designed to be SQL dialect agnostic, the exact data types and layout may vary.

Triggers

There are 4 trigger tables even if there’s only 3 kinds of triggers. Most of the trigger data is in one common table and then type specific data are in 3 sub-tables.

Triggers

Column Type Note
id UUID PK
trigger_name varchar(100)  
process_name varchar(100)  
last_run datetime nullable
process_path varchar(250)  
process_args varchar(1000) nullable
process_status Enum  
is_git_repo bit  
is_blocking bit  
type Enum  

Scheduled_Triggers

Column Type Note
id UUID PK, FK(Triggers)
cron_expr varchar(200)  
next_run datetime  

Queue_Triggers

Column Type Note
id UUID PK, FK(Triggers)
queue_name varchar(100)  
min_batch_size int  

Single_Triggers

Column Type Note
id UUID PK, FK(Triggers)
next_run datetime  

Logs

Column Type Note
id UUID PK
log_time datetime  
log_level Enum  
process_name varchar(100)  
log_message varchar(8000)  

Constants

Column Type Note
name varchar(100) PK
value varchar(1000)  
changed_at datetime  

Credentials

Credential passwords are stored as AES encrypted strings in the database and needs to be decrypted using the encryption key to be usable.

Column Type Note
name varchar(100) PK
username varchar(250)  
password varchar(1000)  
changed_at datetime  

Queues

All queues and queue elements actually exists in a single table in the database. Queues are differentiated by the queue_name column. Practically speaking a queue doesn’t exist if there are no queue elements in it because there’s no separate definition of the queue anywhere.

Column Type Note
id UUID PK
queue_name varchar(100)  
status Enum  
data varchar(2000) nullable
reference varchar(100) nullable
created_date datetime  
start_date datetime nullable
end_date datetime nullable
message varchar(1000) nullable
created_by varchar(100) nullable