probe
Relay a read-only forensic operation to the site through the SaaS broker. You can read ANYTHING inside the site read-only — including arbitrary options and arbitrary SQL — so never fall back to SSH for a read. READ-ANYTHING ops: "option_get" reads any single WP option by name (params: {"name":"the_option_name"}); "db_query" runs arbitrary READ-ONLY SQL (params: {"sql":"SELECT ... ","max_rows":1000} — only SELECT/SHOW/DESCRIBE/EXPLAIN/WITH, writes are rejected). LOGS — READ THIS BEFORE ANSWERING ANY TRAFFIC/ACCESS QUESTION: the FULL access log lives ON THE SITE, not in Site Doctor. The connector self-logs every request (status, URI, IP, duration, memory, queries — including successful 200s) to the site's own disk, 90-day retention. Read it with op "ah_events" (params: {"hours":<=720,"type":"request"|"php_error"|"php_fatal"|"exception","level","status_min","limit":<=2000}). Site Doctor's own DB (sd_logevents, via saas_query) keeps only the SIGNAL — errors and sensitive writes; ~99% of successful requests are filtered out on ingest — so NEVER answer "how much traffic / which pages / where do visitors come from" from saas_query: query the site with ah_events instead. Other ops: info, plugins, themes, users, options_sensitive, options_scan (curated/IOC option sweep), files_list, files_get (params: {"path","max_bytes"}), files_recent, posts_scan, logs_read (raw host log files), cron, db_health, perf, hooks, template_scan, log_digest, ah_pagespeed. Pass op-specific params in "params". If an op returns "unknown_op"/"unsupported", the site is on an OLD connector — tell the user to update the SiteDoctor connector plugin. ACCESS MAP: op "capabilities" (no params, ≈10-40 s) probes what THIS site's connector can answer right now — options, DB, files under ABSPATH and under wp_content_dir, request log — and classifies each as ok / waf: / timeout / old_connector / path_unresolved, with advice. get_site shows the cached result as access. Run it BEFORE telling the user something is unreachable; never assume a block you did not verify.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| op | Yes | Probe operation name. To read a specific option use "option_get"; for any other DB read use "db_query". | |
| params | No | Operation parameters, e.g. {"name":"siteurl"} for option_get or {"sql":"SELECT option_name FROM wp_options LIMIT 20"} for db_query. | |
| site_id | Yes | Site id from list_sites |