id,page,ref,title,content,breadcrumbs,references upgrade-1.0a20:target-the-new-apis-exclusively,upgrade-1.0a20,target-the-new-apis-exclusively,Target the new APIs exclusively,"Datasette 1.0a20’s permission system is substantially different from previous releases. Attempting to keep plugin code compatible with both the old permission_allowed() and the new allowed() interfaces leads to brittle workarounds. Prefer to adopt the 1.0a20 APIs ( register_actions , permission_resources_sql() , and datasette.allowed() ) outright and drop legacy fallbacks.","[""Datasette 1.0a20 plugin upgrade guide""]",[] upgrade_guide:target-the-new-apis-exclusively,upgrade_guide,target-the-new-apis-exclusively,Target the new APIs exclusively,"Datasette 1.0a20’s permission system is substantially different from previous releases. Attempting to keep plugin code compatible with both the old permission_allowed() and the new allowed() interfaces leads to brittle workarounds. Prefer to adopt the 1.0a20 APIs ( register_actions , permission_resources_sql() , and datasette.allowed() ) outright and drop legacy fallbacks.","[""Upgrade guide"", ""Datasette 1.0a20 plugin upgrade guide""]",[]