Skip to content

datasette/datasette-comments

Repository files navigation

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.

The easiest way to run the tests (and commands needed to prepare the environment) is with Just:

cd datasette-comments
just

You can run the tests using uv:

uv run pytest

To install JavaScript dependencies (needed to run a JavaScript build):

npm install

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

just frontend

About

A Datasette plugin for commenting on data in tables

Topics

Resources

License

Stars

Watchers

Forks

Contributors