datasette-public by simonw
146 downloads this week Star
README source code
Make specific Datasette tables visible to the public
Install this plugin in the same environment as Datasette.
datasette install datasette-public
Any tables listed in the _public_tables
table will be visible to the public, even if the rest of the Datasette instance does not allow anonymous access.
The root user (and any user with the new public-tables
permission) will get a new option in the table action menu allowing them to toggle a table between public and private.
Installing this plugin also causes allow-sql
permission checks to fall back to checking if the user has access to the entire database. This is to avoid users with access to a single public table being able to access data from other tables using the ?_where=
query string parameter.
This plugin creates a new table in one of your databases called _public_tables
.
This table defaults to being created in the first database passed to Datasette.
To create it in a different named database, use this plugin configuration:
{
"plugins": {
"datasette-public": {
"database": "database_to_create_table_in"
}
}
}
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-public
python3 -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest