DocsOEngageDatabase Schema
Developer

Database Schema

OEngageorravo.com/docs/oregister/database-schema

Database Tables

OEngage creates 8 custom tables on activation.

wp_oregister_xp_log

sqlid         BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY
user_id    BIGINT UNSIGNED NOT NULL
points     INT NOT NULL
event      VARCHAR(100)
note       VARCHAR(255)
created_at DATETIME DEFAULT CURRENT_TIMESTAMP

INDEX idx_user_id (user_id)
INDEX idx_created (created_at)

wp_oregister_badges

sqlid          BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY
user_id     BIGINT UNSIGNED NOT NULL
badge_slug  VARCHAR(100) NOT NULL
awarded_at  DATETIME DEFAULT CURRENT_TIMESTAMP

UNIQUE KEY unique_badge (user_id, badge_slug)

wp_oregister_streaks

sqluser_id      BIGINT UNSIGNED PRIMARY KEY
current      INT UNSIGNED DEFAULT 0
longest      INT UNSIGNED DEFAULT 0
last_login   DATE

wp_oregister_magic_tokens

sqlid         BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY
user_id    BIGINT UNSIGNED NOT NULL
token_hash VARCHAR(64) UNIQUE   -- SHA-256 of raw token
expires_at DATETIME
used_at    DATETIME NULL
created_at DATETIME DEFAULT CURRENT_TIMESTAMP

wp_oregister_social_accounts

sqlid          BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY
user_id     BIGINT UNSIGNED NOT NULL
provider    VARCHAR(30)       -- 'google' | 'apple' | 'github' | 'linkedin'
provider_id VARCHAR(255)
email       VARCHAR(150)
created_at  DATETIME DEFAULT CURRENT_TIMESTAMP

UNIQUE KEY unique_social (provider, provider_id)

wp_oregister_2fa_secrets

sqluser_id      BIGINT UNSIGNED PRIMARY KEY
method       ENUM('totp','email')
secret       VARCHAR(255)     -- encrypted TOTP secret or NULL for email method
recovery_codes TEXT           -- JSON array of bcrypt hashes
enabled_at   DATETIME

wp_oregister_login_log

sqlid         BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY
user_id    BIGINT UNSIGNED NOT NULL
ip_address VARCHAR(45)
user_agent VARCHAR(500)
result     ENUM('success','fail','2fa_fail','locked')
created_at DATETIME DEFAULT CURRENT_TIMESTAMP

INDEX idx_user_ip (user_id, ip_address)
INDEX idx_created (created_at)

wp_oregister_lockouts

sqlip_address  VARCHAR(45) PRIMARY KEY
attempts    TINYINT UNSIGNED DEFAULT 0
locked_until DATETIME NULL
last_attempt DATETIME
Database Schema — OEngage Docs — Orravo