一个python库,其中包含用于aether的有用django工具

aether.sdk的Python项目详细描述


Aether django sdk库

此库包含不同Aether Django模块使用的最常见功能。

目录

要求

此库需要Python3.6及更高版本。

python库:

额外依赖项(基于设置):

返回目录

安装

# standalone
pip3 install aether.sdk

# with extra dependencies
pip3 install aether.sdk[cas,scheduler,server,storage,test,webpack]

返回目录

分布

如何创建软件包分发版

执行以下命令:

python3 setup.py bdist_wheel

./scripts/build.sh

返回目录

测试

如何测试库

首次安装依赖项(仅执行一次):

./scripts/install.sh

之后执行以下命令:

source ./venv/bin/activate
./scripts/test.sh

文件scripts/test.ini包含测试中使用的环境变量。

返回目录

用法

快速启动

settings.py文件中添加此代码片段,以便构建django应用程序 基于环境变量的设置。

# if it's an aether modulefromaether.sdk.conf.settings_aetherimport*# noqa# if it's an external aether productfromaether.sdk.conf.settingsimport*# noqa# continue with the application specific settings# and re-import the settings variables you need to reuse# from aether.sdk.conf.settings[_aether] import WHATEVER YOU NEED TO...

urls.py文件中添加此代码片段以生成默认的urlpatterns 基于应用程序设置。

