跳转到主要内容

配置Datasette以使用SQLite set_authorizer机制阻止操作

项目描述

datasette-sqlite-authorizer

PyPI Changelog Tests License

配置Datasette以使用SQLite set_authorizer机制阻止操作

安装

在Datasette相同的环境中安装此插件。

datasette install datasette-sqlite-authorizer

用法

此插件目前提供一个配置选项: read_only_tables。您可以使用此选项指定应只读的表列表。

如果表是只读的,则任何写入尝试( insertupdatedeletedrop tablealter table)都将因错误信息而拒绝。

要配置只读表,将以下内容添加到您的 metadata.yaml 文件中

plugins:
  datasette-sqlite-authorizer:
    read_only_tables:
    - table: my_table
      database: my_database

如果您想将相同的规则应用于所有数据库,则可以省略 database 键。

以下是如何使用此插件使所有与Litestream同步相关的表在所有附加数据库中只读的示例

plugins:
  datasette-sqlite-authorizer:
    read_only_tables:
    - table: _litestream_lock
    - table: _litestream_seq

记录操作

要启用特定操作检查的调试输出(到标准错误),请将它们添加到 debug_actions 列表中。例如,要记录所有 SQLITE_INSERT 操作

plugins:
  datasette-sqlite-authorizer:
    debug_actions:
    - SQLITE_INSERT
    - SQLITE_DELETE

记录的输出将类似于以下内容

authorizer: {"action": "SQLITE_INSERT", "arg1": "foo", "arg2": null, "db_name": "main", "trigger_name": null, "result": "OK"}
authorizer: {"action": "SQLITE_DELETE", "arg1": "foo", "arg2": null, "db_name": "main", "trigger_name": null, "result": "OK"}

开发

要本地设置此插件,首先检出代码。然后创建一个新的虚拟环境

cd datasette-sqlite-authorizer
python3 -m venv venv
source venv/bin/activate

现在安装依赖项和测试依赖项

pip install -e '.[test]'

要运行测试

pytest

项目详情


下载文件

下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。

源代码分发

datasette-sqlite-authorizer-0.2.tar.gz (8.1 kB 查看哈希值)

上传时间 源代码

构建分发

datasette_sqlite_authorizer-0.2-py3-none-any.whl (7.9 kB 查看哈希值)

上传时间 Python 3

由以下支持