Skip to main content

Python client library for the dtrv

Project description

dingtalk robot vault

通过 vault 获取 钉钉机器人 token/secret.

提供 vault 方法:

1、通过 vault 获取所需 token/secret.
2、对 vault 的 token 进行续签
3、发送 钉钉 机器人消息(不管)

Example:

import dtrv
from dtrv import Method

# 定义 vault 地址
dtrv.vault_host = "http://127.0.0.1:8200"
# 定义 vault Token
dtrv.vault_token = "hvs.CAESIJvcUSdaPO9JRX7-FJfkuVS-dtooFJmsRfCx06cigPJtGh4KHGh2cy5OM1NGT0NaMWFBRDBDNGJGcUI1ZTVUMzM"
# 定义所需 keyName
dtrv.vault_kv_secret_namelist = ["robot/mypath", "robot/mypath2"]


# 装饰器, 获取租期当不足 1 小时时需要续租
@Method.InitializeTheVaultTokenLease
def a():
    """自定义方法 A"""
    pass


# 装饰器, 使用 keyName 获取 vault 对应数据
@Method.UpdateDingtalkKvData
def b():
    """自定义方法 B"""
    pass


# 实验性质
# 装饰器, 获取方法执行时间
@Method.ChekcExecutionTime(__name__)
def main():
    a()
    b()
    # 打印当前 token 过期时间(hour)
    print(dtrv.vault_token_timestamp)
    # 获取 robot token/secret 列表
    print(dtrv.dingtalk_robot_token_list)


main()

vault 方法

export VAULT_ADDR=http://localhost:8200
export VAULT_TOKEN=hvs.R2gXj5FZlNcKLtbV8T9jCyrd

vault kv put dingtalk/robot/mypath token=aaaa secret=bbbb
vault kv put dingtalk/robot/mypath2 token=cccc secret=dddd

vault secrets enable -path=dingtalk kv-v2

cat >limit-token.hcl<<EOF
path "dingtalk/+/*" {
capabilities = ["read"]
}
path "auth/token/lookup-self" {
    capabilities = ["read"]
}
# Allow tokens to renew themselves
path "auth/token/renew-self" {
    capabilities = ["update"]
}
EOF

vault policy write test-read-policy ./limit-token.hcl
vault token create -policy=test-read-policy -ttl 100m -no-default-policy -orphan

export VAULT_TOKEN=hvs.CAESIKlV23gAKIIT5JJT-mbZQBrKkFNse5-SVo-gMJ1Zayt6Gh4KHGh2cy52dEd2NjBvTTNXRlFWQXBITXhpZFA5WWQ
vault kv get -format=json dingtalk/robot/mypath

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

dtrv-0.0.2.tar.gz (9.0 kB view details)

Uploaded Source

File details

Details for the file dtrv-0.0.2.tar.gz.

File metadata

  • Download URL: dtrv-0.0.2.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for dtrv-0.0.2.tar.gz
Algorithm Hash digest
SHA256 d4bb9549a4eb0566c421f9f48df016db7b1f8a798dee44c1a3fb2978707fa7a1
MD5 3d35b92a55076a9fd083df67a2e0a6c3
BLAKE2b-256 e0c42ef35c77762e84de4129c3b61ea967497ac6be5b13786b867466f752362a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page