fromaether.sdk.conf.urlsimportgenerate_urlpatternsurlpatterns=generate_urlpatterns(token=[True|False],app=[# include here the application/module specific URLs])

默认网址包括:

  • 健康端点:

    • /healthURL。始终以200状态和空内容响应。 使用aether.sdk.health.views.health视图。
    • /check dbURL。如果数据库不可用,则用500状态响应。 使用aether.sdk.health.views.check\db视图。
    • /check应用程序的url。使用当前应用程序版本及更多响应。 使用aether.sdk.health.views.check_app视图。
  • /admin部分URL(管理URL设置)。

  • /admin/~prometheus/metricsurl。显示原始监控数据。

  • /admin/~uwsgi/URL。如果uwsgi正在运行,则显示服务器uwsgi设置。

  • /accountsurl(auth_url设置)检查rest框架是否, 使用登录模板和注销模板中指示的模板 设置,或keypolt/cas设置。

基于参数:

  • 标记:指示应用程序是否应能够创建并返回 用户通过post请求令牌并激活url。 url端点在标记url设置中指示。 默认为/token。 使用aether.sdk.auth.views.auth_令牌视图。

    如果当前用户不是管理员用户,则创建并返回授权 为自己创建令牌,否则为包含的用户名创建令牌 在请求有效载荷中。

基于应用程序设置:

  • f调试已启用:

    • 调试工具栏URL。
  • 如果设置了profiling\u enabled

    • /admin/~silk/URL。显示分析数据。
  • 如果设置了外部应用程序并有效:

    • /check app/{name}url。检查是否可以访问外部应用程序 使用设置中指示的URL和令牌。 使用aether.sdk.health.views.check_external视图。 对于/check app/app name检查外部应用程序服务器是否app name 可通过提供的环境变量app\u name\u url访问 以及应用程序名称令牌

      可能的回答:

      • 500-永远要看到生活的光明面!!!!
      • 200-由Ehealth Africa为您带来-适合艰苦环境的良好技术
    • /check标记的url。如果 无法使用设置中指示的URL访问外部应用程序 以及链接的当前用户令牌。 使用aether.sdk.health.views.health视图和 aether.sdk.auth.app token.decorators.app_token是必需的decorator。

    • /check user tokensurl(check_token_url设置)。显示外部 当前用户的应用程序令牌。 使用aether.sdk.auth.app token.views.user\u app\u token查看 模板eha/tokens.html

  • 如果app_url设置不同于/,则所有 端点类似于:/{app url}/{endpoint}

  • 如果启用网关

    应用程序终结点也可以通过带前缀的正则表达式访问。 包括此应用程序的领域值和网关ID。

    url模式如下:/{app url}/{current realm}/{gateway id}/{endpoint}

    授权和管理端点从不依赖于任何领域,因此url 始终使用公共领域。

    例如:

    • /{app url}/{public realm}/{gateway id}/帐户
    • /{app url}/{public realm}/{gateway id}/admin

返回目录

环境变量

以下环境变量用于构建应用程序django设置。 查看django设置

查看aether/sdk/conf.settings.py文件以检查所有 预期的环境变量。

特定于应用程序
  • 应用程序链接https://www.ehealthafrica.org。出现在DRF网页中的链接。
  • 应用程序名称eha。网页中显示的应用程序名称。
  • app_name_html:应用程序名称的HTML表达式。 默认为应用程序名称。
  • 应用程序模块:引用要包含的此应用程序的django模块 在已安装的应用程序列表中。
  • app_faviconeha/images/eha icon.svg。应用程序favicon。
  • 应用程序徽标eha/images/eha icon.svg。应用程序徽标。
  • 应用程序URL/。服务器中的应用程序URL。 如果主机是http://my server,应用程序url是/my module, 应用程序enpoints可以在http://my server/my module/{endpoint}

返回目录

通用

  • 调试:启用调试模式。如果未设置或设置为空字符串, 任何其他都被视为true
  • 测试:指示应用程序是否在测试条件下执行。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • 日志格式化程序json。应用程序消息格式。 可能值:verbosejson
  • 日志记录级别信息。应用程序消息的日志记录级别。 https://docs.python.org/3.7/library/logging.html"levels
  • 哨兵DSN:哨兵DSN(错误报告工具)。 https://docs.sentry.io
  • 美化的切割10000。指示经过修饰的json值的最大长度。 请参见:aether.sdk.utils.json修饰(value,indent=2)方法。
django
django rest框架(drf)
  • 页面大小10。rest api的默认页面大小。
  • 最大页面大小5000。rest api的最大页面大小。
  • html_选择u截止100。rest api表单选择字段的选项大小。
数据库

有关详细信息,请访问https://docs.djangoproject.com/en/2.2/ref/settings/databases" rel="nofollow">https://docs.djangoproject.com/en/2.2/ref/settings/databases

  • pghost:postgres主机名(必需的)。
  • pgport:Postgres端口(必需的)。
  • 数据库名称:Postgres数据库名称(必需的)。
  • pguser:Postgres用户(必需的)。
  • pgpassword:Postgres用户密码(必需的)。
  • db_conn_max_age:数据库连接的生存期,以秒为单位。
终点
  • 管理员URL管理员。管理部分终结点。
  • 验证URL帐户。授权终结点(登录和注销URL)
  • 登录url/{auth\u url}/login。登录URL。
  • 令牌URL令牌。获取授权令牌终结点。
  • 检查令牌URL检查用户令牌。检查授权令牌终结点。
模板
  • 登录模板eha/login.html。登录页中使用的模板。
  • 已注销模板eha/logged戋out.html。已注销页中使用的模板。
  • drf_api_renderer_templateeha/api.html。用于DRF可浏览的模板 API渲染器页面。
  • drf_管理nderer_模板eha/admin.html。DRF API中使用的模板 管理渲染器页面。
  • keypolt_templateeha/login_realm.html。登录步骤中使用的模板 若要获取域并重定向到keypolt登录页。
  • keypolt_behind_templateeha/login_keypolt.html。中使用的模板 在后台启用keypolt时的登录页。
分析
  • 分析启用:用于指示分析工具(silk)是否启用。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • silky_python_profiler。用于指示是否使用python的内置cprofile分析器。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • silky_python_profiler_binary。用于指示是否生成二进制文件。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • silky_python_profiler_result_path/tmp/。本地目录,其中*.prof 文件已存储。
  • 丝滑的。看看丝绸对请求/响应时间有什么影响。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • 丝滑的最大请求车身尺寸-1。如果请求体的大小(以字节为单位),silk将保存该请求体。 小于指示值。任何小于0的值意味着没有限制。
  • 丝滑的最大响应体大小-1。如果响应体的大小(以字节为单位),silk将保存它 小于指示值。任何小于0的值意味着没有限制。
  • silky_intercept_percent100。指示记录的请求百分比。
  • silky_max_录制的请求10000。存储的请求/响应数。
  • silky_max_recorded_requests_check_percent10

/admin/~silk/url显示分析数据(仅限管理员用户访问)。

更多信息请参见https://github.com/jazzband/django-silk" rel="nofollow">https://github.com/jazzband/django silk

返回目录

文件存储系统
  • 需要存储:用于指示是否需要文件存储系统。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • django_storage_backend:用于指定 默认文件存储系统。 可用选项:minios3gcs

有关详细信息,请访问https://django storages.readthedocs.io/en/latest/index.html

minio(django_storage_backend=minio

更多信息请参见https://django minio storage.readthedocs.io/en/latest/usage

s3(django_storage_backend=s3
  • bucket_name:要在s3上使用的bucket的名称(必需的)。在S3上必须是唯一的。
  • AWS访问密钥ID:您的S3帐户的AWS访问密钥。
  • aws_secret_access_key:您的s3帐户的aws secret access密钥。
谷歌云存储(django_storage_backend=gcs
  • bucket_name:要在地面军事系统上使用的bucket的名称(必需的)。 使用google cloud控制台创建bucket 并设置适当的权限。
  • gs\u访问密钥id:谷歌云访问密钥。
  • gs_secret_access_key:谷歌云密匙。

如何在谷歌云存储上创建访问密钥

返回目录

调度程序

  • scheduler_required:用于指示是否需要RQ平台。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • redis_主机:redis主机名(必需的)。
  • redis_端口:redis端口(必需的)。
  • redis_db:redis数据库。默认为0
  • redis_密码:redis密码(强制)。

返回目录

安全性

返回目录

网页包

  • 需要webpack:用于指示资产是否通过webpack提供。 是false如果未设置或设置为空字符串,则任何其他内容都将被视为true
  • webpack_stats_file{static_root}webpack stats.json,表示文件路径 那个WebPACK用于为不同的资产提供服务。

返回目录

用户和身份验证

标准

标准选项是通过令牌身份验证和基本身份验证登录 或者通过标准的django认证。

返回目录

密钥斗篷服务器

如果 您想使用keypoct作为身份验证服务器。 keypolt_client_id(默认为eha)是允许 要使用keycoplot rest api进行身份验证的乙醚模块。 必须将此客户端ID添加到以太模块使用的所有领域。 keypolt_server_url必须包含所有路径,直到显示领域为止, 通常直到/auth/realms

有两种方法可以设置keypolt:

a)在这种情况下,身份验证过程发生在服务器端 任何进一步的用户交互。

# .env fileKEYCLOAK_SERVER_URL=http://my-keycloak-server/auth/realmsKEYCLOAK_BEHIND_SCENES=true

b)在这种情况下,用户被重定向到keypolt服务器以完成 登录步骤。

# .env fileKEYCLOAK_SERVER_URL=http://my-keycloak-server/auth/realmsKEYCLOAK_BEHIND_SCENES=

更多信息,请参见keypolt

注意:如果验证服务器 是钥匙斗篷。

返回目录

网关身份验证

设置gateway_service_id以使用keypolt启用网关身份验证。 这意味着身份验证由第三方系统处理 (例如kong)在每个请求中都包含json web gateway_header_token头中的令牌(jwt)(默认为x-oauth-token)。 网关服务id表示网关服务。

在这种情况下,可以通过以下几种方式访问应用程序URL:

尝试访问运行状况终结点/health

对于那些不依赖于领域并且必须也可用的端点 "unprotected"我们还需要一个环境变量:

  • 网关公共领域-这表示不受保护的假领域 通过网关服务器。在这种情况下,身份验证由另一方处理 可用选项,即基本、令牌、CA…

授权和管理端点从不依赖于任何领域,因此最终的url 始终使用公共领域。

返回目录

cas服务器

如果需要,请设置主机名cas_server_url环境变量 激活应用程序中的cas集成。

有关详细信息,请参阅django cas clientdjango cas client

< Buff行情>

注意:不能与keypolt同时启用cas选项。

返回目录

多租户

技术实现在 多租户自述。 按照说明在应用程序中启用多租户选项关于

  • 多租户,启用或禁用该功能,如果未设置或设置,则为。 要清空字符串,任何其他内容都被视为true
  • 默认领域eha创建的艺术品的默认领域 当未启用多租户时。
  • realm_cookieeha realm保持当前cookie的名称 请求头中的租户ID。

返回目录

外部应用程序
  • 外部应用程序 当前实例必须能够连接并与之交互。 对于每个值,都应该有相应的环境变量:

    • <;<;外部应用程序>;>;&u URL:外部应用程序服务器URL(必需的)。
    • <;<;外部应用程序gt;>;&u令牌:外部应用程序授权令牌(强制)。
    • <;<;外部应用程序>;>;&u url\u测试:测试中使用的外部应用程序服务器url。 默认为外部应用程序服务器URL。
    • <;<;外部应用程序>;>;&u令牌测试:测试中使用的外部应用程序授权令牌。 默认为外部应用程序授权令牌。

如果外部应用程序等于app-1、mod-ule-2、pro-d-uct-3 必需的环境变量是:

  • app_1_urlapp_1_token
  • mod ule_2_urlmod ule_2_令牌
  • pro_u uct_3_urlpro_uct_3_令牌

如果启用了网关身份验证而不是使用给定的令牌,则 应用程序将使用提供的gateway_header_token值进行通信 尽可能使用外部应用程序。

返回目录

管理命令

检查是否可以通过命令行访问URL。

# standalone
pip3 install aether.sdk

# with extra dependencies
pip3 install aether.sdk[cas,scheduler,server,storage,test,webpack]
0

通过命令行创建"管理员"用户。

# standalone
pip3 install aether.sdk

# with extra dependencies
pip3 install aether.sdk[cas,scheduler,server,storage,test,webpack]
1

返回目录

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在Hibernate中从两个具有不同功能的表(postgreSQL)映射一个实体   java jfreechart需要自定义Y轴,以便打印   Java:从外部获取类。罐子   java如何获取Appium服务器日志   具有完全相同内容的java重写函数会导致错误   java消息的类路径是什么。属性(如果在依赖项jar中)   循环/相等的java问题==   java如何使用ionic cordova angularjs将所选图像发送到spring controller以保存到服务器?   库中的java语言环境数据   java从JSON webservice检索安卓中的字节[]   调试如何从Java中的类调试方法?   java将日期字符串切割成变量   无法使用java附加到文件?