Your account for {{ user.tenant_name || 'Organization' }} is pending approval by the Super Admin team. WordPress node connections and agent API key generation are locked until your registration is approved.
Main Node: {{ rootSecurity?.main_node?.status ?? 'CONNECTED' }} • Rule Set: {{ rootSecurity?.rule_version ?? 'v1.2.0' }} • Monitored Subsystems: Core Files, Routes, Config, Database, Privileged Admins
Directly audit inaccessible WordPress sites via official cPanel UAPI without needing /wp-admin login. Quarantines webshells, restores corrupted files, and verifies site availability with zero persistent credential storage.
Global fleet overview grouped by tenant organization. Select any tenant to inspect scoped nodes and threats.
| Tenant Organization | Account & Payment | Plan & Quota | Nodes (Tot/Act/Hld) | Fleet Health Score | Previous Status | Security Status | Actions | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
🏢
{{ t.name }}
{{ t.email }}
|
✔
ACTIVE (USABLE)
⏳
PENDING APPROVAL
|
{{ t.plan_name || 'Starter Fleet' }}
{{ t.total_nodes || 0 }} / {{ t.max_sites || 5 }} Allowed
|
{{ t.total_nodes }} / {{ t.active_nodes }} / {{ t.held_nodes }} |
{{ t.avg_health_score ?? 100 }}%
Optimal
Warning
Critical
|
{{ t.avg_previous_health_score ?? 30 }}%
↑ +{{ Math.max(0, (t.avg_health_score ?? 100) - (t.avg_previous_health_score ?? 30)) }}%
↓ -{{ (t.avg_previous_health_score ?? 100) - (t.avg_health_score ?? 100) }}%
|
{{ t.threat_status }} |
|
||||||||||||||||
Active Fleet WordPress Nodes{{ t.name }}1 Key = 1 Domain Bound Infrastructure
Quota: {{ (t.nodes ? t.nodes.length : 0) }} / {{ t.max_sites || 5 }} Nodes
🌐
No active WordPress nodes bound to {{ t.name }} yet. Use "+ Add New Node" or provide the tenant with their domain key to connect WordPress agent.
|
|||||||||||||||||||||||
Your subscription payment has been received and is awaiting Super Admin manual review and acceptance. Connecting WordPress nodes and generating API keys is locked until Super Admin verifies payment and unlocks your tenant organization.
Subscription Tier Limit Reached: You have connected {{ sites.length }} / {{ subscription.max_sites || 5 }} allowed WordPress nodes under the {{ subscription.plan_name || 'Current' }} plan. Upgrade your plan to connect more nodes.
1 Key = 1 Domain Bound Infrastructure
Generate an API key and upload the OrbisGuard Agent plugin to your WordPress website.
| Site Name & Bound Domain | API Key | Status | Current Health Score | Previous Health Status | WP / PHP | Last Sync | Actions | |
|---|---|---|---|---|---|---|---|---|
|
{{ s.site_name }}
⏳ Awaiting WordPress connection...
{{ s.site_url || ('node_' + (s.api_key_prefix || s.id)) }}
|
...
|
✔ Clean ⏸️ On Hold ⏳ Awaiting Agent Threat Detected |
Pending
{{ s.health_score }}%
Optimal
Warning
Critical
|
{{ s.previous_health_score !== undefined && s.previous_health_score !== null ? s.previous_health_score + '%' : (s.health_score >= 100 ? '30%' : '100%') }}
↑ +{{ Math.max(0, s.health_score - (s.previous_health_score || 30)) }}%
↓ -{{ (s.previous_health_score || 100) - s.health_score }}%
|
Pending Handshake WP {{ s.wp_version || '6.6' }} / PHP {{ s.php_version || '8.1' }} | {{ s.status === 'pending' ? 'Not synced yet' : (s.last_scan_at || 'Just Now') }} |
|
Tenant-level WordPress fleet directory. Select any tenant organization to inspect and manage its scoped nodes, threats, and credentials.
If fatal PHP errors, broken core files, or webshells locked you out of wp-admin, run emergency cPanel inspection & recovery.
Internal Super Admin nodes plane. Fully isolated from customer tenants.
No personal Super Admin WordPress nodes created yet.
Click "+ Connect Node" to generate an API key and connect your WordPress instance.
| Tenant Organization | Status | Total Nodes | Active | Held | Offline | Last Fleet Activity | Threat Status | Actions | |
|---|---|---|---|---|---|---|---|---|---|
|
🏢
{{ t.name }}
{{ t.email }}
|
{{ t.status === 'active' && (t.approval_status === 'approved' || t.is_approved !== false) ? 'Active' : 'Pending Approval' }}
|
{{ t.total_nodes }} | {{ t.active_nodes }} | {{ t.held_nodes }} | {{ t.offline_nodes }} | {{ t.last_fleet_activity ?? '—' }} | {{ t.threat_status }} |
|
Manage, monitor, and configure your connected fleet instances
You have submitted the maximum allowed 3 modification requests (Edit & Delete combined) for this calendar month. Additional submissions are guarded until reset on {{ nodeModStats.reset_date_formatted }}.
Tenant Edit and Delete actions require Super Admin approval. Shared limit of 3 requests per calendar month. Allowance resets on {{ nodeModStats.reset_date_formatted }}.
If fatal PHP errors, broken core files, or webshells locked you out of wp-admin, run emergency cPanel inspection & recovery.
{{ formatMaskedKey(s.api_key, s.api_key_prefix) }}
Tenant-level threat metrics and quarantine status. Select any tenant to inspect individual quarantined files and audit logs.
| Tenant Organization | Security Status | Total Threats | Detected | Neutralized | Quarantined | Active / Open | Last Threat Recorded | Actions | |
|---|---|---|---|---|---|---|---|---|---|
|
🛡️
{{ t.tenant_name || t.name }}
{{ t.email || '' }}
|
{{ t.security_status }} | {{ t.total_threats }} | {{ t.detected_threats || t.total_threats }} | {{ t.neutralized_threats }} | {{ t.quarantined_threats }} | {{ t.active_threats }} | {{ t.last_threat_time || t.last_threat_at || 'Never' }} |
|
Autonomous file isolation and doorway purging ledger
| Report Created | Affected Website | Threat Signature | File Path / Directory | Action Status & Timestamp | Actions | |
|---|---|---|---|---|---|---|
|
{{ l.created_at || '—' }}
Report Ingested
|
{{ l.site_name }} | {{ l.threat_name }} | {{ l.file_path }} |
{{ (l.action_taken === 'repair_rejected_syntax_error' || l.status === 'repair_rejected') ? 'Repair Rejected (Syntax Error)' : (l.action_taken || l.status || 'Detected') }}
Action: {{ l.action_performed_at || l.quarantined_at || l.remediated_at || 'Pending' }}
|
|
Contact: {{ activeDrilldownTenant?.email }} • Tenant ID: #{{ activeDrilldownTenant?.id }} • Plan: {{ activeDrilldownTenant?.subscription?.package_slug ?? 'Free' }}
Full administrative authority retained. Super Admin can scan, hold, resume, or delete tenant nodes.
| Node Name & URL | API Key | Status | Health Score | WP / PHP | Last Sync | Actions |
|---|---|---|---|---|---|---|
|
{{ s.site_name }}
{{ s.site_url }}
|
{{ formatMaskedKey(s.api_key, s.api_key_prefix) }}
|
{{ s.status }} | {{ s.health_score }}% | WP {{ s.wp_version || '6.6' }} / PHP {{ s.php_version || '8.1' }} | {{ s.last_scan_at ?? 'Just Now' }} |
|
Individual threat signatures recorded for this tenant's WordPress fleet.
| Timestamp | Node | Threat Signature | Severity | File Path | Status / Action |
|---|---|---|---|---|---|
| {{ t.created_at }} | {{ t.site_name }} | {{ t.threat_name }} | {{ t.severity ?? 'HIGH' }} | {{ t.file_path }} |
{{ (t.action_taken === 'repair_rejected_syntax_error' || t.status === 'repair_rejected') ? 'Repair Rejected (Syntax Error)' : (t.action_taken || t.status || 'Active') }} |
Users authorized under this tenant organization
| User | Role | Status | Joined | Action |
|---|---|---|---|---|
Invoices generated for this tenant account
| Invoice # | Plan / Package | Amount | Status | Date |
|---|---|---|---|---|
| {{ inv.invoice_number }} | {{ inv.package_slug }} | {{ inv.currency }} {{ inv.amount }} | {{ inv.status }} | {{ inv.created_at }} |
Directly assigned Super Admin WordPress nodes. These nodes are isolated from customer tenant organizations.
If fatal PHP errors, broken core files, or webshells locked you out of wp-admin, run emergency cPanel inspection & recovery.
You can connect Super Admin internal WordPress websites separately from customer tenants.
@{{ formatMaskedKey(s.api_key, s.api_key_prefix) }}
Autonomous file quarantine ledger for Super Admin personal WordPress fleet.
| Report Created | Personal Website | Threat Signature | File Path / Directory | Action Status & Timestamp | Actions | |
|---|---|---|---|---|---|---|
|
{{ l.created_at || '—' }}
Report Ingested
|
{{ l.site_name }} | {{ l.threat_name }} | {{ l.file_path }} |
{{ l.action_taken || l.status || 'Detected' }}
Action: {{ l.action_performed_at || l.quarantined_at || l.remediated_at || 'Pending' }}
|
|
Autonomous self-defense layer monitoring OrbisGuard Laravel core files, routing, authentication, and database integrity.
Copy this key now. It is bound specifically to the Root Security Main Node:
UID: {{ rootSecurity?.main_node?.node_uid ?? 'orbis_main_core' }}
100% isolated from ordinary WordPress agent keys.
{{ rootSecurity?.rules?.length ?? 6 }} Active Detection Signatures
Monitors unexpected script injections, webshells, or unauthorized modifications in Laravel code directories with dynamic AI verification.
| Target Path | Detection & Category | Severity | Status | Actions | |
|---|---|---|---|---|---|
|
@{{ f.target_path }}
SHA: @{{ f.evidence.hash }}
|
@{{ f.title }}
@{{ f.description }}
|
@{{ f.severity }} | @{{ f.status }} |
Root Security observes user permission changes, Super Admin promotions, and API key lifecycle events in real time without blocking business transactions.
Non-executable quarantine storage at storage/app/root-security-quarantine/. Isolated files can be restored reversibly.
| Original File Path | Quarantined Name | Size | Date Quarantined | Actions |
|---|---|---|---|---|
| {{ q.meta?.original_path ?? q.name }} | {{ q.name }} | {{ q.size }} bytes | {{ q.quarantined_at }} |
Security logic signatures synchronized dynamically with the Root Security scanner.
| Rule ID | Category | Severity | Description | Status |
|---|---|---|---|---|
| {{ r.rule_id }} | {{ r.category }} | {{ r.severity }} | {{ r.description }} | ENABLED |
Immutable chronological record of all platform security evaluations, key lifecycles, and scan events.
| Timestamp | Event Type | Actor | Target Entity | Severity | Result |
|---|---|---|---|---|---|
| {{ ev.created_at }} | {{ ev.event_type }} | {{ ev.actor ?? 'system' }} | {{ ev.target_entity ?? '—' }} | {{ ev.severity }} | {{ ev.result }} |
Chronological ledger of all deep platform security scans, file integrity validations, and evaluated threat anomalies.
| Report ID | Audit Type | Outcome | Duration | Violations | Timestamp | Actions |
|---|---|---|---|---|---|---|
| #RS-SCAN-{{ scan.id }} | {{ scan.scan_type ?? 'DEEP' }} | CLEAN / SAFE THREAT DETECTED | {{ scan.duration_seconds }}s | {{ scan.findings_count }} violation(s) | {{ scan.created_at }} |
Centralized security orchestration: multi-provider AI model selection, resilient circuit breaker, persistent Main Brain directives, novel threat discovery queue, and adaptive Additional Brain layers.
{{ aiSupportedProviders[aiConfig.provider]?.description }}
Circuit breaker automatically triggers fallback if primary returns 429 quota exhaustion or network timeout.
Approved core security intelligence, directives, and verified threat signatures. Never overwritten or cleared automatically.
Total Rules: @{{ mainBrainRulesCount }} Directives: @{{ mainBrainData.summary.instructions_lines }} lines Playbook: @{{ mainBrainData.summary.playbook_lines }} lines Saved: @{{ mainBrainData.trained_at }} (@{{ mainBrainData.summary.droppers || 0 }} droppers, @{{ mainBrainData.summary.signatures || 0 }} hashes, @{{ mainBrainData.summary.patterns || 0 }} patterns)
Novel threat behaviors detected across telemetry & cPanel sensors. Explicit manual indexing required before promoting into Additional Brain.
| Finding ID & Indicator | Category | Source & Context | Confidence | Status | Actions | |
|---|---|---|---|---|---|---|
|
{{ b.value }}
{{ b.id }} • {{ b.detected_at }}
|
{{ formatCategory(b.category) }} |
{{ b.description }}
Source: {{ b.source }}
|
|
Awaiting Review Indexed (Step {{ b.reindexed_in_step || 1 }}) Dismissed |
|
Click Scan Fleet Telemetry above or trigger cPanel Checker to discover novel, unclassified threats.
Dynamic rules accepted and indexed through authorized manual review. Rules here fuse with Main Brain at runtime without modifying baseline core directives.
Review candidate indicators in the New Findings tab and click Index to create your first adaptive intelligence step.
How verified rules, custom directives, and HMAC-signed intelligence autonomously enforce defense across server docroots and client plugins.
Source of Truth: Persistent Core Intelligence + Dynamic Additional Brain + Admin Directives.
public_html/, cgi-bin/, and uploads without executing PHP runtime.
index.php, strips rogue .htaccess directives, and isolates web shells.
/api/v1/agent/connect and locks API Key to domain name.
.quarantine/ storage with forensic markers.
/api/v1/agent/ping.
The cPanel Checker operates outside the target WordPress runtime. If an attacker disables plugins, corrupts wp-load.php, or installs persistent web shells, the cPanel engine inspects the server directly via filesystem I/O, enlists Main Brain directives, and recovers the account to a pristine baseline state.
public_html/, cgi-bin/, .htaccess, index.phpWhenever a security analyst adds a directive, uploads a threat intelligence file, or promotes a rule in the Main Brain, the central compiler generates a cryptographic HMAC-SHA256 signature. Connected WordPress client plugins automatically ingest the new intelligence through their next sync cycle with zero PHP code edits and zero server downtime.
Directives and playbooks governing cPanel Checker deep scans, index restoration, and docroot hardening.
Dynamically discovered models from {{ aiSupportedProviders[aiConfig.provider]?.name || aiConfig.provider }}
| Model Identifier | Tier | Latency & Test | Assign |
|---|---|---|---|
|
{{ m.id }}
PRIMARY
FALLBACK
{{ m.description || m.name }}
|
Free Tier Eligible Commercial Standard |
✔ Verified
({{ m.test_result.latency_ms }}ms)
|
|
{{ selectedFindingForDetail.description }}
Configure any OpenAI-compatible provider (e.g. Groq, DeepSeek, Together AI, Mistral, Ollama, vLLM).
Distribute live malware rules and detection signatures across your WordPress agent fleet safely. All rule packs are cryptographically signed, verified via constant-time hashing, and hot-loaded by agents without touching plugin PHP source code.
Add new malware indicators to deploy fleet-wide immediately. Schema is validated deterministically before signing.
| Version | Status | Description | Signature | Updated | Action |
|---|---|---|---|---|---|
| v{{ pack.version }} | {{ pack.status }} | {{ pack.description }} | {{ (pack.signature || '').substring(0, 10) }}... | {{ pack.updated_at }} |
Active
|
| No versioned rule packs published yet. | |||||
When AI detects a security threat, it immediately takes a verified pre-change backup and replaces the threat with clean code. Review the action and code diff below. Click Accept Changes to confirm, or click Reverse to Original to restore the previous file at any time (even after acceptance).
| ID | Target File | Node / Site | Risk Level | Status | Pre-Change Backup | AI Modification | Admin Action |
|---|---|---|---|---|---|---|---|
| #{{ rem.id }} |
{{ rem.file_path }}
{{ rem.remediation_details?.threat_name || rem.remediation_type }}
|
{{ rem.site_name || rem.node_type || 'Main Node' }} | {{ rem.risk_level }} | ⚡ Auto-Cleaned (Pending Review) ✔ Accepted ↩ Reversed to Original ⏳ Pending Approval ↩ Rolled Back ✔ Completed {{ rem.status }} | ✔ Verified Backup None |
✔ Accepted
↩ Original Restored
✕ Rejected
Settled
|
|
|
🔍
Detailed Inspection of AI Action on:
{{ rem.file_path }}
{{ rem.remediation_details?.action_summary || 'Threat detected, neutralized, and replaced with clean code. Pre-change backup preserved.' }}
❌ Threat Detected (Malicious Code)
{{ rem.remediation_details?.threat_name || 'Detected Threat' }}
{{ rem.remediation_details?.threat_snippet || 'Suspicious payload / backdoor pattern identified and targeted for neutralization.' }}
✅ Clean Code Applied by AI (Replacement)
Sanitized
{{ rem.remediation_details?.cleaned_snippet || '/* [OrbisGuard AI Neutralized: Threat replaced with safe construct] */' }}
Pre-Change Backup:
{{ rem.backup_path || 'Stored in storage/backups' }}
Reversible at any time. Clicking "Reverse to Original" restores this exact backup.
|
|||||||
| No remediation actions recorded in queue. | |||||||
Manage centralized release publishing, cryptographic HMAC download tokens, and 1-click in-place fleet updates. Connected WordPress nodes automatically discover new versions and update in-place.
| Version | Title | Compatibility | Package Size & Checksum | Installed Nodes | Published At | Actions |
|---|---|---|---|---|---|---|
|
v{{ rel.version }}
Latest
Critical
|
{{ rel.title }} | WP {{ rel.min_wordpress_version }}+ · PHP {{ rel.min_php_version }}+ |
{{ (rel.package_size / 1024).toFixed(1) }} KB
{{ rel.package_checksum.substring(0, 16) }}...
|
{{ rel.installed_count || 0 }} sites | {{ rel.published_at || rel.created_at }} | ⬇ Download |
| No releases published yet. Use the form above to publish version 2.6.0. | ||||||
Non-negotiable change control, pre-change verification, and reversible rollback for malware decontamination, database migrations, configuration adjustments, and quarantine evidence preservation.
Every pre-change backup is SHA-256 hashed and verified readable before destructive changes occur.
Run a database dump or project snapshot above to create your first baseline.
| Backup ID & Category | Target Resource | Size & SHA-256 Checksum | Verification Status | Created / Expiry | Actions | |
|---|---|---|---|---|---|---|
|
{{ b.backup_id }}
{{ b.category }}
|
{{ b.source_resource }}
|
{{ Math.round((b.file_size || 0) / 1024) }} KB
{{ b.backup_hash ? b.backup_hash.substring(0, 16) + '...' : 'N/A' }}
|
✔ Verified
Unverified
{{ b.verification_notes }}
|
{{ b.created_at }}
Exp: {{ b.expires_at }}
|
|
Chronological history of all file and database recovery operations with verified before/after checksums.
| Restore ID & Backup ID | Target Resource | Pre-Restore vs Restored Hash | Reason | Status | Restored At |
|---|---|---|---|---|---|
|
{{ r.restore_id }}
{{ r.backup_id }}
|
{{ r.target_resource }} |
Before: {{ r.pre_restore_hash ? r.pre_restore_hash.substring(0, 12) + '...' : 'None' }}
After: {{ r.restored_hash ? r.restored_hash.substring(0, 12) + '...' : 'None' }}
|
{{ r.restore_reason }} | {{ r.status }} | {{ r.restored_at || r.created_at }} |
Every destructive change lifecycle: Requested → Preflight → Backup Verified → Applied → Verified Clean.
| Operation ID & Action | Target Resource | Before / After Hashes | Attached Backup | Status | Timestamp |
|---|---|---|---|---|---|
|
{{ op.operation_id }}
{{ op.action_type }}
|
{{ op.target_resource }} |
Pre: {{ op.before_hash ? op.before_hash.substring(0, 10) + '...' : 'N/A' }}
Post: {{ op.after_hash ? op.after_hash.substring(0, 10) + '...' : 'N/A' }}
|
{{ op.backup_id || 'None' }} | {{ op.status }} | {{ op.completed_at || op.created_at }} |
Deleted backups are safely quarantined here for 30 days before permanent purging. Grouped day-wise for easy inspection, single restoration, or bulk recovery.
Every archive deleted from the active list is stamped with an immutable deletion date. Once an item passes 30 days, it is autonomously and permanently removed. You may restore any archive back to the active fleet at any time.
| # | Backup ID & Category | Source Target | Size | Deleted At | Retention Expiry | Actions |
|---|---|---|---|---|---|---|
|
{{ item.backup_id }}
{{ item.category }}
|
{{ item.source_resource }} | {{ item.formatted_size }} | {{ item.deleted_at }} | ⏳ {{ item.days_left }} day(s) left |
Flexible quota tiers for freelance developers and enterprise agencies
When Disabled (OFF), all subscription cards display prices exclusively in BDT (৳). When Enabled (ON), multi-currency features are activated for international tiers.
Create, edit, or customize SaaS pricing packages dynamically
| Plan Name & Slug | Price / Billing Period | Max Sites | Popular Tag | Status | Actions |
|---|---|---|---|---|---|
| / | / | Nodes | Popular — | Active Inactive |
Manage subscriptions, account holds, and plan expirations
| Tenant Name & Email | Role | Active Plan | Sites Used | Plan Status | Actions | |
|---|---|---|---|---|---|---|
| {{ u.name }} {{ u.email }} | {{ u.role }} | {{ u.plan_name || 'Unlimited Fleet' }} | {{ u.site_count }} Nodes | {{ u.plan_status || 'Active' }} |
Configure outbound email delivery for verification PINs and expiry reminders
Dynamic execution intervals, concurrency locks, and persistent audit logs for all fleet scan cycles. Automated background security scans, scheduled telemetry checks, and server webhook triggers for your WordPress fleet.
Tenants who have not configured a custom schedule inherit this default interval.
Runs every minute; the backend dynamically evaluates each tenant's independent interval.
| Tenant Organization | Configured Interval | Schedule Type | Last Scan | Next Expected |
|---|---|---|---|---|
| @{{ ts.name }} | @{{ ts.interval_minutes }}m | ⚡ Custom 🌐 Default | @{{ ts.last_run_at || 'Never' }} | @{{ ts.next_run_at || 'Pending' }} |
This chosen schedule applies exclusively to your tenant fleet nodes. Changing this setting does not affect any other tenant.
Paste this curl command into your cPanel Cron Jobs or hosting scheduled tasks to trigger automated external scans exclusively for your WordPress fleet.
Comprehensive history of all automated and manual threat scans, nodes audited, and remediation outcomes.
| Run Identifier & Job | Execution Timestamps | Status | Nodes Scanned | Threat Outcome | Actions Taken | Duration |
|---|---|---|---|---|---|---|
|
{{ l.run_id }}
{{ l.job_type }}
|
Start: {{ l.started_at }}
End: {{ l.finished_at || 'In Progress' }}
|
{{ l.status }} | {{ l.nodes_scanned }} Nodes |
🛡️ Zero Threats Found (All Nodes Clean)
⚠️ {{ l.threats_detected }} Threat(s) Detected
|
{{ l.threats_quarantined || 0 }} Quarantined / {{ l.threats_remediated || 0 }} Remediated | {{ l.duration_seconds }}s |
{{ cronOutput }}
Super Admin Multi-Tenant Governance, Registration Approvals, and Tenant Impersonation
| Tenant / Organization | Primary Contact & Role | Approval Status | Account Status | Sites / Quota | Created Date | Actions | |
|---|---|---|---|---|---|---|---|
|
{{ t.owner_name || 'Owner' }}
{{ t.owner_email || '—' }}
{{ t.owner_role || 'tenant_admin' }}
|
Approved Pending Review Rejected | Active Suspended {{ t.status }} | {{ t.site_count || 0 }} Nodes ({{ t.threat_count || 0 }} threats) | {{ t.created_at ? t.created_at.split(' ')[0] : '—' }} |
Immutable ledger of authentication, tenant approvals, API bindings, and impersonations
| Timestamp | Action Event | Actor | Target | IP Address | Context Metadata | Actions | |
|---|---|---|---|---|---|---|---|
| {{ log.created_at }} | {{ log.action }} | {{ log.actor_name ? log.actor_name + ' (#' + log.actor_user_id + ')' : '#' + (log.actor_user_id || 'System') }} | {{ log.target_type }}: #{{ log.target_id || '—' }} | {{ log.ip_address || '—' }} | {{ typeof log.metadata === 'object' ? JSON.stringify(log.metadata) : (log.metadata || '—') }} |
{{ isSuperAdmin ? 'Fleet-wide threat telemetry, tenant distribution, and subscription analytics' : 'Threat monitoring, website health distribution, and quota consumption' }}
Super Admin Commercial Invoicing, Tenant Subscriptions, Manual Overrides & bKash Reconciliation
| Invoice # | Tenant / Customer | Tier / Plan | Amount | Due Date | Gateway & TrxID | Status | Actions | |
|---|---|---|---|---|---|---|---|---|
| No invoices match the filter criteria. | ||||||||
| {{ inv.invoice_number }} |
{{ inv.tenant_name || inv.user_name || 'N/A' }}
{{ inv.user_email }}
|
{{ inv.plan_name || 'Fleet Subscription' }} | {{ inv.due_date || 'N/A' }} |
{{ inv.gateway || 'bKash' }}
{{ inv.trx_id }}
Pending Payment
|
✔ Paid ⏳ Unpaid {{ inv.status }} |
|
||
Official bKash Tokenized Checkout API v2 configuration for automated recurring fleet security billing
Manage system currencies, foreign exchange conversion rates, and per-plan manual pricing overrides.
BDT remains the permanent base currency. All SaaS plan base prices are anchored to BDT.
| Currency | Name | Status | Action |
|---|---|---|---|
| BDT | Bangladeshi Taka (৳) | Active | Permanent |
| USD | US Dollar ($) | {{ currencySettingsForm.usd_enabled ? 'Active' : 'Disabled' }} |
Foreign exchange rate for automatic plan price conversion
Supports automatic FX conversion and plan-specific manual price overrides
| Plan | Base Price (BDT) | USD Price | Pricing Mode | Actions |
|---|---|---|---|---|
|
/
|
৳ |
$0.00
$
$
|
Fixed Free MANUAL AUTO |
Standard Free
|
Configure bKash (Local BDT), Stripe (International USD), and Payoneer with separate test/sandbox & live environments
Real-time webhook events and settlement transactions across all local and international processors
| Transaction / Trx ID | Gateway | Invoice # | Amount | Status | Timestamp |
|---|---|---|---|---|---|
| No payment transaction records found. | |||||
| {{ tx.gateway_transaction_id || tx.gateway_event_id || ('#TX-' + tx.id) }} | {{ tx.gateway }} | {{ tx.invoice_number || '—' }} | {{ tx.currency }} {{ Number(tx.amount).toFixed(2) }} | {{ tx.status }} | {{ tx.created_at }} |
Configure application identity, logos (light & dark mode), favicon, and metadata with both external image links and local server uploads.
Track your fleet licensing invoices, download official billing statements, and settle dues with instant bKash checkout
You have {{ tenantUnpaidInvoicesCount }} unpaid invoice(s). Settle immediately via bKash to ensure uninterrupted real-time WordPress fleet protection.
| Invoice # | Description / Plan | Amount | Due Date | Status | Gateway & TrxID | Action |
|---|---|---|---|---|---|---|
| No invoices generated for this tenant account yet. | ||||||
| ✔ Paid ⏳ Due |
|
✔ Settled
|
||||
Inspect hosting root directories, neutralize rogue webshells, restore corrupted WordPress core files, and recover sites locked out of /wp-admin.
Your cPanel credentials (API Token or Password) are securely forwarded over TLS directly into the active scan worker process and never stored in any database table, server log, browser cache, or report artifact. Secrets are automatically zeroed out in memory immediately upon job completion or termination.
.orbisguard_quarantine/).
• Boundaries: Never deletes essential core configuration or databases.
Target domain is automatically selected and verified from your active WordPress node subscription.
Under your subscription plan, emergency cPanel checks require a connected WordPress node with a registered domain.
Enter your WordPress site URL or domain name manually.
cPanel Host is derived automatically from your chosen connected node's domain.
Custom Host override active. Enter cPanel server IP or direct hostname.
Generate in cPanel -> Security -> Manage API Tokens (Requires Fileman & DomainInfo access).
Your cPanel account login username.
{{ cpanelTestResult.message }}
Establishing secure UAPI session, crawling WordPress document root, verifying .htaccess routing, inspecting mu-plugins, and auditing suspicious executable signatures with AI correlation engine. Please do not close this window.
Job ID: {{ cpanelCurrentReport.job_id }} • Executed: {{ new Date(cpanelCurrentReport.created_at || Date.now()).toLocaleString() }}
Tested Endpoint: {{ cpanelCurrentReport.wp_availability.checked_url || 'wp-login.php' }} — {{ (cpanelCurrentReport.wp_availability.is_available || cpanelCurrentReport.wp_availability.accessible) ? 'Site responds properly without fatal gateway timeout.' : 'Site still returns error or redirect. Check database or hosting error logs.' }}
{{ (cpanelCurrentReport.ai_assessment && cpanelCurrentReport.ai_assessment.engine_name) || (cpanelCurrentReport.inspection_summary && cpanelCurrentReport.inspection_summary.ai_assessment && cpanelCurrentReport.inspection_summary.ai_assessment.engine_name) || 'OrbisGuard Dual-Brain Intelligence' }}
{{ (cpanelCurrentReport.ai_assessment && cpanelCurrentReport.ai_assessment.executive_summary) || (cpanelCurrentReport.inspection_summary && cpanelCurrentReport.inspection_summary.ai_assessment && cpanelCurrentReport.inspection_summary.ai_assessment.executive_summary) || 'AI heuristic engine audited core files and uploads. Threat directives successfully enforced.' }}
| Severity | File Path | Threat Category | Confidence | Status |
|---|---|---|---|---|
| {{ f.severity || 'SUSPICIOUS' }} | {{ f.path }} |
{{ f.threat_name || f.category || 'Malicious Signature' }}
{{ f.description || f.indicator }}
|
{{ f.confidence ? (f.confidence * 100).toFixed(0) + '%' : '95%' }} | ✔ Quarantined Needs Review |
{{ rem.target_file || rem.path }}
{{ rem.quarantine_path || rem.dest_path }}
/wp-admin and run a full WordPress Fleet Remote Scan to refresh agent telemetry.wp-config.php security salts remain authentic and consider rotating database credentials if webshells were found.Select an authorized WordPress node on the left, enter your cPanel hosting credentials, and click Run Recovery Scan to perform an offline security inspection.
Non-sensitive audit trail of past hosting inspections and quarantined threats
| Job ID | Domain / Node | cPanel Host | Status | WP Recovery | Date & Time | Actions | |
|---|---|---|---|---|---|---|---|
| No previous cPanel checker jobs found. | |||||||
| {{ job.job_id }} | {{ job.domain }} | {{ job.cpanel_host }} | {{ job.status }} | ✔ Online Offline / Pending | {{ new Date(job.created_at).toLocaleString() }} |
|
|
Review, authorize, or reject incoming node Edit and Delete requests from tenant fleets. Policy strictly enforces max 3 modification requests per tenant per calendar month.
Tenant edits and deletions do not apply live until authorized. Each accepted request consumes 1 of the tenant's 3 monthly allowances. Subscription node slots are not released until deletion is fully approved and completed.
| Request | Tenant / Requester | Monthly Quota | Target Node | Proposed Modification | Status | Actions |
|---|---|---|---|---|---|---|
|
#{{ r.id }}
{{ new Date(r.created_at).toLocaleString() }}
|
{{ r.tenant_name || 'Independent User' }}
{{ r.user_name }} ({{ r.user_email }})
|
{{ r.tenant_monthly_usage }}/{{ r.max_monthly_limit }} used
Month: {{ r.month_period }}
|
{{ r.live_site_name || ('Node #' + r.site_id) }}
{{ r.live_site_url }}
No live domain bound
|
EDIT REQUEST
Name:
{{ r.original_data_parsed.site_name }}
→ {{ r.requested_data_parsed.site_name }}
URL:
{{ r.original_data_parsed.site_url }}
→ {{ r.requested_data_parsed.site_url }}
"{{ r.reason }}"
DELETE REQUEST
Reason: "{{ r.reason || 'Requested termination' }}"
Node remains active until this request is approved.
|
⏳ Pending Approval
✓ Completed
✕ Rejected
⚠️ Failed: {{ r.error_message || 'Error' }}
Decided: {{ new Date(r.decided_at).toLocaleDateString() }}
Note: {{ r.admin_notes }}
|
Decision archived
|
Review the submission status and Super Admin decision history for your WordPress node modifications.
Edit and Delete requests both consume 1 allowance. Limit resets on {{ nodeModStats.reset_date_formatted }}.
| Request ID | Target Node | Action | Submitted At | Status | Super Admin Notes |
|---|---|---|---|---|---|
| #{{ r.id }} | {{ r.current_site_name || ('Node #' + r.site_id) }} | {{ r.action_type }} | {{ new Date(r.created_at).toLocaleString() }} | ⏳ Pending Approval ✓ Approved & Completed ✕ Rejected ⚠️ Execution Failed | {{ r.admin_notes || '—' }} |
Submit technical inquiries, report WordPress agent issues, or request security escalations directly to our central engineering team.
No support tickets found.
Need help with your WordPress nodes or security definitions? Create a new ticket!
| Ticket | Subject | Category | Priority | Status | Last Activity | Action | |
|---|---|---|---|---|---|---|---|
| {{ t.ticket_number }} | {{ t.subject }} {{ t.message_count }} message(s) | {{ getCategoryLabel(t.category) }} | {{ t.priority }} |
{{ getStatusLabel(t.status) }}
📦 Archived
|
{{ formatTicketDate(t.last_reply_at || t.created_at) }}
By {{ t.last_reply_by_role === 'super_admin' ? 'Support Team' : 'You' }}
|
|
Authoritative inbox for all tenant inquiries. Respond directly, modify priorities, and resolve system escalation tickets.
| Ticket | Tenant / Requester | Subject | Category | Priority | Status | Last Reply | Action | |
|---|---|---|---|---|---|---|---|---|
| {{ t.ticket_number }} |
{{ t.tenant_name || 'System / Direct' }}
{{ t.creator_email || t.creator_name }}
|
{{ t.subject }}
{{ t.message_count }} message(s)
|
{{ getCategoryLabel(t.category) }} | {{ t.priority }} |
{{ getStatusLabel(t.status) }}
📦 Archived
|
{{ formatTicketDate(t.last_reply_at || t.created_at) }}
By {{ t.last_reply_by_role === 'super_admin' ? 'Super Admin' : 'Tenant' }}
|
|
Edit friendly site label or target WordPress domain.
Submitting this edit request will consume 1 of your 3 monthly modification allowances (Current: {{ nodeModStats.used_this_month }}/{{ nodeModStats.max_limit }} used). Changes will be reviewed by Super Admin and will only update the live node upon approval.
Must be a valid hostname under one-key-one-domain cryptographic binding.
Unlink and terminate cloud protection for this WordPress instance.
{{ decisionAction === 'approve' ? 'Execute proposed changes directly onto the live node.' : 'Reject changes. Live node will remain unchanged.' }}
Approving this deletion will permanently revoke node credentials, delete fleet records, and free up 1 subscription slot for this tenant.
Job ID: {{ previewingCpanelJob.job_id }} • {{ new Date(previewingCpanelJob.created_at).toLocaleString() }}
{{ (previewingCpanelJob.ai_assessment && previewingCpanelJob.ai_assessment.executive_summary) || (previewingCpanelJob.inspection_summary && previewingCpanelJob.inspection_summary.ai_assessment && previewingCpanelJob.inspection_summary.ai_assessment.executive_summary) || 'AI heuristic engine audited core files and uploads. Threat directives successfully enforced.' }}
Provide details so our security engineers can investigate promptly.
Opened by {{ activeTicket.creator_name || 'Tenant User' }} ({{ activeTicket.tenant_name }}) • {{ new Date(activeTicket.created_at).toLocaleString() }}
Target Node: {{ scanningNode?.site_name }} ({{ scanningNode?.site_url }})
Connecting to WordPress Agent engine over secured handshake
Scanned At: {{ rootScanResult?.scanned_at || 'Just now' }} • Main Node File Integrity & Heuristics
Hashing system files, validating cryptographic baselines, and scanning rule heuristics.
No unauthorized modifications, suspicious PHP signatures, or baseline tampering were found in the monitored directories.
{{ finding.description || finding.title || 'Integrity anomaly detected.' }}
Irreversible Administrator Action
You are authorizing the permanent deletion of @{{ pendingDeleteIds.length }} quarantined item(s).
Security Safeguard: Automatic permanent deletion is strictly blocked. Quarantined copies and backup records will be permanently purged from the server. This action requires Super Admin authorization and is permanently logged in the audit ledger.
{{ previewSkillData?.description || 'Trained threat intelligence and detection heuristics' }} • Min Agent: {{ previewSkillData?.min_agent_version || '2.6.0' }}
{{ JSON.stringify(getSkillRules(previewSkillData), null, 2) }}
{{ isSuperAdmin ? 'Generate an API key and download the universal agent plugin.' : 'Specify your WordPress domain name according to your subscription tier to generate an agent connection key.' }}
{{ generatedServerUrl }}
{{ generatedServerUrl || 'this domain' }}. Upload to your WordPress site under Plugins → Add New → Upload Plugin.
Provision a multi-tenant organization, assign primary owner, and configure fleet quotas
Bulk import invoice records from CSV or JSON format with duplicate protection and data validation
| # | Customer | Amount | Status | Validation Result |
|---|---|---|---|---|
| {{ r.index }} |
{{ r.user_name }}
{{ r.user_email }}
|
{{ r.currency === 'USD' ? '$' : '৳' }} {{ Number(r.amount).toFixed(2) }} | {{ r.status }} | ✔ Valid ⚠ Duplicate (Skipped) ✖ {{ r.errors[0] || 'Invalid' }} |
| Invoice # | Description | Date | Status | Amount (BDT) |
|---|---|---|---|---|
| No invoices on file. | ||||
Invoice # • Transaction Audit Document
Dhaka, Bangladesh • billing@orbisguard.io
| Description | Billing Cycle | Quantity | Unit Price | Line Total |
|---|---|---|---|---|
|
Tier:
•
Capacity:
|
1 |
Settled on . Transaction Reference: (bKash Gateway).
Please settle via bKash Checkout before to maintain uninterrupted cloud fleet security.
All security modules remain active throughout the active paid billing term.
Official Digital Tax Document • Generated automatically by OrbisGuard Engine.
Secure electronic settlement via local & global processors
{{ previewModal.data.file_path || 'Unknown' }}
{{ previewModal.data.threat_snippet }}
{{ getParsedRemediationDetails(previewModal.data).human_explanation }}
{{ step.detail }}
Calculated original SHA-256 hash prior to modification, ensuring non-destructive forensic admissibility without evidence loss.
Relocated file to secure .orbisguard-quarantine/ storage with locked permissions (chmod 0600), severing public HTTP execution.
Neutralized doorway redirects, cron hooks, fake search engine cloaking headers, and unauthorized database admin injections.
Deployed self-healing barrier shields and WAF definitions preventing reinfection from persistent C2 droppers.
{{ JSON.stringify(previewModal.data, null, 2) }}
{{ keyModalSite.site_name }} ({{ keyModalSite.site_url || 'Pending domain' }})
Update your account name, email address, and security password.