Generated banner for Eventschemaset CLI
Generated logo for Eventschemaset CLI

Eventschemaset CLI

MicrosoftOfficialPublished by Microsoft

  • Skill
  • Tool integration
  • Automation and integrations
  • MIT
  • No issues found

From the author

Governs Event Schema Sets, the Fabric registries of event types and message payload schemas. Covers create, rename, update and delete of a definition, and listing, property reads or base64 decoding. Every Event Schema Set task belongs here. Ingestion pipelines are eventstream-cli.
— the description by Microsoft

AutoGineer summary

Written by AutoGineer from the skill’s own files, not by the author

The eventschemaset-cli skill provides a structured interface for interacting with Fabric Event Schema Sets, which serve as registries for event types and message payload schemas. The skill is divided into two distinct operational modes: authoring for state-changing operations like creation, updates, and deletion, and consumption for read-only tasks such as listing, inspecting properties, and decoding definitions. It emphasizes strict adherence to workspace and item resolution procedures and requires specific telemetry headers for all API interactions.

What it does

  • Creates, renames, updates, and deletes Event Schema Set definitions.
  • Lists and searches for existing Event Schema Sets within a workspace.
  • Inspects item properties and retrieves detailed configuration.
  • Decodes and enumerates event types and message schemas from definitions.
  • Handles long-running operations (LRO) for state-changing requests.
  • Enforces mandatory telemetry headers for all Fabric API calls.

When to use it

  • When you need to programmatically manage the lifecycle of an Event Schema Set.
  • When you need to audit or inspect the current event types and schemas in a registry.
  • When performing administrative tasks on Fabric event registries via the CLI.
  • When you need to verify the configuration of an Event Schema Set before or after updates.

Advantages

  • Provides a clear separation between read-only and write operations to prevent accidental changes.
  • Standardizes the process for resolving workspace and item identifiers.
  • Includes built-in guidance for handling LRO polling and authentication.
  • Ensures consistent telemetry reporting for all Fabric interactions.

Usage examples

“List all Event Schema Sets in my Analytics workspace.”
The agent will use the consumption mode to list all Event Schema Sets within the specified workspace after resolving the workspace ID.
“Create an Event Schema Set called orders-catalog in Analytics.”
The agent will switch to the authoring mode, read the authoring reference, and execute the command to create the new item.
“Decode the definition of orders-catalog and tell me its event types and schemas.”
The agent will use the consumption mode to retrieve and decode the definition, then summarize the contained event types and schemas.
“Delete the orders-catalog-old Event Schema Set from Analytics.”
The agent will switch to the authoring mode, confirm the target item, and execute the deletion command.

Install

  1. Download the skill as a ZIP:

    https://autogineer.com/agent-skills/microsoft/eventschemaset-cli/download
  2. Unzip it into the cross-client skills folder of your project:

    mkdir -p .agents/skills && unzip eventschemaset-cli.zip -d .agents/skills

Documentation by Microsoft

Telemetry — MANDATORY. Every api.fabric.microsoft.com call must carry x-ms-fabric-skill: eventschemaset-cli (az rest: --headers "x-ms-fabric-skill=eventschemaset-cli"), including every LRO poll, fabric_lro and retry. Snippets omit it — add it anyway.

CRITICAL NOTES

  1. To find the workspace details (including its ID) from workspace name: list all workspaces and, then, use JMESPath filtering

  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 filtering

  3. Skill disambiguation: use eventschemaset-cli for the EventSchemaSet catalog item (event types and message schemas). Eventstream is a different item -- a real-time ingestion and routing pipeline; use eventstream-cli for it. Eventhouse / KQL Database is another different item; use eventhouse-cli for it.

Fabric Event Schema Set -- CLI Skill

This one skill owns Fabric Event Schema Sets: authoring the catalog (create, rename, override definition, delete) plus read-only inspection and decoding of its eventTypes and schemas.

Preview: The Fabric EventSchemaSet item and its REST operations are currently in Preview -- behavior, response shapes, and availability may change. Every operation is documented as delegated (user) identity only (service principals and managed identities listed as not supported), but because the item is in Preview, SP/MI access can succeed and is tenant-dependent. Prefer az login as a user; on 401/403 with an SP/MI, fall back to a delegated user identity.

