Data model of the API & Plugin platform
These tables live in the workspace DB and are only created the first time the API or plugins are used (a machine that never uses them has no such tables). Generated automatically from src/services/api/dbSchema.ts.
api_keys
| Column | Type / constraints |
|---|---|
id |
TEXT PRIMARY KEY |
name |
TEXT NOT NULL |
key_prefix |
TEXT NOT NULL |
key_hash |
TEXT NOT NULL |
scopes_json |
TEXT NOT NULL DEFAULT '[]' |
account_ids_json |
TEXT DEFAULT NULL |
allowed_ips_json |
TEXT DEFAULT NULL |
rate_limit_per_min |
INTEGER NOT NULL DEFAULT 0 |
erp_role |
TEXT NOT NULL DEFAULT 'manager' |
plugin_id |
TEXT DEFAULT NULL |
note |
TEXT NOT NULL DEFAULT '' |
created_by |
TEXT NOT NULL DEFAULT 'boss' |
created_at |
INTEGER NOT NULL |
last_used_at |
INTEGER DEFAULT NULL |
last_used_ip |
TEXT DEFAULT NULL |
expires_at |
INTEGER DEFAULT NULL |
revoked_at |
INTEGER DEFAULT NULL |
api_request_logs
| Column | Type / constraints |
|---|---|
id |
INTEGER PRIMARY KEY AUTOINCREMENT |
principal_id |
TEXT NOT NULL |
method |
TEXT NOT NULL |
route |
TEXT NOT NULL |
status |
INTEGER NOT NULL |
took_ms |
INTEGER NOT NULL |
ip |
TEXT DEFAULT '' |
request_id |
TEXT DEFAULT '' |
error_code |
TEXT DEFAULT NULL |
created_at |
INTEGER NOT NULL |
api_events
| Column | Type / constraints |
|---|---|
seq |
INTEGER PRIMARY KEY AUTOINCREMENT |
event_id |
TEXT NOT NULL UNIQUE |
type |
TEXT NOT NULL |
account_id |
TEXT DEFAULT '' |
channel |
TEXT DEFAULT '' |
payload_json |
TEXT NOT NULL |
created_at |
INTEGER NOT NULL |
webhook_subscriptions
| Column | Type / constraints |
|---|---|
id |
TEXT PRIMARY KEY |
key_id |
TEXT DEFAULT NULL |
name |
TEXT NOT NULL DEFAULT '' |
url |
TEXT NOT NULL |
secret |
TEXT NOT NULL |
events_json |
TEXT NOT NULL DEFAULT '["*"]' |
account_ids_json |
TEXT DEFAULT NULL |
active |
INTEGER NOT NULL DEFAULT 1 |
consecutive_failures |
INTEGER NOT NULL DEFAULT 0 |
disabled_reason |
TEXT DEFAULT NULL |
allow_private |
INTEGER NOT NULL DEFAULT 0 |
last_delivery_at |
INTEGER DEFAULT NULL |
created_at |
INTEGER NOT NULL |
updated_at |
INTEGER NOT NULL |
webhook_deliveries
| Column | Type / constraints |
|---|---|
id |
TEXT PRIMARY KEY |
subscription_id |
TEXT NOT NULL |
event_seq |
INTEGER NOT NULL |
event_type |
TEXT NOT NULL |
payload_json |
TEXT NOT NULL |
attempt |
INTEGER NOT NULL DEFAULT 0 |
status |
TEXT NOT NULL DEFAULT 'pending' |
response_status |
INTEGER DEFAULT NULL |
response_body |
TEXT DEFAULT NULL |
error |
TEXT DEFAULT NULL |
next_retry_at |
INTEGER DEFAULT NULL |
created_at |
INTEGER NOT NULL |
delivered_at |
INTEGER DEFAULT NULL |
plugins
| Column | Type / constraints |
|---|---|
id |
TEXT PRIMARY KEY |
name |
TEXT NOT NULL |
version |
TEXT NOT NULL |
runtime |
TEXT NOT NULL |
source_type |
TEXT NOT NULL |
install_path |
TEXT NOT NULL |
manifest_json |
TEXT NOT NULL |
granted_permissions_json |
TEXT NOT NULL DEFAULT '[]' |
account_ids_json |
TEXT DEFAULT NULL |
settings_json |
TEXT NOT NULL DEFAULT '{}' |
status |
TEXT NOT NULL DEFAULT 'disabled' |
status_reason |
TEXT DEFAULT NULL |
installed_at |
INTEGER NOT NULL |
updated_at |
INTEGER NOT NULL |
plugin_storage
| Column | Type / constraints |
|---|---|
plugin_id |
TEXT NOT NULL |
key |
TEXT NOT NULL |
value_json |
TEXT NOT NULL |
updated_at |
INTEGER NOT NULL |
plugin_logs
| Column | Type / constraints |
|---|---|
id |
INTEGER PRIMARY KEY AUTOINCREMENT |
plugin_id |
TEXT NOT NULL |
level |
TEXT NOT NULL DEFAULT 'info' |
message |
TEXT NOT NULL |
created_at |
INTEGER NOT NULL |
Didn't find your answer?
Message us on Telegram