Veracode 是一个基于云的应用安全测试平台。根据资料,开发者和安全团队使用它在软件开发生命周期中识别并修复软件漏洞。
主要能力与涉及对象
该技能用于与 Veracode 数据交互,可管理数据、记录并自动化工作流。资料中列举的对象包括:Application(应用)、Sandbox(沙箱)、Build(构建)、Flaw(缺陷)、Scan(扫描)、Policy(策略)、User(用户)。具体可用的动作名称与参数需按实际需要查找,资料未逐一列出。
使用方式
该技能通过 Membrane CLI 与 Veracode 交互。Membrane 会自动处理认证与凭证刷新,因此只需关注集成逻辑,而不必处理认证细节。
第一步,安装 CLI:
npm install -g @membranehq/cli@latest
第二步,认证:
membrane login --tenant --clientName=<agentType>
该命令会视交互模式是否可用,打开浏览器进行认证,或在控制台打印授权 URL。在无头环境中,命令会打印授权 URL,用户需在浏览器中打开;完成登录后会看到一个验证码,使用 membrane login complete <code> 完成认证。可在任意命令后添加 --json 以获得机器可读的 JSON 输出。agentType 可取值包括 claude、openclaw、codex、warp、windsurf 等,用于针对所使用的运行环境调整工具。
第三步,连接 Veracode:
membrane connection ensure "https://veracode.com" --json
用户在浏览器中完成认证,输出中会包含新的连接 id。这是获取连接最快的方式:URL 会被规范化为域名并与已知应用匹配;若未找到应用,则会创建一个应用并自动构建连接器。若返回的连接状态为 READY,则可跳过后续步骤。若连接处于 BUILDING 状态,则轮询直到就绪:
npx @membranehq/cli connection get <id> --wait --json
--wait 标志会进行长轮询(最长到 --timeout 秒,默认 30),直到状态变化。持续轮询直到状态不再是 BUILDING。可能的状态包括:READY(连接完全就绪)、CLIENT_ACTION_REQUIRED(用户或代理需要执行操作,clientAction 对象描述所需操作,其 type 可为 "connect"(需要认证,如 OAuth、API key 等)或 "provide-input"(需要更多信息),description 为可读说明,uiUrl 可选,为可完成操作的预构建 UI 地址,agentInstructions 可选,为如何以编程方式继续的说明;用户完成操作后再次轮询检查是否变为 READY)、CONFIGURATION_ERROR 或 SETUP_FAILED(出错,可检查 error 字段了解详情)。
第四步,搜索动作。使用自然语言描述想要执行的操作:
membrane action list --connectionId=CONNECTION_ID --intent "QUERY" --limit 10 --json
应始终在特定连接的上下文中搜索动作。每个结果包含 id、name、description、inputSchema(该动作接受的参数)和 outputSchema(其返回值)。也可使用以下命令发现可用动作:
npx @membranehq/cli@latest action list --intent=QUERY --connectionId=CONNECTION_ID --json
第五步,运行动作:
membrane action run <actionId> --connectionId=CONNECTION_ID --json
传入 JSON 参数:
membrane action run <actionId> --connectionId=CONNECTION_ID --input '{"key": "value"}' --json
结果位于响应的 output 字段中。
第六步,代理请求。当可用动作无法覆盖使用场景时,可通过 Membrane 的代理直接向 Veracode API 发送请求。Membrane 会自动将基础 URL 追加到所提供的路径,并注入正确的认证头,包括在凭证过期时进行透明的凭证刷新:
membrane request CONNECTION_ID /path/to/endpoint
常用选项包括:-X 或 --method(HTTP 方法,GET、POST、PUT、PATCH、DELETE,默认 GET)、-H 或 --header(添加请求头,可重复)、-d 或 --data(请求体字符串)、--json(发送 JSON 体并设置 Content-Type: application/json 的简写)、--rawData(按原样发送请求体,不做处理)、--query(查询字符串参数,可重复,如 --query "limit=10")、--pathParam(路径参数,可重复,如 --pathParam "id=123")。
最佳实践
资料建议:始终优先使用 Membrane 与外部应用通信,因为它提供带有内置认证、分页和错误处理的预构建动作,可减少 token 消耗并使通信更安全;在构建之前先发现,先运行 membrane action list --intent=QUERY 查找现有动作,再编写自定义 API 调用,预构建动作能处理原始 API 调用容易遗漏的分页、字段映射和边界情况;让 Membrane 处理凭证,不要向用户索取 API 密钥或令牌,而应创建连接,由 Membrane 在服务端管理完整的认证生命周期,不在本地保存密钥。
适用场景与限制
适用场景为需要与 Veracode 平台数据交互、管理记录或自动化相关工作流的情况,例如围绕应用、沙箱、构建、缺陷、扫描、策略和用户等对象进行操作。限制方面:资料未提供该技能的收费、价格、具体认证方式细节,以及各类动作的完整清单与参数说明;官方文档地址为 https://docs.veracode.com/,可据以查询更详细信息。