{"ok": true, "database": "docs", "table": "sections", "rows": [{"id": "changelog:register-token-handler-plugin-hook-for-custom-api-token-backends", "page": "changelog", "ref": "register-token-handler-plugin-hook-for-custom-api-token-backends", "title": null, "content": "A new  register_token_handler()  plugin hook allows plugins to provide custom token backends for API authentication. ( #2650 ) \n                 This includes a  backwards incompatible change : the  datasette.create_token()  internal  method is now an  async  method. Consult the  upgrade guide  for details on how to update your code.", "breadcrumbs": "[\"Changelog\", \"1.0a25 (2026-02-25)\"]", "references": "[{\"href\": \"https://github.com/simonw/datasette/pull/2650\", \"label\": \"#2650\"}]"}], "primary_keys": ["id"], "primary_key_values": ["changelog:register-token-handler-plugin-hook-for-custom-api-token-backends"], "query_ms": 2.6399899998068577, "truncated": false}