Datasette plugin for configuring CORS headers
Project description
datasette-cors
Datasette plugin for configuring CORS headers, based on asgi-cors.
You can use this plugin to allow JavaScript running on an allowlisted set of domains to make fetch()
calls to the JSON API provided by your Datasette instance.
Installation
datasette install datasette-cors
Configuration
You need to add some plugin configuration for this plugin to take effect.
To allowlist specific domains, use this:
{
"plugins": {
"datasette-cors": {
"hosts": ["https://www.example.com"]
}
}
}
This affects the access-control-allow-origin
header.
You can also allowlist host patterns like this:
{
"plugins": {
"datasette-cors": {
"host_wildcards": ["https://*.example.com"]
}
}
}
To allow all origins, use:
{
"plugins": {
"datasette-cors": {
"allow_all": true
}
}
}
This sets the access-control-allow-origin
header to *
.
You can specify allowed headers - with the access-control-allow-headers
header - using the headers
option:
{
"plugins": {
"datasette-cors": {
"allow_all": true,
"headers": ["Authorization", "Content-Type"]
}
}
}
To allow specific HTTP methods with the access-control-allow-methods
header, use the methods
option:
{
"plugins": {
"datasette-cors": {
"allow_all": true,
"methods": ["GET", "POST", "OPTIONS"]
}
}
}
You can set the access-control-max-age
header using the max_age
option:
{
"plugins": {
"datasette-cors": {
"allow_all": true,
"max_age": 3600
}
}
}
Testing it
To test this plugin out, run it locally by saving one of the above examples as metadata.json
and running this:
datasette -m metadata.json
With Datasette 1.0 use -c config.json
instead, or try this:
datasette -s plugins.datasette-cors.allow_all true
Now visit https://www.example.com/ in your browser, open the browser developer console and paste in the following:
fetch("http://127.0.0.1:8001/_memory.json?sql=select+sqlite_version%28%29").then(r => r.json()).then(console.log)
If the plugin is working correctly, you will see the JSON response output to the console.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file datasette-cors-1.0.1.tar.gz
.
File metadata
- Download URL: datasette-cors-1.0.1.tar.gz
- Upload date:
- Size: 6.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a676982c6d316258d634e1e2437ec842fe917be601468ea5a16ed8a6ef9a9182 |
|
MD5 | ce512025a5670e1b549925c8271ec653 |
|
BLAKE2b-256 | 250755f754a104eddba0d3080a50a2c96d75c6851d65db29f6fcd1b244fb8512 |
File details
Details for the file datasette_cors-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: datasette_cors-1.0.1-py3-none-any.whl
- Upload date:
- Size: 7.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e5890293fd81c469672b9fb63958e094b10449b1f126a406ce4036640b57b040 |
|
MD5 | ac7cfed70d9344f0454364fb32162973 |
|
BLAKE2b-256 | 99a8293da46a70fc332d57646a8fb2beddab12f9f36a824b538fae09061bd5a9 |