Database Schema
The Manage Rhino Group platform uses approximately 20 custom database tables across two plugins (Suma Management and Suma Harvest), plus a custom table for order volume monitoring.
Database Connection
- Database Name:
managerhinogroup - Table Prefix:
wp_(WordPress standard) - Charset: utf8
- Cross-DB Access:
OSTICKETS_DBNAMEconstant provides access to osTicket database
Suma Management Tables
suma_sites
The core table tracking all managed client sites. Contains 40+ columns.
| Column | Type | Description |
|---|---|---|
site_id | int | Primary key (auto-increment) |
name | varchar | Site display name |
url | varchar | Site URL |
type | int | Site type identifier |
ssl | tinyint | SSL certificate status |
indexed | tinyint | Google indexing status |
last_update | datetime | Last sync timestamp |
date_of_launch | date | Site launch date |
plugin_count | int | Number of installed plugins |
tier | varchar | Client tier level |
server | varchar | Hosting server name |
proxy | varchar | CDN/proxy configuration |
debug | tinyint | WP_DEBUG enabled |
ecommerce | tinyint | Has e-commerce functionality |
uptime | varchar | UptimeRobot status |
organization | varchar | Client organization name |
accessibe | tinyint | Accessibility widget installed |
gtm_path | varchar | Google Tag Manager path |
cf_zone_id | varchar | Cloudflare zone identifier |
contact_url | varchar | Site contact page URL |
wpcron | tinyint | WP Cron status |
h1 | tinyint | H1 tag verification |
readonly | tinyint | Read-only mode flag |
admin_url | varchar | Custom admin URL |
shop_admin_url | varchar | Shop admin URL (BigCommerce) |
archived | tinyint | Archive status (0=active, 1=archived) |
dev | tinyint | Development site flag |
platforms | varchar | Platform type (WordPress, BigCommerce, etc.) |
google_analytics | varchar | GA tracking status |
suma_cost
Master cost/license database.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
name | varchar | Plugin/service name |
friendly_name | varchar | Display name |
price | decimal | Annual price |
cost | decimal | Actual cost |
paid | tinyint | Payment status |
type | int | FK to suma_cost_type |
key | varchar | License key |
purchase_date | date | Purchase/renewal date |
notes | text | Additional notes |
url | varchar | Vendor URL |
auto_renew | tinyint | Auto-renewal enabled |
platform | int | FK to suma_platforms |
user_added | int | Staff who added the record |
suma_cost_on_site
Junction table linking costs to sites.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
site_id | int | FK to suma_sites |
plugin_id | int | FK to suma_cost |
version | varchar | Installed version |
key | varchar | Site-specific license key |
purchase_date | date | Site-specific purchase date |
price | decimal | Site-specific price |
active | tinyint | Currently active on site |
archive_date | date | When removed from site |
suma_cost_type
Cost category definitions.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
name | varchar | Type name (Plugin, Theme, Service, etc.) |
suma_cost_type_of_payment
Payment type definitions.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
name | varchar | Payment type (Free, Paid, Freemium, etc.) |
suma_license_mapping
Maps licenses (CPT) to cost records.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
license_id | int | FK to WordPress post (License CPT) |
cost_id | int | FK to suma_cost |
suma_platforms
Platform type definitions.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
name | varchar | Platform name (WordPress, BigCommerce, Shopify, etc.) |
suma_repos
Git repository tracking.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
uuid | varchar | Repository UUID (Bitbucket) |
name | varchar | Repository name |
full_name | varchar | Full repository path (org/repo) |
suma_git_status
Developer commit tracking and activity.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
username | varchar | Bitbucket username |
issues | int | Open issues count |
last_updated | datetime | Last activity timestamp |
name | varchar | Display name |
type | varchar | User type |
suma_cron
Background job queue for site updates.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
site | int | FK to suma_sites.site_id |
date | datetime | Scheduled execution time |
suma_site_report
Site audit report storage.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
site_id | int | FK to suma_sites |
report_data | longtext | JSON report content |
created | datetime | Report generation date |
suma_logs
Activity and event logging.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
site_id | int | FK to suma_sites |
action | varchar | Action performed |
data | text | Action details |
created | datetime | Event timestamp |
suma_vulnerabilities
Master vulnerability database (from Jetpack Protect).
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
title | varchar | Vulnerability title |
description | text | Full description |
severity | varchar | Severity level |
source | varchar | Reporting source |
suma_vulnerabilities_site
Site-specific vulnerability records.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
vulnerability_id | int | FK to suma_vulnerabilities |
site_id | int | FK to suma_sites |
status | varchar | Current status (active, fixed) |
detected_at | datetime | First detection |
fixed_at | datetime | Resolution date |
suma_wpengine
WP Engine server install data.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
name | varchar | Install name |
cname | varchar | CNAME record |
php | varchar | PHP version |
environment | varchar | Environment type |
primary_domain | varchar | Primary domain |
is_multisite | tinyint | Multisite flag |
suma_server_domain_mapping
Domain-to-server mapping table.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
domain | varchar | Domain name |
server | varchar | Server name |
type | int | Domain type (1=production, 2=staging, 3=development) |
primary | tinyint | Primary domain flag |
basic_auth | tinyint | Basic auth detected |
Suma Harvest Tables
harvest_client
Harvest client records.
| Column | Type | Description |
|---|---|---|
id | int | Harvest client ID (primary key) |
name | varchar | Client name |
harvest_project
Harvest project data.
| Column | Type | Description |
|---|---|---|
id | int | Harvest project ID (primary key) |
name | varchar | Project name |
client_id | int | FK to harvest_client |
budget | decimal | Total budget hours |
budget_by | varchar | Budget type: project or task |
time_used | decimal | Total time logged |
archived | tinyint | Archive status |
harvest_task
Task definitions.
| Column | Type | Description |
|---|---|---|
id | int | Harvest task ID (primary key) |
name | varchar | Task name |
harvest_task_assignment
Task-to-project assignments with budget.
| Column | Type | Description |
|---|---|---|
id | int | Task assignment ID (primary key) |
project_id | int | FK to harvest_project |
task_id | int | FK to harvest_task |
billable | tinyint | Billable flag |
hourly_rate | decimal | Billing rate |
budget | decimal | Task-level budget hours |
time_used | decimal | Total time on this task |
harvest_user
Harvest team members.
| Column | Type | Description |
|---|---|---|
id | int | Harvest user ID (primary key) |
name | varchar | User name |
email | varchar | User email |
harvest_time_entry
Individual time log entries.
| Column | Type | Description |
|---|---|---|
id | int | Harvest entry ID (primary key) |
project_id | int | FK to harvest_project |
task_assignment_id | int | FK to harvest_task_assignment |
user_id | int | FK to harvest_user |
hours | decimal | Hours logged |
notes | text | Entry notes |
spent_date | date | Date worked |
updated_at | datetime | Last modified |
harvest_milestone
Budget threshold alert definitions.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
kind | varchar | Type: project or task |
calculation | varchar | Operator (e.g., greater_than_or_equal_to) |
value | int | Percentage threshold |
harvest_milestone_history
Tracks which milestone alerts have been sent.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
milestone_id | int | FK to harvest_milestone |
project_id | int | FK to harvest_project |
task_id | int | FK to harvest_task (0 for project-level) |
sent_at | datetime | Alert sent timestamp |
teams_webhooks
Microsoft Teams webhook URLs per Harvest user.
| Column | Type | Description |
|---|---|---|
id | int | Primary key |
user_id | int | Harvest user ID |
url | text | Teams incoming webhook URL |
Order Volume Monitor Table
wp_order_volume_monitor_log
Order monitoring test results.
| Column | Type | Description |
|---|---|---|
id | bigint | Primary key |
timestamp | datetime | Test execution time |
site_name | varchar(255) | Monitored site name |
status | varchar(50) | Result: SUCCESS or FAILURE |
message | text | Detail message |
Key Relationships
suma_sites ─────┬──── suma_cost_on_site ──── suma_cost
│ │
│ └── suma_cost_type
│ └── suma_cost_type_of_payment
│
├──── suma_vulnerabilities_site ──── suma_vulnerabilities
│
├──── suma_logs
├──── suma_site_report
├──── suma_cron
└──── suma_server_domain_mapping
harvest_project ─┬── harvest_client
├── harvest_task_assignment ─── harvest_task
│ └── harvest_time_entry ─── harvest_user
└── harvest_milestone_history ─── harvest_milestone
WordPress Options (Key Settings)
| Option Key | Plugin | Purpose |
|---|---|---|
suma_pinecone_api_key | Management | Pinecone authentication |
suma_pinecone_host | Management | Pinecone index host URL |
suma_pinecone_namespace | Management | Vector namespace (manage-rhinogroup) |
suma_pinecone_auto_sync | Management | Auto-sync on site updates |
harvest_projects_to_exclude | Harvest | ACF option: projects to skip |
harvest_projects_to_include | Harvest | ACF option: projects to show |
number_of_devs | Harvest | Developer count for capacity calc |
suma-gemini_api_key | Gemini | Gemini API key |
suma-gemini_model | Gemini | Default AI model |
suma-gemini_urgency_model | Gemini | Model for urgency analysis |
suma-gemini_rate_limit | Gemini | Max requests per window |
sites_to_monitor | Order Volume | ACF repeater: monitored sites |