html_url,issue_url,id,node_id,user,user_label,created_at,updated_at,author_association,body,reactions,issue,issue_label,performed_via_github_app https://github.com/simonw/datasette/issues/698#issuecomment-599696286,https://api.github.com/repos/simonw/datasette/issues/698,599696286,MDEyOklzc3VlQ29tbWVudDU5OTY5NjI4Ng==,9599,simonw,2020-03-16T18:32:59Z,2020-03-16T18:33:33Z,OWNER,"```json { ""databases"": { ""my-database"": { ""queries"": { ""add_twitter_handle"": { ""sql"": ""insert into twitter_handles (username) values (:username)"", ""write"": true } } } } } ```","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",582517965,Ability for a canned query to write to the database, https://github.com/simonw/datasette/issues/698#issuecomment-599697164,https://api.github.com/repos/simonw/datasette/issues/698,599697164,MDEyOklzc3VlQ29tbWVudDU5OTY5NzE2NA==,9599,simonw,2020-03-16T18:35:04Z,2020-03-16T18:35:27Z,OWNER,"By default this will extract the `:params` using the existing regular expression - which can occasionally break if there is a rogue `:` in the rest of the query. To address this: allow an extra optional `""params"": [""username""]` field in metadata which, if available, is used instead of the regular expression extraction.","{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",582517965,Ability for a canned query to write to the database, https://github.com/simonw/datasette/issues/698#issuecomment-599701145,https://api.github.com/repos/simonw/datasette/issues/698,599701145,MDEyOklzc3VlQ29tbWVudDU5OTcwMTE0NQ==,9599,simonw,2020-03-16T18:44:19Z,2020-03-16T18:44:40Z,OWNER,This is going to need CSRF protection - see https://github.com/simonw/asgi-csrf,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",582517965,Ability for a canned query to write to the database, https://github.com/simonw/datasette/issues/698#issuecomment-599703452,https://api.github.com/repos/simonw/datasette/issues/698,599703452,MDEyOklzc3VlQ29tbWVudDU5OTcwMzQ1Mg==,9599,simonw,2020-03-16T18:49:31Z,2020-03-16T18:49:31Z,OWNER,Also relevant: this will benefit from an authentication/permissions layer: #699,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",582517965,Ability for a canned query to write to the database, https://github.com/simonw/datasette/issues/698#issuecomment-599704264,https://api.github.com/repos/simonw/datasette/issues/698,599704264,MDEyOklzc3VlQ29tbWVudDU5OTcwNDI2NA==,9599,simonw,2020-03-16T18:51:27Z,2020-03-17T02:44:44Z,OWNER,This is also going to need me to handle POST form submissions which means I need to be able to parse the form body. I guess that will go in [datasette/utils/asgi.py](https://github.com/simonw/datasette/blob/master/datasette/utils/asgi.py).,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",582517965,Ability for a canned query to write to the database, https://github.com/simonw/datasette/issues/698#issuecomment-599704655,https://api.github.com/repos/simonw/datasette/issues/698,599704655,MDEyOklzc3VlQ29tbWVudDU5OTcwNDY1NQ==,9599,simonw,2020-03-16T18:52:23Z,2020-03-16T18:52:23Z,OWNER,I have code for form parsing in `asgi-csrf`: https://github.com/simonw/asgi-csrf/blob/3fc164a9258ebfa616d4e724fcb102b117277c6e/asgi_csrf.py#L91-L109,"{""total_count"": 0, ""+1"": 0, ""-1"": 0, ""laugh"": 0, ""hooray"": 0, ""confused"": 0, ""heart"": 0, ""rocket"": 0, ""eyes"": 0}",582517965,Ability for a canned query to write to the database, https://github.com/simonw/datasette/issues/698#issuecomment-599706260,https://api.github.com/repos/simonw/datasette/issues/698,599706260,MDEyOklzc3VlQ29tbWVudDU5OTcwNjI2MA==,9599,simonw,2020-03-16T18:56:00Z,2020-03-16T18:56:00Z,OWNER,"It would be useful if this feature supported different types of input - at the most basic level `` v.s. `