{"ok": true, "database": "docs", "table": "sections", "rows": [{"id": "changelog:new-column-types-system", "page": "changelog", "ref": "new-column-types-system", "title": "New ", "content": "Table columns can now have custom column types assigned to them, using the new  column_types  table configuration option or at runtime using a new UI and  POST /<database>/<table>/-/set-column-type  JSON API. \n                 Built-in column types include  url ,  email , and  json , and plugins can register additional types using the new  register_column_types()  plugin hook. ( #2664 ,  #2671 ) \n                 Column types can customize HTML rendering, validate values written through the insert, update, and upsert APIs, and transform values returned by the JSON API. They can optionally restrict themselves to specific SQLite column types using  sqlite_types . This feature also introduces a new  set-column-type  permission for assigning column types to a table. ( #2672 ) \n                 The  render_cell()  plugin hook now receives a  column_type  argument containing the assigned type instance, and a column type's own  render_cell()  method takes priority over the plugin hook chain. \n                 The  datasette-files  plugin will be the first to use this new feature.", "breadcrumbs": "[\"Changelog\", \"1.0a26 (2026-03-18)\"]", "references": "[{\"href\": \"https://github.com/simonw/datasette/issues/2664\", \"label\": \"#2664\"}, {\"href\": \"https://github.com/simonw/datasette/issues/2671\", \"label\": \"#2671\"}, {\"href\": \"https://github.com/simonw/datasette/issues/2672\", \"label\": \"#2672\"}, {\"href\": \"https://github.com/datasette/datasette-files\", \"label\": \"datasette-files\"}]"}], "primary_keys": ["id"], "primary_key_values": ["changelog:new-column-types-system"], "query_ms": 2.8108740007155575, "truncated": false}