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 the
check-updates skill.
- Claude Code / Cowork / Cursor / Windsurf / Codex: compare local vs remote package.json version.
- Skip if the check was already performed earlier in this session.
CRITICAL NOTES
- To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering
- To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering
- Eventstream ≠ Eventhouse. Eventstream is a real-time event ingestion and routing pipeline. For KQL queries, use
eventhouse-consumption-cli.
Eventstream Consumption — CLI Skill
Table of Contents
| Task |
Reference |
Notes |
| Finding Workspaces and Items in Fabric |
COMMON-CLI.md § Finding Workspaces and Items in Fabric |
Mandatory — READ link first [needed for finding workspace id by its name or item id by its name, item type, and workspace id] |
| Fabric Topology & Key Concepts |
COMMON-CORE.md § Fabric Topology & Key Concepts |
|
| Environment URLs |
COMMON-CORE.md § Environment URLs |
|
| Authentication & Token Acquisition |
COMMON-CORE.md § Authentication & Token Acquisition |
Wrong audience = 401; read before any auth issue |
| Core Control-Plane REST APIs |
COMMON-CORE.md § Core Control-Plane REST APIs |
Includes pagination, LRO polling, and rate-limiting patterns |
| Gotchas, Best Practices & Troubleshooting |
COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting |
|
| Tool Selection Rationale |
COMMON-CLI.md § Tool Selection Rationale |
|
| Authentication Recipes |
COMMON-CLI.md § Authentication Recipes |
az login flows and token acquisition |
Fabric Control-Plane API via az rest |
COMMON-CLI.md § Fabric Control-Plane API via az rest |
Always pass --resource; includes pagination and LRO helpers |
| Gotchas & Troubleshooting (CLI-Specific) |
COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific) |
az rest audience, shell escaping, token expiry |
| Quick Reference |
COMMON-CLI.md § Quick Reference |
az rest template + token audience/tool matrix |
| Listing and Discovering Eventstreams |
EVENTSTREAM-CONSUMPTION-CORE.md § Listing and Discovering Eventstreams |
List, Get, Search across workspaces |
| Inspecting Eventstream Topology |
EVENTSTREAM-CONSUMPTION-CORE.md § Inspecting Eventstream Topology |
Decode base64 definition → trace graph flow |
| Monitoring Eventstream Health |
EVENTSTREAM-CONSUMPTION-CORE.md § Monitoring Eventstream Health |
Retention and throughput checks |
| Source and Destination Status |
EVENTSTREAM-CONSUMPTION-CORE.md § Source and Destination Status |
Validation checklist for sources and destinations |
| Integration with Downstream Analytics |
EVENTSTREAM-CONSUMPTION-CORE.md § Integration with Downstream Analytics |
Eventhouse, Lakehouse, Activator, Real-Time Hub |
| Gotchas and Troubleshooting Reference |
EVENTSTREAM-CONSUMPTION-CORE.md § Gotchas and Troubleshooting Reference |
10 common issues with causes and fixes |
| List Eventstreams |
SKILL.md § List Eventstreams |
|
| Inspect Eventstream Topology |
SKILL.md § Inspect Eventstream Topology |
Decode and explore the graph |
| Validate Eventstream Configuration |
SKILL.md § Validate Eventstream Configuration |
|
| Gotchas, Rules, Troubleshooting |
SKILL.md § Gotchas, Rules, Troubleshooting |
MUST DO / AVOID / PREFER checklists |
List Eventstreams
List All Eventstreams in a Workspace
az rest --method GET \
--url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams" \
--resource "https://api.fabric.microsoft.com"
Returns an array of Eventstream items. Use JMESPath to filter by name:
az rest --method GET \
--url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams" \
--resource "https://api.fabric.microsoft.com" \
--query "value[?displayName=='my-eventstream']"
Get Eventstream Details
az rest --method GET \
--url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams/${EVENTSTREAM_ID}" \
--resource "https://api.fabric.microsoft.com"
Inspect Eventstream Topology
Retrieve the Eventstream definition and decode it to inspect the full graph topology.
Step 1: Get the Definition
az rest --method GET \
--url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams/${EVENTSTREAM_ID}/definition" \
--resource "https://api.fabric.microsoft.com"
Step 2: Decode the Topology
Extract the eventstream.json part's payload field and base64-decode it:
# Using jq + base64 (Linux/macOS)
az rest --method GET \
--url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams/${EVENTSTREAM_ID}/definition" \
--resource "https://api.fabric.microsoft.com" \
| jq -r '.definition.parts[] | select(.path=="eventstream.json") | .payload' \
| base64 -d | jq .
# PowerShell (Windows)
$def = az rest --method GET `
--url "https://api.fabric.microsoft.com/v1/workspaces/$WORKSPACE_ID/eventstreams/$EVENTSTREAM_ID/definition" `
--resource "https://api.fabric.microsoft.com" | ConvertFrom-Json
$payload = ($def.definition.parts | Where-Object { $_.path -eq 'eventstream.json' }).payload
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($payload)) | ConvertFrom-Json | ConvertTo-Json -Depth 10
Step 3: Summarize the Topology
After decoding, count and list each node type:
| Metric |
Path in decoded JSON |
| Sources |
.sources[] | .name, .type |
| Destinations |
.destinations[] | .name, .type |
| Operators |
.operators[] | .name, .type |
| Streams |
.streams[] | .name, .type |
Validate Eventstream Configuration
Check key configuration aspects of a decoded Eventstream topology:
Source Validation Checklist
| Check |
How |
| Source type is API-supported |
Compare against 25 known type enums |
| Cloud connection exists |
Verify dataConnectionId GUID resolves |
| Consumer group set |
Required for Event Hub, IoT Hub, Kafka sources |
| Serialization matches source |
inputSerialization.type = Json, Csv, or Avro |
Destination Validation Checklist
| Check |
How |
| Destination type is valid |
Must be Lakehouse, Eventhouse, Activator, or CustomEndpoint |
| Target item accessible |
Verify workspaceId + itemId resolve via GET |
| Input wired |
inputNodes array must not be empty |
| Eventhouse direct ingestion |
connectionName and mappingRuleName set |
EventstreamProperties Validation
Decode eventstreamProperties.json and check:
retentionTimeInDays is within 1–90
eventThroughputLevel is Low, Medium, or High
Gotchas, Rules, Troubleshooting
MUST DO
- Always pass
--resource https://api.fabric.microsoft.com with az rest calls
- Always use JMESPath filtering to resolve workspace name → ID and item name → ID
- Always base64-decode the definition payload before inspecting topology
- Handle pagination — check for
continuationUri in list responses
- Poll LRO responses — Get Definition may return
202 Accepted
PREFER
- Decode topology JSON into structured output for readable summaries
- Use
jq (bash) or ConvertFrom-Json (PowerShell) for parsing
- Validate configurations before reporting issues to users
- Cross-reference destinations with downstream skills (eventhouse, sqldw, spark)
AVOID
- Do NOT confuse Eventstream with Eventhouse — they are separate Fabric workloads
- Do NOT hardcode workspace or item IDs — always discover them via the API
- Do NOT assume all source types appear in API enums — preview sources exist only in the UI
- Do NOT modify Eventstream topology with this consumption skill — use
eventstream-authoring-cli for writes
- Do NOT attempt to query event data through the Eventstream API — use downstream skills (eventhouse-consumption-cli, sqldw-consumption-cli) for querying landed data
1---2name: eventstream-consumption-cli3description: List, inspect, and monitor Microsoft Fabric Eventstream real-time event ingestion pipelines via the Fabric Items REST API. Discover Eventstreams across workspaces, decode base64-encoded graph topologies to trace event flow from source through operators to destination nodes. Validate source connection IDs, destination wiring, retention policies (1-90 days), and throughput levels. Use when the user wants to: (1) list or search Eventstreams in a workspace, (2) decode and trace graph topology from source to destination, (3) validate source and destination configurations, (4) check retention and throughput settings. Triggers: "list eventstreams", "show eventstream", "inspect eventstream", "explain eventstream", "eventstream health", "monitor eventstream", "describe eventstream", "check eventstream configuration", "eventstream retention".4---56> **Update Check — ONCE PER SESSION (mandatory)**7> The first time this skill is used in a session, run the **check-updates** skill before proceeding.8> - **GitHub Copilot CLI / VS Code**: invoke the `check-updates` skill.9> - **Claude Code / Cowork / Cursor / Windsurf / Codex**: compare local vs remote package.json version.10> - Skip if the check was already performed earlier in this session.1112> **CRITICAL NOTES**13> 1. To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering14> 2. To find the item details (including its ID) from workspace ID, item type, and item name: list all items of that type in that workspace and, then, use JMESPath filtering15> 3. Eventstream ≠ Eventhouse. Eventstream is a real-time event ingestion and routing pipeline. For KQL queries, use `eventhouse-consumption-cli`.1617# Eventstream Consumption — CLI Skill1819## Table of Contents2021| Task | Reference | Notes |22|---|---|---|23| Finding Workspaces and Items in Fabric | [COMMON-CLI.md § Finding Workspaces and Items in Fabric](../../common/COMMON-CLI.md#finding-workspaces-and-items-in-fabric) | **Mandatory** — *READ link first* [needed for finding workspace id by its name or item id by its name, item type, and workspace id] |24| Fabric Topology & Key Concepts | [COMMON-CORE.md § Fabric Topology & Key Concepts](../../common/COMMON-CORE.md#fabric-topology--key-concepts) | |25| Environment URLs | [COMMON-CORE.md § Environment URLs](../../common/COMMON-CORE.md#environment-urls) | |26| Authentication & Token Acquisition | [COMMON-CORE.md § Authentication & Token Acquisition](../../common/COMMON-CORE.md#authentication--token-acquisition) | Wrong audience = 401; read before any auth issue |27| Core Control-Plane REST APIs | [COMMON-CORE.md § Core Control-Plane REST APIs](../../common/COMMON-CORE.md#core-control-plane-rest-apis) | Includes pagination, LRO polling, and rate-limiting patterns |28| Gotchas, Best Practices & Troubleshooting | [COMMON-CORE.md § Gotchas, Best Practices & Troubleshooting](../../common/COMMON-CORE.md#gotchas-best-practices--troubleshooting) | |29| Tool Selection Rationale | [COMMON-CLI.md § Tool Selection Rationale](../../common/COMMON-CLI.md#tool-selection-rationale) | |30| Authentication Recipes | [COMMON-CLI.md § Authentication Recipes](../../common/COMMON-CLI.md#authentication-recipes) | `az login` flows and token acquisition |31| Fabric Control-Plane API via `az rest` | [COMMON-CLI.md § Fabric Control-Plane API via az rest](../../common/COMMON-CLI.md#fabric-control-plane-api-via-az-rest) | **Always pass `--resource`**; includes pagination and LRO helpers |32| Gotchas & Troubleshooting (CLI-Specific) | [COMMON-CLI.md § Gotchas & Troubleshooting (CLI-Specific)](../../common/COMMON-CLI.md#gotchas--troubleshooting-cli-specific) | `az rest` audience, shell escaping, token expiry |33| Quick Reference | [COMMON-CLI.md § Quick Reference](../../common/COMMON-CLI.md#quick-reference) | `az rest` template + token audience/tool matrix |34| Listing and Discovering Eventstreams | [EVENTSTREAM-CONSUMPTION-CORE.md § Listing and Discovering Eventstreams](../../common/EVENTSTREAM-CONSUMPTION-CORE.md#listing-and-discovering-eventstreams) | List, Get, Search across workspaces |35| Inspecting Eventstream Topology | [EVENTSTREAM-CONSUMPTION-CORE.md § Inspecting Eventstream Topology](../../common/EVENTSTREAM-CONSUMPTION-CORE.md#inspecting-eventstream-topology) | Decode base64 definition → trace graph flow |36| Monitoring Eventstream Health | [EVENTSTREAM-CONSUMPTION-CORE.md § Monitoring Eventstream Health](../../common/EVENTSTREAM-CONSUMPTION-CORE.md#monitoring-eventstream-health) | Retention and throughput checks |37| Source and Destination Status | [EVENTSTREAM-CONSUMPTION-CORE.md § Source and Destination Status](../../common/EVENTSTREAM-CONSUMPTION-CORE.md#source-and-destination-status) | Validation checklist for sources and destinations |38| Integration with Downstream Analytics | [EVENTSTREAM-CONSUMPTION-CORE.md § Integration with Downstream Analytics](../../common/EVENTSTREAM-CONSUMPTION-CORE.md#integration-with-downstream-analytics) | Eventhouse, Lakehouse, Activator, Real-Time Hub |39| Gotchas and Troubleshooting Reference | [EVENTSTREAM-CONSUMPTION-CORE.md § Gotchas and Troubleshooting Reference](../../common/EVENTSTREAM-CONSUMPTION-CORE.md#gotchas-and-troubleshooting-reference) | 10 common issues with causes and fixes |40| List Eventstreams | [SKILL.md § List Eventstreams](#list-eventstreams) | |41| Inspect Eventstream Topology | [SKILL.md § Inspect Eventstream Topology](#inspect-eventstream-topology) | Decode and explore the graph |42| Validate Eventstream Configuration | [SKILL.md § Validate Eventstream Configuration](#validate-eventstream-configuration) | |43| Gotchas, Rules, Troubleshooting | [SKILL.md § Gotchas, Rules, Troubleshooting](#gotchas-rules-troubleshooting) | **MUST DO / AVOID / PREFER** checklists |4445---4647## List Eventstreams4849### List All Eventstreams in a Workspace5051```bash52az rest --method GET \53 --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams" \54 --resource "https://api.fabric.microsoft.com"55```5657Returns an array of Eventstream items. Use JMESPath to filter by name:5859```bash60az rest --method GET \61 --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams" \62 --resource "https://api.fabric.microsoft.com" \63 --query "value[?displayName=='my-eventstream']"64```6566### Get Eventstream Details6768```bash69az rest --method GET \70 --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams/${EVENTSTREAM_ID}" \71 --resource "https://api.fabric.microsoft.com"72```7374---7576## Inspect Eventstream Topology7778Retrieve the Eventstream definition and decode it to inspect the full graph topology.7980### Step 1: Get the Definition8182```bash83az rest --method GET \84 --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams/${EVENTSTREAM_ID}/definition" \85 --resource "https://api.fabric.microsoft.com"86```8788### Step 2: Decode the Topology8990Extract the `eventstream.json` part's `payload` field and base64-decode it:9192```bash93# Using jq + base64 (Linux/macOS)94az rest --method GET \95 --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventstreams/${EVENTSTREAM_ID}/definition" \96 --resource "https://api.fabric.microsoft.com" \97 | jq -r '.definition.parts[] | select(.path=="eventstream.json") | .payload' \98 | base64 -d | jq .99```100101```powershell102# PowerShell (Windows)103$def = az rest --method GET `104 --url "https://api.fabric.microsoft.com/v1/workspaces/$WORKSPACE_ID/eventstreams/$EVENTSTREAM_ID/definition" `105 --resource "https://api.fabric.microsoft.com" | ConvertFrom-Json106$payload = ($def.definition.parts | Where-Object { $_.path -eq 'eventstream.json' }).payload107[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($payload)) | ConvertFrom-Json | ConvertTo-Json -Depth 10108```109110### Step 3: Summarize the Topology111112After decoding, count and list each node type:113114| Metric | Path in decoded JSON |115|--------|---------------------|116| Sources | `.sources[] \| .name, .type` |117| Destinations | `.destinations[] \| .name, .type` |118| Operators | `.operators[] \| .name, .type` |119| Streams | `.streams[] \| .name, .type` |120121---122123## Validate Eventstream Configuration124125Check key configuration aspects of a decoded Eventstream topology:126127### Source Validation Checklist128129| Check | How |130|-------|-----|131| Source type is API-supported | Compare against 25 known type enums |132| Cloud connection exists | Verify `dataConnectionId` GUID resolves |133| Consumer group set | Required for Event Hub, IoT Hub, Kafka sources |134| Serialization matches source | `inputSerialization.type` = `Json`, `Csv`, or `Avro` |135136### Destination Validation Checklist137138| Check | How |139|-------|-----|140| Destination type is valid | Must be `Lakehouse`, `Eventhouse`, `Activator`, or `CustomEndpoint` |141| Target item accessible | Verify `workspaceId` + `itemId` resolve via GET |142| Input wired | `inputNodes` array must not be empty |143| Eventhouse direct ingestion | `connectionName` and `mappingRuleName` set |144145### EventstreamProperties Validation146147Decode `eventstreamProperties.json` and check:148- `retentionTimeInDays` is within 1–90149- `eventThroughputLevel` is `Low`, `Medium`, or `High`150151---152153## Gotchas, Rules, Troubleshooting154155### MUST DO156157- **Always pass `--resource https://api.fabric.microsoft.com`** with `az rest` calls158- **Always use JMESPath filtering** to resolve workspace name → ID and item name → ID159- **Always base64-decode** the definition payload before inspecting topology160- **Handle pagination** — check for `continuationUri` in list responses161- **Poll LRO responses** — Get Definition may return `202 Accepted`162163### PREFER164165- Decode topology JSON into structured output for readable summaries166- Use `jq` (bash) or `ConvertFrom-Json` (PowerShell) for parsing167- Validate configurations before reporting issues to users168- Cross-reference destinations with downstream skills (eventhouse, sqldw, spark)169170### AVOID171172- Do NOT confuse Eventstream with Eventhouse — they are separate Fabric workloads173- Do NOT hardcode workspace or item IDs — always discover them via the API174- Do NOT assume all source types appear in API enums — preview sources exist only in the UI175- Do NOT modify Eventstream topology with this consumption skill — use `eventstream-authoring-cli` for writes176- Do NOT attempt to query event data through the Eventstream API — use downstream skills (eventhouse-consumption-cli, sqldw-consumption-cli) for querying landed data