
search-consumption-cli
Finds Fabric items across every workspace with the Catalog Search API when the workspace is unknown, locating an item by display name, inventorying one item type tenant-wide, and returning the workspace and item IDs later calls need. Dataflow Gen1 and Gen2 items are not supported. Use only to locate items; once found, query them with the owning item skill such as sqldw-cli, spark-cli, eventhouse-cli or fabriciq.
- Installs
- 204
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/microsoft/skills-for-fabric --skill search-consumption-cli- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads search-consumption-cli automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Telemetry — MANDATORY. Every
api.fabric.microsoft.comcall must carryx-ms-fabric-skill: search-consumption-cli(az rest:--headers "x-ms-fabric-skill=search-consumption-cli"), including every LRO poll,fabric_lroand retry. Snippets omit it — add it anyway.
CRITICAL NOTES
- The Catalog Search API finds items, not workspaces. To find a workspace by name, use
GET /v1/workspaces(see COMMON-CLI.md § Resolve Workspace Properties by Name).- The search text matches against item display name, description, and workspace name.
- Dataflow (Gen1) and Dataflow (Gen2) are not supported.
Catalog Search — CLI Skill
Prerequisite Knowledge
- COMMON-CORE.md — Fabric REST API patterns, auth
- COMMON-CLI.md — CLI implementation (az, curl, jq)
Table of Contents
| Task | Reference | Notes |
|---|---|---|
| Search for an Item | SKILL.md § Search for an Item | By name, description, or workspace name |
| List All Items of a Type | SKILL.md § List All Items of a Type | Empty search + type filter |
| Pagination | SKILL.md § Pagination | Continuation token pattern |
| Agentic Workflow | SKILL.md § Agentic Workflow | |
| Examples | SKILL.md § Examples | |
| Gotchas and Troubleshooting | SKILL.md § Gotchas and Troubleshooting |
Must/Prefer/Avoid
MUST DO
- Authenticate first — see COMMON-CORE.md § Authentication & Token Acquisition and COMMON-CLI.md § Authentication Recipes. The Catalog Search API requires
Catalog.Read.Allscope. - Write the JSON body to a temp file — avoids shell quoting issues with filter strings.
- Disambiguate — if multiple results match, present display name, type, and workspace name and ask the user to confirm.
PREFER
- Catalog Search over list-and-filter — single cross-workspace call, no need to resolve workspace first.
- Type filters — narrow results with
"filter": "Type eq 'Lakehouse'"to reduce noise. - Empty search with type filter — to list all items of a type across workspaces.
jqfor extracting IDs from the response — cleaner than JMESPath for nestedhierarchy.workspace.
AVOID
- Searching for workspaces — the Catalog Search API returns items, not workspaces. Use
GET /v1/workspacesinstead (see COMMON-CLI.md § Resolve Workspace Properties by Name). - Querying source data after the workspace/item is known — route to the workload-specific consumption skill (
sqldw-cli,spark-cli,eventhouse-cli, orfabriciq) instead of Catalog Search. - Inventing filter syntax — only
eq,ne,or, and parentheses are supported. - Assuming all item types are supported — Dataflow (Gen1) and Dataflow (Gen2) are not returned yet.
Search for an Item
cat > /tmp/body.json << 'EOF'
{"search": "SalesLakehouse", "filter": "Type eq 'Lakehouse'", "pageSize": 10}
EOF
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json
The search text matches against item display name, description and workspace name. Type filtering is optional. The response includes id, type, displayName, description, and hierarchy.workspace (with id and displayName) for each match.
Extract item and workspace IDs
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json \
--query "value[0].{itemId:id, workspaceId:hierarchy.workspace.id, name:displayName}" \
--output json
Filter Examples
| Goal | Filter |
|---|---|
| Only lakehouses | Type eq 'Lakehouse' |
| Reports or semantic models | Type eq 'Report' or Type eq 'SemanticModel' |
| Exclude notebooks | Type ne 'Notebook' |
For the full list of supported item types, see the Catalog Search API reference.
List All Items of a Type
Use an empty search string with a type filter (pageSize max is 1000):
cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'Lakehouse'", "pageSize": 100}
EOF
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json
Pagination
If the response includes a non-null continuationToken, pass it in the next request:
cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'Lakehouse'", "pageSize": 100, "continuationToken": "<token>"}
EOF
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json
Continue until continuationToken is null.
Agentic Workflow
- Ask — user provides an item name, type, or description keywords.
- Search — call Catalog Search with the user's input and optional type filter.
- Disambiguate — if multiple matches, present results (name, type, workspace) and ask the user to pick.
- Return — provide the search results, include the item
idandhierarchy.workspace.idfor downstream use.
Examples
Find a specific report
cat > /tmp/body.json << 'EOF'
{"search": "Monthly Sales Revenue", "filter": "Type eq 'Report'", "pageSize": 10}
EOF
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json \
--query "value[].{name:displayName, type:type, workspace:hierarchy.workspace.displayName}" \
--output table
List all semantic models across workspaces
cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'SemanticModel'", "pageSize": 1000}
EOF
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json
Save search results to file
cat > /tmp/body.json << 'EOF'
{"search": "", "filter": "Type eq 'Lakehouse'", "pageSize": 1000}
EOF
az rest --method post \
--resource "https://api.fabric.microsoft.com" \
--url "https://api.fabric.microsoft.com/v1/catalog/search" \
--body @/tmp/body.json \
--query "value[].{name:displayName, type:type, workspace:hierarchy.workspace.displayName, id:id}" \
--output json > /tmp/search_results.json
Gotchas and Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
401 Unauthorized | Wrong token audience or expired session | Verify --resource "https://api.fabric.microsoft.com". Run az login. |
InvalidPageSize | pageSize outside 1–1000 | Use a value between 1 and 1000. |
InvalidFilter | Bad filter syntax | Only eq, ne, or, and parentheses. Don't mix eq with and, or ne with or. Don't mix eq and ne in the same filter. |
TypeNotFound | Unrecognized item type in filter | Check spelling (case-sensitive). See API reference for valid types. |
FilterTooManyValues | Filter has more than 500 values | Reduce the number of type values in the filter. |
InvalidRequest | Missing request body | Ensure --body points to a valid JSON file. |
| Empty results for known item | Item type not supported | Dataflow Gen1/Gen2 are excluded. Use GET /v1/workspaces/{id}/items instead. |
| New item not found | Catalog index propagation delay | Indexing lag is variable and not yet near-real-time — usually minutes, but not guaranteed. A just-created item may not appear in search results yet; verify it exists via GET /v1/workspaces/{id}/items instead. |
| Too many results | Search text too broad | Add a type filter or use more specific search text. |
FAQ
What does the search-consumption-cli skill do?
Finds Fabric items across every workspace with the Catalog Search API when the workspace is unknown, locating an item by display name, inventorying one item type tenant-wide, and returning the workspace and item IDs later calls need. Dataflow Gen1 and Gen2 items are not supported. Use only to locate items; once found, query them with the owning item skill such as sqldw-cli, spark-cli, eventhouse-cli or fabriciq.
How do I install search-consumption-cli?
Run npx skills add https://github.com/microsoft/skills-for-fabric --skill search-consumption-cli in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/search-consumption-cli/ (personal) or .claude/skills/search-consumption-cli/ (project).
Which AI agents can use search-consumption-cli?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is search-consumption-cli safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains search-consumption-cli?
It is published by microsoft in microsoft/skills-for-fabric, and it is an official skill from the maker of the technology it covers. It has 204 recorded installs.
More from microsoft/skills-for-fabric
semantic-model-authoring
microsoft/skills-for-fabric
Open the skill to read its SKILL.md instructions.
powerbi-report-authoring
microsoft/skills-for-fabric
Open the skill to read its SKILL.md instructions.
powerbi-report-design
microsoft/skills-for-fabric
Open the skill to read its SKILL.md instructions.
powerbi-report-planning
microsoft/skills-for-fabric
Open the skill to read its SKILL.md instructions.
e2e-medallion-architecture
microsoft/skills-for-fabric
Open the skill to read its SKILL.md instructions.
powerbi-report-management
microsoft/skills-for-fabric
Open the skill to read its SKILL.md instructions.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.