{"ok": true, "database": "docs", "table": "sections_fts", "rows": [{"rowid": 99, "title": "1.0a2 (2022-12-14)", "content": "The third Datasette 1.0 alpha release adds upsert support to the JSON API, plus the ability to specify finely grained permissions when creating an API token. \n             See  Datasette 1.0a2: Upserts and finely grained permissions  for an extended, annotated version of these release notes. \n             \n                 \n                     New  /db/table/-/upsert  API,  documented here . upsert is an update-or-insert: existing rows will have specified keys updated, but if no row matches the incoming primary key a brand new row will be inserted instead. ( #1878 ) \n                 \n                 \n                     New  register_permissions()  plugin hook. Plugins can now register named permissions, which will then be listed in various interfaces that show available permissions. ( #1940 ) \n                 \n                 \n                     The  /db/-/create  API for  creating a table  now accepts  \"ignore\": true  and  \"replace\": true  options when called with the  \"rows\"  property that creates a new table based on an example set of rows. This means the API can be called multiple times with different rows, setting rules for what should happen if a primary key collides with an existing row. ( #1927 ) \n                 \n                 \n                     Arbitrary permissions can now be configured at the instance, database and resource (table, SQL view or canned query) level in Datasette's  Metadata  JSON and YAML files. The new  \"permissions\"  key can be used to specify which actors should have which permissions. See  Other permissions in datasette.yaml  for details. ( #1636 ) \n                 \n                 \n                     The  /-/create-token  page can now be used to create API tokens which are restricted to just a subset of actions, including against specific databases or resources. See  API Tokens  for details. ( #1947 ) \n                 \n                 \n                     Likewise, the  datasette create-token  CLI command can now create tokens with  a subset of permissions . ( #1855 ) \n                 \n                 \n                     New  datasette.create_token() API method  for programmatically creating signed API tokens. ( #1951 ) \n                 \n                 \n                     /db/-/create  API now requires actor to have  insert-row  permission in order to use the  \"row\"  or  \"rows\"  properties. ( #1937 )"}], "primary_keys": ["rowid"], "primary_key_values": ["99"], "query_ms": 2.393760994891636, "truncated": false}