PatchOn Agent

説明

PatchOn は、WordPress のプラグイン・テーマ・コアの更新を代行する AI サービスです。本番サイトをステージング環境に再現し、それぞれの更新を安全に適用できるかを AI が確認して、すべてのチェックに合格した更新だけを本番に適用します。万一更新が失敗しても、ワンクリックでサイトを復元できます。このプラグインは、あなたの WordPress サイトと PatchOn をつなぐエージェントとして機能します。

はじめ方

このプラグインは PatchOn サービス(patchon.jp)を必要とし、単体では機能しません。有効化しただけでは外部通信は行われず、リダイレクトもされません。ウェルカム画面で「PatchOn を始める」をクリックすると、送信されるデータを説明する同意ダイアログが開きます。「同意して開始」で確定するとサイトが匿名で登録され、更新がある場合は初回の「検査して更新」が開始されます。利用開始にアカウントは不要で、必要になるのは次の場合だけです:

  • 詳細な検査結果を見る
  • 自動更新を設定する
  • 有料機能を利用する

主な機能

  • 事前検査 — ステージング環境で、AI がサイトの適用前 / 適用後のスクリーンショットを比較し、レイアウト崩れや致命的エラーを検出します
  • 検査して更新 — 手動実行では、検査から本番環境への展開までを 1 つの操作で行い、すべてのチェックに合格した更新のみを適用します
  • 検査つき自動更新 — スケジュールに従って自動的に検査し、すべてのチェックに合格した更新のみを適用します
  • バックアップ — 各更新の直前に自動的に取得され、プランに応じた保持期間中はダウンロードできます
  • ワンクリック復元 — 適用した更新が失敗した場合、ワンクリックでサイトを更新前のバックアップの状態に戻します

このプラグイン(WordPress.org での無料配布版)は、問題を検出した場合でも、サイトファイルに修正コードを書き込みません。事前検査で見つかった問題の原因コードを修正する AI 自動修正は、別途配布される拡張プラグイン PatchOn Agent Pro が提供します(有料プラン契約者が利用可能)。このプラグインがサイトファイルに書き込むのは 2 つの場合だけです。標準の WordPress アップグレーダーによる更新そのものの適用と、ワンクリック復元です。ワンクリック復元はユーザーの明示的な要求でのみ実行され、バックアップ済みのプラグイン・テーマ・MU プラグイン・wp-content のドロップイン(およびデータベース)をサイトへ書き戻します。

送信されるデータ

同意画面で同意した後、「事前検査」または「更新の適用」を実行すると、以下のデータが PatchOn および関連する外部サービスへ送信されます。詳細はプライバシーポリシーをご覧ください。

  • サイト URL / WordPress バージョン / PHP バージョン / DB バージョン
  • インストール済みのプラグイン・テーマ・MU プラグインの一覧とバージョン
  • 利用可能な更新の一覧(プラグイン・テーマ・WordPress コアの名称とバージョン)。サイトが接続されている間、これは 1 日 1 回自動的に送信されます
  • 更新適用前のサイトファイルで、更新前のバックアップに使用されます: wp-config.php、有効なプラグイン・テーマおよびこれから更新されるプラグイン・テーマ、MU プラグイン、および wp-content のドロップイン(object-cache.php など)
  • WordPress の debug.log の内容 (不具合検知に使用)
  • サイトのデータベースの完全なコピー。事前検査時に取得され、更新前バックアップとして再利用されます。会員アカウントやお問い合わせフォームの送信内容など、サイトに保存された個人データが含まれる場合があります

外部サービス

このプラグインは以下の外部サービスに依存します。プラグインを有効化しただけでは外部通信は一切行われず、初回利用時に表示される同意画面で「同意して開始」ボタンを明示的にクリックした後にのみ開始されます。

