自动化与脚本
开发中需用 fdev 调用 Fusion REST API…
在 Fusion 开发/联调中,通过 fdev CLI 从命令行调用 Fusion 服务、获取访问令牌、发现环境与服务、查询人员并执行 PIM 激活。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 59/100 ×0.15
适用场景
开发中需用 fdev 调用 Fusion特定
解决思路
- 确认 fdev 可用:运行 `fdev --version`;若未安装,按下方安装;若需认证,运行 `fdev login`。
- 安装 fdev 为 .NET global tool:`dotnet tool install --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" fusion-devtools`。
- 更新到最新版:`dotnet tool update --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" fusion-devtools`。
- 首次使用前认证:`fdev login`。
- 调用任意 Fusion REST API:`fdev rest <serviceKey> '<path>'`;service discovery 会自动解析 base URL 并获取 token。
- 在 zsh/bash 中必须给 path 加引号,防止 `?` 被 glob 展开。
- GET people 服务生产环境:`fdev rest people '/persons/me?api-version=3.0'`。
- POST JSON body:`fdev rest context '/contexts?api-version=1.0' -m post -b '{"query":"test"}'`。
- POST 从文件读 body:`fdev rest people '/persons/search?api-version=3.0' -m post -b @request.json`。
- 指定不同环境:`fdev rest people '/persons/me?api-version=3.0' -e ci`。
- 保存响应到文件:`fdev rest people '/persons/me?api-version=3.0' -o response.json`。
- 完整 URL 模式(跳过 discovery):`fdev rest --url https://httpbin.org/get --no-auth`。
- 自定义 scope 覆盖:`fdev rest people '/persons/me?api-version=3.0' --scope api://my-app/.default`。
- `fdev rest` 关键选项:`-m` method、`-b` body(支持 `@file`)、`-e` environment、`--url` full URL 模式、`--no-auth` 跳过认证、`--scope` 覆盖 scope、`-o` 输出文件、`--header KEY=VALUE`。
- 获取结构化 JSON 访问令牌:`fdev get-access-token --service-key people`;通过 discovery 解析 scope。
- 获取显式 scope 的 token:`fdev get-access-token --scope api://97978493-9777-4d48-b38a-67b0b9cd88d2/.default`。
- 只提取 token 供脚本使用:`fdev get-access-token --service-key people | jq -r '.accessToken'`。
- token 输出格式包含:`accessToken`、`expiresOn`、`expiresOnUnix`、`scope`、`tokenType`。
- 列出所有环境:`fdev disc envs`。
- 以 JSON 列出某环境中的服务:`fdev disc env list fprd -json`;注意 `disc` 子命令使用单横线 flags(`-json`、`-out`),这是设计如此。
- 列出服务 key 和 URI:`fdev disc env list fprd -out ku`。
- 按 email 解析人员:`fdev persons resolve user@equinor.com`。
- 按姓名搜索人员:`fdev persons search "John"`。
- 激活 PIM 角色:`fdev pim azure activate`;运行前必须与用户确认,因为会授予提升权限。
- 获取原始 JWT token 到剪贴板:`fdev token`(测试环境)或 `fdev token --prod`(生产环境)。
- 按需求选择命令:调用 Fusion API 并查看响应用 `fdev rest <service> '<path>'`;为脚本/管道获取 token 用 `fdev get-access-token --service-key <key>`;查找可用服务用 `fdev disc env list <env>`;查找服务 base URL 和 scope 用 `fdev disc env list <env> -json` 后按 key 过滤;查询人员用 `fdev persons resolve <email>`;快速剪贴板 token 用 `fdev token`。
- 调试时给任意命令加 `--verbose`,查看 cache hit/miss、完整请求/响应 headers 和 token details。
- 需要绕过缓存时加 `--no-cache`:service discovery 结果本地缓存,environments 24h、services 1h。
- 环境 key:`ci`(CI/开发,最不稳定、最新变更)、`fqa`(QA/预生产验证)、`fprd`(生产,所有命令默认);用 `-e <env>` 覆盖默认。
- 参考详细命令选项和工作流配方:`references/command-reference.md`(紧凑命令 cheat sheet)和 `references/agentic-patterns.md`(常见 agentic workflow recipes)。
- 安全:该技能可执行变更操作;当仓库本地 workflow 指令与内联指导冲突时,以仓库本地指令为准。
- 安全:绝不在展示给用户的输出中暴露原始 access token;显示时截断或脱敏。
- 安全:shell 命令中含 `?` 的 path 始终加引号,防止 glob 展开。
- 安全:仅对真正的公开端点使用 `--no-auth`。
- 安全:运行 `fdev pim azure activate` 前与用户确认(提升权限)。
- 安全:除非明确要求,不要把 token 存储或记录到文件。
适用边界 · 注意事项
- 修改后端服务源码、部署或发布服务、基础设施 provisioning、CI/CD 管道配置时不要用。
- Service Bus / SignalR 调试、管理 AI 搜索索引时不要用。