Datasette plugin for authenticating access using API tokens
Project description
datasette-auth-tokens
Datasette plugin for authenticating access using API tokens
Installation
Install this plugin in the same environment as Datasette.
$ pip install datasette-auth-tokens
Usage
Read about Datasette's authentication and permissions system.
This plugin lets you configure secret API tokens which can be used to make authenticated requests to Datasette.
First, create a random API token. A useful recipe for doing that is the following:
$ python -c 'import secrets; print(secrets.token_hex(32))'
5f9a486dd807de632200b17508c75002bb66ca6fde1993db1de6cbd446362589
Decide on the actor that this token should represent, for example:
{
"bot_id": "my-bot"
}
You can then use "allow"
blocks to provide that token with permission to access specific actions. To enable access to a configured writable SQL query you could use this in your metadata.json
:
{
"plugins": {
"datasette-auth-tokens": [
{
"token": {
"$env": "BOT_TOKEN"
},
"actor": {
"bot_id": "my-bot"
}
}
]
},
"databases": {
":memory:": {
"queries": {
"show_version": {
"sql": "select sqlite_version()",
"allow": {
"bot_id": "my-bot"
}
}
}
}
}
}
This uses Datasette's secret configuration values mechanism to allow the secret token to be passed as an environment variable.
Run Datasette like this:
BOT_TOKEN="this-is-the-secret-token" \
datasette -m metadata.json
You can now run authenticated API queries like this:
$ curl -H 'Authorization: Bearer this-is-the-secret-token' \
'http://127.0.0.1:8001/:memory:/show_version.json?_shape=array'
[{"sqlite_version()": "3.31.1"}]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Hashes for datasette_auth_tokens-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a519b1c51ba3c6a8501aa6e5a04fb284d7d678cb56621cb6d3b563c5e7f12f52 |
|
MD5 | d608aa733e22e2792493b990c0c4ac0f |
|
BLAKE2b-256 | bc46feb27f03d6a17e045f07c977e313d7aa47b4e8df0362fddbc20d3a470769 |