PatchOn API (https://patchon.jp およびそのサブドメイン)

検査・修正・更新・データベースダンプの全操作のバックエンドです。2つのホスト名を使用し、いずれも Rocketa Inc. が運用し PatchOn のインフラへルーティングされます。

  • https://patchon.jp/api/* — サイト登録、事前検査の制御、更新適用の制御、課金
  • https://dump.patchon.jp/* — 事前検査と更新前バックアップのためのデータベースダンプ制御エンドポイントと、署名付き URL によるチャンクアップロード

提供元: Rocketa Inc. (rocketa.co.jp)

データが送信されるタイミング:

  • 「同意して開始」ボタンのクリック時 (初回のみ): 匿名でのサイト登録と UUID の発行
  • 接続中に 1 日 1 回(デイリーチェックイン): 利用可能な更新の一覧とプラグインのバージョン
  • ユーザーが「事前検査」を実行したとき、または自動更新がスケジュールされた検査を実行するとき: プラグイン / テーマの一覧、debug.log、データベース全体のコピー
  • ユーザーが「更新を適用」を実行したとき、または自動更新がすべてのチェックに合格した更新を適用するとき: バックアップ(サイトファイルとデータベース全体のコピー)と適用結果
  • 更新失敗後にユーザーがワンクリック復元を実行したとき: 復元の制御リクエストと進捗状況(バックアップされたファイルとデータベース自体は、その際にクラウドストレージからダウンロードされ、送信されるわけではありません)

送信内容: 上記「送信されるデータ」セクションを参照

  • 利用規約: https://patchon.jp/terms
  • プライバシーポリシー: https://patchon.jp/privacy-policy
  • 委託先 (Subprocessors): https://patchon.jp/subprocessors

AWS S3 (東京リージョン、PatchOn 経由でアクセス)

サイトバックアップ(zip)とデータベースコピー(チャンク単位でアップロード)の保存先です。アップロードとダウンロードは、PatchOn がリクエストごとに発行する事前署名付き URL に対してのみ実行されます。顧客サイトは S3 の認証情報を一切保持しません。ワンクリック復元の際には、バックアップされたサイトファイルとデータベースのチャンクが同じ方法で S3 からダウンロードされます。

  • 提供元: Amazon Web Services, Inc.
  • エンドポイント: https://*.s3.ap-northeast-1.amazonaws.com (署名付き URL のみ)
  • データが送信されるタイミング:ユーザーが「事前検査」(データベースのコピー)または「更新を適用」(バックアップ:サイトファイルとデータベースのコピー)を実行したとき
  • 送信されるもの:サイトファイル(zip)とデータベースの完全なコピー
  • AWS のプライバシー: https://aws.amazon.com/privacy/

インストール

  1. WordPress 管理画面から「プラグイン > 新規追加」へ進み、「PatchOn Agent」を検索してインストールします。
  2. プラグインを有効化します。この時点では外部への通信は発生せず、どこにもリダイレクトされません。
  3. 管理メニューから「PatchOn」を開きます。ウェルカム画面が PatchOn の機能を紹介し、サイトで検出された更新を一覧表示します(ローカルで読み取ります)。
  4. 「PatchOn を始める」をクリックします。送信されるデータを説明する同意ダイアログが開くので、「同意して開始」をクリックします。このボタンのクリックが外部通信を開始する明示的な同意として扱われ、プラグインがサイトを PatchOn へ匿名登録します。更新がある場合は、初回の「検査して更新」が開始されます。
  5. 詳細な検査結果を見る、または自動更新を設定するには、「PatchOn > 設定」を開き「このサイトを PatchOn アカウントに接続」をクリックして、登録またはログインします。

FAQ

WordPress に組み込まれた自動更新とは何が違うのですか?

標準の自動更新は、安全かどうかを確認せずに更新を適用します。うまくいっても、WordPress が事後に致命的エラーを検知してその更新を巻き戻すだけで、原因は直してくれません。PatchOn は適用前にすべての更新をレイアウト崩れと致命的エラーについて検査し、合格した更新だけを適用します。有料プランではさらにフォーム送信のテストを行い、PatchOn Agent Pro 拡張を通じて、更新で壊れるカスタムコードを AI が修正してから適用できます。

本プラグインの利用に料金はかかりますか?

プラグインは無料で配布され、事前検査して更新の適用は誰でも利用できます。有料プランでは、AI 自動修復・検査対象の追加・より手厚いサポートをご利用いただけます。プランの詳細は https://patchon.jp/pricing をご覧ください。

フリー・スタンダード・ビジネスプランの違いは何ですか?

  • フリー: 3 つの URL での画面差分チェック、月次自動更新(初期状態はオフ)、更新前バックアップの 7 日間保持
  • スタンダード(有料): 画面差分チェックを 10 URL に拡張、曜日・時間帯を設定できる週次自動更新、フォーム動作チェック、AI 自動修正(別途配布の PatchOn Agent Pro 拡張プラグインが必要)、30 日間のバックアップ保持、メールサポート
  • ビジネス(有料): モバイル画面差分チェック、90 日間のバックアップ保持、Slack Connect サポートが追加されます

詳細は料金プランをご覧ください。

プラグインを有効化しただけで外部サービスにデータが送信されますか?

いいえ。有効化しただけでは外部にデータは一切送信されません。通信は、同意画面でユーザーが「同意して開始」ボタンを明示的にクリックした後にのみ開始されます。

データはどこに保存されますか?

AWS (東京リージョン) に保存されます。詳細はプライバシーポリシーをご覧ください。

プラグインを削除すると、データも削除されますか?

プラグインを削除すると、プラグインがローカルのデータベースに保存していた設定値 (接続用 UUID など) は自動的に削除されます。ただし、PatchOn の該当サイトデータは保持されます。完全削除をご希望の場合は、お問い合わせフォームからご依頼ください。

自動更新は安全ですか?

更新はステージング環境での検査に合格した後にのみ適用され、各更新の直前には自動でバックアップが取得されます。万一問題が起きても、WordPress 管理画面からワンクリックでサイトを復元できます。ご自身での復旧が不安な場合は、有料プランでサポートによる復旧支援をご利用いただけます。

評価

1件のレビューをすべて表示

貢献者と開発者

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

貢献者

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

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

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

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

変更履歴

1.2.2

  • Fix: 適用できる更新がなかったとき(すべてが見送り、または検査できなかったとき)、空のリストのまま成功と報告されることがなくなり、何も適用されなかったことを明確に報告するようになりました
  • Fix: 検査対象 URL を確認済みのサイトで同意し直したとき、実際には行われない確認ステップを案内しなくなりました

1.2.1

  • Fix: 複数のサイトが 1 つのデータベースを共有している場合、バックアップとワンクリック復元が自分のサイトのテーブルのみを対象とするようになりました — 従来は復元によって隣接するサイトのデータまで巻き戻る可能性がありました(既存のバックアップも保護されます)
  • Fix: データベースに生成カラム(計算列)やビューが含まれるサイトで、検査が失敗しなくなりました

1.2.0

  • New: 自動更新 — 有料プランは曜日・時間帯を設定できる週 1 回、フリープランは任意参加の月 1 回で事前検査を実行し、結果は実行ごとのレポートメールで届きます
  • New: すべてのチェックに合格した更新はバックアップ作成後に自動で本番へ適用され、AI 修正が必要・目視確認が必要・失敗・検査できなかった更新は自動適用されません(手動のみのモードも選べます)
  • New: 更新画面からのワンクリック復元で、サイトファイル(プラグイン・テーマ・MU プラグイン・wp-content のドロップイン)とデータベースを更新前バックアップの状態に戻せます。バックグラウンドで自走するため、タブを閉じても継続します
  • New: 手動実行が、選択した更新をステージングで検査し、合格したものを同じ操作で本番へ適用するようになりました(「検査して更新」)。FTP 方式のサーバーは検査のみにフォールバックします
  • New: 検査対象 URL が開始時に自動登録され、初回実行で確認した後は、以降の実行で無人のまま再利用されます

1.1.5

  • Fix: 1 回の実行で複数のプラグインやテーマの更新を適用したとき、一部が成功と報告されながら変更されないまま無言でスキップされることがありました
  • Fix: AI 修正済みのカスタマイズは、対応するプラグインやテーマの更新が実際に成功した後にのみ本番へ書き戻されるようになりました
  • Fix: 更新前バックアップの完了直後に適用処理が停止し、何も更新されないことがありました

1.1.4

  • Improvement: 更新前バックアップがデータベースを差分取得するようになり、直近の事前検査スナップショットの変更のない部分を再利用し、不整合があれば常にフルダンプへフォールバックします
  • Improvement: バックアップアーカイブが 1 パスで構築されるようになり、数千のプラグイン / テーマファイルを持つサイトでバックアップ工程が数分から数秒に短縮されました
  • Improvement: 更新画面が、差分バックアップとフルバックアップのどちらが進行中かを表示し、完了までタブを開いたままにするようお願いします
  • Improvement: 大きな更新前バックアップが、ブラウザのタブを閉じてもサーバー側で継続するようになりました。停止した実行はスケジュールされたヘルスチェックが再開します
  • Fix: 非 ASCII のスラッグ(日本語パーマリンクなど)を含む検査対象 URL が保存時に壊れていました
  • Fix: 更新前に有効だったプラグインが、更新完了後に無効のまま残されることがありました
  • Fix: 稼働中のサイトが実際に動かしているものより新しい PHP や WordPress を必要とする更新は、適用されるのではなく更新実行から除外されるようになりました
  • Change: 事前検査のキャンセルがバックエンド側でも停止するようになり、本番の更新ステップ中はキャンセルボタンが表示されなくなりました
  • Change: 検査できなかった更新は、本番サイトへ適用されなくなりました
  • Change: 同意画面が、事前検査でサイトのファイルとデータベースが送信されることを明記するようになりました。個人情報を含む部分は除外されるかのように示唆していた文言を置き換えています

1.1.3

  • New: すべてのプランで、更新がバックアップ(サイトファイルとデータベースのフルダンプ)を作成するようになりました。プラン別の保持期間で PatchOn のクラウドストレージに保存され、更新画面からダウンロードできます。同意画面とプライバシーポリシーもこの保存を含むよう更新しました
  • Fix: 失敗した更新が成功として誤報告される複数のバグ。アップグレード中のコピー失敗、同時実行によるメンテナンスモードの固着、古い更新キャッシュ、日本語サイトでのロケール依存の誤分類を含みます
  • Improvement: AI 修正の適用に必要な Pro 拡張を、更新画面からワンクリックでインストール・有効化できるようになりました

1.1.2

  • Change: プラグインレビューのフィードバックを受け、WordPress コアの読み込みファイル(wp-includes/functions.phpwp-admin/includes/theme.phpwp-admin/includes/misc.php)の直接 require_once を削除しました
  • Improvement: 頻繁に更新されるオプション(patchon_update_statepatchon_update_flashpatchon_site_uuid)の autoload を無効化し、リクエストごとのオーバーヘッドを削減しました
  • Fix: 残っていた動的出力をすべて esc_html() でエスケープし、late-escaping 規約に準拠させました
  • Change: 「Tested up to」を WordPress 7.0 に更新しました

1.1.1

  • Improvement: バックアップのアップロードが WordPress HTTP API(wp_remote_request())と公式の http_api_curl フックを使うようになり、大きなアーカイブをメモリにバッファせずストリーミングします

1.1.0

  • Change: ファイル書き込み機能を削除しました — wp-contentmu-plugins、テーマディレクトリへの書き込みは、別途配布の PatchOn Agent Pro 拡張プラグインへ移されました
  • New: 初回有効化時に表示される明示的な同意画面。同意後にサイトを匿名登録するようになり、開始にアカウントは不要です
  • Fix: 接続フローに CSRF nonce 検証を追加し、細工されたリダイレクト URL によるサイト乗っ取りを防止しました
  • Change: プラン階層を更新し(フリー / スタンダード / ビジネス)、旧エンタープライズ階層をカタログから削除しました

1.0.0

  • New: WordPress.org 公式ディレクトリでの初回リリース