Skip to content

Add FabricClientX as an independently versioned module#216

Open
PrzemyslawKlys wants to merge 8 commits into
masterfrom
codex/fabric-data-platform
Open

Add FabricClientX as an independently versioned module#216
PrzemyslawKlys wants to merge 8 commits into
masterfrom
codex/fabric-data-platform

Conversation

@PrzemyslawKlys

@PrzemyslawKlys PrzemyslawKlys commented Jul 23, 2026

Copy link
Copy Markdown
Member

Summary

  • establish DbaClientX and FabricClientX as two separately branded, independently versioned PowerShell modules in one repository
  • keep the existing DbaClientX module focused on its 37 database and data-movement commands
  • move the eight Fabric, Warehouse, and Power BI commands to the new FabricClientX module
  • add separate manifests, build configurations, artifact roots, package tests, and CI coverage for both products
  • retain the existing FabricClientX .NET packages and the DbaClientX data plane beneath the new PowerShell surface

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.xml files 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

  • solution build: zero warnings and zero errors
  • DbaClientX: 1,181 tests on both net8.0 and net10.0
  • Azure Tables: 19 tests on both targets
  • FabricClientX: 28 tests on both targets
  • FabricClientX.Core net472 build: zero warnings and zero errors
  • PowerShell 7 DbaClientX suite: 223 passed
  • Windows PowerShell 5.1 DbaClientX suite: 214 passed and 9 expected platform skips
  • FabricClientX source/package suites pass on PowerShell 7 and Windows PowerShell 5.1
  • all four packaged coexistence combinations pass with zero warnings across both import orders and both PowerShell runtimes
  • packaged command boundaries: 37 DbaClientX commands and 8 FabricClientX commands
  • DbaClientX and FabricClientX package copies of all four shared Core/Desktop assemblies have identical SHA-256 hashes
  • all 37 DbaClientX and all 8 FabricClientX compiled cmdlets return examples from exact local-source packages on PowerShell 7 and Windows PowerShell 5.1

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.

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 77.40657% with 399 lines in your changes missing coverage. Please review.
✅ Project coverage is 53.59%. Comparing base (7a3cdd3) to head (82fb1a2).
⚠️ Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
FabricClientX.OfficeIMO/CsvFabricWorkflow.cs 77.81% 38 Missing and 25 partials ⚠️
DbaClientX.SqlServer/SqlServer.BulkDataReader.cs 4.34% 44 Missing ⚠️
FabricClientX.Core/FabricHttpClient.cs 83.69% 20 Missing and 18 partials ⚠️
...aClientX.Core/Diagnostics/DbaClientXDiagnostics.cs 69.56% 21 Missing and 14 partials ⚠️
DbaClientX.PowerShell/CmdletCopyDbaXTableData.cs 0.00% 30 Missing ⚠️
DbaClientX.SqlServer/FabricWarehouseProfile.cs 72.34% 13 Missing and 13 partials ⚠️
FabricClientX.PowerBI/PowerBiClient.cs 79.68% 18 Missing and 8 partials ⚠️
DbaClientX.Core/DataMovement/DbaTableCopyEngine.cs 89.17% 20 Missing and 1 partial ⚠️
FabricClientX.Core/FabricTokenProviders.cs 0.00% 18 Missing and 1 partial ⚠️
...icClientX.Core/FabricLongRunningOperationClient.cs 81.25% 8 Missing and 4 partials ⚠️
... and 20 more
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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@PrzemyslawKlys PrzemyslawKlys changed the title Add an incubating Fabric data platform Add FabricClientX as an independently versioned module Jul 23, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread Module-FabricClientX/Build/Build-Module.ps1
Comment thread FabricClientX.PowerBI/PowerBiClient.cs
Comment thread scripts/Test-FabricPowerBILive.ps1 Outdated
Comment thread FabricClientX.OfficeIMO/CsvFabricWorkflow.cs
Comment thread FabricClientX.OfficeIMO/CsvFabricWorkflow.cs Outdated
Comment thread FabricClientX.Core/FabricHttpClient.cs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread FabricClientX.Core/FabricHttpClient.cs

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment thread FabricClientX.OfficeIMO/CsvFabricWorkflow.cs Outdated
Comment thread FabricClientX.Core/FabricHttpClient.cs
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