12 个重大版本更新

0.22.0 2023 年 9 月 1 日
0.21.0 2023 年 6 月 22 日
0.20.0 2023 年 5 月 26 日
0.15.0 2023 年 2 月 23 日
0.10.1 2022 年 10 月 25 日

#1030 in Web 编程

Download history 33/week @ 2024-03-08 92/week @ 2024-03-15 43/week @ 2024-03-22 20/week @ 2024-03-29 27/week @ 2024-04-05 4/week @ 2024-04-12 51/week @ 2024-04-19 5/week @ 2024-04-26 94/week @ 2024-05-03 8/week @ 2024-05-10 35/week @ 2024-05-31 52/week @ 2024-06-07 43/week @ 2024-06-14 10/week @ 2024-06-21

140 每月下载量

MIT 许可证

140KB
3K SLoC

弗雷塔项目

摘要

Freta SDK 使您能够访问 弗雷塔项目,这是一个用于检查易失性内存镜像的服务。

本库中包含一个工具,freta,它提供对 弗雷塔项目 服务的命令行访问。

文档

  • 服务文档 包含有关如何使用服务以及弗雷塔分析公开的信息的详细信息。
  • CLI 参考 包含有关如何使用弗雷塔 CLI 与弗雷塔服务交互的信息。
  • 模块文档 描述了与弗雷塔服务进行程序交互的 API 和数据结构。
  • 示例 展示了如何利用 SDK 自动化弗雷塔。

安装

cargo install freta

构建

弗雷塔客户端是用 Rust 编写的,需要 Rust 1.64.0(稳定版)或更高版本。

要构建 freta

$ git clone https://github.com/microsoft/project-freta
$ cd project-freta
$ cargo build --release
$ ./target/release/freta --version
0.9.0

使用客户端

$ freta info
{
  "api_version": "0.7.2",
  "models_version": "0.9.0",
  "current_eula": "993C44214D3E5D0EEB92679E41FC0C4D69DA9C37EF97988FB724C7B2493695BB",
  "formats": [
    "vmrs",
    "raw",
    "lime",
    "core",
    "avmh"
  ]
}
$ freta images upload ~/projects/samples/centos-6-2.6.32-754.17.1.el6/OpenLogic\:CentOS\:6.10\:latest.lime
[2022-10-20T17:37:39Z INFO  freta] uploading as image id: 78f6bdc7-31ce-4877-a67e-f7137db248bd
206.99 MiB (25.26 MiB/s)
$ freta images list
[
    {
      "last_updated": "2022-10-20T17:38:29.7311842Z",
      "owner_id": "72f988bf-86f1-41af-91ab-2d7cd011db47_09731d72-f8a6-463c-9efe-ca0bedfd82ae",
      "image_id": "78f6bdc7-31ce-4877-a67e-f7137db248bd",
      "state": "completed",
      "format": "lime",
      "tags": {},
      "shareable": false
    },    
]

使用自动化工具与弗雷塔交互

除了作为用户登录弗雷塔服务外,自动化工具还可以使用 Azure 服务主体 进行身份验证。

首先,创建一个服务主体

$ az ad sp create-for-rbac -n YOUR_SERVICE_PRINCIPAL_NAME_HERE
{
  "appId": "00000000-0000-0000-0000-000000000000",
  "displayName": "YOUR_SERVICE_PRINCIPAL_NAME_HERE",
  "password": "REDACTED_PASSWORD_HERE",
  "tenant": "REDACTED_TENANT_HERE",
}

然后配置 freta 客户端以使用新创建的服务主体,使用上一个命令的输出中的 appId 作为 --client-id,将 password 作为 --client-secret,并将 tenant 作为 --tenant-id

$ freta config --client-id APP_ID_HERE --client-secret PASSWORD_HERE --tenant-id TENANT_HERE
[2023-01-04T19:43:34Z INFO  freta] config saved: Config { api url: "https://freta.microsoft.com/", client id: "00000000-0000-0000-0000-000000000000", tenant id: "REDACTED_TENANT_HERE", client secret: "[redacted]", scope: "api://a934fc14-92d7-4127-aecd-bddab35935da/.default" }

在使用服务之前,服务主体必须同意Freta的EULA。这可以通过运行以下命令完成:

$ freta eula accept

从现在开始,客户端可以自动使用。

贡献

本项目欢迎贡献和建议。大多数贡献需要您同意一份贡献者许可协议(CLA),声明您有权,并且实际上确实授予我们使用您贡献的权利。有关详细信息,请访问https://cla.microsoft.com

当您提交拉取请求时,CLA机器人将自动确定您是否需要提供CLA,并适当装饰PR(例如,标签、评论)。只需遵循机器人提供的说明。您只需在整个使用我们CLA的存储库中执行此操作一次。

本项目已采用Microsoft开源行为准则。有关更多信息,请参阅行为准则FAQ或通过[email protected]联系以提出任何额外的问题或评论。

报告安全问题

安全和漏洞应通过电子邮件私下报告给微软安全响应中心(MSRC),电子邮件地址为[email protected]。您应在24小时内收到回复。如果由于某种原因您没有收到回复,请通过电子邮件跟进以确保我们已收到您的原始信息。更多信息,包括MSRC PGP密钥,可以在安全技术中心找到。

依赖关系

~5–20MB
~305K SLoC