説明
PatchOn は、WordPress のプラグイン・テーマ・コアを安全に更新するソリューションです。本番に適用する前に、サイトと同じ構成をステージング環境に再現。更新を当てた状態でスクリーンショット比較 (Visual Regression Test) を実施し、不具合がないかを検証します。本プラグインは、あなたの WordPress サイトと PatchOn を接続するコネクターとして機能します。
本プラグインは PatchOn サービス (patchon.jp) を必要とし、単体では動作しません。 利用開始にアカウントは不要です。有効化した直後は外部通信を一切行わず、管理画面に同意画面が表示されます。PatchOn への外部通信は、その同意画面でユーザーが「同意して開始」ボタンを明示的にクリックした後にのみ開始され、サイトを匿名で登録します。PatchOn のアカウントが必要になるのは、ダッシュボードで詳細な検査結果を閲覧する場合か、有料プランにアップグレードする場合のみです。
主な機能
- ステージング環境で更新をシミュレートする事前検査 (結果はダッシュボードに表示)
- 更新適用前のサイトファイルとデータベースのバックアップ
- 検査に合格した更新の本番反映
本プラグイン (WordPress.org で配布される無料版) は、不具合を検知してもあなたのサイトファイル (wp-content、mu-plugins、テーマディレクトリなど) に書き込みを行いません。mu-plugins やアクティブな子テーマに修正済みコードを書き込む AI 自動修正は、別途配布される PatchOn Agent Pro 拡張プラグイン (PatchOn のスタンダード / ビジネスプラン契約者が利用可能) が提供します。
送信されるデータ
ユーザーが同意画面で同意した後、「事前検査」または「更新実行」操作を実行すると、本プラグインは以下のデータを PatchOn および関連する外部サービスに送信します。詳細はプライバシーポリシーをご覧ください。
- サイト URL / WordPress バージョン / PHP バージョン / DB バージョン
- インストール済みのプラグイン・テーマ・MU プラグインの一覧とバージョン
- 更新適用前のサイトファイル (子テーマ / mu-plugins / wp-config.php。バックアップに使用)
- WordPress の debug.log の内容 (不具合検知に使用)
- サイトのデータベースの完全なコピー(事前検査時に取得され、更新前の復元ベースとして再利用されます)。これには、メンバーアカウントやお問い合わせフォームの送信内容など、サイトに保存された個人データが含まれる場合があります。プライバシーポリシーをご覧ください。
外部サービス
本プラグインは以下の外部サービスに依存します。プラグインを有効化しただけでは外部通信は一切行われません。 通信は、初回利用時に表示される同意画面でユーザーが「同意して開始」ボタンを明示的にクリックした後にのみ開始されます。
PatchOn API (https://patchon.jp およびそのサブドメイン)
検査・修正・更新・データベースダンプの全操作のバックエンドです。2つのホスト名を使用し、いずれも Rocketa Inc. が運用し PatchOn のインフラへルーティングされます。
https://patchon.jp/api/*— サイト登録、事前検査の制御、更新適用の制御、課金https://dump.patchon.jp/*— 事前検査時に使うデータベースダンプ制御エンドポイントと、署名付き URL によるチャンクアップロード (データベースダンプはpatchon.jp/api/*経由で送信されるデータからは除外)
提供元: Rocketa Inc. (rocketa.co.jp)
データが送信されるタイミング:
- 「同意して開始」ボタンのクリック時 (初回のみ): 匿名でのサイト登録と UUID の発行
- ユーザーが「事前検査」を実行したとき: プラグイン / テーマの一覧、debug.log、軽量データベースダンプ
- ユーザーが「更新の適用」を実行したとき:復元ポイント(サイトファイルとデータベースの完全なコピー)と適用結果
送信内容: 上記「送信されるデータ」セクションを参照
- 利用規約: https://patchon.jp/terms
- プライバシーポリシー: https://patchon.jp/privacy-policy
- 委託先 (Subprocessors): https://patchon.jp/subprocessors
AWS S3 (東京リージョン、PatchOn 経由でアクセス)
サイトバックアップ(zip)とデータベースのコピー(チャンク単位でアップロード)の保存先。アップロードは、PatchOnがリクエストごとに発行する事前署名URLに対してのみ実行されます。顧客のサイトはS3の認証情報を保持しません。
- 提供元: Amazon Web Services, Inc.
- エンドポイント: https://*.s3.ap-northeast-1.amazonaws.com (署名付き URL のみ)
- データが送信されるタイミング:ユーザーが「事前検査」(データベースのコピー)または「更新の適用」(復元ポイント:サイトファイルとデータベースのコピー)を実行したとき
- 送信されるもの:サイトファイル(zip)とデータベースの完全なコピー
- AWS のプライバシー: https://aws.amazon.com/privacy/
インストール
- WordPress 管理画面の「プラグイン > 新規追加」から「PatchOn」を検索してインストールします。
- プラグインを有効化します。この時点では外部通信は発生しません。
- 管理画面に同意画面 (「Welcome to PatchOn」) が表示されます。送信されるデータを確認し、「同意して開始」をクリックします。このボタンのクリックは、外部通信を開始することへの明示的な同意とみなされ、プラグインはあなたのサイトを匿名で PatchOn に登録します。
- これで「PatchOn > 更新管理」から事前検査の実行と更新の適用ができます。この操作にアカウントは不要です。
- ダッシュボードで詳細な検査結果を閲覧する、または有料プランにアップグレードするには、「PatchOn > 設定」を開いて「このサイトを PatchOn アカウントに接続」をクリックし、PatchOn で登録またはログインします。
FAQ
-
本プラグインの利用に料金はかかりますか?
-
プラグインは無料で配布され、事前検査と更新の適用は誰でも利用できます。有料プランに加入いただくと AI 自動修正・検査対象の追加・手厚いサポートを受けることができます。プランの詳細は https://patchon.jp/ をご覧ください。
-
フリー / スタンダード / ビジネスプランの違いは何ですか?
-
- フリー: 3つの URL でのリグレッションテストと、PatchOn で詳細な結果を確認できます。不具合がない場合は、ワンクリックで本番に適用。更新前のバックアップは 7日間保持されます。
- スタンダード (有料): AI 自動修正 (別途配布される PatchOn Agent Pro 拡張プラグインのインストールが必要)、フォームテスト、検査対象 URL の拡大、更新前バックアップの 30日間保持、メールサポートを追加します。
- ビジネス (有料): モバイル VRT、更新前バックアップの 90日間保持、Slack Connect サポートを追加します。
最新の料金は https://patchon.jp/#pricing をご覧ください。
-
プラグインを有効化しただけで外部サービスにデータが送信されますか?
-
いいえ。有効化しただけでは外部にデータは一切送信されません。通信は、同意画面でユーザーが「同意して開始」ボタンを明示的にクリックした後にのみ開始されます。
-
データはどこに保存されますか?
-
AWS (東京リージョン) に保存されます。詳細はプライバシーポリシーをご覧ください。
-
プラグインを削除すると、データも削除されますか?
-
プラグインを削除すると、プラグインがローカルのデータベースに保存していた設定値 (接続用 UUID など) は自動的に削除されます。ただし、PatchOn の該当サイトデータは保持されます。完全削除をご希望の場合は、お問い合わせフォームからご依頼ください。
-
自動更新は安全ですか?
-
標準の WordPress 更新フローを実行する前に、本プラグインはまず同じ更新をステージング環境で試行して不具合を検知します。問題が検知された場合、更新は中止され、ダッシュボードを通じて通知されます。
評価
このプラグインにはレビューがありません。
貢献者と開発者
変更履歴
1.1.5
- 1回の実行で複数のプラグインまたはテーマの更新を適用する際、そのうちいくつかが黙ってスキップされる(最初の項目のみが更新され、残りは成功として報告されるが変更されないまま)不具合を修正しました。これは、バックグラウンドのWordPress更新チェック(ページ表示、進捗のポーリング、またはスケジュールされたタスクによってトリガー)が実行中に保留中の更新情報をクリアしたときに断続的に発生していました。更新の実行は、その情報を全期間にわたって固定するようになったため、選択したすべてのプラグインとテーマが確実に適用されます。
- AIが修復したカスタマイズを本番環境に書き戻す方法を強化しました。修正ファイル(そのままでは更新時に壊れてしまうサイト固有のコード用)は、対応するプラグインまたはテーマの更新が実際に成功した後、かつ更新の前ではなく完了した後にのみ適用されるようになりました。以前は、更新が完了しなかった場合でも新しいバージョン用の修正が書き込まれることがあり、稼働中のカスタマイズがインストール済みの古いバージョンと不一致になることがありました。
- 更新を適用する際に、更新前バックアップの完了直後に処理が停止し、実際には何も更新されないままになる稀な不具合を修正しました。これは、そのわずかな間に更新サービスへの内部ハンドオフが中断された場合(例えば、最初の応答が遅い、またはホストのリクエスト制限)に発生していました。処理が停止したまま、自動的に再試行されないことがありました。現在はハンドオフが自動的に再試行され、停止した処理も再試行可能な状態に自己復旧します。部分的な更新が発生することはありません。これが発生した時点では、プラグインやテーマはまだ変更されていませんでした。
1.1.4
- 更新前の復元ポイントが、データベースを増分的に取得するようになりました。更新のたびにデータベース全体を再アップロードする代わりに、復元ポイントは最新の事前検査スナップショットの変更されていない部分を再利用し、変更された行のみを送信することで、大規模サイトでのバックアップ段階を劇的に削減します。組み込みの自己検証ステップにより、不整合が見られた場合は常にフルダンプにフォールバックするため、復元ポイントが部分的な状態で出力されることはありません。
- 事前検査および更新前のバックアップのアーカイブ処理が劇的に高速化しました。以前の実装では、ファイルを追加するたびにアーカイブ全体を書き換えていたため、I/Oが二次関数的に増加していました。アーカイブは1回のパスで構築されるようになり、数千のプラグインおよびテーマファイルを持つサイトでバックアップ段階を数分から数秒に短縮しました。
- 更新画面での更新前バックアップ中のガイダンスがより分かりやすくなりました。高速な増分バックアップ(最新のスナップショットを再利用)か、フルバックアップのどちらが進行中かを画面に表示し、完了するまでタブを開いたままにするよう促します。これにより、再開可能なバックアップがタブを閉じた後も常に継続するという誤解を招く以前のメッセージを置き換えました。
- 非ASCIIのスラッグ(日本語のパーマリンクなど)を含む検査対象URLが保存時に破損される不具合を修正しました。入力のサニタイズ中にパーセントエンコードされた文字が削除され、パスのASCII部分のみが残っていました。URLの入力は、パーセントエンコードを保持する
esc_url_raw()でサニタイズされるようになりました。 - 事前検査をキャンセルすると、バックエンド(ステージングワーカー)でも停止するようになり、「事前検査が既に実行中です」というエラーでブロックされることなく、すぐに再実行できるようになりました。安全に中断できない本番更新ステップ中には、キャンセルボタンが表示されなくなりました。
- 大規模な更新前バックアップが、ブラウザのタブを閉じてもサーバー上で継続するようになりました。以前は、大規模データベースの再開可能なバックアップが開いている管理画面タブによって駆動され、ページを離れると一時停止していました。現在はバックグラウンドのループバックリクエストにより自動的に駆動され、トラフィックのあるサイトでは停止した処理を再開するスケジュール済みのヘルスチェックが行われます。
- 更新前に有効だったプラグインが、更新完了後に無効のままになる不具合を修正しました。事前に有効だったプラグインは、更新が完了すると再び有効化されるようになりました。
- 稼働中のサイトが実際に動作させているバージョンよりも新しいPHPまたはWordPressを必要とする更新は、サイト上で検出され、更新の実行から除外されるようになりました。これにより、適用されてサイトが静かに壊れることがなくなります。事前検査では、サイトのPHPバージョンと各種上限値も報告するため、結果が実際の環境とより一致します。
- 検査できなかった更新(例:検査結果が利用できない場合)は、本番サイトに適用されなくなりました。実際に検査・検証された更新のみが更新の実行対象に含まれます。
- 事前検査中に送信されるデータを正確に説明するため、同意画面を修正しました。サイトのファイルとデータベースが送信されることを明記し、個人情報を含む部分が除外されるという誤解を招く表現を置き換えました。
1.1.3
- すべてのプランで、更新の適用前に復元ポイント (サイトファイルとデータベースの完全ダンプ) を作成するようになりました。復元ポイントは PatchOn のクラウドストレージにプランに応じた保持期間で保存され、更新画面からダウンロードしてセルフサービスで復旧できます。この保存内容に合わせて、同意画面とプライバシーポリシーも更新しています。
- 更新に失敗したにもかかわらず成功と誤って報告されることがある複数の不具合を修正しました (アップグレード中のコピー失敗、更新の同時実行によりメンテナンスモードが解除されない問題、更新キャッシュの古い情報、日本語サイトでのロケール依存の誤判定など)。
- AI 修正の適用に必要な Pro 拡張プラグインを、更新画面からワンクリックでインストール・有効化できるようになりました。あわせて、ライセンスが未設定または期限切れの場合の案内をわかりやすくしました。
1.1.2
- プラグインレビューのフィードバックを受け、WordPress コアの読み込みファイル (
wp-includes/functions.php、wp-admin/includes/theme.php、wp-admin/includes/misc.php) の直接的なrequire_onceを削除しました。 - リクエストごとのオーバーヘッドを減らすため、頻繁に更新されるオプション (
patchon_update_state、patchon_update_flash、patchon_site_uuid) のオートロードを無効化しました。 - Late-escaping 規約に準拠するため、残りの動的出力 (三項演算子と更新 / ログの件数) をすべて
esc_html()でエスケープしました。 - 「Tested up to」を WordPress 7.0 に更新しました。
1.1.1
- バックアップアップロード経路の直接的な cURL 呼び出しを WordPress HTTP API (
wp_remote_request()) に置き換え、公式のhttp_api_curlフックを使って、大きなバックアップアーカイブをメモリにバッファリングせずにストリーミングアップロードできるようにしました。
1.1.0
- ファイル書き込み機能を削除しました (
wp-content、mu-plugins、テーマディレクトリへの書き込みを行わなくなりました)。これらの書き込みは、別途配布される PatchOn Agent Pro 拡張プラグインに移管されました。 - 初回有効化時に明示的な同意画面を表示するようにしました。同意後にサイトを匿名で登録するようになり、利用開始にアカウントは不要です。
- 細工されたリダイレクト URL によるサイト乗っ取りを防ぐため、接続フローに CSRF ノンス検証を追加しました。
- プラン構成 (フリー / スタンダード / ビジネス) を更新し、旧エンタープライズプランをカタログから削除しました。
1.0.0
- WordPress.org 公式ディレクトリでの初回リリース。
