microsoft/skills-for-fabric

onelake-catalog-govern-cli

Governs Microsoft Fabric OneLake catalog health, protection, and trust through Fabric Admin, Core, and Power BI REST APIs.

Quelltext ansehen
Originales Skill-Dokument

Aus dem Quell-Repository gerendert; Überschriften, Beispiele, Code, Tabellen, Links und Bilder bleiben erhalten.

Telemetry — MANDATORY. Every api.fabric.microsoft.com call must carry x-ms-fabric-skill: onelake-catalog-govern-cli (az rest: --headers "x-ms-fabric-skill=onelake-catalog-govern-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

OneLake Catalog Govern — CLI (mode dispatcher)

One skill for the whole OneLake Catalog Govern family. The governance persona detail lives in four mode references loaded on demand. This top-level file exists to do three things and nothing else:

  1. Pick the mode (the table below).
  2. Surface the safety boundary and the irreversible-write gates so they are

never diluted inside a large reference (see Irreversible operations).

  1. Load exactly one mode reference and follow it.

Must/Prefer/Avoid

MUST DO

  • Start with the audit cell for the caller's permission tier before any remediation.
  • Apply the operation-specific confirmation gate in Step 2 before every destructive, irreversible, or broad write.
  • Use the exact Fabric Admin, Core, Power BI, or Graph API surface documented for the selected procedure; do not treat a 401 or 403 as permission to bypass RBAC.
  • State scope, exclusions, pagination completeness, and freshness caveats with every governance statistic.

PREFER

  • Use least-privileged Core or Power BI APIs for data-owner actions instead of requiring tenant-admin rights.
  • Report findings as evidence, consequence, recommended action, priority, and effort rather than returning an inventory dump.
  • Sequence ownership and access-scope fixes before bulk assignment or labeling.

AVOID

  • Do not mutate a tenant from an audit mode.
  • Do not invent write APIs for endorsement, DLP policy, admin item deletion, or third-party item-identity assignment.
  • Do not report asynchronous 202 responses as successful completion.

Step 1 — Pick the mode

Two axes → a 2×2 grid. Tier (which API surface you can reach) × action (audit vs. remediate). Each cell covers all three Govern pillars (health / protect / trust).

Audit (read-only)Remediate (write)
Fabric Admin — /v1/admin/*, Fabric tenant admin onlyadmin-auditadmin-remediate
Data owner / Operational admin — Core API + workspace/domain/capacity admins, no tenant admindataowner-auditdataowner-remediate
ModeLoad this referencePersona / permission tierScopeReadsWrites
admin-auditreferences/admin-audit.mdFabric tenant admin (/v1/admin/*)Whole tenant✅❌
admin-remediatereferences/admin-remediate.mdFabric tenant admin only — every /v1/admin/* write requires the Fabric administrator role; domain & capacity admins do NOT qualifyWhole tenant✅✅
dataowner-auditreferences/dataowner-audit.mdNon-admin workspace or domain owner (Core API only)Workspaces the caller administers (widen to accessible on request)✅❌
dataowner-remediatereferences/dataowner-remediate.mdData owner who is also a domain / workspace / capacity admin — Core & Power BI API writes, no tenant adminObjects the caller has the role on✅✅ (self-service)

Routing rules

  • Start with an audit mode. Never remediate before establishing the current state. Audit → remediate within the same tier unless the caller's rights change.
  • Choose the tier by the API surface the caller can reach, not by job title: a Fabric tenant admin who needs /v1/admin/* → the admin-* cell; a data owner acting through workspace/domain/capacity roles → the dataowner-* cell.
  • "Fix / assign / apply / create / delete" → a remediate cell. Tenant-wide writes (create/delete domain, bulk domain assignment, domain roles, bulk labels, certification) → admin-remediate. Single-workspace assignToDomain or assignToCapacity, applying tags, setting descriptions, refresh, and item identity → dataowner-remediate (these need object-scoped roles, not tenant admin).
  • The read/write split is a safety boundary: an audit mode must not mutate a tenant even if a prompt asks it to. If you are in an audit mode and the user asks for a write, switch to the matching remediate mode explicitly — do not improvise a write.
Tier = API surface, not role title. The admin-* modes call /v1/admin/* and require the Fabric tenant administrator role (Fabric admin / Power Platform admin / M365 global admin) — domain, capacity and workspace admins do NOT qualify, even for their own domain. The dataowner-* modes use the Core/Power BI APIs scoped to roles the caller already holds on specific objects. A domain/WS/capacity admin who is not a Fabric tenant admin therefore lives entirely in the dataowner-* cells; they cross into admin-* only if they are separately granted the Fabric tenant admin role. Roles are scope branches inside a mode; only a different API surface justifies a separate mode.
⚠️ Known Fabric gap — scoped governance has no non-admin API. A domain admin or workspace admin who is not a Fabric tenant admin currently has no API path to their scoped governance posture: /v1/admin/* rejects them (it needs the tenant Fabric admin role — see the Assign Domain Workspaces permission note), and the Core API has no endpoint that lists the workspaces in a domain or returns a domain's governance state. dataowner-audit can only report on workspaces the caller can directly access — not "my whole domain." If a domain/WS admin asks for their scoped govern details, state this limitation up front and do not route them into an admin-* mode that will 401/403.

Step 2 — Irreversible operations — MUST-DO gates (read before any write)

⚠️ Why this lives here and not only in the mode reference. These are terminal, hard-to-undo acts. When such an instruction sits as one line among dozens inside a large reference file, it gets read but silently skipped. It is repeated here, in the auto-loaded dispatcher body, so the gate fires before the write — not after. Full procedures remain in the remediate mode references (admin-remediate.md, dataowner-remediate.md); this is the checklist, not a substitute.

Before executing any of these in either remediate mode, the gate MUST pass. The Mode column shows which cell owns the operation:

Irreversible / terminal actModeGate that MUST fire first
Delete a domain (DELETE /v1/admin/domains/{id})adminCheck for subdomains (parentDomainId) and assigned-workspace counts for the domain and every subdomain. If any workspaces would be orphaned, STOP and get explicit user confirmation naming the affected domains/workspaces. The REST API has no cascade-block — the check is yours. See domain-crud.md § Deleting a Domain.
Delete a tag definitionadminReport how many items carry it first — deletion detaches it everywhere with no undo.
Bulk-assign workspaces to a domainadminCheck each target's current domainId and warn before silently overriding an existing assignment. Dry-run the target list first.
Remove a principal from a domain roleadminConfirm it will not leave the domain ownerless; name the principal being removed.
Bulk sensitivity-label changeadminDry-run: show the exact affected item list and before/after label, get confirmation. No service principal / managed identity — the call will fail.
Write a tenant setting (e.g. enable certification)adminRead the current value and show it, then the proposed value — tenant-wide blast radius.
Assign / unassign one workspace to a domaindataownerA move is a reassignment — confirm the current domainId and name the domain it is leaving. Needs domain-contributor and workspace-Admin; say which is missing on failure.
Reassign item ownership (item identity, preview)dataownerAssigns to the caller only; needs Write on the item and its children. Confirm the intended identity.
Assign a workspace to a capacitydataownerNeeds workspace Admin plus capacity Contributor/Admin. Async 202 — do not report success from the 202 alone; poll to a terminal state.
Do not promise a remediation that has no write API. Endorsement, DLP policies, and item deletion by a tenant admin have no write route. For those, produce a contact list of who can act — see references/admin-remediate/no-write-api-escalation.md § Route a Finding to Someone Who Can Fix It.

Step 3 — Load the reference and proceed

Load only the one mode reference matching Step 1 and follow it end to end. Shared background and every leaf procedure are indexed here so each file is one hop from this dispatcher. References are leaves: after loading one, return to this index when another procedure is needed.

Shared governance references

  • Govern pillars — the three pillars, what "good" looks like, and reporting conventions
  • Governance data sources — verified API field coverage, product blind spots, and reporting conventions
  • Governance roles — permission tiers, domain/workspace roles, and insight refresh lag
  • Catalog concepts — the entity model and API-backed versus conceptual terms
  • ../../common/COMMON-CORE.md — repository-level Fabric REST patterns, auth, and pagination
  • ../../common/COMMON-CLI.md — repository-level CLI implementation (az rest, pagination, auth recipes)

Mode dispatchers

Admin audit procedures

Admin remediation procedures

Data-owner procedures

Examples

text
Audit our tenant's OneLake catalog governance posture and prioritize the findings.
text
Which workspaces I administer are not assigned to a domain?
text
Show a dry run for assigning these workspaces to the Finance domain, including current assignments.
text
Find unlabeled items tenant-wide and explain which remediations require a tenant admin versus a data owner.
aus demselben Repository

Weitere Skills

Alle Skills
microsoft
Offiziell

powerbi-report-cli

Plan, design, author, preview, publish, and manage Power BI reports across requirements, page design, local PBIR/PBIP edits, validation, screenshots, Fabric upload/download, and rebinding. Use for report lifecycle work; use semantic-model-authoring for model or DAX changes and fabriciq for data questions. Triggers: plan Power BI report, design report page, edit PBIR, preview PBIP, publish report, rebind report

Installationen
3
GitHub Stars
1222
Aktualisiert
5. Okt.
microsoft
Offiziell

semantic-model-authoring

Manages Power BI semantic models, including tables, columns, measures, relationships, field parameters, DAX, Import, DirectQuery and Direct Lake designs, sources, connections, permissions, refresh, and deployment. Load this skill before acting on a semantic model, unless it is part of publishing a PBIP project, which powerbi-report-cli owns. For natural-language data questions use fabriciq; for visuals use powerbi-report-cli.

Installationen
3
GitHub Stars
1222
Aktualisiert
5. Okt.
microsoft
Offiziell

dataflows-cli

Manages Fabric Dataflow Gen2 items, including creation, M editing, connections, output destinations, getDefinition and updateDefinition inspection, executeQuery, refresh history, and Gen1-to-Gen2 save-as upgrades via saveAsNativeArtifact. Use for Dataflow items or Power Query M definitions. For pipeline JSON use pipeline-migration; for Spark or Warehouse transformations use their own skills.

Installationen
1
GitHub Stars
1181
Aktualisiert
17. Sept.
microsoft
Offiziell

e2e-fabric-cost-estimation

Estimates Fabric capacity cost before a migration by profiling Spark, SQL, Power BI, and Real-Time workloads, then recommending SKU size and comparing Reserved, Pay-As-You-Go, and Autoscale billing. Use only for capacity sizing and pricing questions, not for general migration or connectivity work.

Installationen
1
GitHub Stars
1181
Aktualisiert
17. Sept.