【发布时间】:2022-03-04 03:54:27
【问题描述】:
使用例如 Python 转换从代码存储库中访问内部 Foundry API 的正确方法是什么?
【问题讨论】:
标签: palantir-foundry foundry-code-repositories
使用例如 Python 转换从代码存储库中访问内部 Foundry API 的正确方法是什么?
【问题讨论】:
标签: palantir-foundry foundry-code-repositories
目前默认不支持从代码存储库中访问 Foundry API 的功能。
【讨论】:
这是可能的,但由于安全影响而有些不鼓励。特别是用于调用 API 的令牌。从历史上看,Foundry 作业是使用建筑用户的完整令牌运行的。这允许进行用户可以进行的任何 API 调用,但可能会被不法分子滥用。因此,今天的大多数构建都使用项目范围的令牌,它只能读取和写入数据集,而不能进行 API 调用。
因此,您必须取消项目范围的存储库以便它使用用户令牌,这可以通过 Jemma API 完成,或者通过提供硬编码的令牌,这可以通过具有适当的安全数据集来完成标记,但请注意任何可以读取此数据集的人都可以窃取令牌。
一种称为逻辑流的产品支持解决方案即将推出,以使这一过程更加顺畅。
一旦您有了令牌,API 调用就类似于任何其他 API。这是python的一个例子,更多信息在the documentation。
URL = f"https://foundry.url/stemma/api/repos/{repo}/checks"
headers = {
"Authorization": "Bearer " + token
}
req = requests.get(URL, headers=headers)
if req.status_code > 299:
continue
req_json = req.json()
【讨论】:
由于提到的 Foundry 限制和项目范围令牌,我们为自动化创建专用服务帐户,为服务帐户创建一个不记名令牌,并将其存储在我们使用标记保护的数据集中。在我们使用令牌进行 api 调用的转换中,我们停止将标记传播到下游转换。
不幸的是,这相当麻烦,我们正在向 Palantir 的产品开发团队寻求更好的解决方案。
【讨论】: