PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 16.2-a.1
Jetpack – WP Security, Backup, Speed, & Growth v16.2-a.1
16.1.2 16.2-a.1 16.1.1 16.1 16.1-beta 16.1-beta.2 16.1-beta.3 16.1-a.5 16.1-a.3 16.0.1 16.1-a.1 16.0 16.0-beta 16.0-a.7 16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / jetpack_vendor / automattic / jetpack-connection / src / interface-storage-provider.php
jetpack / jetpack_vendor / automattic / jetpack-connection / src Last commit date
abilities 2 days ago connectors 2 days ago health 2 days ago identity-crisis 1 month ago sso 1 month ago traits 8 months ago webhooks 8 months ago class-authorize-json-api.php 1 month ago class-client.php 2 days ago class-connection-assets.php 1 year ago class-connection-notice.php 8 months ago class-error-handler.php 2 days ago class-external-storage.php 4 months ago class-heartbeat.php 1 month ago class-initial-state.php 3 weeks ago class-manager.php 2 days ago class-nonce-handler.php 8 months ago class-package-version-tracker.php 1 month ago class-package-version.php 2 days ago class-partner-coupon.php 2 months ago class-partner.php 2 years ago class-plugin-storage.php 8 months ago class-plugin.php 8 months ago class-rest-authentication.php 2 days ago class-rest-connector.php 2 days ago class-secrets.php 8 months ago class-server-sandbox.php 2 months ago class-site-health.php 2 days ago class-terms-of-service.php 2 days ago class-tokens-locks.php 8 months ago class-tokens.php 2 days ago class-tracking.php 2 days ago class-urls.php 6 months ago class-user-account-status.php 2 days ago class-users-connection-admin.php 2 months ago class-utils.php 2 years ago class-webhooks.php 1 month ago class-xmlrpc-async-call.php 2 years ago class-xmlrpc-connector.php 8 months ago interface-manager.php 4 years ago interface-storage-provider.php 6 months ago
interface-storage-provider.php
130 lines
1 <?php
2 /**
3 * Storage Provider Interface for External Storage.
4 *
5 * Defines the contract that all external storage providers must implement
6 * to be compatible with the Jetpack Connection External Storage system.
7 *
8 * @package automattic/jetpack-connection
9 */
10
11 namespace Automattic\Jetpack\Connection;
12
13 /**
14 * Interface for external storage providers.
15 *
16 * All storage providers must implement this interface to ensure
17 * compatibility with the External_Storage system.
18 *
19 * ## Required Methods
20 *
21 * - `is_available()` - Check if storage backend is accessible
22 * - `should_handle( $option_name )` - Determine if provider handles the option
23 * - `get( $option_name )` - Retrieve value from external storage
24 * - `get_environment_id()` - Return environment identifier for logging
25 *
26 * ## Optional Methods
27 *
28 * Providers may implement these additional methods for enhanced functionality:
29 *
30 * ### handle_error_event( string $event_type, string $key, string $details, string $environment )
31 *
32 * Called when External_Storage detects an error or empty state. Implement this
33 * to report errors to your host's monitoring system.
34 *
35 * - `$event_type` - 'error' or 'empty'
36 * - `$key` - The option key that triggered the event
37 * - `$details` - Additional error details (error message, etc.)
38 * - `$environment` - Environment identifier from get_environment_id()
39 *
40 * Example:
41 *
42 * public function handle_error_event( $event_type, $key, $details, $environment ) {
43 * // Report to your monitoring system
44 * wp_remote_post(
45 * 'https://your-api/errors',
46 * array(
47 * 'body' => array(
48 * 'event_type' => $event_type,
49 * 'key' => $key,
50 * 'details' => $details,
51 * 'environment' => $environment,
52 * ),
53 * )
54 * );
55 * }
56 *
57 * ### get_empty_state_delay_threshold()
58 *
59 * Customize the delay before reporting empty states. Returns delay in seconds.
60 * Default (when not implemented) is 5 minutes (300 seconds). Use this if your
61 * storage system has different sync times.
62 *
63 * - Return `0` if external storage is the source of truth (written first)
64 * - Return higher values for slower sync systems
65 * - Maximum allowed value is 15 minutes (900 seconds); values above this are ignored
66 *
67 * Example:
68 *
69 * public function get_empty_state_delay_threshold() {
70 * return 90; // 90 seconds for fast-syncing storage
71 * // return 0; // No delay - external storage is written first
72 * }
73 *
74 * @since 6.18.0
75 */
76 interface Storage_Provider_Interface {
77
78 /**
79 * Check if the storage provider is available in the current environment.
80 *
81 * This method should return true if the storage backend is accessible
82 * and ready to handle requests, false otherwise.
83 *
84 * @since 6.18.0
85 *
86 * @return bool True if storage is available, false otherwise.
87 */
88 public function is_available();
89
90 /**
91 * Determine if this provider should handle the given option.
92 *
93 * This method allows providers to selectively handle certain options
94 * based on their configuration, environment, or other criteria.
95 *
96 * @since 6.18.0
97 *
98 * @param string $option_name The name of the option to check.
99 * @return bool True if this provider should handle the option, false otherwise.
100 */
101 public function should_handle( $option_name );
102
103 /**
104 * Retrieve a value from external storage.
105 *
106 * This method should return the value from external storage, or null
107 * if the value is not found or cannot be retrieved.
108 *
109 * @since 6.18.0
110 *
111 * @param string $option_name The name of the option to retrieve.
112 * @return mixed The option value, or null if not found/available.
113 * @throws \Exception If there's an error retrieving the value.
114 */
115 public function get( $option_name );
116
117 /**
118 * Get the environment identifier for this provider.
119 *
120 * This method should return a unique identifier for the environment
121 * or storage type (e.g., 'atomic', 'vip', 'kubernetes', etc.).
122 * Used for logging and debugging purposes.
123 *
124 * @since 6.18.0
125 *
126 * @return string The environment identifier.
127 */
128 public function get_environment_id();
129 }
130