releases
1 row where author = 9599 and body = "Magic parameters for canned queries, a log out feature, improved plugin documentation and four new plugin hooks. ### Magic parameters for canned queries Canned queries now support [Magic parameters](https://docs.datasette.io/en/stable/sql_queries.html#canned-queries-magic-parameters), which can be used to insert or select automatically generated values. For example: ```sql insert into logs (user_id, timestamp) values (:_actor_id, :_now_datetime_utc) ``` This inserts the currently authenticated actor ID and the current datetime. ([#842](https://github.com/simonw/datasette/issues/842)) ### Log out The [ds_actor cookie](https://docs.datasette.io/en/stable/authentication.html#authentication-ds-actor) can be used by plugins (or by Datasette's [--root mechanism](https://docs.datasette.io/en/stable/authentication.html#authentication-root)) to authenticate users. The new `/-/logout` page provides a way to clear that cookie. A "Log out" button now shows in the global navigation provided the user is authenticated using the `ds_actor` cookie. ([#840](https://github.com/simonw/datasette/issues/840)) ### Better plugin documentation The plugin documentation has been re-arranged into four sections, including a brand new section on testing plugins. ([#687](https://github.com/simonw/datasette/issues/687)) - [Plugins](https://docs.datasette.io/en/stable/plugins.html#plugins) introduces Datasette's plugin system and describes how to install and configure plugins. - [Writing plugins](https://docs.datasette.io/en/stable/writing_plugins.html#writing-plugins) describes how to author plugins, from simple one-off plugins to packaged plugins that can be published to PyPI. It also describes how to start a plugin using the new [datasette-plugin](https://github.com/simonw/datasette-plugin) cookiecutter template. - [Plugin hooks](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hooks) is a full list of detailed documentation for every Datasette plugin hook. - [Testing plugins](https://docs.datasette.io/en/stable/testing_plugins.html#testing-plugins) describes how to write tests for Datasette plugins, using [pytest](https://docs.pytest.org/) and [HTTPX](https://www.python-httpx.org/). ### New plugin hooks - [register_magic_parameters(datasette)](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-register-magic-parameters) can be used to define new types of magic canned query parameters. - [startup(datasette)](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-startup) can run custom code when Datasette first starts up. [datasette-init](https://github.com/simonw/datasette-init) is a new plugin that uses this hook to create database tables and views on startup if they have not yet been created. ([#834](https://github.com/simonw/datasette/issues/834)) - [canned_queries(datasette, database, actor)](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-canned-queries) lets plugins provide additional canned queries beyond those defined in Datasette's metadata. See [datasette-saved-queries](https://github.com/simonw/datasette-saved-queries) for an example of this hook in action. ([#852](https://github.com/simonw/datasette/issues/852)) - [forbidden(datasette, request, message)](https://docs.datasette.io/en/stable/plugin_hooks.html#plugin-hook-forbidden) is a hook for customizing how Datasette responds to 403 forbidden errors. ([#812](https://github.com/simonw/datasette/issues/812)) ### Smaller changes - Cascading view permissons - so if a user has `view-table` they can view the table page even if they do not have `view-database` or `view-instance`. ([#832](https://github.com/simonw/datasette/issues/832)) - CSRF protection no longer applies to `Authentication: Bearer token` requests or requests without cookies. ([#835](https://github.com/simonw/datasette/issues/835)) - `datasette.add_message()` now works inside plugins. ([#864](https://github.com/simonw/datasette/issues/864)) - Workaround for "Too many open files" error in test runs. ([#846](https://github.com/simonw/datasette/issues/846)) - Respect existing `scope["actor"]` if already set by ASGI middleware. ([#854](https://github.com/simonw/datasette/issues/854)) - New process for shipping [Alpha and beta releases](https://docs.datasette.io/en/stable/contributing.html#contributing-alpha-beta). ([#807](https://github.com/simonw/datasette/issues/807)) - `{{ csrftoken() }}` now works when plugins render a template using `datasette.render_template(..., request=request)`. ([#863](https://github.com/simonw/datasette/issues/863)) - Datasette now creates a single [Request object](https://docs.datasette.io/en/stable/internals.html#internals-request) and uses it throughout the lifetime of the current HTTP request. ([#870](https://github.com/simonw/datasette/issues/870))" sorted by created_at descending
This data as json, CSV (advanced)
Suggested facets: created_at (date), published_at (date)
id | html_url | node_id | tag_name | target_commitish | name | draft | author | prerelease | created_at ▲ | published_at | body | repo | reactions |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
28134124 | https://github.com/simonw/datasette/releases/tag/0.45 | MDc6UmVsZWFzZTI4MTM0MTI0 | 0.45 | master | 0.45 | 0 | simonw 9599 | 0 | 2020-07-01T21:43:07Z | 2020-07-01T21:46:07Z | Magic parameters for canned queries, a log out feature, improved plugin documentation and four new plugin hooks. Magic parameters for canned queriesCanned queries now support Magic parameters, which can be used to insert or select automatically generated values. For example:
Log outThe ds_actor cookie can be used by plugins (or by Datasette's --root mechanism) to authenticate users. The new A "Log out" button now shows in the global navigation provided the user is authenticated using the Better plugin documentationThe plugin documentation has been re-arranged into four sections, including a brand new section on testing plugins. (#687)
New plugin hooks
Smaller changes
|
datasette 107914493 |
Advanced export
JSON shape: default, array, newline-delimited, object
CREATE TABLE [releases] ( [html_url] TEXT, [id] INTEGER PRIMARY KEY, [node_id] TEXT, [tag_name] TEXT, [target_commitish] TEXT, [name] TEXT, [draft] INTEGER, [author] INTEGER REFERENCES [users]([id]), [prerelease] INTEGER, [created_at] TEXT, [published_at] TEXT, [body] TEXT, [repo] INTEGER REFERENCES [repos]([id]) , [reactions] TEXT); CREATE INDEX [idx_releases_repo] ON [releases] ([repo]); CREATE INDEX [idx_releases_author] ON [releases] ([author]);