Shake Connect

説明

Shake Connect は、wpshake.com の WPShake ダッシュボード向けのサイト側コンパニオンです。監視したい各 WordPress サイトにインストールし、プラグインの設定画面に表示される接続トークンを使って WPShake アカウントにサイトを追加します。その後、ダッシュボードが接続済みの全サイトに対して日次チェックを実行するため、各サイトに個別にログインする必要はありません。

Shake Connect がこのサイトに追加するもの

  • WPShake ダッシュボードがサイトの状態を読み取るために呼び出す、ベアラートークン認証の REST API (/wp-json/wpshake/v1/*)。
  • 次のエンドポイント: 利用可能な更新付きのプラグインおよびテーマ一覧、コア情報、WP チェックサム、データベースの健全性、WooCommerce がインストールされている場合は最近の WooCommerce 注文、WP_DEBUG_LOG からの最近の PHP エラー、バックアッププラグインの検出 (UpdraftPlus、BlogVault、BackWPup、Solid Backups、WPvivid、Duplicator)、アクティビティログ連携 (WP Activity Log プラグインのテーブルがある場合に読み取り)、組み込みのマルウェアシグネチャスキャナー、リンク切れチェッカー。
  • 安全な操作に限定したメンテナンスエンドポイント: 主要なキャッシュ系プラグイン全体のキャッシュクリア、期限到来した WP-Cron の実行、期限切れトランジェントのクリーンアップ、パーマリンクの再構築。
  • トークンのローテーションと状態確認用の WP-CLI サブコマンド wp wpshake。

Shake Connect が行わないこと

  • プラグイン、テーマ、WordPress コアを自動更新しません。更新コマンドはダッシュボード側から、このコネクターの別リリースとして発行されます。本リリースは読み取り専用に加え、安全なメンテナンス操作のみです。
  • 個人情報や分析データを収集しません。ダッシュボードは必要に応じてサイト上の既存データを読み取ります。
  • プラグインの設定画面で設定された WPShake ダッシュボード以外の第三者とは通信せず、ダッシュボードが有効なベアラートークンでこのサイトの REST エンドポイントを呼び出したときのみ応答します。

接続の仕組み

  1. Shake Connect をインストールして有効化します。
  2. WordPress 管理画面の「設定 Shake Connect」を開き、接続トークンを生成します。トークンは一度だけ表示されます。
  3. wpshake.com でサインアップし、「サイトを追加」をクリックして、トークンとサイト URL を貼り付けます。
  4. ダッシュボードが初回ハンドシェイクを行い、サイトの状態を取得します。

トークンはこのサイト上に SHA-256ハッシュとして保存されます。ダッシュボードはすべてのリクエストで平文のトークンを Authorization: Bearer ヘッダーに送信します。認証付きのすべてのエンドポイントは、処理前にそのヘッダーを検証します。

代理店向けに設計

WordPress サイトを数件以上運用しているなら、その手間はすでにご存じでしょう。Shake Connect は、管理下のサイト群に対する日次チェックを担うエージェントの受信側です。バックアップの検証、プラグインとテーマの更新状況の可視化、脆弱性スキャン、パフォーマンス計測、PHP エラー監視、リンク切れチェック、そしてサイトごとに何を更新し何を見送るべきかの推奨を行います。

WPShake ダッシュボードは別の有料サービスです。このコネクタープラグインは無料のオープンソースで、GPL の下で提供されます。

マルチサイト

Shake Connect は WordPress マルチサイトに対応しています。プラグインをネットワーク有効化すると、接続トークンはネットワークレベルで保存され、すべてのサブサイトが同じ認証情報を共有します。/network/sites でサブサイトを列挙し、サイト単位の読み取りエンドポイントに ?blog_id=N を渡すと (例: /site/info?blog_id=3 や /plugins?blog_id=3)、各サブサイトを確認できます。blog_id がない場合、リクエストはメインサイトに対して実行されます。列挙は1回の呼び出しあたり最大500サブサイトまでです。

スクリーンショット

インストール

  1. shake-connect フォルダーを /wp-content/plugins/ ディレクトリにアップロードするか、WordPress のプラグイン画面から直接インストールします。
  2. WordPress の「プラグイン」画面からプラグインを有効化します。
  3. 「設定 Shake Connect」で接続トークンを生成します。
  4. wpshake.com でサインアップし (無料トライアルあり)、トークンを使ってサイトを追加してください。

FAQ

このプラグインは無料ですか ?

はい。このコネクタープラグインは無料で、GPL ライセンスです。WPShake ダッシュボードは無料トライアル付きの有料サービスです。コネクターはどの WPShake プランでも利用できます。

Shake Connect は、自らデータをどこかへ送信しますか ?

いいえ。このプラグインは、有効なベアラートークンを含む WPShake ダッシュボードからのリクエストにのみ応答します。スケジュールに従って外部へリクエストを開始することはありません。

プラグインを無効化するとどうなりますか ?

サイトはダッシュボードからのリクエストにすぐに応答しなくなります。接続トークンはハッシュとして保存されたままなので、プラグインを再有効化すると接続が復元されます。プラグインを削除すると、保存されていたトークンのハッシュも削除されます。

接続トークンをローテーションできますか ?

はい。プラグインの設定画面で「トークンをリセット」をクリックするか、WP-CLI から wp wpshake reset-token を実行してください。以前のトークンはすぐに無効になります。

どのバックアッププラグインを検出しますか ?

UpdraftPlus、BlogVault、BackWPup、Solid Backups (旧 BackupBuddy)、WPvivid、Duplicator。各プラグインが最終バックアップ時刻と状態を公開している場合、それらを表示します。

WooCommerce は必要ですか ?

いいえ。WooCommerce 関連のエンドポイントは、WooCommerce がインストールされていない場合に wc_active: false と空のリストを返します。プラグインのその他の機能は、どの WordPress サイトでも同様に動作します。

WP-CLI コマンドはありますか ?

はい。wp wpshake は運用スクリプト向けに status、reset-token、revoke のサブコマンドを公開します。

評価

このプラグインにはレビューがありません。

貢献者と開発者

Shake Connect はオープンソースソフトウェアです。以下の人々がこのプラグインに貢献しています。

貢献者

“Shake Connect” は4ロケールに翻訳されています。 翻訳者のみなさん、翻訳へのご協力ありがとうございます。

“Shake Connect” をあなたの言語に翻訳しましょう。

開発に興味がありますか ?

コードを閲覧するか、SVN リポジトリをチェックするか、開発ログを RSS で購読してみてください。

変更履歴

0.5.1

  • REST コントローラー内の不要なコアファイル require_once 呼び出し2件 (wp-admin/includes/file.php および wp-admin/includes/cron.php) を削除しました。使用していた関数は、それらなしでもすでに利用可能でした。

0.5.0

  • マルチサイト対応: Network: true ヘッダー、ネットワークレベルのトークン保存、サブサイト列挙用の新しい /network/sites エンドポイント (上限500)、個別サブサイトを照会する読み取りエンドポイント用の ?blog_id=N パラメーター。

0.1.0

  • WordPress.org への初回リリース。
  • 読み取りエンドポイント: plugins、themes、core/info、checksums、db/health、orders/recent、php-errors/recent、php-errors/stats、backups/state、activity-log/source、activity-log/recent、security/malware-scan、links/broken。
  • メンテナンスエンドポイント: cache/flush、cron/run-due、transients/delete-expired、permalinks/flush。
  • トークン管理用の WP-CLI コマンド wp wpshake。