datasette-comments by datasette

239 downloads this week        Star

Screenshot of datasette/datasette-comments

README source code

datasette-comments

PyPI Changelog Tests License

A Datasette plugin for commenting on data in tables.

Read Annotate and explore your data with datasette-comments for background on this project.

Installation

datasette-comments requires a recent 1.0 alpha version of Datasette to work.

pip install datasette==1.0a7

Afterwards, install this plugin in the same environment as Datasette.

datasette install datasette-comments

Usage

datasette-comments store comments in Datasette's internal database. So to persistent comments across multiple restarts, supply an database path on startup like so:

datasette --internal internal.db my_data.db

When comments are made on rows inside my_data.db, the comment themselves are stored separately in internal.db.

The datasette-comments-access permission is required to be able to view and add comments. To give permissions to specfic users, set up your metadata.yaml like so:

permissions:
  datasette-comments-access:
    id: ["simonw", "asg017"]

To provide actors and IDs, you'll need to setup a separate Datasette authentication plugin. Consider datasette-auth-passwords for a simple username/password setup.

Plugin hooks

This plugin provies the following plugin hook which can be used to customize its behavior:

datasette_comments_users(datasette)

This hook should return a list of dictionaries, each representing a user that should be made available to the plugin. Each dictionary should have the following keys:

  • id: A unique ID of the user, same as the actor ID.
  • username: A unique string that is used in searches and @ mentions.
  • name: A string of the user's natural name.
  • profile_photo_url: Optional URL to the user's profile pic.
  • email: Optional email used for gravatar profile photo, if enabled.

The plugin hook can return a list, or it can return an awaitable function that returns a list.

Development

To set up this plugin locally, first checkout the code. Then create a new virtual environment:

cd datasette-comments
python3 -m venv venv
source venv/bin/activate

Now install the dependencies and test dependencies:

pip install -e '.[test]'

And for the JavaScript dependencies (needed to run a JavaScript build):

npm install

To run the tests:

pytest

To rebuild the minified JavaScript after making a change to a .ts or .tsx file:

just js