Configuration#

Datasette offers several ways to configure your Datasette instances: server settings, plugin configuration, authentication, and more.

To facilitate this, You can provide a datasette.yaml configuration file to datasette with the --config/ -c flag:

datasette mydatabase.db --config datasette.yaml

datasette.yaml Reference#

Here's a full example of all the valid configuration options that can exist inside datasette.yaml.

# Datasette settings block
settings:
  default_page_size: 50
  sql_time_limit_ms: 3500
  max_returned_rows: 2000

# top-level plugin configuration
plugins:
  datasette-my-plugin:
    key: valueA

# Database and table-level configuration
databases:
  your_db_name:
    # plugin configuration for the your_db_name database
    plugins:
      datasette-my-plugin:
        key: valueA
    tables:
      your_table_name:
        # plugin configuration for the your_table_name table
        # inside your_db_name database
        plugins:
          datasette-my-plugin:
            key: valueB
{
  "settings": {
    "default_page_size": 50,
    "sql_time_limit_ms": 3500,
    "max_returned_rows": 2000
  },
  "plugins": {
    "datasette-my-plugin": {
      "key": "valueA"
    }
  },
  "databases": {
    "your_db_name": {
      "plugins": {
        "datasette-my-plugin": {
          "key": "valueA"
        }
      },
      "tables": {
        "your_table_name": {
          "plugins": {
            "datasette-my-plugin": {
              "key": "valueB"
            }
          }
        }
      }
    }
  }
}

Settings configuration#

Settings can be configured in datasette.yaml with the settings key.

# inside datasette.yaml
settings:
   default_allow_sql: off
   default_page_size: 50
{
  "settings": {
    "default_allow_sql": "off",
    "default_page_size": 50
  }
}

Plugin configuration#

Configuration for plugins can be defined inside datasette.yaml. For top-level plugin configuration, use the plugins key.

# inside datasette.yaml
plugins:
  datasette-my-plugin:
    key: my_value
{
  "plugins": {
    "datasette-my-plugin": {
      "key": "my_value"
    }
  }
}

For database level or table level plugin configuration, nest it under the appropriate place under databases.

# inside datasette.yaml
databases:
  my_database:
    # plugin configuration for the my_database database
    plugins:
      datasette-my-plugin:
        key: my_value
  my_other_database:
    tables:
      my_table:
        # plugin configuration for the my_table table inside the my_other_database database
        plugins:
          datasette-my-plugin:
            key: my_value
{
  "databases": {
    "my_database": {
      "plugins": {
        "datasette-my-plugin": {
          "key": "my_value"
        }
      }
    },
    "my_other_database": {
      "tables": {
        "my_table": {
          "plugins": {
            "datasette-my-plugin": {
              "key": "my_value"
            }
          }
        }
      }
    }
  }
}

Permissions configuration#

TODO

Canned queries configuration#

TODO

Extra CSS and JS configuration#

TODO