跳转到主要内容

允许通过CKAN API限制数据集访问的扩展。

项目描述

CKAN 限制 API

允许通过CKAN API限制数据集访问的扩展。

文档: https://envidat.gitlab-pages.wsl.ch/ckanext-restricted_api/

源代码: https://gitlabext.wsl.ch/EnviDat/ckanext-restricted_api


此插件主要用于基于CKAN API构建的定制前端。

需要CKAN >= 2.10。对于 <2.10,请使用 ckanext-restricted-api==1.0.0

  • 限制对数据集资源的访问。
  • 这样,包元数据是可访问的,但数据本身(资源)不可访问。
  • 可以为每个包单独定义资源访问限制级别。

基于@espona(Lucia Espona Pernas)为ckanext-restricted(https://github.com/EnviDat/ckanext-restricted)的工作。

安装

pip install ckanext-restricted-api

配置

可以在您的ckan.ini中设置可选变量

  • restricted_api.access_request_template
    • 描述:访问请求模板的路径,将其渲染为HTML电子邮件。
    • 默认:使用默认模板。
  • restricted_api.access_granted_template
    • 描述:访问授权模板的路径,将其渲染为HTML电子邮件。
    • 默认:使用默认模板。
  • ckanext.restricted_api.omit_resources_on_pkg_list
    • 描述:在当前_package_list_with_resources中,完全省略资源或处理所有资源以限制字段(这可能会影响性能)。
    • 默认:True(以最大化性能)。

受限字典

  • 此插件通过在CKAN的resource表的extra字段中存储信息来工作。

  • 默认情况下,CKAN的额外值会被提取到API返回的包/资源JSON中。

  • restricted被存储,其值包含一个嵌套字典,

    • 级别:包含限制级别的字符串,选项
      • public任何用户
      • registered仅注册用户
      • only_allowed_users仅指定在allowed_users键中的用户。
      • any_organization任何是组织成员的用户。
      • same_organization仅限于与数据集相同的组织中的用户。
    • allowed_users:包含指定允许用户的逗号分隔字符串,与only_allowed_users一起使用。

示例

"restricted": '{"level": "same_organization", "allowed_users": ""}'

"only_allowed_users": '{"level": "same_organization", "allowed_users": "user1,user2,user3"}'

授权访问

  1. 用户可以通过从前端调用API端点来请求访问数据集。
  2. 包所有者会收到电子邮件,并可以允许个别用户访问资源。a. 可以通过更新受限字典(通过API/前端)来授权访问。
  3. 如果授权访问,用户将通过电子邮件自动收到通知。

端点

POST

GET

注意

没有受限访问权限的用户有两个字段被删除

  • url:下载数据集
  • restricted:查看限制信息

无法通过CKAN API下载受限资源。

然而,需要注意的是,如果资源托管在公共S3存储中,那么这种混淆并不能防止直接下载数据。

项目详情


下载文件

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

源分布

ckanext-restricted-api-2.0.6.tar.gz (12.5 kB 查看哈希值)

上传时间

构建分布

ckanext_restricted_api-2.0.6-py3-none-any.whl (13.3 kB 查看哈希值)

上传时间 Python 3

由以下机构支持