Skip to content

Parity — v0.1.0

This map was written after v0.1.0 shipped — the release predates the parity map itself, and a git tag is immutable — so it is a retrospective reading rather than a document published at the time. It is drawn from three pieces of evidence at the v0.1.0 tag:

  • docs/13-roadmap.md — 28 items [x] done, 12 [ ] open,
  • docs/12-e2e-matrix.md — what CI actually proved,
  • the source tree — which packages existed at all (a 🔴 below usually means the package is simply absent at that tag, e.g. internal/tds, internal/pipeline).

The shape of v0.1.0: the contract planes were done (P0–P3 — control plane, CI/CD + git, the identity handshake, the OneLake DFS surface), and the entire R — Real compute track was still open. No Blob endpoint, no conditional writes, no Spark, no warehouse engine, no pipeline interpreter — and exactly one real third-party client (fabric-cicd) driven in CI.

Row names deliberately match the current map so the parity changelog can diff them.

Meaning
🟢 RealGenuine work: real signed JWTs, real bytes on disk, a real engine/client computes, real logic enforced — no pretending.
🟡 EmulatedFaithful API contract + persisted state, but no engine — status is clock-derived / management-only.
🟠 Bring-your-own-engineReal when a real external engine is attached; contract-only (honest 501) otherwise.
🔴 Not implementedHonest 501 or absent.
Fabric featureEmulatorType
Workspaces CRUDFull🟢 Real (state persists)
Items CRUD + 12 typed collectionsFull🟢 Real
Role assignments / workspace RBACEnforced from the validated bearer principal🟢 Real
FoldersFull (internal/store/folders.go)🟢 Real
Capacities (list, assign / unassign)Full state, no billing/SKU enforcement🟢 Real state
Long-running operations (202 → poll)Clock-derived🟡 Emulated
Item job execution (jobs/instances)Status clock-derived for every item type — no engine behind any job🟡 Emulated
Fabric featureEmulatorType
Entra OAuth2 tokens / JWKS / client-credentialsentra-emulator mints real signed JWTs🟢 Real
Workspace managed identity handshakeProvisioned via entra admin API; the identity’s own token passes RBAC🟢 Real
Key Vault references in connections— AKV-reference connections still on the roadmap🔴 Not implemented
Tenant settings / audit / admin-portal APIs🔴 Not implemented
Purview / lineage / sensitivity labels (governance/)🔴 Not implemented
Fabric featureEmulatorType
ADLS Gen2 DFS surface (create → append → flush, ranged read, list)Real bytes over the Host-routed DFS subset. No ranged reads yet — Range/206 arrived with R0🟢 Real (real bytes)
Blob surfaceinternal/onelake/blob.go does not exist at this tag🔴 Not implemented
Delta commits (put-if-absent atomicity)— no ETags / conditional requests; the R0 correctness gap🔴 Not implemented
Shortcuts (OneLake → OneLake)internal/api/shortcuts.go does not exist at this tag🔴 Not implemented
Shortcuts to external targets (S3 / ADLS Gen2 / Dataverse)🔴 Not implemented
Fabric featureEmulatorType
Lakehouse item + Tables/Files storageFull (via OneLake)🟢 Real
Notebook authoring / definition round-tripFull🟢 Real
notebookutils / mssparkutils (fs, credentials, getSecret, lakehouse, runtime)— R4 open; python/notebookutils does not exist🔴 Not implemented
Spark session / statement / batch via the Livy API— R2 open; no Livy routes at this tag🔴 Not implemented
Notebook cell executioninternal/notebook does not exist🔴 Not implemented
Livy High-Concurrency (5-REPL) sessions🔴 Not implemented
Environments, Spark Job DefinitionsItem management only🟡 Emulated
Fabric featureEmulatorType
SQL-analytics-endpoint semantics over lakehouse Delta— R3 open🔴 Not implemented
Warehouse item managementFull (typed item collection)🟢 Real
T-SQL over TDS + Entra FedAuthinternal/tds does not exist🔴 Not implemented
Lakehouse SQL analytics endpoint — Delta → engine🔴 Not implemented
Warehouse — read-write T-SQLinternal/warehouse does not exist🔴 Not implemented
Per-item isolation (each item = its own SQL Server database)🔴 Not implemented
RBAC → SQL permissions🔴 Not implemented
information_schema / sys.* introspection🔴 Not implemented
Per-column type fidelity (real SQL types over the wire)🔴 Not implemented
Connection by item name (vs GUID)🔴 Not implemented
Fabric featureEmulatorType
Data Pipeline control flow (If / ForEach / Until / Switch / Filter / Fail, expression language, dependsOn)— item management only; internal/pipeline does not exist (R5 open)🔴 Not implemented
Pipeline → notebook activity (TridentNotebook)🔴 Not implemented
queryactivityruns detail🔴 Not implemented
Copy activity — OneLake → OneLake🔴 Not implemented
Lookup activity — OneLake CSV/JSON/Parquet/Delta🔴 Not implemented
GetMetadata activity — OneLake path🔴 Not implemented
Web / external-connector leaves🔴 Not implemented
Dataflow Gen2 (Power Query M engine)🔴 Not implemented
Connectors / on-prem gateways🔴 Not implemented
Fabric featureEmulatorType
Git integration (connect / status / commit / update / disconnect)Full, backed by a local per-branch definition store🟢 Real
fabric-cicd tool publishingMicrosoft’s real tool publishes into the emulator, unmodified🟢 Real
Deployment pipelines🔴 Not implemented

Ecosystem conformance: real OSS/vendor clients as witnesses

Section titled “Ecosystem conformance: real OSS/vendor clients as witnesses”

At v0.1.0 exactly one real third-party client was driven against the emulator in CI. Every other witness below arrived with the R track in v0.2.0.

Real client (pinned)Surface exercisedStatus
fabric-cicd (Microsoft)Control plane / CI-CD publish🟢 e2e/fabric-cicd
Fabric CLI fab (Microsoft)Control plane🔴 Not wired
deltalake (delta-rs)OneLake Delta write/read🔴 Not wired
azure-storage-file-datalake + Blob SDKOneLake ADLS Gen2 DFS + Blob🔴 Not wired
azcopy (Microsoft)OneLake Blob multi-block transfer🔴 Not wired
DuckDBLakehouse SQL over Delta/Parquet🔴 Not wired
PySpark behind the Livy APISpark sessions / statements🔴 Not wired
notebookutilsNotebook utility shim🔴 Not wired
go-mssqldbWarehouse/Lakehouse TDS + FedAuth🔴 Not wired
dbt-fabricspark (Microsoft)Fabric Spark via Livy HC sessions🔴 Not wired
dbt-fabric (Microsoft)Warehouse TDS via ODBC Driver 18🔴 Not wired
Fabric areaEmulatorType
Real-Time Intelligence — Eventhouse / KQL DB / Eventstream (real-time-intelligence/)Item management only🟡 Emulated
Mirroring — Mirrored Database (mirroring/)Item management only🟡 Emulated
Power BI — Semantic Model query (executeQueries)🔴 Not implemented
Power BI — Reports / rendering; full DAX; SemPy over XMLA🔴 Not implemented
Data Science — ML models / experiments / MLflow (data-science/)🔴 Not implemented