Skip to content

Feat(fabric-cli): document fab find, reframe DataHub V2 as governance complement#23

Merged
data-goblin merged 3 commits into
releases/26.20from
feat/fabric-cli-updates
May 12, 2026
Merged

Feat(fabric-cli): document fab find, reframe DataHub V2 as governance complement#23
data-goblin merged 3 commits into
releases/26.20from
feat/fabric-cli-updates

Conversation

@data-goblin
Copy link
Copy Markdown
Owner

Summary

Updates the fabric-cli skill for fab CLI >= 1.6.1.

  • Documents fab find (added in 1.6.1) as the primary cross-workspace search. Substring on name/description/workspace, -P type=X filter, -P type!=X exclude, -l for ids, -q '<jmespath>' for client-side filter/projection.
  • Reframes scripts/search_across_workspaces.py as a governance complement, not a default search tool. The DataHub V2 API is undocumented internal surface area; the script is justified only by fields fab find does not return (last visit, last refresh, last modified, owner, storage mode, capacity SKU, naturalLanguageSupported, cachedModelEnabled, isDiscoverable).
  • Surfaces those unique fields first in the script's table, JSON, and detailed output so the value-add is visible.
  • Adds references/whats-new.md covering 1.4, 1.5, 1.6.1: interactive REPL, fab deploy + fabric-cicd, --format on export, new item types (Map, DigitalTwinBuilder, CosmosDBDatabase, UserDataFunction, GraphQuerySet, VariableLibrary), Lakehouse import/export, rm --hard.

Test plan

  • CI passes (validate-plugins)
  • Manual smoke-test of python3 scripts/search_across_workspaces.py --type Model --filter "Sales" for table, json, detailed output formats (verified locally; unique fields lead)
  • Manual smoke-test of fab find against a known tenant
  • README links resolve

… complement

fab find (Fabric CLI >= 1.6.1) is the official cross-workspace search and
should be the default for routine "find an item" questions. The DataHub V2
script (search_across_workspaces.py) is kept because it surfaces fields fab
find does not return: last visit, last refresh, last modified, owner,
storage mode, capacity SKU, Copilot/NL support, cache config,
isDiscoverable. The script's table, JSON, and detailed outputs now lead
with those unique fields so the value-add is visible at a glance.

SKILL.md
- Quickstart step 2 now leads with fab find and points to the script for
  governance fields
- Common workflows search section split into routine (fab find) vs
  governance (script)
- Install note pinned to fab CLI >= 1.6.1 with a per-version delta in
  references/whats-new.md
- Script bullet reframed as "governance complement to fab find" with link
  to the delta table

references/workspaces.md
- "Cross-Workspace Search (DataHub V2)" renamed to "Cross-Workspace Search"
- Adds fab find as the primary section with all documented flags
- Adds a delta table comparing fields available in fab find vs the script
- Adds a "when to use which" decision table
- Existing script usage retained with type-name mapping notes

references/admin.md
- Cross-workspace discovery section now references fab find as the
  user-level default; the admin path is scoped to tenant audits

references/whats-new.md (new)
- Per-version notes for 1.4, 1.5, 1.6.1 covering fab find, interactive
  REPL, fab deploy + fabric-cicd, --format on export, new item types
  (Map, DigitalTwinBuilder, CosmosDBDatabase, UserDataFunction,
  GraphQuerySet, VariableLibrary), Lakehouse import/export, rm --hard

scripts/search_across_workspaces.py
- Top-of-file docstring honestly positions the script vs fab find
- JSON output: unique fields lead the dict; identifier fields trail
- Detailed output: unique fields lead, identifiers trail
- Table output: leads with Last Visit, Last Refresh, Storage, Owner;
  Name and Workspace still shown for row identification
- Surfaces naturalLanguageSupported and cachedModelEnabled (mentioned in
  the docstring as unique but previously not in any output)
…t fab find

OneLake catalog (fab find) does not expose lineage edges or last-visited
timestamps. The internal DataHub V2 API still has unique value for both
use cases, but the framing in these skills was peer-to-peer with the
official Power BI APIs. Updates:

semantic-models/lineage-analysis/SKILL.md
- The "bulk lineage" tip now points at fab api admin/workspaces/getInfo
  (admin scan) or fab find for non-admin inventory, calls out that
  neither surfaces lineage edges, and points at the official Power BI
  lineage admin API for that. Removes the implicit DataHub-as-default
  framing.

reports/review-report/SKILL.md
- The --include-datahub example now carries a one-line label that it is
  Tier 3 (undocumented) and what it adds (cross-workspace last-visited
  without admin role).
- The two "cross-reference with DataHub" prose bullets now name Tier 1
  Activity Events as the official path and Tier 3 DataHub V2 as the
  non-admin fallback that should be flagged to the user as undocumented.

reports/review-report/references/report-metadata.md
- "DataHub V2 Fields for Models" heading flags the API as undocumented
  and points readers at the fabric-cli plugin's
  search_across_workspaces.py (which surfaces these fields ahead of the
  identity fields shared with fab find).
- Docstring now flags the JSON output schema change (key order plus two
  new keys: naturalLanguageSupported, cachedModelEnabled). Downstream
  consumers pinning field order should switch to key-based lookup.
- Widens the Storage column to 14 chars and drops the brittle [:11] slice
  on the storage label. "DirectQuery" already sat right at the truncation
  boundary; a future label addition would have started silently
  truncating.
@data-goblin data-goblin merged commit c05a91f into releases/26.20 May 12, 2026
1 check passed
@data-goblin data-goblin deleted the feat/fabric-cli-updates branch May 13, 2026 14:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant