Add FabricClientX as an independently versioned module#216
Add FabricClientX as an independently versioned module#216PrzemyslawKlys wants to merge 8 commits into
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #216 +/- ##
==========================================
+ Coverage 51.11% 53.59% +2.47%
==========================================
Files 220 247 +27
Lines 16748 18450 +1702
Branches 2984 3219 +235
==========================================
+ Hits 8561 9888 +1327
- Misses 7336 7602 +266
- Partials 851 960 +109 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 26f2b86fd9
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 9364e0fe93
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f9ec269d8d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Summary
Product boundaries
DbaClientX owns provider-neutral database access, bulk movement, and Fabric Warehouse connectivity. FabricClientX owns Fabric workspace/item APIs, Power BI orchestration, and end-to-end Fabric workflows.
The products share one repository and solution for coordinated development, but their public module identities and version lines are independent: DbaClientX remains on 1.0.x while FabricClientX starts at 0.1.x. Either product can be extracted later without redesigning its public surface if ownership, contributors, or release cadence diverge.
OfficeIMO integration
FabricClientX.OfficeIMO remains an optional one-way adapter owned by FabricClientX. OfficeIMO.CSV supplies schema inference and a forward-only IDataReader; DbaClientX streams that data into Fabric Warehouse; FabricClientX can then refresh Power BI.
OfficeIMO and PSWriteOffice do not depend on FabricClientX and require no source changes. This gives OfficeIMO users an opt-in route from tabular artifacts into Fabric without placing Azure or Fabric behavior inside the OfficeIMO libraries.
Shared packaging dependency
The generated module bootstrapper includes the coordinated loader fix from EvotecIT/PSPublishModule#620. Independently packaged modules reuse a shared assembly only when its full identity and SHA-256 content match; reproducible isolated builds make legitimate same-source copies byte-identical.
External MAML help for compiled cmdlets is owned by the shared packaging correction in EvotecIT/PSPublishModule#628. Exact local-source builds prove that DbaClientX and FabricClientX retain their generated
*.dll-Help.xmlfiles without adding consumer-side copy logic.Review follow-up
The current shape also includes the repository-review fixes: the Fabric build configuration is tracked, Power BI TimedOut refreshes settle as terminal, the live probe targets FabricClientX, workflow fingerprints cover CSV parsing/schema options and accept only converter delegates without captured or instance fields, the effective CSV cancellation token reaches bulk insertion, custom path-based service endpoints require a trailing slash, continuation validation includes the HTTPS authority and port, and bodyless successful POST/DELETE responses bypass JSON deserialization even when the service omits Content-Length.
Verification
An independent local review of phases 0-4 found five workflow-contract issues around option snapshots, refresh defaults, deadline scope, cancellation, and fingerprints. All were fixed; the permitted targeted confirmation found no remaining actionable issue. The subsequent repository findings listed above are also addressed and covered by focused tests or packaged proof.
Live read-only discovery reached the available personal workspace, but it has no Fabric capacity. Warehouse data mutation and semantic-model refresh mutation therefore remain explicit live-validation gaps.
Current CI dependency state
The packaged PowerShell 7 coexistence combinations pass on the current branch. PowerShell Gallery currently exposes PSPublishModule 3.0.76, which predates the Desktop bootstrapper fix in EvotecIT/PSPublishModule#620; the Windows PowerShell 5.1 packaged lane therefore regenerates the old loader and fails before exercising FabricClientX behavior. The loader fix is in current PSPublishModule source/tag v3.0.77, while compiled-help preservation remains under review in EvotecIT/PSPublishModule#628. No consumer-side compatibility shim was added. The affected packaged checks should be rerun after the shared fixes are published.
No package or release has been published.