Sync Serverには、同期データの保存後にイベントを受け取るプラグイン機構があります。詳細な公開仕様・開発ガイドは現在整備中です。このページは実装済みの範囲を案内します。

現在の仕組み

サーバーのplugins/<id>/plugin.phpに配置したPHPコードから、pack.stored、operations.stored、device.revokedのイベントを受け取れます。operations.storedには平文の操作データが含まれます。イベントは管理画面のメンテナンス操作、またはphp bin/maintenance.phpの実行時に配送されます。

配送は少なくとも1回で、同じeventIdが複数回届くことがあります。処理を冪等にし、メンテナンス処理を同時に複数実行しないでください。プラグインの例外で、保存済みのSyncPackは取り消されません。

セキュリティと公開予定

プラグインはサーバーのPHPプロセス内で動く信頼済みコードであり、隔離されたサンドボックスではありません。同期データを読み取れるため、自分で内容を確認したコードだけを設置してください。実運用プラグインや秘密情報は公開リポジトリに含めないでください。

イベントの引数や互換性など、開発者向けの正式な仕様は別途公開予定です。現時点の実装例はSync Serverのリポジトリにあるplugins/example/を参照してください。