
Search Consumption Cli
- 90 installs
- 886 repo stars
- Updated July 23, 2026
- microsoft/skills-for-fabric
search-consumption-cli is an agent skill for finding Fabric items across workspaces using the Catalog Search API.
About
The search-consumption-cli skill discovers Microsoft Fabric items across workspaces using the Catalog Search API when the containing workspace is unknown. It searches by display name, description, or workspace name text with optional OData-style type filters such as Lakehouse, Report, or SemanticModel, returning item and workspace IDs for downstream API calls. Authentication requires Catalog.Read.All scope via az rest with JSON bodies written to temp files to avoid shell quoting issues. Agentic workflow asks for item keywords, runs search, disambiguates multiple matches by presenting name type and workspace, then returns ids for follow-on skills. Pagination uses continuationToken until null with pageSize up to one thousand. MUST rules include disambiguation before assuming a match and avoiding workspace-only searches because the API returns items not workspaces. AVOID guidance covers inventing filter syntax beyond eq, ne, or, and parentheses, and assuming Dataflow Gen1 or Gen2 appear in catalog index yet. Triggers include which workspace has, find item across workspaces, discover items, and search for semantic models or lakehouses tenant-wide.
- Searches Fabric items across workspaces via Catalog Search API.
- Returns item id and hierarchy.workspace.id for downstream CLI skills.
- Supports type filters and empty search to list all items of a type.
- Requires temp-file JSON bodies and Catalog.Read.All authentication.
- Disambiguates multiple matches before returning IDs to other workflows.
Search Consumption Cli by the numbers
- 90 all-time installs (skills.sh)
- Ranked #3,010 of 4,386 Backend & APIs skills by installs in the Skillselion catalog
- Security screen: MEDIUM risk (skills.sh audit)
- Data as of Jul 28, 2026 (Skillselion catalog sync)
search-consumption-cli capabilities & compatibility
- Capabilities
- cross workspace catalog text search · odata style type filtering · continuation token pagination · match disambiguation with workspace context · id extraction for downstream fabric skills
- Works with
- azure
- Use cases
- data analysis · orchestration
What search-consumption-cli says it does
Find and discover Microsoft Fabric items across workspaces when the workspace is unknown.
npx skills add https://github.com/microsoft/skills-for-fabric --skill search-consumption-cliAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 90 |
|---|---|
| repo stars | ★ 886 |
| Security audit | 2 / 3 scanners passed |
| Last updated | July 23, 2026 |
| Repository | microsoft/skills-for-fabric ↗ |
How do I find a Fabric item and its workspace when I only know the name or type?
Find Fabric items across workspaces with Catalog Search API when workspace ID is unknown.
Who is it for?
Fabric users who need cross-workspace item discovery before running other Fabric CLI skills.
Skip if: Skip for workspace-only lookup, Dataflow Gen1 or Gen2 search, or authoring new Fabric items.
When should I use this skill?
User asks which workspace has an item, wants to find items by name, or list items of a type tenant-wide.
What you get
Resolved item and workspace IDs from catalog search with disambiguated matches for downstream API calls.
Files
Update Check — ONCE PER SESSION (mandatory)
The first time this skill is used in a session, run the check-updates skill before proceeding.
- GitHub Copilot CLI / VS Code: invoke thecheck-updatesskill (e.g.,/fabric-skills:check-updates).
- Claude Code / Cowork / Cursor / Windsurf / Codex: read the localpackage.jsonversion, then compare it against the remote version viagit fetch origin main --quiet && git show origin/main:package.json(or the GitHub API). If the remote version is newer, show the changelog and update instructions.
- Skip if the check was already performed earlier in this session.
CRITICAL NOTES
1. 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).2. The search text matches against item display name, description, and workspace name.
3. 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.
- `jq` for extracting IDs from the response — cleaner than JMESPath for nested
hierarchy.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). - 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.jsonThe 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.jsonContinue until continuationToken is null.
---
Agentic Workflow
1. Ask — user provides an item name, type, or description keywords. 2. Search — call Catalog Search with the user's input and optional type filter. 3. Disambiguate — if multiple matches, present results (name, type, workspace) and ask the user to pick. 4. Return — provide the search results, include the item id and hierarchy.workspace.id for 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 tableList 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.jsonSave 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 | Newly created items can take up to 24 hours to appear in search results. Verify the item 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. |
Related skills
FAQ
Can search-consumption-cli find workspaces by name?
No. Catalog Search returns items. Use GET /v1/workspaces to resolve workspace names.
Why are Dataflow items missing from search results?
Dataflow Gen1 and Gen2 are not supported in Catalog Search yet; list workspace items instead.
Is search-consumption-cli safe to install?
Review the Security Audits panel on this page before installing in production.