
內容簡介
Sumotori Dash Agent 是一個連接器,能將 WordPress 網站與您選擇的監控儀表板連結,方便您監控所維護的網站。此外掛不預設服務地址,需手動輸入儀表板 URL,並在配對後才會傳輸資料。
【主要功能】
• 透過代碼配對,簡化設置流程
• 管理事件報告,追蹤重要操作
• 提供只讀清單,保障資料安全
• 支援多站點管理,方便整體監控
• 不傳輸敏感資料,保護隱私
外掛標籤
開發者團隊
原文外掛簡介
Sumotori Dash Agent is a connector. It links a WordPress site to the monitoring
dashboard of your choice — the one you use to keep an eye on the sites you
maintain.
The plugin ships with no service address. You enter the dashboard URL
yourself when pairing, and nothing is transmitted until the site is paired.
See the “External services” section below for the exhaustive list of the data
exchanged.
What the agent does
Pairing by code: you paste a short code displayed by your dashboard into
the settings screen; the agent then obtains the endpoint and the shared secret
by itself. No secret has to be copied by hand. The same pairing can be
triggered from WP-CLI, or by an administrator through this site’s own REST API
— useful when the plugin was installed remotely and nobody is going to open
wp-admin to copy a code.
Administration event reporting: creation or promotion of an administrator
account, administrator login, plugin activation or deactivation, completed
update, theme switch, account deletion. Every message is signed (HMAC-SHA256)
and sent non-blocking: a slow or unreachable dashboard never slows the site
down.
Read-only inventory: the agent exposes two REST routes that answer
requests signed by your dashboard. They only write a response: no option is
modified, no task is scheduled, no command is executed.
Multisite: a single link for the whole network, managed from the network
administration. The inventory can target any sub-site.
Privacy
The agent never transmits passwords, password hashes, file contents, post
contents, or backup destination credentials (S3 keys, SFTP passwords, Google
Drive tokens and the like). It does however transmit personal data about your
administrator accounts: see “External services”.
External services
This plugin communicates with a third-party monitoring dashboard, separate
from this WordPress site.
Which service? There is no default service: no address is hardcoded in the
plugin. The service contacted is the one whose URL you enter yourself in the
“Settings → Dash Agent” screen when pairing (a SUMOTORI_DASH_AGENT_URL
constant may also be defined in wp-config.php to enforce that address). The
endpoint actually used for subsequent messages is the one that service returns
in its pairing response. The operator of that service is the person or company
hosting it, and that operator publishes its own terms of use and privacy policy.
The dashboard this plugin was written against is a self-hosted, open-source
application; you can run your own instance.
Reference implementation: https://github.com/tommybds/wp-dashboard
Terms of use: https://github.com/tommybds/wp-dashboard/blob/master/TERMS.md
Privacy policy: https://github.com/tommybds/wp-dashboard/blob/master/PRIVACY.md
No data is transmitted until the site is paired. Before pairing the plugin
makes no outbound request whatsoever, and its inventory REST routes answer 403 to
every call. The one route that answers before pairing is the pairing route
itself (/wp-json/sumotori-dash/v1/pair), and only to a logged-in administrator
of this site: it is how the pairing is started, and it reports no site data — it
returns nothing but the resulting link status.
Exchanges happen in exactly three situations.
1. Pairing (one request, manually triggered)
When: only when an administrator submits a pairing code from the settings
screen, runs wp dash-agent pair, or triggers the pairing through this site’s
own REST API (POST /wp-json/sumotori-dash/v1/pair, reserved to the same
capability as the settings screen — see the FAQ). Whichever of the three routes
is used, the request below is the very first thing the plugin ever sends: no
data leaves the site before it.
Where: POST
Data transmitted:
the pairing code you entered;
the URL of this site (home_url(), or network_site_url() on multisite);
the agent version number;
a boolean telling whether the installation is a multisite.
In return, the service sends back the event endpoint and a shared secret, which
are stored in this site’s database.
2. Administration events (one request per event)
When: on each event listed below, for as long as the site is paired.
Where: POST
timeout, signed with the X-Viz-Site, X-Viz-Timestamp and X-Viz-Signature
headers.
Every message contains the site URL, the event name, a timestamp and, on
multisite, the ID and URL of the sub-site concerned. Depending on the event, it
also contains:
Administrator account created / promoted to administrator: numeric ID,
login name, email address and role list of the account concerned.
Administrator login: numeric ID, login name, email address and the
IP address the login came from.
Promotion to super administrator (multisite): numeric ID, login name and
email address.
Plugin activated / deactivated: plugin file path and scope (network or
site).
Update completed: type (plugin, theme, core), action, and the list of
updated items.
Theme switched: new theme name, incoming and outgoing stylesheets.
Account deleted: numeric ID and login name of the deleted account, ID of
the reassignment account.
Sub-site created (multisite): ID, URL and name of the sub-site.
3. Answers to inventory requests (no outbound request)
When: when the dashboard queries this site at
GET /wp-json/sumotori-dash/v1/inventory or
GET /wp-json/sumotori-dash/v1/sites. These requests must carry a valid HMAC
signature, computed with the shared secret and timestamped (300-second window);
any other request gets a 403. The plugin contacts nobody in this case: it merely
answers.
Data transmitted in the response:
WordPress version and pending core update where applicable;
site URL and name, PHP version;
inventory of installed plugins: slug, activation state, installed version,
whether an update is pending and the target version;
inventory of installed themes: directory slug, display name, state (active,
parent theme of the active child theme, or inactive), installed version,
whether an update is pending and the target version, and the slug of the parent
theme for a child theme;
number of themes with a pending update;
administrator accounts: numeric ID, login name, email address and
registration date;
UpdraftPlus backup settings when it is installed: file and database backup
frequency, retention rules (including additional weekly or monthly rules),
names of the configured destinations and the timestamp of the last backup;
number of plugins set to auto-update;
if the VizProof Timeline plugin is active on the site: its version, the number
of pages it watches, a boolean telling whether it is connected to its own
service (its API token is never transmitted, only its presence is reported),
and the ID, state and date of its last check;
on multisite: number of sub-sites, network-activated plugins, super
administrators (login name, numeric ID, email address) and the list of
sub-sites (ID, URL, name).
Never transmitted
Passwords, password hashes, file contents, post contents, third-party service
API keys, and backup destination credentials (only the destination names are
reported).
