{"table_name":"aicom_api_keys","full_table_name":"wp_aicom_api_keys","description":"Stores aicom api keys data created by this plugin.","detection_method":"static","confidence":"high","create_sql":"CREATE TABLE wp_aicom_api_keys ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, label VARCHAR(191) NOT NULL, key_prefix VARCHAR(16) NOT NULL, key_hash VARCHAR(255) NOT NULL, scopes_json LONGTEXT NOT NULL, restrictions_json LONGTEXT NULL, status VARCHAR(20) NOT NULL DEFAULT 'active', last_used_at DATETIME NULL, last_used_ip VARCHAR(45) NULL, created_at DATETIME NOT NULL, updated_at DATETIME NOT NULL, created_by_user_id BIGINT UNSIGNED NULL, revoked_at DATETIME NULL, PRIMARY KEY (id), KEY idx_key_prefix (key_prefix), KEY idx_status (status) ) $charset;\"; // ── Audit Logs ──────────────────────────────────────────────────── $sql_logs = \"CREATE TABLE wp_aicom_logs ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, created_at DATETIME NOT NULL, request_id VARCHAR(64) NOT NULL, remote_ip VARCHAR(45) NOT NULL, api_key_id BIGINT UNSIGNED NULL, api_key_label VARCHAR(191) NULL, tool_name VARCHAR(191) NOT NULL, module VARCHAR(64) NOT NULL, status VARCHAR(32) NOT NULL, http_status SMALLINT NULL, duration_ms INT UNSIGNED NULL, target_type VARCHAR(64) NULL, target_id VARCHAR(100) NULL, is_dry_run TINYINT(1) NOT NULL DEFAULT 0, error_code VARCHAR(100) NULL, error_message TEXT NULL, params_json LONGTEXT NULL, result_summary_json LONGTEXT NULL, PRIMARY KEY (id), KEY idx_created_at (created_at), KEY idx_tool_created (tool_name, created_at), KEY idx_status_created (status, created_at), KEY idx_ip_created (remote_ip, created_at), KEY idx_key_created (api_key_id, created_at), KEY idx_request_id (request_id) ) $charset;\"; // ── Backups ─────────────────────────────────────────────────────── $sql_backups = \"CREATE TABLE wp_aicom_backups ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, created_at DATETIME NOT NULL, request_id VARCHAR(64) NULL, api_key_id BIGINT UNSIGNED NULL, tool_name VARCHAR(191) NULL, target_type VARCHAR(64) NULL, target_id VARCHAR(100) NULL, manifest_json LONGTEXT NULL, payload_json LONGTEXT NULL, PRIMARY KEY (id), KEY idx_created_at (created_at), KEY idx_target (target_type, target_id) ) $charset;\"; dbDelta( $sql_keys );","columns":[{"name":"id","type":"BIGINT UNSIGNED","nullable":false,"primary_key":true},{"name":"label","type":"VARCHAR(191)","nullable":false,"primary_key":false},{"name":"scopes_json","type":"LONGTEXT","nullable":false,"primary_key":false},{"name":"restrictions_json","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"status","type":"VARCHAR(20)","nullable":false,"primary_key":false},{"name":"last_used_at","type":"DATETIME","nullable":true,"primary_key":false},{"name":"last_used_ip","type":"VARCHAR(45)","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"updated_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"created_by_user_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"revoked_at","type":"DATETIME","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"request_id","type":"VARCHAR(64)","nullable":false,"primary_key":false},{"name":"remote_ip","type":"VARCHAR(45)","nullable":false,"primary_key":false},{"name":"api_key_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"api_key_label","type":"VARCHAR(191)","nullable":true,"primary_key":false},{"name":"tool_name","type":"VARCHAR(191)","nullable":false,"primary_key":false},{"name":"module","type":"VARCHAR(64)","nullable":false,"primary_key":false},{"name":"status","type":"VARCHAR(32)","nullable":false,"primary_key":false},{"name":"http_status","type":"SMALLINT","nullable":true,"primary_key":false},{"name":"duration_ms","type":"INT UNSIGNED","nullable":true,"primary_key":false},{"name":"target_type","type":"VARCHAR(64)","nullable":true,"primary_key":false},{"name":"target_id","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"is_dry_run","type":"TINYINT(1)","nullable":false,"primary_key":false},{"name":"error_code","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"error_message","type":"TEXT","nullable":true,"primary_key":false},{"name":"params_json","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"result_summary_json","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"created_at","type":"DATETIME","nullable":false,"primary_key":false},{"name":"request_id","type":"VARCHAR(64)","nullable":true,"primary_key":false},{"name":"api_key_id","type":"BIGINT UNSIGNED","nullable":true,"primary_key":false},{"name":"tool_name","type":"VARCHAR(191)","nullable":true,"primary_key":false},{"name":"target_type","type":"VARCHAR(64)","nullable":true,"primary_key":false},{"name":"target_id","type":"VARCHAR(100)","nullable":true,"primary_key":false},{"name":"manifest_json","type":"LONGTEXT","nullable":true,"primary_key":false},{"name":"payload_json","type":"LONGTEXT","nullable":true,"primary_key":false}],"plugin":{"slug":"aicom","name":"AICOM – AI Commander","active_installs":0,"version":"2.2.0","wp_org_url":"https://wordpress.org/plugins/aicom/"}}