| 开发者 | benkalsky |
|---|---|
| 更新时间 | 2026年7月15日 17:50 |
| PHP版本: | 7.4 及以上 |
| WordPress版本: | 7.0 |
| 版权: | GPLv2 or later |
| 版权网址: | 版权信息 |
manage_options / update_*). Only authorized administrators can trigger actions.X-Aura-Token header. Only a SHA-256 hash is stored (never the raw token), compared timing-safely. Tokens from older versions migrate to a hash automatically./wp-json/aura/v1/:
GET /status — Full site health reportGET /updates — Check available updates (core, plugins, themes, translations)POST /update/core / /update/plugin / /update/theme / /update/translations — Apply updatesPOST /update/database — Run WordPress database upgradesPOST /connect — Magic-link token exchange (public, HMAC-signed, 10-minute expiry)/wp-json/aura/v2/:
GET /health — HTTP, PHP fatal, white-screen and DB connectivity checksPOST /update/batch — Chunked batch updates with auto-rollback on health failurePOST /rollback/{plugin} — Restore a plugin from its most recent backup/wp-json/aura/mcp/:
POST /tools/list / POST /tools/execute — Enumerate and run AI-agent toolsGET /context — Full site context for AI decision-makingget_site_context — WordPress/PHP/theme/plugin/disk/performance snapshot with detected issuesget_database_info — Database size, largest tables, autoloaded-options weight, expired transientsscan_security — Scored security posture (file-edit lockdown, debug exposure, SSL, default admin/prefix, open registration, PHP version)scan_seo — SEO posture (search-engine visibility, permalinks, XML sitemap, site title) plus a sampled content audit (thin content, missing excerpts/featured images)scan_a11y — Accessibility audit over sampled content (images missing alt text, non-descriptive link text, heading structure, document language)perf_check — Performance posture (persistent object cache, OPcache, page-cache plugin, PHP version, autoload weight, active plugin count, memory limit)scan_broken_links — Link triage over a content sample with no outbound HTTP (empty/anchor-only links, dev/staging hosts, unresolved internal links)list_users — Users with roles and post counts, administrators flagged (never returns secrets)check_health — Live health gate: HTTP status, PHP fatals, white-screen, database connectivityscan_error_log — Tails and severity-groups the error log, surfacing recent fatalscheck_vulnerabilities — Plugins/themes checked against the WordPress.org vulnerability databaseget_seo_meta — Read a post/page's SEO title, description, and focus keyword from the active SEO plugin (Rank Math, Yoast, or SEOPress)list_page_blocks — Read a page's Gutenberg block structure (block names, attributes, nesting)update_plugin_safely — Backup, update, health-check, auto-rollback on failureclear_caches — Flush object/opcode caches and detected page-cache pluginscleanup_transients — Remove expired transients to reduce autoload bloatcleanup_orphaned_assets — Find and remove unused media (dry-run by default)backup_plugins — Zip-snapshot one or all active plugins as a rollback safety netset_seo_meta — Write a post/page's SEO title / description / focus keyword on the active SEO plugin (Rank Math, Yoast, or SEOPress) — on-site, so it works even when a WAF blocks the plugin's own REST endpointupdate_page_block — Update a Gutenberg block's content or attributes (snapshot-first, reversible)create_page_from_blocks — Create a new page from a Gutenberg block spec (draft-first)read_file — read a text file from inside wp-content (jailed; refuses wp-config.php).db_query — a single read-only SQL statement (SELECT / SHOW / EXPLAIN), row-capped.write_file — write a file inside wp-content, snapshot-first so it can be rolled back.run_wp_cli — run an allowlisted WP-CLI command, with no shell and no metacharacters.execute_php — run a PHP snippet against the full WordPress API.wp-config.php for each one. Installing the Power Pack alone enables no writes and no code execution.execute_php is powerful by design. The controls are the constant you set, the human who approves the call, and the audit trail — not a promise that arbitrary code is safe.
Learn more at my-aura.app/siteagent.
About Aura
Aura is a full-stack operations dashboard by Digitizer that brings servers, applications, DNS zones, and CDN pull zones from Cloudways, Hostinger VPS, Cloudflare, and Bunny.net into a single unified interface.
SiteAgent extends that reach into every WordPress installation — so you can manage your entire infrastructure, including WordPress sites, from one place.
Free to Use
The plugin is completely free and open source (GPLv2+). You need a free or paid Aura account to connect your sites. Sign up at my-aura.app.
Links
wp plugin install digitizer-site-worker --activate
Manual Upload
Yes, you need an Aura account to connect your WordPress sites. Aura offers a free tier that includes up to 3 WordPress sites. Sign up at my-aura.app.
Yes. The plugin uses defence-in-depth: WordPress Application Passwords (the same standard mechanism used by the block editor), a per-site token stored only as a SHA-256 hash and verified timing-safely, per-IP brute-force throttling, an HMAC-signed onboarding handshake, and an optional IP/domain allowlist. No data is transmitted unless a request is made by your Aura instance.
SiteAgent can require a per-action, cryptographically signed approval before it runs a state-changing MCP tool (cleanups, cache flushes, SEO writes, safe plugin updates run through the tool interface). Once enabled, each such write must carry a single-use signature that only the Aura dashboard can mint, after a human approves the action — so a leaked Site Token cannot run those tools on its own. This gate turns on automatically once the site holds Aura's approval key, which is provisioned securely during connection. If you installed or updated the plugin but have not reconnected the site since, the gate is dormant and the site runs in the standard token-only mode. To activate it, simply reconnect the site from your Aura dashboard — no reinstall is needed. Note: the approval gate currently covers the MCP tool path. Core, plugin, and theme updates performed over the plugin's direct REST update endpoints are still authorized by the Site Token alone (the standard site-management model), so treat the Site Token as a sensitive credential regardless. Grant coverage for those update endpoints is on the roadmap.
No. The plugin registers only REST API endpoints. It does not load any code, scripts, or database queries on frontend page loads. Your visitors experience zero impact.
WordPress 6.2 or higher is required. This is needed for full Application Password support. The plugin has been tested up to WordPress 7.0.
PHP 7.4 or higher. PHP 8.0+ is recommended.
Yes. The plugin supports an optional IP whitelist. If configured, only requests from the specified IP addresses will be accepted. Cloudflare and reverse proxy headers (CF-Connecting-IP, X-Forwarded-For, X-Real-IP) are fully supported for IP detection.
The plugin is designed for single WordPress installations. Multisite support is not currently available but is on the roadmap.
Only a SHA-256 hash of the Site Token is stored, in the WordPress option aura_worker_site_token — the raw token is never persisted. It is generated on first activation and shown once so you can copy it; the Aura dashboard keeps the only raw copy. Tokens created by older versions are upgraded to a hash automatically on first use.
Yes. Use Regenerate Token on the Settings → SiteAgent page. The new token is shown once. Regenerating invalidates the old token and disconnects the site from Aura until you reconnect with the new one.
Simply deactivate or delete the plugin, or remove the site from your Aura dashboard. If you deactivate the plugin, the REST API endpoints are unregistered and Aura can no longer communicate with the site.
No. Aura uses WordPress Application Passwords, not your main admin password. Application Passwords are scoped specifically for REST API access and can be revoked at any time from Users → Your Profile in wp-admin.
Yes. SiteAgent is open source under the GPLv2 or later license. The source code is available on GitHub.
unserialize() restricted to allowed_classes => false,
so a tampered payload file can no longer instantiate arbitrary PHP objects on
the restore path (object-injection defense-in-depth). Restores fail closed on
any object-bearing or malformed payload. The restore paths are unchanged for
the scalar and array data the engine actually stores.wp_delete_file(),
and the SEO auditor reads WordPress core's sitemap state through the sitemaps
server instead of re-firing the wp_sitemaps_enabled filter.snapshot_meta (post-meta capture with a meta restore kind) and
snapshot_posts (multi-post capture with a posts restore kind that recreates
a deleted post under its original id). These are groundwork for upcoming
governed Elementor and bulk-post editing; they are not yet exposed over the
remote snapshot API in this release (which still handles file and option).do_action( 'aura_worker_token_run_as', $user_id, $route ) whenever a request is authorized by token alone and run as an admin, so site owners can distinguish token-run-as from interactive admin actions in their audit log. The admin fallback is now deterministic (lowest-ID administrator).app.my-aura.app) instead of the marketing domain, so one-click connect works out of the box. (Sites that set the AURA_DASHBOARD_URL constant are unaffected.)set_seo_meta on Yoast — after writing the meta, the cached Yoast indexable is now invalidated so the frontend serves the new SEO title/description immediately instead of the stale value (previously required a manual save/reindex).perf_check autoload weight — counts all WP 6.6+ autoload values (yes, on, auto-on, auto) instead of only yes, so the figure is no longer under-reported on newer cores.scan_broken_links — the reported counts now reflect the true number of matches; previously they were capped at the 10-item sample limit. Samples remain capped.scan_seo — missing excerpts now count toward the score (an excerpts finding is reported) instead of being tallied but ignored.scan_a11y document language — verified against the rendered <html lang> attribute of the home page rather than the configured locale, so a theme that omits language_attributes() is correctly flagged.get_seo_meta (read) — returns the SEO title, description, and focus keyword.set_seo_meta (write, approval-gated) — sets any of title / description / focus keyword; only the fields you pass change.perf_check (read) — performance posture (persistent object cache, OPcache, page-cache plugin, PHP version, autoload weight, active plugin count, PHP memory limit, expired transients).scan_broken_links (read) — link triage over a content sample with NO outbound HTTP: empty/anchor-only links, links to dev/staging hosts, and internal links that don't resolve locally.scan_seo (read) — SEO posture (search-engine visibility, permalink structure, XML sitemap, site title) plus a sampled content audit (missing excerpts/featured images, thin content).scan_a11y (read) — accessibility audit over sampled content (images missing alt text, non-descriptive link text, missing heading structure, document language attribute).get_database_info (read) — database size, largest tables, autoload weight, expired transient count.scan_security (read) — scored security posture (file-edit lockdown, debug exposure, SSL, default admin/prefix, open registration, PHP version).list_users (read) — users with roles and post counts, admins flagged; never returns secrets.check_health (read) — live health gate (home-page HTTP, PHP fatals, white-screen, DB) for wrapping updates.scan_error_log (read) — tails and severity-groups the PHP/WordPress error log, surfacing recent fatals.clear_caches (write) — flush object cache, opcache, and detected page-cache plugins (W3TC, WP Super Cache, WP Rocket, LiteSpeed, Autoptimize).cleanup_transients (write) — remove expired transients to reduce autoload bloat.backup_plugins (write) — zip-snapshot one or all active plugins (rollback safety net) before mutating actions.alt attribute, breaking the plugin page's HTML.