可扩展和可定制的策略定义和执行框架
项目描述
皮利西
一个可定制和可扩展的策略创建和执行框架。
安装
$ pip install pylicy
一个简单的例子
示例可以在examples/目录中找到。
import asyncio
import pylicy
@pylicy.policy_checker('token_age_policy')
async def my_policy(resource: pylicy.Resource, rule: pylicy.Rule) -> pylicy.PolicyDecision:
if resource.data['token_age'] > 30:
return pylicy.PolicyDecision(
action=pylicy.PolicyDecisionAction.DENY,
reason="expired",
detail={'age': resource.data['token_age']}
)
elif resource.data['token_age'] > 20:
return pylicy.PolicyDecision(action=pylicy.PolicyDecisionAction.WARN)
else:
return pylicy.PolicyDecision(action=pylicy.PolicyDecisionAction.ALLOW)
policies = pylicy.Pylicy.from_rules([
pylicy.UserRule(
name='token_age',
resources=['*_token*'],
policies=['token_*'],
)
])
results = asyncio.run(policies.apply_all([
pylicy.Resource(id='my_ok_token', data={'token_age': 10}),
pylicy.Resource(id='my_old_token', data={'token_age': 21}),
pylicy.Resource(id='my_expired_token', data={'token_age': 90})
]))
print(results)
执照
该项目根据 MIT 许可条款获得许可。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
pylicy-0.1.1.tar.gz
(8.9 kB
查看哈希)
内置分布
pylicy-0.1.1-py3-none-any.whl
(9.8 kB
查看哈希)