# PODNAME: Yancy::Guides::Upgrading # ABSTRACT: Changes and deprecations when upgrading Yancy __END__ =pod =head1 NAME Yancy::Guides::Upgrading - Changes and deprecations when upgrading Yancy =head1 VERSION version 1.081 =head1 DESCRIPTION This document describes any breaking changes or deprecations that occur as part of Yancy's development and how to make your code work with newer versions of Yancy. =head1 VERSIONS =head2 v2.000 The upcoming v2.000 release has the following breaking changes and deprecations: =over =item "collections" stash key is now "schema" in Yancy configuration The main "collections" configuration is now called "schema". This name is more descriptive and will allow for future enhancement of controllers, form plugins, and other such (see next item). =item "collection" stash key is now "schema" In L, L, L, L, and L, the "collection" configuration is now called "schema". This makes the config the same as the global plugin config and also allows for a future enhancement to provide ad-hoc schemas to these modules (to edit a subset of an existing schema or create a form for anything). =item Editor without authentication is deprecated With the new L system in-place, it is now extremely easy to set up a simple authentication scheme for your site. With Yancy's "secure by default" philosophy, this means ensuring the editor is secure. You can secure the editor by configuring an auth plugin that the editor will automatically use. You can further secure the editor by setting the C configuration to filter which users are allowed to use the editor. editor => { # users with is_admin set to 1 are allowed to use the editor require_user => { is_admin => 1 }, }, To disable authentication for the editor, set C<< require_user => undef >>. This is not recommended, as any user can then edit any data in your site (including their own user data, potentially giving them enhanced privileges). =item The Auth::Basic plugin is deprecated The Auth::Basic plugin was a temporary solution for authentication until the L system could be built. Since that is built, the Auth::Basic plugin is deprecated. This plugin is naive at best and has a terrible method of adding authentication to the Yancy editor which does not allow for any future enhancement. The Yancy::Plugin::Auth system allows for multiple authentication methods in a single site for a single user and provides a unified login page for users to use. =item api_controller configuration is deprecated The C configuration to L has been replaced with the C configuration to L. # Old config api_controller => 'MyController', # New config editor => { default_controller => 'MyController', }, =item yancy.route helper is deprecated The Yancy editor has been moved into a plugin, L. Since the C helper was the editor's route, that has now changed to the C helper. =item yancy.openapi helper is deprecated The Yancy editor has been moved into a plugin, L. Since the C helper was the editor's L instance, that has now changed to the C helper. =item Yancy::Controller::Yancy::API is deprecated The L class was originally only for the Yancy editor to use. This was also the class to inherit from in order to customize how the server handled requests from the editor. This caused duplication with L, and they slowly diverged into different features (despite having the same goals). Now, the editor uses L by default, and Yancy::Controller::Yancy has been enhanced to support everything that Yancy::Controller::Yancy::API could do (like searching and JSON in the request body). To get back to the old API, set C to 'Yancy::Controller::Yancy::API'. This class will be removed in v2.000, so you may want to create your own API controller (and set C accordingly). =back =head1 SEE ALSO L =head1 AUTHOR Doug Bell =head1 COPYRIGHT AND LICENSE This software is copyright (c) 2021 by Doug Bell. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. =cut