Fusion Devtools

equinor/fusion-skills/skills/fusion-devtools

作者 equinore8fd6cfaf8edMIT2 个星标收录于 2026年10月8日更新于 2026年10月8日仓库今天更新

Use Fusion DevTools CLI (fdev) for API testing, token acquisition, service discovery, and person lookup during development. USE FOR: calling Fusion REST APIs, getting access tokens as JSON, discovering services and environments, resolving persons, PIM role activation. DO NOT USE FOR: modifying backend service code, deploying services, infrastructure changes, CI/CD pipeline configuration, or Service Bus operations.

AI 生成的概览

指导使用 Fusion DevTools 命令行工具(fdev)调用 Fusion REST API、获取令牌、发现服务以及查询人员。

功能
该技能说明开发过程中如何使用 Fusion DevTools 命令行工具(fdev)。内容包括:通过服务发现和自动认证调用 Fusion REST API、以 JSON 形式获取访问令牌、列出环境和可用服务、按邮箱或姓名解析人员、激活 PIM 角色,以及使用详细输出或跳过缓存进行调试。它还列出安全规则,例如对令牌进行脱敏,以及在提权前先与用户确认。
适用场景
当智能体需要调用 Fusion 平台 API、为 HTTP 请求获取持有者令牌、查找服务键对应的 URL,或为测试数据查询人员身份时使用。它不适用于修改后端服务代码、部署服务、配置基础设施或处理 Service Bus。
运行要求
需要从 Fusion 公共 NuGet 源安装为 .NET 全局工具的 fdev 命令行工具,通过 fdev login 完成 Azure AD 登录,并能访问 Fusion 服务的网络。该技能不包含脚本,仅为说明文档。

Fusion DevTools

When to use

Use when you need to interact with Fusion platform services from the command line — calling APIs, getting tokens, discovering services, or looking up persons.

Typical triggers:

  • "Call the People API"
  • "Get a token for the context service"
  • "Which services are available in production?"
  • "Test this endpoint"
  • "Resolve this person's Azure ID"
  • "What's the base URL for the org service?"
  • "Get me an access token I can pipe to jq"

Implicit triggers:

  • Agent needs to verify an API contract or response shape
  • Agent needs a bearer token for an HTTP request
  • Agent needs to find which service key maps to a URL
  • Agent needs to look up a person's identity for test data

When not to use

  • Modifying backend service source code — use the service repo directly
  • Deploying or publishing services — use CI/CD pipelines
  • Infrastructure provisioning — use Terraform/Bicep
  • Service Bus / SignalR debugging — use Azure portal or dedicated tooling
  • Managing AI search indexes — separate ops concern

Prerequisites

Install fdev as a .NET global tool:

bash
dotnet tool install --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" fusion-devtools

Update to latest:

bash
dotnet tool update --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" fusion-devtools

Authenticate before first use:

bash
fdev login

Core workflows

1 — Call a Fusion REST API

Use fdev rest to call any Fusion service. Service discovery resolves the base URL and acquires a token automatically.

bash
fdev rest <serviceKey> '<path>'

The path must be quoted in zsh/bash to prevent ? glob expansion.

Examples:

bash
# GET from people service (production)fdev rest people '/persons/me?api-version=3.0'
# POST with JSON bodyfdev rest context '/contexts?api-version=1.0' -m post -b '{"query":"test"}'
# POST with body from filefdev rest people '/persons/search?api-version=3.0' -m post -b @request.json
# Different environmentfdev rest people '/persons/me?api-version=3.0' -e ci
# Save response to filefdev rest people '/persons/me?api-version=3.0' -o response.json
# Full URL mode (skip discovery)fdev rest --url https://httpbin.org/get --no-auth
# Custom scope overridefdev rest people '/persons/me?api-version=3.0' --scope api://my-app/.default

Key options: -m method, -b body (@file supported), -e environment, --url full URL mode, --no-auth skip auth, --scope override scope, -o output file, --header KEY=VALUE.

2 — Get an access token

Use fdev get-access-token for structured JSON token output, similar to az account get-access-token. Output is pipe-friendly.

bash
# Token for a specific service (resolves scope via discovery)fdev get-access-token --service-key people
# Token with explicit scopefdev get-access-token --scope api://97978493-9777-4d48-b38a-67b0b9cd88d2/.default
# Extract just the tokenfdev get-access-token --service-key people | jq -r '.accessToken'

Output format:

json
{  "accessToken": "eyJ...",  "expiresOn": "2026-05-15T12:00:00+00:00",  "expiresOnUnix": 1778846400,  "scope": "api://app-id/.default",  "tokenType": "Bearer"}

3 — Discover services and environments

bash
# List all environmentsfdev disc envs
# List services in an environment (JSON output)# Note: disc subcommand uses single-dash flags (-json, -out) — this is by designfdev disc env list fprd -json
# List services showing key and URIfdev disc env list fprd -out ku

4 — Look up a person

bash
# Resolve by emailfdev persons resolve [email protected]
# Search by namefdev persons search "John"

5 — Activate PIM role

Elevate Azure access when needed for admin operations:

bash
fdev pim azure activate

Safety: always confirm with the user before running PIM activation — this grants elevated access.

6 — Get a raw JWT token (clipboard)

For quick clipboard-based token workflows (existing command):

bash
fdev token          # test environment tokenfdev token --prod   # production token

Instructions

Step 1 — Confirm fdev is available

Before using any fdev command, verify it is installed:

bash
fdev --version

If not installed, show the install command from Prerequisites. If authentication is needed, run fdev login.

Step 2 — Choose the right command

NeedCommand
Call a Fusion API and see the responsefdev rest <service> '<path>'
Get a token for scripting/pipingfdev get-access-token --service-key <key>
Find available servicesfdev disc env list <env>
Find service base URL and scopefdev disc env list <env> -json then filter by key
Look up a personfdev persons resolve <email>
Quick clipboard tokenfdev token

Step 3 — Use verbose mode for debugging

Add --verbose to any command for diagnostic output including cache hit/miss, full request/response headers, and token details.

bash
fdev rest people '/persons/me?api-version=3.0' --verbose

Step 4 — Bypass cache when needed

Service discovery results are cached locally (environments: 24h, services: 1h). Use --no-cache to force fresh lookups:

bash
fdev rest people '/persons/me?api-version=3.0' --no-cache

Environments

KeyPurposeNotes
ciContinuous integration / developmentLeast stable, latest changes
fqaQuality assurancePre-production validation
fprdProductionDefault environment

Default environment is fprd for all commands. Override with -e <env>.

Reference guides

See references/ for detailed command options and workflow recipes:

  • command-reference.md — compact command cheat sheet with all options
  • agentic-patterns.md — common agentic workflow recipes

Safety

  • This skill is mutation-capable. Repository-local workflow instructions take precedence over inline guidance when they conflict.
  • Never expose raw access tokens in output shown to users — truncate or redact when displaying
  • Always quote paths containing ? in shell commands to prevent glob expansion
  • Use --no-auth only for genuinely public endpoints
  • Confirm with the user before running fdev pim azure activate (elevated access)
  • Do not store or log tokens to files unless explicitly requested

来源与署名

来源:equinor/fusion-skills位于skills/fusion-devtools提交e8fd6cf

许可证: MIT

内容归原作者所有。SourceWeft 从公开仓库中收录这些内容。

举报或申请下架