Keyring · Version history
Keyring changelog and version history
- Latest version
- 3.0
- Apr 25, 2023 (3 years ago)
- Releases
- 15
- since 2012
- In the last year
- 0
- Tested up to
- WordPress 6.2.15
Releases each year
- 20122 releases
- 20133 releases
- 20142 releases
- 20152 releases
- 20173 releases
- 20181 release
- 20191 release
- 20231 release
20231 release
Keyring 3.0Latest
- CHANGE: Default branch has been renamed to trunk to match WordPress projects. Update your refs.
- Enhancement: BREAKING: Removed delicious service (they have shut down completely). Props @sanmai.
- Enhancement: BREAKING: LinkedIn now uses OAuth2. Props @glendaviesnz.
- Enhancement: fetch_profile_picture method added to Twitter service. Props @glendaviesnz.
- Enhancement: Added a GitHub Service definition, props @alperakgun.
- Enhancement: Added a Google Drive Service definition, props @scruffian.
- Enhancement: Trim spaces off API keys etc to avoid mistakes when copy/pasting. Props @kbrown9.
- Enhancement: Allow all 2xx response codes to be considered “Success” for all requests, for all protocols. Props @bgrgicak for the proposal.
- Enhancement: Add translator comments. Props @scruffian.
- Enhancement: Define the self endpoint for Tumblr, and add helper methods to retrieve user info. Props @glendaviesnz.
- Enhancement: Add a keyring_{service}_request_scope filter for OAuth2 services, matching the existing filter for OAuth1 services. Props @glendaviesnz.
- Enhancement: Add a 'full_response' param to Keyring_Service_OAuth2::request(), which will cause the method to return the full HTTP response object. Props @glendaviesnz.
- Enhancement: Some services (looking at you, Strava) seem to double-encode redirect URIs, resulting in “corrupted” parameter names. Added a method to clean that up.
- Bugfix: Make the Google services always request a refresh token for offline access. Props @kbrown9 and @atrniv for input.
- Bugfix: Update Strava to use refresh tokens and offline access, per their new API requirements. Props @mdrovdahl for pointing it out.
- Bugfix: Update use of add_submenu_page() to comply with WP 5.3. Props @jhwwp (wp.org) for the fix.
- Bugfix: Apply the keyring_access_token filter consistently in Google Services. Props @pablinos.
- Bugfix: Use static “Cancel” URIs in UIs. Props @pgl.
- Bugfix: Remove some WordPress.com-specific code from Eventbrite.
- Bugfix: Ensure that PUT requests have a Content-Length header set. Props @glendaviesnz.
- Bugfix: Compatibility with more recent versions of PHP7, and PHP8.
- Bugfix: Apply keyring_access_token filter properly in Instapaper.
- Bugfix: Remove redunant is_service check (enforced via method call signature). Props @sanmai.
- Bugfix: Remove hover event on action links in Service listing UI.
20191 release
Keyring 2.0
- Bugfix BREAKING: Remove invalid reference to $this in error handler. Changes number of params passed to keyring_error action.
- Bugfix BREAKING: expires values in tokens MUST be UNIX timestamps now.
- Enhancement BREAKING: All Google services now share a base service (0-google-base.php)
- Enhancement: Added a Pocket Service, props @roccotripaldi
- Enhancement: Added a Google Mail (Gmail) Service, props @poisa
- Enhancement: Added a YouTube Service definition, based heavily on @superbia’s Google Analytics one.
- Enhancement: Add a composer.json config file (Keyring is now on Packagist at https://packagist.org/packages/beaulebens/keyring)
- Bugfix: Handle empty usernames in the Strava Service.
- Bugfix: Updated links in readme for Google Analytics and Contacts to their user-facing URLs.
20181 release
Keyring 1.9
- Enhancement: Added a Google Analytics Service definition, props @superbia.
- Enhancement: Added a Strava Service definition, props @mdrovdahl.
- Enhancement: Add a “Settings” link to the plugin listing if you’re using the bundled Admin UI.
- Bugfix: Remove deprecated calls to screen_icon().
- Bugfix: Fitbit tokens now refresh automatically.
- Bugfix: Tumblr now requires HTTPS, so update all request URLs. Props @westi.
20173 releases
Keyring 1.8
- Enhancement: New Jetpack/WordPress.com service definition.
- Bugfix: LinkedIn scope require modification because connections were failing.
- Enhancement: Extensive linting/code cleanup, including removing some redundant code.
Keyring 1.7.1
- Bugfix: Only allow users with manage_options to access management UIs. Props Laura Lee for disclosure.
Keyring 1.7
- Enhancement: Added Pinterest Service definition.
- Enhancement: Added Nest Service definition.
- Enhancement: New filter for modifying credentials before saving (keyring_{service}_basic_ui_save_credentials).
- Enhancement: Update all services so that token-meta filters use a dynamic service name, making it much easier to extend existing services. Props @jjj.
- Bugfix: Use sentence parameter when searching for existing tokens, to avoid WordPress doing weird word-splitting. Props @dashaluna.
- Bugfix: Correct URL for Instagram to load profile details (required for a working connection). Props @dashaluna.
- Bugfix: Correct the URL for creating a Twitter app. Props @jjj.
- Bugfix: Handle avatar URLs better within the admin UI. Props @jjj.
- Bugfix: Correct URL for registering Eventbrite apps.
20152 releases
Keyring 1.6.2
- Enhancement: New Fitbit service definition
- Enhancement: New 500px service definition, props https://github.com/petermolnar
- Enhancement: Allow filtering of POST parameters during token verification for OAuth2 via keyring_{service}_verify_token_post_params
- Enhancement: Allow filtering of service configuration fields, props https://github.com/justinshreve
- Enhancement: Add test_connection() method for all services, so that you can confirm if a token is working via the Admin UI
- Enhancement: Facebook: use new endpoints, ability to list Pages this token has access to
- Enhancement: Include token meta in admin UI, make avatars bigger
- Enhancement: Avoid fatal error on sites with the pecl OAuth library installed, props https://github.com/sanchothefat
- Enhancement: Use internal WP function to ensure querystrings are correctly encoded in OAuth2 implementation, props https://github.com/cfinke
- Enhancement: Make Keyring::error() able to record errors without wp_die()ing (optional)
- Bugfix: Actually detect responses from connection-tests properly, and report them as errors
- Bugfix: Avoid PHP notice in http-basic
Keyring 1.6.1
- Enhancement: Add Eventbrite as a service, props @jkudish
20142 releases
Keyring 1.6
- Enhancement BREAKING: Change the way the keyring_admin_url filter is applied so that it’s already got all the parameters etc added to it by the time the filter happens. Makes that filter much more flexible. You probably need to add $params to your filter function, and the add_query_arg() those para…
- Bugfix WARNING: Change the filters in get_credentials() to keyring_service_credentials, since keyring_credentials is in use, and slightly different
- Enhancement: Allow the token store to be filtered, for divergent implementations on a single installation, props Jamie P
- Enhancement: Allow filtering of request scope for OAuth1 services
- Enhancement: Add connection-testing to the default admin UI for most services
- Enhancement: Abstract out prepare_request() for OAuth1 service
- Bugfix: Use the correct parameters for filtering results in SingleStore, props Milan D
- Bugfix: Request correct permissions for LinkedIn, using the new filter
- Bugfix: Get Google Contacts working properly. Props Simon W for spotting 2 errors.
- Bugfix: Update authorize/authenticate URL for LinkedIn. Should move entire service to OAuth2 ideally
- Bugfix: Don’t restrict the ‘state’ parameter to being an int only (per OAuth2 spec), props Jamie P
- Bugfix: Ensure to always filter the return value (even if false) from get_credentials(), props Jamie P
- Bugfix: Fix the Moves service so that it can get past the auth flow again (new restriction on Redirect URIs)
- Enhancement: Update the Facebook config instructions to match their UI changes
- Bugfix: Remove unnecessary %s from Google instructions
Keyring 1.5.1
- Remove example OAuth application included within that library. Unnecessary and contains an XSS vulnerability.
20133 releases
Keyring 1.5
- Enhancement: Added Moves as a service
- Bugfix: OAuth2 services were having querystring parameters stripped during POST requests. No longer doing that.
- Bugfix: typo in profile request for RunKeeper service
Keyring 1.4
- WARNING: BREAKING CHANGES
- BREAKING: Depending on where you were loading Keyring, the new filtering on ‘keyring_admin_url’ might require some changes on your end
- BREAKING: Credentials for Services are handled slightly differently now (especially if you were using constants), so confirm they are loading before rolling out this update
- Introduce concept of “is_configured()” to Services so that you can test if a service has been set up correctly before attempting to use it
- Change get_credentials() so that it checks for a service-specific _get_credentials(), then generic constants, then in the DB
- get_credentials() is now always called when initiating a service, to load its details from the most appropriate place available
- In the default Admin UI, split services out to show which ones are configured/ready to connect and which ones need attention
- Add extensive helper instructions to the configuration pages for apps with links to where you need to go to register etc
- Update Twitter requests to 1.1 endpoint, ready for them retiring v1
- Keep track of request response codes (Props justinshreve)
- Start adding some additional information to Keyring::error() for better handling
Keyring 1.3
- Added Service definitions for Instapaper (paid account required) and TripIt
- Improved access and request token filters
- Specify request token in token query for custom storage engines that don’t use globally-unique ids
- Pass request token to verification of access tokens
- Make Keyring::init() be callable after init (it will trigger everything it needs automatically)
- Changed admin UI to use ListTable
20122 releases
Keyring 1.2
- WARNING: BREAKING CHANGES
- Huge overhaul of codebase to support Request tokens, passing reference via ‘state’ param (BREAKING)
- Shuffled around how tokens are managed so that more places explicitly expect a Keyring_Token (BREAKING)
- Force serialization of stored tokens when using SingleStore (BREAKING)
- Big cleanup/changes to how token storage works, and how Keyring_Store looks (BREAKING)
- Standardized handling of meta with tokens (BREAKING)
- Added RunKeeper Service definition
- Added a bunch of filters and tried to standardize them everywhere
- Improve some nonce checking
- Improved debugging information for different service types
- Introduced app_ids for services that support/require them
- Removed all wp_die()s in favor of Keyring::error(); exit;
- Introduced test_connection() methods, props pento
- Whitespace/alignment cleanup
- Switched to using stable-tagging system in the WP.org repo
Keyring 1.1
- First tagged version
Questions about Keyring’s releases
What is the latest version of Keyring?
3.0, released on Apr 25, 2023 (3 years ago). It’s tested up to WordPress 6.2.15.
How often is Keyring updated?
It had no release in the last year; the latest came out 3 years ago. Its first release on WordPress.org dates from December 2012.
Know when your rivals ship
Track your plugin and its rivals: TrackWP sees each new release in the nightly snapshot and alerts you, with what it did to their rank.
Start freeRelease dates come from the day each version’s folder was made in Keyring’s WordPress.org SVN repository; the notes from its readme’s changelog, as its authors wrote it.