It is a mode dispatcher and contains NO procedures. Pick the mode that matches the request from the table below, then read the matching references/<mode>.md file end to end with your file-reading tool BEFORE issuing a single command. That file holds the endpoints, payload shapes, templates and gotchas; acting without it produces wrong payloads and wrong results.

Mode selection

ModeUse when the request ...Example triggersRead this first
authoringcreates, renames/re-describes, overrides the definition of, or deletes an Event Schema Set (Create, Update, UpdateDefinition, Delete)create event schema set, update event schema set definition, add event type to an event schema set, rename event schema set, delete event schema setreferences/authoring.md
consumptionlists or searches Event Schema Sets, inspects item properties, or decodes a definition to enumerate its eventTypes and schemaslist event schema sets, inspect event schema set, decode event schema set definition, get schema version, list business eventsreferences/consumption.md
Mode boundary rule

consumption may only issue read-only calls (List, Get, GetDefinition). Any state-changing operation (Create, Update, UpdateDefinition, Delete) requires the authoring mode: say so, read references/authoring.md, then proceed.

If a request genuinely spans modes (e.g. decode the current definition, then override it), handle them one at a time and read each reference before you start that part. If the mode is ambiguous after reading this table, ask one short clarifying question instead of guessing.

Terminal write -- the step you must not skip

Reading the reference and planning the change is NOT completing the task. The authoring mode ends with one state-changing call. If you did not issue it, nothing was persisted -- say so explicitly rather than reporting success.

ModeTerminal write
authoringThe POST .../eventSchemaSets, PATCH .../eventSchemaSets/{id}, POST .../eventSchemaSets/{id}/updateDefinition, or DELETE .../eventSchemaSets/{id} for the requested change. Composing the request body and showing it to the user is not executing it.
consumptionnone -- this mode is read-only

Create and UpdateDefinition may return 202 Accepted (LRO): capture the Location header and poll until Succeeded before reporting success. Where the reference documents a readback, read the artefact back to prove the change landed.

Shared essentials (all modes)

Resolve the workspace and item first; every mode depends on it.

TaskReferenceNotes
Finding Workspaces and Items in FabricCOMMON-CLI.mdMandatory -- read before resolving any workspace or item id
Fabric Topology & Key ConceptsCOMMON-CORE.mdItem types, workspaces, capacities
Environment URLsCOMMON-CORE.mdSovereign / non-public cloud hosts
Authentication & Token AcquisitionCOMMON-CORE.mdWrong audience = 401; read before any auth issue
Authentication RecipesCOMMON-CLI.mdaz login flows and token acquisition
Core Control-Plane REST APIsCOMMON-CORE.mdPagination, LRO polling, rate limiting
Gotchas & TroubleshootingCOMMON-CLI.mdaz rest audience, shell escaping, token expiry

Rules

MUST
  • Select exactly one mode from the table above before doing anything else.

  • Read references/<mode>.md end to end, as your FIRST tool call, before the first command of that mode. Read it ONCE, in a single full read: do not re-open it, do not grep it again, and do not page through it. You already have it.

  • Apply the same read-once discipline to every other file you load, including shared common/*.md files: open only the ones you actually need, read each ONCE end to end, and never grep or re-open one you already loaded.

  • Resolve workspace and item ids by listing and filtering, never by guessing a GUID.

  • Announce a mode switch explicitly when the request crosses a boundary.

  • Confirm destructive and overwrite actions before executing -- Delete is permanent (with ?hardDelete=true) and UpdateDefinition replaces the whole definition. When the request already names the target item AND the destructive/overwrite action explicitly (e.g. "delete the Event Schema Set X", "override X's definition to ..."), that instruction IS the confirmation: echo the resolved displayName + id for the audit trail, then proceed with the single write. Pause for a separate yes/no confirmation ONLY when the target or intent is ambiguous (e.g. "clean up my workspace", an unqualified "the first one", or a bulk/wildcard delete).

  • Treat the reference as instructions, never as the deliverable. After reading it, RUN the documented commands against the live workspace and report the real results.

PREFER
  • The narrowest mode that satisfies the request.

  • Reading exactly ONE mode reference. Load a second only when the request genuinely spans modes, and say so before you do.

  • A delegated user identity (az login); fall back from SP/MI to a user on 401/403.

  • Reporting the mode you chose in your first response so the user can correct you.

AVOID
  • Acting from this dispatcher alone -- it intentionally omits the operational detail.

  • Answering with a summary of the reference instead of executing it.

  • Re-reading or re-grepping a reference you already loaded; it costs turns and tokens.

  • Mutating anything while in the read-only consumption mode.

  • Confusing EventSchemaSet with Eventstream or Eventhouse (see CRITICAL NOTES 3).

Examples

User requestModeReference to read
"List all Event Schema Sets in my Analytics workspace."consumptionreferences/consumption.md
"Create an Event Schema Set called orders-catalog in Analytics."authoringreferences/authoring.md
"Decode the definition of orders-catalog and tell me its event types and schemas."consumptionreferences/consumption.md
"Add a BusinessEventType event OrderPlaced (JSON) to orders-catalog."authoringreferences/authoring.md
"Delete the orders-catalog-old Event Schema Set from Analytics."authoringreferences/authoring.md

Files

references/consumption.md

<!-- Mode reference for the `eventschemaset-cli` skill. Loaded on demand from `skills/eventschemaset-cli/SKILL.md` when the request matches the `consumption` mode. -->

SCOPE BOUNDARY — READ-ONLY (mandatory) This mode may only issue read-only calls (List, Get, GetDefinition). Do not create, update, override, or delete an Event Schema Set, event type, or schema. If the user asks for a write, state plainly that this mode is read-only, then announce the mode switch and read authoring.md before the first management call.

eventschemaset-cli consumption mode — Read-Only Event Schema Set Inspection via CLI

Preview: The Fabric EventSchemaSet item and its REST operations (List, Get, GetDefinition) are currently in Preview — behavior, response shapes, and availability may change.

Identity (all operations): Microsoft Learn documents every Event Schema Set REST operation (List, Get, GetDefinition) as supporting delegated (user) identity only — with service principals and managed identities listed as not supported. In practice, because the item is in Preview, service-principal / managed-identity access can succeed and is tenant-dependent. Prefer signing in as a user with az login (not --service-principal, and not a managed-identity context). If you must use a service principal or managed identity and a call fails with 401/403, fall back to a delegated user identity.

Table of Contents

TaskReferenceNotes
Finding Workspaces and Items in FabricCOMMON-CLI.md § Finding Workspaces and Items in FabricMandatory — 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 ConceptsCOMMON-CORE.md § Fabric Topology & Key Concepts
Environment URLsCOMMON-CORE.md § Environment URLs
Authentication & Token AcquisitionCOMMON-CORE.md § Authentication & Token AcquisitionWrong audience = 401; read before any auth issue
Core Control-Plane REST APIsCOMMON-CORE.md § Core Control-Plane REST APIsIncludes pagination, LRO polling, and rate-limiting patterns
Gotchas, Best Practices & TroubleshootingCOMMON-CORE.md § Gotchas, Best Practices & Troubleshooting
Tool Selection RationaleCOMMON-CLI.md § Tool Selection Rationale
Authentication RecipesCOMMON-CLI.md § Authentication Recipesaz login flows and token acquisition
Fabric Control-Plane API via az restCOMMON-CLI.md § Fabric Control-Plane API via az restAlways 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 ReferenceCOMMON-CLI.md § Quick Referenceaz rest template + token audience/tool matrix
List Event Schema SetsList Event Schema Sets
Get Event Schema Set (Properties)Get Event Schema Set (Properties)
Get Event Schema Set DefinitionGet Event Schema Set DefinitionDecode base64 definition → summarize eventTypes & schemas
Validate Event Schema Set ConfigurationValidate Event Schema Set Configuration
Must / Prefer / AvoidMust / Prefer / AvoidMUST DO / AVOID / PREFER checklists
ExamplesExamplesPrompt → command-flow pairs (list, inspect, decode definition, get schema version, list business events)
Agent Integration NotesAgent Integration Notes

Tool Stack

ToolPurpose
az cliREST calls via az rest; Fabric control-plane discovery
jqJSON processing and output formatting
curlRequired for fabric_lro when polling 202 Accepted long-running operations (captures the Location header)

See COMMON-CLI.md for installation and authentication setup.


List Event Schema Sets

List All Event Schema Sets in a Workspace
az rest --method GET \
  --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventSchemaSets" \
  --resource "https://api.fabric.microsoft.com"

Returns a JSON object with a value array of items. Use JMESPath to filter by the Event Schema Set's display name (set ITEM_NAME to the name you are looking for — not the eventSchemaSets collection segment from the URL):

ITEM_NAME="my-event-schema-set"
az rest --method GET \
  --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventSchemaSets" \
  --resource "https://api.fabric.microsoft.com" \
  --query "value[?displayName=='${ITEM_NAME}']"
Get Event Schema Set (Properties)

Return the properties of a single Event Schema Set with the Get Event Schema Set operation (read-only, scope Item.Read.All or Item.ReadWrite.All):

az rest --method GET \
  --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}" \
  --resource "https://api.fabric.microsoft.com"

The response returns the item metadata:

FieldDescription
idItem ID (GUID)
displayNameItem display name
descriptionItem description
typeAlways EventSchemaSet
workspaceIdOwning workspace ID
folderIdFolder ID (if the item is in a folder)
properties.oneLakeRootPathOneLake path to the Event Schema Set root directory
sensitivityLabel.idApplied sensitivity label ID (if any)
tagsList of applied tags (id, displayName)

When reporting to the user, summarize the display name, description, properties.oneLakeRootPath, and sensitivity label. To read the schema contents (eventTypes / schemas), use Get Event Schema Set Definition below.


Get Event Schema Set Definition

Retrieve the full definition of a selected Event Schema Set with the Get Event Schema Set Definition operation. The definition contains a schema part (named EventSchemaSetDefinition.json per the definition article; the API may return a versioned name such as EventSchemaSetV1.json) plus a .platform metadata part. The schema part's payload is base64-encoded JSON describing the item's eventTypes and schemas.

Spec: EventSchemaSet definition

Scope: getDefinition requires Item.ReadWrite.All (read + write workspace permissions), even though it only reads the definition. (List and Get require read permissions.)

Identity: Microsoft Learn documents getDefinition (like List and Get) as supporting delegated (user) identity only, with service principals and managed identities not supported. In practice this is Preview behavior and service-principal / managed-identity access can succeed depending on the tenant (see the top-level Identity note). Prefer a delegated user; on 401/403 with an SP/MI, fall back to az login.

Step 1: Retrieve the Definition

getDefinition is a POST (not GET) on the Event Schema Set endpoint. It supports an optional ?format={format} query parameter. Always send an explicit empty JSON body (--body '{}') — a POST without a body can return 411 Length Required.

The examples below assume the common synchronous 200 OK response, whose body is the definition. getDefinition may instead return a 202 Accepted long-running operation with an empty body — the definition is not in the 202 response, so piping it straight into jq yields nothing. Handle the async path explicitly (see If getDefinition returns 202 Accepted below).

az rest --method POST \
  --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}/getDefinition" \
  --resource "https://api.fabric.microsoft.com" \
  --body '{}'
Step 2: Decode the Definition Part

Extract the schema part (everything except .platform) and base64-decode its payload:

# Using jq + base64 (Linux; on macOS use base64 -D instead of -d)
az rest --method POST \
  --url "https://api.fabric.microsoft.com/v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}/getDefinition" \
  --resource "https://api.fabric.microsoft.com" \
  --body '{}' \
  | jq -r '.definition.parts[] | select(.path != ".platform") | .payload' \
  | base64 -d | jq .
# PowerShell (Windows)
$def = az rest --method POST `
  --url "https://api.fabric.microsoft.com/v1/workspaces/$WORKSPACE_ID/eventSchemaSets/$ITEM_ID/getDefinition" `
  --resource "https://api.fabric.microsoft.com" `
  --body '{}' | ConvertFrom-Json
$payload = ($def.definition.parts | Where-Object { $_.path -ne '.platform' }).payload
[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($payload)) | ConvertFrom-Json | ConvertTo-Json -Depth 10
If getDefinition returns 202 Accepted (async)

az rest surfaces only the response body, not headers, so on a 202 the operation URL in the Location header is not visible to az rest alone. This is the standard Fabric long-running-operation (LRO) pattern: capture Location, poll until Succeeded (honouring Retry-After), then GET the operation result and decode its parts as shown above. Use the reusable fabric_lro helper — see COMMON-CLI.md § Long-Running Operations — rather than hand-rolling token capture and the poll loop here.

On a synchronous 200 OK, skip this and decode the POST response directly as shown above.

Step 3: Summarize the Definition

The decoded schema part has two top-level collections (both optional):

FieldTypeDescription
eventTypesEventType[]Event metadata used to communicate between source, Eventstream, and destination items
schemasSchema[]Formats used to represent the messages stored in the catalog

Each EventType exposes: id (required), description, eventTypeCategory (EventType or BusinessEventType), format (required), envelopeMetadata, schemaUrl, schemaFormat, schema, protocol, and protocolOptions. schemaUrl and schema are mutually exclusive.

Each Schema exposes: id (required), description, format (required), and versions (the iterations of that schema, each carrying its own format).

format means different things on either side: eventTypes[].format is the envelope format (CloudEvents/1.0), while eventTypes[].schemaFormat, schemas[].format and each schemas[].versions[].format are payload-schema formats (JsonSchema/draft-07, Avro/1.12.0). Report them as they are stored — a bare Json is not a value the service accepts.

When reporting to the user, enumerate the event types (id, category, format, and whether they carry an inline schema or a schemaUrl) and the schemas (id, format, and version count).


Validate Event Schema Set Configuration

After decoding the definition (see Get Event Schema Set Definition), use the parsed structure to answer read-only validation questions about how the Event Schema Set is configured. This is inspection only — it never mutates the item.

  • Inline schema vs schemaUrl per event type — schema (an embedded schema document) and schemaUrl (a pointer to an externally hosted schema) are mutually exclusive on each event type. Report, per eventType, which one it carries. Both are optional, so an event type with neither is valid (report it neutrally); only an event type carrying both is invalid.

  • Schema formats and versions — for each entry under schemas, report its format (e.g. JsonSchema) and the number of versions. Use this to confirm the catalog uses a consistent format and to spot schemas with zero or unexpectedly many versions.

  • Category mix — summarize the eventTypeCategory distribution (EventType vs BusinessEventType) so the user can confirm the catalog matches its intended purpose.

# Given the decoded definition JSON in $DEF (see Get Event Schema Set Definition),
# list each event type and whether it uses an inline schema or a schemaUrl:
echo "$DEF" | jq -r '(.eventTypes // [])[]
  | "\(.id): \(.eventTypeCategory) [\(.format)] -> "
    + (if (.schema != null and .schemaUrl != null) then "BOTH schema and schemaUrl (invalid)" elif .schema != null then "inline schema" elif .schemaUrl != null then "schemaUrl=\(.schemaUrl)" else "no inline schema or schemaUrl" end)'

# Summarize schema formats and version counts:
echo "$DEF" | jq -r '(.schemas // [])[] | "\(.id): \(.format), \(.versions | length) version(s)"'

Report the findings as a short per-event-type summary plus a schema-format/version rollup. If the workspace contains no Event Schema Set, report that none were found (this is not an error).


Must / Prefer / Avoid

Must
  • Refuse the write, but still serve any read-only part of the request — if the user asks to create, add, update, modify, rename, or delete an Event Schema Set or an event type/schema, state plainly that this skill is read-only (consumption-only) and cannot perform writes, then direct them to the authoring mode. For a request that is only a write, refuse up front: do NOT list or inspect items first, and do NOT proceed even if the target does not exist. For a mixed request that also asks for something read-only ("inspect X, and also delete it"), complete the read-only part and refuse only the mutation — leaving the item unchanged.

  • 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

  • Handle pagination — check for continuationUri/continuationToken in list responses

  • Poll LRO responses — long-running calls may return 202 Accepted

Prefer
  • Use jq (bash) or ConvertFrom-Json (PowerShell) for parsing

  • Decode/structure output into readable summaries before reporting to the user

Avoid
  • Do NOT hardcode workspace or item IDs — always discover them via the API

  • Do NOT modify the event schema set nor event schema with this consumption skill — use the authoring mode for writes


Examples

Example 1 — List Event Schema Sets in a workspace

Prompt: "List all Event Schema Sets in my Analytics workspace."

Flow:

  1. Resolve the workspace name → ID via GET /v1/workspaces + JMESPath (see the Table of Contents' Finding Workspaces and Items in Fabric reference).

  2. GET /v1/workspaces/${WORKSPACE_ID}/eventSchemaSets.

  3. Report each item's displayName and id (handle pagination via continuationToken).

Example 2 — Inspect an Event Schema Set's properties

Prompt: "Show the OneLake path and sensitivity label of the orders-catalog Event Schema Set in Analytics."

Flow:

  1. Resolve workspace ID, then resolve the item ID by filtering the list on displayName=='orders-catalog'.

  2. GET /v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}.

  3. Summarize displayName, description, properties.oneLakeRootPath, and sensitivityLabel.id.

Example 3 — Decode a definition and summarize event types & schemas

Prompt: "Decode the definition of the orders-catalog Event Schema Set and tell me its event types and schemas."

Flow:

  1. Resolve workspace ID and item ID (as above).

  2. POST /v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}/getDefinition (send an empty {} body; poll the Location header if it returns 202).

  3. Select the schema part (.path != ".platform"), base64-decode its payload, and parse the JSON.

  4. Enumerate eventTypes (id, category, format, inline schema vs schemaUrl) and schemas (id, format, version count).

Example 4 — Get a specific version of a schema

Prompt: "Get version v2 of schema BicycleSchema in the orders-catalog Event Schema Set in Analytics."

The user supplies the Event Schema Set name, a schema id, and a version id. Each version is an object with a required, stable string id (e.g. v1, v2) — select the version by that id, not by array position.

Flow:

  1. Resolve the workspace ID, then resolve the Event Schema Set item ID by filtering the list on displayName. If no item matches, report that the Event Schema Set was not found and stop.

  2. POST /v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}/getDefinition (send an empty {} body; poll the Location header if it returns 202), select the schema part (.path != ".platform"), base64-decode its payload, and parse the JSON.

  3. Find the entry in schemas whose id equals the requested schema id (use null-safe access — schemas may be absent). If no schema matches, report the requested id was not found, list the available schema ids, and stop.

  4. In that schema's versions array (null-safe), find the version whose id matches the requested version id — e.g. (.versions // [])[] | select(.id == $versionId). If no version has that id, do not silently pick another. Tell the user the requested version id was not found, list the available version ids, and ask whether they want:

    • the latest version (the last entry, (.versions // [])[-1]),

    • a different version id they specify, or

    • to abort. Proceed only once the user chooses (and re-validate their new choice). If the schema has no versions at all, report that and stop.

  5. Report the selected version's id, format, and schema document. This is read-only — never mutate the item.

Example 5 — List business events (vs regular events)

Prompt: "List all business events in the orders-catalog Event Schema Set in Analytics."

Business events are not a separate collection — they are eventTypes entries whose eventTypeCategory is BusinessEventType. Regular events are those with eventTypeCategory set to EventType or the field absent (it is optional).

Flow:

  1. Resolve the workspace ID and the Event Schema Set item ID (as above).

  2. POST /v1/workspaces/${WORKSPACE_ID}/eventSchemaSets/${ITEM_ID}/getDefinition (send an empty {} body; poll the Location header if it returns 202), select the schema part (.path != ".platform"), base64-decode its payload, and parse the JSON into $DEF.

  3. Filter the eventTypes array by category (use null-safe access — eventTypes may be absent):

    • Business events: echo "$DEF" | jq -r '(.eventTypes // [])[] | select(.eventTypeCategory == "BusinessEventType") | .id'

    • Regular events (symmetric): replace the predicate with select((.eventTypeCategory // "EventType") != "BusinessEventType").

  4. Report each matching event's id, format, and whether it carries an inline schema or a schemaUrl. If none match, report that the schema set has no business events (this is not an error). Read-only — never mutate the item.


Agent Integration Notes

  • This skill is read-only — it does not create, alter, or delete items.

  • For authoring operations, use the authoring mode.

  • For cross-workload orchestration, delegate to the FabricDataEngineer agent.

Requirements and compatibility

Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta

“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.

Security

No issues found by our static scan· No issues found

A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.

Attribution and licence

Published by
Microsoft
Publisher
Microsoft (Official)
Source
microsoft/skills-for-fabric · skills/eventschemaset-cli · commit f8fac11
Licence
MIT License (redistribution allowed)
  • LICENSE (added by AutoGineer from LICENSE)
  • ATTRIBUTION.md (written by AutoGineer)
Synced
Also distributed in
microsoft/skills-for-fabric

AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.

Download ZIP

The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download eventschemaset-cli.zip